diff --git a/include/ndn-cpp/common.hpp b/include/ndn-cpp/common.hpp
index a23356e..a0a4b09 100644
--- a/include/ndn-cpp/common.hpp
+++ b/include/ndn-cpp/common.hpp
@@ -32,6 +32,7 @@
 // (unset LANG; find . -type f -exec sed -i '' 's/\"boost\//\"ndnboost\//g' {} +)
 // (unset LANG; find . -type f -exec sed -i '' 's/\ boost\//\ ndnboost\//g' {} +)
 // (unset LANG; find . -type f -exec sed -i '' 's/(boost\//(ndnboost\//g' {} +)
+// (unset LANG; find . -type f -exec sed -i '' 's/BOOST_/NDNBOOST_/g' {} +)
 #include <ndnboost/shared_ptr.hpp>
 #include <ndnboost/make_shared.hpp>
 namespace ndn { namespace ptr_lib = ndnboost; }
diff --git a/include/ndnboost/algorithm/string/compare.hpp b/include/ndnboost/algorithm/string/compare.hpp
index e963120..4bebc21 100644
--- a/include/ndnboost/algorithm/string/compare.hpp
+++ b/include/ndnboost/algorithm/string/compare.hpp
@@ -8,8 +8,8 @@
 
 //  See http://www.boost.org/ for updates, documentation, and revision history.
 
-#ifndef BOOST_STRING_COMPARE_HPP
-#define BOOST_STRING_COMPARE_HPP
+#ifndef NDNBOOST_STRING_COMPARE_HPP
+#define NDNBOOST_STRING_COMPARE_HPP
 
 #include <ndnboost/algorithm/string/config.hpp>
 #include <locale>
@@ -196,4 +196,4 @@
 } // namespace ndnboost
 
 
-#endif  // BOOST_STRING_COMPARE_HPP
+#endif  // NDNBOOST_STRING_COMPARE_HPP
diff --git a/include/ndnboost/algorithm/string/concept.hpp b/include/ndnboost/algorithm/string/concept.hpp
index 31faa80..86698d3 100644
--- a/include/ndnboost/algorithm/string/concept.hpp
+++ b/include/ndnboost/algorithm/string/concept.hpp
@@ -8,8 +8,8 @@
 
 //  See http://www.boost.org/ for updates, documentation, and revision history.
 
-#ifndef BOOST_STRING_CONCEPT_HPP
-#define BOOST_STRING_CONCEPT_HPP
+#ifndef NDNBOOST_STRING_CONCEPT_HPP
+#define NDNBOOST_STRING_CONCEPT_HPP
 
 #include <ndnboost/concept_check.hpp>
 #include <ndnboost/range/iterator_range.hpp>
@@ -80,4 +80,4 @@
 
 
 
-#endif  // BOOST_STRING_CONCEPT_HPP
+#endif  // NDNBOOST_STRING_CONCEPT_HPP
diff --git a/include/ndnboost/algorithm/string/config.hpp b/include/ndnboost/algorithm/string/config.hpp
index 4ed3d05..0659c1f 100644
--- a/include/ndnboost/algorithm/string/config.hpp
+++ b/include/ndnboost/algorithm/string/config.hpp
@@ -8,21 +8,21 @@
 
 //  See http://www.boost.org/ for updates, documentation, and revision history.
 
-#ifndef BOOST_STRING_CONFIG_HPP
-#define BOOST_STRING_CONFIG_HPP
+#ifndef NDNBOOST_STRING_CONFIG_HPP
+#define NDNBOOST_STRING_CONFIG_HPP
 
 #include <ndnboost/config.hpp>
 #include <ndnboost/detail/workaround.hpp>
 
-#ifdef BOOST_STRING_DEDUCED_TYPENAME
+#ifdef NDNBOOST_STRING_DEDUCED_TYPENAME
 #   error "macro already defined!"
 #endif
 
-#define BOOST_STRING_TYPENAME BOOST_DEDUCED_TYPENAME
+#define NDNBOOST_STRING_TYPENAME NDNBOOST_DEDUCED_TYPENAME
 
 // Metrowerks workaround
-#if BOOST_WORKAROUND(__MWERKS__, <= 0x3003) // 8.x
+#if NDNBOOST_WORKAROUND(__MWERKS__, <= 0x3003) // 8.x
 #pragma parse_func_templ off
 #endif
 
-#endif  // BOOST_STRING_CONFIG_HPP
+#endif  // NDNBOOST_STRING_CONFIG_HPP
diff --git a/include/ndnboost/algorithm/string/constants.hpp b/include/ndnboost/algorithm/string/constants.hpp
index 232d0d8..21fe158 100644
--- a/include/ndnboost/algorithm/string/constants.hpp
+++ b/include/ndnboost/algorithm/string/constants.hpp
@@ -8,8 +8,8 @@
 
 //  See http://www.boost.org/ for updates, documentation, and revision history.
 
-#ifndef BOOST_STRING_CONSTANTS_HPP
-#define BOOST_STRING_CONSTANTS_HPP
+#ifndef NDNBOOST_STRING_CONSTANTS_HPP
+#define NDNBOOST_STRING_CONSTANTS_HPP
 
 namespace ndnboost {
     namespace algorithm {
@@ -32,5 +32,5 @@
 
 } // namespace ndnboost
 
-#endif  // BOOST_STRING_CONSTANTS_HPP
+#endif  // NDNBOOST_STRING_CONSTANTS_HPP
 
diff --git a/include/ndnboost/algorithm/string/detail/find_format.hpp b/include/ndnboost/algorithm/string/detail/find_format.hpp
index 395beaf..e59e40d 100644
--- a/include/ndnboost/algorithm/string/detail/find_format.hpp
+++ b/include/ndnboost/algorithm/string/detail/find_format.hpp
@@ -8,8 +8,8 @@
 
 //  See http://www.boost.org/ for updates, documentation, and revision history.
 
-#ifndef BOOST_STRING_FIND_FORMAT_DETAIL_HPP
-#define BOOST_STRING_FIND_FORMAT_DETAIL_HPP
+#ifndef NDNBOOST_STRING_FIND_FORMAT_DETAIL_HPP
+#define NDNBOOST_STRING_FIND_FORMAT_DETAIL_HPP
 
 #include <ndnboost/algorithm/string/config.hpp>
 #include <ndnboost/range/iterator_range.hpp>
@@ -38,7 +38,7 @@
                 const FormatResultT& FormatResult )
             {       
                 typedef find_format_store<
-                    BOOST_STRING_TYPENAME 
+                    NDNBOOST_STRING_TYPENAME 
                         range_const_iterator<InputT>::type, 
                         FormatterT,
                         FormatResultT > store_type;
@@ -102,7 +102,7 @@
                 const FormatResultT& FormatResult)
             {
                 typedef find_format_store<
-                    BOOST_STRING_TYPENAME 
+                    NDNBOOST_STRING_TYPENAME 
                         range_const_iterator<InputT>::type, 
                         FormatterT,
                         FormatResultT > store_type;
@@ -161,7 +161,7 @@
                 const FormatResultT& FormatResult)
             {
                 typedef find_format_store<
-                    BOOST_STRING_TYPENAME 
+                    NDNBOOST_STRING_TYPENAME 
                         range_iterator<InputT>::type, 
                         FormatterT,
                         FormatResultT > store_type;
@@ -201,4 +201,4 @@
     } // namespace algorithm
 } // namespace ndnboost
 
-#endif  // BOOST_STRING_FIND_FORMAT_DETAIL_HPP
+#endif  // NDNBOOST_STRING_FIND_FORMAT_DETAIL_HPP
diff --git a/include/ndnboost/algorithm/string/detail/find_format_all.hpp b/include/ndnboost/algorithm/string/detail/find_format_all.hpp
index ee0312a..22d0768 100644
--- a/include/ndnboost/algorithm/string/detail/find_format_all.hpp
+++ b/include/ndnboost/algorithm/string/detail/find_format_all.hpp
@@ -8,8 +8,8 @@
 
 //  See http://www.boost.org/ for updates, documentation, and revision history.
 
-#ifndef BOOST_STRING_FIND_FORMAT_ALL_DETAIL_HPP
-#define BOOST_STRING_FIND_FORMAT_ALL_DETAIL_HPP
+#ifndef NDNBOOST_STRING_FIND_FORMAT_ALL_DETAIL_HPP
+#define NDNBOOST_STRING_FIND_FORMAT_ALL_DETAIL_HPP
 
 #include <ndnboost/algorithm/string/config.hpp>
 #include <ndnboost/range/iterator_range.hpp>
@@ -39,7 +39,7 @@
                 const FindResultT& FindResult,
                 const FormatResultT& FormatResult )
             {       
-                typedef BOOST_STRING_TYPENAME 
+                typedef NDNBOOST_STRING_TYPENAME 
                     range_const_iterator<InputT>::type input_iterator_type; 
 
                 typedef find_format_store<
@@ -113,7 +113,7 @@
                 const FindResultT& FindResult,
                 const FormatResultT& FormatResult)
             {
-                typedef BOOST_STRING_TYPENAME 
+                typedef NDNBOOST_STRING_TYPENAME 
                     range_const_iterator<InputT>::type input_iterator_type; 
 
                 typedef find_format_store<
@@ -187,7 +187,7 @@
                 FindResultT FindResult,
                 FormatResultT FormatResult)
             {
-                typedef BOOST_STRING_TYPENAME 
+                typedef NDNBOOST_STRING_TYPENAME 
                     range_iterator<InputT>::type input_iterator_type; 
                 typedef find_format_store<
                         input_iterator_type, 
@@ -199,7 +199,7 @@
           
                 // Instantiate replacement storage
                 std::deque<
-                    BOOST_STRING_TYPENAME range_value<InputT>::type> Storage;
+                    NDNBOOST_STRING_TYPENAME range_value<InputT>::type> Storage;
 
                 // Initialize replacement iterators
                 input_iterator_type InsertIt=::ndnboost::begin(Input);
@@ -270,4 +270,4 @@
     } // namespace algorithm
 } // namespace ndnboost
 
-#endif  // BOOST_STRING_FIND_FORMAT_ALL_DETAIL_HPP
+#endif  // NDNBOOST_STRING_FIND_FORMAT_ALL_DETAIL_HPP
diff --git a/include/ndnboost/algorithm/string/detail/find_format_store.hpp b/include/ndnboost/algorithm/string/detail/find_format_store.hpp
index d0d38bf..89c137f 100644
--- a/include/ndnboost/algorithm/string/detail/find_format_store.hpp
+++ b/include/ndnboost/algorithm/string/detail/find_format_store.hpp
@@ -8,8 +8,8 @@
 
 //  See http://www.boost.org/ for updates, documentation, and revision history.
 
-#ifndef BOOST_STRING_FIND_FORMAT_STORE_DETAIL_HPP
-#define BOOST_STRING_FIND_FORMAT_STORE_DETAIL_HPP
+#ifndef NDNBOOST_STRING_FIND_FORMAT_STORE_DETAIL_HPP
+#define NDNBOOST_STRING_FIND_FORMAT_STORE_DETAIL_HPP
 
 #include <ndnboost/algorithm/string/config.hpp>
 #include <ndnboost/range/iterator_range.hpp>
@@ -20,7 +20,7 @@
 
 //  temporary format and find result storage --------------------------------//
 
-#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, >= 1400)
 #pragma warning(push)
 #pragma warning(disable:4512) //assignment operator could not be generated
 #endif
@@ -73,17 +73,17 @@
             template<typename InputT, typename FindResultT>
             bool check_find_result(InputT&, FindResultT& FindResult)
             {
-                typedef BOOST_STRING_TYPENAME 
+                typedef NDNBOOST_STRING_TYPENAME 
                     range_const_iterator<InputT>::type input_iterator_type; 
                 iterator_range<input_iterator_type> ResultRange(FindResult);
                 return !ResultRange.empty();
             }
 
-#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, >= 1400)
 #pragma warning(pop)
 #endif
         } // namespace detail
     } // namespace algorithm
 } // namespace ndnboost
 
-#endif  // BOOST_STRING_FIND_FORMAT_STORE_DETAIL_HPP
+#endif  // NDNBOOST_STRING_FIND_FORMAT_STORE_DETAIL_HPP
diff --git a/include/ndnboost/algorithm/string/detail/finder.hpp b/include/ndnboost/algorithm/string/detail/finder.hpp
index 330c7a5..6446e92 100644
--- a/include/ndnboost/algorithm/string/detail/finder.hpp
+++ b/include/ndnboost/algorithm/string/detail/finder.hpp
@@ -8,8 +8,8 @@
 
 //  See http://www.boost.org/ for updates, documentation, and revision history.
 
-#ifndef BOOST_STRING_FINDER_DETAIL_HPP
-#define BOOST_STRING_FINDER_DETAIL_HPP
+#ifndef NDNBOOST_STRING_FINDER_DETAIL_HPP
+#define NDNBOOST_STRING_FINDER_DETAIL_HPP
 
 #include <ndnboost/algorithm/string/config.hpp>
 #include <ndnboost/algorithm/string/constants.hpp>
@@ -127,7 +127,7 @@
                     if( ndnboost::empty(m_Search) )
                         return result_type( End, End );
 
-                    typedef BOOST_STRING_TYPENAME ndnboost::detail::
+                    typedef NDNBOOST_STRING_TYPENAME ndnboost::detail::
                         iterator_traits<ForwardIteratorT>::iterator_category category;
 
                     return findit( Begin, End, category() );
@@ -379,7 +379,7 @@
                 ForwardIteratorT End,
                 unsigned int N )
             {
-                typedef BOOST_STRING_TYPENAME ndnboost::detail::
+                typedef NDNBOOST_STRING_TYPENAME ndnboost::detail::
                     iterator_traits<ForwardIteratorT>::iterator_category category;
 
                 return ::ndnboost::algorithm::detail::find_head_impl( Begin, End, N, category() );
@@ -453,7 +453,7 @@
                 ForwardIteratorT End,
                 unsigned int N )
             {
-                typedef BOOST_STRING_TYPENAME ndnboost::detail::
+                typedef NDNBOOST_STRING_TYPENAME ndnboost::detail::
                     iterator_traits<ForwardIteratorT>::iterator_category category;
 
                 return ::ndnboost::algorithm::detail::find_tail_impl( Begin, End, N, category() );
@@ -625,9 +625,9 @@
                     ForwardIterator2T,
                     ForwardIterator2T ) const
                 {
-#if BOOST_WORKAROUND( __MWERKS__, <= 0x3003 ) 
+#if NDNBOOST_WORKAROUND( __MWERKS__, <= 0x3003 ) 
                     return iterator_range<const ForwardIterator2T>(this->m_Range);
-#elif BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
+#elif NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)
                     return iterator_range<ForwardIterator2T>(m_Range.begin(), m_Range.end());
 #else
                     return m_Range;
@@ -643,4 +643,4 @@
     } // namespace algorithm
 } // namespace ndnboost
 
-#endif  // BOOST_STRING_FINDER_DETAIL_HPP
+#endif  // NDNBOOST_STRING_FINDER_DETAIL_HPP
diff --git a/include/ndnboost/algorithm/string/detail/formatter.hpp b/include/ndnboost/algorithm/string/detail/formatter.hpp
index 0307310..14e5dee 100644
--- a/include/ndnboost/algorithm/string/detail/formatter.hpp
+++ b/include/ndnboost/algorithm/string/detail/formatter.hpp
@@ -8,8 +8,8 @@
 
 //  See http://www.boost.org for updates, documentation, and revision history.
 
-#ifndef BOOST_STRING_FORMATTER_DETAIL_HPP
-#define BOOST_STRING_FORMATTER_DETAIL_HPP
+#ifndef NDNBOOST_STRING_FORMATTER_DETAIL_HPP
+#define NDNBOOST_STRING_FORMATTER_DETAIL_HPP
 
 
 #include <ndnboost/range/iterator_range.hpp>
@@ -32,7 +32,7 @@
             struct const_formatF
             {
             private:
-                typedef BOOST_STRING_TYPENAME
+                typedef NDNBOOST_STRING_TYPENAME
                     range_const_iterator<RangeT>::type format_iterator;
                 typedef iterator_range<format_iterator> result_type;
             
@@ -42,7 +42,7 @@
                     m_Format(::ndnboost::begin(Format), ::ndnboost::end(Format)) {}
 
                 // Operation
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
+#if NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564))
                 template<typename Range2T>
                 result_type& operator()(const Range2T&)
                 {
@@ -101,7 +101,7 @@
                   // Operation
                   template<typename RangeT>
                   inline iterator_range< 
-                      BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type>
+                      NDNBOOST_STRING_TYPENAME range_const_iterator<RangeT>::type>
                   operator()(const RangeT& Replace) const
                   {
                       return m_Finder(::ndnboost::begin(Replace), ::ndnboost::end(Replace));
@@ -116,4 +116,4 @@
     } // namespace algorithm
 } // namespace ndnboost
 
-#endif  // BOOST_STRING_FORMATTER_DETAIL_HPP
+#endif  // NDNBOOST_STRING_FORMATTER_DETAIL_HPP
diff --git a/include/ndnboost/algorithm/string/detail/replace_storage.hpp b/include/ndnboost/algorithm/string/detail/replace_storage.hpp
index 6fb6c54..274d858 100644
--- a/include/ndnboost/algorithm/string/detail/replace_storage.hpp
+++ b/include/ndnboost/algorithm/string/detail/replace_storage.hpp
@@ -8,8 +8,8 @@
 
 //  See http://www.boost.org/ for updates, documentation, and revision history.
 
-#ifndef BOOST_STRING_REPLACE_STORAGE_DETAIL_HPP
-#define BOOST_STRING_REPLACE_STORAGE_DETAIL_HPP
+#ifndef NDNBOOST_STRING_REPLACE_STORAGE_DETAIL_HPP
+#define NDNBOOST_STRING_REPLACE_STORAGE_DETAIL_HPP
 
 #include <ndnboost/algorithm/string/config.hpp>
 #include <algorithm>
@@ -156,4 +156,4 @@
     } // namespace algorithm
 } // namespace ndnboost
 
-#endif  // BOOST_STRING_REPLACE_STORAGE_DETAIL_HPP
+#endif  // NDNBOOST_STRING_REPLACE_STORAGE_DETAIL_HPP
diff --git a/include/ndnboost/algorithm/string/detail/sequence.hpp b/include/ndnboost/algorithm/string/detail/sequence.hpp
index 0b39a8b..be67f29 100644
--- a/include/ndnboost/algorithm/string/detail/sequence.hpp
+++ b/include/ndnboost/algorithm/string/detail/sequence.hpp
@@ -8,8 +8,8 @@
 
 //  See http://www.boost.org/ for updates, documentation, and revision history.
 
-#ifndef BOOST_STRING_DETAIL_SEQUENCE_HPP
-#define BOOST_STRING_DETAIL_SEQUENCE_HPP
+#ifndef NDNBOOST_STRING_DETAIL_SEQUENCE_HPP
+#define NDNBOOST_STRING_DETAIL_SEQUENCE_HPP
 
 #include <ndnboost/algorithm/string/config.hpp>
 #include <ndnboost/mpl/bool.hpp>
@@ -28,7 +28,7 @@
             template< typename InputT, typename ForwardIteratorT >
             inline void insert(
                 InputT& Input,
-                BOOST_STRING_TYPENAME InputT::iterator At,
+                NDNBOOST_STRING_TYPENAME InputT::iterator At,
                 ForwardIteratorT Begin,
                 ForwardIteratorT End )
             {
@@ -38,7 +38,7 @@
             template< typename InputT, typename InsertT >
             inline void insert(
                 InputT& Input,
-                BOOST_STRING_TYPENAME InputT::iterator At,
+                NDNBOOST_STRING_TYPENAME InputT::iterator At,
                 const InsertT& Insert )
             {
                 ::ndnboost::algorithm::detail::insert( Input, At, ::ndnboost::begin(Insert), ::ndnboost::end(Insert) );
@@ -53,8 +53,8 @@
             template< typename InputT >
             inline typename InputT::iterator erase(
                 InputT& Input,
-                BOOST_STRING_TYPENAME InputT::iterator From,
-                BOOST_STRING_TYPENAME InputT::iterator To )
+                NDNBOOST_STRING_TYPENAME InputT::iterator From,
+                NDNBOOST_STRING_TYPENAME InputT::iterator To )
             {
                 return Input.erase( From, To );
             }
@@ -69,14 +69,14 @@
                 template< typename InputT, typename ForwardIteratorT >
                 void operator()(
                     InputT& Input,
-                    BOOST_STRING_TYPENAME InputT::iterator From,
-                    BOOST_STRING_TYPENAME InputT::iterator To,
+                    NDNBOOST_STRING_TYPENAME InputT::iterator From,
+                    NDNBOOST_STRING_TYPENAME InputT::iterator To,
                     ForwardIteratorT Begin,
                     ForwardIteratorT End )
                 {
                     // Copy data to the container ( as much as possible )
                     ForwardIteratorT InsertIt=Begin;
-                    BOOST_STRING_TYPENAME InputT::iterator InputIt=From;
+                    NDNBOOST_STRING_TYPENAME InputT::iterator InputIt=From;
                     for(; InsertIt!=End && InputIt!=To; InsertIt++, InputIt++ )
                     {
                         *InputIt=*InsertIt;
@@ -105,12 +105,12 @@
                 template< typename InputT, typename ForwardIteratorT >
                 void operator()(
                     InputT& Input,
-                    BOOST_STRING_TYPENAME InputT::iterator From,
-                    BOOST_STRING_TYPENAME InputT::iterator To,
+                    NDNBOOST_STRING_TYPENAME InputT::iterator From,
+                    NDNBOOST_STRING_TYPENAME InputT::iterator To,
                     ForwardIteratorT Begin,
                     ForwardIteratorT End ) 
                 {
-                    BOOST_STRING_TYPENAME InputT::iterator At=Input.erase( From, To );
+                    NDNBOOST_STRING_TYPENAME InputT::iterator At=Input.erase( From, To );
                     if ( Begin!=End )
                     {
                         if(!Input.empty())
@@ -132,8 +132,8 @@
                 template< typename InputT, typename ForwardIteratorT >
                 void operator()(
                     InputT& Input,
-                    BOOST_STRING_TYPENAME InputT::iterator From,
-                    BOOST_STRING_TYPENAME InputT::iterator To,
+                    NDNBOOST_STRING_TYPENAME InputT::iterator From,
+                    NDNBOOST_STRING_TYPENAME InputT::iterator To,
                     ForwardIteratorT Begin,
                     ForwardIteratorT End ) 
                 {
@@ -152,8 +152,8 @@
                 template< typename InputT, typename ForwardIteratorT >
                 void operator()(
                     InputT& Input,
-                    BOOST_STRING_TYPENAME InputT::iterator From,
-                    BOOST_STRING_TYPENAME InputT::iterator To,
+                    NDNBOOST_STRING_TYPENAME InputT::iterator From,
+                    NDNBOOST_STRING_TYPENAME InputT::iterator To,
                     ForwardIteratorT Begin,
                     ForwardIteratorT End )
                 {
@@ -166,8 +166,8 @@
             template< typename InputT, typename ForwardIteratorT >
             inline void replace(
                 InputT& Input,
-                BOOST_STRING_TYPENAME InputT::iterator From,
-                BOOST_STRING_TYPENAME InputT::iterator To,
+                NDNBOOST_STRING_TYPENAME InputT::iterator From,
+                NDNBOOST_STRING_TYPENAME InputT::iterator To,
                 ForwardIteratorT Begin,
                 ForwardIteratorT End )
             {
@@ -178,8 +178,8 @@
             template< typename InputT, typename InsertT >
             inline void replace(
                 InputT& Input,
-                BOOST_STRING_TYPENAME InputT::iterator From,
-                BOOST_STRING_TYPENAME InputT::iterator To,
+                NDNBOOST_STRING_TYPENAME InputT::iterator From,
+                NDNBOOST_STRING_TYPENAME InputT::iterator To,
                 const InsertT& Insert )
             {
                 if(From!=To)
@@ -197,4 +197,4 @@
 } // namespace ndnboost
 
 
-#endif  // BOOST_STRING_DETAIL_SEQUENCE_HPP
+#endif  // NDNBOOST_STRING_DETAIL_SEQUENCE_HPP
diff --git a/include/ndnboost/algorithm/string/detail/util.hpp b/include/ndnboost/algorithm/string/detail/util.hpp
index fa34548..c83893d 100644
--- a/include/ndnboost/algorithm/string/detail/util.hpp
+++ b/include/ndnboost/algorithm/string/detail/util.hpp
@@ -8,8 +8,8 @@
 
 //  See http://www.boost.org/ for updates, documentation, and revision history.
 
-#ifndef BOOST_STRING_UTIL_DETAIL_HPP
-#define BOOST_STRING_UTIL_DETAIL_HPP
+#ifndef NDNBOOST_STRING_UTIL_DETAIL_HPP
+#define NDNBOOST_STRING_UTIL_DETAIL_HPP
 
 #include <ndnboost/algorithm/string/config.hpp>
 #include <functional>
@@ -88,7 +88,7 @@
             // copy range functor
             template< 
                 typename SeqT, 
-                typename IteratorT=BOOST_STRING_TYPENAME SeqT::const_iterator >
+                typename IteratorT=NDNBOOST_STRING_TYPENAME SeqT::const_iterator >
             struct copy_iterator_rangeF : 
                 public std::unary_function< iterator_range<IteratorT>, SeqT >
             {
@@ -103,4 +103,4 @@
 } // namespace ndnboost
 
 
-#endif  // BOOST_STRING_UTIL_DETAIL_HPP
+#endif  // NDNBOOST_STRING_UTIL_DETAIL_HPP
diff --git a/include/ndnboost/algorithm/string/find_format.hpp b/include/ndnboost/algorithm/string/find_format.hpp
index 5352eba..7b7dd3e 100644
--- a/include/ndnboost/algorithm/string/find_format.hpp
+++ b/include/ndnboost/algorithm/string/find_format.hpp
@@ -8,8 +8,8 @@
 
 //  See http://www.boost.org/ for updates, documentation, and revision history.
 
-#ifndef BOOST_STRING_FIND_FORMAT_HPP
-#define BOOST_STRING_FIND_FORMAT_HPP
+#ifndef NDNBOOST_STRING_FIND_FORMAT_HPP
+#define NDNBOOST_STRING_FIND_FORMAT_HPP
 
 #include <deque>
 #include <ndnboost/detail/iterator.hpp>
@@ -62,18 +62,18 @@
             FormatterT Formatter )
         {
             // Concept check
-            BOOST_CONCEPT_ASSERT((
+            NDNBOOST_CONCEPT_ASSERT((
                 FinderConcept<
                     FinderT,
-                    BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type>
+                    NDNBOOST_STRING_TYPENAME range_const_iterator<RangeT>::type>
                 ));
-            BOOST_CONCEPT_ASSERT((
+            NDNBOOST_CONCEPT_ASSERT((
                 FormatterConcept<
                     FormatterT,
-                    FinderT,BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type>
+                    FinderT,NDNBOOST_STRING_TYPENAME range_const_iterator<RangeT>::type>
                 ));
 
-            iterator_range<BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> lit_input(::ndnboost::as_literal(Input));
+            iterator_range<NDNBOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> lit_input(::ndnboost::as_literal(Input));
 
             return detail::find_format_copy_impl(
                 Output,
@@ -96,15 +96,15 @@
             FormatterT Formatter )
         {
             // Concept check
-            BOOST_CONCEPT_ASSERT((
+            NDNBOOST_CONCEPT_ASSERT((
                 FinderConcept<
                     FinderT,
-                    BOOST_STRING_TYPENAME range_const_iterator<SequenceT>::type>
+                    NDNBOOST_STRING_TYPENAME range_const_iterator<SequenceT>::type>
                 ));
-            BOOST_CONCEPT_ASSERT((
+            NDNBOOST_CONCEPT_ASSERT((
                 FormatterConcept<
                     FormatterT,
-                    FinderT,BOOST_STRING_TYPENAME range_const_iterator<SequenceT>::type>
+                    FinderT,NDNBOOST_STRING_TYPENAME range_const_iterator<SequenceT>::type>
                 ));
 
             return detail::find_format_copy_impl(
@@ -132,15 +132,15 @@
             FormatterT Formatter)
         {
             // Concept check
-            BOOST_CONCEPT_ASSERT((
+            NDNBOOST_CONCEPT_ASSERT((
                 FinderConcept<
                     FinderT,
-                    BOOST_STRING_TYPENAME range_const_iterator<SequenceT>::type>
+                    NDNBOOST_STRING_TYPENAME range_const_iterator<SequenceT>::type>
                 ));
-            BOOST_CONCEPT_ASSERT(( 
+            NDNBOOST_CONCEPT_ASSERT(( 
                 FormatterConcept<
                     FormatterT,
-                    FinderT,BOOST_STRING_TYPENAME range_const_iterator<SequenceT>::type>
+                    FinderT,NDNBOOST_STRING_TYPENAME range_const_iterator<SequenceT>::type>
                 ));
 
             detail::find_format_impl(
@@ -181,18 +181,18 @@
             FormatterT Formatter)
         {
             // Concept check
-            BOOST_CONCEPT_ASSERT(( 
+            NDNBOOST_CONCEPT_ASSERT(( 
                 FinderConcept<
                     FinderT,
-                    BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type>
+                    NDNBOOST_STRING_TYPENAME range_const_iterator<RangeT>::type>
                 ));
-            BOOST_CONCEPT_ASSERT(( 
+            NDNBOOST_CONCEPT_ASSERT(( 
                 FormatterConcept<
                     FormatterT,
-                    FinderT,BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type>
+                    FinderT,NDNBOOST_STRING_TYPENAME range_const_iterator<RangeT>::type>
                 ));
 
-            iterator_range<BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> lit_input(::ndnboost::as_literal(Input));
+            iterator_range<NDNBOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> lit_input(::ndnboost::as_literal(Input));
 
             return detail::find_format_all_copy_impl(
                 Output,
@@ -216,15 +216,15 @@
             FormatterT Formatter )
         {
             // Concept check
-            BOOST_CONCEPT_ASSERT((
+            NDNBOOST_CONCEPT_ASSERT((
                 FinderConcept<
                     FinderT,
-                    BOOST_STRING_TYPENAME range_const_iterator<SequenceT>::type>
+                    NDNBOOST_STRING_TYPENAME range_const_iterator<SequenceT>::type>
                 ));
-            BOOST_CONCEPT_ASSERT((
+            NDNBOOST_CONCEPT_ASSERT((
                 FormatterConcept<
                     FormatterT,
-                    FinderT,BOOST_STRING_TYPENAME range_const_iterator<SequenceT>::type>
+                    FinderT,NDNBOOST_STRING_TYPENAME range_const_iterator<SequenceT>::type>
                 ));
 
             return detail::find_format_all_copy_impl(
@@ -254,15 +254,15 @@
             FormatterT Formatter )
         {
             // Concept check
-            BOOST_CONCEPT_ASSERT((
+            NDNBOOST_CONCEPT_ASSERT((
                 FinderConcept<
                     FinderT,
-                    BOOST_STRING_TYPENAME range_const_iterator<SequenceT>::type>
+                    NDNBOOST_STRING_TYPENAME range_const_iterator<SequenceT>::type>
                 ));
-            BOOST_CONCEPT_ASSERT((
+            NDNBOOST_CONCEPT_ASSERT((
                 FormatterConcept<
                     FormatterT,
-                    FinderT,BOOST_STRING_TYPENAME range_const_iterator<SequenceT>::type>
+                    FinderT,NDNBOOST_STRING_TYPENAME range_const_iterator<SequenceT>::type>
                 ));
 
             detail::find_format_all_impl(
@@ -284,4 +284,4 @@
 } // namespace ndnboost
 
 
-#endif  // BOOST_STRING_FIND_FORMAT_HPP
+#endif  // NDNBOOST_STRING_FIND_FORMAT_HPP
diff --git a/include/ndnboost/algorithm/string/finder.hpp b/include/ndnboost/algorithm/string/finder.hpp
index 420e015..4bc64d2 100644
--- a/include/ndnboost/algorithm/string/finder.hpp
+++ b/include/ndnboost/algorithm/string/finder.hpp
@@ -8,8 +8,8 @@
 
 //  See http://www.boost.org/ for updates, documentation, and revision history.
 
-#ifndef BOOST_STRING_FINDER_HPP
-#define BOOST_STRING_FINDER_HPP
+#ifndef NDNBOOST_STRING_FINDER_HPP
+#define NDNBOOST_STRING_FINDER_HPP
 
 #include <ndnboost/algorithm/string/config.hpp>
 
@@ -48,13 +48,13 @@
         */
         template<typename RangeT>
         inline detail::first_finderF<
-            BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type,
+            NDNBOOST_STRING_TYPENAME range_const_iterator<RangeT>::type,
             is_equal>
         first_finder( const RangeT& Search )
         {
             return 
                 detail::first_finderF<
-                    BOOST_STRING_TYPENAME 
+                    NDNBOOST_STRING_TYPENAME 
                         range_const_iterator<RangeT>::type,
                         is_equal>( ::ndnboost::as_literal(Search), is_equal() ) ;
         }
@@ -65,14 +65,14 @@
         */
         template<typename RangeT,typename PredicateT>
         inline detail::first_finderF<
-            BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type,
+            NDNBOOST_STRING_TYPENAME range_const_iterator<RangeT>::type,
             PredicateT>
         first_finder( 
             const RangeT& Search, PredicateT Comp )
         {
             return 
                 detail::first_finderF<
-                    BOOST_STRING_TYPENAME 
+                    NDNBOOST_STRING_TYPENAME 
                         range_const_iterator<RangeT>::type,
                     PredicateT>( ::ndnboost::as_literal(Search), Comp );
         }
@@ -89,13 +89,13 @@
         */
         template<typename RangeT>
         inline detail::last_finderF<
-            BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type,
+            NDNBOOST_STRING_TYPENAME range_const_iterator<RangeT>::type,
             is_equal>
         last_finder( const RangeT& Search )
         {
             return 
                 detail::last_finderF<
-                    BOOST_STRING_TYPENAME 
+                    NDNBOOST_STRING_TYPENAME 
                         range_const_iterator<RangeT>::type,
                     is_equal>( ::ndnboost::as_literal(Search), is_equal() );
         }
@@ -105,13 +105,13 @@
         */
         template<typename RangeT, typename PredicateT>
         inline detail::last_finderF<
-            BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type,
+            NDNBOOST_STRING_TYPENAME range_const_iterator<RangeT>::type,
             PredicateT>
         last_finder( const RangeT& Search, PredicateT Comp )
         {
             return 
                 detail::last_finderF<
-                    BOOST_STRING_TYPENAME 
+                    NDNBOOST_STRING_TYPENAME 
                         range_const_iterator<RangeT>::type,
                     PredicateT>( ::ndnboost::as_literal(Search), Comp ) ;
         }
@@ -129,7 +129,7 @@
         */
         template<typename RangeT>
         inline detail::nth_finderF<
-            BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type,
+            NDNBOOST_STRING_TYPENAME range_const_iterator<RangeT>::type,
             is_equal>
         nth_finder( 
             const RangeT& Search, 
@@ -137,7 +137,7 @@
         {
             return 
                 detail::nth_finderF<
-                    BOOST_STRING_TYPENAME 
+                    NDNBOOST_STRING_TYPENAME 
                         range_const_iterator<RangeT>::type,
                     is_equal>( ::ndnboost::as_literal(Search), Nth, is_equal() ) ;
         }
@@ -147,7 +147,7 @@
         */
         template<typename RangeT, typename PredicateT>
         inline detail::nth_finderF<
-            BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type,
+            NDNBOOST_STRING_TYPENAME range_const_iterator<RangeT>::type,
             PredicateT>
         nth_finder( 
             const RangeT& Search, 
@@ -156,7 +156,7 @@
         {
             return 
                 detail::nth_finderF<
-                    BOOST_STRING_TYPENAME 
+                    NDNBOOST_STRING_TYPENAME 
                         range_const_iterator<RangeT>::type,
                     PredicateT>( ::ndnboost::as_literal(Search), Nth, Comp );
         }
@@ -267,4 +267,4 @@
 } // namespace ndnboost
 
 
-#endif  // BOOST_STRING_FINDER_HPP
+#endif  // NDNBOOST_STRING_FINDER_HPP
diff --git a/include/ndnboost/algorithm/string/formatter.hpp b/include/ndnboost/algorithm/string/formatter.hpp
index 5739b40..746d268 100644
--- a/include/ndnboost/algorithm/string/formatter.hpp
+++ b/include/ndnboost/algorithm/string/formatter.hpp
@@ -8,8 +8,8 @@
 
 //  See http://www.boost.org/ for updates, documentation, and revision history.
 
-#ifndef BOOST_STRING_FORMATTER_HPP
-#define BOOST_STRING_FORMATTER_HPP
+#ifndef NDNBOOST_STRING_FORMATTER_HPP
+#define NDNBOOST_STRING_FORMATTER_HPP
 
 #include <ndnboost/detail/iterator.hpp>
 #include <ndnboost/range/value_type.hpp>
@@ -45,12 +45,12 @@
         template<typename RangeT>
         inline detail::const_formatF<
             iterator_range<
-                BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> >
+                NDNBOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> >
         const_formatter(const RangeT& Format)
         {
             return detail::const_formatF<
                 iterator_range<
-                    BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> >(::ndnboost::as_literal(Format));
+                    NDNBOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> >(::ndnboost::as_literal(Format));
         }
 
         //! Identity formatter
@@ -63,12 +63,12 @@
         template<typename RangeT>
         inline detail::identity_formatF<
             iterator_range<
-                BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> >
+                NDNBOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> >
         identity_formatter()
         {
             return detail::identity_formatF<
                 iterator_range<
-                    BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> >();
+                    NDNBOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> >();
         }
 
         //! Empty formatter
@@ -82,11 +82,11 @@
         */
         template<typename RangeT>
         inline detail::empty_formatF< 
-            BOOST_STRING_TYPENAME range_value<RangeT>::type>
+            NDNBOOST_STRING_TYPENAME range_value<RangeT>::type>
         empty_formatter(const RangeT&)
         {
             return detail::empty_formatF<
-                BOOST_STRING_TYPENAME range_value<RangeT>::type>();
+                NDNBOOST_STRING_TYPENAME range_value<RangeT>::type>();
         }
 
         //! Empty formatter
@@ -117,4 +117,4 @@
 } // namespace ndnboost
 
 
-#endif  // BOOST_FORMATTER_HPP
+#endif  // NDNBOOST_FORMATTER_HPP
diff --git a/include/ndnboost/algorithm/string/replace.hpp b/include/ndnboost/algorithm/string/replace.hpp
index 11afce4..0d15e64 100644
--- a/include/ndnboost/algorithm/string/replace.hpp
+++ b/include/ndnboost/algorithm/string/replace.hpp
@@ -8,8 +8,8 @@
 
 //  See http://www.boost.org/ for updates, documentation, and revision history.
 
-#ifndef BOOST_STRING_REPLACE_HPP
-#define BOOST_STRING_REPLACE_HPP
+#ifndef NDNBOOST_STRING_REPLACE_HPP
+#define NDNBOOST_STRING_REPLACE_HPP
 
 #include <ndnboost/algorithm/string/config.hpp>
 
@@ -57,7 +57,7 @@
             OutputIteratorT Output,
             const Range1T& Input,
             const iterator_range<
-                BOOST_STRING_TYPENAME 
+                NDNBOOST_STRING_TYPENAME 
                     range_const_iterator<Range1T>::type>& SearchRange,
             const Range2T& Format)
         {
@@ -76,7 +76,7 @@
         inline SequenceT replace_range_copy( 
             const SequenceT& Input,
             const iterator_range<
-                BOOST_STRING_TYPENAME 
+                NDNBOOST_STRING_TYPENAME 
                     range_const_iterator<SequenceT>::type>& SearchRange,
             const RangeT& Format)
         {
@@ -99,7 +99,7 @@
         inline void replace_range( 
             SequenceT& Input,
             const iterator_range<
-                BOOST_STRING_TYPENAME 
+                NDNBOOST_STRING_TYPENAME 
                     range_iterator<SequenceT>::type>& SearchRange,
             const RangeT& Format)
         {
@@ -925,4 +925,4 @@
 
 } // namespace ndnboost
 
-#endif  // BOOST_REPLACE_HPP
+#endif  // NDNBOOST_REPLACE_HPP
diff --git a/include/ndnboost/algorithm/string/sequence_traits.hpp b/include/ndnboost/algorithm/string/sequence_traits.hpp
index b0de2d7..a337fa3 100644
--- a/include/ndnboost/algorithm/string/sequence_traits.hpp
+++ b/include/ndnboost/algorithm/string/sequence_traits.hpp
@@ -8,8 +8,8 @@
 
 //  See http://www.boost.org/ for updates, documentation, and revision history.
 
-#ifndef BOOST_STRING_SEQUENCE_TRAITS_HPP
-#define BOOST_STRING_SEQUENCE_TRAITS_HPP
+#ifndef NDNBOOST_STRING_SEQUENCE_TRAITS_HPP
+#define NDNBOOST_STRING_SEQUENCE_TRAITS_HPP
 
 #include <ndnboost/config.hpp>
 #include <ndnboost/mpl/bool.hpp>
@@ -36,7 +36,7 @@
 
 //  sequence traits  -----------------------------------------------//
 
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#ifdef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
         //! Native replace tester
         /*!
@@ -76,7 +76,7 @@
         */
         no_type has_const_time_erase_tester(...);
 
-#endif //BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif //NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
         //! Native replace trait
         /*!
@@ -86,20 +86,20 @@
         class has_native_replace
         {
 
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#ifdef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
         private:
             static T* t;
         public:
-            BOOST_STATIC_CONSTANT(bool, value=(
+            NDNBOOST_STATIC_CONSTANT(bool, value=(
                 sizeof(has_native_replace_tester(t))==sizeof(yes_type) ) );
-#else  // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#else  // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
         public:
-#    if BOOST_WORKAROUND( __IBMCPP__, <= 600 )
+#    if NDNBOOST_WORKAROUND( __IBMCPP__, <= 600 )
             enum { value = false };
 #    else
-            BOOST_STATIC_CONSTANT(bool, value=false);
-#    endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 )
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+            NDNBOOST_STATIC_CONSTANT(bool, value=false);
+#    endif // NDNBOOST_WORKAROUND( __IBMCPP__, <= 600 )
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 
             typedef mpl::bool_<has_native_replace<T>::value> type;
@@ -114,20 +114,20 @@
         template< typename T >
         class has_stable_iterators
         {
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#ifdef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
         private:
             static T* t;
         public:
-            BOOST_STATIC_CONSTANT(bool, value=(
+            NDNBOOST_STATIC_CONSTANT(bool, value=(
                 sizeof(has_stable_iterators_tester(t))==sizeof(yes_type) ) );
-#else  // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#else  // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
         public:
-#    if BOOST_WORKAROUND( __IBMCPP__, <= 600 )
+#    if NDNBOOST_WORKAROUND( __IBMCPP__, <= 600 )
             enum { value = false };
 #    else
-            BOOST_STATIC_CONSTANT(bool, value=false);
-#    endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 )
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+            NDNBOOST_STATIC_CONSTANT(bool, value=false);
+#    endif // NDNBOOST_WORKAROUND( __IBMCPP__, <= 600 )
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
             typedef mpl::bool_<has_stable_iterators<T>::value> type;
         };
@@ -141,20 +141,20 @@
         template< typename T >
         class has_const_time_insert
         {
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#ifdef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
         private:
             static T* t;
         public:
-            BOOST_STATIC_CONSTANT(bool, value=(
+            NDNBOOST_STATIC_CONSTANT(bool, value=(
                 sizeof(has_const_time_insert_tester(t))==sizeof(yes_type) ) );
-#else  // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#else  // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
         public:
-#    if BOOST_WORKAROUND( __IBMCPP__, <= 600 )
+#    if NDNBOOST_WORKAROUND( __IBMCPP__, <= 600 )
             enum { value = false };
 #    else
-            BOOST_STATIC_CONSTANT(bool, value=false);
-#    endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 )
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+            NDNBOOST_STATIC_CONSTANT(bool, value=false);
+#    endif // NDNBOOST_WORKAROUND( __IBMCPP__, <= 600 )
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
             typedef mpl::bool_<has_const_time_insert<T>::value> type;
         };
@@ -168,20 +168,20 @@
         template< typename T >
         class has_const_time_erase
         {
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#ifdef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
         private:
             static T* t;
         public:
-            BOOST_STATIC_CONSTANT(bool, value=(
+            NDNBOOST_STATIC_CONSTANT(bool, value=(
                 sizeof(has_const_time_erase_tester(t))==sizeof(yes_type) ) );
-#else  // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#else  // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
         public:
-#    if BOOST_WORKAROUND( __IBMCPP__, <= 600 )
+#    if NDNBOOST_WORKAROUND( __IBMCPP__, <= 600 )
             enum { value = false };
 #    else
-            BOOST_STATIC_CONSTANT(bool, value=false);
-#    endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 )
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+            NDNBOOST_STATIC_CONSTANT(bool, value=false);
+#    endif // NDNBOOST_WORKAROUND( __IBMCPP__, <= 600 )
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
             typedef mpl::bool_<has_const_time_erase<T>::value> type;
         };
@@ -190,4 +190,4 @@
 } // namespace ndnboost
 
 
-#endif  // BOOST_STRING_SEQUENCE_TRAITS_HPP
+#endif  // NDNBOOST_STRING_SEQUENCE_TRAITS_HPP
diff --git a/include/ndnboost/algorithm/string/yes_no_type.hpp b/include/ndnboost/algorithm/string/yes_no_type.hpp
index 740c7b1..97f1d8d 100644
--- a/include/ndnboost/algorithm/string/yes_no_type.hpp
+++ b/include/ndnboost/algorithm/string/yes_no_type.hpp
@@ -8,8 +8,8 @@
 
 //  See http://www.boost.org/ for updates, documentation, and revision history.
 
-#ifndef BOOST_STRING_YES_NO_TYPE_DETAIL_HPP
-#define BOOST_STRING_YES_NO_TYPE_DETAIL_HPP
+#ifndef NDNBOOST_STRING_YES_NO_TYPE_DETAIL_HPP
+#define NDNBOOST_STRING_YES_NO_TYPE_DETAIL_HPP
 
 namespace ndnboost {
     namespace algorithm {
@@ -30,4 +30,4 @@
 } // namespace ndnboost
 
 
-#endif  // BOOST_STRING_YES_NO_TYPE_DETAIL_HPP
+#endif  // NDNBOOST_STRING_YES_NO_TYPE_DETAIL_HPP
diff --git a/include/ndnboost/aligned_storage.hpp b/include/ndnboost/aligned_storage.hpp
index a462bb9..676132e 100644
--- a/include/ndnboost/aligned_storage.hpp
+++ b/include/ndnboost/aligned_storage.hpp
@@ -10,8 +10,8 @@
 // accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_ALIGNED_STORAGE_HPP
-#define BOOST_ALIGNED_STORAGE_HPP
+#ifndef NDNBOOST_ALIGNED_STORAGE_HPP
+#define NDNBOOST_ALIGNED_STORAGE_HPP
 
 #include <cstddef> // for std::size_t
 
@@ -30,7 +30,7 @@
 
 namespace detail { namespace aligned_storage {
 
-BOOST_STATIC_CONSTANT(
+NDNBOOST_STATIC_CONSTANT(
       std::size_t
     , alignment_of_max_align = ::ndnboost::alignment_of<max_align>::value
     );
@@ -83,11 +83,11 @@
 
     typedef detail::aligned_storage::aligned_storage_imp<size_, alignment_> type;
 
-    BOOST_STATIC_CONSTANT(
+    NDNBOOST_STATIC_CONSTANT(
           std::size_t
         , size = size_
         );
-    BOOST_STATIC_CONSTANT(
+    NDNBOOST_STATIC_CONSTANT(
           std::size_t
         , alignment = (
               alignment_ == std::size_t(-1)
@@ -132,7 +132,7 @@
         return static_cast<type*>(this)->address();
     }
 
-#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
 
     const void* address() const
     {
@@ -147,7 +147,7 @@
 
 };
 
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
 
 // MSVC6 seems not to like inline functions with const void* returns, so we
 // declare the following here:
@@ -160,16 +160,16 @@
 
 #endif // MSVC6 workaround
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 //
 // Make sure that is_pod recognises aligned_storage<>::type
 // as a POD (Note that aligned_storage<> itself is not a POD):
 //
 template <std::size_t size_, std::size_t alignment_>
 struct is_pod<ndnboost::detail::aligned_storage::aligned_storage_imp<size_,alignment_> >
-   BOOST_TT_AUX_BOOL_C_BASE(true)
+   NDNBOOST_TT_AUX_BOOL_C_BASE(true)
 { 
-    BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(true)
+    NDNBOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(true)
 }; 
 #endif
 
@@ -178,4 +178,4 @@
 
 #include "ndnboost/type_traits/detail/bool_trait_undef.hpp"
 
-#endif // BOOST_ALIGNED_STORAGE_HPP
+#endif // NDNBOOST_ALIGNED_STORAGE_HPP
diff --git a/include/ndnboost/any.hpp b/include/ndnboost/any.hpp
index 5127932..eeefb64 100644
--- a/include/ndnboost/any.hpp
+++ b/include/ndnboost/any.hpp
@@ -1,7 +1,7 @@
 // See http://www.boost.org/libs/any for Documentation.
 
-#ifndef BOOST_ANY_INCLUDED
-#define BOOST_ANY_INCLUDED
+#ifndef NDNBOOST_ANY_INCLUDED
+#define NDNBOOST_ANY_INCLUDED
 
 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
 # pragma once
@@ -26,13 +26,13 @@
 #include <ndnboost/type_traits/is_same.hpp>
 
 // See ndnboost/python/type_id.hpp
-// TODO: add BOOST_TYPEID_COMPARE_BY_NAME to config.hpp
+// TODO: add NDNBOOST_TYPEID_COMPARE_BY_NAME to config.hpp
 # if (defined(__GNUC__) && __GNUC__ >= 3) \
  || defined(_AIX) \
  || (   defined(__sgi) && defined(__host_mips)) \
  || (defined(__hpux) && defined(__HP_aCC)) \
  || (defined(linux) && defined(__INTEL_COMPILER) && defined(__ICC))
-#  define BOOST_AUX_ANY_TYPE_ID_NAME
+#  define NDNBOOST_AUX_ANY_TYPE_ID_NAME
 #include <cstring>
 # endif 
 
@@ -42,7 +42,7 @@
     {
     public: // structors
 
-        any() BOOST_NOEXCEPT
+        any() NDNBOOST_NOEXCEPT
           : content(0)
         {
         }
@@ -58,9 +58,9 @@
         {
         }
 
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
+#ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
         // Move constructor
-        any(any&& other) BOOST_NOEXCEPT
+        any(any&& other) NDNBOOST_NOEXCEPT
           : content(other.content)
         {
             other.content = 0;
@@ -74,21 +74,21 @@
         }
 #endif
 
-        ~any() BOOST_NOEXCEPT
+        ~any() NDNBOOST_NOEXCEPT
         {
             delete content;
         }
 
     public: // modifiers
 
-        any & swap(any & rhs) BOOST_NOEXCEPT
+        any & swap(any & rhs) NDNBOOST_NOEXCEPT
         {
             std::swap(content, rhs.content);
             return *this;
         }
 
 
-#ifdef BOOST_NO_CXX11_RVALUE_REFERENCES
+#ifdef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
         template<typename ValueType>
         any & operator=(const ValueType & rhs)
         {
@@ -110,7 +110,7 @@
         }
 
         // move assignement
-        any & operator=(any&& rhs) BOOST_NOEXCEPT
+        any & operator=(any&& rhs) NDNBOOST_NOEXCEPT
         {
             rhs.swap(*this);
             any().swap(rhs);
@@ -128,7 +128,7 @@
 
     public: // queries
 
-        bool empty() const BOOST_NOEXCEPT
+        bool empty() const NDNBOOST_NOEXCEPT
         {
             return !content;
         }
@@ -138,7 +138,7 @@
             return content ? content->type() : typeid(void);
         }
 
-#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
+#ifndef NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS
     private: // types
 #else
     public: // types (public so any_cast can be non-friend)
@@ -170,7 +170,7 @@
             {
             }
 
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
+#ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
             holder(ValueType&& value)
               : held(static_cast< ValueType&& >(value))
             {
@@ -196,15 +196,15 @@
             holder & operator=(const holder &);
         };
 
-#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
+#ifndef NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS
 
     private: // representation
 
         template<typename ValueType>
-        friend ValueType * any_cast(any *) BOOST_NOEXCEPT;
+        friend ValueType * any_cast(any *) NDNBOOST_NOEXCEPT;
 
         template<typename ValueType>
-        friend ValueType * unsafe_any_cast(any *) BOOST_NOEXCEPT;
+        friend ValueType * unsafe_any_cast(any *) NDNBOOST_NOEXCEPT;
 
 #else
 
@@ -216,7 +216,7 @@
 
     };
  
-    inline void swap(any & lhs, any & rhs) BOOST_NOEXCEPT
+    inline void swap(any & lhs, any & rhs) NDNBOOST_NOEXCEPT
     {
         lhs.swap(rhs);
     }
@@ -232,10 +232,10 @@
     };
 
     template<typename ValueType>
-    ValueType * any_cast(any * operand) BOOST_NOEXCEPT
+    ValueType * any_cast(any * operand) NDNBOOST_NOEXCEPT
     {
         return operand && 
-#ifdef BOOST_AUX_ANY_TYPE_ID_NAME
+#ifdef NDNBOOST_AUX_ANY_TYPE_ID_NAME
             std::strcmp(operand->type().name(), typeid(ValueType).name()) == 0
 #else
             operand->type() == typeid(ValueType)
@@ -245,7 +245,7 @@
     }
 
     template<typename ValueType>
-    inline const ValueType * any_cast(const any * operand) BOOST_NOEXCEPT
+    inline const ValueType * any_cast(const any * operand) NDNBOOST_NOEXCEPT
     {
         return any_cast<ValueType>(const_cast<any *>(operand));
     }
@@ -253,16 +253,16 @@
     template<typename ValueType>
     ValueType any_cast(any & operand)
     {
-        typedef BOOST_DEDUCED_TYPENAME remove_reference<ValueType>::type nonref;
+        typedef NDNBOOST_DEDUCED_TYPENAME remove_reference<ValueType>::type nonref;
 
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#ifdef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
         // If 'nonref' is still reference type, it means the user has not
         // specialized 'remove_reference'.
 
-        // Please use BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION macro
+        // Please use NDNBOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION macro
         // to generate specialization of remove_reference for your class
         // See type traits library documentation for details
-        BOOST_STATIC_ASSERT(!is_reference<nonref>::value);
+        NDNBOOST_STATIC_ASSERT(!is_reference<nonref>::value);
 #endif
 
         nonref * result = any_cast<nonref>(&operand);
@@ -274,12 +274,12 @@
     template<typename ValueType>
     inline ValueType any_cast(const any & operand)
     {
-        typedef BOOST_DEDUCED_TYPENAME remove_reference<ValueType>::type nonref;
+        typedef NDNBOOST_DEDUCED_TYPENAME remove_reference<ValueType>::type nonref;
 
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#ifdef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
         // The comment in the above version of 'any_cast' explains when this
         // assert is fired and what to do.
-        BOOST_STATIC_ASSERT(!is_reference<nonref>::value);
+        NDNBOOST_STATIC_ASSERT(!is_reference<nonref>::value);
 #endif
 
         return any_cast<const nonref &>(const_cast<any &>(operand));
@@ -291,13 +291,13 @@
     // use typeid() comparison, e.g., when our types may travel across
     // different shared libraries.
     template<typename ValueType>
-    inline ValueType * unsafe_any_cast(any * operand) BOOST_NOEXCEPT
+    inline ValueType * unsafe_any_cast(any * operand) NDNBOOST_NOEXCEPT
     {
         return &static_cast<any::holder<ValueType> *>(operand->content)->held;
     }
 
     template<typename ValueType>
-    inline const ValueType * unsafe_any_cast(const any * operand) BOOST_NOEXCEPT
+    inline const ValueType * unsafe_any_cast(const any * operand) NDNBOOST_NOEXCEPT
     {
         return unsafe_any_cast<ValueType>(const_cast<any *>(operand));
     }
diff --git a/include/ndnboost/array.hpp b/include/ndnboost/array.hpp
index ab70a47..e17fcbc 100644
--- a/include/ndnboost/array.hpp
+++ b/include/ndnboost/array.hpp
@@ -19,7 +19,7 @@
  *      See <http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#776> or Trac issue #3168
  *      Eventually, we should remove "assign" which is now a synonym for "fill" (Marshall Clow)
  * 10 Mar 2010 - added workaround for SUNCC and !STLPort [trac #3893] (Marshall Clow)
- * 29 Jan 2004 - c_array() added, BOOST_NO_PRIVATE_IN_AGGREGATE removed (Nico Josuttis)
+ * 29 Jan 2004 - c_array() added, NDNBOOST_NO_PRIVATE_IN_AGGREGATE removed (Nico Josuttis)
  * 23 Aug 2002 - fix for Non-MSVC compilers combined with MSVC libraries.
  * 05 Aug 2001 - minor update (Nico Josuttis)
  * 20 Jan 2001 - STLport fix (Beman Dawes)
@@ -27,12 +27,12 @@
  *
  * Jan 29, 2004
  */
-#ifndef BOOST_ARRAY_HPP
-#define BOOST_ARRAY_HPP
+#ifndef NDNBOOST_ARRAY_HPP
+#define NDNBOOST_ARRAY_HPP
 
 #include <ndnboost/detail/workaround.hpp>
 
-#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400)  
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, >= 1400)  
 # pragma warning(push)  
 # pragma warning(disable:4996) // 'std::equal': Function call with parameters that may be unsafe
 # pragma warning(disable:4510) // ndnboost::array<T,N>' : default constructor could not be generated 
@@ -81,10 +81,10 @@
         const_iterator cend() const { return elems+N; }
 
         // reverse iterator support
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_MSVC_STD_ITERATOR) && !defined(BOOST_NO_STD_ITERATOR_TRAITS)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(NDNBOOST_MSVC_STD_ITERATOR) && !defined(NDNBOOST_NO_STD_ITERATOR_TRAITS)
         typedef std::reverse_iterator<iterator> reverse_iterator;
         typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
-#elif defined(_MSC_VER) && (_MSC_VER == 1300) && defined(BOOST_DINKUMWARE_STDLIB) && (BOOST_DINKUMWARE_STDLIB == 310)
+#elif defined(_MSC_VER) && (_MSC_VER == 1300) && defined(NDNBOOST_DINKUMWARE_STDLIB) && (NDNBOOST_DINKUMWARE_STDLIB == 310)
         // workaround for broken reverse_iterator in VC7
         typedef std::reverse_iterator<std::_Ptrit<value_type, difference_type, iterator,
                                       reference, iterator, reference> > reverse_iterator;
@@ -120,13 +120,13 @@
         // operator[]
         reference operator[](size_type i) 
         { 
-            BOOST_ASSERT_MSG( i < N, "out of range" );
+            NDNBOOST_ASSERT_MSG( i < N, "out of range" );
             return elems[i];
         }
         
         const_reference operator[](size_type i) const 
         {     
-            BOOST_ASSERT_MSG( i < N, "out of range" );
+            NDNBOOST_ASSERT_MSG( i < N, "out of range" );
             return elems[i]; 
         }
 
@@ -198,7 +198,7 @@
 
     };
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
     template< class T >
     class array< T, 0 > {
 
@@ -222,10 +222,10 @@
         const_iterator cend() const { return cbegin(); }
 
         // reverse iterator support
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_MSVC_STD_ITERATOR) && !defined(BOOST_NO_STD_ITERATOR_TRAITS)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(NDNBOOST_MSVC_STD_ITERATOR) && !defined(NDNBOOST_NO_STD_ITERATOR_TRAITS)
         typedef std::reverse_iterator<iterator> reverse_iterator;
         typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
-#elif defined(_MSC_VER) && (_MSC_VER == 1300) && defined(BOOST_DINKUMWARE_STDLIB) && (BOOST_DINKUMWARE_STDLIB == 310)
+#elif defined(_MSC_VER) && (_MSC_VER == 1300) && defined(NDNBOOST_DINKUMWARE_STDLIB) && (NDNBOOST_DINKUMWARE_STDLIB == 310)
         // workaround for broken reverse_iterator in VC7
         typedef std::reverse_iterator<std::_Ptrit<value_type, difference_type, iterator,
                                       reference, iterator, reference> > reverse_iterator;
@@ -324,7 +324,7 @@
         static reference failed_rangecheck () {
                 std::out_of_range e("attempt to access element of an empty array");
                 ndnboost::throw_exception(e);
-#if defined(BOOST_NO_EXCEPTIONS) || (!defined(BOOST_MSVC) && !defined(__PATHSCALE__))
+#if defined(NDNBOOST_NO_EXCEPTIONS) || (!defined(NDNBOOST_MSVC) && !defined(__PATHSCALE__))
                 //
                 // We need to return something here to keep
                 // some compilers happy: however we will never
@@ -439,8 +439,8 @@
 } /* namespace ndnboost */
 
 
-#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400)  
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, >= 1400)  
 # pragma warning(pop)  
 #endif 
 
-#endif /*BOOST_ARRAY_HPP*/
+#endif /*NDNBOOST_ARRAY_HPP*/
diff --git a/include/ndnboost/assert.hpp b/include/ndnboost/assert.hpp
index 0132fca..7c7a672 100644
--- a/include/ndnboost/assert.hpp
+++ b/include/ndnboost/assert.hpp
@@ -1,7 +1,7 @@
 //
-//  ndnboost/assert.hpp - BOOST_ASSERT(expr)
-//                     BOOST_ASSERT_MSG(expr, msg)
-//                     BOOST_VERIFY(expr)
+//  ndnboost/assert.hpp - NDNBOOST_ASSERT(expr)
+//                     NDNBOOST_ASSERT_MSG(expr, msg)
+//                     NDNBOOST_VERIFY(expr)
 //
 //  Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd.
 //  Copyright (c) 2007 Peter Dimov
@@ -23,16 +23,16 @@
 //
 
 //--------------------------------------------------------------------------------------//
-//                                     BOOST_ASSERT                                     //
+//                                     NDNBOOST_ASSERT                                     //
 //--------------------------------------------------------------------------------------//
 
-#undef BOOST_ASSERT
+#undef NDNBOOST_ASSERT
 
-#if defined(BOOST_DISABLE_ASSERTS)
+#if defined(NDNBOOST_DISABLE_ASSERTS)
 
-# define BOOST_ASSERT(expr) ((void)0)
+# define NDNBOOST_ASSERT(expr) ((void)0)
 
-#elif defined(BOOST_ENABLE_ASSERT_HANDLER)
+#elif defined(NDNBOOST_ENABLE_ASSERT_HANDLER)
 
 #include <ndnboost/current_function.hpp>
 
@@ -42,26 +42,26 @@
                         char const * function, char const * file, long line); // user defined
 } // namespace ndnboost
 
-#define BOOST_ASSERT(expr) ((expr) \
+#define NDNBOOST_ASSERT(expr) ((expr) \
   ? ((void)0) \
-  : ::ndnboost::assertion_failed(#expr, BOOST_CURRENT_FUNCTION, __FILE__, __LINE__))
+  : ::ndnboost::assertion_failed(#expr, NDNBOOST_CURRENT_FUNCTION, __FILE__, __LINE__))
 
 #else
 # include <assert.h> // .h to support old libraries w/o <cassert> - effect is the same
-# define BOOST_ASSERT(expr) assert(expr)
+# define NDNBOOST_ASSERT(expr) assert(expr)
 #endif
 
 //--------------------------------------------------------------------------------------//
-//                                   BOOST_ASSERT_MSG                                   //
+//                                   NDNBOOST_ASSERT_MSG                                   //
 //--------------------------------------------------------------------------------------//
 
-# undef BOOST_ASSERT_MSG
+# undef NDNBOOST_ASSERT_MSG
 
-#if defined(BOOST_DISABLE_ASSERTS) || defined(NDEBUG)
+#if defined(NDNBOOST_DISABLE_ASSERTS) || defined(NDEBUG)
 
-  #define BOOST_ASSERT_MSG(expr, msg) ((void)0)
+  #define NDNBOOST_ASSERT_MSG(expr, msg) ((void)0)
 
-#elif defined(BOOST_ENABLE_ASSERT_HANDLER)
+#elif defined(NDNBOOST_ENABLE_ASSERT_HANDLER)
 
   #include <ndnboost/current_function.hpp>
 
@@ -71,21 +71,21 @@
                               char const * function, char const * file, long line); // user defined
   } // namespace ndnboost
 
-  #define BOOST_ASSERT_MSG(expr, msg) ((expr) \
+  #define NDNBOOST_ASSERT_MSG(expr, msg) ((expr) \
     ? ((void)0) \
-    : ::ndnboost::assertion_failed_msg(#expr, msg, BOOST_CURRENT_FUNCTION, __FILE__, __LINE__))
+    : ::ndnboost::assertion_failed_msg(#expr, msg, NDNBOOST_CURRENT_FUNCTION, __FILE__, __LINE__))
 
 #else
-  #ifndef BOOST_ASSERT_HPP
-    #define BOOST_ASSERT_HPP
+  #ifndef NDNBOOST_ASSERT_HPP
+    #define NDNBOOST_ASSERT_HPP
     #include <cstdlib>
     #include <iostream>
     #include <ndnboost/current_function.hpp>
 
     //  IDE's like Visual Studio perform better if output goes to std::cout or
     //  some other stream, so allow user to configure output stream:
-    #ifndef BOOST_ASSERT_MSG_OSTREAM
-    # define BOOST_ASSERT_MSG_OSTREAM std::cerr
+    #ifndef NDNBOOST_ASSERT_MSG_OSTREAM
+    # define NDNBOOST_ASSERT_MSG_OSTREAM std::cerr
     #endif
 
     namespace ndnboost
@@ -97,7 +97,7 @@
           inline void assertion_failed_msg(char const * expr, char const * msg, char const * function,
             char const * file, long line)
           {
-            BOOST_ASSERT_MSG_OSTREAM
+            NDNBOOST_ASSERT_MSG_OSTREAM
               << "***** Internal Program Error - assertion (" << expr << ") failed in "
               << function << ":\n"
               << file << '(' << line << "): " << msg << std::endl;
@@ -113,24 +113,24 @@
     } // detail
   #endif
 
-  #define BOOST_ASSERT_MSG(expr, msg) ((expr) \
+  #define NDNBOOST_ASSERT_MSG(expr, msg) ((expr) \
     ? ((void)0) \
     : ::ndnboost::assertion::detail::assertion_failed_msg(#expr, msg, \
-          BOOST_CURRENT_FUNCTION, __FILE__, __LINE__))
+          NDNBOOST_CURRENT_FUNCTION, __FILE__, __LINE__))
 #endif
 
 //--------------------------------------------------------------------------------------//
-//                                     BOOST_VERIFY                                     //
+//                                     NDNBOOST_VERIFY                                     //
 //--------------------------------------------------------------------------------------//
 
-#undef BOOST_VERIFY
+#undef NDNBOOST_VERIFY
 
-#if defined(BOOST_DISABLE_ASSERTS) || ( !defined(BOOST_ENABLE_ASSERT_HANDLER) && defined(NDEBUG) )
+#if defined(NDNBOOST_DISABLE_ASSERTS) || ( !defined(NDNBOOST_ENABLE_ASSERT_HANDLER) && defined(NDEBUG) )
 
-# define BOOST_VERIFY(expr) ((void)(expr))
+# define NDNBOOST_VERIFY(expr) ((void)(expr))
 
 #else
 
-# define BOOST_VERIFY(expr) BOOST_ASSERT(expr)
+# define NDNBOOST_VERIFY(expr) NDNBOOST_ASSERT(expr)
 
 #endif
diff --git a/include/ndnboost/bind.hpp b/include/ndnboost/bind.hpp
index 4421619..3653c87 100644
--- a/include/ndnboost/bind.hpp
+++ b/include/ndnboost/bind.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_BIND_HPP_INCLUDED
-#define BOOST_BIND_HPP_INCLUDED
+#ifndef NDNBOOST_BIND_HPP_INCLUDED
+#define NDNBOOST_BIND_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -21,4 +21,4 @@
 
 #include <ndnboost/bind/bind.hpp>
 
-#endif // #ifndef BOOST_BIND_HPP_INCLUDED
+#endif // #ifndef NDNBOOST_BIND_HPP_INCLUDED
diff --git a/include/ndnboost/bind/apply.hpp b/include/ndnboost/bind/apply.hpp
index 8519c06..a1d96bd 100644
--- a/include/ndnboost/bind/apply.hpp
+++ b/include/ndnboost/bind/apply.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_BIND_APPLY_HPP_INCLUDED
-#define BOOST_BIND_APPLY_HPP_INCLUDED
+#ifndef NDNBOOST_BIND_APPLY_HPP_INCLUDED
+#define NDNBOOST_BIND_APPLY_HPP_INCLUDED
 
 //
 //  apply.hpp
@@ -71,4 +71,4 @@
 
 } // namespace ndnboost
 
-#endif // #ifndef BOOST_BIND_APPLY_HPP_INCLUDED
+#endif // #ifndef NDNBOOST_BIND_APPLY_HPP_INCLUDED
diff --git a/include/ndnboost/bind/arg.hpp b/include/ndnboost/bind/arg.hpp
index 7551575..d420e7f 100644
--- a/include/ndnboost/bind/arg.hpp
+++ b/include/ndnboost/bind/arg.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_BIND_ARG_HPP_INCLUDED
-#define BOOST_BIND_ARG_HPP_INCLUDED
+#ifndef NDNBOOST_BIND_ARG_HPP_INCLUDED
+#define NDNBOOST_BIND_ARG_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -43,7 +43,7 @@
     return true;
 }
 
-#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
+#if !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
 
 template< int I > struct is_placeholder< arg<I> >
 {
@@ -59,4 +59,4 @@
 
 } // namespace ndnboost
 
-#endif // #ifndef BOOST_BIND_ARG_HPP_INCLUDED
+#endif // #ifndef NDNBOOST_BIND_ARG_HPP_INCLUDED
diff --git a/include/ndnboost/bind/bind.hpp b/include/ndnboost/bind/bind.hpp
index db16788..bf0bb2b 100644
--- a/include/ndnboost/bind/bind.hpp
+++ b/include/ndnboost/bind/bind.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_BIND_BIND_HPP_INCLUDED
-#define BOOST_BIND_BIND_HPP_INCLUDED
+#ifndef NDNBOOST_BIND_BIND_HPP_INCLUDED
+#define NDNBOOST_BIND_BIND_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -33,14 +33,14 @@
 // Borland-specific bug, visit_each() silently fails to produce code
 
 #if defined(__BORLANDC__)
-#  define BOOST_BIND_VISIT_EACH ndnboost::visit_each
+#  define NDNBOOST_BIND_VISIT_EACH ndnboost::visit_each
 #else
-#  define BOOST_BIND_VISIT_EACH visit_each
+#  define NDNBOOST_BIND_VISIT_EACH visit_each
 #endif
 
 #include <ndnboost/bind/storage.hpp>
 
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
 # pragma warning(push)
 # pragma warning(disable: 4512) // assignment operator could not be generated
 #endif
@@ -60,7 +60,7 @@
     typedef R type;
 };
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING)
 
 struct unspecified {};
 
@@ -207,7 +207,7 @@
     }
 };
 
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
 // MSVC is bright enough to realise that the parameter rhs 
 // in operator==may be unused for some template argument types:
 #pragma warning(push)
@@ -853,13 +853,13 @@
     }
 };
 
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
 #pragma warning(pop)
 #endif
 
 // bind_t
 
-#ifndef BOOST_NO_VOID_RETURNS
+#ifndef NDNBOOST_NO_VOID_RETURNS
 
 template<class R, class F, class L> class bind_t
 {
@@ -869,9 +869,9 @@
 
     bind_t(F f, L const & l): f_(f), l_(l) {}
 
-#define BOOST_BIND_RETURN return
+#define NDNBOOST_BIND_RETURN return
 #include <ndnboost/bind/bind_template.hpp>
-#undef BOOST_BIND_RETURN
+#undef NDNBOOST_BIND_RETURN
 
 };
 
@@ -888,9 +888,9 @@
 
     implementation(F f, L const & l): f_(f), l_(l) {}
 
-#define BOOST_BIND_RETURN return
+#define NDNBOOST_BIND_RETURN return
 #include <ndnboost/bind/bind_template.hpp>
-#undef BOOST_BIND_RETURN
+#undef NDNBOOST_BIND_RETURN
 
 };
 
@@ -911,19 +911,19 @@
 
     implementation(F f, L const & l): f_(f), l_(l) {}
 
-#define BOOST_BIND_RETURN
+#define NDNBOOST_BIND_RETURN
 #include <ndnboost/bind/bind_template.hpp>
-#undef BOOST_BIND_RETURN
+#undef NDNBOOST_BIND_RETURN
 
 };
 
 };
 
-template<class R2, class F, class L> class bind_t: public bind_t_generator<R2>::BOOST_NESTED_TEMPLATE implementation<F, L>
+template<class R2, class F, class L> class bind_t: public bind_t_generator<R2>::NDNBOOST_NESTED_TEMPLATE implementation<F, L>
 {
 public:
 
-    bind_t(F f, L const & l): bind_t_generator<R2>::BOOST_NESTED_TEMPLATE implementation<F, L>(f, l) {}
+    bind_t(F f, L const & l): bind_t_generator<R2>::NDNBOOST_NESTED_TEMPLATE implementation<F, L>(f, l) {}
 
 };
 
@@ -931,11 +931,11 @@
 
 // function_equal
 
-#ifndef BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
+#ifndef NDNBOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
 
 // put overloads in _bi, rely on ADL
 
-# ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
+# ifndef NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
 
 template<class R, class F, class L> bool function_equal( bind_t<R, F, L> const & a, bind_t<R, F, L> const & b )
 {
@@ -949,15 +949,15 @@
     return a.compare(b);
 }
 
-# endif // #ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
+# endif // #ifndef NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
 
-#else // BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
+#else // NDNBOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
 
 // put overloads in boost
 
 } // namespace _bi
 
-# ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
+# ifndef NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
 
 template<class R, class F, class L> bool function_equal( _bi::bind_t<R, F, L> const & a, _bi::bind_t<R, F, L> const & b )
 {
@@ -971,18 +971,18 @@
     return a.compare(b);
 }
 
-# endif // #ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
+# endif // #ifndef NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
 
 namespace _bi
 {
 
-#endif // BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
+#endif // NDNBOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
 
 // add_value
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) || (__SUNPRO_CC >= 0x530)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) || (__SUNPRO_CC >= 0x530)
 
-#if defined( __BORLANDC__ ) && BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x582) )
+#if defined( __BORLANDC__ ) && NDNBOOST_WORKAROUND( __BORLANDC__, NDNBOOST_TESTED_AT(0x582) )
 
 template<class T> struct add_value
 {
@@ -1181,7 +1181,7 @@
 
 // relational operators
 
-#define BOOST_BIND_OPERATOR( op, name ) \
+#define NDNBOOST_BIND_OPERATOR( op, name ) \
 \
 struct name \
 { \
@@ -1197,25 +1197,25 @@
     return bind_t<bool, name, list_type> ( name(), list_type(f, a2) ); \
 }
 
-BOOST_BIND_OPERATOR( ==, equal )
-BOOST_BIND_OPERATOR( !=, not_equal )
+NDNBOOST_BIND_OPERATOR( ==, equal )
+NDNBOOST_BIND_OPERATOR( !=, not_equal )
 
-BOOST_BIND_OPERATOR( <, less )
-BOOST_BIND_OPERATOR( <=, less_equal )
+NDNBOOST_BIND_OPERATOR( <, less )
+NDNBOOST_BIND_OPERATOR( <=, less_equal )
 
-BOOST_BIND_OPERATOR( >, greater )
-BOOST_BIND_OPERATOR( >=, greater_equal )
+NDNBOOST_BIND_OPERATOR( >, greater )
+NDNBOOST_BIND_OPERATOR( >=, greater_equal )
 
-BOOST_BIND_OPERATOR( &&, logical_and )
-BOOST_BIND_OPERATOR( ||, logical_or )
+NDNBOOST_BIND_OPERATOR( &&, logical_and )
+NDNBOOST_BIND_OPERATOR( ||, logical_or )
 
-#undef BOOST_BIND_OPERATOR
+#undef NDNBOOST_BIND_OPERATOR
 
-#if defined(__GNUC__) && BOOST_WORKAROUND(__GNUC__, < 3)
+#if defined(__GNUC__) && NDNBOOST_WORKAROUND(__GNUC__, < 3)
 
 // resolve ambiguity with rel_ops
 
-#define BOOST_BIND_OPERATOR( op, name ) \
+#define NDNBOOST_BIND_OPERATOR( op, name ) \
 \
 template<class R, class F, class L> \
     bind_t< bool, name, list2< bind_t<R, F, L>, bind_t<R, F, L> > > \
@@ -1225,22 +1225,22 @@
     return bind_t<bool, name, list_type> ( name(), list_type(f, g) ); \
 }
 
-BOOST_BIND_OPERATOR( !=, not_equal )
-BOOST_BIND_OPERATOR( <=, less_equal )
-BOOST_BIND_OPERATOR( >, greater )
-BOOST_BIND_OPERATOR( >=, greater_equal )
+NDNBOOST_BIND_OPERATOR( !=, not_equal )
+NDNBOOST_BIND_OPERATOR( <=, less_equal )
+NDNBOOST_BIND_OPERATOR( >, greater )
+NDNBOOST_BIND_OPERATOR( >=, greater_equal )
 
 #endif
 
 // visit_each, ADL
 
-#if !defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) && !defined( __BORLANDC__ ) \
+#if !defined( NDNBOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) && !defined( __BORLANDC__ ) \
    && !(defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ <= 3)
 
 template<class V, class T> void visit_each( V & v, value<T> const & t, int )
 {
     using ndnboost::visit_each;
-    BOOST_BIND_VISIT_EACH( v, t.get(), 0 );
+    NDNBOOST_BIND_VISIT_EACH( v, t.get(), 0 );
 }
 
 template<class V, class R, class F, class L> void visit_each( V & v, bind_t<R, F, L> const & t, int )
@@ -1254,12 +1254,12 @@
 
 // visit_each, no ADL
 
-#if defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) || defined( __BORLANDC__ ) \
+#if defined( NDNBOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) || defined( __BORLANDC__ ) \
   || (defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ <= 3)
 
 template<class V, class T> void visit_each( V & v, _bi::value<T> const & t, int )
 {
-    BOOST_BIND_VISIT_EACH( v, t.get(), 0 );
+    NDNBOOST_BIND_VISIT_EACH( v, t.get(), 0 );
 }
 
 template<class V, class R, class F, class L> void visit_each( V & v, _bi::bind_t<R, F, L> const & t, int )
@@ -1276,7 +1276,7 @@
     enum _vt { value = 0 };
 };
 
-#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
+#if !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
 
 template< class R, class F, class L > struct is_bind_expression< _bi::bind_t< R, F, L > >
 {
@@ -1287,15 +1287,15 @@
 
 // bind
 
-#ifndef BOOST_BIND
-#define BOOST_BIND bind
+#ifndef NDNBOOST_BIND
+#define NDNBOOST_BIND bind
 #endif
 
 // generic function objects
 
 template<class R, class F>
     _bi::bind_t<R, F, _bi::list0>
-    BOOST_BIND(F f)
+    NDNBOOST_BIND(F f)
 {
     typedef _bi::list0 list_type;
     return _bi::bind_t<R, F, list_type> (f, list_type());
@@ -1303,7 +1303,7 @@
 
 template<class R, class F, class A1>
     _bi::bind_t<R, F, typename _bi::list_av_1<A1>::type>
-    BOOST_BIND(F f, A1 a1)
+    NDNBOOST_BIND(F f, A1 a1)
 {
     typedef typename _bi::list_av_1<A1>::type list_type;
     return _bi::bind_t<R, F, list_type> (f, list_type(a1));
@@ -1311,7 +1311,7 @@
 
 template<class R, class F, class A1, class A2>
     _bi::bind_t<R, F, typename _bi::list_av_2<A1, A2>::type>
-    BOOST_BIND(F f, A1 a1, A2 a2)
+    NDNBOOST_BIND(F f, A1 a1, A2 a2)
 {
     typedef typename _bi::list_av_2<A1, A2>::type list_type;
     return _bi::bind_t<R, F, list_type> (f, list_type(a1, a2));
@@ -1319,7 +1319,7 @@
 
 template<class R, class F, class A1, class A2, class A3>
     _bi::bind_t<R, F, typename _bi::list_av_3<A1, A2, A3>::type>
-    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3)
+    NDNBOOST_BIND(F f, A1 a1, A2 a2, A3 a3)
 {
     typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;
     return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3));
@@ -1327,7 +1327,7 @@
 
 template<class R, class F, class A1, class A2, class A3, class A4>
     _bi::bind_t<R, F, typename _bi::list_av_4<A1, A2, A3, A4>::type>
-    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4)
+    NDNBOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4)
 {
     typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;
     return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4));
@@ -1335,7 +1335,7 @@
 
 template<class R, class F, class A1, class A2, class A3, class A4, class A5>
     _bi::bind_t<R, F, typename _bi::list_av_5<A1, A2, A3, A4, A5>::type>
-    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
+    NDNBOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
 {
     typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;
     return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5));
@@ -1343,7 +1343,7 @@
 
 template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6>
     _bi::bind_t<R, F, typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type>
-    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
+    NDNBOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
 {
     typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;
     return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6));
@@ -1351,7 +1351,7 @@
 
 template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7>
     _bi::bind_t<R, F, typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type>
-    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
+    NDNBOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
 {
     typedef typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type list_type;
     return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7));
@@ -1359,7 +1359,7 @@
 
 template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
     _bi::bind_t<R, F, typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type>
-    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
+    NDNBOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
 {
     typedef typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;
     return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8));
@@ -1367,7 +1367,7 @@
 
 template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
     _bi::bind_t<R, F, typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type>
-    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
+    NDNBOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
 {
     typedef typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;
     return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));
@@ -1377,7 +1377,7 @@
 
 template<class R, class F>
     _bi::bind_t<R, F, _bi::list0>
-    BOOST_BIND(ndnboost::type<R>, F f)
+    NDNBOOST_BIND(ndnboost::type<R>, F f)
 {
     typedef _bi::list0 list_type;
     return _bi::bind_t<R, F, list_type> (f, list_type());
@@ -1385,7 +1385,7 @@
 
 template<class R, class F, class A1>
     _bi::bind_t<R, F, typename _bi::list_av_1<A1>::type>
-    BOOST_BIND(ndnboost::type<R>, F f, A1 a1)
+    NDNBOOST_BIND(ndnboost::type<R>, F f, A1 a1)
 {
     typedef typename _bi::list_av_1<A1>::type list_type;
     return _bi::bind_t<R, F, list_type> (f, list_type(a1));
@@ -1393,7 +1393,7 @@
 
 template<class R, class F, class A1, class A2>
     _bi::bind_t<R, F, typename _bi::list_av_2<A1, A2>::type>
-    BOOST_BIND(ndnboost::type<R>, F f, A1 a1, A2 a2)
+    NDNBOOST_BIND(ndnboost::type<R>, F f, A1 a1, A2 a2)
 {
     typedef typename _bi::list_av_2<A1, A2>::type list_type;
     return _bi::bind_t<R, F, list_type> (f, list_type(a1, a2));
@@ -1401,7 +1401,7 @@
 
 template<class R, class F, class A1, class A2, class A3>
     _bi::bind_t<R, F, typename _bi::list_av_3<A1, A2, A3>::type>
-    BOOST_BIND(ndnboost::type<R>, F f, A1 a1, A2 a2, A3 a3)
+    NDNBOOST_BIND(ndnboost::type<R>, F f, A1 a1, A2 a2, A3 a3)
 {
     typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;
     return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3));
@@ -1409,7 +1409,7 @@
 
 template<class R, class F, class A1, class A2, class A3, class A4>
     _bi::bind_t<R, F, typename _bi::list_av_4<A1, A2, A3, A4>::type>
-    BOOST_BIND(ndnboost::type<R>, F f, A1 a1, A2 a2, A3 a3, A4 a4)
+    NDNBOOST_BIND(ndnboost::type<R>, F f, A1 a1, A2 a2, A3 a3, A4 a4)
 {
     typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;
     return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4));
@@ -1417,7 +1417,7 @@
 
 template<class R, class F, class A1, class A2, class A3, class A4, class A5>
     _bi::bind_t<R, F, typename _bi::list_av_5<A1, A2, A3, A4, A5>::type>
-    BOOST_BIND(ndnboost::type<R>, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
+    NDNBOOST_BIND(ndnboost::type<R>, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
 {
     typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;
     return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5));
@@ -1425,7 +1425,7 @@
 
 template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6>
     _bi::bind_t<R, F, typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type>
-    BOOST_BIND(ndnboost::type<R>, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
+    NDNBOOST_BIND(ndnboost::type<R>, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
 {
     typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;
     return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6));
@@ -1433,7 +1433,7 @@
 
 template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7>
     _bi::bind_t<R, F, typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type>
-    BOOST_BIND(ndnboost::type<R>, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
+    NDNBOOST_BIND(ndnboost::type<R>, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
 {
     typedef typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type list_type;
     return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7));
@@ -1441,7 +1441,7 @@
 
 template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
     _bi::bind_t<R, F, typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type>
-    BOOST_BIND(ndnboost::type<R>, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
+    NDNBOOST_BIND(ndnboost::type<R>, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
 {
     typedef typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;
     return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8));
@@ -1449,19 +1449,19 @@
 
 template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
     _bi::bind_t<R, F, typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type>
-    BOOST_BIND(ndnboost::type<R>, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
+    NDNBOOST_BIND(ndnboost::type<R>, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
 {
     typedef typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;
     return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));
 }
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING)
 
 // adaptable function objects
 
 template<class F>
     _bi::bind_t<_bi::unspecified, F, _bi::list0>
-    BOOST_BIND(F f)
+    NDNBOOST_BIND(F f)
 {
     typedef _bi::list0 list_type;
     return _bi::bind_t<_bi::unspecified, F, list_type> (f, list_type());
@@ -1469,7 +1469,7 @@
 
 template<class F, class A1>
     _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_1<A1>::type>
-    BOOST_BIND(F f, A1 a1)
+    NDNBOOST_BIND(F f, A1 a1)
 {
     typedef typename _bi::list_av_1<A1>::type list_type;
     return _bi::bind_t<_bi::unspecified, F, list_type> (f, list_type(a1));
@@ -1477,7 +1477,7 @@
 
 template<class F, class A1, class A2>
     _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_2<A1, A2>::type>
-    BOOST_BIND(F f, A1 a1, A2 a2)
+    NDNBOOST_BIND(F f, A1 a1, A2 a2)
 {
     typedef typename _bi::list_av_2<A1, A2>::type list_type;
     return _bi::bind_t<_bi::unspecified, F, list_type> (f, list_type(a1, a2));
@@ -1485,7 +1485,7 @@
 
 template<class F, class A1, class A2, class A3>
     _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_3<A1, A2, A3>::type>
-    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3)
+    NDNBOOST_BIND(F f, A1 a1, A2 a2, A3 a3)
 {
     typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;
     return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3));
@@ -1493,7 +1493,7 @@
 
 template<class F, class A1, class A2, class A3, class A4>
     _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_4<A1, A2, A3, A4>::type>
-    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4)
+    NDNBOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4)
 {
     typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;
     return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4));
@@ -1501,7 +1501,7 @@
 
 template<class F, class A1, class A2, class A3, class A4, class A5>
     _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_5<A1, A2, A3, A4, A5>::type>
-    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
+    NDNBOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
 {
     typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;
     return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5));
@@ -1509,7 +1509,7 @@
 
 template<class F, class A1, class A2, class A3, class A4, class A5, class A6>
     _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type>
-    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
+    NDNBOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
 {
     typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;
     return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6));
@@ -1517,7 +1517,7 @@
 
 template<class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7>
     _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type>
-    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
+    NDNBOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
 {
     typedef typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type list_type;
     return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7));
@@ -1525,7 +1525,7 @@
 
 template<class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
     _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type>
-    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
+    NDNBOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
 {
     typedef typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;
     return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8));
@@ -1533,118 +1533,118 @@
 
 template<class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
     _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type>
-    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
+    NDNBOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
 {
     typedef typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;
     return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));
 }
 
-#endif // !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)
+#endif // !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING)
 
 // function pointers
 
-#define BOOST_BIND_CC
-#define BOOST_BIND_ST
+#define NDNBOOST_BIND_CC
+#define NDNBOOST_BIND_ST
 
 #include <ndnboost/bind/bind_cc.hpp>
 
-#undef BOOST_BIND_CC
-#undef BOOST_BIND_ST
+#undef NDNBOOST_BIND_CC
+#undef NDNBOOST_BIND_ST
 
-#ifdef BOOST_BIND_ENABLE_STDCALL
+#ifdef NDNBOOST_BIND_ENABLE_STDCALL
 
-#define BOOST_BIND_CC __stdcall
-#define BOOST_BIND_ST
+#define NDNBOOST_BIND_CC __stdcall
+#define NDNBOOST_BIND_ST
 
 #include <ndnboost/bind/bind_cc.hpp>
 
-#undef BOOST_BIND_CC
-#undef BOOST_BIND_ST
+#undef NDNBOOST_BIND_CC
+#undef NDNBOOST_BIND_ST
 
 #endif
 
-#ifdef BOOST_BIND_ENABLE_FASTCALL
+#ifdef NDNBOOST_BIND_ENABLE_FASTCALL
 
-#define BOOST_BIND_CC __fastcall
-#define BOOST_BIND_ST
+#define NDNBOOST_BIND_CC __fastcall
+#define NDNBOOST_BIND_ST
 
 #include <ndnboost/bind/bind_cc.hpp>
 
-#undef BOOST_BIND_CC
-#undef BOOST_BIND_ST
+#undef NDNBOOST_BIND_CC
+#undef NDNBOOST_BIND_ST
 
 #endif
 
-#ifdef BOOST_BIND_ENABLE_PASCAL
+#ifdef NDNBOOST_BIND_ENABLE_PASCAL
 
-#define BOOST_BIND_ST pascal
-#define BOOST_BIND_CC
+#define NDNBOOST_BIND_ST pascal
+#define NDNBOOST_BIND_CC
 
 #include <ndnboost/bind/bind_cc.hpp>
 
-#undef BOOST_BIND_ST
-#undef BOOST_BIND_CC
+#undef NDNBOOST_BIND_ST
+#undef NDNBOOST_BIND_CC
 
 #endif
 
 // member function pointers
 
-#define BOOST_BIND_MF_NAME(X) X
-#define BOOST_BIND_MF_CC
+#define NDNBOOST_BIND_MF_NAME(X) X
+#define NDNBOOST_BIND_MF_CC
 
 #include <ndnboost/bind/bind_mf_cc.hpp>
 #include <ndnboost/bind/bind_mf2_cc.hpp>
 
-#undef BOOST_BIND_MF_NAME
-#undef BOOST_BIND_MF_CC
+#undef NDNBOOST_BIND_MF_NAME
+#undef NDNBOOST_BIND_MF_CC
 
-#ifdef BOOST_MEM_FN_ENABLE_CDECL
+#ifdef NDNBOOST_MEM_FN_ENABLE_CDECL
 
-#define BOOST_BIND_MF_NAME(X) X##_cdecl
-#define BOOST_BIND_MF_CC __cdecl
+#define NDNBOOST_BIND_MF_NAME(X) X##_cdecl
+#define NDNBOOST_BIND_MF_CC __cdecl
 
 #include <ndnboost/bind/bind_mf_cc.hpp>
 #include <ndnboost/bind/bind_mf2_cc.hpp>
 
-#undef BOOST_BIND_MF_NAME
-#undef BOOST_BIND_MF_CC
+#undef NDNBOOST_BIND_MF_NAME
+#undef NDNBOOST_BIND_MF_CC
 
 #endif
 
-#ifdef BOOST_MEM_FN_ENABLE_STDCALL
+#ifdef NDNBOOST_MEM_FN_ENABLE_STDCALL
 
-#define BOOST_BIND_MF_NAME(X) X##_stdcall
-#define BOOST_BIND_MF_CC __stdcall
+#define NDNBOOST_BIND_MF_NAME(X) X##_stdcall
+#define NDNBOOST_BIND_MF_CC __stdcall
 
 #include <ndnboost/bind/bind_mf_cc.hpp>
 #include <ndnboost/bind/bind_mf2_cc.hpp>
 
-#undef BOOST_BIND_MF_NAME
-#undef BOOST_BIND_MF_CC
+#undef NDNBOOST_BIND_MF_NAME
+#undef NDNBOOST_BIND_MF_CC
 
 #endif
 
-#ifdef BOOST_MEM_FN_ENABLE_FASTCALL
+#ifdef NDNBOOST_MEM_FN_ENABLE_FASTCALL
 
-#define BOOST_BIND_MF_NAME(X) X##_fastcall
-#define BOOST_BIND_MF_CC __fastcall
+#define NDNBOOST_BIND_MF_NAME(X) X##_fastcall
+#define NDNBOOST_BIND_MF_CC __fastcall
 
 #include <ndnboost/bind/bind_mf_cc.hpp>
 #include <ndnboost/bind/bind_mf2_cc.hpp>
 
-#undef BOOST_BIND_MF_NAME
-#undef BOOST_BIND_MF_CC
+#undef NDNBOOST_BIND_MF_NAME
+#undef NDNBOOST_BIND_MF_CC
 
 #endif
 
 // data member pointers
 
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) || defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
-    || ( defined(__BORLANDC__) && BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT( 0x620 ) ) )
+#if defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) || defined(NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
+    || ( defined(__BORLANDC__) && NDNBOOST_WORKAROUND( __BORLANDC__, NDNBOOST_TESTED_AT( 0x620 ) ) )
 
 template<class R, class T, class A1>
 _bi::bind_t< R, _mfi::dm<R, T>, typename _bi::list_av_1<A1>::type >
-    BOOST_BIND(R T::*f, A1 a1)
+    NDNBOOST_BIND(R T::*f, A1 a1)
 {
     typedef _mfi::dm<R, T> F;
     typedef typename _bi::list_av_1<A1>::type list_type;
@@ -1665,12 +1665,12 @@
 
 template< class M, class T > struct add_cref< M T::*, 1 >
 {
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
 #pragma warning(push)
 #pragma warning(disable:4180)
 #endif
     typedef M const & type;
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
 #pragma warning(pop)
 #endif
 };
@@ -1725,7 +1725,7 @@
     typename _bi::list_av_1<A1>::type
 >
 
-BOOST_BIND( M T::*f, A1 a1 )
+NDNBOOST_BIND( M T::*f, A1 a1 )
 {
     typedef typename _bi::dm_result< M T::*, A1 >::type result_type;
     typedef _mfi::dm<M, T> F;
@@ -1737,15 +1737,15 @@
 
 } // namespace ndnboost
 
-#ifndef BOOST_BIND_NO_PLACEHOLDERS
+#ifndef NDNBOOST_BIND_NO_PLACEHOLDERS
 
 # include <ndnboost/bind/placeholders.hpp>
 
 #endif
 
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
 # pragma warning(default: 4512) // assignment operator could not be generated
 # pragma warning(pop)
 #endif
 
-#endif // #ifndef BOOST_BIND_BIND_HPP_INCLUDED
+#endif // #ifndef NDNBOOST_BIND_BIND_HPP_INCLUDED
diff --git a/include/ndnboost/bind/bind_cc.hpp b/include/ndnboost/bind/bind_cc.hpp
index 35f8ece..cb95e6a 100644
--- a/include/ndnboost/bind/bind_cc.hpp
+++ b/include/ndnboost/bind/bind_cc.hpp
@@ -13,28 +13,28 @@
 //
 
 template<class R>
-    _bi::bind_t<R, BOOST_BIND_ST R (BOOST_BIND_CC *) (), _bi::list0>
-    BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) ())
+    _bi::bind_t<R, NDNBOOST_BIND_ST R (NDNBOOST_BIND_CC *) (), _bi::list0>
+    NDNBOOST_BIND(NDNBOOST_BIND_ST R (NDNBOOST_BIND_CC *f) ())
 {
-    typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) ();
+    typedef NDNBOOST_BIND_ST R (NDNBOOST_BIND_CC *F) ();
     typedef _bi::list0 list_type;
     return _bi::bind_t<R, F, list_type> (f, list_type());
 }
 
 template<class R, class B1, class A1>
-    _bi::bind_t<R, BOOST_BIND_ST R (BOOST_BIND_CC *) (B1), typename _bi::list_av_1<A1>::type>
-    BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1), A1 a1)
+    _bi::bind_t<R, NDNBOOST_BIND_ST R (NDNBOOST_BIND_CC *) (B1), typename _bi::list_av_1<A1>::type>
+    NDNBOOST_BIND(NDNBOOST_BIND_ST R (NDNBOOST_BIND_CC *f) (B1), A1 a1)
 {
-    typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1);
+    typedef NDNBOOST_BIND_ST R (NDNBOOST_BIND_CC *F) (B1);
     typedef typename _bi::list_av_1<A1>::type list_type;
     return _bi::bind_t<R, F, list_type> (f, list_type(a1));
 }
 
 template<class R, class B1, class B2, class A1, class A2>
-    _bi::bind_t<R, BOOST_BIND_ST R (BOOST_BIND_CC *) (B1, B2), typename _bi::list_av_2<A1, A2>::type>
-    BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2), A1 a1, A2 a2)
+    _bi::bind_t<R, NDNBOOST_BIND_ST R (NDNBOOST_BIND_CC *) (B1, B2), typename _bi::list_av_2<A1, A2>::type>
+    NDNBOOST_BIND(NDNBOOST_BIND_ST R (NDNBOOST_BIND_CC *f) (B1, B2), A1 a1, A2 a2)
 {
-    typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2);
+    typedef NDNBOOST_BIND_ST R (NDNBOOST_BIND_CC *F) (B1, B2);
     typedef typename _bi::list_av_2<A1, A2>::type list_type;
     return _bi::bind_t<R, F, list_type> (f, list_type(a1, a2));
 }
@@ -42,10 +42,10 @@
 template<class R,
     class B1, class B2, class B3,
     class A1, class A2, class A3>
-    _bi::bind_t<R, BOOST_BIND_ST R (BOOST_BIND_CC *) (B1, B2, B3), typename _bi::list_av_3<A1, A2, A3>::type>
-    BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3), A1 a1, A2 a2, A3 a3)
+    _bi::bind_t<R, NDNBOOST_BIND_ST R (NDNBOOST_BIND_CC *) (B1, B2, B3), typename _bi::list_av_3<A1, A2, A3>::type>
+    NDNBOOST_BIND(NDNBOOST_BIND_ST R (NDNBOOST_BIND_CC *f) (B1, B2, B3), A1 a1, A2 a2, A3 a3)
 {
-    typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3);
+    typedef NDNBOOST_BIND_ST R (NDNBOOST_BIND_CC *F) (B1, B2, B3);
     typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;
     return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3));
 }
@@ -53,10 +53,10 @@
 template<class R,
     class B1, class B2, class B3, class B4,
     class A1, class A2, class A3, class A4>
-    _bi::bind_t<R, BOOST_BIND_ST R (BOOST_BIND_CC *) (B1, B2, B3, B4), typename _bi::list_av_4<A1, A2, A3, A4>::type>
-    BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3, B4), A1 a1, A2 a2, A3 a3, A4 a4)
+    _bi::bind_t<R, NDNBOOST_BIND_ST R (NDNBOOST_BIND_CC *) (B1, B2, B3, B4), typename _bi::list_av_4<A1, A2, A3, A4>::type>
+    NDNBOOST_BIND(NDNBOOST_BIND_ST R (NDNBOOST_BIND_CC *f) (B1, B2, B3, B4), A1 a1, A2 a2, A3 a3, A4 a4)
 {
-    typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3, B4);
+    typedef NDNBOOST_BIND_ST R (NDNBOOST_BIND_CC *F) (B1, B2, B3, B4);
     typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;
     return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4));
 }
@@ -64,10 +64,10 @@
 template<class R,
     class B1, class B2, class B3, class B4, class B5,
     class A1, class A2, class A3, class A4, class A5>
-    _bi::bind_t<R, BOOST_BIND_ST R (BOOST_BIND_CC *) (B1, B2, B3, B4, B5), typename _bi::list_av_5<A1, A2, A3, A4, A5>::type>
-    BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3, B4, B5), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
+    _bi::bind_t<R, NDNBOOST_BIND_ST R (NDNBOOST_BIND_CC *) (B1, B2, B3, B4, B5), typename _bi::list_av_5<A1, A2, A3, A4, A5>::type>
+    NDNBOOST_BIND(NDNBOOST_BIND_ST R (NDNBOOST_BIND_CC *f) (B1, B2, B3, B4, B5), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
 {
-    typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3, B4, B5);
+    typedef NDNBOOST_BIND_ST R (NDNBOOST_BIND_CC *F) (B1, B2, B3, B4, B5);
     typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;
     return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5));
 }
@@ -75,10 +75,10 @@
 template<class R,
     class B1, class B2, class B3, class B4, class B5, class B6,
     class A1, class A2, class A3, class A4, class A5, class A6>
-    _bi::bind_t<R, BOOST_BIND_ST R (BOOST_BIND_CC *) (B1, B2, B3, B4, B5, B6), typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type>
-    BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3, B4, B5, B6), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
+    _bi::bind_t<R, NDNBOOST_BIND_ST R (NDNBOOST_BIND_CC *) (B1, B2, B3, B4, B5, B6), typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type>
+    NDNBOOST_BIND(NDNBOOST_BIND_ST R (NDNBOOST_BIND_CC *f) (B1, B2, B3, B4, B5, B6), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
 {
-    typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3, B4, B5, B6);
+    typedef NDNBOOST_BIND_ST R (NDNBOOST_BIND_CC *F) (B1, B2, B3, B4, B5, B6);
     typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;
     return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6));
 }
@@ -86,10 +86,10 @@
 template<class R,
     class B1, class B2, class B3, class B4, class B5, class B6, class B7,
     class A1, class A2, class A3, class A4, class A5, class A6, class A7>
-    _bi::bind_t<R, BOOST_BIND_ST R (BOOST_BIND_CC *) (B1, B2, B3, B4, B5, B6, B7), typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type>
-    BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3, B4, B5, B6, B7), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
+    _bi::bind_t<R, NDNBOOST_BIND_ST R (NDNBOOST_BIND_CC *) (B1, B2, B3, B4, B5, B6, B7), typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type>
+    NDNBOOST_BIND(NDNBOOST_BIND_ST R (NDNBOOST_BIND_CC *f) (B1, B2, B3, B4, B5, B6, B7), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
 {
-    typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3, B4, B5, B6, B7);
+    typedef NDNBOOST_BIND_ST R (NDNBOOST_BIND_CC *F) (B1, B2, B3, B4, B5, B6, B7);
     typedef typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type list_type;
     return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7));
 }
@@ -97,10 +97,10 @@
 template<class R,
     class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8,
     class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
-    _bi::bind_t<R, BOOST_BIND_ST R (BOOST_BIND_CC *) (B1, B2, B3, B4, B5, B6, B7, B8), typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type>
-    BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3, B4, B5, B6, B7, B8), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
+    _bi::bind_t<R, NDNBOOST_BIND_ST R (NDNBOOST_BIND_CC *) (B1, B2, B3, B4, B5, B6, B7, B8), typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type>
+    NDNBOOST_BIND(NDNBOOST_BIND_ST R (NDNBOOST_BIND_CC *f) (B1, B2, B3, B4, B5, B6, B7, B8), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
 {
-    typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3, B4, B5, B6, B7, B8);
+    typedef NDNBOOST_BIND_ST R (NDNBOOST_BIND_CC *F) (B1, B2, B3, B4, B5, B6, B7, B8);
     typedef typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;
     return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8));
 }
@@ -108,10 +108,10 @@
 template<class R,
     class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8, class B9,
     class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
-    _bi::bind_t<R, BOOST_BIND_ST R (BOOST_BIND_CC *) (B1, B2, B3, B4, B5, B6, B7, B8, B9), typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type>
-    BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3, B4, B5, B6, B7, B8, B9), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
+    _bi::bind_t<R, NDNBOOST_BIND_ST R (NDNBOOST_BIND_CC *) (B1, B2, B3, B4, B5, B6, B7, B8, B9), typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type>
+    NDNBOOST_BIND(NDNBOOST_BIND_ST R (NDNBOOST_BIND_CC *f) (B1, B2, B3, B4, B5, B6, B7, B8, B9), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
 {
-    typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3, B4, B5, B6, B7, B8, B9);
+    typedef NDNBOOST_BIND_ST R (NDNBOOST_BIND_CC *F) (B1, B2, B3, B4, B5, B6, B7, B8, B9);
     typedef typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;
     return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));
 }
diff --git a/include/ndnboost/bind/bind_mf2_cc.hpp b/include/ndnboost/bind/bind_mf2_cc.hpp
index efb8b25..563deef 100644
--- a/include/ndnboost/bind/bind_mf2_cc.hpp
+++ b/include/ndnboost/bind/bind_mf2_cc.hpp
@@ -17,20 +17,20 @@
 
 template<class Rt2, class R, class T,
     class A1>
-    _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(mf0)<R, T>, typename _bi::list_av_1<A1>::type>
-    BOOST_BIND(ndnboost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (), A1 a1)
+    _bi::bind_t<Rt2, _mfi::NDNBOOST_BIND_MF_NAME(mf0)<R, T>, typename _bi::list_av_1<A1>::type>
+    NDNBOOST_BIND(ndnboost::type<Rt2>, R (NDNBOOST_BIND_MF_CC T::*f) (), A1 a1)
 {
-    typedef _mfi::BOOST_BIND_MF_NAME(mf0)<R, T> F;
+    typedef _mfi::NDNBOOST_BIND_MF_NAME(mf0)<R, T> F;
     typedef typename _bi::list_av_1<A1>::type list_type;
     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1));
 }
 
 template<class Rt2, class R, class T,
     class A1>
-    _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(cmf0)<R, T>, typename _bi::list_av_1<A1>::type>
-    BOOST_BIND(ndnboost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) () const, A1 a1)
+    _bi::bind_t<Rt2, _mfi::NDNBOOST_BIND_MF_NAME(cmf0)<R, T>, typename _bi::list_av_1<A1>::type>
+    NDNBOOST_BIND(ndnboost::type<Rt2>, R (NDNBOOST_BIND_MF_CC T::*f) () const, A1 a1)
 {
-    typedef _mfi::BOOST_BIND_MF_NAME(cmf0)<R, T> F;
+    typedef _mfi::NDNBOOST_BIND_MF_NAME(cmf0)<R, T> F;
     typedef typename _bi::list_av_1<A1>::type list_type;
     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1));
 }
@@ -40,10 +40,10 @@
 template<class Rt2, class R, class T,
     class B1,
     class A1, class A2>
-    _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(mf1)<R, T, B1>, typename _bi::list_av_2<A1, A2>::type>
-    BOOST_BIND(ndnboost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1), A1 a1, A2 a2)
+    _bi::bind_t<Rt2, _mfi::NDNBOOST_BIND_MF_NAME(mf1)<R, T, B1>, typename _bi::list_av_2<A1, A2>::type>
+    NDNBOOST_BIND(ndnboost::type<Rt2>, R (NDNBOOST_BIND_MF_CC T::*f) (B1), A1 a1, A2 a2)
 {
-    typedef _mfi::BOOST_BIND_MF_NAME(mf1)<R, T, B1> F;
+    typedef _mfi::NDNBOOST_BIND_MF_NAME(mf1)<R, T, B1> F;
     typedef typename _bi::list_av_2<A1, A2>::type list_type;
     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2));
 }
@@ -51,10 +51,10 @@
 template<class Rt2, class R, class T,
     class B1,
     class A1, class A2>
-    _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(cmf1)<R, T, B1>, typename _bi::list_av_2<A1, A2>::type>
-    BOOST_BIND(ndnboost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1) const, A1 a1, A2 a2)
+    _bi::bind_t<Rt2, _mfi::NDNBOOST_BIND_MF_NAME(cmf1)<R, T, B1>, typename _bi::list_av_2<A1, A2>::type>
+    NDNBOOST_BIND(ndnboost::type<Rt2>, R (NDNBOOST_BIND_MF_CC T::*f) (B1) const, A1 a1, A2 a2)
 {
-    typedef _mfi::BOOST_BIND_MF_NAME(cmf1)<R, T, B1> F;
+    typedef _mfi::NDNBOOST_BIND_MF_NAME(cmf1)<R, T, B1> F;
     typedef typename _bi::list_av_2<A1, A2>::type list_type;
     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2));
 }
@@ -64,10 +64,10 @@
 template<class Rt2, class R, class T,
     class B1, class B2,
     class A1, class A2, class A3>
-    _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(mf2)<R, T, B1, B2>, typename _bi::list_av_3<A1, A2, A3>::type>
-    BOOST_BIND(ndnboost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2), A1 a1, A2 a2, A3 a3)
+    _bi::bind_t<Rt2, _mfi::NDNBOOST_BIND_MF_NAME(mf2)<R, T, B1, B2>, typename _bi::list_av_3<A1, A2, A3>::type>
+    NDNBOOST_BIND(ndnboost::type<Rt2>, R (NDNBOOST_BIND_MF_CC T::*f) (B1, B2), A1 a1, A2 a2, A3 a3)
 {
-    typedef _mfi::BOOST_BIND_MF_NAME(mf2)<R, T, B1, B2> F;
+    typedef _mfi::NDNBOOST_BIND_MF_NAME(mf2)<R, T, B1, B2> F;
     typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;
     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3));
 }
@@ -75,10 +75,10 @@
 template<class Rt2, class R, class T,
     class B1, class B2,
     class A1, class A2, class A3>
-    _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(cmf2)<R, T, B1, B2>, typename _bi::list_av_3<A1, A2, A3>::type>
-    BOOST_BIND(ndnboost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2) const, A1 a1, A2 a2, A3 a3)
+    _bi::bind_t<Rt2, _mfi::NDNBOOST_BIND_MF_NAME(cmf2)<R, T, B1, B2>, typename _bi::list_av_3<A1, A2, A3>::type>
+    NDNBOOST_BIND(ndnboost::type<Rt2>, R (NDNBOOST_BIND_MF_CC T::*f) (B1, B2) const, A1 a1, A2 a2, A3 a3)
 {
-    typedef _mfi::BOOST_BIND_MF_NAME(cmf2)<R, T, B1, B2> F;
+    typedef _mfi::NDNBOOST_BIND_MF_NAME(cmf2)<R, T, B1, B2> F;
     typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;
     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3));
 }
@@ -88,10 +88,10 @@
 template<class Rt2, class R, class T,
     class B1, class B2, class B3,
     class A1, class A2, class A3, class A4>
-    _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(mf3)<R, T, B1, B2, B3>, typename _bi::list_av_4<A1, A2, A3, A4>::type>
-    BOOST_BIND(ndnboost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3), A1 a1, A2 a2, A3 a3, A4 a4)
+    _bi::bind_t<Rt2, _mfi::NDNBOOST_BIND_MF_NAME(mf3)<R, T, B1, B2, B3>, typename _bi::list_av_4<A1, A2, A3, A4>::type>
+    NDNBOOST_BIND(ndnboost::type<Rt2>, R (NDNBOOST_BIND_MF_CC T::*f) (B1, B2, B3), A1 a1, A2 a2, A3 a3, A4 a4)
 {
-    typedef _mfi::BOOST_BIND_MF_NAME(mf3)<R, T, B1, B2, B3> F;
+    typedef _mfi::NDNBOOST_BIND_MF_NAME(mf3)<R, T, B1, B2, B3> F;
     typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;
     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4));
 }
@@ -99,10 +99,10 @@
 template<class Rt2, class R, class T,
     class B1, class B2, class B3,
     class A1, class A2, class A3, class A4>
-    _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(cmf3)<R, T, B1, B2, B3>, typename _bi::list_av_4<A1, A2, A3, A4>::type>
-    BOOST_BIND(ndnboost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3) const, A1 a1, A2 a2, A3 a3, A4 a4)
+    _bi::bind_t<Rt2, _mfi::NDNBOOST_BIND_MF_NAME(cmf3)<R, T, B1, B2, B3>, typename _bi::list_av_4<A1, A2, A3, A4>::type>
+    NDNBOOST_BIND(ndnboost::type<Rt2>, R (NDNBOOST_BIND_MF_CC T::*f) (B1, B2, B3) const, A1 a1, A2 a2, A3 a3, A4 a4)
 {
-    typedef _mfi::BOOST_BIND_MF_NAME(cmf3)<R, T, B1, B2, B3> F;
+    typedef _mfi::NDNBOOST_BIND_MF_NAME(cmf3)<R, T, B1, B2, B3> F;
     typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;
     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4));
 }
@@ -112,10 +112,10 @@
 template<class Rt2, class R, class T,
     class B1, class B2, class B3, class B4,
     class A1, class A2, class A3, class A4, class A5>
-    _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(mf4)<R, T, B1, B2, B3, B4>, typename _bi::list_av_5<A1, A2, A3, A4, A5>::type>
-    BOOST_BIND(ndnboost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
+    _bi::bind_t<Rt2, _mfi::NDNBOOST_BIND_MF_NAME(mf4)<R, T, B1, B2, B3, B4>, typename _bi::list_av_5<A1, A2, A3, A4, A5>::type>
+    NDNBOOST_BIND(ndnboost::type<Rt2>, R (NDNBOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
 {
-    typedef _mfi::BOOST_BIND_MF_NAME(mf4)<R, T, B1, B2, B3, B4> F;
+    typedef _mfi::NDNBOOST_BIND_MF_NAME(mf4)<R, T, B1, B2, B3, B4> F;
     typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;
     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5));
 }
@@ -123,10 +123,10 @@
 template<class Rt2, class R, class T,
     class B1, class B2, class B3, class B4,
     class A1, class A2, class A3, class A4, class A5>
-    _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(cmf4)<R, T, B1, B2, B3, B4>, typename _bi::list_av_5<A1, A2, A3, A4, A5>::type>
-    BOOST_BIND(ndnboost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
+    _bi::bind_t<Rt2, _mfi::NDNBOOST_BIND_MF_NAME(cmf4)<R, T, B1, B2, B3, B4>, typename _bi::list_av_5<A1, A2, A3, A4, A5>::type>
+    NDNBOOST_BIND(ndnboost::type<Rt2>, R (NDNBOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
 {
-    typedef _mfi::BOOST_BIND_MF_NAME(cmf4)<R, T, B1, B2, B3, B4> F;
+    typedef _mfi::NDNBOOST_BIND_MF_NAME(cmf4)<R, T, B1, B2, B3, B4> F;
     typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;
     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5));
 }
@@ -136,10 +136,10 @@
 template<class Rt2, class R, class T,
     class B1, class B2, class B3, class B4, class B5,
     class A1, class A2, class A3, class A4, class A5, class A6>
-    _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(mf5)<R, T, B1, B2, B3, B4, B5>, typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type>
-    BOOST_BIND(ndnboost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
+    _bi::bind_t<Rt2, _mfi::NDNBOOST_BIND_MF_NAME(mf5)<R, T, B1, B2, B3, B4, B5>, typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type>
+    NDNBOOST_BIND(ndnboost::type<Rt2>, R (NDNBOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
 {
-    typedef _mfi::BOOST_BIND_MF_NAME(mf5)<R, T, B1, B2, B3, B4, B5> F;
+    typedef _mfi::NDNBOOST_BIND_MF_NAME(mf5)<R, T, B1, B2, B3, B4, B5> F;
     typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;
     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6));
 }
@@ -147,10 +147,10 @@
 template<class Rt2, class R, class T,
     class B1, class B2, class B3, class B4, class B5,
     class A1, class A2, class A3, class A4, class A5, class A6>
-    _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(cmf5)<R, T, B1, B2, B3, B4, B5>, typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type>
-    BOOST_BIND(ndnboost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
+    _bi::bind_t<Rt2, _mfi::NDNBOOST_BIND_MF_NAME(cmf5)<R, T, B1, B2, B3, B4, B5>, typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type>
+    NDNBOOST_BIND(ndnboost::type<Rt2>, R (NDNBOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
 {
-    typedef _mfi::BOOST_BIND_MF_NAME(cmf5)<R, T, B1, B2, B3, B4, B5> F;
+    typedef _mfi::NDNBOOST_BIND_MF_NAME(cmf5)<R, T, B1, B2, B3, B4, B5> F;
     typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;
     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6));
 }
@@ -160,10 +160,10 @@
 template<class Rt2, class R, class T,
     class B1, class B2, class B3, class B4, class B5, class B6,
     class A1, class A2, class A3, class A4, class A5, class A6, class A7>
-    _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(mf6)<R, T, B1, B2, B3, B4, B5, B6>, typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type>
-    BOOST_BIND(ndnboost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
+    _bi::bind_t<Rt2, _mfi::NDNBOOST_BIND_MF_NAME(mf6)<R, T, B1, B2, B3, B4, B5, B6>, typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type>
+    NDNBOOST_BIND(ndnboost::type<Rt2>, R (NDNBOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
 {
-    typedef _mfi::BOOST_BIND_MF_NAME(mf6)<R, T, B1, B2, B3, B4, B5, B6> F;
+    typedef _mfi::NDNBOOST_BIND_MF_NAME(mf6)<R, T, B1, B2, B3, B4, B5, B6> F;
     typedef typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type list_type;
     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7));
 }
@@ -171,10 +171,10 @@
 template<class Rt2, class R, class T,
     class B1, class B2, class B3, class B4, class B5, class B6,
     class A1, class A2, class A3, class A4, class A5, class A6, class A7>
-    _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(cmf6)<R, T, B1, B2, B3, B4, B5, B6>, typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type>
-    BOOST_BIND(ndnboost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
+    _bi::bind_t<Rt2, _mfi::NDNBOOST_BIND_MF_NAME(cmf6)<R, T, B1, B2, B3, B4, B5, B6>, typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type>
+    NDNBOOST_BIND(ndnboost::type<Rt2>, R (NDNBOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
 {
-    typedef _mfi::BOOST_BIND_MF_NAME(cmf6)<R, T, B1, B2, B3, B4, B5, B6> F;
+    typedef _mfi::NDNBOOST_BIND_MF_NAME(cmf6)<R, T, B1, B2, B3, B4, B5, B6> F;
     typedef typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type list_type;
     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7));
 }
@@ -184,10 +184,10 @@
 template<class Rt2, class R, class T,
     class B1, class B2, class B3, class B4, class B5, class B6, class B7,
     class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
-    _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(mf7)<R, T, B1, B2, B3, B4, B5, B6, B7>, typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type>
-    BOOST_BIND(ndnboost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
+    _bi::bind_t<Rt2, _mfi::NDNBOOST_BIND_MF_NAME(mf7)<R, T, B1, B2, B3, B4, B5, B6, B7>, typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type>
+    NDNBOOST_BIND(ndnboost::type<Rt2>, R (NDNBOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
 {
-    typedef _mfi::BOOST_BIND_MF_NAME(mf7)<R, T, B1, B2, B3, B4, B5, B6, B7> F;
+    typedef _mfi::NDNBOOST_BIND_MF_NAME(mf7)<R, T, B1, B2, B3, B4, B5, B6, B7> F;
     typedef typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;
     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8));
 }
@@ -195,10 +195,10 @@
 template<class Rt2, class R, class T,
     class B1, class B2, class B3, class B4, class B5, class B6, class B7,
     class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
-    _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(cmf7)<R, T, B1, B2, B3, B4, B5, B6, B7>, typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type>
-    BOOST_BIND(ndnboost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
+    _bi::bind_t<Rt2, _mfi::NDNBOOST_BIND_MF_NAME(cmf7)<R, T, B1, B2, B3, B4, B5, B6, B7>, typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type>
+    NDNBOOST_BIND(ndnboost::type<Rt2>, R (NDNBOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
 {
-    typedef _mfi::BOOST_BIND_MF_NAME(cmf7)<R, T, B1, B2, B3, B4, B5, B6, B7> F;
+    typedef _mfi::NDNBOOST_BIND_MF_NAME(cmf7)<R, T, B1, B2, B3, B4, B5, B6, B7> F;
     typedef typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;
     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8));
 }
@@ -208,10 +208,10 @@
 template<class Rt2, class R, class T,
     class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8,
     class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
-    _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(mf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8>, typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type>
-    BOOST_BIND(ndnboost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7, B8), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
+    _bi::bind_t<Rt2, _mfi::NDNBOOST_BIND_MF_NAME(mf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8>, typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type>
+    NDNBOOST_BIND(ndnboost::type<Rt2>, R (NDNBOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7, B8), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
 {
-    typedef _mfi::BOOST_BIND_MF_NAME(mf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8> F;
+    typedef _mfi::NDNBOOST_BIND_MF_NAME(mf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8> F;
     typedef typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;
     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));
 }
@@ -219,10 +219,10 @@
 template<class Rt2, class R, class T,
     class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8,
     class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
-    _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(cmf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8>, typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type>
-    BOOST_BIND(ndnboost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7, B8) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
+    _bi::bind_t<Rt2, _mfi::NDNBOOST_BIND_MF_NAME(cmf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8>, typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type>
+    NDNBOOST_BIND(ndnboost::type<Rt2>, R (NDNBOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7, B8) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
 {
-    typedef _mfi::BOOST_BIND_MF_NAME(cmf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8> F;
+    typedef _mfi::NDNBOOST_BIND_MF_NAME(cmf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8> F;
     typedef typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;
     return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));
 }
diff --git a/include/ndnboost/bind/bind_mf_cc.hpp b/include/ndnboost/bind/bind_mf_cc.hpp
index 88be822..34108e7 100644
--- a/include/ndnboost/bind/bind_mf_cc.hpp
+++ b/include/ndnboost/bind/bind_mf_cc.hpp
@@ -16,20 +16,20 @@
 
 template<class R, class T,
     class A1>
-    _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(mf0)<R, T>, typename _bi::list_av_1<A1>::type>
-    BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (), A1 a1)
+    _bi::bind_t<R, _mfi::NDNBOOST_BIND_MF_NAME(mf0)<R, T>, typename _bi::list_av_1<A1>::type>
+    NDNBOOST_BIND(R (NDNBOOST_BIND_MF_CC T::*f) (), A1 a1)
 {
-    typedef _mfi::BOOST_BIND_MF_NAME(mf0)<R, T> F;
+    typedef _mfi::NDNBOOST_BIND_MF_NAME(mf0)<R, T> F;
     typedef typename _bi::list_av_1<A1>::type list_type;
     return _bi::bind_t<R, F, list_type>(F(f), list_type(a1));
 }
 
 template<class R, class T,
     class A1>
-    _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(cmf0)<R, T>, typename _bi::list_av_1<A1>::type>
-    BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) () const, A1 a1)
+    _bi::bind_t<R, _mfi::NDNBOOST_BIND_MF_NAME(cmf0)<R, T>, typename _bi::list_av_1<A1>::type>
+    NDNBOOST_BIND(R (NDNBOOST_BIND_MF_CC T::*f) () const, A1 a1)
 {
-    typedef _mfi::BOOST_BIND_MF_NAME(cmf0)<R, T> F;
+    typedef _mfi::NDNBOOST_BIND_MF_NAME(cmf0)<R, T> F;
     typedef typename _bi::list_av_1<A1>::type list_type;
     return _bi::bind_t<R, F, list_type>(F(f), list_type(a1));
 }
@@ -39,10 +39,10 @@
 template<class R, class T,
     class B1,
     class A1, class A2>
-    _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(mf1)<R, T, B1>, typename _bi::list_av_2<A1, A2>::type>
-    BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1), A1 a1, A2 a2)
+    _bi::bind_t<R, _mfi::NDNBOOST_BIND_MF_NAME(mf1)<R, T, B1>, typename _bi::list_av_2<A1, A2>::type>
+    NDNBOOST_BIND(R (NDNBOOST_BIND_MF_CC T::*f) (B1), A1 a1, A2 a2)
 {
-    typedef _mfi::BOOST_BIND_MF_NAME(mf1)<R, T, B1> F;
+    typedef _mfi::NDNBOOST_BIND_MF_NAME(mf1)<R, T, B1> F;
     typedef typename _bi::list_av_2<A1, A2>::type list_type;
     return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2));
 }
@@ -50,10 +50,10 @@
 template<class R, class T,
     class B1,
     class A1, class A2>
-    _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(cmf1)<R, T, B1>, typename _bi::list_av_2<A1, A2>::type>
-    BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1) const, A1 a1, A2 a2)
+    _bi::bind_t<R, _mfi::NDNBOOST_BIND_MF_NAME(cmf1)<R, T, B1>, typename _bi::list_av_2<A1, A2>::type>
+    NDNBOOST_BIND(R (NDNBOOST_BIND_MF_CC T::*f) (B1) const, A1 a1, A2 a2)
 {
-    typedef _mfi::BOOST_BIND_MF_NAME(cmf1)<R, T, B1> F;
+    typedef _mfi::NDNBOOST_BIND_MF_NAME(cmf1)<R, T, B1> F;
     typedef typename _bi::list_av_2<A1, A2>::type list_type;
     return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2));
 }
@@ -63,10 +63,10 @@
 template<class R, class T,
     class B1, class B2,
     class A1, class A2, class A3>
-    _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(mf2)<R, T, B1, B2>, typename _bi::list_av_3<A1, A2, A3>::type>
-    BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2), A1 a1, A2 a2, A3 a3)
+    _bi::bind_t<R, _mfi::NDNBOOST_BIND_MF_NAME(mf2)<R, T, B1, B2>, typename _bi::list_av_3<A1, A2, A3>::type>
+    NDNBOOST_BIND(R (NDNBOOST_BIND_MF_CC T::*f) (B1, B2), A1 a1, A2 a2, A3 a3)
 {
-    typedef _mfi::BOOST_BIND_MF_NAME(mf2)<R, T, B1, B2> F;
+    typedef _mfi::NDNBOOST_BIND_MF_NAME(mf2)<R, T, B1, B2> F;
     typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;
     return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3));
 }
@@ -74,10 +74,10 @@
 template<class R, class T,
     class B1, class B2,
     class A1, class A2, class A3>
-    _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(cmf2)<R, T, B1, B2>, typename _bi::list_av_3<A1, A2, A3>::type>
-    BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2) const, A1 a1, A2 a2, A3 a3)
+    _bi::bind_t<R, _mfi::NDNBOOST_BIND_MF_NAME(cmf2)<R, T, B1, B2>, typename _bi::list_av_3<A1, A2, A3>::type>
+    NDNBOOST_BIND(R (NDNBOOST_BIND_MF_CC T::*f) (B1, B2) const, A1 a1, A2 a2, A3 a3)
 {
-    typedef _mfi::BOOST_BIND_MF_NAME(cmf2)<R, T, B1, B2> F;
+    typedef _mfi::NDNBOOST_BIND_MF_NAME(cmf2)<R, T, B1, B2> F;
     typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;
     return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3));
 }
@@ -87,10 +87,10 @@
 template<class R, class T,
     class B1, class B2, class B3,
     class A1, class A2, class A3, class A4>
-    _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(mf3)<R, T, B1, B2, B3>, typename _bi::list_av_4<A1, A2, A3, A4>::type>
-    BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3), A1 a1, A2 a2, A3 a3, A4 a4)
+    _bi::bind_t<R, _mfi::NDNBOOST_BIND_MF_NAME(mf3)<R, T, B1, B2, B3>, typename _bi::list_av_4<A1, A2, A3, A4>::type>
+    NDNBOOST_BIND(R (NDNBOOST_BIND_MF_CC T::*f) (B1, B2, B3), A1 a1, A2 a2, A3 a3, A4 a4)
 {
-    typedef _mfi::BOOST_BIND_MF_NAME(mf3)<R, T, B1, B2, B3> F;
+    typedef _mfi::NDNBOOST_BIND_MF_NAME(mf3)<R, T, B1, B2, B3> F;
     typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;
     return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4));
 }
@@ -98,10 +98,10 @@
 template<class R, class T,
     class B1, class B2, class B3,
     class A1, class A2, class A3, class A4>
-    _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(cmf3)<R, T, B1, B2, B3>, typename _bi::list_av_4<A1, A2, A3, A4>::type>
-    BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3) const, A1 a1, A2 a2, A3 a3, A4 a4)
+    _bi::bind_t<R, _mfi::NDNBOOST_BIND_MF_NAME(cmf3)<R, T, B1, B2, B3>, typename _bi::list_av_4<A1, A2, A3, A4>::type>
+    NDNBOOST_BIND(R (NDNBOOST_BIND_MF_CC T::*f) (B1, B2, B3) const, A1 a1, A2 a2, A3 a3, A4 a4)
 {
-    typedef _mfi::BOOST_BIND_MF_NAME(cmf3)<R, T, B1, B2, B3> F;
+    typedef _mfi::NDNBOOST_BIND_MF_NAME(cmf3)<R, T, B1, B2, B3> F;
     typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;
     return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4));
 }
@@ -111,10 +111,10 @@
 template<class R, class T,
     class B1, class B2, class B3, class B4,
     class A1, class A2, class A3, class A4, class A5>
-    _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(mf4)<R, T, B1, B2, B3, B4>, typename _bi::list_av_5<A1, A2, A3, A4, A5>::type>
-    BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
+    _bi::bind_t<R, _mfi::NDNBOOST_BIND_MF_NAME(mf4)<R, T, B1, B2, B3, B4>, typename _bi::list_av_5<A1, A2, A3, A4, A5>::type>
+    NDNBOOST_BIND(R (NDNBOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
 {
-    typedef _mfi::BOOST_BIND_MF_NAME(mf4)<R, T, B1, B2, B3, B4> F;
+    typedef _mfi::NDNBOOST_BIND_MF_NAME(mf4)<R, T, B1, B2, B3, B4> F;
     typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;
     return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5));
 }
@@ -122,10 +122,10 @@
 template<class R, class T,
     class B1, class B2, class B3, class B4,
     class A1, class A2, class A3, class A4, class A5>
-    _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(cmf4)<R, T, B1, B2, B3, B4>, typename _bi::list_av_5<A1, A2, A3, A4, A5>::type>
-    BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
+    _bi::bind_t<R, _mfi::NDNBOOST_BIND_MF_NAME(cmf4)<R, T, B1, B2, B3, B4>, typename _bi::list_av_5<A1, A2, A3, A4, A5>::type>
+    NDNBOOST_BIND(R (NDNBOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
 {
-    typedef _mfi::BOOST_BIND_MF_NAME(cmf4)<R, T, B1, B2, B3, B4> F;
+    typedef _mfi::NDNBOOST_BIND_MF_NAME(cmf4)<R, T, B1, B2, B3, B4> F;
     typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;
     return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5));
 }
@@ -135,10 +135,10 @@
 template<class R, class T,
     class B1, class B2, class B3, class B4, class B5,
     class A1, class A2, class A3, class A4, class A5, class A6>
-    _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(mf5)<R, T, B1, B2, B3, B4, B5>, typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type>
-    BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
+    _bi::bind_t<R, _mfi::NDNBOOST_BIND_MF_NAME(mf5)<R, T, B1, B2, B3, B4, B5>, typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type>
+    NDNBOOST_BIND(R (NDNBOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
 {
-    typedef _mfi::BOOST_BIND_MF_NAME(mf5)<R, T, B1, B2, B3, B4, B5> F;
+    typedef _mfi::NDNBOOST_BIND_MF_NAME(mf5)<R, T, B1, B2, B3, B4, B5> F;
     typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;
     return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6));
 }
@@ -146,10 +146,10 @@
 template<class R, class T,
     class B1, class B2, class B3, class B4, class B5,
     class A1, class A2, class A3, class A4, class A5, class A6>
-    _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(cmf5)<R, T, B1, B2, B3, B4, B5>, typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type>
-    BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
+    _bi::bind_t<R, _mfi::NDNBOOST_BIND_MF_NAME(cmf5)<R, T, B1, B2, B3, B4, B5>, typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type>
+    NDNBOOST_BIND(R (NDNBOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
 {
-    typedef _mfi::BOOST_BIND_MF_NAME(cmf5)<R, T, B1, B2, B3, B4, B5> F;
+    typedef _mfi::NDNBOOST_BIND_MF_NAME(cmf5)<R, T, B1, B2, B3, B4, B5> F;
     typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;
     return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6));
 }
@@ -159,10 +159,10 @@
 template<class R, class T,
     class B1, class B2, class B3, class B4, class B5, class B6,
     class A1, class A2, class A3, class A4, class A5, class A6, class A7>
-    _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(mf6)<R, T, B1, B2, B3, B4, B5, B6>, typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type>
-    BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
+    _bi::bind_t<R, _mfi::NDNBOOST_BIND_MF_NAME(mf6)<R, T, B1, B2, B3, B4, B5, B6>, typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type>
+    NDNBOOST_BIND(R (NDNBOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
 {
-    typedef _mfi::BOOST_BIND_MF_NAME(mf6)<R, T, B1, B2, B3, B4, B5, B6> F;
+    typedef _mfi::NDNBOOST_BIND_MF_NAME(mf6)<R, T, B1, B2, B3, B4, B5, B6> F;
     typedef typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type list_type;
     return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7));
 }
@@ -170,10 +170,10 @@
 template<class R, class T,
     class B1, class B2, class B3, class B4, class B5, class B6,
     class A1, class A2, class A3, class A4, class A5, class A6, class A7>
-    _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(cmf6)<R, T, B1, B2, B3, B4, B5, B6>, typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type>
-    BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
+    _bi::bind_t<R, _mfi::NDNBOOST_BIND_MF_NAME(cmf6)<R, T, B1, B2, B3, B4, B5, B6>, typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type>
+    NDNBOOST_BIND(R (NDNBOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
 {
-    typedef _mfi::BOOST_BIND_MF_NAME(cmf6)<R, T, B1, B2, B3, B4, B5, B6> F;
+    typedef _mfi::NDNBOOST_BIND_MF_NAME(cmf6)<R, T, B1, B2, B3, B4, B5, B6> F;
     typedef typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type list_type;
     return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7));
 }
@@ -183,10 +183,10 @@
 template<class R, class T,
     class B1, class B2, class B3, class B4, class B5, class B6, class B7,
     class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
-    _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(mf7)<R, T, B1, B2, B3, B4, B5, B6, B7>, typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type>
-    BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
+    _bi::bind_t<R, _mfi::NDNBOOST_BIND_MF_NAME(mf7)<R, T, B1, B2, B3, B4, B5, B6, B7>, typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type>
+    NDNBOOST_BIND(R (NDNBOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
 {
-    typedef _mfi::BOOST_BIND_MF_NAME(mf7)<R, T, B1, B2, B3, B4, B5, B6, B7> F;
+    typedef _mfi::NDNBOOST_BIND_MF_NAME(mf7)<R, T, B1, B2, B3, B4, B5, B6, B7> F;
     typedef typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;
     return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8));
 }
@@ -194,10 +194,10 @@
 template<class R, class T,
     class B1, class B2, class B3, class B4, class B5, class B6, class B7,
     class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
-    _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(cmf7)<R, T, B1, B2, B3, B4, B5, B6, B7>, typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type>
-    BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
+    _bi::bind_t<R, _mfi::NDNBOOST_BIND_MF_NAME(cmf7)<R, T, B1, B2, B3, B4, B5, B6, B7>, typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type>
+    NDNBOOST_BIND(R (NDNBOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
 {
-    typedef _mfi::BOOST_BIND_MF_NAME(cmf7)<R, T, B1, B2, B3, B4, B5, B6, B7> F;
+    typedef _mfi::NDNBOOST_BIND_MF_NAME(cmf7)<R, T, B1, B2, B3, B4, B5, B6, B7> F;
     typedef typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;
     return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8));
 }
@@ -207,10 +207,10 @@
 template<class R, class T,
     class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8,
     class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
-    _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(mf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8>, typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type>
-    BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7, B8), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
+    _bi::bind_t<R, _mfi::NDNBOOST_BIND_MF_NAME(mf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8>, typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type>
+    NDNBOOST_BIND(R (NDNBOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7, B8), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
 {
-    typedef _mfi::BOOST_BIND_MF_NAME(mf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8> F;
+    typedef _mfi::NDNBOOST_BIND_MF_NAME(mf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8> F;
     typedef typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;
     return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));
 }
@@ -218,10 +218,10 @@
 template<class R, class T,
     class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8,
     class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
-    _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(cmf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8>, typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type>
-    BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7, B8) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
+    _bi::bind_t<R, _mfi::NDNBOOST_BIND_MF_NAME(cmf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8>, typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type>
+    NDNBOOST_BIND(R (NDNBOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7, B8) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
 {
-    typedef _mfi::BOOST_BIND_MF_NAME(cmf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8> F;
+    typedef _mfi::NDNBOOST_BIND_MF_NAME(cmf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8> F;
     typedef typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;
     return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));
 }
diff --git a/include/ndnboost/bind/bind_template.hpp b/include/ndnboost/bind/bind_template.hpp
index 6946aa9..f3037ec 100644
--- a/include/ndnboost/bind/bind_template.hpp
+++ b/include/ndnboost/bind/bind_template.hpp
@@ -17,40 +17,40 @@
     result_type operator()()
     {
         list0 a;
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
     result_type operator()() const
     {
         list0 a;
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
     template<class A1> result_type operator()(A1 & a1)
     {
         list1<A1 &> a(a1);
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
     template<class A1> result_type operator()(A1 & a1) const
     {
         list1<A1 &> a(a1);
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
-#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
- && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
+#if !defined(NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
+ && !NDNBOOST_WORKAROUND(__EDG_VERSION__, <= 238)
 
     template<class A1> result_type operator()(A1 const & a1)
     {
         list1<A1 const &> a(a1);
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
     template<class A1> result_type operator()(A1 const & a1) const
     {
         list1<A1 const &> a(a1);
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
 #endif
@@ -58,54 +58,54 @@
     template<class A1, class A2> result_type operator()(A1 & a1, A2 & a2)
     {
         list2<A1 &, A2 &> a(a1, a2);
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
     template<class A1, class A2> result_type operator()(A1 & a1, A2 & a2) const
     {
         list2<A1 &, A2 &> a(a1, a2);
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
-#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
- && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
+#if !defined(NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
+ && !NDNBOOST_WORKAROUND(__EDG_VERSION__, <= 238)
 
     template<class A1, class A2> result_type operator()(A1 const & a1, A2 & a2)
     {
         list2<A1 const &, A2 &> a(a1, a2);
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
     template<class A1, class A2> result_type operator()(A1 const & a1, A2 & a2) const
     {
         list2<A1 const &, A2 &> a(a1, a2);
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
 
     template<class A1, class A2> result_type operator()(A1 & a1, A2 const & a2)
     {
         list2<A1 &, A2 const &> a(a1, a2);
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
     template<class A1, class A2> result_type operator()(A1 & a1, A2 const & a2) const
     {
         list2<A1 &, A2 const &> a(a1, a2);
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
 
     template<class A1, class A2> result_type operator()(A1 const & a1, A2 const & a2)
     {
         list2<A1 const &, A2 const &> a(a1, a2);
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
     template<class A1, class A2> result_type operator()(A1 const & a1, A2 const & a2) const
     {
         list2<A1 const &, A2 const &> a(a1, a2);
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
 #endif
@@ -113,28 +113,28 @@
     template<class A1, class A2, class A3> result_type operator()(A1 & a1, A2 & a2, A3 & a3)
     {
         list3<A1 &, A2 &, A3 &> a(a1, a2, a3);
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
     template<class A1, class A2, class A3> result_type operator()(A1 & a1, A2 & a2, A3 & a3) const
     {
         list3<A1 &, A2 &, A3 &> a(a1, a2, a3);
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
-#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
- && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
+#if !defined(NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
+ && !NDNBOOST_WORKAROUND(__EDG_VERSION__, <= 238)
 
     template<class A1, class A2, class A3> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3)
     {
         list3<A1 const &, A2 const &, A3 const &> a(a1, a2, a3);
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
     template<class A1, class A2, class A3> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3) const
     {
         list3<A1 const &, A2 const &, A3 const &> a(a1, a2, a3);
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
 #endif
@@ -142,28 +142,28 @@
     template<class A1, class A2, class A3, class A4> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4)
     {
         list4<A1 &, A2 &, A3 &, A4 &> a(a1, a2, a3, a4);
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
     template<class A1, class A2, class A3, class A4> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4) const
     {
         list4<A1 &, A2 &, A3 &, A4 &> a(a1, a2, a3, a4);
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
-#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
- && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
+#if !defined(NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
+ && !NDNBOOST_WORKAROUND(__EDG_VERSION__, <= 238)
 
     template<class A1, class A2, class A3, class A4> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4)
     {
         list4<A1 const &, A2 const &, A3 const &, A4 const &> a(a1, a2, a3, a4);
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
     template<class A1, class A2, class A3, class A4> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4) const
     {
         list4<A1 const &, A2 const &, A3 const &, A4 const &> a(a1, a2, a3, a4);
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
 #endif
@@ -171,28 +171,28 @@
     template<class A1, class A2, class A3, class A4, class A5> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5)
     {
         list5<A1 &, A2 &, A3 &, A4 &, A5 &> a(a1, a2, a3, a4, a5);
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
     template<class A1, class A2, class A3, class A4, class A5> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5) const
     {
         list5<A1 &, A2 &, A3 &, A4 &, A5 &> a(a1, a2, a3, a4, a5);
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
-#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
- && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
+#if !defined(NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
+ && !NDNBOOST_WORKAROUND(__EDG_VERSION__, <= 238)
 
     template<class A1, class A2, class A3, class A4, class A5> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5)
     {
         list5<A1 const &, A2 const &, A3 const &, A4 const &, A5 const &> a(a1, a2, a3, a4, a5);
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
     template<class A1, class A2, class A3, class A4, class A5> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5) const
     {
         list5<A1 const &, A2 const &, A3 const &, A4 const &, A5 const &> a(a1, a2, a3, a4, a5);
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
 #endif
@@ -200,28 +200,28 @@
     template<class A1, class A2, class A3, class A4, class A5, class A6> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6)
     {
         list6<A1 &, A2 &, A3 &, A4 &, A5 &, A6 &> a(a1, a2, a3, a4, a5, a6);
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
     template<class A1, class A2, class A3, class A4, class A5, class A6> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6) const
     {
         list6<A1 &, A2 &, A3 &, A4 &, A5 &, A6 &> a(a1, a2, a3, a4, a5, a6);
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
-#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
- && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
+#if !defined(NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
+ && !NDNBOOST_WORKAROUND(__EDG_VERSION__, <= 238)
 
     template<class A1, class A2, class A3, class A4, class A5, class A6> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6)
     {
         list6<A1 const &, A2 const &, A3 const &, A4 const &, A5 const &, A6 const &> a(a1, a2, a3, a4, a5, a6);
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
     template<class A1, class A2, class A3, class A4, class A5, class A6> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6) const
     {
         list6<A1 const &, A2 const &, A3 const &, A4 const &, A5 const &, A6 const &> a(a1, a2, a3, a4, a5, a6);
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
 #endif
@@ -229,28 +229,28 @@
     template<class A1, class A2, class A3, class A4, class A5, class A6, class A7> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7)
     {
         list7<A1 &, A2 &, A3 &, A4 &, A5 &, A6 &, A7 &> a(a1, a2, a3, a4, a5, a6, a7);
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
     template<class A1, class A2, class A3, class A4, class A5, class A6, class A7> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7) const
     {
         list7<A1 &, A2 &, A3 &, A4 &, A5 &, A6 &, A7 &> a(a1, a2, a3, a4, a5, a6, a7);
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
-#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
- && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
+#if !defined(NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
+ && !NDNBOOST_WORKAROUND(__EDG_VERSION__, <= 238)
 
     template<class A1, class A2, class A3, class A4, class A5, class A6, class A7> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7)
     {
         list7<A1 const &, A2 const &, A3 const &, A4 const &, A5 const &, A6 const &, A7 const &> a(a1, a2, a3, a4, a5, a6, a7);
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
     template<class A1, class A2, class A3, class A4, class A5, class A6, class A7> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7) const
     {
         list7<A1 const &, A2 const &, A3 const &, A4 const &, A5 const &, A6 const &, A7 const &> a(a1, a2, a3, a4, a5, a6, a7);
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
 #endif
@@ -258,28 +258,28 @@
     template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8)
     {
         list8<A1 &, A2 &, A3 &, A4 &, A5 &, A6 &, A7 &, A8 &> a(a1, a2, a3, a4, a5, a6, a7, a8);
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
     template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8) const
     {
         list8<A1 &, A2 &, A3 &, A4 &, A5 &, A6 &, A7 &, A8 &> a(a1, a2, a3, a4, a5, a6, a7, a8);
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
-#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
- && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
+#if !defined(NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
+ && !NDNBOOST_WORKAROUND(__EDG_VERSION__, <= 238)
 
     template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8)
     {
         list8<A1 const &, A2 const &, A3 const &, A4 const &, A5 const &, A6 const &, A7 const &, A8 const &> a(a1, a2, a3, a4, a5, a6, a7, a8);
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
     template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8) const
     {
         list8<A1 const &, A2 const &, A3 const &, A4 const &, A5 const &, A6 const &, A7 const &, A8 const &> a(a1, a2, a3, a4, a5, a6, a7, a8);
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
 #endif
@@ -287,50 +287,50 @@
     template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8, A9 & a9)
     {
         list9<A1 &, A2 &, A3 &, A4 &, A5 &, A6 &, A7 &, A8 &, A9 &> a(a1, a2, a3, a4, a5, a6, a7, a8, a9);
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
     template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8, A9 & a9) const
     {
         list9<A1 &, A2 &, A3 &, A4 &, A5 &, A6 &, A7 &, A8 &, A9 &> a(a1, a2, a3, a4, a5, a6, a7, a8, a9);
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
-#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
- && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
+#if !defined(NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
+ && !NDNBOOST_WORKAROUND(__EDG_VERSION__, <= 238)
 
     template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8, A9 const & a9)
     {
         list9<A1 const &, A2 const &, A3 const &, A4 const &, A5 const &, A6 const &, A7 const &, A8 const &, A9 const &> a(a1, a2, a3, a4, a5, a6, a7, a8, a9);
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
     template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8, A9 const & a9) const
     {
         list9<A1 const &, A2 const &, A3 const &, A4 const &, A5 const &, A6 const &, A7 const &, A8 const &, A9 const &> a(a1, a2, a3, a4, a5, a6, a7, a8, a9);
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
 #endif
 
     template<class A> result_type eval(A & a)
     {
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
     template<class A> result_type eval(A & a) const
     {
-        BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
+        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
     }
 
     template<class V> void accept(V & v) const
     {
-#if !defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) && !defined( __BORLANDC__ )
+#if !defined( NDNBOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) && !defined( __BORLANDC__ )
 
         using ndnboost::visit_each;
 
 #endif
-        BOOST_BIND_VISIT_EACH(v, f_, 0);
+        NDNBOOST_BIND_VISIT_EACH(v, f_, 0);
         l_.accept(v);
     }
 
diff --git a/include/ndnboost/bind/make_adaptable.hpp b/include/ndnboost/bind/make_adaptable.hpp
index 77742f0..619eddd 100644
--- a/include/ndnboost/bind/make_adaptable.hpp
+++ b/include/ndnboost/bind/make_adaptable.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_BIND_MAKE_ADAPTABLE_HPP_INCLUDED
-#define BOOST_BIND_MAKE_ADAPTABLE_HPP_INCLUDED
+#ifndef NDNBOOST_BIND_MAKE_ADAPTABLE_HPP_INCLUDED
+#define NDNBOOST_BIND_MAKE_ADAPTABLE_HPP_INCLUDED
 
 //
 //  make_adaptable.hpp
@@ -184,4 +184,4 @@
 
 } // namespace ndnboost
 
-#endif // #ifndef BOOST_BIND_MAKE_ADAPTABLE_HPP_INCLUDED
+#endif // #ifndef NDNBOOST_BIND_MAKE_ADAPTABLE_HPP_INCLUDED
diff --git a/include/ndnboost/bind/mem_fn.hpp b/include/ndnboost/bind/mem_fn.hpp
index 7c07d4f..b2a915e 100644
--- a/include/ndnboost/bind/mem_fn.hpp
+++ b/include/ndnboost/bind/mem_fn.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_BIND_MEM_FN_HPP_INCLUDED
-#define BOOST_BIND_MEM_FN_HPP_INCLUDED
+#ifndef NDNBOOST_BIND_MEM_FN_HPP_INCLUDED
+#define NDNBOOST_BIND_MEM_FN_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -28,10 +28,10 @@
 namespace ndnboost
 {
 
-#if defined(BOOST_NO_VOID_RETURNS)
+#if defined(NDNBOOST_NO_VOID_RETURNS)
 
-#define BOOST_MEM_FN_CLASS_F , class F
-#define BOOST_MEM_FN_TYPEDEF(X)
+#define NDNBOOST_MEM_FN_CLASS_F , class F
+#define NDNBOOST_MEM_FN_TYPEDEF(X)
 
 namespace _mfi // mem_fun_impl
 {
@@ -39,270 +39,270 @@
 template<class V> struct mf
 {
 
-#define BOOST_MEM_FN_RETURN return
+#define NDNBOOST_MEM_FN_RETURN return
 
-#define BOOST_MEM_FN_NAME(X) inner_##X
-#define BOOST_MEM_FN_CC
+#define NDNBOOST_MEM_FN_NAME(X) inner_##X
+#define NDNBOOST_MEM_FN_CC
 
 #include <ndnboost/bind/mem_fn_template.hpp>
 
-#undef BOOST_MEM_FN_CC
-#undef BOOST_MEM_FN_NAME
+#undef NDNBOOST_MEM_FN_CC
+#undef NDNBOOST_MEM_FN_NAME
 
-#ifdef BOOST_MEM_FN_ENABLE_CDECL
+#ifdef NDNBOOST_MEM_FN_ENABLE_CDECL
 
-#define BOOST_MEM_FN_NAME(X) inner_##X##_cdecl
-#define BOOST_MEM_FN_CC __cdecl
+#define NDNBOOST_MEM_FN_NAME(X) inner_##X##_cdecl
+#define NDNBOOST_MEM_FN_CC __cdecl
 
 #include <ndnboost/bind/mem_fn_template.hpp>
 
-#undef BOOST_MEM_FN_CC
-#undef BOOST_MEM_FN_NAME
+#undef NDNBOOST_MEM_FN_CC
+#undef NDNBOOST_MEM_FN_NAME
 
 #endif
 
-#ifdef BOOST_MEM_FN_ENABLE_STDCALL
+#ifdef NDNBOOST_MEM_FN_ENABLE_STDCALL
 
-#define BOOST_MEM_FN_NAME(X) inner_##X##_stdcall
-#define BOOST_MEM_FN_CC __stdcall
+#define NDNBOOST_MEM_FN_NAME(X) inner_##X##_stdcall
+#define NDNBOOST_MEM_FN_CC __stdcall
 
 #include <ndnboost/bind/mem_fn_template.hpp>
 
-#undef BOOST_MEM_FN_CC
-#undef BOOST_MEM_FN_NAME
+#undef NDNBOOST_MEM_FN_CC
+#undef NDNBOOST_MEM_FN_NAME
 
 #endif
 
-#ifdef BOOST_MEM_FN_ENABLE_FASTCALL
+#ifdef NDNBOOST_MEM_FN_ENABLE_FASTCALL
 
-#define BOOST_MEM_FN_NAME(X) inner_##X##_fastcall
-#define BOOST_MEM_FN_CC __fastcall
+#define NDNBOOST_MEM_FN_NAME(X) inner_##X##_fastcall
+#define NDNBOOST_MEM_FN_CC __fastcall
 
 #include <ndnboost/bind/mem_fn_template.hpp>
 
-#undef BOOST_MEM_FN_CC
-#undef BOOST_MEM_FN_NAME
+#undef NDNBOOST_MEM_FN_CC
+#undef NDNBOOST_MEM_FN_NAME
 
 #endif
 
-#undef BOOST_MEM_FN_RETURN
+#undef NDNBOOST_MEM_FN_RETURN
 
 }; // struct mf<V>
 
 template<> struct mf<void>
 {
 
-#define BOOST_MEM_FN_RETURN
+#define NDNBOOST_MEM_FN_RETURN
 
-#define BOOST_MEM_FN_NAME(X) inner_##X
-#define BOOST_MEM_FN_CC
+#define NDNBOOST_MEM_FN_NAME(X) inner_##X
+#define NDNBOOST_MEM_FN_CC
 
 #include <ndnboost/bind/mem_fn_template.hpp>
 
-#undef BOOST_MEM_FN_CC
-#undef BOOST_MEM_FN_NAME
+#undef NDNBOOST_MEM_FN_CC
+#undef NDNBOOST_MEM_FN_NAME
 
-#ifdef BOOST_MEM_FN_ENABLE_CDECL
+#ifdef NDNBOOST_MEM_FN_ENABLE_CDECL
 
-#define BOOST_MEM_FN_NAME(X) inner_##X##_cdecl
-#define BOOST_MEM_FN_CC __cdecl
+#define NDNBOOST_MEM_FN_NAME(X) inner_##X##_cdecl
+#define NDNBOOST_MEM_FN_CC __cdecl
 
 #include <ndnboost/bind/mem_fn_template.hpp>
 
-#undef BOOST_MEM_FN_CC
-#undef BOOST_MEM_FN_NAME
+#undef NDNBOOST_MEM_FN_CC
+#undef NDNBOOST_MEM_FN_NAME
 
 #endif
 
-#ifdef BOOST_MEM_FN_ENABLE_STDCALL
+#ifdef NDNBOOST_MEM_FN_ENABLE_STDCALL
 
-#define BOOST_MEM_FN_NAME(X) inner_##X##_stdcall
-#define BOOST_MEM_FN_CC __stdcall
+#define NDNBOOST_MEM_FN_NAME(X) inner_##X##_stdcall
+#define NDNBOOST_MEM_FN_CC __stdcall
 
 #include <ndnboost/bind/mem_fn_template.hpp>
 
-#undef BOOST_MEM_FN_CC
-#undef BOOST_MEM_FN_NAME
+#undef NDNBOOST_MEM_FN_CC
+#undef NDNBOOST_MEM_FN_NAME
 
 #endif
 
-#ifdef BOOST_MEM_FN_ENABLE_FASTCALL
+#ifdef NDNBOOST_MEM_FN_ENABLE_FASTCALL
 
-#define BOOST_MEM_FN_NAME(X) inner_##X##_fastcall
-#define BOOST_MEM_FN_CC __fastcall
+#define NDNBOOST_MEM_FN_NAME(X) inner_##X##_fastcall
+#define NDNBOOST_MEM_FN_CC __fastcall
 
 #include <ndnboost/bind/mem_fn_template.hpp>
 
-#undef BOOST_MEM_FN_CC
-#undef BOOST_MEM_FN_NAME
+#undef NDNBOOST_MEM_FN_CC
+#undef NDNBOOST_MEM_FN_NAME
 
 #endif
 
-#undef BOOST_MEM_FN_RETURN
+#undef NDNBOOST_MEM_FN_RETURN
 
 }; // struct mf<void>
 
-#undef BOOST_MEM_FN_CLASS_F
-#undef BOOST_MEM_FN_TYPEDEF_F
+#undef NDNBOOST_MEM_FN_CLASS_F
+#undef NDNBOOST_MEM_FN_TYPEDEF_F
 
-#define BOOST_MEM_FN_NAME(X) X
-#define BOOST_MEM_FN_NAME2(X) inner_##X
-#define BOOST_MEM_FN_CC
+#define NDNBOOST_MEM_FN_NAME(X) X
+#define NDNBOOST_MEM_FN_NAME2(X) inner_##X
+#define NDNBOOST_MEM_FN_CC
 
 #include <ndnboost/bind/mem_fn_vw.hpp>
 
-#undef BOOST_MEM_FN_NAME
-#undef BOOST_MEM_FN_NAME2
-#undef BOOST_MEM_FN_CC
+#undef NDNBOOST_MEM_FN_NAME
+#undef NDNBOOST_MEM_FN_NAME2
+#undef NDNBOOST_MEM_FN_CC
 
-#ifdef BOOST_MEM_FN_ENABLE_CDECL
+#ifdef NDNBOOST_MEM_FN_ENABLE_CDECL
 
-#define BOOST_MEM_FN_NAME(X) X##_cdecl
-#define BOOST_MEM_FN_NAME2(X) inner_##X##_cdecl
-#define BOOST_MEM_FN_CC __cdecl
+#define NDNBOOST_MEM_FN_NAME(X) X##_cdecl
+#define NDNBOOST_MEM_FN_NAME2(X) inner_##X##_cdecl
+#define NDNBOOST_MEM_FN_CC __cdecl
 
 #include <ndnboost/bind/mem_fn_vw.hpp>
 
-#undef BOOST_MEM_FN_NAME
-#undef BOOST_MEM_FN_NAME2
-#undef BOOST_MEM_FN_CC
+#undef NDNBOOST_MEM_FN_NAME
+#undef NDNBOOST_MEM_FN_NAME2
+#undef NDNBOOST_MEM_FN_CC
 
 #endif
 
-#ifdef BOOST_MEM_FN_ENABLE_STDCALL
+#ifdef NDNBOOST_MEM_FN_ENABLE_STDCALL
 
-#define BOOST_MEM_FN_NAME(X) X##_stdcall
-#define BOOST_MEM_FN_NAME2(X) inner_##X##_stdcall
-#define BOOST_MEM_FN_CC __stdcall
+#define NDNBOOST_MEM_FN_NAME(X) X##_stdcall
+#define NDNBOOST_MEM_FN_NAME2(X) inner_##X##_stdcall
+#define NDNBOOST_MEM_FN_CC __stdcall
 
 #include <ndnboost/bind/mem_fn_vw.hpp>
 
-#undef BOOST_MEM_FN_NAME
-#undef BOOST_MEM_FN_NAME2
-#undef BOOST_MEM_FN_CC
+#undef NDNBOOST_MEM_FN_NAME
+#undef NDNBOOST_MEM_FN_NAME2
+#undef NDNBOOST_MEM_FN_CC
 
 #endif
 
-#ifdef BOOST_MEM_FN_ENABLE_FASTCALL
+#ifdef NDNBOOST_MEM_FN_ENABLE_FASTCALL
 
-#define BOOST_MEM_FN_NAME(X) X##_fastcall
-#define BOOST_MEM_FN_NAME2(X) inner_##X##_fastcall
-#define BOOST_MEM_FN_CC __fastcall
+#define NDNBOOST_MEM_FN_NAME(X) X##_fastcall
+#define NDNBOOST_MEM_FN_NAME2(X) inner_##X##_fastcall
+#define NDNBOOST_MEM_FN_CC __fastcall
 
 #include <ndnboost/bind/mem_fn_vw.hpp>
 
-#undef BOOST_MEM_FN_NAME
-#undef BOOST_MEM_FN_NAME2
-#undef BOOST_MEM_FN_CC
+#undef NDNBOOST_MEM_FN_NAME
+#undef NDNBOOST_MEM_FN_NAME2
+#undef NDNBOOST_MEM_FN_CC
 
 #endif
 
 } // namespace _mfi
 
-#else // #ifdef BOOST_NO_VOID_RETURNS
+#else // #ifdef NDNBOOST_NO_VOID_RETURNS
 
-#define BOOST_MEM_FN_CLASS_F
-#define BOOST_MEM_FN_TYPEDEF(X) typedef X;
+#define NDNBOOST_MEM_FN_CLASS_F
+#define NDNBOOST_MEM_FN_TYPEDEF(X) typedef X;
 
 namespace _mfi
 {
 
-#define BOOST_MEM_FN_RETURN return
+#define NDNBOOST_MEM_FN_RETURN return
 
-#define BOOST_MEM_FN_NAME(X) X
-#define BOOST_MEM_FN_CC
+#define NDNBOOST_MEM_FN_NAME(X) X
+#define NDNBOOST_MEM_FN_CC
 
 #include <ndnboost/bind/mem_fn_template.hpp>
 
-#undef BOOST_MEM_FN_CC
-#undef BOOST_MEM_FN_NAME
+#undef NDNBOOST_MEM_FN_CC
+#undef NDNBOOST_MEM_FN_NAME
 
-#ifdef BOOST_MEM_FN_ENABLE_CDECL
+#ifdef NDNBOOST_MEM_FN_ENABLE_CDECL
 
-#define BOOST_MEM_FN_NAME(X) X##_cdecl
-#define BOOST_MEM_FN_CC __cdecl
+#define NDNBOOST_MEM_FN_NAME(X) X##_cdecl
+#define NDNBOOST_MEM_FN_CC __cdecl
 
 #include <ndnboost/bind/mem_fn_template.hpp>
 
-#undef BOOST_MEM_FN_CC
-#undef BOOST_MEM_FN_NAME
+#undef NDNBOOST_MEM_FN_CC
+#undef NDNBOOST_MEM_FN_NAME
 
 #endif
 
-#ifdef BOOST_MEM_FN_ENABLE_STDCALL
+#ifdef NDNBOOST_MEM_FN_ENABLE_STDCALL
 
-#define BOOST_MEM_FN_NAME(X) X##_stdcall
-#define BOOST_MEM_FN_CC __stdcall
+#define NDNBOOST_MEM_FN_NAME(X) X##_stdcall
+#define NDNBOOST_MEM_FN_CC __stdcall
 
 #include <ndnboost/bind/mem_fn_template.hpp>
 
-#undef BOOST_MEM_FN_CC
-#undef BOOST_MEM_FN_NAME
+#undef NDNBOOST_MEM_FN_CC
+#undef NDNBOOST_MEM_FN_NAME
 
 #endif
 
-#ifdef BOOST_MEM_FN_ENABLE_FASTCALL
+#ifdef NDNBOOST_MEM_FN_ENABLE_FASTCALL
 
-#define BOOST_MEM_FN_NAME(X) X##_fastcall
-#define BOOST_MEM_FN_CC __fastcall
+#define NDNBOOST_MEM_FN_NAME(X) X##_fastcall
+#define NDNBOOST_MEM_FN_CC __fastcall
 
 #include <ndnboost/bind/mem_fn_template.hpp>
 
-#undef BOOST_MEM_FN_CC
-#undef BOOST_MEM_FN_NAME
+#undef NDNBOOST_MEM_FN_CC
+#undef NDNBOOST_MEM_FN_NAME
 
 #endif
 
-#undef BOOST_MEM_FN_RETURN
+#undef NDNBOOST_MEM_FN_RETURN
 
 } // namespace _mfi
 
-#undef BOOST_MEM_FN_CLASS_F
-#undef BOOST_MEM_FN_TYPEDEF
+#undef NDNBOOST_MEM_FN_CLASS_F
+#undef NDNBOOST_MEM_FN_TYPEDEF
 
-#endif // #ifdef BOOST_NO_VOID_RETURNS
+#endif // #ifdef NDNBOOST_NO_VOID_RETURNS
 
-#define BOOST_MEM_FN_NAME(X) X
-#define BOOST_MEM_FN_CC
+#define NDNBOOST_MEM_FN_NAME(X) X
+#define NDNBOOST_MEM_FN_CC
 
 #include <ndnboost/bind/mem_fn_cc.hpp>
 
-#undef BOOST_MEM_FN_NAME
-#undef BOOST_MEM_FN_CC
+#undef NDNBOOST_MEM_FN_NAME
+#undef NDNBOOST_MEM_FN_CC
 
-#ifdef BOOST_MEM_FN_ENABLE_CDECL
+#ifdef NDNBOOST_MEM_FN_ENABLE_CDECL
 
-#define BOOST_MEM_FN_NAME(X) X##_cdecl
-#define BOOST_MEM_FN_CC __cdecl
+#define NDNBOOST_MEM_FN_NAME(X) X##_cdecl
+#define NDNBOOST_MEM_FN_CC __cdecl
 
 #include <ndnboost/bind/mem_fn_cc.hpp>
 
-#undef BOOST_MEM_FN_NAME
-#undef BOOST_MEM_FN_CC
+#undef NDNBOOST_MEM_FN_NAME
+#undef NDNBOOST_MEM_FN_CC
 
 #endif
 
-#ifdef BOOST_MEM_FN_ENABLE_STDCALL
+#ifdef NDNBOOST_MEM_FN_ENABLE_STDCALL
 
-#define BOOST_MEM_FN_NAME(X) X##_stdcall
-#define BOOST_MEM_FN_CC __stdcall
+#define NDNBOOST_MEM_FN_NAME(X) X##_stdcall
+#define NDNBOOST_MEM_FN_CC __stdcall
 
 #include <ndnboost/bind/mem_fn_cc.hpp>
 
-#undef BOOST_MEM_FN_NAME
-#undef BOOST_MEM_FN_CC
+#undef NDNBOOST_MEM_FN_NAME
+#undef NDNBOOST_MEM_FN_CC
 
 #endif
 
-#ifdef BOOST_MEM_FN_ENABLE_FASTCALL
+#ifdef NDNBOOST_MEM_FN_ENABLE_FASTCALL
 
-#define BOOST_MEM_FN_NAME(X) X##_fastcall
-#define BOOST_MEM_FN_CC __fastcall
+#define NDNBOOST_MEM_FN_NAME(X) X##_fastcall
+#define NDNBOOST_MEM_FN_CC __fastcall
 
 #include <ndnboost/bind/mem_fn_cc.hpp>
 
-#undef BOOST_MEM_FN_NAME
-#undef BOOST_MEM_FN_CC
+#undef NDNBOOST_MEM_FN_NAME
+#undef NDNBOOST_MEM_FN_CC
 
 #endif
 
@@ -352,7 +352,7 @@
         return call(u, &u);
     }
 
-#if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300) && !BOOST_WORKAROUND(__MWERKS__, < 0x3200)
+#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) && !NDNBOOST_WORKAROUND(__MWERKS__, < 0x3200)
 
     R & operator()(T & t) const
     {
@@ -386,4 +386,4 @@
 
 } // namespace ndnboost
 
-#endif // #ifndef BOOST_BIND_MEM_FN_HPP_INCLUDED
+#endif // #ifndef NDNBOOST_BIND_MEM_FN_HPP_INCLUDED
diff --git a/include/ndnboost/bind/mem_fn_cc.hpp b/include/ndnboost/bind/mem_fn_cc.hpp
index 8b6ea0b..a094d3b 100644
--- a/include/ndnboost/bind/mem_fn_cc.hpp
+++ b/include/ndnboost/bind/mem_fn_cc.hpp
@@ -12,92 +12,92 @@
 //  See http://www.boost.org/libs/bind/mem_fn.html for documentation.
 //
 
-template<class R, class T> _mfi::BOOST_MEM_FN_NAME(mf0)<R, T> mem_fn(R (BOOST_MEM_FN_CC T::*f) ())
+template<class R, class T> _mfi::NDNBOOST_MEM_FN_NAME(mf0)<R, T> mem_fn(R (NDNBOOST_MEM_FN_CC T::*f) ())
 {
-    return _mfi::BOOST_MEM_FN_NAME(mf0)<R, T>(f);
+    return _mfi::NDNBOOST_MEM_FN_NAME(mf0)<R, T>(f);
 }
 
-template<class R, class T> _mfi::BOOST_MEM_FN_NAME(cmf0)<R, T> mem_fn(R (BOOST_MEM_FN_CC T::*f) () const)
+template<class R, class T> _mfi::NDNBOOST_MEM_FN_NAME(cmf0)<R, T> mem_fn(R (NDNBOOST_MEM_FN_CC T::*f) () const)
 {
-    return _mfi::BOOST_MEM_FN_NAME(cmf0)<R, T>(f);
+    return _mfi::NDNBOOST_MEM_FN_NAME(cmf0)<R, T>(f);
 }
 
-template<class R, class T, class A1> _mfi::BOOST_MEM_FN_NAME(mf1)<R, T, A1> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1))
+template<class R, class T, class A1> _mfi::NDNBOOST_MEM_FN_NAME(mf1)<R, T, A1> mem_fn(R (NDNBOOST_MEM_FN_CC T::*f) (A1))
 {
-    return _mfi::BOOST_MEM_FN_NAME(mf1)<R, T, A1>(f);
+    return _mfi::NDNBOOST_MEM_FN_NAME(mf1)<R, T, A1>(f);
 }
 
-template<class R, class T, class A1> _mfi::BOOST_MEM_FN_NAME(cmf1)<R, T, A1> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1) const)
+template<class R, class T, class A1> _mfi::NDNBOOST_MEM_FN_NAME(cmf1)<R, T, A1> mem_fn(R (NDNBOOST_MEM_FN_CC T::*f) (A1) const)
 {
-    return _mfi::BOOST_MEM_FN_NAME(cmf1)<R, T, A1>(f);
+    return _mfi::NDNBOOST_MEM_FN_NAME(cmf1)<R, T, A1>(f);
 }
 
-template<class R, class T, class A1, class A2> _mfi::BOOST_MEM_FN_NAME(mf2)<R, T, A1, A2> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2))
+template<class R, class T, class A1, class A2> _mfi::NDNBOOST_MEM_FN_NAME(mf2)<R, T, A1, A2> mem_fn(R (NDNBOOST_MEM_FN_CC T::*f) (A1, A2))
 {
-    return _mfi::BOOST_MEM_FN_NAME(mf2)<R, T, A1, A2>(f);
+    return _mfi::NDNBOOST_MEM_FN_NAME(mf2)<R, T, A1, A2>(f);
 }
 
-template<class R, class T, class A1, class A2> _mfi::BOOST_MEM_FN_NAME(cmf2)<R, T, A1, A2> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2) const)
+template<class R, class T, class A1, class A2> _mfi::NDNBOOST_MEM_FN_NAME(cmf2)<R, T, A1, A2> mem_fn(R (NDNBOOST_MEM_FN_CC T::*f) (A1, A2) const)
 {
-    return _mfi::BOOST_MEM_FN_NAME(cmf2)<R, T, A1, A2>(f);
+    return _mfi::NDNBOOST_MEM_FN_NAME(cmf2)<R, T, A1, A2>(f);
 }
 
-template<class R, class T, class A1, class A2, class A3> _mfi::BOOST_MEM_FN_NAME(mf3)<R, T, A1, A2, A3> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3))
+template<class R, class T, class A1, class A2, class A3> _mfi::NDNBOOST_MEM_FN_NAME(mf3)<R, T, A1, A2, A3> mem_fn(R (NDNBOOST_MEM_FN_CC T::*f) (A1, A2, A3))
 {
-    return _mfi::BOOST_MEM_FN_NAME(mf3)<R, T, A1, A2, A3>(f);
+    return _mfi::NDNBOOST_MEM_FN_NAME(mf3)<R, T, A1, A2, A3>(f);
 }
 
-template<class R, class T, class A1, class A2, class A3> _mfi::BOOST_MEM_FN_NAME(cmf3)<R, T, A1, A2, A3> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3) const)
+template<class R, class T, class A1, class A2, class A3> _mfi::NDNBOOST_MEM_FN_NAME(cmf3)<R, T, A1, A2, A3> mem_fn(R (NDNBOOST_MEM_FN_CC T::*f) (A1, A2, A3) const)
 {
-    return _mfi::BOOST_MEM_FN_NAME(cmf3)<R, T, A1, A2, A3>(f);
+    return _mfi::NDNBOOST_MEM_FN_NAME(cmf3)<R, T, A1, A2, A3>(f);
 }
 
-template<class R, class T, class A1, class A2, class A3, class A4> _mfi::BOOST_MEM_FN_NAME(mf4)<R, T, A1, A2, A3, A4> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4))
+template<class R, class T, class A1, class A2, class A3, class A4> _mfi::NDNBOOST_MEM_FN_NAME(mf4)<R, T, A1, A2, A3, A4> mem_fn(R (NDNBOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4))
 {
-    return _mfi::BOOST_MEM_FN_NAME(mf4)<R, T, A1, A2, A3, A4>(f);
+    return _mfi::NDNBOOST_MEM_FN_NAME(mf4)<R, T, A1, A2, A3, A4>(f);
 }
 
-template<class R, class T, class A1, class A2, class A3, class A4> _mfi::BOOST_MEM_FN_NAME(cmf4)<R, T, A1, A2, A3, A4> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4) const)
+template<class R, class T, class A1, class A2, class A3, class A4> _mfi::NDNBOOST_MEM_FN_NAME(cmf4)<R, T, A1, A2, A3, A4> mem_fn(R (NDNBOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4) const)
 {
-    return _mfi::BOOST_MEM_FN_NAME(cmf4)<R, T, A1, A2, A3, A4>(f);
+    return _mfi::NDNBOOST_MEM_FN_NAME(cmf4)<R, T, A1, A2, A3, A4>(f);
 }
 
-template<class R, class T, class A1, class A2, class A3, class A4, class A5> _mfi::BOOST_MEM_FN_NAME(mf5)<R, T, A1, A2, A3, A4, A5> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5))
+template<class R, class T, class A1, class A2, class A3, class A4, class A5> _mfi::NDNBOOST_MEM_FN_NAME(mf5)<R, T, A1, A2, A3, A4, A5> mem_fn(R (NDNBOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5))
 {
-    return _mfi::BOOST_MEM_FN_NAME(mf5)<R, T, A1, A2, A3, A4, A5>(f);
+    return _mfi::NDNBOOST_MEM_FN_NAME(mf5)<R, T, A1, A2, A3, A4, A5>(f);
 }
 
-template<class R, class T, class A1, class A2, class A3, class A4, class A5> _mfi::BOOST_MEM_FN_NAME(cmf5)<R, T, A1, A2, A3, A4, A5> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5) const)
+template<class R, class T, class A1, class A2, class A3, class A4, class A5> _mfi::NDNBOOST_MEM_FN_NAME(cmf5)<R, T, A1, A2, A3, A4, A5> mem_fn(R (NDNBOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5) const)
 {
-    return _mfi::BOOST_MEM_FN_NAME(cmf5)<R, T, A1, A2, A3, A4, A5>(f);
+    return _mfi::NDNBOOST_MEM_FN_NAME(cmf5)<R, T, A1, A2, A3, A4, A5>(f);
 }
 
-template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6> _mfi::BOOST_MEM_FN_NAME(mf6)<R, T, A1, A2, A3, A4, A5, A6> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6))
+template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6> _mfi::NDNBOOST_MEM_FN_NAME(mf6)<R, T, A1, A2, A3, A4, A5, A6> mem_fn(R (NDNBOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6))
 {
-    return _mfi::BOOST_MEM_FN_NAME(mf6)<R, T, A1, A2, A3, A4, A5, A6>(f);
+    return _mfi::NDNBOOST_MEM_FN_NAME(mf6)<R, T, A1, A2, A3, A4, A5, A6>(f);
 }
 
-template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6> _mfi::BOOST_MEM_FN_NAME(cmf6)<R, T, A1, A2, A3, A4, A5, A6> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6) const)
+template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6> _mfi::NDNBOOST_MEM_FN_NAME(cmf6)<R, T, A1, A2, A3, A4, A5, A6> mem_fn(R (NDNBOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6) const)
 {
-    return _mfi::BOOST_MEM_FN_NAME(cmf6)<R, T, A1, A2, A3, A4, A5, A6>(f);
+    return _mfi::NDNBOOST_MEM_FN_NAME(cmf6)<R, T, A1, A2, A3, A4, A5, A6>(f);
 }
 
-template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7> _mfi::BOOST_MEM_FN_NAME(mf7)<R, T, A1, A2, A3, A4, A5, A6, A7> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7))
+template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7> _mfi::NDNBOOST_MEM_FN_NAME(mf7)<R, T, A1, A2, A3, A4, A5, A6, A7> mem_fn(R (NDNBOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7))
 {
-    return _mfi::BOOST_MEM_FN_NAME(mf7)<R, T, A1, A2, A3, A4, A5, A6, A7>(f);
+    return _mfi::NDNBOOST_MEM_FN_NAME(mf7)<R, T, A1, A2, A3, A4, A5, A6, A7>(f);
 }
 
-template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7> _mfi::BOOST_MEM_FN_NAME(cmf7)<R, T, A1, A2, A3, A4, A5, A6, A7> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7) const)
+template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7> _mfi::NDNBOOST_MEM_FN_NAME(cmf7)<R, T, A1, A2, A3, A4, A5, A6, A7> mem_fn(R (NDNBOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7) const)
 {
-    return _mfi::BOOST_MEM_FN_NAME(cmf7)<R, T, A1, A2, A3, A4, A5, A6, A7>(f);
+    return _mfi::NDNBOOST_MEM_FN_NAME(cmf7)<R, T, A1, A2, A3, A4, A5, A6, A7>(f);
 }
 
-template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> _mfi::BOOST_MEM_FN_NAME(mf8)<R, T, A1, A2, A3, A4, A5, A6, A7, A8> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7, A8))
+template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> _mfi::NDNBOOST_MEM_FN_NAME(mf8)<R, T, A1, A2, A3, A4, A5, A6, A7, A8> mem_fn(R (NDNBOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7, A8))
 {
-    return _mfi::BOOST_MEM_FN_NAME(mf8)<R, T, A1, A2, A3, A4, A5, A6, A7, A8>(f);
+    return _mfi::NDNBOOST_MEM_FN_NAME(mf8)<R, T, A1, A2, A3, A4, A5, A6, A7, A8>(f);
 }
 
-template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> _mfi::BOOST_MEM_FN_NAME(cmf8)<R, T, A1, A2, A3, A4, A5, A6, A7, A8> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7, A8) const)
+template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> _mfi::NDNBOOST_MEM_FN_NAME(cmf8)<R, T, A1, A2, A3, A4, A5, A6, A7, A8> mem_fn(R (NDNBOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7, A8) const)
 {
-    return _mfi::BOOST_MEM_FN_NAME(cmf8)<R, T, A1, A2, A3, A4, A5, A6, A7, A8>(f);
+    return _mfi::NDNBOOST_MEM_FN_NAME(cmf8)<R, T, A1, A2, A3, A4, A5, A6, A7, A8>(f);
 }
diff --git a/include/ndnboost/bind/mem_fn_template.hpp b/include/ndnboost/bind/mem_fn_template.hpp
index b26d585..3ea24e7 100644
--- a/include/ndnboost/bind/mem_fn_template.hpp
+++ b/include/ndnboost/bind/mem_fn_template.hpp
@@ -12,13 +12,13 @@
 //  See http://www.boost.org/libs/bind/mem_fn.html for documentation.
 //
 
-#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)
-# define BOOST_MEM_FN_ENABLE_CONST_OVERLOADS
+#if !defined(NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING)
+# define NDNBOOST_MEM_FN_ENABLE_CONST_OVERLOADS
 #endif
 
 // mf0
 
-template<class R, class T BOOST_MEM_FN_CLASS_F> class BOOST_MEM_FN_NAME(mf0)
+template<class R, class T NDNBOOST_MEM_FN_CLASS_F> class NDNBOOST_MEM_FN_NAME(mf0)
 {
 public:
 
@@ -27,55 +27,55 @@
 
 private:
     
-    BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) ())
+    NDNBOOST_MEM_FN_TYPEDEF(R (NDNBOOST_MEM_FN_CC T::*F) ())
     F f_;
 
     template<class U> R call(U & u, T const *) const
     {
-        BOOST_MEM_FN_RETURN (u.*f_)();
+        NDNBOOST_MEM_FN_RETURN (u.*f_)();
     }
 
     template<class U> R call(U & u, void const *) const
     {
-        BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)();
+        NDNBOOST_MEM_FN_RETURN (get_pointer(u)->*f_)();
     }
 
 public:
     
-    explicit BOOST_MEM_FN_NAME(mf0)(F f): f_(f) {}
+    explicit NDNBOOST_MEM_FN_NAME(mf0)(F f): f_(f) {}
 
     R operator()(T * p) const
     {
-        BOOST_MEM_FN_RETURN (p->*f_)();
+        NDNBOOST_MEM_FN_RETURN (p->*f_)();
     }
 
     template<class U> R operator()(U & u) const
     {
         U const * p = 0;
-        BOOST_MEM_FN_RETURN call(u, p);
+        NDNBOOST_MEM_FN_RETURN call(u, p);
     }
 
-#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS
+#ifdef NDNBOOST_MEM_FN_ENABLE_CONST_OVERLOADS
 
     template<class U> R operator()(U const & u) const
     {
         U const * p = 0;
-        BOOST_MEM_FN_RETURN call(u, p);
+        NDNBOOST_MEM_FN_RETURN call(u, p);
     }
 
 #endif
 
     R operator()(T & t) const
     {
-        BOOST_MEM_FN_RETURN (t.*f_)();
+        NDNBOOST_MEM_FN_RETURN (t.*f_)();
     }
 
-    bool operator==(BOOST_MEM_FN_NAME(mf0) const & rhs) const
+    bool operator==(NDNBOOST_MEM_FN_NAME(mf0) const & rhs) const
     {
         return f_ == rhs.f_;
     }
 
-    bool operator!=(BOOST_MEM_FN_NAME(mf0) const & rhs) const
+    bool operator!=(NDNBOOST_MEM_FN_NAME(mf0) const & rhs) const
     {
         return f_ != rhs.f_;
     }
@@ -83,7 +83,7 @@
 
 // cmf0
 
-template<class R, class T BOOST_MEM_FN_CLASS_F> class BOOST_MEM_FN_NAME(cmf0)
+template<class R, class T NDNBOOST_MEM_FN_CLASS_F> class NDNBOOST_MEM_FN_NAME(cmf0)
 {
 public:
 
@@ -92,40 +92,40 @@
 
 private:
     
-    BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) () const)
+    NDNBOOST_MEM_FN_TYPEDEF(R (NDNBOOST_MEM_FN_CC T::*F) () const)
     F f_;
 
     template<class U> R call(U & u, T const *) const
     {
-        BOOST_MEM_FN_RETURN (u.*f_)();
+        NDNBOOST_MEM_FN_RETURN (u.*f_)();
     }
 
     template<class U> R call(U & u, void const *) const
     {
-        BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)();
+        NDNBOOST_MEM_FN_RETURN (get_pointer(u)->*f_)();
     }
 
 public:
     
-    explicit BOOST_MEM_FN_NAME(cmf0)(F f): f_(f) {}
+    explicit NDNBOOST_MEM_FN_NAME(cmf0)(F f): f_(f) {}
 
     template<class U> R operator()(U const & u) const
     {
         U const * p = 0;
-        BOOST_MEM_FN_RETURN call(u, p);
+        NDNBOOST_MEM_FN_RETURN call(u, p);
     }
 
     R operator()(T const & t) const
     {
-        BOOST_MEM_FN_RETURN (t.*f_)();
+        NDNBOOST_MEM_FN_RETURN (t.*f_)();
     }
 
-    bool operator==(BOOST_MEM_FN_NAME(cmf0) const & rhs) const
+    bool operator==(NDNBOOST_MEM_FN_NAME(cmf0) const & rhs) const
     {
         return f_ == rhs.f_;
     }
 
-    bool operator!=(BOOST_MEM_FN_NAME(cmf0) const & rhs) const
+    bool operator!=(NDNBOOST_MEM_FN_NAME(cmf0) const & rhs) const
     {
         return f_ != rhs.f_;
     }
@@ -133,7 +133,7 @@
 
 // mf1
 
-template<class R, class T, class A1 BOOST_MEM_FN_CLASS_F> class BOOST_MEM_FN_NAME(mf1)
+template<class R, class T, class A1 NDNBOOST_MEM_FN_CLASS_F> class NDNBOOST_MEM_FN_NAME(mf1)
 {
 public:
 
@@ -143,55 +143,55 @@
 
 private:
     
-    BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1))
+    NDNBOOST_MEM_FN_TYPEDEF(R (NDNBOOST_MEM_FN_CC T::*F) (A1))
     F f_;
 
     template<class U, class B1> R call(U & u, T const *, B1 & b1) const
     {
-        BOOST_MEM_FN_RETURN (u.*f_)(b1);
+        NDNBOOST_MEM_FN_RETURN (u.*f_)(b1);
     }
 
     template<class U, class B1> R call(U & u, void const *, B1 & b1) const
     {
-        BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1);
+        NDNBOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1);
     }
 
 public:
     
-    explicit BOOST_MEM_FN_NAME(mf1)(F f): f_(f) {}
+    explicit NDNBOOST_MEM_FN_NAME(mf1)(F f): f_(f) {}
 
     R operator()(T * p, A1 a1) const
     {
-        BOOST_MEM_FN_RETURN (p->*f_)(a1);
+        NDNBOOST_MEM_FN_RETURN (p->*f_)(a1);
     }
 
     template<class U> R operator()(U & u, A1 a1) const
     {
         U const * p = 0;
-        BOOST_MEM_FN_RETURN call(u, p, a1);
+        NDNBOOST_MEM_FN_RETURN call(u, p, a1);
     }
 
-#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS
+#ifdef NDNBOOST_MEM_FN_ENABLE_CONST_OVERLOADS
 
     template<class U> R operator()(U const & u, A1 a1) const
     {
         U const * p = 0;
-        BOOST_MEM_FN_RETURN call(u, p, a1);
+        NDNBOOST_MEM_FN_RETURN call(u, p, a1);
     }
 
 #endif
 
     R operator()(T & t, A1 a1) const
     {
-        BOOST_MEM_FN_RETURN (t.*f_)(a1);
+        NDNBOOST_MEM_FN_RETURN (t.*f_)(a1);
     }
 
-    bool operator==(BOOST_MEM_FN_NAME(mf1) const & rhs) const
+    bool operator==(NDNBOOST_MEM_FN_NAME(mf1) const & rhs) const
     {
         return f_ == rhs.f_;
     }
 
-    bool operator!=(BOOST_MEM_FN_NAME(mf1) const & rhs) const
+    bool operator!=(NDNBOOST_MEM_FN_NAME(mf1) const & rhs) const
     {
         return f_ != rhs.f_;
     }
@@ -199,7 +199,7 @@
 
 // cmf1
 
-template<class R, class T, class A1 BOOST_MEM_FN_CLASS_F> class BOOST_MEM_FN_NAME(cmf1)
+template<class R, class T, class A1 NDNBOOST_MEM_FN_CLASS_F> class NDNBOOST_MEM_FN_NAME(cmf1)
 {
 public:
 
@@ -209,40 +209,40 @@
 
 private:
     
-    BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1) const)
+    NDNBOOST_MEM_FN_TYPEDEF(R (NDNBOOST_MEM_FN_CC T::*F) (A1) const)
     F f_;
 
     template<class U, class B1> R call(U & u, T const *, B1 & b1) const
     {
-        BOOST_MEM_FN_RETURN (u.*f_)(b1);
+        NDNBOOST_MEM_FN_RETURN (u.*f_)(b1);
     }
 
     template<class U, class B1> R call(U & u, void const *, B1 & b1) const
     {
-        BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1);
+        NDNBOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1);
     }
 
 public:
     
-    explicit BOOST_MEM_FN_NAME(cmf1)(F f): f_(f) {}
+    explicit NDNBOOST_MEM_FN_NAME(cmf1)(F f): f_(f) {}
 
     template<class U> R operator()(U const & u, A1 a1) const
     {
         U const * p = 0;
-        BOOST_MEM_FN_RETURN call(u, p, a1);
+        NDNBOOST_MEM_FN_RETURN call(u, p, a1);
     }
 
     R operator()(T const & t, A1 a1) const
     {
-        BOOST_MEM_FN_RETURN (t.*f_)(a1);
+        NDNBOOST_MEM_FN_RETURN (t.*f_)(a1);
     }
 
-    bool operator==(BOOST_MEM_FN_NAME(cmf1) const & rhs) const
+    bool operator==(NDNBOOST_MEM_FN_NAME(cmf1) const & rhs) const
     {
         return f_ == rhs.f_;
     }
 
-    bool operator!=(BOOST_MEM_FN_NAME(cmf1) const & rhs) const
+    bool operator!=(NDNBOOST_MEM_FN_NAME(cmf1) const & rhs) const
     {
         return f_ != rhs.f_;
     }
@@ -250,7 +250,7 @@
 
 // mf2
 
-template<class R, class T, class A1, class A2 BOOST_MEM_FN_CLASS_F> class BOOST_MEM_FN_NAME(mf2)
+template<class R, class T, class A1, class A2 NDNBOOST_MEM_FN_CLASS_F> class NDNBOOST_MEM_FN_NAME(mf2)
 {
 public:
 
@@ -258,55 +258,55 @@
 
 private:
     
-    BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2))
+    NDNBOOST_MEM_FN_TYPEDEF(R (NDNBOOST_MEM_FN_CC T::*F) (A1, A2))
     F f_;
 
     template<class U, class B1, class B2> R call(U & u, T const *, B1 & b1, B2 & b2) const
     {
-        BOOST_MEM_FN_RETURN (u.*f_)(b1, b2);
+        NDNBOOST_MEM_FN_RETURN (u.*f_)(b1, b2);
     }
 
     template<class U, class B1, class B2> R call(U & u, void const *, B1 & b1, B2 & b2) const
     {
-        BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2);
+        NDNBOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2);
     }
 
 public:
     
-    explicit BOOST_MEM_FN_NAME(mf2)(F f): f_(f) {}
+    explicit NDNBOOST_MEM_FN_NAME(mf2)(F f): f_(f) {}
 
     R operator()(T * p, A1 a1, A2 a2) const
     {
-        BOOST_MEM_FN_RETURN (p->*f_)(a1, a2);
+        NDNBOOST_MEM_FN_RETURN (p->*f_)(a1, a2);
     }
 
     template<class U> R operator()(U & u, A1 a1, A2 a2) const
     {
         U const * p = 0;
-        BOOST_MEM_FN_RETURN call(u, p, a1, a2);
+        NDNBOOST_MEM_FN_RETURN call(u, p, a1, a2);
     }
 
-#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS
+#ifdef NDNBOOST_MEM_FN_ENABLE_CONST_OVERLOADS
 
     template<class U> R operator()(U const & u, A1 a1, A2 a2) const
     {
         U const * p = 0;
-        BOOST_MEM_FN_RETURN call(u, p, a1, a2);
+        NDNBOOST_MEM_FN_RETURN call(u, p, a1, a2);
     }
 
 #endif
 
     R operator()(T & t, A1 a1, A2 a2) const
     {
-        BOOST_MEM_FN_RETURN (t.*f_)(a1, a2);
+        NDNBOOST_MEM_FN_RETURN (t.*f_)(a1, a2);
     }
 
-    bool operator==(BOOST_MEM_FN_NAME(mf2) const & rhs) const
+    bool operator==(NDNBOOST_MEM_FN_NAME(mf2) const & rhs) const
     {
         return f_ == rhs.f_;
     }
 
-    bool operator!=(BOOST_MEM_FN_NAME(mf2) const & rhs) const
+    bool operator!=(NDNBOOST_MEM_FN_NAME(mf2) const & rhs) const
     {
         return f_ != rhs.f_;
     }
@@ -314,7 +314,7 @@
 
 // cmf2
 
-template<class R, class T, class A1, class A2 BOOST_MEM_FN_CLASS_F> class BOOST_MEM_FN_NAME(cmf2)
+template<class R, class T, class A1, class A2 NDNBOOST_MEM_FN_CLASS_F> class NDNBOOST_MEM_FN_NAME(cmf2)
 {
 public:
 
@@ -322,40 +322,40 @@
 
 private:
     
-    BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2) const)
+    NDNBOOST_MEM_FN_TYPEDEF(R (NDNBOOST_MEM_FN_CC T::*F) (A1, A2) const)
     F f_;
 
     template<class U, class B1, class B2> R call(U & u, T const *, B1 & b1, B2 & b2) const
     {
-        BOOST_MEM_FN_RETURN (u.*f_)(b1, b2);
+        NDNBOOST_MEM_FN_RETURN (u.*f_)(b1, b2);
     }
 
     template<class U, class B1, class B2> R call(U & u, void const *, B1 & b1, B2 & b2) const
     {
-        BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2);
+        NDNBOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2);
     }
 
 public:
     
-    explicit BOOST_MEM_FN_NAME(cmf2)(F f): f_(f) {}
+    explicit NDNBOOST_MEM_FN_NAME(cmf2)(F f): f_(f) {}
 
     template<class U> R operator()(U const & u, A1 a1, A2 a2) const
     {
         U const * p = 0;
-        BOOST_MEM_FN_RETURN call(u, p, a1, a2);
+        NDNBOOST_MEM_FN_RETURN call(u, p, a1, a2);
     }
 
     R operator()(T const & t, A1 a1, A2 a2) const
     {
-        BOOST_MEM_FN_RETURN (t.*f_)(a1, a2);
+        NDNBOOST_MEM_FN_RETURN (t.*f_)(a1, a2);
     }
 
-    bool operator==(BOOST_MEM_FN_NAME(cmf2) const & rhs) const
+    bool operator==(NDNBOOST_MEM_FN_NAME(cmf2) const & rhs) const
     {
         return f_ == rhs.f_;
     }
 
-    bool operator!=(BOOST_MEM_FN_NAME(cmf2) const & rhs) const
+    bool operator!=(NDNBOOST_MEM_FN_NAME(cmf2) const & rhs) const
     {
         return f_ != rhs.f_;
     }
@@ -363,7 +363,7 @@
 
 // mf3
 
-template<class R, class T, class A1, class A2, class A3 BOOST_MEM_FN_CLASS_F> class BOOST_MEM_FN_NAME(mf3)
+template<class R, class T, class A1, class A2, class A3 NDNBOOST_MEM_FN_CLASS_F> class NDNBOOST_MEM_FN_NAME(mf3)
 {
 public:
 
@@ -371,55 +371,55 @@
 
 private:
     
-    BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3))
+    NDNBOOST_MEM_FN_TYPEDEF(R (NDNBOOST_MEM_FN_CC T::*F) (A1, A2, A3))
     F f_;
 
     template<class U, class B1, class B2, class B3> R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3) const
     {
-        BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3);
+        NDNBOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3);
     }
 
     template<class U, class B1, class B2, class B3> R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3) const
     {
-        BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3);
+        NDNBOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3);
     }
 
 public:
     
-    explicit BOOST_MEM_FN_NAME(mf3)(F f): f_(f) {}
+    explicit NDNBOOST_MEM_FN_NAME(mf3)(F f): f_(f) {}
 
     R operator()(T * p, A1 a1, A2 a2, A3 a3) const
     {
-        BOOST_MEM_FN_RETURN (p->*f_)(a1, a2, a3);
+        NDNBOOST_MEM_FN_RETURN (p->*f_)(a1, a2, a3);
     }
 
     template<class U> R operator()(U & u, A1 a1, A2 a2, A3 a3) const
     {
         U const * p = 0;
-        BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3);
+        NDNBOOST_MEM_FN_RETURN call(u, p, a1, a2, a3);
     }
 
-#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS
+#ifdef NDNBOOST_MEM_FN_ENABLE_CONST_OVERLOADS
 
     template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3) const
     {
         U const * p = 0;
-        BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3);
+        NDNBOOST_MEM_FN_RETURN call(u, p, a1, a2, a3);
     }
 
 #endif
 
     R operator()(T & t, A1 a1, A2 a2, A3 a3) const
     {
-        BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3);
+        NDNBOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3);
     }
 
-    bool operator==(BOOST_MEM_FN_NAME(mf3) const & rhs) const
+    bool operator==(NDNBOOST_MEM_FN_NAME(mf3) const & rhs) const
     {
         return f_ == rhs.f_;
     }
 
-    bool operator!=(BOOST_MEM_FN_NAME(mf3) const & rhs) const
+    bool operator!=(NDNBOOST_MEM_FN_NAME(mf3) const & rhs) const
     {
         return f_ != rhs.f_;
     }
@@ -427,7 +427,7 @@
 
 // cmf3
 
-template<class R, class T, class A1, class A2, class A3 BOOST_MEM_FN_CLASS_F> class BOOST_MEM_FN_NAME(cmf3)
+template<class R, class T, class A1, class A2, class A3 NDNBOOST_MEM_FN_CLASS_F> class NDNBOOST_MEM_FN_NAME(cmf3)
 {
 public:
 
@@ -435,40 +435,40 @@
 
 private:
 
-    BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3) const)
+    NDNBOOST_MEM_FN_TYPEDEF(R (NDNBOOST_MEM_FN_CC T::*F) (A1, A2, A3) const)
     F f_;
 
     template<class U, class B1, class B2, class B3> R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3) const
     {
-        BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3);
+        NDNBOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3);
     }
 
     template<class U, class B1, class B2, class B3> R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3) const
     {
-        BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3);
+        NDNBOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3);
     }
 
 public:
 
-    explicit BOOST_MEM_FN_NAME(cmf3)(F f): f_(f) {}
+    explicit NDNBOOST_MEM_FN_NAME(cmf3)(F f): f_(f) {}
 
     template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3) const
     {
         U const * p = 0;
-        BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3);
+        NDNBOOST_MEM_FN_RETURN call(u, p, a1, a2, a3);
     }
 
     R operator()(T const & t, A1 a1, A2 a2, A3 a3) const
     {
-        BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3);
+        NDNBOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3);
     }
 
-    bool operator==(BOOST_MEM_FN_NAME(cmf3) const & rhs) const
+    bool operator==(NDNBOOST_MEM_FN_NAME(cmf3) const & rhs) const
     {
         return f_ == rhs.f_;
     }
 
-    bool operator!=(BOOST_MEM_FN_NAME(cmf3) const & rhs) const
+    bool operator!=(NDNBOOST_MEM_FN_NAME(cmf3) const & rhs) const
     {
         return f_ != rhs.f_;
     }
@@ -476,7 +476,7 @@
 
 // mf4
 
-template<class R, class T, class A1, class A2, class A3, class A4 BOOST_MEM_FN_CLASS_F> class BOOST_MEM_FN_NAME(mf4)
+template<class R, class T, class A1, class A2, class A3, class A4 NDNBOOST_MEM_FN_CLASS_F> class NDNBOOST_MEM_FN_NAME(mf4)
 {
 public:
 
@@ -484,55 +484,55 @@
 
 private:
     
-    BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4))
+    NDNBOOST_MEM_FN_TYPEDEF(R (NDNBOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4))
     F f_;
 
     template<class U, class B1, class B2, class B3, class B4> R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4) const
     {
-        BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4);
+        NDNBOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4);
     }
 
     template<class U, class B1, class B2, class B3, class B4> R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4) const
     {
-        BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4);
+        NDNBOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4);
     }
 
 public:
     
-    explicit BOOST_MEM_FN_NAME(mf4)(F f): f_(f) {}
+    explicit NDNBOOST_MEM_FN_NAME(mf4)(F f): f_(f) {}
 
     R operator()(T * p, A1 a1, A2 a2, A3 a3, A4 a4) const
     {
-        BOOST_MEM_FN_RETURN (p->*f_)(a1, a2, a3, a4);
+        NDNBOOST_MEM_FN_RETURN (p->*f_)(a1, a2, a3, a4);
     }
 
     template<class U> R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4) const
     {
         U const * p = 0;
-        BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4);
+        NDNBOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4);
     }
 
-#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS
+#ifdef NDNBOOST_MEM_FN_ENABLE_CONST_OVERLOADS
 
     template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4) const
     {
         U const * p = 0;
-        BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4);
+        NDNBOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4);
     }
 
 #endif
 
     R operator()(T & t, A1 a1, A2 a2, A3 a3, A4 a4) const
     {
-        BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4);
+        NDNBOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4);
     }
 
-    bool operator==(BOOST_MEM_FN_NAME(mf4) const & rhs) const
+    bool operator==(NDNBOOST_MEM_FN_NAME(mf4) const & rhs) const
     {
         return f_ == rhs.f_;
     }
 
-    bool operator!=(BOOST_MEM_FN_NAME(mf4) const & rhs) const
+    bool operator!=(NDNBOOST_MEM_FN_NAME(mf4) const & rhs) const
     {
         return f_ != rhs.f_;
     }
@@ -540,7 +540,7 @@
 
 // cmf4
 
-template<class R, class T, class A1, class A2, class A3, class A4 BOOST_MEM_FN_CLASS_F> class BOOST_MEM_FN_NAME(cmf4)
+template<class R, class T, class A1, class A2, class A3, class A4 NDNBOOST_MEM_FN_CLASS_F> class NDNBOOST_MEM_FN_NAME(cmf4)
 {
 public:
 
@@ -548,40 +548,40 @@
 
 private:
     
-    BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4) const)
+    NDNBOOST_MEM_FN_TYPEDEF(R (NDNBOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4) const)
     F f_;
 
     template<class U, class B1, class B2, class B3, class B4> R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4) const
     {
-        BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4);
+        NDNBOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4);
     }
 
     template<class U, class B1, class B2, class B3, class B4> R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4) const
     {
-        BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4);
+        NDNBOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4);
     }
 
 public:
     
-    explicit BOOST_MEM_FN_NAME(cmf4)(F f): f_(f) {}
+    explicit NDNBOOST_MEM_FN_NAME(cmf4)(F f): f_(f) {}
 
     template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4) const
     {
         U const * p = 0;
-        BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4);
+        NDNBOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4);
     }
 
     R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4) const
     {
-        BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4);
+        NDNBOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4);
     }
 
-    bool operator==(BOOST_MEM_FN_NAME(cmf4) const & rhs) const
+    bool operator==(NDNBOOST_MEM_FN_NAME(cmf4) const & rhs) const
     {
         return f_ == rhs.f_;
     }
 
-    bool operator!=(BOOST_MEM_FN_NAME(cmf4) const & rhs) const
+    bool operator!=(NDNBOOST_MEM_FN_NAME(cmf4) const & rhs) const
     {
         return f_ != rhs.f_;
     }
@@ -589,7 +589,7 @@
 
 // mf5
 
-template<class R, class T, class A1, class A2, class A3, class A4, class A5 BOOST_MEM_FN_CLASS_F> class BOOST_MEM_FN_NAME(mf5)
+template<class R, class T, class A1, class A2, class A3, class A4, class A5 NDNBOOST_MEM_FN_CLASS_F> class NDNBOOST_MEM_FN_NAME(mf5)
 {
 public:
 
@@ -597,55 +597,55 @@
 
 private:
     
-    BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5))
+    NDNBOOST_MEM_FN_TYPEDEF(R (NDNBOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5))
     F f_;
 
     template<class U, class B1, class B2, class B3, class B4, class B5> R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5) const
     {
-        BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5);
+        NDNBOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5);
     }
 
     template<class U, class B1, class B2, class B3, class B4, class B5> R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5) const
     {
-        BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5);
+        NDNBOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5);
     }
 
 public:
     
-    explicit BOOST_MEM_FN_NAME(mf5)(F f): f_(f) {}
+    explicit NDNBOOST_MEM_FN_NAME(mf5)(F f): f_(f) {}
 
     R operator()(T * p, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const
     {
-        BOOST_MEM_FN_RETURN (p->*f_)(a1, a2, a3, a4, a5);
+        NDNBOOST_MEM_FN_RETURN (p->*f_)(a1, a2, a3, a4, a5);
     }
 
     template<class U> R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const
     {
         U const * p = 0;
-        BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5);
+        NDNBOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5);
     }
 
-#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS
+#ifdef NDNBOOST_MEM_FN_ENABLE_CONST_OVERLOADS
 
     template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const
     {
         U const * p = 0;
-        BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5);
+        NDNBOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5);
     }
 
 #endif
 
     R operator()(T & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const
     {
-        BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5);
+        NDNBOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5);
     }
 
-    bool operator==(BOOST_MEM_FN_NAME(mf5) const & rhs) const
+    bool operator==(NDNBOOST_MEM_FN_NAME(mf5) const & rhs) const
     {
         return f_ == rhs.f_;
     }
 
-    bool operator!=(BOOST_MEM_FN_NAME(mf5) const & rhs) const
+    bool operator!=(NDNBOOST_MEM_FN_NAME(mf5) const & rhs) const
     {
         return f_ != rhs.f_;
     }
@@ -653,7 +653,7 @@
 
 // cmf5
 
-template<class R, class T, class A1, class A2, class A3, class A4, class A5 BOOST_MEM_FN_CLASS_F> class BOOST_MEM_FN_NAME(cmf5)
+template<class R, class T, class A1, class A2, class A3, class A4, class A5 NDNBOOST_MEM_FN_CLASS_F> class NDNBOOST_MEM_FN_NAME(cmf5)
 {
 public:
 
@@ -661,40 +661,40 @@
 
 private:
     
-    BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5) const)
+    NDNBOOST_MEM_FN_TYPEDEF(R (NDNBOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5) const)
     F f_;
 
     template<class U, class B1, class B2, class B3, class B4, class B5> R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5) const
     {
-        BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5);
+        NDNBOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5);
     }
 
     template<class U, class B1, class B2, class B3, class B4, class B5> R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5) const
     {
-        BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5);
+        NDNBOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5);
     }
 
 public:
     
-    explicit BOOST_MEM_FN_NAME(cmf5)(F f): f_(f) {}
+    explicit NDNBOOST_MEM_FN_NAME(cmf5)(F f): f_(f) {}
 
     template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const
     {
         U const * p = 0;
-        BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5);
+        NDNBOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5);
     }
 
     R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const
     {
-        BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5);
+        NDNBOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5);
     }
 
-    bool operator==(BOOST_MEM_FN_NAME(cmf5) const & rhs) const
+    bool operator==(NDNBOOST_MEM_FN_NAME(cmf5) const & rhs) const
     {
         return f_ == rhs.f_;
     }
 
-    bool operator!=(BOOST_MEM_FN_NAME(cmf5) const & rhs) const
+    bool operator!=(NDNBOOST_MEM_FN_NAME(cmf5) const & rhs) const
     {
         return f_ != rhs.f_;
     }
@@ -702,7 +702,7 @@
 
 // mf6
 
-template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6 BOOST_MEM_FN_CLASS_F> class BOOST_MEM_FN_NAME(mf6)
+template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6 NDNBOOST_MEM_FN_CLASS_F> class NDNBOOST_MEM_FN_NAME(mf6)
 {
 public:
 
@@ -710,55 +710,55 @@
 
 private:
 
-    BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6))
+    NDNBOOST_MEM_FN_TYPEDEF(R (NDNBOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6))
     F f_;
 
     template<class U, class B1, class B2, class B3, class B4, class B5, class B6> R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6) const
     {
-        BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5, b6);
+        NDNBOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5, b6);
     }
 
     template<class U, class B1, class B2, class B3, class B4, class B5, class B6> R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6) const
     {
-        BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6);
+        NDNBOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6);
     }
 
 public:
 
-    explicit BOOST_MEM_FN_NAME(mf6)(F f): f_(f) {}
+    explicit NDNBOOST_MEM_FN_NAME(mf6)(F f): f_(f) {}
 
     R operator()(T * p, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const
     {
-        BOOST_MEM_FN_RETURN (p->*f_)(a1, a2, a3, a4, a5, a6);
+        NDNBOOST_MEM_FN_RETURN (p->*f_)(a1, a2, a3, a4, a5, a6);
     }
 
     template<class U> R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const
     {
         U const * p = 0;
-        BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6);
+        NDNBOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6);
     }
 
-#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS
+#ifdef NDNBOOST_MEM_FN_ENABLE_CONST_OVERLOADS
 
     template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const
     {
         U const * p = 0;
-        BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6);
+        NDNBOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6);
     }
 
 #endif
 
     R operator()(T & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const
     {
-        BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5, a6);
+        NDNBOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5, a6);
     }
 
-    bool operator==(BOOST_MEM_FN_NAME(mf6) const & rhs) const
+    bool operator==(NDNBOOST_MEM_FN_NAME(mf6) const & rhs) const
     {
         return f_ == rhs.f_;
     }
 
-    bool operator!=(BOOST_MEM_FN_NAME(mf6) const & rhs) const
+    bool operator!=(NDNBOOST_MEM_FN_NAME(mf6) const & rhs) const
     {
         return f_ != rhs.f_;
     }
@@ -766,7 +766,7 @@
 
 // cmf6
 
-template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6 BOOST_MEM_FN_CLASS_F> class BOOST_MEM_FN_NAME(cmf6)
+template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6 NDNBOOST_MEM_FN_CLASS_F> class NDNBOOST_MEM_FN_NAME(cmf6)
 {
 public:
 
@@ -774,40 +774,40 @@
 
 private:
     
-    BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6) const)
+    NDNBOOST_MEM_FN_TYPEDEF(R (NDNBOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6) const)
     F f_;
 
     template<class U, class B1, class B2, class B3, class B4, class B5, class B6> R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6) const
     {
-        BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5, b6);
+        NDNBOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5, b6);
     }
 
     template<class U, class B1, class B2, class B3, class B4, class B5, class B6> R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6) const
     {
-        BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6);
+        NDNBOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6);
     }
 
 public:
     
-    explicit BOOST_MEM_FN_NAME(cmf6)(F f): f_(f) {}
+    explicit NDNBOOST_MEM_FN_NAME(cmf6)(F f): f_(f) {}
 
     template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const
     {
         U const * p = 0;
-        BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6);
+        NDNBOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6);
     }
 
     R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const
     {
-        BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5, a6);
+        NDNBOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5, a6);
     }
 
-    bool operator==(BOOST_MEM_FN_NAME(cmf6) const & rhs) const
+    bool operator==(NDNBOOST_MEM_FN_NAME(cmf6) const & rhs) const
     {
         return f_ == rhs.f_;
     }
 
-    bool operator!=(BOOST_MEM_FN_NAME(cmf6) const & rhs) const
+    bool operator!=(NDNBOOST_MEM_FN_NAME(cmf6) const & rhs) const
     {
         return f_ != rhs.f_;
     }
@@ -815,7 +815,7 @@
 
 // mf7
 
-template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7 BOOST_MEM_FN_CLASS_F> class BOOST_MEM_FN_NAME(mf7)
+template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7 NDNBOOST_MEM_FN_CLASS_F> class NDNBOOST_MEM_FN_NAME(mf7)
 {
 public:
 
@@ -823,55 +823,55 @@
 
 private:
     
-    BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7))
+    NDNBOOST_MEM_FN_TYPEDEF(R (NDNBOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7))
     F f_;
 
     template<class U, class B1, class B2, class B3, class B4, class B5, class B6, class B7> R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7) const
     {
-        BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5, b6, b7);
+        NDNBOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5, b6, b7);
     }
 
     template<class U, class B1, class B2, class B3, class B4, class B5, class B6, class B7> R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7) const
     {
-        BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6, b7);
+        NDNBOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6, b7);
     }
 
 public:
     
-    explicit BOOST_MEM_FN_NAME(mf7)(F f): f_(f) {}
+    explicit NDNBOOST_MEM_FN_NAME(mf7)(F f): f_(f) {}
 
     R operator()(T * p, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const
     {
-        BOOST_MEM_FN_RETURN (p->*f_)(a1, a2, a3, a4, a5, a6, a7);
+        NDNBOOST_MEM_FN_RETURN (p->*f_)(a1, a2, a3, a4, a5, a6, a7);
     }
 
     template<class U> R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const
     {
         U const * p = 0;
-        BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6, a7);
+        NDNBOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6, a7);
     }
 
-#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS
+#ifdef NDNBOOST_MEM_FN_ENABLE_CONST_OVERLOADS
 
     template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const
     {
         U const * p = 0;
-        BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6, a7);
+        NDNBOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6, a7);
     }
 
 #endif
 
     R operator()(T & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const
     {
-        BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5, a6, a7);
+        NDNBOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5, a6, a7);
     }
 
-    bool operator==(BOOST_MEM_FN_NAME(mf7) const & rhs) const
+    bool operator==(NDNBOOST_MEM_FN_NAME(mf7) const & rhs) const
     {
         return f_ == rhs.f_;
     }
 
-    bool operator!=(BOOST_MEM_FN_NAME(mf7) const & rhs) const
+    bool operator!=(NDNBOOST_MEM_FN_NAME(mf7) const & rhs) const
     {
         return f_ != rhs.f_;
     }
@@ -879,7 +879,7 @@
 
 // cmf7
 
-template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7 BOOST_MEM_FN_CLASS_F> class BOOST_MEM_FN_NAME(cmf7)
+template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7 NDNBOOST_MEM_FN_CLASS_F> class NDNBOOST_MEM_FN_NAME(cmf7)
 {
 public:
 
@@ -887,40 +887,40 @@
 
 private:
     
-    BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7) const)
+    NDNBOOST_MEM_FN_TYPEDEF(R (NDNBOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7) const)
     F f_;
 
     template<class U, class B1, class B2, class B3, class B4, class B5, class B6, class B7> R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7) const
     {
-        BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5, b6, b7);
+        NDNBOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5, b6, b7);
     }
 
     template<class U, class B1, class B2, class B3, class B4, class B5, class B6, class B7> R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7) const
     {
-        BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6, b7);
+        NDNBOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6, b7);
     }
 
 public:
     
-    explicit BOOST_MEM_FN_NAME(cmf7)(F f): f_(f) {}
+    explicit NDNBOOST_MEM_FN_NAME(cmf7)(F f): f_(f) {}
 
     template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const
     {
         U const * p = 0;
-        BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6, a7);
+        NDNBOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6, a7);
     }
 
     R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const
     {
-        BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5, a6, a7);
+        NDNBOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5, a6, a7);
     }
 
-    bool operator==(BOOST_MEM_FN_NAME(cmf7) const & rhs) const
+    bool operator==(NDNBOOST_MEM_FN_NAME(cmf7) const & rhs) const
     {
         return f_ == rhs.f_;
     }
 
-    bool operator!=(BOOST_MEM_FN_NAME(cmf7) const & rhs) const
+    bool operator!=(NDNBOOST_MEM_FN_NAME(cmf7) const & rhs) const
     {
         return f_ != rhs.f_;
     }
@@ -928,7 +928,7 @@
 
 // mf8
 
-template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 BOOST_MEM_FN_CLASS_F> class BOOST_MEM_FN_NAME(mf8)
+template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 NDNBOOST_MEM_FN_CLASS_F> class NDNBOOST_MEM_FN_NAME(mf8)
 {
 public:
 
@@ -936,55 +936,55 @@
 
 private:
     
-    BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7, A8))
+    NDNBOOST_MEM_FN_TYPEDEF(R (NDNBOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7, A8))
     F f_;
 
     template<class U, class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8> R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7, B8 & b8) const
     {
-        BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5, b6, b7, b8);
+        NDNBOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5, b6, b7, b8);
     }
 
     template<class U, class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8> R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7, B8 & b8) const
     {
-        BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6, b7, b8);
+        NDNBOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6, b7, b8);
     }
 
 public:
     
-    explicit BOOST_MEM_FN_NAME(mf8)(F f): f_(f) {}
+    explicit NDNBOOST_MEM_FN_NAME(mf8)(F f): f_(f) {}
 
     R operator()(T * p, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const
     {
-        BOOST_MEM_FN_RETURN (p->*f_)(a1, a2, a3, a4, a5, a6, a7, a8);
+        NDNBOOST_MEM_FN_RETURN (p->*f_)(a1, a2, a3, a4, a5, a6, a7, a8);
     }
 
     template<class U> R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const
     {
         U const * p = 0;
-        BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6, a7, a8);
+        NDNBOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6, a7, a8);
     }
 
-#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS
+#ifdef NDNBOOST_MEM_FN_ENABLE_CONST_OVERLOADS
 
     template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const
     {
         U const * p = 0;
-        BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6, a7, a8);
+        NDNBOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6, a7, a8);
     }
 
 #endif
 
     R operator()(T & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const
     {
-        BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5, a6, a7, a8);
+        NDNBOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5, a6, a7, a8);
     }
 
-    bool operator==(BOOST_MEM_FN_NAME(mf8) const & rhs) const
+    bool operator==(NDNBOOST_MEM_FN_NAME(mf8) const & rhs) const
     {
         return f_ == rhs.f_;
     }
 
-    bool operator!=(BOOST_MEM_FN_NAME(mf8) const & rhs) const
+    bool operator!=(NDNBOOST_MEM_FN_NAME(mf8) const & rhs) const
     {
         return f_ != rhs.f_;
     }
@@ -992,7 +992,7 @@
 
 // cmf8
 
-template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 BOOST_MEM_FN_CLASS_F> class BOOST_MEM_FN_NAME(cmf8)
+template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 NDNBOOST_MEM_FN_CLASS_F> class NDNBOOST_MEM_FN_NAME(cmf8)
 {
 public:
 
@@ -1000,48 +1000,48 @@
 
 private:
     
-    BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7, A8) const)
+    NDNBOOST_MEM_FN_TYPEDEF(R (NDNBOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7, A8) const)
     F f_;
 
     template<class U, class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8> R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7, B8 & b8) const
     {
-        BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5, b6, b7, b8);
+        NDNBOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5, b6, b7, b8);
     }
 
     template<class U, class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8> R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7, B8 & b8) const
     {
-        BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6, b7, b8);
+        NDNBOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6, b7, b8);
     }
 
 public:
     
-    explicit BOOST_MEM_FN_NAME(cmf8)(F f): f_(f) {}
+    explicit NDNBOOST_MEM_FN_NAME(cmf8)(F f): f_(f) {}
 
     R operator()(T const * p, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const
     {
-        BOOST_MEM_FN_RETURN (p->*f_)(a1, a2, a3, a4, a5, a6, a7, a8);
+        NDNBOOST_MEM_FN_RETURN (p->*f_)(a1, a2, a3, a4, a5, a6, a7, a8);
     }
 
     template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const
     {
         U const * p = 0;
-        BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6, a7, a8);
+        NDNBOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6, a7, a8);
     }
 
     R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const
     {
-        BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5, a6, a7, a8);
+        NDNBOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5, a6, a7, a8);
     }
 
-    bool operator==(BOOST_MEM_FN_NAME(cmf8) const & rhs) const
+    bool operator==(NDNBOOST_MEM_FN_NAME(cmf8) const & rhs) const
     {
         return f_ == rhs.f_;
     }
 
-    bool operator!=(BOOST_MEM_FN_NAME(cmf8) const & rhs) const
+    bool operator!=(NDNBOOST_MEM_FN_NAME(cmf8) const & rhs) const
     {
         return f_ != rhs.f_;
     }
 };
 
-#undef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS
+#undef NDNBOOST_MEM_FN_ENABLE_CONST_OVERLOADS
diff --git a/include/ndnboost/bind/mem_fn_vw.hpp b/include/ndnboost/bind/mem_fn_vw.hpp
index f3fc58d..0ffa660 100644
--- a/include/ndnboost/bind/mem_fn_vw.hpp
+++ b/include/ndnboost/bind/mem_fn_vw.hpp
@@ -12,119 +12,119 @@
 //  See http://www.boost.org/libs/bind/mem_fn.html for documentation.
 //
 
-template<class R, class T> struct BOOST_MEM_FN_NAME(mf0): public mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf0)<R, T, R (BOOST_MEM_FN_CC T::*) ()>
+template<class R, class T> struct NDNBOOST_MEM_FN_NAME(mf0): public mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(mf0)<R, T, R (NDNBOOST_MEM_FN_CC T::*) ()>
 {
-    typedef R (BOOST_MEM_FN_CC T::*F) ();
-    explicit BOOST_MEM_FN_NAME(mf0)(F f): mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf0)<R, T, F>(f) {}
+    typedef R (NDNBOOST_MEM_FN_CC T::*F) ();
+    explicit NDNBOOST_MEM_FN_NAME(mf0)(F f): mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(mf0)<R, T, F>(f) {}
 };
 
-template<class R, class T> struct BOOST_MEM_FN_NAME(cmf0): public mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf0)<R, T, R (BOOST_MEM_FN_CC T::*) () const>
+template<class R, class T> struct NDNBOOST_MEM_FN_NAME(cmf0): public mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(cmf0)<R, T, R (NDNBOOST_MEM_FN_CC T::*) () const>
 {
-    typedef R (BOOST_MEM_FN_CC T::*F) () const;
-    explicit BOOST_MEM_FN_NAME(cmf0)(F f): mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf0)<R, T, F>(f) {}
+    typedef R (NDNBOOST_MEM_FN_CC T::*F) () const;
+    explicit NDNBOOST_MEM_FN_NAME(cmf0)(F f): mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(cmf0)<R, T, F>(f) {}
 };
 
 
-template<class R, class T, class A1> struct BOOST_MEM_FN_NAME(mf1): public mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf1)<R, T, A1, R (BOOST_MEM_FN_CC T::*) (A1)>
+template<class R, class T, class A1> struct NDNBOOST_MEM_FN_NAME(mf1): public mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(mf1)<R, T, A1, R (NDNBOOST_MEM_FN_CC T::*) (A1)>
 {
-    typedef R (BOOST_MEM_FN_CC T::*F) (A1);
-    explicit BOOST_MEM_FN_NAME(mf1)(F f): mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf1)<R, T, A1, F>(f) {}
+    typedef R (NDNBOOST_MEM_FN_CC T::*F) (A1);
+    explicit NDNBOOST_MEM_FN_NAME(mf1)(F f): mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(mf1)<R, T, A1, F>(f) {}
 };
 
-template<class R, class T, class A1> struct BOOST_MEM_FN_NAME(cmf1): public mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf1)<R, T, A1, R (BOOST_MEM_FN_CC T::*) (A1) const>
+template<class R, class T, class A1> struct NDNBOOST_MEM_FN_NAME(cmf1): public mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(cmf1)<R, T, A1, R (NDNBOOST_MEM_FN_CC T::*) (A1) const>
 {
-    typedef R (BOOST_MEM_FN_CC T::*F) (A1) const;
-    explicit BOOST_MEM_FN_NAME(cmf1)(F f): mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf1)<R, T, A1, F>(f) {}
+    typedef R (NDNBOOST_MEM_FN_CC T::*F) (A1) const;
+    explicit NDNBOOST_MEM_FN_NAME(cmf1)(F f): mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(cmf1)<R, T, A1, F>(f) {}
 };
 
 
-template<class R, class T, class A1, class A2> struct BOOST_MEM_FN_NAME(mf2): public mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf2)<R, T, A1, A2, R (BOOST_MEM_FN_CC T::*) (A1, A2)>
+template<class R, class T, class A1, class A2> struct NDNBOOST_MEM_FN_NAME(mf2): public mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(mf2)<R, T, A1, A2, R (NDNBOOST_MEM_FN_CC T::*) (A1, A2)>
 {
-    typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2);
-    explicit BOOST_MEM_FN_NAME(mf2)(F f): mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf2)<R, T, A1, A2, F>(f) {}
+    typedef R (NDNBOOST_MEM_FN_CC T::*F) (A1, A2);
+    explicit NDNBOOST_MEM_FN_NAME(mf2)(F f): mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(mf2)<R, T, A1, A2, F>(f) {}
 };
 
-template<class R, class T, class A1, class A2> struct BOOST_MEM_FN_NAME(cmf2): public mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf2)<R, T, A1, A2, R (BOOST_MEM_FN_CC T::*) (A1, A2) const>
+template<class R, class T, class A1, class A2> struct NDNBOOST_MEM_FN_NAME(cmf2): public mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(cmf2)<R, T, A1, A2, R (NDNBOOST_MEM_FN_CC T::*) (A1, A2) const>
 {
-    typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2) const;
-    explicit BOOST_MEM_FN_NAME(cmf2)(F f): mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf2)<R, T, A1, A2, F>(f) {}
+    typedef R (NDNBOOST_MEM_FN_CC T::*F) (A1, A2) const;
+    explicit NDNBOOST_MEM_FN_NAME(cmf2)(F f): mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(cmf2)<R, T, A1, A2, F>(f) {}
 };
 
 
-template<class R, class T, class A1, class A2, class A3> struct BOOST_MEM_FN_NAME(mf3): public mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf3)<R, T, A1, A2, A3, R (BOOST_MEM_FN_CC T::*) (A1, A2, A3)>
+template<class R, class T, class A1, class A2, class A3> struct NDNBOOST_MEM_FN_NAME(mf3): public mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(mf3)<R, T, A1, A2, A3, R (NDNBOOST_MEM_FN_CC T::*) (A1, A2, A3)>
 {
-    typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3);
-    explicit BOOST_MEM_FN_NAME(mf3)(F f): mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf3)<R, T, A1, A2, A3, F>(f) {}
+    typedef R (NDNBOOST_MEM_FN_CC T::*F) (A1, A2, A3);
+    explicit NDNBOOST_MEM_FN_NAME(mf3)(F f): mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(mf3)<R, T, A1, A2, A3, F>(f) {}
 };
 
-template<class R, class T, class A1, class A2, class A3> struct BOOST_MEM_FN_NAME(cmf3): public mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf3)<R, T, A1, A2, A3, R (BOOST_MEM_FN_CC T::*) (A1, A2, A3) const>
+template<class R, class T, class A1, class A2, class A3> struct NDNBOOST_MEM_FN_NAME(cmf3): public mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(cmf3)<R, T, A1, A2, A3, R (NDNBOOST_MEM_FN_CC T::*) (A1, A2, A3) const>
 {
-    typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3) const;
-    explicit BOOST_MEM_FN_NAME(cmf3)(F f): mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf3)<R, T, A1, A2, A3, F>(f) {}
+    typedef R (NDNBOOST_MEM_FN_CC T::*F) (A1, A2, A3) const;
+    explicit NDNBOOST_MEM_FN_NAME(cmf3)(F f): mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(cmf3)<R, T, A1, A2, A3, F>(f) {}
 };
 
 
-template<class R, class T, class A1, class A2, class A3, class A4> struct BOOST_MEM_FN_NAME(mf4): public mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf4)<R, T, A1, A2, A3, A4, R (BOOST_MEM_FN_CC T::*) (A1, A2, A3, A4)>
+template<class R, class T, class A1, class A2, class A3, class A4> struct NDNBOOST_MEM_FN_NAME(mf4): public mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(mf4)<R, T, A1, A2, A3, A4, R (NDNBOOST_MEM_FN_CC T::*) (A1, A2, A3, A4)>
 {
-    typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4);
-    explicit BOOST_MEM_FN_NAME(mf4)(F f): mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf4)<R, T, A1, A2, A3, A4, F>(f) {}
+    typedef R (NDNBOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4);
+    explicit NDNBOOST_MEM_FN_NAME(mf4)(F f): mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(mf4)<R, T, A1, A2, A3, A4, F>(f) {}
 };
 
-template<class R, class T, class A1, class A2, class A3, class A4> struct BOOST_MEM_FN_NAME(cmf4): public mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf4)<R, T, A1, A2, A3, A4, R (BOOST_MEM_FN_CC T::*) (A1, A2, A3, A4) const>
+template<class R, class T, class A1, class A2, class A3, class A4> struct NDNBOOST_MEM_FN_NAME(cmf4): public mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(cmf4)<R, T, A1, A2, A3, A4, R (NDNBOOST_MEM_FN_CC T::*) (A1, A2, A3, A4) const>
 {
-    typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4) const;
-    explicit BOOST_MEM_FN_NAME(cmf4)(F f): mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf4)<R, T, A1, A2, A3, A4, F>(f) {}
+    typedef R (NDNBOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4) const;
+    explicit NDNBOOST_MEM_FN_NAME(cmf4)(F f): mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(cmf4)<R, T, A1, A2, A3, A4, F>(f) {}
 };
 
 
-template<class R, class T, class A1, class A2, class A3, class A4, class A5> struct BOOST_MEM_FN_NAME(mf5): public mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf5)<R, T, A1, A2, A3, A4, A5, R (BOOST_MEM_FN_CC T::*) (A1, A2, A3, A4, A5)>
+template<class R, class T, class A1, class A2, class A3, class A4, class A5> struct NDNBOOST_MEM_FN_NAME(mf5): public mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(mf5)<R, T, A1, A2, A3, A4, A5, R (NDNBOOST_MEM_FN_CC T::*) (A1, A2, A3, A4, A5)>
 {
-    typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5);
-    explicit BOOST_MEM_FN_NAME(mf5)(F f): mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf5)<R, T, A1, A2, A3, A4, A5, F>(f) {}
+    typedef R (NDNBOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5);
+    explicit NDNBOOST_MEM_FN_NAME(mf5)(F f): mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(mf5)<R, T, A1, A2, A3, A4, A5, F>(f) {}
 };
 
-template<class R, class T, class A1, class A2, class A3, class A4, class A5> struct BOOST_MEM_FN_NAME(cmf5): public mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf5)<R, T, A1, A2, A3, A4, A5, R (BOOST_MEM_FN_CC T::*) (A1, A2, A3, A4, A5) const>
+template<class R, class T, class A1, class A2, class A3, class A4, class A5> struct NDNBOOST_MEM_FN_NAME(cmf5): public mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(cmf5)<R, T, A1, A2, A3, A4, A5, R (NDNBOOST_MEM_FN_CC T::*) (A1, A2, A3, A4, A5) const>
 {
-    typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5) const;
-    explicit BOOST_MEM_FN_NAME(cmf5)(F f): mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf5)<R, T, A1, A2, A3, A4, A5, F>(f) {}
+    typedef R (NDNBOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5) const;
+    explicit NDNBOOST_MEM_FN_NAME(cmf5)(F f): mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(cmf5)<R, T, A1, A2, A3, A4, A5, F>(f) {}
 };
 
 
-template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6> struct BOOST_MEM_FN_NAME(mf6): public mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf6)<R, T, A1, A2, A3, A4, A5, A6, R (BOOST_MEM_FN_CC T::*) (A1, A2, A3, A4, A5, A6)>
+template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6> struct NDNBOOST_MEM_FN_NAME(mf6): public mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(mf6)<R, T, A1, A2, A3, A4, A5, A6, R (NDNBOOST_MEM_FN_CC T::*) (A1, A2, A3, A4, A5, A6)>
 {
-    typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6);
-    explicit BOOST_MEM_FN_NAME(mf6)(F f): mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf6)<R, T, A1, A2, A3, A4, A5, A6, F>(f) {}
+    typedef R (NDNBOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6);
+    explicit NDNBOOST_MEM_FN_NAME(mf6)(F f): mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(mf6)<R, T, A1, A2, A3, A4, A5, A6, F>(f) {}
 };
 
-template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6> struct BOOST_MEM_FN_NAME(cmf6): public mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf6)<R, T, A1, A2, A3, A4, A5, A6, R (BOOST_MEM_FN_CC T::*) (A1, A2, A3, A4, A5, A6) const>
+template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6> struct NDNBOOST_MEM_FN_NAME(cmf6): public mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(cmf6)<R, T, A1, A2, A3, A4, A5, A6, R (NDNBOOST_MEM_FN_CC T::*) (A1, A2, A3, A4, A5, A6) const>
 {
-    typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6) const;
-    explicit BOOST_MEM_FN_NAME(cmf6)(F f): mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf6)<R, T, A1, A2, A3, A4, A5, A6, F>(f) {}
+    typedef R (NDNBOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6) const;
+    explicit NDNBOOST_MEM_FN_NAME(cmf6)(F f): mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(cmf6)<R, T, A1, A2, A3, A4, A5, A6, F>(f) {}
 };
 
 
-template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7> struct BOOST_MEM_FN_NAME(mf7): public mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf7)<R, T, A1, A2, A3, A4, A5, A6, A7, R (BOOST_MEM_FN_CC T::*) (A1, A2, A3, A4, A5, A6, A7)>
+template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7> struct NDNBOOST_MEM_FN_NAME(mf7): public mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(mf7)<R, T, A1, A2, A3, A4, A5, A6, A7, R (NDNBOOST_MEM_FN_CC T::*) (A1, A2, A3, A4, A5, A6, A7)>
 {
-    typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7);
-    explicit BOOST_MEM_FN_NAME(mf7)(F f): mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf7)<R, T, A1, A2, A3, A4, A5, A6, A7, F>(f) {}
+    typedef R (NDNBOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7);
+    explicit NDNBOOST_MEM_FN_NAME(mf7)(F f): mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(mf7)<R, T, A1, A2, A3, A4, A5, A6, A7, F>(f) {}
 };
 
-template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7> struct BOOST_MEM_FN_NAME(cmf7): public mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf7)<R, T, A1, A2, A3, A4, A5, A6, A7, R (BOOST_MEM_FN_CC T::*) (A1, A2, A3, A4, A5, A6, A7) const>
+template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7> struct NDNBOOST_MEM_FN_NAME(cmf7): public mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(cmf7)<R, T, A1, A2, A3, A4, A5, A6, A7, R (NDNBOOST_MEM_FN_CC T::*) (A1, A2, A3, A4, A5, A6, A7) const>
 {
-    typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7) const;
-    explicit BOOST_MEM_FN_NAME(cmf7)(F f): mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf7)<R, T, A1, A2, A3, A4, A5, A6, A7, F>(f) {}
+    typedef R (NDNBOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7) const;
+    explicit NDNBOOST_MEM_FN_NAME(cmf7)(F f): mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(cmf7)<R, T, A1, A2, A3, A4, A5, A6, A7, F>(f) {}
 };
 
 
-template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> struct BOOST_MEM_FN_NAME(mf8): public mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf8)<R, T, A1, A2, A3, A4, A5, A6, A7, A8, R (BOOST_MEM_FN_CC T::*) (A1, A2, A3, A4, A5, A6, A7, A8)>
+template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> struct NDNBOOST_MEM_FN_NAME(mf8): public mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(mf8)<R, T, A1, A2, A3, A4, A5, A6, A7, A8, R (NDNBOOST_MEM_FN_CC T::*) (A1, A2, A3, A4, A5, A6, A7, A8)>
 {
-    typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7, A8);
-    explicit BOOST_MEM_FN_NAME(mf8)(F f): mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf8)<R, T, A1, A2, A3, A4, A5, A6, A7, A8, F>(f) {}
+    typedef R (NDNBOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7, A8);
+    explicit NDNBOOST_MEM_FN_NAME(mf8)(F f): mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(mf8)<R, T, A1, A2, A3, A4, A5, A6, A7, A8, F>(f) {}
 };
 
-template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> struct BOOST_MEM_FN_NAME(cmf8): public mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf8)<R, T, A1, A2, A3, A4, A5, A6, A7, A8, R (BOOST_MEM_FN_CC T::*) (A1, A2, A3, A4, A5, A6, A7, A8) const>
+template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> struct NDNBOOST_MEM_FN_NAME(cmf8): public mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(cmf8)<R, T, A1, A2, A3, A4, A5, A6, A7, A8, R (NDNBOOST_MEM_FN_CC T::*) (A1, A2, A3, A4, A5, A6, A7, A8) const>
 {
-    typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7, A8) const;
-    explicit BOOST_MEM_FN_NAME(cmf8)(F f): mf<R>::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf8)<R, T, A1, A2, A3, A4, A5, A6, A7, A8, F>(f) {}
+    typedef R (NDNBOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7, A8) const;
+    explicit NDNBOOST_MEM_FN_NAME(cmf8)(F f): mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(cmf8)<R, T, A1, A2, A3, A4, A5, A6, A7, A8, F>(f) {}
 };
 
diff --git a/include/ndnboost/bind/placeholders.hpp b/include/ndnboost/bind/placeholders.hpp
index 0b9f0fc..9b383f5 100644
--- a/include/ndnboost/bind/placeholders.hpp
+++ b/include/ndnboost/bind/placeholders.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_BIND_PLACEHOLDERS_HPP_INCLUDED
-#define BOOST_BIND_PLACEHOLDERS_HPP_INCLUDED
+#ifndef NDNBOOST_BIND_PLACEHOLDERS_HPP_INCLUDED
+#define NDNBOOST_BIND_PLACEHOLDERS_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -37,7 +37,7 @@
 static inline ndnboost::arg<8> _8() { return ndnboost::arg<8>(); }
 static inline ndnboost::arg<9> _9() { return ndnboost::arg<9>(); }
 
-#elif defined(BOOST_MSVC) || (defined(__DECCXX_VER) && __DECCXX_VER <= 60590031) || defined(__MWERKS__) || \
+#elif defined(NDNBOOST_MSVC) || (defined(__DECCXX_VER) && __DECCXX_VER <= 60590031) || defined(__MWERKS__) || \
     defined(__GNUC__) && (__GNUC__ == 4 && __GNUC_MINOR__ < 2)  
 
 static ndnboost::arg<1> _1;
@@ -66,4 +66,4 @@
 
 } // unnamed namespace
 
-#endif // #ifndef BOOST_BIND_PLACEHOLDERS_HPP_INCLUDED
+#endif // #ifndef NDNBOOST_BIND_PLACEHOLDERS_HPP_INCLUDED
diff --git a/include/ndnboost/bind/protect.hpp b/include/ndnboost/bind/protect.hpp
index 4d70f84..edfbb1e 100644
--- a/include/ndnboost/bind/protect.hpp
+++ b/include/ndnboost/bind/protect.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_BIND_PROTECT_HPP_INCLUDED
-#define BOOST_BIND_PROTECT_HPP_INCLUDED
+#ifndef NDNBOOST_BIND_PROTECT_HPP_INCLUDED
+#define NDNBOOST_BIND_PROTECT_HPP_INCLUDED
 
 //
 //  protect.hpp
@@ -52,8 +52,8 @@
     }
 
 
-#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
- && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
+#if !defined(NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
+ && !NDNBOOST_WORKAROUND(__EDG_VERSION__, <= 238)
 
     template<class A1> result_type operator()(const A1 & a1)
     {
@@ -77,8 +77,8 @@
         return f_(a1, a2);
     }
 
-#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
- && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
+#if !defined(NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
+ && !NDNBOOST_WORKAROUND(__EDG_VERSION__, <= 238)
 
     template<class A1, class A2> result_type operator()(A1 const & a1, A2 & a2)
     {
@@ -122,8 +122,8 @@
         return f_(a1, a2, a3);
     }
     
-#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
- && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
+#if !defined(NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
+ && !NDNBOOST_WORKAROUND(__EDG_VERSION__, <= 238)
 
     template<class A1, class A2, class A3> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3)
     {
@@ -147,8 +147,8 @@
         return f_(a1, a2, a3, a4);
     }
     
-#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
- && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
+#if !defined(NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
+ && !NDNBOOST_WORKAROUND(__EDG_VERSION__, <= 238)
 
     template<class A1, class A2, class A3, class A4> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4)
     {
@@ -172,8 +172,8 @@
         return f_(a1, a2, a3, a4, a5);
     }
     
-#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
- && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
+#if !defined(NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
+ && !NDNBOOST_WORKAROUND(__EDG_VERSION__, <= 238)
 
     template<class A1, class A2, class A3, class A4, class A5> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5)
     {
@@ -197,8 +197,8 @@
         return f_(a1, a2, a3, a4, a5, a6);
     }
     
-#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
- && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
+#if !defined(NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
+ && !NDNBOOST_WORKAROUND(__EDG_VERSION__, <= 238)
 
     template<class A1, class A2, class A3, class A4, class A5, class A6> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6)
     {
@@ -222,8 +222,8 @@
         return f_(a1, a2, a3, a4, a5, a6, a7);
     }
     
-#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
- && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
+#if !defined(NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
+ && !NDNBOOST_WORKAROUND(__EDG_VERSION__, <= 238)
 
     template<class A1, class A2, class A3, class A4, class A5, class A6, class A7> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7)
     {
@@ -247,8 +247,8 @@
         return f_(a1, a2, a3, a4, a5, a6, a7, a8);
     }
     
-#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
- && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
+#if !defined(NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
+ && !NDNBOOST_WORKAROUND(__EDG_VERSION__, <= 238)
 
     template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8)
     {
@@ -272,8 +272,8 @@
         return f_(a1, a2, a3, a4, a5, a6, a7, a8, a9);
     }
     
-#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
- && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
+#if !defined(NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
+ && !NDNBOOST_WORKAROUND(__EDG_VERSION__, <= 238)
 
     template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8, A9 const & a9)
     {
@@ -301,4 +301,4 @@
 
 } // namespace ndnboost
 
-#endif // #ifndef BOOST_BIND_PROTECT_HPP_INCLUDED
+#endif // #ifndef NDNBOOST_BIND_PROTECT_HPP_INCLUDED
diff --git a/include/ndnboost/bind/storage.hpp b/include/ndnboost/bind/storage.hpp
index ef1a870..f50928f 100644
--- a/include/ndnboost/bind/storage.hpp
+++ b/include/ndnboost/bind/storage.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_BIND_STORAGE_HPP_INCLUDED
-#define BOOST_BIND_STORAGE_HPP_INCLUDED
+#ifndef NDNBOOST_BIND_STORAGE_HPP_INCLUDED
+#define NDNBOOST_BIND_STORAGE_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -24,7 +24,7 @@
 #include <ndnboost/config.hpp>
 #include <ndnboost/bind/arg.hpp>
 
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
 # pragma warning(push)
 # pragma warning(disable: 4512) // assignment operator could not be generated
 #endif
@@ -43,13 +43,13 @@
 
     template<class V> void accept(V & v) const
     {
-        BOOST_BIND_VISIT_EACH(v, a1_, 0);
+        NDNBOOST_BIND_VISIT_EACH(v, a1_, 0);
     }
 
     A1 a1_;
 };
 
-#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) && !defined( __BORLANDC__ )
+#if !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) && !defined( __BORLANDC__ )
 
 template<int I> struct storage1< ndnboost::arg<I> >
 {
@@ -82,13 +82,13 @@
     template<class V> void accept(V & v) const
     {
         inherited::accept(v);
-        BOOST_BIND_VISIT_EACH(v, a2_, 0);
+        NDNBOOST_BIND_VISIT_EACH(v, a2_, 0);
     }
 
     A2 a2_;
 };
 
-#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
+#if !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
 
 template<class A1, int I> struct storage2< A1, ndnboost::arg<I> >: public storage1<A1>
 {
@@ -131,13 +131,13 @@
     template<class V> void accept(V & v) const
     {
         inherited::accept(v);
-        BOOST_BIND_VISIT_EACH(v, a3_, 0);
+        NDNBOOST_BIND_VISIT_EACH(v, a3_, 0);
     }
 
     A3 a3_;
 };
 
-#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
+#if !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
 
 template<class A1, class A2, int I> struct storage3< A1, A2, ndnboost::arg<I> >: public storage2< A1, A2 >
 {
@@ -180,13 +180,13 @@
     template<class V> void accept(V & v) const
     {
         inherited::accept(v);
-        BOOST_BIND_VISIT_EACH(v, a4_, 0);
+        NDNBOOST_BIND_VISIT_EACH(v, a4_, 0);
     }
 
     A4 a4_;
 };
 
-#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
+#if !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
 
 template<class A1, class A2, class A3, int I> struct storage4< A1, A2, A3, ndnboost::arg<I> >: public storage3< A1, A2, A3 >
 {
@@ -229,13 +229,13 @@
     template<class V> void accept(V & v) const
     {
         inherited::accept(v);
-        BOOST_BIND_VISIT_EACH(v, a5_, 0);
+        NDNBOOST_BIND_VISIT_EACH(v, a5_, 0);
     }
 
     A5 a5_;
 };
 
-#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
+#if !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
 
 template<class A1, class A2, class A3, class A4, int I> struct storage5< A1, A2, A3, A4, ndnboost::arg<I> >: public storage4< A1, A2, A3, A4 >
 {
@@ -278,13 +278,13 @@
     template<class V> void accept(V & v) const
     {
         inherited::accept(v);
-        BOOST_BIND_VISIT_EACH(v, a6_, 0);
+        NDNBOOST_BIND_VISIT_EACH(v, a6_, 0);
     }
 
     A6 a6_;
 };
 
-#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
+#if !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
 
 template<class A1, class A2, class A3, class A4, class A5, int I> struct storage6< A1, A2, A3, A4, A5, ndnboost::arg<I> >: public storage5< A1, A2, A3, A4, A5 >
 {
@@ -327,13 +327,13 @@
     template<class V> void accept(V & v) const
     {
         inherited::accept(v);
-        BOOST_BIND_VISIT_EACH(v, a7_, 0);
+        NDNBOOST_BIND_VISIT_EACH(v, a7_, 0);
     }
 
     A7 a7_;
 };
 
-#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
+#if !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
 
 template<class A1, class A2, class A3, class A4, class A5, class A6, int I> struct storage7< A1, A2, A3, A4, A5, A6, ndnboost::arg<I> >: public storage6< A1, A2, A3, A4, A5, A6 >
 {
@@ -376,13 +376,13 @@
     template<class V> void accept(V & v) const
     {
         inherited::accept(v);
-        BOOST_BIND_VISIT_EACH(v, a8_, 0);
+        NDNBOOST_BIND_VISIT_EACH(v, a8_, 0);
     }
 
     A8 a8_;
 };
 
-#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
+#if !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
 
 template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, int I> struct storage8< A1, A2, A3, A4, A5, A6, A7, ndnboost::arg<I> >: public storage7< A1, A2, A3, A4, A5, A6, A7 >
 {
@@ -425,13 +425,13 @@
     template<class V> void accept(V & v) const
     {
         inherited::accept(v);
-        BOOST_BIND_VISIT_EACH(v, a9_, 0);
+        NDNBOOST_BIND_VISIT_EACH(v, a9_, 0);
     }
 
     A9 a9_;
 };
 
-#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
+#if !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
 
 template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, int I> struct storage9< A1, A2, A3, A4, A5, A6, A7, A8, ndnboost::arg<I> >: public storage8< A1, A2, A3, A4, A5, A6, A7, A8 >
 {
@@ -467,9 +467,9 @@
 
 } // namespace ndnboost
 
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
 # pragma warning(default: 4512) // assignment operator could not be generated
 # pragma warning(pop)
 #endif
 
-#endif // #ifndef BOOST_BIND_STORAGE_HPP_INCLUDED
+#endif // #ifndef NDNBOOST_BIND_STORAGE_HPP_INCLUDED
diff --git a/include/ndnboost/blank.hpp b/include/ndnboost/blank.hpp
index aab39a4..cdd6e47 100644
--- a/include/ndnboost/blank.hpp
+++ b/include/ndnboost/blank.hpp
@@ -10,15 +10,15 @@
 // accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_BLANK_HPP
-#define BOOST_BLANK_HPP
+#ifndef NDNBOOST_BLANK_HPP
+#define NDNBOOST_BLANK_HPP
 
 #include "ndnboost/blank_fwd.hpp"
 
-#if !defined(BOOST_NO_IOSTREAM)
+#if !defined(NDNBOOST_NO_IOSTREAM)
 #include <iosfwd> // for std::basic_ostream forward declare
 #include "ndnboost/detail/templated_streams.hpp"
-#endif // BOOST_NO_IOSTREAM
+#endif // NDNBOOST_NO_IOSTREAM
 
 #include "ndnboost/mpl/bool.hpp"
 #include "ndnboost/type_traits/is_empty.hpp"
@@ -87,11 +87,11 @@
 
 // streaming support
 //
-#if !defined(BOOST_NO_IOSTREAM)
+#if !defined(NDNBOOST_NO_IOSTREAM)
 
-BOOST_TEMPLATED_STREAM_TEMPLATE(E,T)
-inline BOOST_TEMPLATED_STREAM(ostream, E,T)& operator<<(
-      BOOST_TEMPLATED_STREAM(ostream, E,T)& out
+NDNBOOST_TEMPLATED_STREAM_TEMPLATE(E,T)
+inline NDNBOOST_TEMPLATED_STREAM(ostream, E,T)& operator<<(
+      NDNBOOST_TEMPLATED_STREAM(ostream, E,T)& out
     , const blank&
     )
 {
@@ -99,8 +99,8 @@
     return out;
 }
 
-#endif // BOOST_NO_IOSTREAM
+#endif // NDNBOOST_NO_IOSTREAM
 
 } // namespace ndnboost
 
-#endif // BOOST_BLANK_HPP
+#endif // NDNBOOST_BLANK_HPP
diff --git a/include/ndnboost/blank_fwd.hpp b/include/ndnboost/blank_fwd.hpp
index fee1d79..1b66827 100644
--- a/include/ndnboost/blank_fwd.hpp
+++ b/include/ndnboost/blank_fwd.hpp
@@ -10,8 +10,8 @@
 // accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_BLANK_FWD_HPP
-#define BOOST_BLANK_FWD_HPP
+#ifndef NDNBOOST_BLANK_FWD_HPP
+#define NDNBOOST_BLANK_FWD_HPP
 
 namespace ndnboost {
 
@@ -19,4 +19,4 @@
 
 } // namespace ndnboost
 
-#endif // BOOST_BLANK_FWD_HPP
+#endif // NDNBOOST_BLANK_FWD_HPP
diff --git a/include/ndnboost/call_traits.hpp b/include/ndnboost/call_traits.hpp
index 72c441c..7abbd84 100644
--- a/include/ndnboost/call_traits.hpp
+++ b/include/ndnboost/call_traits.hpp
@@ -8,17 +8,17 @@
 //  See ndnboost/detail/call_traits.hpp and ndnboost/detail/ob_call_traits.hpp
 //  for full copyright notices.
 
-#ifndef BOOST_CALL_TRAITS_HPP
-#define BOOST_CALL_TRAITS_HPP
+#ifndef NDNBOOST_CALL_TRAITS_HPP
+#define NDNBOOST_CALL_TRAITS_HPP
 
-#ifndef BOOST_CONFIG_HPP
+#ifndef NDNBOOST_CONFIG_HPP
 #include <ndnboost/config.hpp>
 #endif
 
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#ifdef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 #include <ndnboost/detail/ob_call_traits.hpp>
 #else
 #include <ndnboost/detail/call_traits.hpp>
 #endif
 
-#endif // BOOST_CALL_TRAITS_HPP
+#endif // NDNBOOST_CALL_TRAITS_HPP
diff --git a/include/ndnboost/checked_delete.hpp b/include/ndnboost/checked_delete.hpp
index 00ce3f9..0980511 100644
--- a/include/ndnboost/checked_delete.hpp
+++ b/include/ndnboost/checked_delete.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_CHECKED_DELETE_HPP_INCLUDED
-#define BOOST_CHECKED_DELETE_HPP_INCLUDED
+#ifndef NDNBOOST_CHECKED_DELETE_HPP_INCLUDED
+#define NDNBOOST_CHECKED_DELETE_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -66,4 +66,4 @@
 
 } // namespace ndnboost
 
-#endif  // #ifndef BOOST_CHECKED_DELETE_HPP_INCLUDED
+#endif  // #ifndef NDNBOOST_CHECKED_DELETE_HPP_INCLUDED
diff --git a/include/ndnboost/concept/assert.hpp b/include/ndnboost/concept/assert.hpp
index 148c5ad..5db4cce 100644
--- a/include/ndnboost/concept/assert.hpp
+++ b/include/ndnboost/concept/assert.hpp
@@ -1,8 +1,8 @@
 // Copyright David Abrahams 2006. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef BOOST_CONCEPT_ASSERT_DWA2006430_HPP
-# define BOOST_CONCEPT_ASSERT_DWA2006430_HPP
+#ifndef NDNBOOST_CONCEPT_ASSERT_DWA2006430_HPP
+# define NDNBOOST_CONCEPT_ASSERT_DWA2006430_HPP
 
 # include <ndnboost/config.hpp>
 # include <ndnboost/detail/workaround.hpp>
@@ -15,22 +15,22 @@
 // The old protocol is deprecated, though, and backward compatibility
 // will no longer be the default in the next release.
 
-# if !defined(BOOST_NO_OLD_CONCEPT_SUPPORT)                                         \
-    && !defined(BOOST_NO_SFINAE)                                                    \
+# if !defined(NDNBOOST_NO_OLD_CONCEPT_SUPPORT)                                         \
+    && !defined(NDNBOOST_NO_SFINAE)                                                    \
                                                                                     \
-    && !(BOOST_WORKAROUND(__GNUC__, == 3) && BOOST_WORKAROUND(__GNUC_MINOR__, < 4)) \
-    && !(BOOST_WORKAROUND(__GNUC__, == 2))
+    && !(NDNBOOST_WORKAROUND(__GNUC__, == 3) && NDNBOOST_WORKAROUND(__GNUC_MINOR__, < 4)) \
+    && !(NDNBOOST_WORKAROUND(__GNUC__, == 2))
 
 // Note: gcc-2.96 through 3.3.x have some SFINAE, but no ability to
 // check for the presence of particularmember functions.
 
-#  define BOOST_OLD_CONCEPT_SUPPORT
+#  define NDNBOOST_OLD_CONCEPT_SUPPORT
 
 # endif
 
-# ifdef BOOST_MSVC
+# ifdef NDNBOOST_MSVC
 #  include <ndnboost/concept/detail/msvc.hpp>
-# elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
+# elif NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564))
 #  include <ndnboost/concept/detail/borland.hpp>
 # else 
 #  include <ndnboost/concept/detail/general.hpp>
@@ -38,9 +38,9 @@
 
   // Usage, in class or function context:
   //
-  //     BOOST_CONCEPT_ASSERT((UnaryFunctionConcept<F,bool,int>));
+  //     NDNBOOST_CONCEPT_ASSERT((UnaryFunctionConcept<F,bool,int>));
   //
-# define BOOST_CONCEPT_ASSERT(ModelInParens) \
-    BOOST_CONCEPT_ASSERT_FN(void(*)ModelInParens)
+# define NDNBOOST_CONCEPT_ASSERT(ModelInParens) \
+    NDNBOOST_CONCEPT_ASSERT_FN(void(*)ModelInParens)
 
-#endif // BOOST_CONCEPT_ASSERT_DWA2006430_HPP
+#endif // NDNBOOST_CONCEPT_ASSERT_DWA2006430_HPP
diff --git a/include/ndnboost/concept/detail/backward_compatibility.hpp b/include/ndnboost/concept/detail/backward_compatibility.hpp
index f284564..536d011 100644
--- a/include/ndnboost/concept/detail/backward_compatibility.hpp
+++ b/include/ndnboost/concept/detail/backward_compatibility.hpp
@@ -1,16 +1,16 @@
 // Copyright David Abrahams 2009. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef BOOST_CONCEPT_BACKWARD_COMPATIBILITY_DWA200968_HPP
-# define BOOST_CONCEPT_BACKWARD_COMPATIBILITY_DWA200968_HPP
+#ifndef NDNBOOST_CONCEPT_BACKWARD_COMPATIBILITY_DWA200968_HPP
+# define NDNBOOST_CONCEPT_BACKWARD_COMPATIBILITY_DWA200968_HPP
 
 namespace ndnboost
 {
   namespace concepts {}
 
-# if defined(BOOST_HAS_CONCEPTS) && !defined(BOOST_CONCEPT_NO_BACKWARD_KEYWORD)
+# if defined(NDNBOOST_HAS_CONCEPTS) && !defined(NDNBOOST_CONCEPT_NO_BACKWARD_KEYWORD)
   namespace concept = concepts;
 # endif 
 } // namespace ndnboost::concept
 
-#endif // BOOST_CONCEPT_BACKWARD_COMPATIBILITY_DWA200968_HPP
+#endif // NDNBOOST_CONCEPT_BACKWARD_COMPATIBILITY_DWA200968_HPP
diff --git a/include/ndnboost/concept/detail/borland.hpp b/include/ndnboost/concept/detail/borland.hpp
index ade28ca..8518175 100644
--- a/include/ndnboost/concept/detail/borland.hpp
+++ b/include/ndnboost/concept/detail/borland.hpp
@@ -1,8 +1,8 @@
 // Copyright David Abrahams 2006. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef BOOST_CONCEPT_DETAIL_BORLAND_DWA2006429_HPP
-# define BOOST_CONCEPT_DETAIL_BORLAND_DWA2006429_HPP
+#ifndef NDNBOOST_CONCEPT_DETAIL_BORLAND_DWA2006429_HPP
+# define NDNBOOST_CONCEPT_DETAIL_BORLAND_DWA2006429_HPP
 
 # include <ndnboost/preprocessor/cat.hpp>
 # include <ndnboost/concept/detail/backward_compatibility.hpp>
@@ -18,13 +18,13 @@
     enum { instantiate = sizeof((((Model*)0)->~Model()), 3) };
 };
 
-#  define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr )         \
+#  define NDNBOOST_CONCEPT_ASSERT_FN( ModelFnPtr )         \
   enum                                                  \
   {                                                     \
-      BOOST_PP_CAT(boost_concept_check,__LINE__) =      \
+      NDNBOOST_PP_CAT(boost_concept_check,__LINE__) =      \
       ndnboost::concepts::require<ModelFnPtr>::instantiate  \
   }
 
 }} // namespace ndnboost::concept
 
-#endif // BOOST_CONCEPT_DETAIL_BORLAND_DWA2006429_HPP
+#endif // NDNBOOST_CONCEPT_DETAIL_BORLAND_DWA2006429_HPP
diff --git a/include/ndnboost/concept/detail/concept_def.hpp b/include/ndnboost/concept/detail/concept_def.hpp
index 59da034..196162e 100644
--- a/include/ndnboost/concept/detail/concept_def.hpp
+++ b/include/ndnboost/concept/detail/concept_def.hpp
@@ -1,51 +1,51 @@
 // Copyright David Abrahams 2006. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef BOOST_CONCEPT_DETAIL_CONCEPT_DEF_DWA200651_HPP
-# define BOOST_CONCEPT_DETAIL_CONCEPT_DEF_DWA200651_HPP
+#ifndef NDNBOOST_CONCEPT_DETAIL_CONCEPT_DEF_DWA200651_HPP
+# define NDNBOOST_CONCEPT_DETAIL_CONCEPT_DEF_DWA200651_HPP
 # include <ndnboost/preprocessor/seq/for_each_i.hpp>
 # include <ndnboost/preprocessor/seq/enum.hpp>
 # include <ndnboost/preprocessor/comma_if.hpp>
 # include <ndnboost/preprocessor/cat.hpp>
-#endif // BOOST_CONCEPT_DETAIL_CONCEPT_DEF_DWA200651_HPP
+#endif // NDNBOOST_CONCEPT_DETAIL_CONCEPT_DEF_DWA200651_HPP
 
-// BOOST_concept(SomeName, (p1)(p2)...(pN))
+// NDNBOOST_concept(SomeName, (p1)(p2)...(pN))
 //
 // Expands to "template <class p1, class p2, ...class pN> struct SomeName"
 //
 // Also defines an equivalent SomeNameConcept for backward compatibility.
 // Maybe in the next release we can kill off the "Concept" suffix for good.
-#if BOOST_WORKAROUND(__GNUC__, <= 3)
-# define BOOST_concept(name, params)                                            \
-    template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) >       \
+#if NDNBOOST_WORKAROUND(__GNUC__, <= 3)
+# define NDNBOOST_concept(name, params)                                            \
+    template < NDNBOOST_PP_SEQ_FOR_EACH_I(NDNBOOST_CONCEPT_typename,~,params) >       \
     struct name; /* forward declaration */                                      \
                                                                                 \
-    template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) >       \
-    struct BOOST_PP_CAT(name,Concept)                                           \
-      : name< BOOST_PP_SEQ_ENUM(params) >                                       \
+    template < NDNBOOST_PP_SEQ_FOR_EACH_I(NDNBOOST_CONCEPT_typename,~,params) >       \
+    struct NDNBOOST_PP_CAT(name,Concept)                                           \
+      : name< NDNBOOST_PP_SEQ_ENUM(params) >                                       \
     {                                                                           \
         /* at least 2.96 and 3.4.3 both need this */                            \
-        BOOST_PP_CAT(name,Concept)();                                           \
+        NDNBOOST_PP_CAT(name,Concept)();                                           \
     };                                                                          \
                                                                                 \
-    template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) >       \
+    template < NDNBOOST_PP_SEQ_FOR_EACH_I(NDNBOOST_CONCEPT_typename,~,params) >       \
     struct name                                                                
 #else
-# define BOOST_concept(name, params)                                            \
-    template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) >       \
+# define NDNBOOST_concept(name, params)                                            \
+    template < NDNBOOST_PP_SEQ_FOR_EACH_I(NDNBOOST_CONCEPT_typename,~,params) >       \
     struct name; /* forward declaration */                                      \
                                                                                 \
-    template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) >       \
-    struct BOOST_PP_CAT(name,Concept)                                           \
-      : name< BOOST_PP_SEQ_ENUM(params) >                                       \
+    template < NDNBOOST_PP_SEQ_FOR_EACH_I(NDNBOOST_CONCEPT_typename,~,params) >       \
+    struct NDNBOOST_PP_CAT(name,Concept)                                           \
+      : name< NDNBOOST_PP_SEQ_ENUM(params) >                                       \
     {                                                                           \
     };                                                                          \
                                                                                 \
-    template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) >       \
+    template < NDNBOOST_PP_SEQ_FOR_EACH_I(NDNBOOST_CONCEPT_typename,~,params) >       \
     struct name                                                                
 #endif
     
-// Helper for BOOST_concept, above.
-# define BOOST_CONCEPT_typename(r, ignored, index, t) \
-    BOOST_PP_COMMA_IF(index) typename t
+// Helper for NDNBOOST_concept, above.
+# define NDNBOOST_CONCEPT_typename(r, ignored, index, t) \
+    NDNBOOST_PP_COMMA_IF(index) typename t
 
diff --git a/include/ndnboost/concept/detail/concept_undef.hpp b/include/ndnboost/concept/detail/concept_undef.hpp
index 713db89..b563876 100644
--- a/include/ndnboost/concept/detail/concept_undef.hpp
+++ b/include/ndnboost/concept/detail/concept_undef.hpp
@@ -1,5 +1,5 @@
 // Copyright David Abrahams 2006. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-# undef BOOST_concept_typename
-# undef BOOST_concept
+# undef NDNBOOST_concept_typename
+# undef NDNBOOST_concept
diff --git a/include/ndnboost/concept/detail/general.hpp b/include/ndnboost/concept/detail/general.hpp
index defbf03..fcf579b 100644
--- a/include/ndnboost/concept/detail/general.hpp
+++ b/include/ndnboost/concept/detail/general.hpp
@@ -1,13 +1,13 @@
 // Copyright David Abrahams 2006. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef BOOST_CONCEPT_DETAIL_GENERAL_DWA2006429_HPP
-# define BOOST_CONCEPT_DETAIL_GENERAL_DWA2006429_HPP
+#ifndef NDNBOOST_CONCEPT_DETAIL_GENERAL_DWA2006429_HPP
+# define NDNBOOST_CONCEPT_DETAIL_GENERAL_DWA2006429_HPP
 
 # include <ndnboost/preprocessor/cat.hpp>
 # include <ndnboost/concept/detail/backward_compatibility.hpp>
 
-# ifdef BOOST_OLD_CONCEPT_SUPPORT
+# ifdef NDNBOOST_OLD_CONCEPT_SUPPORT
 #  include <ndnboost/concept/detail/has_constraints.hpp>
 #  include <ndnboost/mpl/if.hpp>
 # endif
@@ -38,7 +38,7 @@
     static void failed() { ((Model*)0)->~Model(); }
 };
 
-# ifdef BOOST_OLD_CONCEPT_SUPPORT
+# ifdef NDNBOOST_OLD_CONCEPT_SUPPORT
 
 template <class Model>
 struct constraint
@@ -65,11 +65,11 @@
   
 # endif
 
-#  define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr )             \
+#  define NDNBOOST_CONCEPT_ASSERT_FN( ModelFnPtr )             \
     typedef ::ndnboost::concepts::detail::instantiate<          \
     &::ndnboost::concepts::requirement_<ModelFnPtr>::failed>    \
-      BOOST_PP_CAT(boost_concept_check,__LINE__)
+      NDNBOOST_PP_CAT(boost_concept_check,__LINE__)
 
 }}
 
-#endif // BOOST_CONCEPT_DETAIL_GENERAL_DWA2006429_HPP
+#endif // NDNBOOST_CONCEPT_DETAIL_GENERAL_DWA2006429_HPP
diff --git a/include/ndnboost/concept/detail/has_constraints.hpp b/include/ndnboost/concept/detail/has_constraints.hpp
index d70515e..289df91 100644
--- a/include/ndnboost/concept/detail/has_constraints.hpp
+++ b/include/ndnboost/concept/detail/has_constraints.hpp
@@ -1,8 +1,8 @@
 // Copyright David Abrahams 2006. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef BOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP
-# define BOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP
+#ifndef NDNBOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP
+# define NDNBOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP
 
 # include <ndnboost/mpl/bool.hpp>
 # include <ndnboost/detail/workaround.hpp>
@@ -21,7 +21,7 @@
   template <class Model, void (Model::*)()>
   struct wrap_constraints {};
     
-#if BOOST_WORKAROUND(__SUNPRO_CC, <= 0x580) || defined(__CUDACC__)
+#if NDNBOOST_WORKAROUND(__SUNPRO_CC, <= 0x580) || defined(__CUDACC__)
   // Work around the following bogus error in Sun Studio 11, by
   // turning off the has_constraints function entirely:
   //    Error: complex expression not allowed in dependent template
@@ -39,7 +39,7 @@
 template <class Model>
 struct not_satisfied
 {
-    BOOST_STATIC_CONSTANT(
+    NDNBOOST_STATIC_CONSTANT(
         bool
       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
     typedef mpl::bool_<value> type;
@@ -47,4 +47,4 @@
 
 }} // namespace ndnboost::concepts::detail
 
-#endif // BOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP
+#endif // NDNBOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP
diff --git a/include/ndnboost/concept/detail/msvc.hpp b/include/ndnboost/concept/detail/msvc.hpp
index c11e949..183dda4 100644
--- a/include/ndnboost/concept/detail/msvc.hpp
+++ b/include/ndnboost/concept/detail/msvc.hpp
@@ -1,13 +1,13 @@
 // Copyright David Abrahams 2006. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef BOOST_CONCEPT_CHECK_MSVC_DWA2006429_HPP
-# define BOOST_CONCEPT_CHECK_MSVC_DWA2006429_HPP
+#ifndef NDNBOOST_CONCEPT_CHECK_MSVC_DWA2006429_HPP
+# define NDNBOOST_CONCEPT_CHECK_MSVC_DWA2006429_HPP
 
 # include <ndnboost/preprocessor/cat.hpp>
 # include <ndnboost/concept/detail/backward_compatibility.hpp>
 
-# ifdef BOOST_OLD_CONCEPT_SUPPORT
+# ifdef NDNBOOST_OLD_CONCEPT_SUPPORT
 #  include <ndnboost/concept/detail/has_constraints.hpp>
 #  include <ndnboost/mpl/if.hpp>
 # endif
@@ -25,7 +25,7 @@
     }
 };
 
-# ifndef BOOST_NO_PARTIAL_SPECIALIZATION
+# ifndef NDNBOOST_NO_PARTIAL_SPECIALIZATION
 struct failed {};
 template <class Model>
 struct check<failed ************ Model::************>
@@ -37,7 +37,7 @@
 };
 # endif
 
-# ifdef BOOST_OLD_CONCEPT_SUPPORT
+# ifdef NDNBOOST_OLD_CONCEPT_SUPPORT
   
 namespace detail
 {
@@ -52,7 +52,7 @@
   : mpl::if_c<
         not_satisfied<Model>::value
       , detail::constraint
-# ifndef BOOST_NO_PARTIAL_SPECIALIZATION
+# ifndef NDNBOOST_NO_PARTIAL_SPECIALIZATION
       , check<Model>
 # else
       , check<failed ************ Model::************>
@@ -64,7 +64,7 @@
   
 template <class Model>
 struct require
-# ifndef BOOST_NO_PARTIAL_SPECIALIZATION
+# ifndef NDNBOOST_NO_PARTIAL_SPECIALIZATION
     : check<Model>
 # else
     : check<failed ************ Model::************>
@@ -73,7 +73,7 @@
   
 # endif
     
-# if BOOST_WORKAROUND(BOOST_MSVC, == 1310)
+# if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1310)
 
 //
 // The iterator library sees some really strange errors unless we
@@ -88,10 +88,10 @@
     }
 };
 
-# define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr )      \
+# define NDNBOOST_CONCEPT_ASSERT_FN( ModelFnPtr )      \
 enum                                                \
 {                                                   \
-    BOOST_PP_CAT(boost_concept_check,__LINE__) =    \
+    NDNBOOST_PP_CAT(boost_concept_check,__LINE__) =    \
     sizeof(::ndnboost::concepts::require<ModelFnPtr>)    \
 }
   
@@ -101,14 +101,14 @@
 require<Model>
 require_(void(*)(Model));
   
-# define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr )          \
+# define NDNBOOST_CONCEPT_ASSERT_FN( ModelFnPtr )          \
 enum                                                    \
 {                                                       \
-    BOOST_PP_CAT(boost_concept_check,__LINE__) =        \
+    NDNBOOST_PP_CAT(boost_concept_check,__LINE__) =        \
       sizeof(::ndnboost::concepts::require_((ModelFnPtr)0)) \
 }
   
 # endif
 }}
 
-#endif // BOOST_CONCEPT_CHECK_MSVC_DWA2006429_HPP
+#endif // NDNBOOST_CONCEPT_CHECK_MSVC_DWA2006429_HPP
diff --git a/include/ndnboost/concept/usage.hpp b/include/ndnboost/concept/usage.hpp
index 085cdd9..dfedbc0 100644
--- a/include/ndnboost/concept/usage.hpp
+++ b/include/ndnboost/concept/usage.hpp
@@ -1,8 +1,8 @@
 // Copyright David Abrahams 2006. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef BOOST_CONCEPT_USAGE_DWA2006919_HPP
-# define BOOST_CONCEPT_USAGE_DWA2006919_HPP
+#ifndef NDNBOOST_CONCEPT_USAGE_DWA2006919_HPP
+# define NDNBOOST_CONCEPT_USAGE_DWA2006919_HPP
 
 # include <ndnboost/concept/assert.hpp>
 # include <ndnboost/detail/workaround.hpp>
@@ -10,9 +10,9 @@
 
 namespace ndnboost { namespace concepts { 
 
-# if BOOST_WORKAROUND(__GNUC__, == 2)
+# if NDNBOOST_WORKAROUND(__GNUC__, == 2)
 
-#  define BOOST_CONCEPT_USAGE(model) ~model()
+#  define NDNBOOST_CONCEPT_USAGE(model) ~model()
 
 # else 
 
@@ -22,17 +22,17 @@
     ~usage_requirements() { ((Model*)0)->~Model(); }
 };
 
-#  if BOOST_WORKAROUND(__GNUC__, <= 3)
+#  if NDNBOOST_WORKAROUND(__GNUC__, <= 3)
 
-#   define BOOST_CONCEPT_USAGE(model)                                    \
+#   define NDNBOOST_CONCEPT_USAGE(model)                                    \
       model(); /* at least 2.96 and 3.4.3 both need this :( */           \
-      BOOST_CONCEPT_ASSERT((ndnboost::concepts::usage_requirements<model>)); \
+      NDNBOOST_CONCEPT_ASSERT((ndnboost::concepts::usage_requirements<model>)); \
       ~model()
 
 #  else
 
-#   define BOOST_CONCEPT_USAGE(model)                                    \
-      BOOST_CONCEPT_ASSERT((ndnboost::concepts::usage_requirements<model>)); \
+#   define NDNBOOST_CONCEPT_USAGE(model)                                    \
+      NDNBOOST_CONCEPT_ASSERT((ndnboost::concepts::usage_requirements<model>)); \
       ~model()
 
 #  endif
@@ -41,4 +41,4 @@
 
 }} // namespace ndnboost::concepts
 
-#endif // BOOST_CONCEPT_USAGE_DWA2006919_HPP
+#endif // NDNBOOST_CONCEPT_USAGE_DWA2006919_HPP
diff --git a/include/ndnboost/concept_check.hpp b/include/ndnboost/concept_check.hpp
index 0b7bf54..ca434f3 100644
--- a/include/ndnboost/concept_check.hpp
+++ b/include/ndnboost/concept_check.hpp
@@ -14,8 +14,8 @@
 
 // See http://www.boost.org/libs/concept_check for documentation.
 
-#ifndef BOOST_CONCEPT_CHECKS_HPP
-# define BOOST_CONCEPT_CHECKS_HPP
+#ifndef NDNBOOST_CONCEPT_CHECKS_HPP
+# define NDNBOOST_CONCEPT_CHECKS_HPP
 
 # include <ndnboost/concept/assert.hpp>
 
@@ -42,29 +42,29 @@
   template <class Model>
   inline void function_requires(Model* = 0)
   {
-      BOOST_CONCEPT_ASSERT((Model));
+      NDNBOOST_CONCEPT_ASSERT((Model));
   }
   template <class T> inline void ignore_unused_variable_warning(T const&) {}
 
-#  define BOOST_CLASS_REQUIRE(type_var, ns, concept)    \
-    BOOST_CONCEPT_ASSERT((ns::concept<type_var>))
+#  define NDNBOOST_CLASS_REQUIRE(type_var, ns, concept)    \
+    NDNBOOST_CONCEPT_ASSERT((ns::concept<type_var>))
 
-#  define BOOST_CLASS_REQUIRE2(type_var1, type_var2, ns, concept)   \
-    BOOST_CONCEPT_ASSERT((ns::concept<type_var1,type_var2>))
+#  define NDNBOOST_CLASS_REQUIRE2(type_var1, type_var2, ns, concept)   \
+    NDNBOOST_CONCEPT_ASSERT((ns::concept<type_var1,type_var2>))
 
-#  define BOOST_CLASS_REQUIRE3(tv1, tv2, tv3, ns, concept)  \
-    BOOST_CONCEPT_ASSERT((ns::concept<tv1,tv2,tv3>))
+#  define NDNBOOST_CLASS_REQUIRE3(tv1, tv2, tv3, ns, concept)  \
+    NDNBOOST_CONCEPT_ASSERT((ns::concept<tv1,tv2,tv3>))
 
-#  define BOOST_CLASS_REQUIRE4(tv1, tv2, tv3, tv4, ns, concept) \
-    BOOST_CONCEPT_ASSERT((ns::concept<tv1,tv2,tv3,tv4>))
+#  define NDNBOOST_CLASS_REQUIRE4(tv1, tv2, tv3, tv4, ns, concept) \
+    NDNBOOST_CONCEPT_ASSERT((ns::concept<tv1,tv2,tv3,tv4>))
 
 
   //
   // Begin concept definitions
   //
-  BOOST_concept(Integer, (T))
+  NDNBOOST_concept(Integer, (T))
   {
-      BOOST_CONCEPT_USAGE(Integer)
+      NDNBOOST_CONCEPT_USAGE(Integer)
         {
             x.error_type_must_be_an_integer_type();
         }
@@ -81,16 +81,16 @@
   template <> struct Integer<unsigned int> {};
   template <> struct Integer<long> {};
   template <> struct Integer<unsigned long> {};
-# if defined(BOOST_HAS_LONG_LONG)
+# if defined(NDNBOOST_HAS_LONG_LONG)
   template <> struct Integer< ::ndnboost::long_long_type> {};
   template <> struct Integer< ::ndnboost::ulong_long_type> {};
-# elif defined(BOOST_HAS_MS_INT64)
+# elif defined(NDNBOOST_HAS_MS_INT64)
   template <> struct Integer<__int64> {};
   template <> struct Integer<unsigned __int64> {};
 # endif
 
-  BOOST_concept(SignedInteger,(T)) {
-    BOOST_CONCEPT_USAGE(SignedInteger) {
+  NDNBOOST_concept(SignedInteger,(T)) {
+    NDNBOOST_CONCEPT_USAGE(SignedInteger) {
       x.error_type_must_be_a_signed_integer_type();
     }
    private:
@@ -100,14 +100,14 @@
   template <> struct SignedInteger<short> {};
   template <> struct SignedInteger<int> {};
   template <> struct SignedInteger<long> {};
-# if defined(BOOST_HAS_LONG_LONG)
+# if defined(NDNBOOST_HAS_LONG_LONG)
   template <> struct SignedInteger< ::ndnboost::long_long_type> {};
-# elif defined(BOOST_HAS_MS_INT64)
+# elif defined(NDNBOOST_HAS_MS_INT64)
   template <> struct SignedInteger<__int64> {};
 # endif
 
-  BOOST_concept(UnsignedInteger,(T)) {
-    BOOST_CONCEPT_USAGE(UnsignedInteger) {
+  NDNBOOST_concept(UnsignedInteger,(T)) {
+    NDNBOOST_CONCEPT_USAGE(UnsignedInteger) {
       x.error_type_must_be_an_unsigned_integer_type();
     }
    private:
@@ -118,26 +118,26 @@
   template <> struct UnsignedInteger<unsigned short> {};
   template <> struct UnsignedInteger<unsigned int> {};
   template <> struct UnsignedInteger<unsigned long> {};
-# if defined(BOOST_HAS_LONG_LONG)
+# if defined(NDNBOOST_HAS_LONG_LONG)
   template <> struct UnsignedInteger< ::ndnboost::ulong_long_type> {};
-# elif defined(BOOST_HAS_MS_INT64)
+# elif defined(NDNBOOST_HAS_MS_INT64)
   template <> struct UnsignedInteger<unsigned __int64> {};
 # endif
 
   //===========================================================================
   // Basic Concepts
 
-  BOOST_concept(DefaultConstructible,(TT))
+  NDNBOOST_concept(DefaultConstructible,(TT))
   {
-    BOOST_CONCEPT_USAGE(DefaultConstructible) {
+    NDNBOOST_CONCEPT_USAGE(DefaultConstructible) {
       TT a;               // require default constructor
       ignore_unused_variable_warning(a);
     }
   };
 
-  BOOST_concept(Assignable,(TT))
+  NDNBOOST_concept(Assignable,(TT))
   {
-    BOOST_CONCEPT_USAGE(Assignable) {
+    NDNBOOST_CONCEPT_USAGE(Assignable) {
 #if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL
       a = b;             // require assignment operator
 #endif
@@ -157,9 +157,9 @@
   };
 
 
-  BOOST_concept(CopyConstructible,(TT))
+  NDNBOOST_concept(CopyConstructible,(TT))
   {
-    BOOST_CONCEPT_USAGE(CopyConstructible) {
+    NDNBOOST_CONCEPT_USAGE(CopyConstructible) {
       TT a(b);            // require copy constructor
       TT* ptr = &a;       // require address of operator
       const_constraints(a);
@@ -181,9 +181,9 @@
 # pragma warning( disable : 4610 ) // object 'class' can never be instantiated - user-defined constructor required
 #endif
   // The SGI STL version of Assignable requires copy constructor and operator=
-  BOOST_concept(SGIAssignable,(TT))
+  NDNBOOST_concept(SGIAssignable,(TT))
   {
-    BOOST_CONCEPT_USAGE(SGIAssignable) {
+    NDNBOOST_CONCEPT_USAGE(SGIAssignable) {
       TT c(a);
 #if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL
       a = b;              // require assignment operator
@@ -206,9 +206,9 @@
 # pragma warning( pop )
 #endif
 
-  BOOST_concept(Convertible,(X)(Y))
+  NDNBOOST_concept(Convertible,(X)(Y))
   {
-    BOOST_CONCEPT_USAGE(Convertible) {
+    NDNBOOST_CONCEPT_USAGE(Convertible) {
       Y y = x;
       ignore_unused_variable_warning(y);
     }
@@ -231,9 +231,9 @@
     ignore_unused_variable_warning(x);
   }
 
-  BOOST_concept(EqualityComparable,(TT))
+  NDNBOOST_concept(EqualityComparable,(TT))
   {
-    BOOST_CONCEPT_USAGE(EqualityComparable) {
+    NDNBOOST_CONCEPT_USAGE(EqualityComparable) {
       require_boolean_expr(a == b);
       require_boolean_expr(a != b);
     }
@@ -241,9 +241,9 @@
     TT a, b;
   };
 
-  BOOST_concept(LessThanComparable,(TT))
+  NDNBOOST_concept(LessThanComparable,(TT))
   {
-    BOOST_CONCEPT_USAGE(LessThanComparable) {
+    NDNBOOST_CONCEPT_USAGE(LessThanComparable) {
       require_boolean_expr(a < b);
     }
    private:
@@ -251,9 +251,9 @@
   };
 
   // This is equivalent to SGI STL's LessThanComparable.
-  BOOST_concept(Comparable,(TT))
+  NDNBOOST_concept(Comparable,(TT))
   {
-    BOOST_CONCEPT_USAGE(Comparable) {
+    NDNBOOST_CONCEPT_USAGE(Comparable) {
       require_boolean_expr(a < b);
       require_boolean_expr(a > b);
       require_boolean_expr(a <= b);
@@ -263,45 +263,45 @@
     TT a, b;
   };
 
-#define BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(OP,NAME)    \
-  BOOST_concept(NAME, (First)(Second))                          \
+#define NDNBOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(OP,NAME)    \
+  NDNBOOST_concept(NAME, (First)(Second))                          \
   {                                                             \
-      BOOST_CONCEPT_USAGE(NAME) { (void)constraints_(); }                         \
+      NDNBOOST_CONCEPT_USAGE(NAME) { (void)constraints_(); }                         \
      private:                                                   \
         bool constraints_() { return a OP b; }                  \
         First a;                                                \
         Second b;                                               \
   }
 
-#define BOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(OP,NAME)    \
-  BOOST_concept(NAME, (Ret)(First)(Second))                 \
+#define NDNBOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(OP,NAME)    \
+  NDNBOOST_concept(NAME, (Ret)(First)(Second))                 \
   {                                                         \
-      BOOST_CONCEPT_USAGE(NAME) { (void)constraints_(); }                     \
+      NDNBOOST_CONCEPT_USAGE(NAME) { (void)constraints_(); }                     \
   private:                                                  \
       Ret constraints_() { return a OP b; }                 \
       First a;                                              \
       Second b;                                             \
   }
 
-  BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(==, EqualOp);
-  BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(!=, NotEqualOp);
-  BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(<, LessThanOp);
-  BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(<=, LessEqualOp);
-  BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(>, GreaterThanOp);
-  BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(>=, GreaterEqualOp);
+  NDNBOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(==, EqualOp);
+  NDNBOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(!=, NotEqualOp);
+  NDNBOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(<, LessThanOp);
+  NDNBOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(<=, LessEqualOp);
+  NDNBOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(>, GreaterThanOp);
+  NDNBOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(>=, GreaterEqualOp);
 
-  BOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(+, PlusOp);
-  BOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(*, TimesOp);
-  BOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(/, DivideOp);
-  BOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(-, SubtractOp);
-  BOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(%, ModOp);
+  NDNBOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(+, PlusOp);
+  NDNBOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(*, TimesOp);
+  NDNBOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(/, DivideOp);
+  NDNBOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(-, SubtractOp);
+  NDNBOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(%, ModOp);
 
   //===========================================================================
   // Function Object Concepts
 
-  BOOST_concept(Generator,(Func)(Return))
+  NDNBOOST_concept(Generator,(Func)(Return))
   {
-      BOOST_CONCEPT_USAGE(Generator) { test(is_void<Return>()); }
+      NDNBOOST_CONCEPT_USAGE(Generator) { test(is_void<Return>()); }
 
    private:
       void test(ndnboost::mpl::false_)
@@ -319,9 +319,9 @@
       Func f;
   };
 
-  BOOST_concept(UnaryFunction,(Func)(Return)(Arg))
+  NDNBOOST_concept(UnaryFunction,(Func)(Return)(Arg))
   {
-      BOOST_CONCEPT_USAGE(UnaryFunction) { test(is_void<Return>()); }
+      NDNBOOST_CONCEPT_USAGE(UnaryFunction) { test(is_void<Return>()); }
 
    private:
       void test(ndnboost::mpl::false_)
@@ -336,8 +336,8 @@
           f(arg);
       }
 
-#if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \
-                      && BOOST_WORKAROUND(__GNUC__, > 3)))
+#if (NDNBOOST_WORKAROUND(__GNUC__, NDNBOOST_TESTED_AT(4) \
+                      && NDNBOOST_WORKAROUND(__GNUC__, > 3)))
       // Declare a dummy construktor to make gcc happy.
       // It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type.
       // (warning: non-static reference "const double& ndnboost::UnaryFunction<YourClassHere>::arg"
@@ -349,9 +349,9 @@
       Arg arg;
   };
 
-  BOOST_concept(BinaryFunction,(Func)(Return)(First)(Second))
+  NDNBOOST_concept(BinaryFunction,(Func)(Return)(First)(Second))
   {
-      BOOST_CONCEPT_USAGE(BinaryFunction) { test(is_void<Return>()); }
+      NDNBOOST_CONCEPT_USAGE(BinaryFunction) { test(is_void<Return>()); }
    private:
       void test(ndnboost::mpl::false_)
       {
@@ -365,8 +365,8 @@
           f(first,second);
       }
 
-#if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \
-                      && BOOST_WORKAROUND(__GNUC__, > 3)))
+#if (NDNBOOST_WORKAROUND(__GNUC__, NDNBOOST_TESTED_AT(4) \
+                      && NDNBOOST_WORKAROUND(__GNUC__, > 3)))
       // Declare a dummy constructor to make gcc happy.
       // It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type.
       // (warning: non-static reference "const double& ndnboost::BinaryFunction<YourClassHere>::arg"
@@ -379,14 +379,14 @@
       Second second;
   };
 
-  BOOST_concept(UnaryPredicate,(Func)(Arg))
+  NDNBOOST_concept(UnaryPredicate,(Func)(Arg))
   {
-    BOOST_CONCEPT_USAGE(UnaryPredicate) {
+    NDNBOOST_CONCEPT_USAGE(UnaryPredicate) {
       require_boolean_expr(f(arg)); // require operator() returning bool
     }
    private:
-#if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \
-                      && BOOST_WORKAROUND(__GNUC__, > 3)))
+#if (NDNBOOST_WORKAROUND(__GNUC__, NDNBOOST_TESTED_AT(4) \
+                      && NDNBOOST_WORKAROUND(__GNUC__, > 3)))
       // Declare a dummy constructor to make gcc happy.
       // It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type.
       // (warning: non-static reference "const double& ndnboost::UnaryPredicate<YourClassHere>::arg"
@@ -398,14 +398,14 @@
     Arg arg;
   };
 
-  BOOST_concept(BinaryPredicate,(Func)(First)(Second))
+  NDNBOOST_concept(BinaryPredicate,(Func)(First)(Second))
   {
-    BOOST_CONCEPT_USAGE(BinaryPredicate) {
+    NDNBOOST_CONCEPT_USAGE(BinaryPredicate) {
       require_boolean_expr(f(a, b)); // require operator() returning bool
     }
    private:
-#if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \
-                      && BOOST_WORKAROUND(__GNUC__, > 3)))
+#if (NDNBOOST_WORKAROUND(__GNUC__, NDNBOOST_TESTED_AT(4) \
+                      && NDNBOOST_WORKAROUND(__GNUC__, > 3)))
       // Declare a dummy constructor to make gcc happy.
       // It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type.
       // (warning: non-static reference "const double& ndnboost::BinaryPredicate<YourClassHere>::arg"
@@ -418,10 +418,10 @@
   };
 
   // use this when functor is used inside a container class like std::set
-  BOOST_concept(Const_BinaryPredicate,(Func)(First)(Second))
+  NDNBOOST_concept(Const_BinaryPredicate,(Func)(First)(Second))
     : BinaryPredicate<Func, First, Second>
   {
-    BOOST_CONCEPT_USAGE(Const_BinaryPredicate) {
+    NDNBOOST_CONCEPT_USAGE(Const_BinaryPredicate) {
       const_constraints(f);
     }
    private:
@@ -429,8 +429,8 @@
       // operator() must be a const member function
       require_boolean_expr(fun(a, b));
     }
-#if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \
-                      && BOOST_WORKAROUND(__GNUC__, > 3)))
+#if (NDNBOOST_WORKAROUND(__GNUC__, NDNBOOST_TESTED_AT(4) \
+                      && NDNBOOST_WORKAROUND(__GNUC__, > 3)))
       // Declare a dummy constructor to make gcc happy.
       // It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type.
       // (warning: non-static reference "const double& ndnboost::Const_BinaryPredicate<YourClassHere>::arg"
@@ -443,18 +443,18 @@
     Second b;
   };
 
-  BOOST_concept(AdaptableGenerator,(Func)(Return))
+  NDNBOOST_concept(AdaptableGenerator,(Func)(Return))
     : Generator<Func, typename Func::result_type>
   {
       typedef typename Func::result_type result_type;
 
-      BOOST_CONCEPT_USAGE(AdaptableGenerator)
+      NDNBOOST_CONCEPT_USAGE(AdaptableGenerator)
       {
-          BOOST_CONCEPT_ASSERT((Convertible<result_type, Return>));
+          NDNBOOST_CONCEPT_ASSERT((Convertible<result_type, Return>));
       }
   };
 
-  BOOST_concept(AdaptableUnaryFunction,(Func)(Return)(Arg))
+  NDNBOOST_concept(AdaptableUnaryFunction,(Func)(Return)(Arg))
     : UnaryFunction<Func, typename Func::result_type, typename Func::argument_type>
   {
       typedef typename Func::argument_type argument_type;
@@ -462,12 +462,12 @@
 
       ~AdaptableUnaryFunction()
       {
-          BOOST_CONCEPT_ASSERT((Convertible<result_type, Return>));
-          BOOST_CONCEPT_ASSERT((Convertible<Arg, argument_type>));
+          NDNBOOST_CONCEPT_ASSERT((Convertible<result_type, Return>));
+          NDNBOOST_CONCEPT_ASSERT((Convertible<Arg, argument_type>));
       }
   };
 
-  BOOST_concept(AdaptableBinaryFunction,(Func)(Return)(First)(Second))
+  NDNBOOST_concept(AdaptableBinaryFunction,(Func)(Return)(First)(Second))
     : BinaryFunction<
           Func
         , typename Func::result_type
@@ -481,19 +481,19 @@
 
       ~AdaptableBinaryFunction()
       {
-          BOOST_CONCEPT_ASSERT((Convertible<result_type, Return>));
-          BOOST_CONCEPT_ASSERT((Convertible<First, first_argument_type>));
-          BOOST_CONCEPT_ASSERT((Convertible<Second, second_argument_type>));
+          NDNBOOST_CONCEPT_ASSERT((Convertible<result_type, Return>));
+          NDNBOOST_CONCEPT_ASSERT((Convertible<First, first_argument_type>));
+          NDNBOOST_CONCEPT_ASSERT((Convertible<Second, second_argument_type>));
       }
   };
 
-  BOOST_concept(AdaptablePredicate,(Func)(Arg))
+  NDNBOOST_concept(AdaptablePredicate,(Func)(Arg))
     : UnaryPredicate<Func, Arg>
     , AdaptableUnaryFunction<Func, bool, Arg>
   {
   };
 
-  BOOST_concept(AdaptableBinaryPredicate,(Func)(First)(Second))
+  NDNBOOST_concept(AdaptableBinaryPredicate,(Func)(First)(Second))
     : BinaryPredicate<Func, First, Second>
     , AdaptableBinaryFunction<Func, bool, First, Second>
   {
@@ -502,7 +502,7 @@
   //===========================================================================
   // Iterator Concepts
 
-  BOOST_concept(InputIterator,(TT))
+  NDNBOOST_concept(InputIterator,(TT))
     : Assignable<TT>
     , EqualityComparable<TT>
   {
@@ -512,10 +512,10 @@
       typedef typename ndnboost::detail::iterator_traits<TT>::pointer pointer;
       typedef typename ndnboost::detail::iterator_traits<TT>::iterator_category iterator_category;
 
-      BOOST_CONCEPT_USAGE(InputIterator)
+      NDNBOOST_CONCEPT_USAGE(InputIterator)
       {
-        BOOST_CONCEPT_ASSERT((SignedInteger<difference_type>));
-        BOOST_CONCEPT_ASSERT((Convertible<iterator_category, std::input_iterator_tag>));
+        NDNBOOST_CONCEPT_ASSERT((SignedInteger<difference_type>));
+        NDNBOOST_CONCEPT_ASSERT((Convertible<iterator_category, std::input_iterator_tag>));
 
         TT j(i);
         (void)*i;           // require dereference operator
@@ -526,10 +526,10 @@
     TT i;
   };
 
-  BOOST_concept(OutputIterator,(TT)(ValueT))
+  NDNBOOST_concept(OutputIterator,(TT)(ValueT))
     : Assignable<TT>
   {
-    BOOST_CONCEPT_USAGE(OutputIterator) {
+    NDNBOOST_CONCEPT_USAGE(OutputIterator) {
 
       ++i;                // require preincrement operator
       i++;                // require postincrement operator
@@ -540,13 +540,13 @@
     ValueT t;
   };
 
-  BOOST_concept(ForwardIterator,(TT))
+  NDNBOOST_concept(ForwardIterator,(TT))
     : InputIterator<TT>
   {
-      BOOST_CONCEPT_USAGE(ForwardIterator)
+      NDNBOOST_CONCEPT_USAGE(ForwardIterator)
       {
-          BOOST_CONCEPT_ASSERT((Convertible<
-              BOOST_DEDUCED_TYPENAME ForwardIterator::iterator_category
+          NDNBOOST_CONCEPT_ASSERT((Convertible<
+              NDNBOOST_DEDUCED_TYPENAME ForwardIterator::iterator_category
             , std::forward_iterator_tag
           >));
 
@@ -558,23 +558,23 @@
       TT i;
   };
 
-  BOOST_concept(Mutable_ForwardIterator,(TT))
+  NDNBOOST_concept(Mutable_ForwardIterator,(TT))
     : ForwardIterator<TT>
   {
-      BOOST_CONCEPT_USAGE(Mutable_ForwardIterator) {
+      NDNBOOST_CONCEPT_USAGE(Mutable_ForwardIterator) {
         *i++ = *i;         // require postincrement and assignment
       }
    private:
       TT i;
   };
 
-  BOOST_concept(BidirectionalIterator,(TT))
+  NDNBOOST_concept(BidirectionalIterator,(TT))
     : ForwardIterator<TT>
   {
-      BOOST_CONCEPT_USAGE(BidirectionalIterator)
+      NDNBOOST_CONCEPT_USAGE(BidirectionalIterator)
       {
-          BOOST_CONCEPT_ASSERT((Convertible<
-              BOOST_DEDUCED_TYPENAME BidirectionalIterator::iterator_category
+          NDNBOOST_CONCEPT_ASSERT((Convertible<
+              NDNBOOST_DEDUCED_TYPENAME BidirectionalIterator::iterator_category
             , std::bidirectional_iterator_tag
           >));
 
@@ -585,11 +585,11 @@
       TT i;
   };
 
-  BOOST_concept(Mutable_BidirectionalIterator,(TT))
+  NDNBOOST_concept(Mutable_BidirectionalIterator,(TT))
     : BidirectionalIterator<TT>
     , Mutable_ForwardIterator<TT>
   {
-      BOOST_CONCEPT_USAGE(Mutable_BidirectionalIterator)
+      NDNBOOST_CONCEPT_USAGE(Mutable_BidirectionalIterator)
       {
           *i-- = *i;                  // require postdecrement and assignment
       }
@@ -597,14 +597,14 @@
       TT i;
   };
 
-  BOOST_concept(RandomAccessIterator,(TT))
+  NDNBOOST_concept(RandomAccessIterator,(TT))
     : BidirectionalIterator<TT>
     , Comparable<TT>
   {
-      BOOST_CONCEPT_USAGE(RandomAccessIterator)
+      NDNBOOST_CONCEPT_USAGE(RandomAccessIterator)
       {
-          BOOST_CONCEPT_ASSERT((Convertible<
-              BOOST_DEDUCED_TYPENAME BidirectionalIterator<TT>::iterator_category
+          NDNBOOST_CONCEPT_ASSERT((Convertible<
+              NDNBOOST_DEDUCED_TYPENAME BidirectionalIterator<TT>::iterator_category
             , std::random_access_iterator_tag
           >));
 
@@ -622,11 +622,11 @@
       typename ndnboost::detail::iterator_traits<TT>::difference_type n;
   };
 
-  BOOST_concept(Mutable_RandomAccessIterator,(TT))
+  NDNBOOST_concept(Mutable_RandomAccessIterator,(TT))
     : RandomAccessIterator<TT>
     , Mutable_BidirectionalIterator<TT>
   {
-      BOOST_CONCEPT_USAGE(Mutable_RandomAccessIterator)
+      NDNBOOST_CONCEPT_USAGE(Mutable_RandomAccessIterator)
       {
           i[n] = *i;                  // require element access and assignment
       }
@@ -638,7 +638,7 @@
   //===========================================================================
   // Container s
 
-  BOOST_concept(Container,(C))
+  NDNBOOST_concept(Container,(C))
     : Assignable<C>
   {
     typedef typename C::value_type value_type;
@@ -648,9 +648,9 @@
     typedef typename C::const_pointer const_pointer;
     typedef typename C::const_iterator const_iterator;
 
-      BOOST_CONCEPT_USAGE(Container)
+      NDNBOOST_CONCEPT_USAGE(Container)
       {
-          BOOST_CONCEPT_ASSERT((InputIterator<const_iterator>));
+          NDNBOOST_CONCEPT_ASSERT((InputIterator<const_iterator>));
           const_constraints(c);
       }
 
@@ -668,19 +668,19 @@
       size_type n;
   };
 
-  BOOST_concept(Mutable_Container,(C))
+  NDNBOOST_concept(Mutable_Container,(C))
     : Container<C>
   {
       typedef typename C::reference reference;
       typedef typename C::iterator iterator;
       typedef typename C::pointer pointer;
 
-      BOOST_CONCEPT_USAGE(Mutable_Container)
+      NDNBOOST_CONCEPT_USAGE(Mutable_Container)
       {
-          BOOST_CONCEPT_ASSERT((
+          NDNBOOST_CONCEPT_ASSERT((
                Assignable<typename Mutable_Container::value_type>));
 
-          BOOST_CONCEPT_ASSERT((InputIterator<iterator>));
+          NDNBOOST_CONCEPT_ASSERT((InputIterator<iterator>));
 
           i = c.begin();
           i = c.end();
@@ -692,45 +692,45 @@
       C c, c2;
   };
 
-  BOOST_concept(ForwardContainer,(C))
+  NDNBOOST_concept(ForwardContainer,(C))
     : Container<C>
   {
-      BOOST_CONCEPT_USAGE(ForwardContainer)
+      NDNBOOST_CONCEPT_USAGE(ForwardContainer)
       {
-          BOOST_CONCEPT_ASSERT((
+          NDNBOOST_CONCEPT_ASSERT((
                ForwardIterator<
                     typename ForwardContainer::const_iterator
                >));
       }
   };
 
-  BOOST_concept(Mutable_ForwardContainer,(C))
+  NDNBOOST_concept(Mutable_ForwardContainer,(C))
     : ForwardContainer<C>
     , Mutable_Container<C>
   {
-      BOOST_CONCEPT_USAGE(Mutable_ForwardContainer)
+      NDNBOOST_CONCEPT_USAGE(Mutable_ForwardContainer)
       {
-          BOOST_CONCEPT_ASSERT((
+          NDNBOOST_CONCEPT_ASSERT((
                Mutable_ForwardIterator<
                    typename Mutable_ForwardContainer::iterator
                >));
       }
   };
 
-  BOOST_concept(ReversibleContainer,(C))
+  NDNBOOST_concept(ReversibleContainer,(C))
     : ForwardContainer<C>
   {
       typedef typename
         C::const_reverse_iterator
       const_reverse_iterator;
 
-      BOOST_CONCEPT_USAGE(ReversibleContainer)
+      NDNBOOST_CONCEPT_USAGE(ReversibleContainer)
       {
-          BOOST_CONCEPT_ASSERT((
+          NDNBOOST_CONCEPT_ASSERT((
               BidirectionalIterator<
                   typename ReversibleContainer::const_iterator>));
 
-          BOOST_CONCEPT_ASSERT((BidirectionalIterator<const_reverse_iterator>));
+          NDNBOOST_CONCEPT_ASSERT((BidirectionalIterator<const_reverse_iterator>));
 
           const_constraints(c);
       }
@@ -743,17 +743,17 @@
       C c;
   };
 
-  BOOST_concept(Mutable_ReversibleContainer,(C))
+  NDNBOOST_concept(Mutable_ReversibleContainer,(C))
     : Mutable_ForwardContainer<C>
     , ReversibleContainer<C>
   {
       typedef typename C::reverse_iterator reverse_iterator;
 
-      BOOST_CONCEPT_USAGE(Mutable_ReversibleContainer)
+      NDNBOOST_CONCEPT_USAGE(Mutable_ReversibleContainer)
       {
           typedef typename Mutable_ForwardContainer<C>::iterator iterator;
-          BOOST_CONCEPT_ASSERT((Mutable_BidirectionalIterator<iterator>));
-          BOOST_CONCEPT_ASSERT((Mutable_BidirectionalIterator<reverse_iterator>));
+          NDNBOOST_CONCEPT_ASSERT((Mutable_BidirectionalIterator<iterator>));
+          NDNBOOST_CONCEPT_ASSERT((Mutable_BidirectionalIterator<reverse_iterator>));
 
           reverse_iterator i = c.rbegin();
           i = c.rend();
@@ -762,15 +762,15 @@
       C c;
   };
 
-  BOOST_concept(RandomAccessContainer,(C))
+  NDNBOOST_concept(RandomAccessContainer,(C))
     : ReversibleContainer<C>
   {
       typedef typename C::size_type size_type;
       typedef typename C::const_reference const_reference;
 
-      BOOST_CONCEPT_USAGE(RandomAccessContainer)
+      NDNBOOST_CONCEPT_USAGE(RandomAccessContainer)
       {
-          BOOST_CONCEPT_ASSERT((
+          NDNBOOST_CONCEPT_ASSERT((
               RandomAccessIterator<
                   typename RandomAccessContainer::const_iterator
               >));
@@ -788,17 +788,17 @@
       size_type n;
   };
 
-  BOOST_concept(Mutable_RandomAccessContainer,(C))
+  NDNBOOST_concept(Mutable_RandomAccessContainer,(C))
     : Mutable_ReversibleContainer<C>
     , RandomAccessContainer<C>
   {
    private:
       typedef Mutable_RandomAccessContainer self;
    public:
-      BOOST_CONCEPT_USAGE(Mutable_RandomAccessContainer)
+      NDNBOOST_CONCEPT_USAGE(Mutable_RandomAccessContainer)
       {
-          BOOST_CONCEPT_ASSERT((Mutable_RandomAccessIterator<typename self::iterator>));
-          BOOST_CONCEPT_ASSERT((Mutable_RandomAccessIterator<typename self::reverse_iterator>));
+          NDNBOOST_CONCEPT_ASSERT((Mutable_RandomAccessIterator<typename self::iterator>));
+          NDNBOOST_CONCEPT_ASSERT((Mutable_RandomAccessIterator<typename self::reverse_iterator>));
 
           typename self::reference r = c[i];
           ignore_unused_variable_warning(r);
@@ -810,14 +810,14 @@
   };
 
   // A Sequence is inherently mutable
-  BOOST_concept(Sequence,(S))
+  NDNBOOST_concept(Sequence,(S))
     : Mutable_ForwardContainer<S>
       // Matt Austern's book puts DefaultConstructible here, the C++
       // standard places it in Container --JGS
       // ... so why aren't we following the standard?  --DWA
     , DefaultConstructible<S>
   {
-      BOOST_CONCEPT_USAGE(Sequence)
+      NDNBOOST_CONCEPT_USAGE(Sequence)
       {
           S
               c(n),
@@ -851,10 +851,10 @@
       typename S::iterator p, q;
   };
 
-  BOOST_concept(FrontInsertionSequence,(S))
+  NDNBOOST_concept(FrontInsertionSequence,(S))
     : Sequence<S>
   {
-      BOOST_CONCEPT_USAGE(FrontInsertionSequence)
+      NDNBOOST_CONCEPT_USAGE(FrontInsertionSequence)
       {
           c.push_front(t);
           c.pop_front();
@@ -864,10 +864,10 @@
       typename S::value_type t;
   };
 
-  BOOST_concept(BackInsertionSequence,(S))
+  NDNBOOST_concept(BackInsertionSequence,(S))
     : Sequence<S>
   {
-      BOOST_CONCEPT_USAGE(BackInsertionSequence)
+      NDNBOOST_CONCEPT_USAGE(BackInsertionSequence)
       {
           c.push_back(t);
           c.pop_back();
@@ -885,7 +885,7 @@
       typename S::value_type t;
   };
 
-  BOOST_concept(AssociativeContainer,(C))
+  NDNBOOST_concept(AssociativeContainer,(C))
     : ForwardContainer<C>
     , DefaultConstructible<C>
   {
@@ -894,7 +894,7 @@
       typedef typename C::value_compare value_compare;
       typedef typename C::iterator iterator;
 
-      BOOST_CONCEPT_USAGE(AssociativeContainer)
+      NDNBOOST_CONCEPT_USAGE(AssociativeContainer)
       {
           i = c.find(k);
           r = c.equal_range(k);
@@ -902,10 +902,10 @@
           c.erase(i);
           c.erase(r.first, r.second);
           const_constraints(c);
-          BOOST_CONCEPT_ASSERT((BinaryPredicate<key_compare,key_type,key_type>));
+          NDNBOOST_CONCEPT_ASSERT((BinaryPredicate<key_compare,key_type,key_type>));
 
           typedef typename AssociativeContainer::value_type value_type_;
-          BOOST_CONCEPT_ASSERT((BinaryPredicate<value_compare,value_type_,value_type_>));
+          NDNBOOST_CONCEPT_ASSERT((BinaryPredicate<value_compare,value_type_,value_type_>));
       }
 
       // Redundant with the base concept, but it helps below.
@@ -927,10 +927,10 @@
       typename C::size_type n;
   };
 
-  BOOST_concept(UniqueAssociativeContainer,(C))
+  NDNBOOST_concept(UniqueAssociativeContainer,(C))
     : AssociativeContainer<C>
   {
-      BOOST_CONCEPT_USAGE(UniqueAssociativeContainer)
+      NDNBOOST_CONCEPT_USAGE(UniqueAssociativeContainer)
       {
           C c(first, last);
 
@@ -945,10 +945,10 @@
       typename C::value_type* first, *last;
   };
 
-  BOOST_concept(MultipleAssociativeContainer,(C))
+  NDNBOOST_concept(MultipleAssociativeContainer,(C))
     : AssociativeContainer<C>
   {
-      BOOST_CONCEPT_USAGE(MultipleAssociativeContainer)
+      NDNBOOST_CONCEPT_USAGE(MultipleAssociativeContainer)
       {
           C c(first, last);
 
@@ -964,35 +964,35 @@
       typename C::value_type* first, *last;
   };
 
-  BOOST_concept(SimpleAssociativeContainer,(C))
+  NDNBOOST_concept(SimpleAssociativeContainer,(C))
     : AssociativeContainer<C>
   {
-      BOOST_CONCEPT_USAGE(SimpleAssociativeContainer)
+      NDNBOOST_CONCEPT_USAGE(SimpleAssociativeContainer)
       {
           typedef typename C::key_type key_type;
           typedef typename C::value_type value_type;
-          BOOST_MPL_ASSERT((ndnboost::is_same<key_type,value_type>));
+          NDNBOOST_MPL_ASSERT((ndnboost::is_same<key_type,value_type>));
       }
   };
 
-  BOOST_concept(PairAssociativeContainer,(C))
+  NDNBOOST_concept(PairAssociativeContainer,(C))
     : AssociativeContainer<C>
   {
-      BOOST_CONCEPT_USAGE(PairAssociativeContainer)
+      NDNBOOST_CONCEPT_USAGE(PairAssociativeContainer)
       {
           typedef typename C::key_type key_type;
           typedef typename C::value_type value_type;
           typedef typename C::mapped_type mapped_type;
           typedef std::pair<const key_type, mapped_type> required_value_type;
-          BOOST_MPL_ASSERT((ndnboost::is_same<value_type,required_value_type>));
+          NDNBOOST_MPL_ASSERT((ndnboost::is_same<value_type,required_value_type>));
       }
   };
 
-  BOOST_concept(SortedAssociativeContainer,(C))
+  NDNBOOST_concept(SortedAssociativeContainer,(C))
     : AssociativeContainer<C>
     , ReversibleContainer<C>
   {
-      BOOST_CONCEPT_USAGE(SortedAssociativeContainer)
+      NDNBOOST_CONCEPT_USAGE(SortedAssociativeContainer)
       {
           C
               c(kc),
@@ -1039,9 +1039,9 @@
 
   // HashedAssociativeContainer
 
-  BOOST_concept(Collection,(C))
+  NDNBOOST_concept(Collection,(C))
   {
-      BOOST_CONCEPT_USAGE(Collection)
+      NDNBOOST_CONCEPT_USAGE(Collection)
       {
         ndnboost::function_requires<ndnboost::InputIteratorConcept<iterator> >();
         ndnboost::function_requires<ndnboost::InputIteratorConcept<const_iterator> >();
@@ -1079,5 +1079,5 @@
 
 # include <ndnboost/concept/detail/concept_undef.hpp>
 
-#endif // BOOST_CONCEPT_CHECKS_HPP
+#endif // NDNBOOST_CONCEPT_CHECKS_HPP
 
diff --git a/include/ndnboost/config.hpp b/include/ndnboost/config.hpp
index eeaf79f..0b38d4b 100644
--- a/include/ndnboost/config.hpp
+++ b/include/ndnboost/config.hpp
@@ -14,49 +14,49 @@
 //           DO NOT MODIFY THIS FILE!
 //
 
-#ifndef BOOST_CONFIG_HPP
-#define BOOST_CONFIG_HPP
+#ifndef NDNBOOST_CONFIG_HPP
+#define NDNBOOST_CONFIG_HPP
 
 // if we don't have a user config, then use the default location:
-#if !defined(BOOST_USER_CONFIG) && !defined(BOOST_NO_USER_CONFIG)
-#  define BOOST_USER_CONFIG <ndnboost/config/user.hpp>
+#if !defined(NDNBOOST_USER_CONFIG) && !defined(NDNBOOST_NO_USER_CONFIG)
+#  define NDNBOOST_USER_CONFIG <ndnboost/config/user.hpp>
 #endif
 // include it first:
-#ifdef BOOST_USER_CONFIG
-#  include BOOST_USER_CONFIG
+#ifdef NDNBOOST_USER_CONFIG
+#  include NDNBOOST_USER_CONFIG
 #endif
 
 // if we don't have a compiler config set, try and find one:
-#if !defined(BOOST_COMPILER_CONFIG) && !defined(BOOST_NO_COMPILER_CONFIG) && !defined(BOOST_NO_CONFIG)
+#if !defined(NDNBOOST_COMPILER_CONFIG) && !defined(NDNBOOST_NO_COMPILER_CONFIG) && !defined(NDNBOOST_NO_CONFIG)
 #  include <ndnboost/config/select_compiler_config.hpp>
 #endif
 // if we have a compiler config, include it now:
-#ifdef BOOST_COMPILER_CONFIG
-#  include BOOST_COMPILER_CONFIG
+#ifdef NDNBOOST_COMPILER_CONFIG
+#  include NDNBOOST_COMPILER_CONFIG
 #endif
 
 // if we don't have a std library config set, try and find one:
-#if !defined(BOOST_STDLIB_CONFIG) && !defined(BOOST_NO_STDLIB_CONFIG) && !defined(BOOST_NO_CONFIG) && defined(__cplusplus)
+#if !defined(NDNBOOST_STDLIB_CONFIG) && !defined(NDNBOOST_NO_STDLIB_CONFIG) && !defined(NDNBOOST_NO_CONFIG) && defined(__cplusplus)
 #  include <ndnboost/config/select_stdlib_config.hpp>
 #endif
 // if we have a std library config, include it now:
-#ifdef BOOST_STDLIB_CONFIG
-#  include BOOST_STDLIB_CONFIG
+#ifdef NDNBOOST_STDLIB_CONFIG
+#  include NDNBOOST_STDLIB_CONFIG
 #endif
 
 // if we don't have a platform config set, try and find one:
-#if !defined(BOOST_PLATFORM_CONFIG) && !defined(BOOST_NO_PLATFORM_CONFIG) && !defined(BOOST_NO_CONFIG)
+#if !defined(NDNBOOST_PLATFORM_CONFIG) && !defined(NDNBOOST_NO_PLATFORM_CONFIG) && !defined(NDNBOOST_NO_CONFIG)
 #  include <ndnboost/config/select_platform_config.hpp>
 #endif
 // if we have a platform config, include it now:
-#ifdef BOOST_PLATFORM_CONFIG
-#  include BOOST_PLATFORM_CONFIG
+#ifdef NDNBOOST_PLATFORM_CONFIG
+#  include NDNBOOST_PLATFORM_CONFIG
 #endif
 
 // get config suffix code:
 #include <ndnboost/config/suffix.hpp>
 
-#endif  // BOOST_CONFIG_HPP
+#endif  // NDNBOOST_CONFIG_HPP
 
 
 
diff --git a/include/ndnboost/config/abi_prefix.hpp b/include/ndnboost/config/abi_prefix.hpp
index 4f70b1b..f1299ed 100644
--- a/include/ndnboost/config/abi_prefix.hpp
+++ b/include/ndnboost/config/abi_prefix.hpp
@@ -6,8 +6,8 @@
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt).
 
-#ifndef BOOST_CONFIG_ABI_PREFIX_HPP
-# define BOOST_CONFIG_ABI_PREFIX_HPP
+#ifndef NDNBOOST_CONFIG_ABI_PREFIX_HPP
+# define NDNBOOST_CONFIG_ABI_PREFIX_HPP
 #else
 # error double inclusion of header ndnboost/config/abi_prefix.hpp is an error
 #endif
@@ -15,8 +15,8 @@
 #include <ndnboost/config.hpp>
 
 // this must occur after all other includes and before any code appears:
-#ifdef BOOST_HAS_ABI_HEADERS
-#  include BOOST_ABI_PREFIX
+#ifdef NDNBOOST_HAS_ABI_HEADERS
+#  include NDNBOOST_ABI_PREFIX
 #endif
 
 #if defined( __BORLANDC__ )
diff --git a/include/ndnboost/config/abi_suffix.hpp b/include/ndnboost/config/abi_suffix.hpp
index 054843c..9d65b83 100644
--- a/include/ndnboost/config/abi_suffix.hpp
+++ b/include/ndnboost/config/abi_suffix.hpp
@@ -9,15 +9,15 @@
 // This header should be #included AFTER code that was preceded by a #include
 // <ndnboost/config/abi_prefix.hpp>.
 
-#ifndef BOOST_CONFIG_ABI_PREFIX_HPP
+#ifndef NDNBOOST_CONFIG_ABI_PREFIX_HPP
 # error Header ndnboost/config/abi_suffix.hpp must only be used after ndnboost/config/abi_prefix.hpp
 #else
-# undef BOOST_CONFIG_ABI_PREFIX_HPP
+# undef NDNBOOST_CONFIG_ABI_PREFIX_HPP
 #endif
 
 // the suffix header occurs after all of our code:
-#ifdef BOOST_HAS_ABI_HEADERS
-#  include BOOST_ABI_SUFFIX
+#ifdef NDNBOOST_HAS_ABI_HEADERS
+#  include NDNBOOST_ABI_SUFFIX
 #endif
 
 #if defined( __BORLANDC__ )
diff --git a/include/ndnboost/config/auto_link.hpp b/include/ndnboost/config/auto_link.hpp
index 002bfb9..95cb4ab 100644
--- a/include/ndnboost/config/auto_link.hpp
+++ b/include/ndnboost/config/auto_link.hpp
@@ -17,15 +17,15 @@
 
 Before including this header you must define one or more of define the following macros:
 
-BOOST_LIB_NAME:           Required: A string containing the basename of the library,
+NDNBOOST_LIB_NAME:           Required: A string containing the basename of the library,
                           for example boost_regex.
-BOOST_LIB_TOOLSET:        Optional: the base name of the toolset.
-BOOST_DYN_LINK:           Optional: when set link to dll rather than static library.
-BOOST_LIB_DIAGNOSTIC:     Optional: when set the header will print out the name
+NDNBOOST_LIB_TOOLSET:        Optional: the base name of the toolset.
+NDNBOOST_DYN_LINK:           Optional: when set link to dll rather than static library.
+NDNBOOST_LIB_DIAGNOSTIC:     Optional: when set the header will print out the name
                           of the library selected (useful for debugging).
-BOOST_AUTO_LINK_NOMANGLE: Specifies that we should link to BOOST_LIB_NAME.lib,
+NDNBOOST_AUTO_LINK_NOMANGLE: Specifies that we should link to NDNBOOST_LIB_NAME.lib,
                           rather than a mangled-name version.
-BOOST_AUTO_LINK_TAGGED:   Specifies that we link to libraries built with the --layout=tagged option.
+NDNBOOST_AUTO_LINK_TAGGED:   Specifies that we link to libraries built with the --layout=tagged option.
                           This is essentially the same as the default name-mangled version, but without
                           the compiler name and version, or the Boost version.  Just the build options.
 
@@ -39,26 +39,26 @@
 selected here, the name of the lib is selected according to the following
 formula:
 
-BOOST_LIB_PREFIX
-   + BOOST_LIB_NAME
+NDNBOOST_LIB_PREFIX
+   + NDNBOOST_LIB_NAME
    + "_"
-   + BOOST_LIB_TOOLSET
-   + BOOST_LIB_THREAD_OPT
-   + BOOST_LIB_RT_OPT
+   + NDNBOOST_LIB_TOOLSET
+   + NDNBOOST_LIB_THREAD_OPT
+   + NDNBOOST_LIB_RT_OPT
    "-"
-   + BOOST_LIB_VERSION
+   + NDNBOOST_LIB_VERSION
 
 These are defined as:
 
-BOOST_LIB_PREFIX:     "lib" for static libraries otherwise "".
+NDNBOOST_LIB_PREFIX:     "lib" for static libraries otherwise "".
 
-BOOST_LIB_NAME:       The base name of the lib ( for example boost_regex).
+NDNBOOST_LIB_NAME:       The base name of the lib ( for example boost_regex).
 
-BOOST_LIB_TOOLSET:    The compiler toolset name (vc6, vc7, bcb5 etc).
+NDNBOOST_LIB_TOOLSET:    The compiler toolset name (vc6, vc7, bcb5 etc).
 
-BOOST_LIB_THREAD_OPT: "-mt" for multithread builds, otherwise nothing.
+NDNBOOST_LIB_THREAD_OPT: "-mt" for multithread builds, otherwise nothing.
 
-BOOST_LIB_RT_OPT:     A suffix that indicates the runtime library used,
+NDNBOOST_LIB_RT_OPT:     A suffix that indicates the runtime library used,
                       contains one or more of the following letters after
                       a hyphen:
 
@@ -69,37 +69,37 @@
                       p      STLport build.
                       n      STLport build without its IOStreams.
 
-BOOST_LIB_VERSION:    The Boost version, in the form x_y, for Boost version x.y.
+NDNBOOST_LIB_VERSION:    The Boost version, in the form x_y, for Boost version x.y.
 
 
 ***************************************************************************/
 
 #ifdef __cplusplus
-#  ifndef BOOST_CONFIG_HPP
+#  ifndef NDNBOOST_CONFIG_HPP
 #     include <ndnboost/config.hpp>
 #  endif
 #elif defined(_MSC_VER) && !defined(__MWERKS__) && !defined(__EDG_VERSION__)
 //
 // C language compatability (no, honestly)
 //
-#  define BOOST_MSVC _MSC_VER
-#  define BOOST_STRINGIZE(X) BOOST_DO_STRINGIZE(X)
-#  define BOOST_DO_STRINGIZE(X) #X
+#  define NDNBOOST_MSVC _MSC_VER
+#  define NDNBOOST_STRINGIZE(X) NDNBOOST_DO_STRINGIZE(X)
+#  define NDNBOOST_DO_STRINGIZE(X) #X
 #endif
 //
 // Only include what follows for known and supported compilers:
 //
-#if defined(BOOST_MSVC) \
+#if defined(NDNBOOST_MSVC) \
     || defined(__BORLANDC__) \
     || (defined(__MWERKS__) && defined(_WIN32) && (__MWERKS__ >= 0x3000)) \
     || (defined(__ICL) && defined(_MSC_EXTENSIONS) && (_MSC_VER >= 1200))
 
-#ifndef BOOST_VERSION_HPP
+#ifndef NDNBOOST_VERSION_HPP
 #  include <ndnboost/version.hpp>
 #endif
 
-#ifndef BOOST_LIB_NAME
-#  error "Macro BOOST_LIB_NAME not set (internal error)"
+#ifndef NDNBOOST_LIB_NAME
+#  error "Macro NDNBOOST_LIB_NAME not set (internal error)"
 #endif
 
 //
@@ -113,79 +113,79 @@
 //
 // select toolset if not defined already:
 //
-#ifndef BOOST_LIB_TOOLSET
-#  if defined(BOOST_MSVC) && (BOOST_MSVC < 1200)
+#ifndef NDNBOOST_LIB_TOOLSET
+#  if defined(NDNBOOST_MSVC) && (NDNBOOST_MSVC < 1200)
     // Note: no compilers before 1200 are supported
-#  elif defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
+#  elif defined(NDNBOOST_MSVC) && (NDNBOOST_MSVC < 1300)
 
 #    ifdef UNDER_CE
        // eVC4:
-#      define BOOST_LIB_TOOLSET "evc4"
+#      define NDNBOOST_LIB_TOOLSET "evc4"
 #    else
        // vc6:
-#      define BOOST_LIB_TOOLSET "vc6"
+#      define NDNBOOST_LIB_TOOLSET "vc6"
 #    endif
 
-#  elif defined(BOOST_MSVC) && (BOOST_MSVC < 1310)
+#  elif defined(NDNBOOST_MSVC) && (NDNBOOST_MSVC < 1310)
 
      // vc7:
-#    define BOOST_LIB_TOOLSET "vc7"
+#    define NDNBOOST_LIB_TOOLSET "vc7"
 
-#  elif defined(BOOST_MSVC) && (BOOST_MSVC < 1400)
+#  elif defined(NDNBOOST_MSVC) && (NDNBOOST_MSVC < 1400)
 
      // vc71:
-#    define BOOST_LIB_TOOLSET "vc71"
+#    define NDNBOOST_LIB_TOOLSET "vc71"
 
-#  elif defined(BOOST_MSVC) && (BOOST_MSVC < 1500)
+#  elif defined(NDNBOOST_MSVC) && (NDNBOOST_MSVC < 1500)
 
      // vc80:
-#    define BOOST_LIB_TOOLSET "vc80"
+#    define NDNBOOST_LIB_TOOLSET "vc80"
 
-#  elif defined(BOOST_MSVC) && (BOOST_MSVC < 1600)
+#  elif defined(NDNBOOST_MSVC) && (NDNBOOST_MSVC < 1600)
 
      // vc90:
-#    define BOOST_LIB_TOOLSET "vc90"
+#    define NDNBOOST_LIB_TOOLSET "vc90"
 
-#  elif defined(BOOST_MSVC) && (BOOST_MSVC < 1700)
+#  elif defined(NDNBOOST_MSVC) && (NDNBOOST_MSVC < 1700)
 
      // vc10:
-#    define BOOST_LIB_TOOLSET "vc100"
+#    define NDNBOOST_LIB_TOOLSET "vc100"
 
-#  elif defined(BOOST_MSVC)
+#  elif defined(NDNBOOST_MSVC)
 
      // vc11:
-#    define BOOST_LIB_TOOLSET "vc110"
+#    define NDNBOOST_LIB_TOOLSET "vc110"
 
 #  elif defined(__BORLANDC__)
 
      // CBuilder 6:
-#    define BOOST_LIB_TOOLSET "bcb"
+#    define NDNBOOST_LIB_TOOLSET "bcb"
 
 #  elif defined(__ICL)
 
      // Intel C++, no version number:
-#    define BOOST_LIB_TOOLSET "iw"
+#    define NDNBOOST_LIB_TOOLSET "iw"
 
 #  elif defined(__MWERKS__) && (__MWERKS__ <= 0x31FF )
 
      // Metrowerks CodeWarrior 8.x
-#    define BOOST_LIB_TOOLSET "cw8"
+#    define NDNBOOST_LIB_TOOLSET "cw8"
 
 #  elif defined(__MWERKS__) && (__MWERKS__ <= 0x32FF )
 
      // Metrowerks CodeWarrior 9.x
-#    define BOOST_LIB_TOOLSET "cw9"
+#    define NDNBOOST_LIB_TOOLSET "cw9"
 
 #  endif
-#endif // BOOST_LIB_TOOLSET
+#endif // NDNBOOST_LIB_TOOLSET
 
 //
 // select thread opt:
 //
 #if defined(_MT) || defined(__MT__)
-#  define BOOST_LIB_THREAD_OPT "-mt"
+#  define NDNBOOST_LIB_THREAD_OPT "-mt"
 #else
-#  define BOOST_LIB_THREAD_OPT
+#  define NDNBOOST_LIB_THREAD_OPT
 #endif
 
 #if defined(_MSC_VER) || defined(__MWERKS__)
@@ -195,51 +195,51 @@
 #     if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS))
 
 #        if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
-               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
-#            define BOOST_LIB_RT_OPT "-gydp"
+               && defined(NDNBOOST_DEBUG_PYTHON) && defined(NDNBOOST_LINKING_PYTHON)
+#            define NDNBOOST_LIB_RT_OPT "-gydp"
 #        elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
-#            define BOOST_LIB_RT_OPT "-gdp"
+#            define NDNBOOST_LIB_RT_OPT "-gdp"
 #        elif defined(_DEBUG)\
-               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
-#            define BOOST_LIB_RT_OPT "-gydp"
+               && defined(NDNBOOST_DEBUG_PYTHON) && defined(NDNBOOST_LINKING_PYTHON)
+#            define NDNBOOST_LIB_RT_OPT "-gydp"
 #            pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
 #            error "Build options aren't compatible with pre-built libraries"
 #        elif defined(_DEBUG)
-#            define BOOST_LIB_RT_OPT "-gdp"
+#            define NDNBOOST_LIB_RT_OPT "-gdp"
 #            pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
 #            error "Build options aren't compatible with pre-built libraries"
 #        else
-#            define BOOST_LIB_RT_OPT "-p"
+#            define NDNBOOST_LIB_RT_OPT "-p"
 #        endif
 
 #     elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
 
 #        if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
-               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
-#            define BOOST_LIB_RT_OPT "-gydpn"
+               && defined(NDNBOOST_DEBUG_PYTHON) && defined(NDNBOOST_LINKING_PYTHON)
+#            define NDNBOOST_LIB_RT_OPT "-gydpn"
 #        elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
-#            define BOOST_LIB_RT_OPT "-gdpn"
+#            define NDNBOOST_LIB_RT_OPT "-gdpn"
 #        elif defined(_DEBUG)\
-               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
-#            define BOOST_LIB_RT_OPT "-gydpn"
+               && defined(NDNBOOST_DEBUG_PYTHON) && defined(NDNBOOST_LINKING_PYTHON)
+#            define NDNBOOST_LIB_RT_OPT "-gydpn"
 #            pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
 #            error "Build options aren't compatible with pre-built libraries"
 #        elif defined(_DEBUG)
-#            define BOOST_LIB_RT_OPT "-gdpn"
+#            define NDNBOOST_LIB_RT_OPT "-gdpn"
 #            pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
 #            error "Build options aren't compatible with pre-built libraries"
 #        else
-#            define BOOST_LIB_RT_OPT "-pn"
+#            define NDNBOOST_LIB_RT_OPT "-pn"
 #        endif
 
 #     else
 
-#        if defined(_DEBUG) && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
-#            define BOOST_LIB_RT_OPT "-gyd"
+#        if defined(_DEBUG) && defined(NDNBOOST_DEBUG_PYTHON) && defined(NDNBOOST_LINKING_PYTHON)
+#            define NDNBOOST_LIB_RT_OPT "-gyd"
 #        elif defined(_DEBUG)
-#            define BOOST_LIB_RT_OPT "-gd"
+#            define NDNBOOST_LIB_RT_OPT "-gd"
 #        else
-#            define BOOST_LIB_RT_OPT
+#            define NDNBOOST_LIB_RT_OPT
 #        endif
 
 #     endif
@@ -249,52 +249,52 @@
 #     if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS))
 
 #        if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
-               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
-#            define BOOST_LIB_RT_OPT "-sgydp"
+               && defined(NDNBOOST_DEBUG_PYTHON) && defined(NDNBOOST_LINKING_PYTHON)
+#            define NDNBOOST_LIB_RT_OPT "-sgydp"
 #        elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
-#            define BOOST_LIB_RT_OPT "-sgdp"
+#            define NDNBOOST_LIB_RT_OPT "-sgdp"
 #        elif defined(_DEBUG)\
-               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
-#             define BOOST_LIB_RT_OPT "-sgydp"
+               && defined(NDNBOOST_DEBUG_PYTHON) && defined(NDNBOOST_LINKING_PYTHON)
+#             define NDNBOOST_LIB_RT_OPT "-sgydp"
 #            pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
 #            error "Build options aren't compatible with pre-built libraries"
 #        elif defined(_DEBUG)
-#             define BOOST_LIB_RT_OPT "-sgdp"
+#             define NDNBOOST_LIB_RT_OPT "-sgdp"
 #            pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
 #            error "Build options aren't compatible with pre-built libraries"
 #        else
-#            define BOOST_LIB_RT_OPT "-sp"
+#            define NDNBOOST_LIB_RT_OPT "-sp"
 #        endif
 
 #     elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
 
 #        if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
-               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
-#            define BOOST_LIB_RT_OPT "-sgydpn"
+               && defined(NDNBOOST_DEBUG_PYTHON) && defined(NDNBOOST_LINKING_PYTHON)
+#            define NDNBOOST_LIB_RT_OPT "-sgydpn"
 #        elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
-#            define BOOST_LIB_RT_OPT "-sgdpn"
+#            define NDNBOOST_LIB_RT_OPT "-sgdpn"
 #        elif defined(_DEBUG)\
-               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
-#             define BOOST_LIB_RT_OPT "-sgydpn"
+               && defined(NDNBOOST_DEBUG_PYTHON) && defined(NDNBOOST_LINKING_PYTHON)
+#             define NDNBOOST_LIB_RT_OPT "-sgydpn"
 #            pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
 #            error "Build options aren't compatible with pre-built libraries"
 #        elif defined(_DEBUG)
-#             define BOOST_LIB_RT_OPT "-sgdpn"
+#             define NDNBOOST_LIB_RT_OPT "-sgdpn"
 #            pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
 #            error "Build options aren't compatible with pre-built libraries"
 #        else
-#            define BOOST_LIB_RT_OPT "-spn"
+#            define NDNBOOST_LIB_RT_OPT "-spn"
 #        endif
 
 #     else
 
 #        if defined(_DEBUG)\
-               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
-#             define BOOST_LIB_RT_OPT "-sgyd"
+               && defined(NDNBOOST_DEBUG_PYTHON) && defined(NDNBOOST_LINKING_PYTHON)
+#             define NDNBOOST_LIB_RT_OPT "-sgyd"
 #        elif defined(_DEBUG)
-#             define BOOST_LIB_RT_OPT "-sgd"
+#             define NDNBOOST_LIB_RT_OPT "-sgd"
 #        else
-#            define BOOST_LIB_RT_OPT "-s"
+#            define NDNBOOST_LIB_RT_OPT "-s"
 #        endif
 
 #     endif
@@ -307,7 +307,7 @@
 // figure out whether we want the debug builds or not:
 //
 #if __BORLANDC__ > 0x561
-#pragma defineonoption BOOST_BORLAND_DEBUG -v
+#pragma defineonoption NDNBOOST_BORLAND_DEBUG -v
 #endif
 //
 // sanity check:
@@ -318,28 +318,28 @@
 
 #  ifdef _RTLDLL
 
-#     if defined(BOOST_BORLAND_DEBUG)\
-               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
-#         define BOOST_LIB_RT_OPT "-yd"
-#     elif defined(BOOST_BORLAND_DEBUG)
-#         define BOOST_LIB_RT_OPT "-d"
-#     elif defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
-#         define BOOST_LIB_RT_OPT -y
+#     if defined(NDNBOOST_BORLAND_DEBUG)\
+               && defined(NDNBOOST_DEBUG_PYTHON) && defined(NDNBOOST_LINKING_PYTHON)
+#         define NDNBOOST_LIB_RT_OPT "-yd"
+#     elif defined(NDNBOOST_BORLAND_DEBUG)
+#         define NDNBOOST_LIB_RT_OPT "-d"
+#     elif defined(NDNBOOST_DEBUG_PYTHON) && defined(NDNBOOST_LINKING_PYTHON)
+#         define NDNBOOST_LIB_RT_OPT -y
 #     else
-#         define BOOST_LIB_RT_OPT
+#         define NDNBOOST_LIB_RT_OPT
 #     endif
 
 #  else
 
-#     if defined(BOOST_BORLAND_DEBUG)\
-               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
-#         define BOOST_LIB_RT_OPT "-syd"
-#     elif defined(BOOST_BORLAND_DEBUG)
-#         define BOOST_LIB_RT_OPT "-sd"
-#     elif defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
-#         define BOOST_LIB_RT_OPT "-sy"
+#     if defined(NDNBOOST_BORLAND_DEBUG)\
+               && defined(NDNBOOST_DEBUG_PYTHON) && defined(NDNBOOST_LINKING_PYTHON)
+#         define NDNBOOST_LIB_RT_OPT "-syd"
+#     elif defined(NDNBOOST_BORLAND_DEBUG)
+#         define NDNBOOST_LIB_RT_OPT "-sd"
+#     elif defined(NDNBOOST_DEBUG_PYTHON) && defined(NDNBOOST_LINKING_PYTHON)
+#         define NDNBOOST_LIB_RT_OPT "-sy"
 #     else
-#         define BOOST_LIB_RT_OPT "-s"
+#         define NDNBOOST_LIB_RT_OPT "-s"
 #     endif
 
 #  endif
@@ -349,38 +349,38 @@
 //
 // select linkage opt:
 //
-#if (defined(_DLL) || defined(_RTLDLL)) && defined(BOOST_DYN_LINK)
-#  define BOOST_LIB_PREFIX
-#elif defined(BOOST_DYN_LINK)
+#if (defined(_DLL) || defined(_RTLDLL)) && defined(NDNBOOST_DYN_LINK)
+#  define NDNBOOST_LIB_PREFIX
+#elif defined(NDNBOOST_DYN_LINK)
 #  error "Mixing a dll boost library with a static runtime is a really bad idea..."
 #else
-#  define BOOST_LIB_PREFIX "lib"
+#  define NDNBOOST_LIB_PREFIX "lib"
 #endif
 
 //
 // now include the lib:
 //
-#if defined(BOOST_LIB_NAME) \
-      && defined(BOOST_LIB_PREFIX) \
-      && defined(BOOST_LIB_TOOLSET) \
-      && defined(BOOST_LIB_THREAD_OPT) \
-      && defined(BOOST_LIB_RT_OPT) \
-      && defined(BOOST_LIB_VERSION)
+#if defined(NDNBOOST_LIB_NAME) \
+      && defined(NDNBOOST_LIB_PREFIX) \
+      && defined(NDNBOOST_LIB_TOOLSET) \
+      && defined(NDNBOOST_LIB_THREAD_OPT) \
+      && defined(NDNBOOST_LIB_RT_OPT) \
+      && defined(NDNBOOST_LIB_VERSION)
 
-#ifdef BOOST_AUTO_LINK_TAGGED
-#  pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT ".lib")
-#  ifdef BOOST_LIB_DIAGNOSTIC
-#     pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT ".lib")
+#ifdef NDNBOOST_AUTO_LINK_TAGGED
+#  pragma comment(lib, NDNBOOST_LIB_PREFIX NDNBOOST_STRINGIZE(NDNBOOST_LIB_NAME) NDNBOOST_LIB_THREAD_OPT NDNBOOST_LIB_RT_OPT ".lib")
+#  ifdef NDNBOOST_LIB_DIAGNOSTIC
+#     pragma message ("Linking to lib file: " NDNBOOST_LIB_PREFIX NDNBOOST_STRINGIZE(NDNBOOST_LIB_NAME) NDNBOOST_LIB_THREAD_OPT NDNBOOST_LIB_RT_OPT ".lib")
 #  endif
-#elif defined(BOOST_AUTO_LINK_NOMANGLE)
-#  pragma comment(lib, BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
-#  ifdef BOOST_LIB_DIAGNOSTIC
-#     pragma message ("Linking to lib file: " BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
+#elif defined(NDNBOOST_AUTO_LINK_NOMANGLE)
+#  pragma comment(lib, NDNBOOST_STRINGIZE(NDNBOOST_LIB_NAME) ".lib")
+#  ifdef NDNBOOST_LIB_DIAGNOSTIC
+#     pragma message ("Linking to lib file: " NDNBOOST_STRINGIZE(NDNBOOST_LIB_NAME) ".lib")
 #  endif
 #else
-#  pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib")
-#  ifdef BOOST_LIB_DIAGNOSTIC
-#     pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib")
+#  pragma comment(lib, NDNBOOST_LIB_PREFIX NDNBOOST_STRINGIZE(NDNBOOST_LIB_NAME) "-" NDNBOOST_LIB_TOOLSET NDNBOOST_LIB_THREAD_OPT NDNBOOST_LIB_RT_OPT "-" NDNBOOST_LIB_VERSION ".lib")
+#  ifdef NDNBOOST_LIB_DIAGNOSTIC
+#     pragma message ("Linking to lib file: " NDNBOOST_LIB_PREFIX NDNBOOST_STRINGIZE(NDNBOOST_LIB_NAME) "-" NDNBOOST_LIB_TOOLSET NDNBOOST_LIB_THREAD_OPT NDNBOOST_LIB_RT_OPT "-" NDNBOOST_LIB_VERSION ".lib")
 #  endif
 #endif
 
@@ -394,30 +394,30 @@
 //
 // finally undef any macros we may have set:
 //
-#ifdef BOOST_LIB_PREFIX
-#  undef BOOST_LIB_PREFIX
+#ifdef NDNBOOST_LIB_PREFIX
+#  undef NDNBOOST_LIB_PREFIX
 #endif
-#if defined(BOOST_LIB_NAME)
-#  undef BOOST_LIB_NAME
+#if defined(NDNBOOST_LIB_NAME)
+#  undef NDNBOOST_LIB_NAME
 #endif
 // Don't undef this one: it can be set by the user and should be the 
 // same for all libraries:
-//#if defined(BOOST_LIB_TOOLSET)
-//#  undef BOOST_LIB_TOOLSET
+//#if defined(NDNBOOST_LIB_TOOLSET)
+//#  undef NDNBOOST_LIB_TOOLSET
 //#endif
-#if defined(BOOST_LIB_THREAD_OPT)
-#  undef BOOST_LIB_THREAD_OPT
+#if defined(NDNBOOST_LIB_THREAD_OPT)
+#  undef NDNBOOST_LIB_THREAD_OPT
 #endif
-#if defined(BOOST_LIB_RT_OPT)
-#  undef BOOST_LIB_RT_OPT
+#if defined(NDNBOOST_LIB_RT_OPT)
+#  undef NDNBOOST_LIB_RT_OPT
 #endif
-#if defined(BOOST_LIB_LINK_OPT)
-#  undef BOOST_LIB_LINK_OPT
+#if defined(NDNBOOST_LIB_LINK_OPT)
+#  undef NDNBOOST_LIB_LINK_OPT
 #endif
-#if defined(BOOST_LIB_DEBUG_OPT)
-#  undef BOOST_LIB_DEBUG_OPT
+#if defined(NDNBOOST_LIB_DEBUG_OPT)
+#  undef NDNBOOST_LIB_DEBUG_OPT
 #endif
-#if defined(BOOST_DYN_LINK)
-#  undef BOOST_DYN_LINK
+#if defined(NDNBOOST_DYN_LINK)
+#  undef NDNBOOST_DYN_LINK
 #endif
 
diff --git a/include/ndnboost/config/compiler/borland.hpp b/include/ndnboost/config/compiler/borland.hpp
index 99965c4..7826232 100644
--- a/include/ndnboost/config/compiler/borland.hpp
+++ b/include/ndnboost/config/compiler/borland.hpp
@@ -18,7 +18,7 @@
 
 // last known compiler version:
 #if (__BORLANDC__ > 0x613)
-//#  if defined(BOOST_ASSERT_CONFIG)
+//#  if defined(NDNBOOST_ASSERT_CONFIG)
 #     error "Unknown compiler version - please run the configure tests and report the results"
 //#  else
 //#     pragma message( "Unknown compiler version - please run the configure tests and report the results")
@@ -30,31 +30,31 @@
 //
 // Support macros to help with standard library detection
 #if (__BORLANDC__ < 0x560) || defined(_USE_OLD_RW_STL)
-#  define BOOST_BCB_WITH_ROGUE_WAVE
+#  define NDNBOOST_BCB_WITH_ROGUE_WAVE
 #elif __BORLANDC__ < 0x570
-#  define BOOST_BCB_WITH_STLPORT
+#  define NDNBOOST_BCB_WITH_STLPORT
 #else
-#  define BOOST_BCB_WITH_DINKUMWARE
+#  define NDNBOOST_BCB_WITH_DINKUMWARE
 #endif
 
 //
 // Version 5.0 and below:
 #   if __BORLANDC__ <= 0x0550
 // Borland C++Builder 4 and 5:
-#     define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
+#     define NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS
 #     if __BORLANDC__ == 0x0550
 // Borland C++Builder 5, command-line compiler 5.5:
-#       define BOOST_NO_OPERATORS_IN_NAMESPACE
+#       define NDNBOOST_NO_OPERATORS_IN_NAMESPACE
 #     endif
 // Variadic macros do not exist for C++ Builder versions 5 and below
-#define BOOST_NO_CXX11_VARIADIC_MACROS
+#define NDNBOOST_NO_CXX11_VARIADIC_MACROS
 #   endif
 
 // Version 5.51 and below:
 #if (__BORLANDC__ <= 0x551)
-#  define BOOST_NO_CV_SPECIALIZATIONS
-#  define BOOST_NO_CV_VOID_SPECIALIZATIONS
-#  define BOOST_NO_DEDUCED_TYPENAME
+#  define NDNBOOST_NO_CV_SPECIALIZATIONS
+#  define NDNBOOST_NO_CV_VOID_SPECIALIZATIONS
+#  define NDNBOOST_NO_DEDUCED_TYPENAME
 // workaround for missing WCHAR_MAX/WCHAR_MIN:
 #ifdef __cplusplus
 #include <climits>
@@ -91,52 +91,52 @@
 // new bug in 5.61:
 #if (__BORLANDC__ >= 0x561) && (__BORLANDC__ <= 0x580)
    // this seems to be needed by the command line compiler, but not the IDE:
-#  define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
+#  define NDNBOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
 #endif
 
 // Borland C++ Builder 2006 Update 2 and below:
 #if (__BORLANDC__ <= 0x582)
-#  define BOOST_NO_SFINAE
-#  define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
-#  define BOOST_NO_TEMPLATE_TEMPLATES
+#  define NDNBOOST_NO_SFINAE
+#  define NDNBOOST_BCB_PARTIAL_SPECIALIZATION_BUG
+#  define NDNBOOST_NO_TEMPLATE_TEMPLATES
 
-#  define BOOST_NO_PRIVATE_IN_AGGREGATE
+#  define NDNBOOST_NO_PRIVATE_IN_AGGREGATE
 
 #  ifdef _WIN32
-#     define BOOST_NO_SWPRINTF
+#     define NDNBOOST_NO_SWPRINTF
 #  elif defined(linux) || defined(__linux__) || defined(__linux)
       // we should really be able to do without this
       // but the wcs* functions aren't imported into std::
-#     define BOOST_NO_STDC_NAMESPACE
+#     define NDNBOOST_NO_STDC_NAMESPACE
       // _CPPUNWIND doesn't get automatically set for some reason:
-#     pragma defineonoption BOOST_CPPUNWIND -x
+#     pragma defineonoption NDNBOOST_CPPUNWIND -x
 #  endif
 #endif
 
 #if (__BORLANDC__ <= 0x613)  // Beman has asked Alisdair for more info
    // we shouldn't really need this - but too many things choke
    // without it, this needs more investigation:
-#  define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-#  define BOOST_NO_IS_ABSTRACT
-#  define BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
-#  define BOOST_NO_USING_TEMPLATE
-#  define BOOST_SP_NO_SP_CONVERTIBLE
+#  define NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+#  define NDNBOOST_NO_IS_ABSTRACT
+#  define NDNBOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
+#  define NDNBOOST_NO_USING_TEMPLATE
+#  define NDNBOOST_SP_NO_SP_CONVERTIBLE
 
 // Temporary workaround
-#define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#define NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
 #endif
 
 // Borland C++ Builder 2008 and below:
-#  define BOOST_NO_INTEGRAL_INT64_T
-#  define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
-#  define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
-#  define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
-#  define BOOST_NO_TWO_PHASE_NAME_LOOKUP
-#  define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
-#  define BOOST_NO_NESTED_FRIENDSHIP
-#  define BOOST_NO_TYPENAME_WITH_CTOR
+#  define NDNBOOST_NO_INTEGRAL_INT64_T
+#  define NDNBOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
+#  define NDNBOOST_NO_DEPENDENT_NESTED_DERIVATIONS
+#  define NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS
+#  define NDNBOOST_NO_TWO_PHASE_NAME_LOOKUP
+#  define NDNBOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
+#  define NDNBOOST_NO_NESTED_FRIENDSHIP
+#  define NDNBOOST_NO_TYPENAME_WITH_CTOR
 #if (__BORLANDC__ < 0x600)
-#  define BOOST_ILLEGAL_CV_REFERENCES
+#  define NDNBOOST_ILLEGAL_CV_REFERENCES
 #endif
 
 //
@@ -144,78 +144,78 @@
 //
 // Borland C++ Builder 2008 and below:
 #if (__BORLANDC__ >= 0x599)
-#  pragma defineonoption BOOST_CODEGEAR_0X_SUPPORT -Ax
+#  pragma defineonoption NDNBOOST_CODEGEAR_0X_SUPPORT -Ax
 #endif
 //
 // C++0x Macros:
 //
-#if !defined( BOOST_CODEGEAR_0X_SUPPORT ) || (__BORLANDC__ < 0x610)
-#  define BOOST_NO_CXX11_CHAR16_T
-#  define BOOST_NO_CXX11_CHAR32_T
-#  define BOOST_NO_CXX11_DECLTYPE
-#  define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#  define BOOST_NO_CXX11_EXTERN_TEMPLATE
-#  define BOOST_NO_CXX11_RVALUE_REFERENCES 
-#  define BOOST_NO_CXX11_SCOPED_ENUMS
-#  define BOOST_NO_CXX11_STATIC_ASSERT
+#if !defined( NDNBOOST_CODEGEAR_0X_SUPPORT ) || (__BORLANDC__ < 0x610)
+#  define NDNBOOST_NO_CXX11_CHAR16_T
+#  define NDNBOOST_NO_CXX11_CHAR32_T
+#  define NDNBOOST_NO_CXX11_DECLTYPE
+#  define NDNBOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
+#  define NDNBOOST_NO_CXX11_EXTERN_TEMPLATE
+#  define NDNBOOST_NO_CXX11_RVALUE_REFERENCES 
+#  define NDNBOOST_NO_CXX11_SCOPED_ENUMS
+#  define NDNBOOST_NO_CXX11_STATIC_ASSERT
 #else
-#  define BOOST_HAS_ALIGNOF
-#  define BOOST_HAS_CHAR16_T
-#  define BOOST_HAS_CHAR32_T
-#  define BOOST_HAS_DECLTYPE
-#  define BOOST_HAS_EXPLICIT_CONVERSION_OPS
-#  define BOOST_HAS_REF_QUALIFIER
-#  define BOOST_HAS_RVALUE_REFS
-#  define BOOST_HAS_STATIC_ASSERT
+#  define NDNBOOST_HAS_ALIGNOF
+#  define NDNBOOST_HAS_CHAR16_T
+#  define NDNBOOST_HAS_CHAR32_T
+#  define NDNBOOST_HAS_DECLTYPE
+#  define NDNBOOST_HAS_EXPLICIT_CONVERSION_OPS
+#  define NDNBOOST_HAS_REF_QUALIFIER
+#  define NDNBOOST_HAS_RVALUE_REFS
+#  define NDNBOOST_HAS_STATIC_ASSERT
 #endif
 
-#define BOOST_NO_CXX11_AUTO_DECLARATIONS
-#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#define BOOST_NO_CXX11_CONSTEXPR
-#define BOOST_NO_CXX11_DECLTYPE_N3276
-#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#define BOOST_NO_CXX11_DELETED_FUNCTIONS
-#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#define BOOST_NO_CXX11_LAMBDAS
-#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#define BOOST_NO_CXX11_NULLPTR
-#define BOOST_NO_CXX11_RANGE_BASED_FOR
-#define BOOST_NO_CXX11_RAW_LITERALS
-#define BOOST_NO_CXX11_RVALUE_REFERENCES
-#define BOOST_NO_CXX11_SCOPED_ENUMS
-#define BOOST_NO_SFINAE_EXPR
-#define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#define BOOST_NO_CXX11_UNICODE_LITERALS    // UTF-8 still not supported
-#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#define BOOST_NO_CXX11_NOEXCEPT
-#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
-#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
+#define NDNBOOST_NO_CXX11_AUTO_DECLARATIONS
+#define NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
+#define NDNBOOST_NO_CXX11_CONSTEXPR
+#define NDNBOOST_NO_CXX11_DECLTYPE_N3276
+#define NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
+#define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#define NDNBOOST_NO_CXX11_LAMBDAS
+#define NDNBOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
+#define NDNBOOST_NO_CXX11_NULLPTR
+#define NDNBOOST_NO_CXX11_RANGE_BASED_FOR
+#define NDNBOOST_NO_CXX11_RAW_LITERALS
+#define NDNBOOST_NO_CXX11_RVALUE_REFERENCES
+#define NDNBOOST_NO_CXX11_SCOPED_ENUMS
+#define NDNBOOST_NO_SFINAE_EXPR
+#define NDNBOOST_NO_CXX11_TEMPLATE_ALIASES
+#define NDNBOOST_NO_CXX11_UNICODE_LITERALS    // UTF-8 still not supported
+#define NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
+#define NDNBOOST_NO_CXX11_NOEXCEPT
+#define NDNBOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
+#define NDNBOOST_NO_CXX11_USER_DEFINED_LITERALS
 
 #if __BORLANDC__ >= 0x590
-#  define BOOST_HAS_TR1_HASH
+#  define NDNBOOST_HAS_TR1_HASH
 
-#  define BOOST_HAS_MACRO_USE_FACET
+#  define NDNBOOST_HAS_MACRO_USE_FACET
 #endif
 
 //
 // Post 0x561 we have long long and stdint.h:
 #if __BORLANDC__ >= 0x561
 #  ifndef __NO_LONG_LONG
-#     define BOOST_HAS_LONG_LONG
+#     define NDNBOOST_HAS_LONG_LONG
 #  else
-#     define BOOST_NO_LONG_LONG
+#     define NDNBOOST_NO_LONG_LONG
 #  endif
    // On non-Win32 platforms let the platform config figure this out:
 #  ifdef _WIN32
-#      define BOOST_HAS_STDINT_H
+#      define NDNBOOST_HAS_STDINT_H
 #  endif
 #endif
 
 // Borland C++Builder 6 defaults to using STLPort.  If _USE_OLD_RW_STL is
 // defined, then we have 0x560 or greater with the Rogue Wave implementation
 // which presumably has the std::DBL_MAX bug.
-#if defined( BOOST_BCB_WITH_ROGUE_WAVE )
+#if defined( NDNBOOST_BCB_WITH_ROGUE_WAVE )
 // <climits> is partly broken, some macros define symbols that are really in
 // namespace std, so you end up having to use illegal constructs like
 // std::DBL_MAX, as a fix we'll just include float.h and have done with:
@@ -225,53 +225,53 @@
 // __int64:
 //
 #if (__BORLANDC__ >= 0x530) && !defined(__STRICT_ANSI__)
-#  define BOOST_HAS_MS_INT64
+#  define NDNBOOST_HAS_MS_INT64
 #endif
 //
 // check for exception handling support:
 //
-#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
-#  define BOOST_NO_EXCEPTIONS
+#if !defined(_CPPUNWIND) && !defined(NDNBOOST_CPPUNWIND) && !defined(__EXCEPTIONS) && !defined(NDNBOOST_NO_EXCEPTIONS)
+#  define NDNBOOST_NO_EXCEPTIONS
 #endif
 //
 // all versions have a <dirent.h>:
 //
 #ifndef __STRICT_ANSI__
-#  define BOOST_HAS_DIRENT_H
+#  define NDNBOOST_HAS_DIRENT_H
 #endif
 //
 // all versions support __declspec:
 //
 #if defined(__STRICT_ANSI__)
-// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined  
-#  define BOOST_SYMBOL_EXPORT
+// config/platform/win32.hpp will define NDNBOOST_SYMBOL_EXPORT, etc., unless already defined  
+#  define NDNBOOST_SYMBOL_EXPORT
 #endif
 //
 // ABI fixing headers:
 //
 #if __BORLANDC__ != 0x600 // not implemented for version 6 compiler yet
-#ifndef BOOST_ABI_PREFIX
-#  define BOOST_ABI_PREFIX "ndnboost/config/abi/borland_prefix.hpp"
+#ifndef NDNBOOST_ABI_PREFIX
+#  define NDNBOOST_ABI_PREFIX "ndnboost/config/abi/borland_prefix.hpp"
 #endif
-#ifndef BOOST_ABI_SUFFIX
-#  define BOOST_ABI_SUFFIX "ndnboost/config/abi/borland_suffix.hpp"
+#ifndef NDNBOOST_ABI_SUFFIX
+#  define NDNBOOST_ABI_SUFFIX "ndnboost/config/abi/borland_suffix.hpp"
 #endif
 #endif
 //
 // Disable Win32 support in ANSI mode:
 //
 #if __BORLANDC__ < 0x600
-#  pragma defineonoption BOOST_DISABLE_WIN32 -A
+#  pragma defineonoption NDNBOOST_DISABLE_WIN32 -A
 #elif defined(__STRICT_ANSI__)
-#  define BOOST_DISABLE_WIN32
+#  define NDNBOOST_DISABLE_WIN32
 #endif
 //
 // MSVC compatibility mode does some nasty things:
 // TODO: look up if this doesn't apply to the whole 12xx range
 //
 #if defined(_MSC_VER) && (_MSC_VER <= 1200)
-#  define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
-#  define BOOST_NO_VOID_RETURNS
+#  define NDNBOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
+#  define NDNBOOST_NO_VOID_RETURNS
 #endif
 
 // Borland did not implement value-initialization completely, as I reported
@@ -279,9 +279,9 @@
 // zero-initialized", http://qc.embarcadero.com/wc/qcmain.aspx?d=51854
 // See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
 // (Niels Dekker, LKEB, April 2010)
-#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
+#define NDNBOOST_NO_COMPLETE_VALUE_INITIALIZATION
 
-#define BOOST_COMPILER "Borland C++ version " BOOST_STRINGIZE(__BORLANDC__)
+#define NDNBOOST_COMPILER "Borland C++ version " NDNBOOST_STRINGIZE(__BORLANDC__)
 
 
 
diff --git a/include/ndnboost/config/compiler/clang.hpp b/include/ndnboost/config/compiler/clang.hpp
index 8e38821..d8ab35c 100644
--- a/include/ndnboost/config/compiler/clang.hpp
+++ b/include/ndnboost/config/compiler/clang.hpp
@@ -8,151 +8,151 @@
 
 // Clang compiler setup.
 
-#if !__has_feature(cxx_exceptions) && !defined(BOOST_NO_EXCEPTIONS)
-#  define BOOST_NO_EXCEPTIONS
+#if !__has_feature(cxx_exceptions) && !defined(NDNBOOST_NO_EXCEPTIONS)
+#  define NDNBOOST_NO_EXCEPTIONS
 #endif
 
-#if !__has_feature(cxx_rtti) && !defined(BOOST_NO_RTTI)
-#  define BOOST_NO_RTTI
+#if !__has_feature(cxx_rtti) && !defined(NDNBOOST_NO_RTTI)
+#  define NDNBOOST_NO_RTTI
 #endif
 
-#if !__has_feature(cxx_rtti) && !defined(BOOST_NO_TYPEID)
-#  define BOOST_NO_TYPEID
+#if !__has_feature(cxx_rtti) && !defined(NDNBOOST_NO_TYPEID)
+#  define NDNBOOST_NO_TYPEID
 #endif
 
 #if defined(__int64) && !defined(__GNUC__)
-#  define BOOST_HAS_MS_INT64
+#  define NDNBOOST_HAS_MS_INT64
 #endif
 
-#define BOOST_HAS_NRVO
+#define NDNBOOST_HAS_NRVO
 
 // Clang supports "long long" in all compilation modes.
-#define BOOST_HAS_LONG_LONG
+#define NDNBOOST_HAS_LONG_LONG
 
 //
 // Dynamic shared object (DSO) and dynamic-link library (DLL) support
 //
 #if !defined(_WIN32) && !defined(__WIN32__) && !defined(WIN32)
-#  define BOOST_SYMBOL_EXPORT __attribute__((__visibility__("default")))
-#  define BOOST_SYMBOL_IMPORT
-#  define BOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default")))
+#  define NDNBOOST_SYMBOL_EXPORT __attribute__((__visibility__("default")))
+#  define NDNBOOST_SYMBOL_IMPORT
+#  define NDNBOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default")))
 #endif
 
 // 
-// The BOOST_FALLTHROUGH macro can be used to annotate implicit fall-through 
+// The NDNBOOST_FALLTHROUGH macro can be used to annotate implicit fall-through 
 // between switch labels. 
 // 
 #if __cplusplus >= 201103L && defined(__has_warning) 
 #  if __has_feature(cxx_attributes) && __has_warning("-Wimplicit-fallthrough") 
-#    define BOOST_FALLTHROUGH [[clang::fallthrough]] 
+#    define NDNBOOST_FALLTHROUGH [[clang::fallthrough]] 
 #  endif 
 #endif 
 
 #if !__has_feature(cxx_auto_type)
-#  define BOOST_NO_CXX11_AUTO_DECLARATIONS
-#  define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
+#  define NDNBOOST_NO_CXX11_AUTO_DECLARATIONS
+#  define NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
 #endif
 
 #if !(defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L)
-#  define BOOST_NO_CXX11_CHAR16_T
-#  define BOOST_NO_CXX11_CHAR32_T
+#  define NDNBOOST_NO_CXX11_CHAR16_T
+#  define NDNBOOST_NO_CXX11_CHAR32_T
 #endif
 
 #if !__has_feature(cxx_constexpr)
-#  define BOOST_NO_CXX11_CONSTEXPR
+#  define NDNBOOST_NO_CXX11_CONSTEXPR
 #endif
 
 #if !__has_feature(cxx_decltype)
-#  define BOOST_NO_CXX11_DECLTYPE
+#  define NDNBOOST_NO_CXX11_DECLTYPE
 #endif
 
 #if !__has_feature(cxx_decltype_incomplete_return_types)
-#  define BOOST_NO_CXX11_DECLTYPE_N3276
+#  define NDNBOOST_NO_CXX11_DECLTYPE_N3276
 #endif
 
 #if !__has_feature(cxx_defaulted_functions)
-#  define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
+#  define NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS
 #endif
 
 #if !__has_feature(cxx_deleted_functions)
-#  define BOOST_NO_CXX11_DELETED_FUNCTIONS
+#  define NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
 #endif
 
 #if !__has_feature(cxx_explicit_conversions)
-#  define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
+#  define NDNBOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
 #endif
 
 #if !__has_feature(cxx_default_function_template_args)
-#  define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
+#  define NDNBOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
 #endif
 
 #if !__has_feature(cxx_generalized_initializers)
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#  define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
 #endif
 
 #if !__has_feature(cxx_lambdas)
-#  define BOOST_NO_CXX11_LAMBDAS
+#  define NDNBOOST_NO_CXX11_LAMBDAS
 #endif
 
 #if !__has_feature(cxx_local_type_template_args)
-#  define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
+#  define NDNBOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
 #endif
 
 #if !__has_feature(cxx_noexcept)
-#  define BOOST_NO_CXX11_NOEXCEPT
+#  define NDNBOOST_NO_CXX11_NOEXCEPT
 #endif
 
 #if !__has_feature(cxx_nullptr)
-#  define BOOST_NO_CXX11_NULLPTR
+#  define NDNBOOST_NO_CXX11_NULLPTR
 #endif
 
 #if !__has_feature(cxx_range_for)
-#  define BOOST_NO_CXX11_RANGE_BASED_FOR
+#  define NDNBOOST_NO_CXX11_RANGE_BASED_FOR
 #endif
 
 #if !__has_feature(cxx_raw_string_literals)
-#  define BOOST_NO_CXX11_RAW_LITERALS
+#  define NDNBOOST_NO_CXX11_RAW_LITERALS
 #endif
 
 #if !__has_feature(cxx_generalized_initializers)
-#  define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
+#  define NDNBOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
 #endif
 
 #if !__has_feature(cxx_rvalue_references)
-#  define BOOST_NO_CXX11_RVALUE_REFERENCES
+#  define NDNBOOST_NO_CXX11_RVALUE_REFERENCES
 #endif
 
 #if !__has_feature(cxx_strong_enums)
-#  define BOOST_NO_CXX11_SCOPED_ENUMS
+#  define NDNBOOST_NO_CXX11_SCOPED_ENUMS
 #endif
 
 #if !__has_feature(cxx_static_assert)
-#  define BOOST_NO_CXX11_STATIC_ASSERT
+#  define NDNBOOST_NO_CXX11_STATIC_ASSERT
 #endif
 
 #if !__has_feature(cxx_alias_templates)
-#  define BOOST_NO_CXX11_TEMPLATE_ALIASES
+#  define NDNBOOST_NO_CXX11_TEMPLATE_ALIASES
 #endif
 
 #if !__has_feature(cxx_unicode_literals)
-#  define BOOST_NO_CXX11_UNICODE_LITERALS
+#  define NDNBOOST_NO_CXX11_UNICODE_LITERALS
 #endif
 
 #if !__has_feature(cxx_variadic_templates)
-#  define BOOST_NO_CXX11_VARIADIC_TEMPLATES
+#  define NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
 #endif
 
 #if !__has_feature(cxx_user_literals)
-#  define BOOST_NO_CXX11_USER_DEFINED_LITERALS
+#  define NDNBOOST_NO_CXX11_USER_DEFINED_LITERALS
 #endif
 
 // Clang always supports variadic macros
 // Clang always supports extern templates
 
-#ifndef BOOST_COMPILER
-#  define BOOST_COMPILER "Clang version " __clang_version__
+#ifndef NDNBOOST_COMPILER
+#  define NDNBOOST_COMPILER "Clang version " __clang_version__
 #endif
 
 // Macro used to identify the Clang compiler.
-#define BOOST_CLANG 1
+#define NDNBOOST_CLANG 1
 
diff --git a/include/ndnboost/config/compiler/codegear.hpp b/include/ndnboost/config/compiler/codegear.hpp
index 7108663..f46c9ae 100644
--- a/include/ndnboost/config/compiler/codegear.hpp
+++ b/include/ndnboost/config/compiler/codegear.hpp
@@ -9,7 +9,7 @@
 
 //  CodeGear C++ compiler setup:
 
-#if !defined( BOOST_WITH_CODEGEAR_WARNINGS )
+#if !defined( NDNBOOST_WITH_CODEGEAR_WARNINGS )
 // these warnings occur frequently in optimized template code
 # pragma warn -8004 // var assigned value, but never used
 # pragma warn -8008 // condition always true/false
@@ -21,7 +21,7 @@
 // versions check:
 // last known and checked version is 0x621
 #if (__CODEGEARC__ > 0x621)
-#  if defined(BOOST_ASSERT_CONFIG)
+#  if defined(NDNBOOST_ASSERT_CONFIG)
 #     error "Unknown compiler version - please run the configure tests and report the results"
 #  else
 #     pragma message( "Unknown compiler version - please run the configure tests and report the results")
@@ -30,26 +30,26 @@
 
 // CodeGear C++ Builder 2009
 #if (__CODEGEARC__ <= 0x613)
-#  define BOOST_NO_INTEGRAL_INT64_T
-#  define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
-#  define BOOST_NO_PRIVATE_IN_AGGREGATE
-#  define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
+#  define NDNBOOST_NO_INTEGRAL_INT64_T
+#  define NDNBOOST_NO_DEPENDENT_NESTED_DERIVATIONS
+#  define NDNBOOST_NO_PRIVATE_IN_AGGREGATE
+#  define NDNBOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
    // we shouldn't really need this - but too many things choke
    // without it, this needs more investigation:
-#  define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-#  define BOOST_SP_NO_SP_CONVERTIBLE
+#  define NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+#  define NDNBOOST_SP_NO_SP_CONVERTIBLE
 #endif
 
 // CodeGear C++ Builder 2010
 #if (__CODEGEARC__ <= 0x621)
-#  define BOOST_NO_TYPENAME_WITH_CTOR    // Cannot use typename keyword when making temporaries of a dependant type
-#  define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
-#  define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
-#  define BOOST_NO_NESTED_FRIENDSHIP     // TC1 gives nested classes access rights as any other member
-#  define BOOST_NO_USING_TEMPLATE
-#  define BOOST_NO_TWO_PHASE_NAME_LOOKUP
+#  define NDNBOOST_NO_TYPENAME_WITH_CTOR    // Cannot use typename keyword when making temporaries of a dependant type
+#  define NDNBOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
+#  define NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS
+#  define NDNBOOST_NO_NESTED_FRIENDSHIP     // TC1 gives nested classes access rights as any other member
+#  define NDNBOOST_NO_USING_TEMPLATE
+#  define NDNBOOST_NO_TWO_PHASE_NAME_LOOKUP
 // Temporary hack, until specific MPL preprocessed headers are generated
-#  define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#  define NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
 
 // CodeGear has not yet completely implemented value-initialization, for
 // example for array types, as I reported in 2010: Embarcadero Report 83751,
@@ -58,7 +58,7 @@
 // Last checked version: Embarcadero C++ 6.21
 // See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
 // (Niels Dekker, LKEB, April 2010)
-#  define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
+#  define NDNBOOST_NO_COMPLETE_VALUE_INITIALIZATION
 
 #  if defined(NDEBUG) && defined(__cplusplus)
       // fix broken <cstring> so that Boost.test works:
@@ -76,105 +76,105 @@
 // C++0x macros:
 //
 #if (__CODEGEARC__ <= 0x620)
-#define BOOST_NO_CXX11_STATIC_ASSERT
+#define NDNBOOST_NO_CXX11_STATIC_ASSERT
 #else
-#define BOOST_HAS_STATIC_ASSERT
+#define NDNBOOST_HAS_STATIC_ASSERT
 #endif
-#define BOOST_HAS_CHAR16_T
-#define BOOST_HAS_CHAR32_T
-#define BOOST_HAS_LONG_LONG
-// #define BOOST_HAS_ALIGNOF
-#define BOOST_HAS_DECLTYPE
-#define BOOST_HAS_EXPLICIT_CONVERSION_OPS
-// #define BOOST_HAS_RVALUE_REFS
-#define BOOST_HAS_SCOPED_ENUM
-// #define BOOST_HAS_STATIC_ASSERT
-#define BOOST_HAS_STD_TYPE_TRAITS
+#define NDNBOOST_HAS_CHAR16_T
+#define NDNBOOST_HAS_CHAR32_T
+#define NDNBOOST_HAS_LONG_LONG
+// #define NDNBOOST_HAS_ALIGNOF
+#define NDNBOOST_HAS_DECLTYPE
+#define NDNBOOST_HAS_EXPLICIT_CONVERSION_OPS
+// #define NDNBOOST_HAS_RVALUE_REFS
+#define NDNBOOST_HAS_SCOPED_ENUM
+// #define NDNBOOST_HAS_STATIC_ASSERT
+#define NDNBOOST_HAS_STD_TYPE_TRAITS
 
-#define BOOST_NO_CXX11_AUTO_DECLARATIONS
-#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#define BOOST_NO_CXX11_CONSTEXPR
-#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#define BOOST_NO_CXX11_DELETED_FUNCTIONS
-#define BOOST_NO_CXX11_EXTERN_TEMPLATE
-#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#define BOOST_NO_CXX11_LAMBDAS
-#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#define BOOST_NO_CXX11_NOEXCEPT
-#define BOOST_NO_CXX11_NULLPTR
-#define BOOST_NO_CXX11_RANGE_BASED_FOR
-#define BOOST_NO_CXX11_RAW_LITERALS
-#define BOOST_NO_CXX11_RVALUE_REFERENCES
-#define BOOST_NO_SFINAE_EXPR
-#define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#define BOOST_NO_CXX11_UNICODE_LITERALS
-#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
-#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
+#define NDNBOOST_NO_CXX11_AUTO_DECLARATIONS
+#define NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
+#define NDNBOOST_NO_CXX11_CONSTEXPR
+#define NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_EXTERN_TEMPLATE
+#define NDNBOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
+#define NDNBOOST_NO_CXX11_LAMBDAS
+#define NDNBOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
+#define NDNBOOST_NO_CXX11_NOEXCEPT
+#define NDNBOOST_NO_CXX11_NULLPTR
+#define NDNBOOST_NO_CXX11_RANGE_BASED_FOR
+#define NDNBOOST_NO_CXX11_RAW_LITERALS
+#define NDNBOOST_NO_CXX11_RVALUE_REFERENCES
+#define NDNBOOST_NO_SFINAE_EXPR
+#define NDNBOOST_NO_CXX11_TEMPLATE_ALIASES
+#define NDNBOOST_NO_CXX11_UNICODE_LITERALS
+#define NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
+#define NDNBOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
+#define NDNBOOST_NO_CXX11_USER_DEFINED_LITERALS
 
 //
 // TR1 macros:
 //
-#define BOOST_HAS_TR1_HASH
-#define BOOST_HAS_TR1_TYPE_TRAITS
-#define BOOST_HAS_TR1_UNORDERED_MAP
-#define BOOST_HAS_TR1_UNORDERED_SET
+#define NDNBOOST_HAS_TR1_HASH
+#define NDNBOOST_HAS_TR1_TYPE_TRAITS
+#define NDNBOOST_HAS_TR1_UNORDERED_MAP
+#define NDNBOOST_HAS_TR1_UNORDERED_SET
 
-#define BOOST_HAS_MACRO_USE_FACET
+#define NDNBOOST_HAS_MACRO_USE_FACET
 
-#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
 
 // On non-Win32 platforms let the platform config figure this out:
 #ifdef _WIN32
-#  define BOOST_HAS_STDINT_H
+#  define NDNBOOST_HAS_STDINT_H
 #endif
 
 //
 // __int64:
 //
 #if !defined(__STRICT_ANSI__)
-#  define BOOST_HAS_MS_INT64
+#  define NDNBOOST_HAS_MS_INT64
 #endif
 //
 // check for exception handling support:
 //
-#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
-#  define BOOST_NO_EXCEPTIONS
+#if !defined(_CPPUNWIND) && !defined(NDNBOOST_CPPUNWIND) && !defined(__EXCEPTIONS) && !defined(NDNBOOST_NO_EXCEPTIONS)
+#  define NDNBOOST_NO_EXCEPTIONS
 #endif
 //
 // all versions have a <dirent.h>:
 //
 #if !defined(__STRICT_ANSI__)
-#  define BOOST_HAS_DIRENT_H
+#  define NDNBOOST_HAS_DIRENT_H
 #endif
 //
 // all versions support __declspec:
 //
 #if defined(__STRICT_ANSI__)
-// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined  
-#  define BOOST_SYMBOL_EXPORT
+// config/platform/win32.hpp will define NDNBOOST_SYMBOL_EXPORT, etc., unless already defined  
+#  define NDNBOOST_SYMBOL_EXPORT
 #endif
 //
 // ABI fixing headers:
 //
-#ifndef BOOST_ABI_PREFIX
-#  define BOOST_ABI_PREFIX "ndnboost/config/abi/borland_prefix.hpp"
+#ifndef NDNBOOST_ABI_PREFIX
+#  define NDNBOOST_ABI_PREFIX "ndnboost/config/abi/borland_prefix.hpp"
 #endif
-#ifndef BOOST_ABI_SUFFIX
-#  define BOOST_ABI_SUFFIX "ndnboost/config/abi/borland_suffix.hpp"
+#ifndef NDNBOOST_ABI_SUFFIX
+#  define NDNBOOST_ABI_SUFFIX "ndnboost/config/abi/borland_suffix.hpp"
 #endif
 //
 // Disable Win32 support in ANSI mode:
 //
-#  pragma defineonoption BOOST_DISABLE_WIN32 -A
+#  pragma defineonoption NDNBOOST_DISABLE_WIN32 -A
 //
 // MSVC compatibility mode does some nasty things:
 // TODO: look up if this doesn't apply to the whole 12xx range
 //
 #if defined(_MSC_VER) && (_MSC_VER <= 1200)
-#  define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
-#  define BOOST_NO_VOID_RETURNS
+#  define NDNBOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
+#  define NDNBOOST_NO_VOID_RETURNS
 #endif
 
-#define BOOST_COMPILER "CodeGear C++ version " BOOST_STRINGIZE(__CODEGEARC__)
+#define NDNBOOST_COMPILER "CodeGear C++ version " NDNBOOST_STRINGIZE(__CODEGEARC__)
 
diff --git a/include/ndnboost/config/compiler/comeau.hpp b/include/ndnboost/config/compiler/comeau.hpp
index 09f608c..4238be9 100644
--- a/include/ndnboost/config/compiler/comeau.hpp
+++ b/include/ndnboost/config/compiler/comeau.hpp
@@ -19,14 +19,14 @@
 #  if defined(_MSC_VER) && _MSC_VER <= 1300
 #     if _MSC_VER > 100
          // only set this in non-strict mode:
-#        define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
+#        define NDNBOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
 #     endif
 #  endif
 
 // Void returns don't work when emulating VC 6 (Peter Dimov)
 // TODO: look up if this doesn't apply to the whole 12xx range
 #  if defined(_MSC_VER) && (_MSC_VER < 1300)
-#     define BOOST_NO_VOID_RETURNS
+#     define NDNBOOST_NO_VOID_RETURNS
 #  endif
 
 #endif  // version 4245
@@ -35,10 +35,10 @@
 // enable __int64 support in VC emulation mode
 //
 #  if defined(_MSC_VER) && (_MSC_VER >= 1200)
-#     define BOOST_HAS_MS_INT64
+#     define NDNBOOST_HAS_MS_INT64
 #  endif
 
-#define BOOST_COMPILER "Comeau compiler version " BOOST_STRINGIZE(__COMO_VERSION__)
+#define NDNBOOST_COMPILER "Comeau compiler version " NDNBOOST_STRINGIZE(__COMO_VERSION__)
 
 //
 // versions check:
@@ -49,7 +49,7 @@
 //
 // last known and checked version is 4245:
 #if (__COMO_VERSION__ > 4245)
-#  if defined(BOOST_ASSERT_CONFIG)
+#  if defined(NDNBOOST_ASSERT_CONFIG)
 #     error "Unknown compiler version - please run the configure tests and report the results"
 #  endif
 #endif
diff --git a/include/ndnboost/config/compiler/common_edg.hpp b/include/ndnboost/config/compiler/common_edg.hpp
index 4b5d2d2..25181ac 100644
--- a/include/ndnboost/config/compiler/common_edg.hpp
+++ b/include/ndnboost/config/compiler/common_edg.hpp
@@ -19,86 +19,86 @@
 #endif
 
 #if (__EDG_VERSION__ <= 238)
-#   define BOOST_NO_INTEGRAL_INT64_T
-#   define BOOST_NO_SFINAE
+#   define NDNBOOST_NO_INTEGRAL_INT64_T
+#   define NDNBOOST_NO_SFINAE
 #endif
 
 #if (__EDG_VERSION__ <= 240)
-#   define BOOST_NO_VOID_RETURNS
+#   define NDNBOOST_NO_VOID_RETURNS
 #endif
 
-#if (__EDG_VERSION__ <= 241) && !defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP)
-#   define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
+#if (__EDG_VERSION__ <= 241) && !defined(NDNBOOST_NO_ARGUMENT_DEPENDENT_LOOKUP)
+#   define NDNBOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
 #endif
 
-#if (__EDG_VERSION__ <= 244) && !defined(BOOST_NO_TEMPLATE_TEMPLATES)
-#   define BOOST_NO_TEMPLATE_TEMPLATES
+#if (__EDG_VERSION__ <= 244) && !defined(NDNBOOST_NO_TEMPLATE_TEMPLATES)
+#   define NDNBOOST_NO_TEMPLATE_TEMPLATES
 #endif 
 
-#if (__EDG_VERSION__ < 300) && !defined(BOOST_NO_IS_ABSTRACT)
-#   define BOOST_NO_IS_ABSTRACT
+#if (__EDG_VERSION__ < 300) && !defined(NDNBOOST_NO_IS_ABSTRACT)
+#   define NDNBOOST_NO_IS_ABSTRACT
 #endif 
 
-#if (__EDG_VERSION__ <= 303) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
-#   define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
+#if (__EDG_VERSION__ <= 303) && !defined(NDNBOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
+#   define NDNBOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
 #endif 
 
 // See also kai.hpp which checks a Kai-specific symbol for EH
-# if !defined(__KCC) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
-#     define BOOST_NO_EXCEPTIONS
+# if !defined(__KCC) && !defined(__EXCEPTIONS) && !defined(NDNBOOST_NO_EXCEPTIONS)
+#     define NDNBOOST_NO_EXCEPTIONS
 # endif
 
 # if !defined(__NO_LONG_LONG)
-#     define BOOST_HAS_LONG_LONG
+#     define NDNBOOST_HAS_LONG_LONG
 # else
-#     define BOOST_NO_LONG_LONG
+#     define NDNBOOST_NO_LONG_LONG
 # endif
 
 //
 // C++0x features
 //
-//   See above for BOOST_NO_LONG_LONG
+//   See above for NDNBOOST_NO_LONG_LONG
 //
 #if (__EDG_VERSION__ < 310)
-#  define BOOST_NO_CXX11_EXTERN_TEMPLATE
+#  define NDNBOOST_NO_CXX11_EXTERN_TEMPLATE
 #endif
 #if (__EDG_VERSION__ <= 310)
 // No support for initializer lists
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#  define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
 #endif
 #if (__EDG_VERSION__ < 400)
-#  define BOOST_NO_CXX11_VARIADIC_MACROS
+#  define NDNBOOST_NO_CXX11_VARIADIC_MACROS
 #endif
 
-#define BOOST_NO_CXX11_AUTO_DECLARATIONS
-#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#define BOOST_NO_CXX11_CHAR16_T
-#define BOOST_NO_CXX11_CHAR32_T
-#define BOOST_NO_CXX11_CONSTEXPR
-#define BOOST_NO_CXX11_DECLTYPE
-#define BOOST_NO_CXX11_DECLTYPE_N3276
-#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#define BOOST_NO_CXX11_DELETED_FUNCTIONS
-#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#define BOOST_NO_CXX11_LAMBDAS
-#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#define BOOST_NO_CXX11_NOEXCEPT
-#define BOOST_NO_CXX11_NULLPTR
-#define BOOST_NO_CXX11_RANGE_BASED_FOR
-#define BOOST_NO_CXX11_RAW_LITERALS
-#define BOOST_NO_CXX11_RVALUE_REFERENCES
-#define BOOST_NO_CXX11_SCOPED_ENUMS
-#define BOOST_NO_SFINAE_EXPR
-#define BOOST_NO_CXX11_STATIC_ASSERT
-#define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#define BOOST_NO_CXX11_UNICODE_LITERALS
-#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
-#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
+#define NDNBOOST_NO_CXX11_AUTO_DECLARATIONS
+#define NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
+#define NDNBOOST_NO_CXX11_CHAR16_T
+#define NDNBOOST_NO_CXX11_CHAR32_T
+#define NDNBOOST_NO_CXX11_CONSTEXPR
+#define NDNBOOST_NO_CXX11_DECLTYPE
+#define NDNBOOST_NO_CXX11_DECLTYPE_N3276
+#define NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
+#define NDNBOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
+#define NDNBOOST_NO_CXX11_LAMBDAS
+#define NDNBOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
+#define NDNBOOST_NO_CXX11_NOEXCEPT
+#define NDNBOOST_NO_CXX11_NULLPTR
+#define NDNBOOST_NO_CXX11_RANGE_BASED_FOR
+#define NDNBOOST_NO_CXX11_RAW_LITERALS
+#define NDNBOOST_NO_CXX11_RVALUE_REFERENCES
+#define NDNBOOST_NO_CXX11_SCOPED_ENUMS
+#define NDNBOOST_NO_SFINAE_EXPR
+#define NDNBOOST_NO_CXX11_STATIC_ASSERT
+#define NDNBOOST_NO_CXX11_TEMPLATE_ALIASES
+#define NDNBOOST_NO_CXX11_UNICODE_LITERALS
+#define NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
+#define NDNBOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
+#define NDNBOOST_NO_CXX11_USER_DEFINED_LITERALS
 
 #ifdef c_plusplus
 // EDG has "long long" in non-strict mode
 // However, some libraries have insufficient "long long" support
-// #define BOOST_HAS_LONG_LONG
+// #define NDNBOOST_HAS_LONG_LONG
 #endif
diff --git a/include/ndnboost/config/compiler/compaq_cxx.hpp b/include/ndnboost/config/compiler/compaq_cxx.hpp
index e0d5fe6..cf8b5e5 100644
--- a/include/ndnboost/config/compiler/compaq_cxx.hpp
+++ b/include/ndnboost/config/compiler/compaq_cxx.hpp
@@ -7,7 +7,7 @@
 
 //  Tru64 C++ compiler setup (now HP):
 
-#define BOOST_COMPILER "HP Tru64 C++ " BOOST_STRINGIZE(__DECCXX_VER)
+#define NDNBOOST_COMPILER "HP Tru64 C++ " NDNBOOST_STRINGIZE(__DECCXX_VER)
 
 #include "ndnboost/config/compiler/common_edg.hpp"
 
diff --git a/include/ndnboost/config/compiler/cray.hpp b/include/ndnboost/config/compiler/cray.hpp
index 43a5db9..ca86118 100644
--- a/include/ndnboost/config/compiler/cray.hpp
+++ b/include/ndnboost/config/compiler/cray.hpp
@@ -7,7 +7,7 @@
 
 //  Greenhills C compiler setup:
 
-#define BOOST_COMPILER "Cray C version " BOOST_STRINGIZE(_RELEASE)
+#define NDNBOOST_COMPILER "Cray C version " NDNBOOST_STRINGIZE(_RELEASE)
 
 #if _RELEASE < 7
 #  error "Boost is not configured for Cray compilers prior to version 7, please try the configure script."
@@ -25,40 +25,40 @@
 //
 // Cray peculiarities, probably version 7 specific:
 //
-#undef BOOST_NO_CXX11_AUTO_DECLARATIONS
-#undef BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#define BOOST_HAS_NRVO
-#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
-#define BOOST_NO_CXX11_UNICODE_LITERALS
-#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
-#define BOOST_HAS_NRVO
-#define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#define BOOST_NO_CXX11_STATIC_ASSERT
-#define BOOST_NO_SFINAE_EXPR
-#define BOOST_NO_CXX11_SCOPED_ENUMS
-#define BOOST_NO_CXX11_RVALUE_REFERENCES
-#define BOOST_NO_CXX11_RANGE_BASED_FOR
-#define BOOST_NO_CXX11_RAW_LITERALS
-#define BOOST_NO_CXX11_NULLPTR
-#define BOOST_NO_CXX11_NOEXCEPT
-#define BOOST_NO_CXX11_LAMBDAS
-#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#define BOOST_NO_CXX11_DELETED_FUNCTIONS
-#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#define BOOST_NO_CXX11_DECLTYPE_N3276
-#define BOOST_NO_CXX11_DECLTYPE
-#define BOOST_NO_CXX11_CONSTEXPR
-#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
-#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
-#define BOOST_NO_CXX11_CHAR32_T
-#define BOOST_NO_CXX11_CHAR16_T
-//#define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
-#define BOOST_MATH_DISABLE_STD_FPCLASSIFY
-//#define BOOST_HAS_FPCLASSIFY
+#undef NDNBOOST_NO_CXX11_AUTO_DECLARATIONS
+#undef NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
+#define NDNBOOST_HAS_NRVO
+#define NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
+#define NDNBOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
+#define NDNBOOST_NO_CXX11_UNICODE_LITERALS
+#define NDNBOOST_NO_TWO_PHASE_NAME_LOOKUP
+#define NDNBOOST_HAS_NRVO
+#define NDNBOOST_NO_CXX11_TEMPLATE_ALIASES
+#define NDNBOOST_NO_CXX11_STATIC_ASSERT
+#define NDNBOOST_NO_SFINAE_EXPR
+#define NDNBOOST_NO_CXX11_SCOPED_ENUMS
+#define NDNBOOST_NO_CXX11_RVALUE_REFERENCES
+#define NDNBOOST_NO_CXX11_RANGE_BASED_FOR
+#define NDNBOOST_NO_CXX11_RAW_LITERALS
+#define NDNBOOST_NO_CXX11_NULLPTR
+#define NDNBOOST_NO_CXX11_NOEXCEPT
+#define NDNBOOST_NO_CXX11_LAMBDAS
+#define NDNBOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
+#define NDNBOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
+#define NDNBOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
+#define NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_DECLTYPE_N3276
+#define NDNBOOST_NO_CXX11_DECLTYPE
+#define NDNBOOST_NO_CXX11_CONSTEXPR
+#define NDNBOOST_NO_CXX11_USER_DEFINED_LITERALS
+#define NDNBOOST_NO_COMPLETE_VALUE_INITIALIZATION
+#define NDNBOOST_NO_CXX11_CHAR32_T
+#define NDNBOOST_NO_CXX11_CHAR16_T
+//#define NDNBOOST_BCB_PARTIAL_SPECIALIZATION_BUG
+#define NDNBOOST_MATH_DISABLE_STD_FPCLASSIFY
+//#define NDNBOOST_HAS_FPCLASSIFY
 
-#define BOOST_SP_USE_PTHREADS 
-#define BOOST_AC_USE_PTHREADS 
+#define NDNBOOST_SP_USE_PTHREADS 
+#define NDNBOOST_AC_USE_PTHREADS 
 
diff --git a/include/ndnboost/config/compiler/digitalmars.hpp b/include/ndnboost/config/compiler/digitalmars.hpp
index 0206dc3..b1cb3b7 100644
--- a/include/ndnboost/config/compiler/digitalmars.hpp
+++ b/include/ndnboost/config/compiler/digitalmars.hpp
@@ -6,39 +6,39 @@
 //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
 //  Digital Mars C++ compiler setup:
-#define BOOST_COMPILER __DMC_VERSION_STRING__
+#define NDNBOOST_COMPILER __DMC_VERSION_STRING__
 
-#define BOOST_HAS_LONG_LONG
-#define BOOST_HAS_PRAGMA_ONCE
+#define NDNBOOST_HAS_LONG_LONG
+#define NDNBOOST_HAS_PRAGMA_ONCE
 
 #if (__DMC__ <= 0x833)
-#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
-#define BOOST_NO_TEMPLATE_TEMPLATES
-#define BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING
-#define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
-#define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
+#define NDNBOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
+#define NDNBOOST_NO_TEMPLATE_TEMPLATES
+#define NDNBOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING
+#define NDNBOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
+#define NDNBOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
 #endif
-#if (__DMC__ <= 0x840) || !defined(BOOST_STRICT_CONFIG)
-#define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
-#define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
-#define BOOST_NO_OPERATORS_IN_NAMESPACE
-#define BOOST_NO_UNREACHABLE_RETURN_DETECTION
-#define BOOST_NO_SFINAE
-#define BOOST_NO_USING_TEMPLATE
-#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
+#if (__DMC__ <= 0x840) || !defined(NDNBOOST_STRICT_CONFIG)
+#define NDNBOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
+#define NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS
+#define NDNBOOST_NO_OPERATORS_IN_NAMESPACE
+#define NDNBOOST_NO_UNREACHABLE_RETURN_DETECTION
+#define NDNBOOST_NO_SFINAE
+#define NDNBOOST_NO_USING_TEMPLATE
+#define NDNBOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
 #endif
 
 //
 // has macros:
 #if (__DMC__ >= 0x840)
-#define BOOST_HAS_DIRENT_H
-#define BOOST_HAS_STDINT_H
-#define BOOST_HAS_WINTHREADS
+#define NDNBOOST_HAS_DIRENT_H
+#define NDNBOOST_HAS_STDINT_H
+#define NDNBOOST_HAS_WINTHREADS
 #endif
 
 #if (__DMC__ >= 0x847)
-#define BOOST_HAS_EXPM1
-#define BOOST_HAS_LOG1P
+#define NDNBOOST_HAS_EXPM1
+#define NDNBOOST_HAS_LOG1P
 #endif
 
 //
@@ -48,48 +48,48 @@
 #include <cstddef>
 #endif
 #if !defined(__STL_IMPORT_VENDOR_CSTD) && !defined(_STLP_IMPORT_VENDOR_CSTD)
-#  define BOOST_NO_STDC_NAMESPACE
+#  define NDNBOOST_NO_STDC_NAMESPACE
 #endif
 
 
 // check for exception handling support:
-#if !defined(_CPPUNWIND) && !defined(BOOST_NO_EXCEPTIONS)
-#  define BOOST_NO_EXCEPTIONS
+#if !defined(_CPPUNWIND) && !defined(NDNBOOST_NO_EXCEPTIONS)
+#  define NDNBOOST_NO_EXCEPTIONS
 #endif
 
 //
 // C++0x features
 //
-#define BOOST_NO_CXX11_AUTO_DECLARATIONS
-#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#define BOOST_NO_CXX11_CHAR16_T
-#define BOOST_NO_CXX11_CHAR32_T
-#define BOOST_NO_CXX11_CONSTEXPR
-#define BOOST_NO_CXX11_DECLTYPE
-#define BOOST_NO_CXX11_DECLTYPE_N3276
-#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#define BOOST_NO_CXX11_DELETED_FUNCTIONS
-#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#define BOOST_NO_CXX11_EXTERN_TEMPLATE
-#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#define BOOST_NO_CXX11_LAMBDAS
-#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#define BOOST_NO_CXX11_NOEXCEPT
-#define BOOST_NO_CXX11_NULLPTR
-#define BOOST_NO_CXX11_RANGE_BASED_FOR
-#define BOOST_NO_CXX11_RAW_LITERALS
-#define BOOST_NO_CXX11_RVALUE_REFERENCES
-#define BOOST_NO_CXX11_SCOPED_ENUMS
-#define BOOST_NO_SFINAE_EXPR
-#define BOOST_NO_CXX11_STATIC_ASSERT
-#define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#define BOOST_NO_CXX11_UNICODE_LITERALS
-#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
-#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
+#define NDNBOOST_NO_CXX11_AUTO_DECLARATIONS
+#define NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
+#define NDNBOOST_NO_CXX11_CHAR16_T
+#define NDNBOOST_NO_CXX11_CHAR32_T
+#define NDNBOOST_NO_CXX11_CONSTEXPR
+#define NDNBOOST_NO_CXX11_DECLTYPE
+#define NDNBOOST_NO_CXX11_DECLTYPE_N3276
+#define NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
+#define NDNBOOST_NO_CXX11_EXTERN_TEMPLATE
+#define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#define NDNBOOST_NO_CXX11_LAMBDAS
+#define NDNBOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
+#define NDNBOOST_NO_CXX11_NOEXCEPT
+#define NDNBOOST_NO_CXX11_NULLPTR
+#define NDNBOOST_NO_CXX11_RANGE_BASED_FOR
+#define NDNBOOST_NO_CXX11_RAW_LITERALS
+#define NDNBOOST_NO_CXX11_RVALUE_REFERENCES
+#define NDNBOOST_NO_CXX11_SCOPED_ENUMS
+#define NDNBOOST_NO_SFINAE_EXPR
+#define NDNBOOST_NO_CXX11_STATIC_ASSERT
+#define NDNBOOST_NO_CXX11_TEMPLATE_ALIASES
+#define NDNBOOST_NO_CXX11_UNICODE_LITERALS
+#define NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
+#define NDNBOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
+#define NDNBOOST_NO_CXX11_USER_DEFINED_LITERALS
 
 #if (__DMC__ < 0x812)
-#define BOOST_NO_CXX11_VARIADIC_MACROS
+#define NDNBOOST_NO_CXX11_VARIADIC_MACROS
 #endif
 
 #if __DMC__ < 0x800
@@ -98,7 +98,7 @@
 //
 // last known and checked version is ...:
 #if (__DMC__ > 0x848)
-#  if defined(BOOST_ASSERT_CONFIG)
+#  if defined(NDNBOOST_ASSERT_CONFIG)
 #     error "Unknown compiler version - please run the configure tests and report the results"
 #  endif
 #endif
diff --git a/include/ndnboost/config/compiler/gcc.hpp b/include/ndnboost/config/compiler/gcc.hpp
index b3d12ec..c2d5130 100644
--- a/include/ndnboost/config/compiler/gcc.hpp
+++ b/include/ndnboost/config/compiler/gcc.hpp
@@ -14,48 +14,48 @@
 //  GNU C++ compiler setup.
 
 //
-// Define BOOST_GCC so we know this is "real" GCC and not some pretender:
+// Define NDNBOOST_GCC so we know this is "real" GCC and not some pretender:
 //
 #if !defined(__CUDACC__)
-#define BOOST_GCC (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
+#define NDNBOOST_GCC (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
 #endif
 
 #if __GNUC__ < 3
 #   if __GNUC_MINOR__ == 91
        // egcs 1.1 won't parse shared_ptr.hpp without this:
-#      define BOOST_NO_AUTO_PTR
+#      define NDNBOOST_NO_AUTO_PTR
 #   endif
 #   if __GNUC_MINOR__ < 95
       //
       // Prior to gcc 2.95 member templates only partly
-      // work - define BOOST_MSVC6_MEMBER_TEMPLATES
+      // work - define NDNBOOST_MSVC6_MEMBER_TEMPLATES
       // instead since inline member templates mostly work.
       //
-#     define BOOST_NO_MEMBER_TEMPLATES
+#     define NDNBOOST_NO_MEMBER_TEMPLATES
 #     if __GNUC_MINOR__ >= 9
-#       define BOOST_MSVC6_MEMBER_TEMPLATES
+#       define NDNBOOST_MSVC6_MEMBER_TEMPLATES
 #     endif
 #   endif
 
 #   if __GNUC_MINOR__ < 96
-#     define BOOST_NO_SFINAE
+#     define NDNBOOST_NO_SFINAE
 #   endif
 
 #   if __GNUC_MINOR__ <= 97
-#     define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
-#     define BOOST_NO_OPERATORS_IN_NAMESPACE
+#     define NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS
+#     define NDNBOOST_NO_OPERATORS_IN_NAMESPACE
 #   endif
 
-#   define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
-#   define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
-#   define BOOST_NO_IS_ABSTRACT
-#   define BOOST_NO_CXX11_EXTERN_TEMPLATE
+#   define NDNBOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
+#   define NDNBOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
+#   define NDNBOOST_NO_IS_ABSTRACT
+#   define NDNBOOST_NO_CXX11_EXTERN_TEMPLATE
 // Variadic macros do not exist for gcc versions before 3.0
-#   define BOOST_NO_CXX11_VARIADIC_MACROS
+#   define NDNBOOST_NO_CXX11_VARIADIC_MACROS
 #elif __GNUC__ == 3
 #  if defined (__PATHSCALE__)
-#     define BOOST_NO_TWO_PHASE_NAME_LOOKUP
-#     define BOOST_NO_IS_ABSTRACT
+#     define NDNBOOST_NO_TWO_PHASE_NAME_LOOKUP
+#     define NDNBOOST_NO_IS_ABSTRACT
 #  endif
    //
    // gcc-3.x problems:
@@ -63,20 +63,20 @@
    // Bug specific to gcc 3.1 and 3.2:
    //
 #  if ((__GNUC_MINOR__ == 1) || (__GNUC_MINOR__ == 2))
-#     define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
+#     define NDNBOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
 #  endif
 #  if __GNUC_MINOR__ < 4
-#     define BOOST_NO_IS_ABSTRACT
+#     define NDNBOOST_NO_IS_ABSTRACT
 #  endif
-#  define BOOST_NO_CXX11_EXTERN_TEMPLATE
+#  define NDNBOOST_NO_CXX11_EXTERN_TEMPLATE
 #endif
 #if __GNUC__ < 4
 //
 // All problems to gcc-3.x and earlier here:
 //
-#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
+#define NDNBOOST_NO_TWO_PHASE_NAME_LOOKUP
 #  ifdef __OPEN64__
-#     define BOOST_NO_IS_ABSTRACT
+#     define NDNBOOST_NO_IS_ABSTRACT
 #  endif
 #endif
 
@@ -89,11 +89,11 @@
 // reported by Michael Elizabeth Chastain in 2007,
 // http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33916 (fixed for GCC 4.2.4)
 // See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
-#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
+#define NDNBOOST_NO_COMPLETE_VALUE_INITIALIZATION
 #endif
 
-#if !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
-# define BOOST_NO_EXCEPTIONS
+#if !defined(__EXCEPTIONS) && !defined(NDNBOOST_NO_EXCEPTIONS)
+# define NDNBOOST_NO_EXCEPTIONS
 #endif
 
 
@@ -103,19 +103,19 @@
 // later if no threading API is detected.
 //
 #if !defined(__MINGW32__) && !defined(linux) && !defined(__linux) && !defined(__linux__)
-# define BOOST_HAS_THREADS
+# define NDNBOOST_HAS_THREADS
 #endif 
 
 //
 // gcc has "long long"
 //
-#define BOOST_HAS_LONG_LONG
+#define NDNBOOST_HAS_LONG_LONG
 
 //
 // gcc implements the named return value optimization since version 3.1
 //
 #if __GNUC__ > 3 || ( __GNUC__ == 3 && __GNUC_MINOR__ >= 1 )
-#define BOOST_HAS_NRVO
+#define NDNBOOST_HAS_NRVO
 #endif
 
 //
@@ -126,17 +126,17 @@
      // All Win32 development environments, including 64-bit Windows and MinGW, define 
      // _WIN32 or one of its variant spellings. Note that Cygwin is a POSIX environment,
      // so does not define _WIN32 or its variants.
-#    define BOOST_HAS_DECLSPEC
-#    define BOOST_SYMBOL_EXPORT __attribute__((dllexport))
-#    define BOOST_SYMBOL_IMPORT __attribute__((dllimport))
+#    define NDNBOOST_HAS_DECLSPEC
+#    define NDNBOOST_SYMBOL_EXPORT __attribute__((dllexport))
+#    define NDNBOOST_SYMBOL_IMPORT __attribute__((dllimport))
 #  else
-#    define BOOST_SYMBOL_EXPORT __attribute__((visibility("default")))
-#    define BOOST_SYMBOL_IMPORT
+#    define NDNBOOST_SYMBOL_EXPORT __attribute__((visibility("default")))
+#    define NDNBOOST_SYMBOL_IMPORT
 #  endif
-#  define BOOST_SYMBOL_VISIBLE __attribute__((visibility("default")))
+#  define NDNBOOST_SYMBOL_VISIBLE __attribute__((visibility("default")))
 #else
-// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined  
-#  define BOOST_SYMBOL_EXPORT
+// config/platform/win32.hpp will define NDNBOOST_SYMBOL_EXPORT, etc., unless already defined  
+#  define NDNBOOST_SYMBOL_EXPORT
 #endif
 
 //
@@ -144,11 +144,11 @@
 //
 #if __GNUC__ * 100 + __GNUC_MINOR__ >= 403
 #  ifndef __GXX_RTTI
-#     ifndef BOOST_NO_TYPEID
-#        define BOOST_NO_TYPEID
+#     ifndef NDNBOOST_NO_TYPEID
+#        define NDNBOOST_NO_TYPEID
 #     endif
-#     ifndef BOOST_NO_RTTI
-#        define BOOST_NO_RTTI
+#     ifndef NDNBOOST_NO_RTTI
+#        define NDNBOOST_NO_RTTI
 #     endif
 #  endif
 #endif
@@ -164,7 +164,7 @@
 // of the circumstances under which it's supported:
 //
 #if defined(__SIZEOF_INT128__) && !defined(__CUDACC__)
-#  define BOOST_HAS_INT128
+#  define NDNBOOST_HAS_INT128
 #endif
 
 // C++0x features in 4.3.n and later
@@ -173,91 +173,91 @@
 // C++0x features are only enabled when -std=c++0x or -std=gnu++0x are
 // passed on the command line, which in turn defines
 // __GXX_EXPERIMENTAL_CXX0X__.
-#  define BOOST_HAS_DECLTYPE
-#  define BOOST_HAS_RVALUE_REFS
-#  define BOOST_HAS_STATIC_ASSERT
-#  define BOOST_HAS_VARIADIC_TMPL
+#  define NDNBOOST_HAS_DECLTYPE
+#  define NDNBOOST_HAS_RVALUE_REFS
+#  define NDNBOOST_HAS_STATIC_ASSERT
+#  define NDNBOOST_HAS_VARIADIC_TMPL
 #else
-#  define BOOST_NO_CXX11_DECLTYPE
-#  define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#  define BOOST_NO_CXX11_RVALUE_REFERENCES
-#  define BOOST_NO_CXX11_STATIC_ASSERT
+#  define NDNBOOST_NO_CXX11_DECLTYPE
+#  define NDNBOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
+#  define NDNBOOST_NO_CXX11_RVALUE_REFERENCES
+#  define NDNBOOST_NO_CXX11_STATIC_ASSERT
 
 // Variadic templates compiler: 
 //   http://www.generic-programming.org/~dgregor/cpp/variadic-templates.html
 #  if defined(__VARIADIC_TEMPLATES) || (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4) && defined(__GXX_EXPERIMENTAL_CXX0X__))
-#    define BOOST_HAS_VARIADIC_TMPL
+#    define NDNBOOST_HAS_VARIADIC_TMPL
 #  else
-#    define BOOST_NO_CXX11_VARIADIC_TEMPLATES
+#    define NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
 #  endif
 #endif
 
 // C++0x features in 4.4.n and later
 //
 #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
-#  define BOOST_NO_CXX11_AUTO_DECLARATIONS
-#  define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#  define BOOST_NO_CXX11_CHAR16_T
-#  define BOOST_NO_CXX11_CHAR32_T
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#  define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#  define BOOST_NO_CXX11_DELETED_FUNCTIONS
+#  define NDNBOOST_NO_CXX11_AUTO_DECLARATIONS
+#  define NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
+#  define NDNBOOST_NO_CXX11_CHAR16_T
+#  define NDNBOOST_NO_CXX11_CHAR32_T
+#  define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#  define NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS
+#  define NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
 #endif
 
 #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5)
-#  define BOOST_NO_SFINAE_EXPR
+#  define NDNBOOST_NO_SFINAE_EXPR
 #endif
 
 // C++0x features in 4.5.0 and later
 //
 #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
-#  define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#  define BOOST_NO_CXX11_LAMBDAS
-#  define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#  define BOOST_NO_CXX11_RAW_LITERALS
-#  define BOOST_NO_CXX11_UNICODE_LITERALS
+#  define NDNBOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
+#  define NDNBOOST_NO_CXX11_LAMBDAS
+#  define NDNBOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
+#  define NDNBOOST_NO_CXX11_RAW_LITERALS
+#  define NDNBOOST_NO_CXX11_UNICODE_LITERALS
 #endif
 
 // C++0x features in 4.5.1 and later
 //
 #if (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__ < 40501) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
-// scoped enums have a serious bug in 4.4.0, so define BOOST_NO_CXX11_SCOPED_ENUMS before 4.5.1
+// scoped enums have a serious bug in 4.4.0, so define NDNBOOST_NO_CXX11_SCOPED_ENUMS before 4.5.1
 // See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38064
-#  define BOOST_NO_CXX11_SCOPED_ENUMS
+#  define NDNBOOST_NO_CXX11_SCOPED_ENUMS
 #endif
 
 // C++0x features in 4.6.n and later
 //
 #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 6) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
-#define BOOST_NO_CXX11_CONSTEXPR
-#define BOOST_NO_CXX11_NOEXCEPT
-#define BOOST_NO_CXX11_NULLPTR
-#define BOOST_NO_CXX11_RANGE_BASED_FOR
-#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
+#define NDNBOOST_NO_CXX11_CONSTEXPR
+#define NDNBOOST_NO_CXX11_NOEXCEPT
+#define NDNBOOST_NO_CXX11_NULLPTR
+#define NDNBOOST_NO_CXX11_RANGE_BASED_FOR
+#define NDNBOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
 #endif
 
 // C++0x features in 4.7.n and later
 //
 #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 7) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
-#  define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#  define BOOST_NO_CXX11_USER_DEFINED_LITERALS
+#  define NDNBOOST_NO_CXX11_TEMPLATE_ALIASES
+#  define NDNBOOST_NO_CXX11_USER_DEFINED_LITERALS
 #endif
 
 // C++0x features in 4.8.1 and later
 //
 #if (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__ < 40801) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
-#  define BOOST_NO_CXX11_DECLTYPE_N3276
+#  define NDNBOOST_NO_CXX11_DECLTYPE_N3276
 #endif
 
-#ifndef BOOST_COMPILER
-#  define BOOST_COMPILER "GNU C++ version " __VERSION__
+#ifndef NDNBOOST_COMPILER
+#  define NDNBOOST_COMPILER "GNU C++ version " __VERSION__
 #endif
 
 // ConceptGCC compiler:
 //   http://www.generic-programming.org/software/ConceptGCC/
 #ifdef __GXX_CONCEPTS__
-#  define BOOST_HAS_CONCEPTS
-#  define BOOST_COMPILER "ConceptGCC version " __VERSION__
+#  define NDNBOOST_HAS_CONCEPTS
+#  define NDNBOOST_COMPILER "ConceptGCC version " __VERSION__
 #endif
 
 // versions check:
@@ -268,7 +268,7 @@
 //
 // last known and checked version is 4.6 (Pre-release):
 #if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 6))
-#  if defined(BOOST_ASSERT_CONFIG)
+#  if defined(NDNBOOST_ASSERT_CONFIG)
 #     error "Unknown compiler version - please run the configure tests and report the results"
 #  else
 // we don't emit warnings here anymore since there are no defect macros defined for
diff --git a/include/ndnboost/config/compiler/gcc_xml.hpp b/include/ndnboost/config/compiler/gcc_xml.hpp
index 1af2fc1..17f9f78 100644
--- a/include/ndnboost/config/compiler/gcc_xml.hpp
+++ b/include/ndnboost/config/compiler/gcc_xml.hpp
@@ -8,7 +8,7 @@
 //  GCC-XML C++ compiler setup:
 
 #  if !defined(__GCCXML_GNUC__) || ((__GCCXML_GNUC__ <= 3) && (__GCCXML_GNUC_MINOR__ <= 3))
-#     define BOOST_NO_IS_ABSTRACT
+#     define NDNBOOST_NO_IS_ABSTRACT
 #  endif
 
 //
@@ -17,45 +17,45 @@
 // later if no threading API is detected.
 //
 #if !defined(__MINGW32__) && !defined(_MSC_VER) && !defined(linux) && !defined(__linux) && !defined(__linux__)
-# define BOOST_HAS_THREADS
+# define NDNBOOST_HAS_THREADS
 #endif 
 
 //
 // gcc has "long long"
 //
-#define BOOST_HAS_LONG_LONG
+#define NDNBOOST_HAS_LONG_LONG
 
 // C++0x features:
 //
-#  define BOOST_NO_CXX11_CONSTEXPR
-#  define BOOST_NO_CXX11_NULLPTR
-#  define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#  define BOOST_NO_CXX11_DECLTYPE
-#  define BOOST_NO_CXX11_DECLTYPE_N3276
-#  define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#  define BOOST_NO_CXX11_RVALUE_REFERENCES
-#  define BOOST_NO_CXX11_STATIC_ASSERT
-#  define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#  define BOOST_NO_CXX11_VARIADIC_MACROS
-#  define BOOST_NO_CXX11_AUTO_DECLARATIONS
-#  define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#  define BOOST_NO_CXX11_CHAR16_T
-#  define BOOST_NO_CXX11_CHAR32_T
-#  define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#  define BOOST_NO_CXX11_DELETED_FUNCTIONS
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#  define BOOST_NO_CXX11_SCOPED_ENUMS  
-#  define BOOST_NO_SFINAE_EXPR
-#  define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#  define BOOST_NO_CXX11_LAMBDAS
-#  define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#  define BOOST_NO_CXX11_RANGE_BASED_FOR
-#  define BOOST_NO_CXX11_RAW_LITERALS
-#  define BOOST_NO_CXX11_UNICODE_LITERALS
-#  define BOOST_NO_CXX11_NOEXCEPT
-#  define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
-#  define BOOST_NO_CXX11_USER_DEFINED_LITERALS
+#  define NDNBOOST_NO_CXX11_CONSTEXPR
+#  define NDNBOOST_NO_CXX11_NULLPTR
+#  define NDNBOOST_NO_CXX11_TEMPLATE_ALIASES
+#  define NDNBOOST_NO_CXX11_DECLTYPE
+#  define NDNBOOST_NO_CXX11_DECLTYPE_N3276
+#  define NDNBOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
+#  define NDNBOOST_NO_CXX11_RVALUE_REFERENCES
+#  define NDNBOOST_NO_CXX11_STATIC_ASSERT
+#  define NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
+#  define NDNBOOST_NO_CXX11_VARIADIC_MACROS
+#  define NDNBOOST_NO_CXX11_AUTO_DECLARATIONS
+#  define NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
+#  define NDNBOOST_NO_CXX11_CHAR16_T
+#  define NDNBOOST_NO_CXX11_CHAR32_T
+#  define NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS
+#  define NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
+#  define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#  define NDNBOOST_NO_CXX11_SCOPED_ENUMS  
+#  define NDNBOOST_NO_SFINAE_EXPR
+#  define NDNBOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
+#  define NDNBOOST_NO_CXX11_LAMBDAS
+#  define NDNBOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
+#  define NDNBOOST_NO_CXX11_RANGE_BASED_FOR
+#  define NDNBOOST_NO_CXX11_RAW_LITERALS
+#  define NDNBOOST_NO_CXX11_UNICODE_LITERALS
+#  define NDNBOOST_NO_CXX11_NOEXCEPT
+#  define NDNBOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
+#  define NDNBOOST_NO_CXX11_USER_DEFINED_LITERALS
 
-#define BOOST_COMPILER "GCC-XML C++ version " __GCCXML__
+#define NDNBOOST_COMPILER "GCC-XML C++ version " __GCCXML__
 
 
diff --git a/include/ndnboost/config/compiler/greenhills.hpp b/include/ndnboost/config/compiler/greenhills.hpp
index 8d2da94..d16897d 100644
--- a/include/ndnboost/config/compiler/greenhills.hpp
+++ b/include/ndnboost/config/compiler/greenhills.hpp
@@ -7,7 +7,7 @@
 
 //  Greenhills C++ compiler setup:
 
-#define BOOST_COMPILER "Greenhills C++ version " BOOST_STRINGIZE(__ghs)
+#define NDNBOOST_COMPILER "Greenhills C++ version " NDNBOOST_STRINGIZE(__ghs)
 
 #include "ndnboost/config/compiler/common_edg.hpp"
 
@@ -20,7 +20,7 @@
 //
 // last known and checked version is 0:
 #if (__ghs > 0)
-#  if defined(BOOST_ASSERT_CONFIG)
+#  if defined(NDNBOOST_ASSERT_CONFIG)
 #     error "Unknown compiler version - please run the configure tests and report the results"
 #  endif
 #endif
diff --git a/include/ndnboost/config/compiler/hp_acc.hpp b/include/ndnboost/config/compiler/hp_acc.hpp
index f2c917a..d8438e8 100644
--- a/include/ndnboost/config/compiler/hp_acc.hpp
+++ b/include/ndnboost/config/compiler/hp_acc.hpp
@@ -17,42 +17,42 @@
 #endif
 
 #if (__HP_aCC <= 33100)
-#    define BOOST_NO_INTEGRAL_INT64_T
-#    define BOOST_NO_OPERATORS_IN_NAMESPACE
+#    define NDNBOOST_NO_INTEGRAL_INT64_T
+#    define NDNBOOST_NO_OPERATORS_IN_NAMESPACE
 #  if !defined(_NAMESPACE_STD)
-#     define BOOST_NO_STD_LOCALE
-#     define BOOST_NO_STRINGSTREAM
+#     define NDNBOOST_NO_STD_LOCALE
+#     define NDNBOOST_NO_STRINGSTREAM
 #  endif
 #endif
 
 #if (__HP_aCC <= 33300)
 // member templates are sufficiently broken that we disable them for now
-#    define BOOST_NO_MEMBER_TEMPLATES
-#    define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
-#    define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
+#    define NDNBOOST_NO_MEMBER_TEMPLATES
+#    define NDNBOOST_NO_DEPENDENT_NESTED_DERIVATIONS
+#    define NDNBOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
 #endif
 
 #if (__HP_aCC <= 38000)
-#  define BOOST_NO_TWO_PHASE_NAME_LOOKUP
+#  define NDNBOOST_NO_TWO_PHASE_NAME_LOOKUP
 #endif
 
 #if (__HP_aCC > 50000) && (__HP_aCC < 60000)
-#    define BOOST_NO_UNREACHABLE_RETURN_DETECTION
-#    define BOOST_NO_TEMPLATE_TEMPLATES
-#    define BOOST_NO_SWPRINTF
-#    define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
-#    define BOOST_NO_IS_ABSTRACT
-#    define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
+#    define NDNBOOST_NO_UNREACHABLE_RETURN_DETECTION
+#    define NDNBOOST_NO_TEMPLATE_TEMPLATES
+#    define NDNBOOST_NO_SWPRINTF
+#    define NDNBOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
+#    define NDNBOOST_NO_IS_ABSTRACT
+#    define NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS
 #endif 
 
 // optional features rather than defects:
 #if (__HP_aCC >= 33900)
-#    define BOOST_HAS_LONG_LONG
-#    define BOOST_HAS_PARTIAL_STD_ALLOCATOR
+#    define NDNBOOST_HAS_LONG_LONG
+#    define NDNBOOST_HAS_PARTIAL_STD_ALLOCATOR
 #endif
 
 #if (__HP_aCC >= 50000 ) && (__HP_aCC <= 53800 ) || (__HP_aCC < 31300 )
-#    define BOOST_NO_MEMBER_TEMPLATE_KEYWORD
+#    define NDNBOOST_NO_MEMBER_TEMPLATE_KEYWORD
 #endif
 
 // This macro should not be defined when compiling in strict ansi
@@ -61,10 +61,10 @@
 // of aCC6 compiler will provide predefined macros reflecting the
 // compilation options, including the standard mode.
 #if (__HP_aCC >= 60000) || ((__HP_aCC > 38000) && defined(__hpxstd98))
-#    define BOOST_NO_TWO_PHASE_NAME_LOOKUP
+#    define NDNBOOST_NO_TWO_PHASE_NAME_LOOKUP
 #endif
 
-#define BOOST_COMPILER "HP aCC version " BOOST_STRINGIZE(__HP_aCC)
+#define NDNBOOST_COMPILER "HP aCC version " NDNBOOST_STRINGIZE(__HP_aCC)
 
 //
 // versions check:
@@ -88,37 +88,37 @@
 //
 // C++0x features
 //
-//   See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
+//   See boost\config\suffix.hpp for NDNBOOST_NO_LONG_LONG
 //
 #if !defined(__EDG__)
 
-#define BOOST_NO_CXX11_AUTO_DECLARATIONS
-#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#define BOOST_NO_CXX11_CHAR16_T
-#define BOOST_NO_CXX11_CHAR32_T
-#define BOOST_NO_CXX11_CONSTEXPR
-#define BOOST_NO_CXX11_DECLTYPE
-#define BOOST_NO_CXX11_DECLTYPE_N3276
-#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#define BOOST_NO_CXX11_DELETED_FUNCTIONS
-#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#define BOOST_NO_CXX11_EXTERN_TEMPLATE
-#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#define BOOST_NO_CXX11_LAMBDAS
-#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#define BOOST_NO_CXX11_NOEXCEPT
-#define BOOST_NO_CXX11_NULLPTR
-#define BOOST_NO_CXX11_RANGE_BASED_FOR
-#define BOOST_NO_CXX11_RAW_LITERALS
-#define BOOST_NO_CXX11_RVALUE_REFERENCES
-#define BOOST_NO_CXX11_SCOPED_ENUMS
-#define BOOST_NO_SFINAE_EXPR
-#define BOOST_NO_CXX11_STATIC_ASSERT
-#define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#define BOOST_NO_CXX11_UNICODE_LITERALS
-#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
+#define NDNBOOST_NO_CXX11_AUTO_DECLARATIONS
+#define NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
+#define NDNBOOST_NO_CXX11_CHAR16_T
+#define NDNBOOST_NO_CXX11_CHAR32_T
+#define NDNBOOST_NO_CXX11_CONSTEXPR
+#define NDNBOOST_NO_CXX11_DECLTYPE
+#define NDNBOOST_NO_CXX11_DECLTYPE_N3276
+#define NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
+#define NDNBOOST_NO_CXX11_EXTERN_TEMPLATE
+#define NDNBOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
+#define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#define NDNBOOST_NO_CXX11_LAMBDAS
+#define NDNBOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
+#define NDNBOOST_NO_CXX11_NOEXCEPT
+#define NDNBOOST_NO_CXX11_NULLPTR
+#define NDNBOOST_NO_CXX11_RANGE_BASED_FOR
+#define NDNBOOST_NO_CXX11_RAW_LITERALS
+#define NDNBOOST_NO_CXX11_RVALUE_REFERENCES
+#define NDNBOOST_NO_CXX11_SCOPED_ENUMS
+#define NDNBOOST_NO_SFINAE_EXPR
+#define NDNBOOST_NO_CXX11_STATIC_ASSERT
+#define NDNBOOST_NO_CXX11_TEMPLATE_ALIASES
+#define NDNBOOST_NO_CXX11_UNICODE_LITERALS
+#define NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
+#define NDNBOOST_NO_CXX11_USER_DEFINED_LITERALS
 
 /* 
   See https://forums13.itrc.hp.com/service/forums/questionanswer.do?threadId=1443331 and
@@ -126,7 +126,7 @@
 */
 
 #if (__HP_aCC < 62500) || !defined(HP_CXX0x_SOURCE)
-  #define BOOST_NO_CXX11_VARIADIC_MACROS
+  #define NDNBOOST_NO_CXX11_VARIADIC_MACROS
 #endif
 
 #endif
@@ -135,7 +135,7 @@
 // last known and checked version for HP-UX/ia64 is 61300
 // last known and checked version for PA-RISC is 38000
 #if ((__HP_aCC > 61300) || ((__HP_aCC > 38000) && defined(__hpxstd98)))
-#  if defined(BOOST_ASSERT_CONFIG)
+#  if defined(NDNBOOST_ASSERT_CONFIG)
 #     error "Unknown compiler version - please run the configure tests and report the results"
 #  endif
 #endif
diff --git a/include/ndnboost/config/compiler/intel.hpp b/include/ndnboost/config/compiler/intel.hpp
index ea27b8d..9216831 100644
--- a/include/ndnboost/config/compiler/intel.hpp
+++ b/include/ndnboost/config/compiler/intel.hpp
@@ -17,42 +17,42 @@
 #include "ndnboost/config/compiler/common_edg.hpp"
 
 #if defined(__INTEL_COMPILER)
-#  define BOOST_INTEL_CXX_VERSION __INTEL_COMPILER
+#  define NDNBOOST_INTEL_CXX_VERSION __INTEL_COMPILER
 #elif defined(__ICL)
-#  define BOOST_INTEL_CXX_VERSION __ICL
+#  define NDNBOOST_INTEL_CXX_VERSION __ICL
 #elif defined(__ICC)
-#  define BOOST_INTEL_CXX_VERSION __ICC
+#  define NDNBOOST_INTEL_CXX_VERSION __ICC
 #elif defined(__ECC)
-#  define BOOST_INTEL_CXX_VERSION __ECC
+#  define NDNBOOST_INTEL_CXX_VERSION __ECC
 #endif
 
 // Flags determined by comparing output of 'icpc -dM -E' with and without '-std=c++0x'
-#if (!(defined(_WIN32) || defined(_WIN64)) && defined(__STDC_HOSTED__) && (__STDC_HOSTED__ && (BOOST_INTEL_CXX_VERSION <= 1200))) || defined(__GXX_EXPERIMENTAL_CPP0X__)
-#  define BOOST_INTEL_STDCXX0X
+#if (!(defined(_WIN32) || defined(_WIN64)) && defined(__STDC_HOSTED__) && (__STDC_HOSTED__ && (NDNBOOST_INTEL_CXX_VERSION <= 1200))) || defined(__GXX_EXPERIMENTAL_CPP0X__)
+#  define NDNBOOST_INTEL_STDCXX0X
 #endif
 #if defined(_MSC_VER) && (_MSC_VER >= 1600)
-#  define BOOST_INTEL_STDCXX0X
+#  define NDNBOOST_INTEL_STDCXX0X
 #endif
 
-#ifdef BOOST_INTEL_STDCXX0X
-#define BOOST_COMPILER "Intel C++ C++0x mode version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
+#ifdef NDNBOOST_INTEL_STDCXX0X
+#define NDNBOOST_COMPILER "Intel C++ C++0x mode version " NDNBOOST_STRINGIZE(NDNBOOST_INTEL_CXX_VERSION)
 #else
-#define BOOST_COMPILER "Intel C++ version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
+#define NDNBOOST_COMPILER "Intel C++ version " NDNBOOST_STRINGIZE(NDNBOOST_INTEL_CXX_VERSION)
 #endif
-#define BOOST_INTEL BOOST_INTEL_CXX_VERSION
+#define NDNBOOST_INTEL NDNBOOST_INTEL_CXX_VERSION
 
 #if defined(_WIN32) || defined(_WIN64)
-#  define BOOST_INTEL_WIN BOOST_INTEL
+#  define NDNBOOST_INTEL_WIN NDNBOOST_INTEL
 #else
-#  define BOOST_INTEL_LINUX BOOST_INTEL
+#  define NDNBOOST_INTEL_LINUX NDNBOOST_INTEL
 #endif
 
-#if (BOOST_INTEL_CXX_VERSION <= 500) && defined(_MSC_VER)
-#  define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
-#  define BOOST_NO_TEMPLATE_TEMPLATES
+#if (NDNBOOST_INTEL_CXX_VERSION <= 500) && defined(_MSC_VER)
+#  define NDNBOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
+#  define NDNBOOST_NO_TEMPLATE_TEMPLATES
 #endif
 
-#if (BOOST_INTEL_CXX_VERSION <= 600)
+#if (NDNBOOST_INTEL_CXX_VERSION <= 600)
 
 #  if defined(_MSC_VER) && (_MSC_VER <= 1300) // added check for <= VC 7 (Peter Dimov)
 
@@ -64,28 +64,28 @@
 // details as they apply to particular versions of the compiler. When the
 // compiler does not predefine a macro indicating if an option has been set,
 // this config file simply assumes the option has been set.
-// Thus BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP will not be defined, even if
+// Thus NDNBOOST_NO_ARGUMENT_DEPENDENT_LOOKUP will not be defined, even if
 // the compiler option is not enabled.
 
-#     define BOOST_NO_SWPRINTF
+#     define NDNBOOST_NO_SWPRINTF
 #  endif
 
 // Void returns, 64 bit integrals don't work when emulating VC 6 (Peter Dimov)
 
 #  if defined(_MSC_VER) && (_MSC_VER <= 1200)
-#     define BOOST_NO_VOID_RETURNS
-#     define BOOST_NO_INTEGRAL_INT64_T
+#     define NDNBOOST_NO_VOID_RETURNS
+#     define NDNBOOST_NO_INTEGRAL_INT64_T
 #  endif
 
 #endif
 
-#if (BOOST_INTEL_CXX_VERSION <= 710) && defined(_WIN32)
-#  define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
+#if (NDNBOOST_INTEL_CXX_VERSION <= 710) && defined(_WIN32)
+#  define NDNBOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
 #endif
 
 // See http://aspn.activestate.com/ASPN/Mail/Message/boost/1614864
-#if BOOST_INTEL_CXX_VERSION < 600
-#  define BOOST_NO_INTRINSIC_WCHAR_T
+#if NDNBOOST_INTEL_CXX_VERSION < 600
+#  define NDNBOOST_NO_INTRINSIC_WCHAR_T
 #else
 // We should test the macro _WCHAR_T_DEFINED to check if the compiler
 // supports wchar_t natively. *BUT* there is a problem here: the standard
@@ -96,79 +96,79 @@
 // Under UNIX, the situation is exactly the same, but the macro _WCHAR_T
 // is used instead.
 #  if ((_WCHAR_T_DEFINED + 0) == 0) && ((_WCHAR_T + 0) == 0)
-#    define BOOST_NO_INTRINSIC_WCHAR_T
+#    define NDNBOOST_NO_INTRINSIC_WCHAR_T
 #  endif
 #endif
 
-#if defined(__GNUC__) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
+#if defined(__GNUC__) && !defined(NDNBOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
 //
 // Figure out when Intel is emulating this gcc bug
 // (All Intel versions prior to 9.0.26, and versions
 // later than that if they are set up to emulate gcc 3.2
 // or earlier):
 //
-#  if ((__GNUC__ == 3) && (__GNUC_MINOR__ <= 2)) || (BOOST_INTEL < 900) || (__INTEL_COMPILER_BUILD_DATE < 20050912)
-#     define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
+#  if ((__GNUC__ == 3) && (__GNUC_MINOR__ <= 2)) || (NDNBOOST_INTEL < 900) || (__INTEL_COMPILER_BUILD_DATE < 20050912)
+#     define NDNBOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
 #  endif
 #endif
-#if (defined(__GNUC__) && (__GNUC__ < 4)) || defined(_WIN32) || (BOOST_INTEL_CXX_VERSION <= 1200)
+#if (defined(__GNUC__) && (__GNUC__ < 4)) || defined(_WIN32) || (NDNBOOST_INTEL_CXX_VERSION <= 1200)
 // GCC or VC emulation:
-#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
+#define NDNBOOST_NO_TWO_PHASE_NAME_LOOKUP
 #endif
 //
-// Verify that we have actually got BOOST_NO_INTRINSIC_WCHAR_T
+// Verify that we have actually got NDNBOOST_NO_INTRINSIC_WCHAR_T
 // set correctly, if we don't do this now, we will get errors later
 // in type_traits code among other things, getting this correct
 // for the Intel compiler is actually remarkably fragile and tricky:
 //
 #ifdef __cplusplus
-#if defined(BOOST_NO_INTRINSIC_WCHAR_T)
+#if defined(NDNBOOST_NO_INTRINSIC_WCHAR_T)
 #include <cwchar>
 template< typename T > struct assert_no_intrinsic_wchar_t;
 template<> struct assert_no_intrinsic_wchar_t<wchar_t> { typedef void type; };
-// if you see an error here then you need to unset BOOST_NO_INTRINSIC_WCHAR_T
+// if you see an error here then you need to unset NDNBOOST_NO_INTRINSIC_WCHAR_T
 // where it is defined above:
 typedef assert_no_intrinsic_wchar_t<unsigned short>::type assert_no_intrinsic_wchar_t_;
 #else
 template< typename T > struct assert_intrinsic_wchar_t;
 template<> struct assert_intrinsic_wchar_t<wchar_t> {};
-// if you see an error here then define BOOST_NO_INTRINSIC_WCHAR_T on the command line:
+// if you see an error here then define NDNBOOST_NO_INTRINSIC_WCHAR_T on the command line:
 template<> struct assert_intrinsic_wchar_t<unsigned short> {};
 #endif
 #endif
 
 #if defined(_MSC_VER) && (_MSC_VER+0 >= 1000)
 #  if _MSC_VER >= 1200
-#     define BOOST_HAS_MS_INT64
+#     define NDNBOOST_HAS_MS_INT64
 #  endif
-#  define BOOST_NO_SWPRINTF
-#  define BOOST_NO_TWO_PHASE_NAME_LOOKUP
+#  define NDNBOOST_NO_SWPRINTF
+#  define NDNBOOST_NO_TWO_PHASE_NAME_LOOKUP
 #elif defined(_WIN32)
-#  define BOOST_DISABLE_WIN32
+#  define NDNBOOST_DISABLE_WIN32
 #endif
 
 // I checked version 6.0 build 020312Z, it implements the NRVO.
 // Correct this as you find out which version of the compiler
 // implemented the NRVO first.  (Daniel Frey)
-#if (BOOST_INTEL_CXX_VERSION >= 600)
-#  define BOOST_HAS_NRVO
+#if (NDNBOOST_INTEL_CXX_VERSION >= 600)
+#  define NDNBOOST_HAS_NRVO
 #endif
 
 //
 // versions check:
 // we don't support Intel prior to version 5.0:
-#if BOOST_INTEL_CXX_VERSION < 500
+#if NDNBOOST_INTEL_CXX_VERSION < 500
 #  error "Compiler not supported or configured - please reconfigure"
 #endif
 
 // Intel on MacOS requires
 #if defined(__APPLE__) && defined(__INTEL_COMPILER)
-#  define BOOST_NO_TWO_PHASE_NAME_LOOKUP
+#  define NDNBOOST_NO_TWO_PHASE_NAME_LOOKUP
 #endif
 
 // Intel on Altix Itanium
 #if defined(__itanium__) && defined(__INTEL_COMPILER)
-#  define BOOST_NO_TWO_PHASE_NAME_LOOKUP
+#  define NDNBOOST_NO_TWO_PHASE_NAME_LOOKUP
 #endif
 
 //
@@ -182,7 +182,7 @@
 // Apparently Intel 12.1 (compiler version number 9999 !!) has the same issue (compiler regression).
 #if defined(__INTEL_COMPILER)
 #  if (__INTEL_COMPILER <= 1110) || (__INTEL_COMPILER == 9999) || (defined(_WIN32) && (__INTEL_COMPILER < 1500))
-#    define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
+#    define NDNBOOST_NO_COMPLETE_VALUE_INITIALIZATION
 #  endif
 #endif
 
@@ -190,76 +190,76 @@
 // Dynamic shared object (DSO) and dynamic-link library (DLL) support
 //
 #if defined(__GNUC__) && (__GNUC__ >= 4)
-#  define BOOST_SYMBOL_EXPORT __attribute__((visibility("default")))
-#  define BOOST_SYMBOL_IMPORT
-#  define BOOST_SYMBOL_VISIBLE __attribute__((visibility("default")))
+#  define NDNBOOST_SYMBOL_EXPORT __attribute__((visibility("default")))
+#  define NDNBOOST_SYMBOL_IMPORT
+#  define NDNBOOST_SYMBOL_VISIBLE __attribute__((visibility("default")))
 #endif
 //
 // C++0x features
 //     - ICC added static_assert in 11.0 (first version with C++0x support)
 //
-#if defined(BOOST_INTEL_STDCXX0X)
-#  undef  BOOST_NO_CXX11_STATIC_ASSERT
+#if defined(NDNBOOST_INTEL_STDCXX0X)
+#  undef  NDNBOOST_NO_CXX11_STATIC_ASSERT
 //
 // These pass our test cases, but aren't officially supported according to:
 // http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/
 //
-//#  undef  BOOST_NO_CXX11_LAMBDAS
-//#  undef  BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-//#  undef  BOOST_NO_CXX11_DECLTYPE
-//#  undef  BOOST_NO_CXX11_AUTO_DECLARATIONS
-//#  undef  BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
+//#  undef  NDNBOOST_NO_CXX11_LAMBDAS
+//#  undef  NDNBOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
+//#  undef  NDNBOOST_NO_CXX11_DECLTYPE
+//#  undef  NDNBOOST_NO_CXX11_AUTO_DECLARATIONS
+//#  undef  NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
 #endif
 
-#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION >= 1200)
-//#  undef  BOOST_NO_CXX11_RVALUE_REFERENCES // Enabling this breaks Filesystem and Exception libraries
-//#  undef  BOOST_NO_CXX11_SCOPED_ENUMS  // doesn't really work!!
-#  undef  BOOST_NO_CXX11_DELETED_FUNCTIONS
-#  undef  BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#  undef  BOOST_NO_CXX11_LAMBDAS
-#  undef  BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#  undef  BOOST_NO_CXX11_DECLTYPE
-#  undef  BOOST_NO_CXX11_AUTO_DECLARATIONS
-#  undef  BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
+#if defined(NDNBOOST_INTEL_STDCXX0X) && (NDNBOOST_INTEL_CXX_VERSION >= 1200)
+//#  undef  NDNBOOST_NO_CXX11_RVALUE_REFERENCES // Enabling this breaks Filesystem and Exception libraries
+//#  undef  NDNBOOST_NO_CXX11_SCOPED_ENUMS  // doesn't really work!!
+#  undef  NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
+#  undef  NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS
+#  undef  NDNBOOST_NO_CXX11_LAMBDAS
+#  undef  NDNBOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
+#  undef  NDNBOOST_NO_CXX11_DECLTYPE
+#  undef  NDNBOOST_NO_CXX11_AUTO_DECLARATIONS
+#  undef  NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
 #endif
 
 // icl Version 12.1.0.233 Build 20110811 and possibly some other builds
 // had an incorrect __INTEL_COMPILER value of 9999. Intel say this has been fixed. 
-#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION > 1200)
-#  undef  BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#  undef  BOOST_NO_CXX11_NULLPTR
-#  undef  BOOST_NO_CXX11_RVALUE_REFERENCES
-#  undef  BOOST_NO_SFINAE_EXPR
-#  undef  BOOST_NO_CXX11_TEMPLATE_ALIASES
-#  undef  BOOST_NO_CXX11_VARIADIC_TEMPLATES
+#if defined(NDNBOOST_INTEL_STDCXX0X) && (NDNBOOST_INTEL_CXX_VERSION > 1200)
+#  undef  NDNBOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
+#  undef  NDNBOOST_NO_CXX11_NULLPTR
+#  undef  NDNBOOST_NO_CXX11_RVALUE_REFERENCES
+#  undef  NDNBOOST_NO_SFINAE_EXPR
+#  undef  NDNBOOST_NO_CXX11_TEMPLATE_ALIASES
+#  undef  NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
 
 // http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/
 // continues to list scoped enum support as "Partial" 
-//#  undef  BOOST_NO_CXX11_SCOPED_ENUMS 
+//#  undef  NDNBOOST_NO_CXX11_SCOPED_ENUMS 
 #endif
 
 #if defined(_MSC_VER) && (_MSC_VER <= 1700)
 //
 // Although the Intel compiler is capable of supporting these, it appears not to in MSVC compatibility mode:
 //
-#  define  BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#  define  BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#  define  BOOST_NO_CXX11_DELETED_FUNCTIONS
-#  define  BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#  define  BOOST_NO_CXX11_TEMPLATE_ALIASES
+#  define  NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#  define  NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
+#  define  NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
+#  define  NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS
+#  define  NDNBOOST_NO_CXX11_TEMPLATE_ALIASES
 #endif
 
-#if (BOOST_INTEL_CXX_VERSION < 1200)
+#if (NDNBOOST_INTEL_CXX_VERSION < 1200)
 //
 // fenv.h appears not to work with Intel prior to 12.0:
 //
-#  define BOOST_NO_FENV_H
+#  define NDNBOOST_NO_FENV_H
 #endif
 
 //
 // last known and checked version:
-#if (BOOST_INTEL_CXX_VERSION > 1200)
-#  if defined(BOOST_ASSERT_CONFIG)
+#if (NDNBOOST_INTEL_CXX_VERSION > 1200)
+#  if defined(NDNBOOST_ASSERT_CONFIG)
 #     error "Unknown compiler version - please run the configure tests and report the results"
 #  elif defined(_MSC_VER)
 //
diff --git a/include/ndnboost/config/compiler/kai.hpp b/include/ndnboost/config/compiler/kai.hpp
index c839638..38320f5 100644
--- a/include/ndnboost/config/compiler/kai.hpp
+++ b/include/ndnboost/config/compiler/kai.hpp
@@ -11,20 +11,20 @@
 
 #include "ndnboost/config/compiler/common_edg.hpp"
 
-#   if (__KCC_VERSION <= 4001) || !defined(BOOST_STRICT_CONFIG)
+#   if (__KCC_VERSION <= 4001) || !defined(NDNBOOST_STRICT_CONFIG)
       // at least on Sun, the contents of <cwchar> is not in namespace std
-#     define BOOST_NO_STDC_NAMESPACE
+#     define NDNBOOST_NO_STDC_NAMESPACE
 #   endif
 
 // see also common_edg.hpp which needs a special check for __KCC
-# if !defined(_EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
-#     define BOOST_NO_EXCEPTIONS
+# if !defined(_EXCEPTIONS) && !defined(NDNBOOST_NO_EXCEPTIONS)
+#     define NDNBOOST_NO_EXCEPTIONS
 # endif
 
 //
 // last known and checked version is 4001:
 #if (__KCC_VERSION > 4001)
-#  if defined(BOOST_ASSERT_CONFIG)
+#  if defined(NDNBOOST_ASSERT_CONFIG)
 #     error "Unknown compiler version - please run the configure tests and report the results"
 #  endif
 #endif
diff --git a/include/ndnboost/config/compiler/metrowerks.hpp b/include/ndnboost/config/compiler/metrowerks.hpp
index 4ca8af8..a5161cd 100644
--- a/include/ndnboost/config/compiler/metrowerks.hpp
+++ b/include/ndnboost/config/compiler/metrowerks.hpp
@@ -14,114 +14,114 @@
 
 // locale support is disabled when linking with the dynamic runtime
 #   ifdef _MSL_NO_LOCALE
-#     define BOOST_NO_STD_LOCALE
+#     define NDNBOOST_NO_STD_LOCALE
 #   endif 
 
 #   if __MWERKS__ <= 0x2301  // 5.3
-#     define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
-#     define BOOST_NO_POINTER_TO_MEMBER_CONST
-#     define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
-#     define BOOST_NO_MEMBER_TEMPLATE_KEYWORD
+#     define NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
+#     define NDNBOOST_NO_POINTER_TO_MEMBER_CONST
+#     define NDNBOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
+#     define NDNBOOST_NO_MEMBER_TEMPLATE_KEYWORD
 #   endif
 
 #   if __MWERKS__ <= 0x2401  // 6.2
-//#     define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
+//#     define NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
 #   endif
 
 #   if(__MWERKS__ <= 0x2407)  // 7.x
-#     define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
-#     define BOOST_NO_UNREACHABLE_RETURN_DETECTION
+#     define NDNBOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
+#     define NDNBOOST_NO_UNREACHABLE_RETURN_DETECTION
 #   endif
 
 #   if(__MWERKS__ <= 0x3003)  // 8.x
-#     define BOOST_NO_SFINAE
+#     define NDNBOOST_NO_SFINAE
 #    endif
 
-// the "|| !defined(BOOST_STRICT_CONFIG)" part should apply to the last
+// the "|| !defined(NDNBOOST_STRICT_CONFIG)" part should apply to the last
 // tested version *only*:
-#   if(__MWERKS__ <= 0x3207) || !defined(BOOST_STRICT_CONFIG) // 9.6
-#     define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
-#     define BOOST_NO_IS_ABSTRACT
+#   if(__MWERKS__ <= 0x3207) || !defined(NDNBOOST_STRICT_CONFIG) // 9.6
+#     define NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS
+#     define NDNBOOST_NO_IS_ABSTRACT
 #    endif
 
 #if !__option(wchar_type)
-#   define BOOST_NO_INTRINSIC_WCHAR_T
+#   define NDNBOOST_NO_INTRINSIC_WCHAR_T
 #endif
 
-#if !__option(exceptions) && !defined(BOOST_NO_EXCEPTIONS)
-#   define BOOST_NO_EXCEPTIONS
+#if !__option(exceptions) && !defined(NDNBOOST_NO_EXCEPTIONS)
+#   define NDNBOOST_NO_EXCEPTIONS
 #endif
 
 #if (__INTEL__ && _WIN32) || (__POWERPC__ && macintosh)
 #   if __MWERKS__ == 0x3000
-#     define BOOST_COMPILER_VERSION 8.0
+#     define NDNBOOST_COMPILER_VERSION 8.0
 #   elif __MWERKS__ == 0x3001
-#     define BOOST_COMPILER_VERSION 8.1
+#     define NDNBOOST_COMPILER_VERSION 8.1
 #   elif __MWERKS__ == 0x3002
-#     define BOOST_COMPILER_VERSION 8.2
+#     define NDNBOOST_COMPILER_VERSION 8.2
 #   elif __MWERKS__ == 0x3003
-#     define BOOST_COMPILER_VERSION 8.3
+#     define NDNBOOST_COMPILER_VERSION 8.3
 #   elif __MWERKS__ == 0x3200
-#     define BOOST_COMPILER_VERSION 9.0
+#     define NDNBOOST_COMPILER_VERSION 9.0
 #   elif __MWERKS__ == 0x3201
-#     define BOOST_COMPILER_VERSION 9.1
+#     define NDNBOOST_COMPILER_VERSION 9.1
 #   elif __MWERKS__ == 0x3202
-#     define BOOST_COMPILER_VERSION 9.2
+#     define NDNBOOST_COMPILER_VERSION 9.2
 #   elif __MWERKS__ == 0x3204
-#     define BOOST_COMPILER_VERSION 9.3
+#     define NDNBOOST_COMPILER_VERSION 9.3
 #   elif __MWERKS__ == 0x3205
-#     define BOOST_COMPILER_VERSION 9.4
+#     define NDNBOOST_COMPILER_VERSION 9.4
 #   elif __MWERKS__ == 0x3206
-#     define BOOST_COMPILER_VERSION 9.5
+#     define NDNBOOST_COMPILER_VERSION 9.5
 #   elif __MWERKS__ == 0x3207
-#     define BOOST_COMPILER_VERSION 9.6
+#     define NDNBOOST_COMPILER_VERSION 9.6
 #   else
-#     define BOOST_COMPILER_VERSION __MWERKS__
+#     define NDNBOOST_COMPILER_VERSION __MWERKS__
 #   endif
 #else
-#  define BOOST_COMPILER_VERSION __MWERKS__
+#  define NDNBOOST_COMPILER_VERSION __MWERKS__
 #endif
 
 //
 // C++0x features
 //
-//   See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
+//   See boost\config\suffix.hpp for NDNBOOST_NO_LONG_LONG
 //
 #if __MWERKS__ > 0x3206 && __option(rvalue_refs)
-#  define BOOST_HAS_RVALUE_REFS
+#  define NDNBOOST_HAS_RVALUE_REFS
 #else
-#  define BOOST_NO_CXX11_RVALUE_REFERENCES              
+#  define NDNBOOST_NO_CXX11_RVALUE_REFERENCES              
 #endif
-#define BOOST_NO_CXX11_AUTO_DECLARATIONS
-#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#define BOOST_NO_CXX11_CHAR16_T
-#define BOOST_NO_CXX11_CHAR32_T
-#define BOOST_NO_CXX11_CONSTEXPR
-#define BOOST_NO_CXX11_DECLTYPE
-#define BOOST_NO_CXX11_DECLTYPE_N3276
-#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#define BOOST_NO_CXX11_DELETED_FUNCTIONS
-#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#define BOOST_NO_CXX11_EXTERN_TEMPLATE
-#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#define BOOST_NO_CXX11_LAMBDAS
-#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#define BOOST_NO_CXX11_NOEXCEPT
-#define BOOST_NO_CXX11_NULLPTR
-#define BOOST_NO_CXX11_RANGE_BASED_FOR
-#define BOOST_NO_CXX11_RAW_LITERALS
-#define BOOST_NO_CXX11_SCOPED_ENUMS
-#define BOOST_NO_SFINAE_EXPR
-#define BOOST_NO_CXX11_STATIC_ASSERT
-#define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#define BOOST_NO_CXX11_UNICODE_LITERALS
-#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#define BOOST_NO_CXX11_VARIADIC_MACROS
-#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
-#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
+#define NDNBOOST_NO_CXX11_AUTO_DECLARATIONS
+#define NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
+#define NDNBOOST_NO_CXX11_CHAR16_T
+#define NDNBOOST_NO_CXX11_CHAR32_T
+#define NDNBOOST_NO_CXX11_CONSTEXPR
+#define NDNBOOST_NO_CXX11_DECLTYPE
+#define NDNBOOST_NO_CXX11_DECLTYPE_N3276
+#define NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
+#define NDNBOOST_NO_CXX11_EXTERN_TEMPLATE
+#define NDNBOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
+#define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#define NDNBOOST_NO_CXX11_LAMBDAS
+#define NDNBOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
+#define NDNBOOST_NO_CXX11_NOEXCEPT
+#define NDNBOOST_NO_CXX11_NULLPTR
+#define NDNBOOST_NO_CXX11_RANGE_BASED_FOR
+#define NDNBOOST_NO_CXX11_RAW_LITERALS
+#define NDNBOOST_NO_CXX11_SCOPED_ENUMS
+#define NDNBOOST_NO_SFINAE_EXPR
+#define NDNBOOST_NO_CXX11_STATIC_ASSERT
+#define NDNBOOST_NO_CXX11_TEMPLATE_ALIASES
+#define NDNBOOST_NO_CXX11_UNICODE_LITERALS
+#define NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
+#define NDNBOOST_NO_CXX11_VARIADIC_MACROS
+#define NDNBOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
+#define NDNBOOST_NO_CXX11_USER_DEFINED_LITERALS
 
-#define BOOST_COMPILER "Metrowerks CodeWarrior C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
+#define NDNBOOST_COMPILER "Metrowerks CodeWarrior C++ version " NDNBOOST_STRINGIZE(NDNBOOST_COMPILER_VERSION)
 
 //
 // versions check:
@@ -132,7 +132,7 @@
 //
 // last known and checked version:
 #if (__MWERKS__ > 0x3205)
-#  if defined(BOOST_ASSERT_CONFIG)
+#  if defined(NDNBOOST_ASSERT_CONFIG)
 #     error "Unknown compiler version - please run the configure tests and report the results"
 #  endif
 #endif
diff --git a/include/ndnboost/config/compiler/mpw.hpp b/include/ndnboost/config/compiler/mpw.hpp
index 7ef38ef..83aa275 100644
--- a/include/ndnboost/config/compiler/mpw.hpp
+++ b/include/ndnboost/config/compiler/mpw.hpp
@@ -9,9 +9,9 @@
 //  MPW C++ compilers setup:
 
 #   if    defined(__SC__)
-#     define BOOST_COMPILER "MPW SCpp version " BOOST_STRINGIZE(__SC__)
+#     define NDNBOOST_COMPILER "MPW SCpp version " NDNBOOST_STRINGIZE(__SC__)
 #   elif defined(__MRC__)
-#     define BOOST_COMPILER "MPW MrCpp version " BOOST_STRINGIZE(__MRC__)
+#     define NDNBOOST_COMPILER "MPW MrCpp version " NDNBOOST_STRINGIZE(__MRC__)
 #   else
 #     error "Using MPW compiler configuration by mistake.  Please update."
 #   endif
@@ -19,56 +19,56 @@
 //
 // MPW 8.90:
 //
-#if (MPW_CPLUS <= 0x890) || !defined(BOOST_STRICT_CONFIG)
-#  define BOOST_NO_CV_SPECIALIZATIONS
-#  define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
-#  define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
-#  define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-#  define BOOST_NO_INTRINSIC_WCHAR_T
-#  define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#  define BOOST_NO_USING_TEMPLATE
+#if (MPW_CPLUS <= 0x890) || !defined(NDNBOOST_STRICT_CONFIG)
+#  define NDNBOOST_NO_CV_SPECIALIZATIONS
+#  define NDNBOOST_NO_DEPENDENT_NESTED_DERIVATIONS
+#  define NDNBOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
+#  define NDNBOOST_NO_INCLASS_MEMBER_INITIALIZATION
+#  define NDNBOOST_NO_INTRINSIC_WCHAR_T
+#  define NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#  define NDNBOOST_NO_USING_TEMPLATE
 
-#  define BOOST_NO_CWCHAR
-#  define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+#  define NDNBOOST_NO_CWCHAR
+#  define NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
 
-#  define BOOST_NO_STD_ALLOCATOR /* actually a bug with const reference overloading */
+#  define NDNBOOST_NO_STD_ALLOCATOR /* actually a bug with const reference overloading */
 
 #endif
 
 //
 // C++0x features
 //
-//   See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
+//   See boost\config\suffix.hpp for NDNBOOST_NO_LONG_LONG
 //
-#define BOOST_NO_CXX11_AUTO_DECLARATIONS
-#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#define BOOST_NO_CXX11_CHAR16_T
-#define BOOST_NO_CXX11_CHAR32_T
-#define BOOST_NO_CXX11_CONSTEXPR
-#define BOOST_NO_CXX11_DECLTYPE
-#define BOOST_NO_CXX11_DECLTYPE_N3276
-#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#define BOOST_NO_CXX11_DELETED_FUNCTIONS
-#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#define BOOST_NO_CXX11_EXTERN_TEMPLATE
-#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#define BOOST_NO_CXX11_LAMBDAS
-#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#define BOOST_NO_CXX11_NOEXCEPT
-#define BOOST_NO_CXX11_NULLPTR
-#define BOOST_NO_CXX11_RANGE_BASED_FOR
-#define BOOST_NO_CXX11_RAW_LITERALS
-#define BOOST_NO_CXX11_RVALUE_REFERENCES
-#define BOOST_NO_CXX11_SCOPED_ENUMS
-#define BOOST_NO_SFINAE_EXPR
-#define BOOST_NO_CXX11_STATIC_ASSERT
-#define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#define BOOST_NO_CXX11_UNICODE_LITERALS
-#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#define BOOST_NO_CXX11_VARIADIC_MACROS
-#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
-#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
+#define NDNBOOST_NO_CXX11_AUTO_DECLARATIONS
+#define NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
+#define NDNBOOST_NO_CXX11_CHAR16_T
+#define NDNBOOST_NO_CXX11_CHAR32_T
+#define NDNBOOST_NO_CXX11_CONSTEXPR
+#define NDNBOOST_NO_CXX11_DECLTYPE
+#define NDNBOOST_NO_CXX11_DECLTYPE_N3276
+#define NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
+#define NDNBOOST_NO_CXX11_EXTERN_TEMPLATE
+#define NDNBOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
+#define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#define NDNBOOST_NO_CXX11_LAMBDAS
+#define NDNBOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
+#define NDNBOOST_NO_CXX11_NOEXCEPT
+#define NDNBOOST_NO_CXX11_NULLPTR
+#define NDNBOOST_NO_CXX11_RANGE_BASED_FOR
+#define NDNBOOST_NO_CXX11_RAW_LITERALS
+#define NDNBOOST_NO_CXX11_RVALUE_REFERENCES
+#define NDNBOOST_NO_CXX11_SCOPED_ENUMS
+#define NDNBOOST_NO_SFINAE_EXPR
+#define NDNBOOST_NO_CXX11_STATIC_ASSERT
+#define NDNBOOST_NO_CXX11_TEMPLATE_ALIASES
+#define NDNBOOST_NO_CXX11_UNICODE_LITERALS
+#define NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
+#define NDNBOOST_NO_CXX11_VARIADIC_MACROS
+#define NDNBOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
+#define NDNBOOST_NO_CXX11_USER_DEFINED_LITERALS
 
 //
 // versions check:
@@ -79,7 +79,7 @@
 //
 // last known and checked version is 0x890:
 #if (MPW_CPLUS > 0x890)
-#  if defined(BOOST_ASSERT_CONFIG)
+#  if defined(NDNBOOST_ASSERT_CONFIG)
 #     error "Unknown compiler version - please run the configure tests and report the results"
 #  endif
 #endif
diff --git a/include/ndnboost/config/compiler/nvcc.hpp b/include/ndnboost/config/compiler/nvcc.hpp
index 5b9bb39..c3507cf 100644
--- a/include/ndnboost/config/compiler/nvcc.hpp
+++ b/include/ndnboost/config/compiler/nvcc.hpp
@@ -7,13 +7,13 @@
 
 //  NVIDIA CUDA C++ compiler setup
 
-#ifndef BOOST_COMPILER
-#  define BOOST_COMPILER "NVIDIA CUDA C++ Compiler"
+#ifndef NDNBOOST_COMPILER
+#  define NDNBOOST_COMPILER "NVIDIA CUDA C++ Compiler"
 #endif
 
 // NVIDIA Specific support
-// BOOST_GPU_ENABLED : Flag a function or a method as being enabled on the host and device
-#define BOOST_GPU_ENABLED __host__ __device__
+// NDNBOOST_GPU_ENABLED : Flag a function or a method as being enabled on the host and device
+#define NDNBOOST_GPU_ENABLED __host__ __device__
 
 // Boost support macro for NVCC 
 // NVCC Basically behaves like some flavor of MSVC6 + some specific quirks
diff --git a/include/ndnboost/config/compiler/pathscale.hpp b/include/ndnboost/config/compiler/pathscale.hpp
index 07d1460..9ddaeb8 100644
--- a/include/ndnboost/config/compiler/pathscale.hpp
+++ b/include/ndnboost/config/compiler/pathscale.hpp
@@ -8,74 +8,74 @@
 
 // PathScale EKOPath C++ Compiler
 
-#ifndef BOOST_COMPILER
-#  define BOOST_COMPILER "PathScale EKOPath C++ Compiler version " __PATHSCALE__
+#ifndef NDNBOOST_COMPILER
+#  define NDNBOOST_COMPILER "PathScale EKOPath C++ Compiler version " __PATHSCALE__
 #endif
 
 #if __PATHCC__ >= 4
-#  define BOOST_MSVC6_MEMBER_TEMPLATES
-#  define BOOST_HAS_UNISTD_H
-#  define BOOST_HAS_STDINT_H
-#  define BOOST_HAS_SIGACTION
-#  define BOOST_HAS_SCHED_YIELD
-#  define BOOST_HAS_THREADS
-#  define BOOST_HAS_PTHREADS
-#  define BOOST_HAS_PTHREAD_YIELD
-#  define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-#  define BOOST_HAS_PARTIAL_STD_ALLOCATOR
-#  define BOOST_HAS_NRVO
-#  define BOOST_HAS_NL_TYPES_H
-#  define BOOST_HAS_NANOSLEEP
-#  define BOOST_HAS_LONG_LONG
-#  define BOOST_HAS_LOG1P
-#  define BOOST_HAS_GETTIMEOFDAY
-#  define BOOST_HAS_EXPM1
-#  define BOOST_HAS_DIRENT_H
-#  define BOOST_HAS_CLOCK_GETTIME
-#  define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#  define BOOST_NO_CXX11_UNICODE_LITERALS
-#  define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#  define BOOST_NO_CXX11_STATIC_ASSERT
-#  define BOOST_NO_SFINAE_EXPR
-#  define BOOST_NO_CXX11_SCOPED_ENUMS
-#  define BOOST_NO_CXX11_RVALUE_REFERENCES
-#  define BOOST_NO_CXX11_RANGE_BASED_FOR
-#  define BOOST_NO_CXX11_RAW_LITERALS
-#  define BOOST_NO_CXX11_NULLPTR
-#  define BOOST_NO_CXX11_NUMERIC_LIMITS
-#  define BOOST_NO_CXX11_NOEXCEPT
-#  define BOOST_NO_CXX11_LAMBDAS
-#  define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#  define BOOST_NO_MS_INT64_NUMERIC_LIMITS
-#  define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#  define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#  define BOOST_NO_CXX11_DELETED_FUNCTIONS
-#  define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#  define BOOST_NO_CXX11_DECLTYPE
-#  define BOOST_NO_CXX11_DECLTYPE_N3276
-#  define BOOST_NO_CXX11_CONSTEXPR
-#  define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
-#  define BOOST_NO_CXX11_CHAR32_T
-#  define BOOST_NO_CXX11_CHAR16_T
-#  define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#  define BOOST_NO_CXX11_AUTO_DECLARATIONS
-#  define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
-#  define BOOST_NO_CXX11_HDR_UNORDERED_SET
-#  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
-#  define BOOST_NO_CXX11_HDR_TYPEINDEX
-#  define BOOST_NO_CXX11_HDR_TUPLE
-#  define BOOST_NO_CXX11_HDR_THREAD
-#  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
-#  define BOOST_NO_CXX11_HDR_REGEX
-#  define BOOST_NO_CXX11_HDR_RATIO
-#  define BOOST_NO_CXX11_HDR_RANDOM
-#  define BOOST_NO_CXX11_HDR_MUTEX
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#  define BOOST_NO_CXX11_HDR_FUTURE
-#  define BOOST_NO_CXX11_HDR_FORWARD_LIST
-#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
-#  define BOOST_NO_CXX11_HDR_CODECVT
-#  define BOOST_NO_CXX11_HDR_CHRONO
-#  define BOOST_NO_CXX11_USER_DEFINED_LITERALS
+#  define NDNBOOST_MSVC6_MEMBER_TEMPLATES
+#  define NDNBOOST_HAS_UNISTD_H
+#  define NDNBOOST_HAS_STDINT_H
+#  define NDNBOOST_HAS_SIGACTION
+#  define NDNBOOST_HAS_SCHED_YIELD
+#  define NDNBOOST_HAS_THREADS
+#  define NDNBOOST_HAS_PTHREADS
+#  define NDNBOOST_HAS_PTHREAD_YIELD
+#  define NDNBOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
+#  define NDNBOOST_HAS_PARTIAL_STD_ALLOCATOR
+#  define NDNBOOST_HAS_NRVO
+#  define NDNBOOST_HAS_NL_TYPES_H
+#  define NDNBOOST_HAS_NANOSLEEP
+#  define NDNBOOST_HAS_LONG_LONG
+#  define NDNBOOST_HAS_LOG1P
+#  define NDNBOOST_HAS_GETTIMEOFDAY
+#  define NDNBOOST_HAS_EXPM1
+#  define NDNBOOST_HAS_DIRENT_H
+#  define NDNBOOST_HAS_CLOCK_GETTIME
+#  define NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
+#  define NDNBOOST_NO_CXX11_UNICODE_LITERALS
+#  define NDNBOOST_NO_CXX11_TEMPLATE_ALIASES
+#  define NDNBOOST_NO_CXX11_STATIC_ASSERT
+#  define NDNBOOST_NO_SFINAE_EXPR
+#  define NDNBOOST_NO_CXX11_SCOPED_ENUMS
+#  define NDNBOOST_NO_CXX11_RVALUE_REFERENCES
+#  define NDNBOOST_NO_CXX11_RANGE_BASED_FOR
+#  define NDNBOOST_NO_CXX11_RAW_LITERALS
+#  define NDNBOOST_NO_CXX11_NULLPTR
+#  define NDNBOOST_NO_CXX11_NUMERIC_LIMITS
+#  define NDNBOOST_NO_CXX11_NOEXCEPT
+#  define NDNBOOST_NO_CXX11_LAMBDAS
+#  define NDNBOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
+#  define NDNBOOST_NO_MS_INT64_NUMERIC_LIMITS
+#  define NDNBOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
+#  define NDNBOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
+#  define NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
+#  define NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS
+#  define NDNBOOST_NO_CXX11_DECLTYPE
+#  define NDNBOOST_NO_CXX11_DECLTYPE_N3276
+#  define NDNBOOST_NO_CXX11_CONSTEXPR
+#  define NDNBOOST_NO_COMPLETE_VALUE_INITIALIZATION
+#  define NDNBOOST_NO_CXX11_CHAR32_T
+#  define NDNBOOST_NO_CXX11_CHAR16_T
+#  define NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
+#  define NDNBOOST_NO_CXX11_AUTO_DECLARATIONS
+#  define NDNBOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
+#  define NDNBOOST_NO_CXX11_HDR_UNORDERED_SET
+#  define NDNBOOST_NO_CXX11_HDR_UNORDERED_MAP
+#  define NDNBOOST_NO_CXX11_HDR_TYPEINDEX
+#  define NDNBOOST_NO_CXX11_HDR_TUPLE
+#  define NDNBOOST_NO_CXX11_HDR_THREAD
+#  define NDNBOOST_NO_CXX11_HDR_SYSTEM_ERROR
+#  define NDNBOOST_NO_CXX11_HDR_REGEX
+#  define NDNBOOST_NO_CXX11_HDR_RATIO
+#  define NDNBOOST_NO_CXX11_HDR_RANDOM
+#  define NDNBOOST_NO_CXX11_HDR_MUTEX
+#  define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#  define NDNBOOST_NO_CXX11_HDR_FUTURE
+#  define NDNBOOST_NO_CXX11_HDR_FORWARD_LIST
+#  define NDNBOOST_NO_CXX11_HDR_CONDITION_VARIABLE
+#  define NDNBOOST_NO_CXX11_HDR_CODECVT
+#  define NDNBOOST_NO_CXX11_HDR_CHRONO
+#  define NDNBOOST_NO_CXX11_USER_DEFINED_LITERALS
 #endif
 
diff --git a/include/ndnboost/config/compiler/pgi.hpp b/include/ndnboost/config/compiler/pgi.hpp
index 64c0d75..07a92de 100644
--- a/include/ndnboost/config/compiler/pgi.hpp
+++ b/include/ndnboost/config/compiler/pgi.hpp
@@ -7,8 +7,8 @@
 
 //  PGI C++ compiler setup:
 
-#define BOOST_COMPILER_VERSION __PGIC__##__PGIC_MINOR__
-#define BOOST_COMPILER "PGI compiler version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
+#define NDNBOOST_COMPILER_VERSION __PGIC__##__PGIC_MINOR__
+#define NDNBOOST_COMPILER "PGI compiler version " NDNBOOST_STRINGIZE(NDNBOOST_COMPILER_VERSION)
 
 //
 // Threading support:
@@ -19,41 +19,41 @@
 #if __PGIC__ >= 11
 
 // options requested by configure --enable-test
-#define BOOST_HAS_PTHREADS
-#define BOOST_HAS_THREADS
-#define BOOST_HAS_PTHREAD_YIELD
-#define BOOST_HAS_NRVO
-#define BOOST_HAS_LONG_LONG
+#define NDNBOOST_HAS_PTHREADS
+#define NDNBOOST_HAS_THREADS
+#define NDNBOOST_HAS_PTHREAD_YIELD
+#define NDNBOOST_HAS_NRVO
+#define NDNBOOST_HAS_LONG_LONG
 
 // options --enable-test wants undefined
-#undef BOOST_NO_STDC_NAMESPACE
-#undef BOOST_NO_EXCEPTION_STD_NAMESPACE
-#undef BOOST_DEDUCED_TYPENAME
+#undef NDNBOOST_NO_STDC_NAMESPACE
+#undef NDNBOOST_NO_EXCEPTION_STD_NAMESPACE
+#undef NDNBOOST_DEDUCED_TYPENAME
 
-#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
-#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
-#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#define BOOST_NO_CXX11_AUTO_DECLARATIONS
+#define NDNBOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
+#define NDNBOOST_NO_TWO_PHASE_NAME_LOOKUP
+#define NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
+#define NDNBOOST_NO_CXX11_AUTO_DECLARATIONS
 
 #elif __PGIC__ >= 10
 
 // options requested by configure --enable-test
-#define BOOST_HAS_THREADS
-#define BOOST_HAS_NRVO
-#define BOOST_HAS_LONG_LONG
+#define NDNBOOST_HAS_THREADS
+#define NDNBOOST_HAS_NRVO
+#define NDNBOOST_HAS_LONG_LONG
 
 // options --enable-test wants undefined
-#undef BOOST_NO_STDC_NAMESPACE
-#undef BOOST_NO_EXCEPTION_STD_NAMESPACE
-#undef BOOST_DEDUCED_TYPENAME
+#undef NDNBOOST_NO_STDC_NAMESPACE
+#undef NDNBOOST_NO_EXCEPTION_STD_NAMESPACE
+#undef NDNBOOST_DEDUCED_TYPENAME
 
 #elif __PGIC__ >= 7
 
-#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
-#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
-#define BOOST_NO_SWPRINTF
-#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#define BOOST_NO_CXX11_AUTO_DECLARATIONS
+#define NDNBOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
+#define NDNBOOST_NO_TWO_PHASE_NAME_LOOKUP
+#define NDNBOOST_NO_SWPRINTF
+#define NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
+#define NDNBOOST_NO_CXX11_AUTO_DECLARATIONS
 
 #else
 
@@ -63,55 +63,55 @@
 //
 // C++0x features
 //
-//   See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
+//   See boost\config\suffix.hpp for NDNBOOST_NO_LONG_LONG
 //
-#define BOOST_NO_CXX11_CHAR16_T
-#define BOOST_NO_CXX11_CHAR32_T
-#define BOOST_NO_CXX11_CONSTEXPR
-#define BOOST_NO_CXX11_DECLTYPE
-#define BOOST_NO_CXX11_DECLTYPE_N3276
-#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#define BOOST_NO_CXX11_DELETED_FUNCTIONS
-#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#define BOOST_NO_CXX11_EXTERN_TEMPLATE
-#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#define BOOST_NO_CXX11_LAMBDAS
-#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#define BOOST_NO_CXX11_NOEXCEPT
-#define BOOST_NO_CXX11_NULLPTR
-#define BOOST_NO_CXX11_NUMERIC_LIMITS
-#define BOOST_NO_CXX11_RANGE_BASED_FOR
-#define BOOST_NO_CXX11_RAW_LITERALS
-#define BOOST_NO_CXX11_RVALUE_REFERENCES
-#define BOOST_NO_CXX11_SCOPED_ENUMS
-#define BOOST_NO_SFINAE_EXPR
-#define BOOST_NO_CXX11_STATIC_ASSERT
-#define BOOST_NO_SWPRINTF
-#define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#define BOOST_NO_CXX11_UNICODE_LITERALS
-#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#define BOOST_NO_CXX11_VARIADIC_MACROS
-#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
+#define NDNBOOST_NO_CXX11_CHAR16_T
+#define NDNBOOST_NO_CXX11_CHAR32_T
+#define NDNBOOST_NO_CXX11_CONSTEXPR
+#define NDNBOOST_NO_CXX11_DECLTYPE
+#define NDNBOOST_NO_CXX11_DECLTYPE_N3276
+#define NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
+#define NDNBOOST_NO_CXX11_EXTERN_TEMPLATE
+#define NDNBOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
+#define NDNBOOST_NO_CXX11_LAMBDAS
+#define NDNBOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
+#define NDNBOOST_NO_CXX11_NOEXCEPT
+#define NDNBOOST_NO_CXX11_NULLPTR
+#define NDNBOOST_NO_CXX11_NUMERIC_LIMITS
+#define NDNBOOST_NO_CXX11_RANGE_BASED_FOR
+#define NDNBOOST_NO_CXX11_RAW_LITERALS
+#define NDNBOOST_NO_CXX11_RVALUE_REFERENCES
+#define NDNBOOST_NO_CXX11_SCOPED_ENUMS
+#define NDNBOOST_NO_SFINAE_EXPR
+#define NDNBOOST_NO_CXX11_STATIC_ASSERT
+#define NDNBOOST_NO_SWPRINTF
+#define NDNBOOST_NO_CXX11_TEMPLATE_ALIASES
+#define NDNBOOST_NO_CXX11_UNICODE_LITERALS
+#define NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
+#define NDNBOOST_NO_CXX11_VARIADIC_MACROS
+#define NDNBOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
 
-#define BOOST_NO_CXX11_HDR_UNORDERED_SET
-#define BOOST_NO_CXX11_HDR_UNORDERED_MAP
-#define BOOST_NO_CXX11_HDR_TYPEINDEX
-#define BOOST_NO_CXX11_HDR_TYPE_TRAITS
-#define BOOST_NO_CXX11_HDR_TUPLE
-#define BOOST_NO_CXX11_HDR_THREAD
-#define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
-#define BOOST_NO_CXX11_HDR_REGEX
-#define BOOST_NO_CXX11_HDR_RATIO
-#define BOOST_NO_CXX11_HDR_RANDOM
-#define BOOST_NO_CXX11_HDR_MUTEX
-#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#define BOOST_NO_CXX11_HDR_FUTURE
-#define BOOST_NO_CXX11_HDR_FORWARD_LIST
-#define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
-#define BOOST_NO_CXX11_HDR_CODECVT
-#define BOOST_NO_CXX11_HDR_CHRONO
-#define BOOST_NO_CXX11_HDR_ARRAY
-#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
+#define NDNBOOST_NO_CXX11_HDR_UNORDERED_SET
+#define NDNBOOST_NO_CXX11_HDR_UNORDERED_MAP
+#define NDNBOOST_NO_CXX11_HDR_TYPEINDEX
+#define NDNBOOST_NO_CXX11_HDR_TYPE_TRAITS
+#define NDNBOOST_NO_CXX11_HDR_TUPLE
+#define NDNBOOST_NO_CXX11_HDR_THREAD
+#define NDNBOOST_NO_CXX11_HDR_SYSTEM_ERROR
+#define NDNBOOST_NO_CXX11_HDR_REGEX
+#define NDNBOOST_NO_CXX11_HDR_RATIO
+#define NDNBOOST_NO_CXX11_HDR_RANDOM
+#define NDNBOOST_NO_CXX11_HDR_MUTEX
+#define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#define NDNBOOST_NO_CXX11_HDR_FUTURE
+#define NDNBOOST_NO_CXX11_HDR_FORWARD_LIST
+#define NDNBOOST_NO_CXX11_HDR_CONDITION_VARIABLE
+#define NDNBOOST_NO_CXX11_HDR_CODECVT
+#define NDNBOOST_NO_CXX11_HDR_CHRONO
+#define NDNBOOST_NO_CXX11_HDR_ARRAY
+#define NDNBOOST_NO_CXX11_USER_DEFINED_LITERALS
 
 //
 // version check:
diff --git a/include/ndnboost/config/compiler/sgi_mipspro.hpp b/include/ndnboost/config/compiler/sgi_mipspro.hpp
index 048ea44..1ebe245 100644
--- a/include/ndnboost/config/compiler/sgi_mipspro.hpp
+++ b/include/ndnboost/config/compiler/sgi_mipspro.hpp
@@ -7,7 +7,7 @@
 
 //  SGI C++ compiler setup:
 
-#define BOOST_COMPILER "SGI Irix compiler version " BOOST_STRINGIZE(_COMPILER_VERSION)
+#define NDNBOOST_COMPILER "SGI Irix compiler version " NDNBOOST_STRINGIZE(_COMPILER_VERSION)
 
 #include "ndnboost/config/compiler/common_edg.hpp"
 
@@ -16,11 +16,11 @@
 // Turn this on unconditionally here, it will get turned off again later
 // if no threading API is detected.
 //
-#define BOOST_HAS_THREADS
-#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
+#define NDNBOOST_HAS_THREADS
+#define NDNBOOST_NO_TWO_PHASE_NAME_LOOKUP
 
-#undef BOOST_NO_SWPRINTF
-#undef BOOST_DEDUCED_TYPENAME
+#undef NDNBOOST_NO_SWPRINTF
+#undef NDNBOOST_DEDUCED_TYPENAME
 
 //
 // version check:
diff --git a/include/ndnboost/config/compiler/sunpro_cc.hpp b/include/ndnboost/config/compiler/sunpro_cc.hpp
index 88421ee..6b344e1 100644
--- a/include/ndnboost/config/compiler/sunpro_cc.hpp
+++ b/include/ndnboost/config/compiler/sunpro_cc.hpp
@@ -12,8 +12,8 @@
 //  Sun C++ compiler setup:
 
 #    if __SUNPRO_CC <= 0x500
-#      define BOOST_NO_MEMBER_TEMPLATES
-#      define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
+#      define NDNBOOST_NO_MEMBER_TEMPLATES
+#      define NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
 #    endif
 
 #    if (__SUNPRO_CC <= 0x520)
@@ -24,14 +24,14 @@
        // inline initialization it often gets the value
        // wrong, especially where the value is computed
        // from other constants (J Maddock 6th May 2001)
-#      define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
+#      define NDNBOOST_NO_INCLASS_MEMBER_INITIALIZATION
 
        // Although sunpro 5.2 supports the syntax for
        // partial specialization, it often seems to
        // bind to the wrong specialization.  Better
        // to disable it until suppport becomes more stable
        // (J Maddock 6th May 2001).
-#      define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#      define NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 #    endif
 
 #    if (__SUNPRO_CC <= 0x530) 
@@ -41,7 +41,7 @@
        //    >> Assertion:   (../links/dbg_cstabs.cc, line 611)
        //         while processing ../test.cpp at line 0.
        // (Jens Maurer according to Gottfried Ganssauge 04 Mar 2002)
-#      define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
+#      define NDNBOOST_NO_INCLASS_MEMBER_INITIALIZATION
 
        // SunPro 5.3 has better support for partial specialization,
        // but breaks when compiling std::less<shared_ptr<T> >
@@ -51,22 +51,22 @@
        // Heintzelman; partial specialization re-enabled
        // (Peter Dimov 17 Jan 2002)
 
-//#      define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//#      define NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
        // integral constant expressions with 64 bit numbers fail
-#      define BOOST_NO_INTEGRAL_INT64_T
+#      define NDNBOOST_NO_INTEGRAL_INT64_T
 #    endif
 
 #    if (__SUNPRO_CC < 0x570) 
-#      define BOOST_NO_TEMPLATE_TEMPLATES
+#      define NDNBOOST_NO_TEMPLATE_TEMPLATES
        // see http://lists.boost.org/MailArchives/boost/msg47184.php
        // and http://lists.boost.org/MailArchives/boost/msg47220.php
-#      define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-#      define BOOST_NO_SFINAE
-#      define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
+#      define NDNBOOST_NO_INCLASS_MEMBER_INITIALIZATION
+#      define NDNBOOST_NO_SFINAE
+#      define NDNBOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
 #    endif
 #    if (__SUNPRO_CC <= 0x580) 
-#      define BOOST_NO_IS_ABSTRACT
+#      define NDNBOOST_NO_IS_ABSTRACT
 #    endif
 
 #    if (__SUNPRO_CC <= 0x5100)
@@ -74,16 +74,16 @@
        // some user defined types, as was reported in April 2010
        // (CR 6947016), and confirmed by Steve Clamage.
        // (Niels Dekker, LKEB, May 2010).
-#      define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
+#      define NDNBOOST_NO_COMPLETE_VALUE_INITIALIZATION
 #    endif
 
 //
 // Dynamic shared object (DSO) and dynamic-link library (DLL) support
 //
 #if __SUNPRO_CC > 0x500
-#  define BOOST_SYMBOL_EXPORT __global
-#  define BOOST_SYMBOL_IMPORT __global
-#  define BOOST_SYMBOL_VISIBLE __global
+#  define NDNBOOST_SYMBOL_EXPORT __global
+#  define NDNBOOST_SYMBOL_IMPORT __global
+#  define NDNBOOST_SYMBOL_VISIBLE __global
 #endif
 
 
@@ -91,49 +91,49 @@
 //
 // Issues that effect all known versions:
 //
-#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
-#define BOOST_NO_ADL_BARRIER
+#define NDNBOOST_NO_TWO_PHASE_NAME_LOOKUP
+#define NDNBOOST_NO_ADL_BARRIER
 
 //
 // C++0x features
 //
-#  define BOOST_HAS_LONG_LONG
+#  define NDNBOOST_HAS_LONG_LONG
 
-#define BOOST_NO_CXX11_AUTO_DECLARATIONS
-#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#define BOOST_NO_CXX11_CHAR16_T
-#define BOOST_NO_CXX11_CHAR32_T
-#define BOOST_NO_CXX11_CONSTEXPR
-#define BOOST_NO_CXX11_DECLTYPE
-#define BOOST_NO_CXX11_DECLTYPE_N3276
-#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#define BOOST_NO_CXX11_DELETED_FUNCTIONS
-#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#define BOOST_NO_CXX11_EXTERN_TEMPLATE
-#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#define BOOST_NO_CXX11_LAMBDAS
-#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#define BOOST_NO_CXX11_NOEXCEPT
-#define BOOST_NO_CXX11_NULLPTR
-#define BOOST_NO_CXX11_RANGE_BASED_FOR
-#define BOOST_NO_CXX11_RAW_LITERALS
-#define BOOST_NO_CXX11_RVALUE_REFERENCES
-#define BOOST_NO_CXX11_SCOPED_ENUMS
-#define BOOST_NO_SFINAE_EXPR
-#define BOOST_NO_CXX11_STATIC_ASSERT
-#define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#define BOOST_NO_CXX11_UNICODE_LITERALS
-#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#define BOOST_NO_CXX11_VARIADIC_MACROS
-#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
-#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
+#define NDNBOOST_NO_CXX11_AUTO_DECLARATIONS
+#define NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
+#define NDNBOOST_NO_CXX11_CHAR16_T
+#define NDNBOOST_NO_CXX11_CHAR32_T
+#define NDNBOOST_NO_CXX11_CONSTEXPR
+#define NDNBOOST_NO_CXX11_DECLTYPE
+#define NDNBOOST_NO_CXX11_DECLTYPE_N3276
+#define NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
+#define NDNBOOST_NO_CXX11_EXTERN_TEMPLATE
+#define NDNBOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
+#define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#define NDNBOOST_NO_CXX11_LAMBDAS
+#define NDNBOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
+#define NDNBOOST_NO_CXX11_NOEXCEPT
+#define NDNBOOST_NO_CXX11_NULLPTR
+#define NDNBOOST_NO_CXX11_RANGE_BASED_FOR
+#define NDNBOOST_NO_CXX11_RAW_LITERALS
+#define NDNBOOST_NO_CXX11_RVALUE_REFERENCES
+#define NDNBOOST_NO_CXX11_SCOPED_ENUMS
+#define NDNBOOST_NO_SFINAE_EXPR
+#define NDNBOOST_NO_CXX11_STATIC_ASSERT
+#define NDNBOOST_NO_CXX11_TEMPLATE_ALIASES
+#define NDNBOOST_NO_CXX11_UNICODE_LITERALS
+#define NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
+#define NDNBOOST_NO_CXX11_VARIADIC_MACROS
+#define NDNBOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
+#define NDNBOOST_NO_CXX11_USER_DEFINED_LITERALS
 
 //
 // Version
 //
 
-#define BOOST_COMPILER "Sun compiler version " BOOST_STRINGIZE(__SUNPRO_CC)
+#define NDNBOOST_COMPILER "Sun compiler version " NDNBOOST_STRINGIZE(__SUNPRO_CC)
 
 //
 // versions check:
@@ -144,7 +144,7 @@
 //
 // last known and checked version is 0x590:
 #if (__SUNPRO_CC > 0x590)
-#  if defined(BOOST_ASSERT_CONFIG)
+#  if defined(NDNBOOST_ASSERT_CONFIG)
 #     error "Unknown compiler version - please run the configure tests and report the results"
 #  endif
 #endif
diff --git a/include/ndnboost/config/compiler/vacpp.hpp b/include/ndnboost/config/compiler/vacpp.hpp
index 47b9903..a667657 100644
--- a/include/ndnboost/config/compiler/vacpp.hpp
+++ b/include/ndnboost/config/compiler/vacpp.hpp
@@ -12,21 +12,21 @@
 //  Visual Age (IBM) C++ compiler setup:
 
 #if __IBMCPP__ <= 501
-#  define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
-#  define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
+#  define NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS
+#  define NDNBOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
 #endif
 
 #if (__IBMCPP__ <= 502) 
 // Actually the compiler supports inclass member initialization but it
 // requires a definition for the class member and it doesn't recognize
 // it as an integral constant expression when used as a template argument.
-#  define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-#  define BOOST_NO_INTEGRAL_INT64_T
-#  define BOOST_NO_MEMBER_TEMPLATE_KEYWORD
+#  define NDNBOOST_NO_INCLASS_MEMBER_INITIALIZATION
+#  define NDNBOOST_NO_INTEGRAL_INT64_T
+#  define NDNBOOST_NO_MEMBER_TEMPLATE_KEYWORD
 #endif
 
-#if (__IBMCPP__ <= 600) || !defined(BOOST_STRICT_CONFIG)
-#  define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
+#if (__IBMCPP__ <= 600) || !defined(NDNBOOST_STRICT_CONFIG)
+#  define NDNBOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
 #endif
 
 #if (__IBMCPP__ <= 1110)
@@ -34,17 +34,17 @@
 // a temporary object T(), when T is a non-POD aggregate class type. 
 // Michael Wong (IBM Canada Ltd) has confirmed this issue and gave it 
 // high priority. -- Niels Dekker (LKEB), May 2010.
-#  define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
+#  define NDNBOOST_NO_COMPLETE_VALUE_INITIALIZATION
 #endif
 
 //
 // On AIX thread support seems to be indicated by _THREAD_SAFE:
 //
 #ifdef _THREAD_SAFE
-#  define BOOST_HAS_THREADS
+#  define NDNBOOST_HAS_THREADS
 #endif
 
-#define BOOST_COMPILER "IBM Visual Age version " BOOST_STRINGIZE(__IBMCPP__)
+#define NDNBOOST_COMPILER "IBM Visual Age version " NDNBOOST_STRINGIZE(__IBMCPP__)
 
 //
 // versions check:
@@ -55,76 +55,76 @@
 //
 // last known and checked version is 1210:
 #if (__IBMCPP__ > 1210)
-#  if defined(BOOST_ASSERT_CONFIG)
+#  if defined(NDNBOOST_ASSERT_CONFIG)
 #     error "Unknown compiler version - please run the configure tests and report the results"
 #  endif
 #endif
 
 // Some versions of the compiler have issues with default arguments on partial specializations
 #if __IBMCPP__ <= 1010
-#define BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
+#define NDNBOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
 #endif
 
 //
 // C++0x features
 //
-//   See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
+//   See boost\config\suffix.hpp for NDNBOOST_NO_LONG_LONG
 //
 #if ! __IBMCPP_AUTO_TYPEDEDUCTION
-#  define BOOST_NO_CXX11_AUTO_DECLARATIONS
-#  define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
+#  define NDNBOOST_NO_CXX11_AUTO_DECLARATIONS
+#  define NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
 #endif
 #if ! __IBMCPP_UTF_LITERAL__
-#  define BOOST_NO_CXX11_CHAR16_T
-#  define BOOST_NO_CXX11_CHAR32_T
+#  define NDNBOOST_NO_CXX11_CHAR16_T
+#  define NDNBOOST_NO_CXX11_CHAR32_T
 #endif
 #if ! __IBMCPP_CONSTEXPR
-#  define BOOST_NO_CXX11_CONSTEXPR
+#  define NDNBOOST_NO_CXX11_CONSTEXPR
 #endif
 #if ! __IBMCPP_DECLTYPE
-#  define BOOST_NO_CXX11_DECLTYPE
+#  define NDNBOOST_NO_CXX11_DECLTYPE
 #else
-#  define BOOST_HAS_DECLTYPE
+#  define NDNBOOST_HAS_DECLTYPE
 #endif
-#define BOOST_NO_CXX11_DECLTYPE_N3276
-#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#define BOOST_NO_CXX11_DELETED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_DECLTYPE_N3276
+#define NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
 #if ! __IBMCPP_EXPLICIT_CONVERSION_OPERATORS
-#  define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
+#  define NDNBOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
 #endif
 #if ! __IBMCPP_EXTERN_TEMPLATE
-#  define BOOST_NO_CXX11_EXTERN_TEMPLATE
+#  define NDNBOOST_NO_CXX11_EXTERN_TEMPLATE
 #endif
 #if ! __IBMCPP_VARIADIC_TEMPLATES
 // not enabled separately at this time
-#  define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
+#  define NDNBOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
 #endif
-#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#define BOOST_NO_CXX11_LAMBDAS
-#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#define BOOST_NO_CXX11_NOEXCEPT
-#define BOOST_NO_CXX11_NULLPTR
-#define BOOST_NO_CXX11_RANGE_BASED_FOR
-#define BOOST_NO_CXX11_RAW_LITERALS
-#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
+#define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#define NDNBOOST_NO_CXX11_LAMBDAS
+#define NDNBOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
+#define NDNBOOST_NO_CXX11_NOEXCEPT
+#define NDNBOOST_NO_CXX11_NULLPTR
+#define NDNBOOST_NO_CXX11_RANGE_BASED_FOR
+#define NDNBOOST_NO_CXX11_RAW_LITERALS
+#define NDNBOOST_NO_CXX11_USER_DEFINED_LITERALS
 #if ! __IBMCPP_RVALUE_REFERENCES
-#  define BOOST_NO_CXX11_RVALUE_REFERENCES
+#  define NDNBOOST_NO_CXX11_RVALUE_REFERENCES
 #endif
 #if ! __IBMCPP_SCOPED_ENUM
-#  define BOOST_NO_CXX11_SCOPED_ENUMS
+#  define NDNBOOST_NO_CXX11_SCOPED_ENUMS
 #endif
-#define BOOST_NO_SFINAE_EXPR
-#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
+#define NDNBOOST_NO_SFINAE_EXPR
+#define NDNBOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
 #if ! __IBMCPP_STATIC_ASSERT
-#  define BOOST_NO_CXX11_STATIC_ASSERT
+#  define NDNBOOST_NO_CXX11_STATIC_ASSERT
 #endif
-#define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#define BOOST_NO_CXX11_UNICODE_LITERALS
+#define NDNBOOST_NO_CXX11_TEMPLATE_ALIASES
+#define NDNBOOST_NO_CXX11_UNICODE_LITERALS
 #if ! __IBMCPP_VARIADIC_TEMPLATES
-#  define BOOST_NO_CXX11_VARIADIC_TEMPLATES
+#  define NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
 #endif
 #if ! __C99_MACRO_WITH_VA_ARGS
-#  define BOOST_NO_CXX11_VARIADIC_MACROS
+#  define NDNBOOST_NO_CXX11_VARIADIC_MACROS
 #endif
 
 
diff --git a/include/ndnboost/config/compiler/visualc.hpp b/include/ndnboost/config/compiler/visualc.hpp
index a7d3025..1ba9d16 100644
--- a/include/ndnboost/config/compiler/visualc.hpp
+++ b/include/ndnboost/config/compiler/visualc.hpp
@@ -20,15 +20,15 @@
 //  No other comparisons (==, >, or <=) are safe.
 //
 
-#define BOOST_MSVC _MSC_VER
+#define NDNBOOST_MSVC _MSC_VER
 
 //
-// Helper macro BOOST_MSVC_FULL_VER for use in Boost code:
+// Helper macro NDNBOOST_MSVC_FULL_VER for use in Boost code:
 //
 #if _MSC_FULL_VER > 100000000
-#  define BOOST_MSVC_FULL_VER _MSC_FULL_VER
+#  define NDNBOOST_MSVC_FULL_VER _MSC_FULL_VER
 #else
-#  define BOOST_MSVC_FULL_VER (_MSC_FULL_VER * 10)
+#  define NDNBOOST_MSVC_FULL_VER (_MSC_FULL_VER * 10)
 #endif
 
 // Attempt to suppress VC6 warnings about the length of decorated names (obsolete):
@@ -43,53 +43,53 @@
 
 #if _MSC_VER < 1300  // 1200 == VC++ 6.0, 1200-1202 == eVC++4
 #  pragma warning( disable : 4786 ) // ident trunc to '255' chars in debug info
-#  define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
-#  define BOOST_NO_VOID_RETURNS
-#  define BOOST_NO_EXCEPTION_STD_NAMESPACE
+#  define NDNBOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
+#  define NDNBOOST_NO_VOID_RETURNS
+#  define NDNBOOST_NO_EXCEPTION_STD_NAMESPACE
 
 #  if _MSC_VER == 1202
-#    define BOOST_NO_STD_TYPEINFO
+#    define NDNBOOST_NO_STD_TYPEINFO
 #  endif
 
 #endif
 
 /// Visual Studio has no fenv.h
-#define BOOST_NO_FENV_H
+#define NDNBOOST_NO_FENV_H
 
 #if (_MSC_VER < 1310)  // 130X == VC++ 7.0
 
-#  if !defined(_MSC_EXTENSIONS) && !defined(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS)      // VC7 bug with /Za
-#    define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
+#  if !defined(_MSC_EXTENSIONS) && !defined(NDNBOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS)      // VC7 bug with /Za
+#    define NDNBOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
 #  endif
 
-#  define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
-#  define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-#  define BOOST_NO_PRIVATE_IN_AGGREGATE
-#  define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
-#  define BOOST_NO_INTEGRAL_INT64_T
-#  define BOOST_NO_DEDUCED_TYPENAME
-#  define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
+#  define NDNBOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
+#  define NDNBOOST_NO_INCLASS_MEMBER_INITIALIZATION
+#  define NDNBOOST_NO_PRIVATE_IN_AGGREGATE
+#  define NDNBOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
+#  define NDNBOOST_NO_INTEGRAL_INT64_T
+#  define NDNBOOST_NO_DEDUCED_TYPENAME
+#  define NDNBOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
 
 //    VC++ 6/7 has member templates but they have numerous problems including
 //    cases of silent failure, so for safety we define:
-#  define BOOST_NO_MEMBER_TEMPLATES
+#  define NDNBOOST_NO_MEMBER_TEMPLATES
 //    For VC++ experts wishing to attempt workarounds, we define:
-#  define BOOST_MSVC6_MEMBER_TEMPLATES
+#  define NDNBOOST_MSVC6_MEMBER_TEMPLATES
 
-#  define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
-#  define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#  define BOOST_NO_CV_VOID_SPECIALIZATIONS
-#  define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
-#  define BOOST_NO_USING_TEMPLATE
-#  define BOOST_NO_SWPRINTF
-#  define BOOST_NO_TEMPLATE_TEMPLATES
-#  define BOOST_NO_SFINAE
-#  define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
-#  define BOOST_NO_IS_ABSTRACT
-#  define BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
+#  define NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS
+#  define NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#  define NDNBOOST_NO_CV_VOID_SPECIALIZATIONS
+#  define NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
+#  define NDNBOOST_NO_USING_TEMPLATE
+#  define NDNBOOST_NO_SWPRINTF
+#  define NDNBOOST_NO_TEMPLATE_TEMPLATES
+#  define NDNBOOST_NO_SFINAE
+#  define NDNBOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
+#  define NDNBOOST_NO_IS_ABSTRACT
+#  define NDNBOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
 // TODO: what version is meant here? Have there really been any fixes in cl 12.01 (as e.g. shipped with eVC4)?
 #  if (_MSC_VER >= 1300)
-#     define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
+#     define NDNBOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
 #  endif
 
 #endif
@@ -97,25 +97,25 @@
 #if _MSC_VER < 1400 
 // although a conforming signature for swprint exists in VC7.1
 // it appears not to actually work:
-#  define BOOST_NO_SWPRINTF
+#  define NDNBOOST_NO_SWPRINTF
 // Our extern template tests also fail for this compiler:
-#  define BOOST_NO_CXX11_EXTERN_TEMPLATE
+#  define NDNBOOST_NO_CXX11_EXTERN_TEMPLATE
 // Variadic macros do not exist for VC7.1 and lower
-#  define BOOST_NO_CXX11_VARIADIC_MACROS
+#  define NDNBOOST_NO_CXX11_VARIADIC_MACROS
 #endif
 
 #if defined(UNDER_CE)
 // Windows CE does not have a conforming signature for swprintf
-#  define BOOST_NO_SWPRINTF
+#  define NDNBOOST_NO_SWPRINTF
 #endif
 
 #if _MSC_VER < 1500  // 140X == VC++ 8.0
-#  define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
+#  define NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS
 #endif
 
 #if _MSC_VER < 1600  // 150X == VC++ 9.0
    // A bug in VC9:
-#  define BOOST_NO_ADL_BARRIER
+#  define NDNBOOST_NO_ADL_BARRIER
 #endif
 
 
@@ -132,128 +132,128 @@
 // https://connect.microsoft.com/VisualStudio/feedback/details/100744
 // See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
 // (Niels Dekker, LKEB, May 2010)
-#  define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
+#  define NDNBOOST_NO_COMPLETE_VALUE_INITIALIZATION
 
 #ifndef _NATIVE_WCHAR_T_DEFINED
-#  define BOOST_NO_INTRINSIC_WCHAR_T
+#  define NDNBOOST_NO_INTRINSIC_WCHAR_T
 #endif
 
 #if defined(_WIN32_WCE) || defined(UNDER_CE)
-#  define BOOST_NO_SWPRINTF
+#  define NDNBOOST_NO_SWPRINTF
 #endif
 
 // we have ThreadEx or GetSystemTimeAsFileTime unless we're running WindowsCE
 #if !defined(_WIN32_WCE) && !defined(UNDER_CE)
-#  define BOOST_HAS_THREADEX
-#  define BOOST_HAS_GETSYSTEMTIMEASFILETIME
+#  define NDNBOOST_HAS_THREADEX
+#  define NDNBOOST_HAS_GETSYSTEMTIMEASFILETIME
 #endif
 
 //   
 // check for exception handling support:   
-#if !defined(_CPPUNWIND) && !defined(BOOST_NO_EXCEPTIONS)
-#  define BOOST_NO_EXCEPTIONS   
+#if !defined(_CPPUNWIND) && !defined(NDNBOOST_NO_EXCEPTIONS)
+#  define NDNBOOST_NO_EXCEPTIONS   
 #endif 
 
 //
 // __int64 support:
 //
 #if (_MSC_VER >= 1200)
-#   define BOOST_HAS_MS_INT64
+#   define NDNBOOST_HAS_MS_INT64
 #endif
 #if (_MSC_VER >= 1310) && (defined(_MSC_EXTENSIONS) || (_MSC_VER >= 1400))
-#   define BOOST_HAS_LONG_LONG
+#   define NDNBOOST_HAS_LONG_LONG
 #else
-#   define BOOST_NO_LONG_LONG
+#   define NDNBOOST_NO_LONG_LONG
 #endif
 #if (_MSC_VER >= 1400) && !defined(_DEBUG)
-#   define BOOST_HAS_NRVO
+#   define NDNBOOST_HAS_NRVO
 #endif
 //
 // disable Win32 API's if compiler extentions are
 // turned off:
 //
-#if !defined(_MSC_EXTENSIONS) && !defined(BOOST_DISABLE_WIN32)
-#  define BOOST_DISABLE_WIN32
+#if !defined(_MSC_EXTENSIONS) && !defined(NDNBOOST_DISABLE_WIN32)
+#  define NDNBOOST_DISABLE_WIN32
 #endif
-#if !defined(_CPPRTTI) && !defined(BOOST_NO_RTTI)
-#  define BOOST_NO_RTTI
+#if !defined(_CPPRTTI) && !defined(NDNBOOST_NO_RTTI)
+#  define NDNBOOST_NO_RTTI
 #endif
 
 //
 // TR1 features:
 //
 #if _MSC_VER >= 1700
-// # define BOOST_HAS_TR1_HASH			// don't know if this is true yet.
-// # define BOOST_HAS_TR1_TYPE_TRAITS	// don't know if this is true yet.
-# define BOOST_HAS_TR1_UNORDERED_MAP
-# define BOOST_HAS_TR1_UNORDERED_SET
+// # define NDNBOOST_HAS_TR1_HASH			// don't know if this is true yet.
+// # define NDNBOOST_HAS_TR1_TYPE_TRAITS	// don't know if this is true yet.
+# define NDNBOOST_HAS_TR1_UNORDERED_MAP
+# define NDNBOOST_HAS_TR1_UNORDERED_SET
 #endif
 
 //
 // C++0x features
 //
-//   See above for BOOST_NO_LONG_LONG
+//   See above for NDNBOOST_NO_LONG_LONG
 
 // C++ features supported by VC++ 10 (aka 2010)
 //
 #if _MSC_VER < 1600
-#  define BOOST_NO_CXX11_AUTO_DECLARATIONS
-#  define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#  define BOOST_NO_CXX11_LAMBDAS
-#  define BOOST_NO_CXX11_RVALUE_REFERENCES
-#  define BOOST_NO_CXX11_STATIC_ASSERT
-#  define BOOST_NO_CXX11_NULLPTR
-#  define BOOST_NO_CXX11_DECLTYPE
+#  define NDNBOOST_NO_CXX11_AUTO_DECLARATIONS
+#  define NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
+#  define NDNBOOST_NO_CXX11_LAMBDAS
+#  define NDNBOOST_NO_CXX11_RVALUE_REFERENCES
+#  define NDNBOOST_NO_CXX11_STATIC_ASSERT
+#  define NDNBOOST_NO_CXX11_NULLPTR
+#  define NDNBOOST_NO_CXX11_DECLTYPE
 #endif // _MSC_VER < 1600
 
 #if _MSC_VER >= 1600
-#  define BOOST_HAS_STDINT_H
+#  define NDNBOOST_HAS_STDINT_H
 #endif
 
 // C++ features supported by VC++ 11 (aka 2012)
 //
 #if _MSC_VER < 1700
-#  define BOOST_NO_CXX11_RANGE_BASED_FOR
-#  define BOOST_NO_CXX11_SCOPED_ENUMS
+#  define NDNBOOST_NO_CXX11_RANGE_BASED_FOR
+#  define NDNBOOST_NO_CXX11_SCOPED_ENUMS
 #endif // _MSC_VER < 1700
 
 // C++11 features supported by VC++ 11 (aka 2012) November 2012 CTP
 // Because the CTP is unsupported, unrelease, and only alpha quality,
-// it is only supported if BOOST_MSVC_ENABLE_2012_NOV_CTP is defined.
+// it is only supported if NDNBOOST_MSVC_ENABLE_2012_NOV_CTP is defined.
 //
-#if _MSC_FULL_VER < 170051025 || !defined(BOOST_MSVC_ENABLE_2012_NOV_CTP)
-#  define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#  define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#  define BOOST_NO_CXX11_RAW_LITERALS
-#  define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#  define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
+#if _MSC_FULL_VER < 170051025 || !defined(NDNBOOST_MSVC_ENABLE_2012_NOV_CTP)
+#  define NDNBOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
+#  define NDNBOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
+#  define NDNBOOST_NO_CXX11_RAW_LITERALS
+#  define NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
+#  define NDNBOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
 #endif
 
 // C++11 features not supported by any versions
-#define BOOST_NO_CXX11_CHAR16_T
-#define BOOST_NO_CXX11_CHAR32_T
-#define BOOST_NO_CXX11_CONSTEXPR
-#define BOOST_NO_CXX11_DECLTYPE_N3276
-#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#define BOOST_NO_CXX11_DELETED_FUNCTIONS
-#define BOOST_NO_CXX11_NOEXCEPT
-#define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#define BOOST_NO_CXX11_UNICODE_LITERALS
-#define BOOST_NO_SFINAE_EXPR
-#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
-#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
+#define NDNBOOST_NO_CXX11_CHAR16_T
+#define NDNBOOST_NO_CXX11_CHAR32_T
+#define NDNBOOST_NO_CXX11_CONSTEXPR
+#define NDNBOOST_NO_CXX11_DECLTYPE_N3276
+#define NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_NOEXCEPT
+#define NDNBOOST_NO_CXX11_TEMPLATE_ALIASES
+#define NDNBOOST_NO_CXX11_UNICODE_LITERALS
+#define NDNBOOST_NO_SFINAE_EXPR
+#define NDNBOOST_NO_TWO_PHASE_NAME_LOOKUP
+#define NDNBOOST_NO_CXX11_USER_DEFINED_LITERALS
 
 //
 // prefix and suffix headers:
 //
-#ifndef BOOST_ABI_PREFIX
-#  define BOOST_ABI_PREFIX "ndnboost/config/abi/msvc_prefix.hpp"
+#ifndef NDNBOOST_ABI_PREFIX
+#  define NDNBOOST_ABI_PREFIX "ndnboost/config/abi/msvc_prefix.hpp"
 #endif
-#ifndef BOOST_ABI_SUFFIX
-#  define BOOST_ABI_SUFFIX "ndnboost/config/abi/msvc_suffix.hpp"
+#ifndef NDNBOOST_ABI_SUFFIX
+#  define NDNBOOST_ABI_SUFFIX "ndnboost/config/abi/msvc_suffix.hpp"
 #endif
 
-#ifndef BOOST_COMPILER
+#ifndef NDNBOOST_COMPILER
 // TODO:
 // these things are mostly bogus. 1200 means version 12.0 of the compiler. The 
 // artificial versions assigned to them only refer to the versions of some IDE
@@ -264,24 +264,24 @@
 #   if _MSC_VER < 1200
       // Note: these are so far off, they are not really supported
 #   elif _MSC_VER < 1300 // eVC++ 4 comes with 1200-1202
-#     define BOOST_COMPILER_VERSION evc4.0
+#     define NDNBOOST_COMPILER_VERSION evc4.0
 #   elif _MSC_VER < 1400
       // Note: I'm not aware of any CE compiler with version 13xx
-#      if defined(BOOST_ASSERT_CONFIG)
+#      if defined(NDNBOOST_ASSERT_CONFIG)
 #         error "Unknown EVC++ compiler version - please run the configure tests and report the results"
 #      else
 #         pragma message("Unknown EVC++ compiler version - please run the configure tests and report the results")
 #      endif
 #   elif _MSC_VER < 1500
-#     define BOOST_COMPILER_VERSION evc8
+#     define NDNBOOST_COMPILER_VERSION evc8
 #   elif _MSC_VER < 1600
-#     define BOOST_COMPILER_VERSION evc9
+#     define NDNBOOST_COMPILER_VERSION evc9
 #   elif _MSC_VER < 1700
-#     define BOOST_COMPILER_VERSION evc10
+#     define NDNBOOST_COMPILER_VERSION evc10
 #   elif _MSC_VER < 1800 
-#     define BOOST_COMPILER_VERSION evc11 
+#     define NDNBOOST_COMPILER_VERSION evc11 
 #   else
-#      if defined(BOOST_ASSERT_CONFIG)
+#      if defined(NDNBOOST_ASSERT_CONFIG)
 #         error "Unknown EVC++ compiler version - please run the configure tests and report the results"
 #      else
 #         pragma message("Unknown EVC++ compiler version - please run the configure tests and report the results")
@@ -290,33 +290,33 @@
 # else
 #   if _MSC_VER < 1200
       // Note: these are so far off, they are not really supported
-#     define BOOST_COMPILER_VERSION 5.0
+#     define NDNBOOST_COMPILER_VERSION 5.0
 #   elif _MSC_VER < 1300
-#       define BOOST_COMPILER_VERSION 6.0
+#       define NDNBOOST_COMPILER_VERSION 6.0
 #   elif _MSC_VER < 1310
-#     define BOOST_COMPILER_VERSION 7.0
+#     define NDNBOOST_COMPILER_VERSION 7.0
 #   elif _MSC_VER < 1400
-#     define BOOST_COMPILER_VERSION 7.1
+#     define NDNBOOST_COMPILER_VERSION 7.1
 #   elif _MSC_VER < 1500
-#     define BOOST_COMPILER_VERSION 8.0
+#     define NDNBOOST_COMPILER_VERSION 8.0
 #   elif _MSC_VER < 1600
-#     define BOOST_COMPILER_VERSION 9.0
+#     define NDNBOOST_COMPILER_VERSION 9.0
 #   elif _MSC_VER < 1700
-#     define BOOST_COMPILER_VERSION 10.0
+#     define NDNBOOST_COMPILER_VERSION 10.0
 #   elif _MSC_VER < 1800 
-#     define BOOST_COMPILER_VERSION 11.0 
+#     define NDNBOOST_COMPILER_VERSION 11.0 
 #   else
-#     define BOOST_COMPILER_VERSION _MSC_VER
+#     define NDNBOOST_COMPILER_VERSION _MSC_VER
 #   endif
 # endif
 
-#  define BOOST_COMPILER "Microsoft Visual C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
+#  define NDNBOOST_COMPILER "Microsoft Visual C++ version " NDNBOOST_STRINGIZE(NDNBOOST_COMPILER_VERSION)
 #endif
 
 //
 // last known and checked version is 1700 (VC11, aka 2011):
 #if (_MSC_VER > 1700)
-#  if defined(BOOST_ASSERT_CONFIG)
+#  if defined(NDNBOOST_ASSERT_CONFIG)
 #     error "Unknown compiler version - please run the configure tests and report the results"
 #  else
 #     pragma message("Unknown compiler version - please run the configure tests and report the results")
diff --git a/include/ndnboost/config/no_tr1/cmath.hpp b/include/ndnboost/config/no_tr1/cmath.hpp
index 635e543..df3bdb7 100644
--- a/include/ndnboost/config/no_tr1/cmath.hpp
+++ b/include/ndnboost/config/no_tr1/cmath.hpp
@@ -10,19 +10,19 @@
 // dependencies:
 //
 
-#ifndef BOOST_CONFIG_CMATH
-#  define BOOST_CONFIG_CMATH
+#ifndef NDNBOOST_CONFIG_CMATH
+#  define NDNBOOST_CONFIG_CMATH
 
-#  ifndef BOOST_TR1_NO_RECURSION
-#     define BOOST_TR1_NO_RECURSION
-#     define BOOST_CONFIG_NO_CMATH_RECURSION
+#  ifndef NDNBOOST_TR1_NO_RECURSION
+#     define NDNBOOST_TR1_NO_RECURSION
+#     define NDNBOOST_CONFIG_NO_CMATH_RECURSION
 #  endif
 
 #  include <cmath>
 
-#  ifdef BOOST_CONFIG_NO_CMATH_RECURSION
-#     undef BOOST_TR1_NO_RECURSION
-#     undef BOOST_CONFIG_NO_CMATH_RECURSION
+#  ifdef NDNBOOST_CONFIG_NO_CMATH_RECURSION
+#     undef NDNBOOST_TR1_NO_RECURSION
+#     undef NDNBOOST_CONFIG_NO_CMATH_RECURSION
 #  endif
 
 #endif
diff --git a/include/ndnboost/config/no_tr1/complex.hpp b/include/ndnboost/config/no_tr1/complex.hpp
index 4f7c97c..7c22667 100644
--- a/include/ndnboost/config/no_tr1/complex.hpp
+++ b/include/ndnboost/config/no_tr1/complex.hpp
@@ -10,19 +10,19 @@
 // dependencies:
 //
 
-#ifndef BOOST_CONFIG_COMPLEX
-#  define BOOST_CONFIG_COMPLEX
+#ifndef NDNBOOST_CONFIG_COMPLEX
+#  define NDNBOOST_CONFIG_COMPLEX
 
-#  ifndef BOOST_TR1_NO_RECURSION
-#     define BOOST_TR1_NO_RECURSION
-#     define BOOST_CONFIG_NO_COMPLEX_RECURSION
+#  ifndef NDNBOOST_TR1_NO_RECURSION
+#     define NDNBOOST_TR1_NO_RECURSION
+#     define NDNBOOST_CONFIG_NO_COMPLEX_RECURSION
 #  endif
 
 #  include <complex>
 
-#  ifdef BOOST_CONFIG_NO_COMPLEX_RECURSION
-#     undef BOOST_TR1_NO_RECURSION
-#     undef BOOST_CONFIG_NO_COMPLEX_RECURSION
+#  ifdef NDNBOOST_CONFIG_NO_COMPLEX_RECURSION
+#     undef NDNBOOST_TR1_NO_RECURSION
+#     undef NDNBOOST_CONFIG_NO_COMPLEX_RECURSION
 #  endif
 
 #endif
diff --git a/include/ndnboost/config/no_tr1/functional.hpp b/include/ndnboost/config/no_tr1/functional.hpp
index 5679772..8e7fb5c 100644
--- a/include/ndnboost/config/no_tr1/functional.hpp
+++ b/include/ndnboost/config/no_tr1/functional.hpp
@@ -10,19 +10,19 @@
 // dependencies:
 //
 
-#ifndef BOOST_CONFIG_FUNCTIONAL
-#  define BOOST_CONFIG_FUNCTIONAL
+#ifndef NDNBOOST_CONFIG_FUNCTIONAL
+#  define NDNBOOST_CONFIG_FUNCTIONAL
 
-#  ifndef BOOST_TR1_NO_RECURSION
-#     define BOOST_TR1_NO_RECURSION
-#     define BOOST_CONFIG_NO_FUNCTIONAL_RECURSION
+#  ifndef NDNBOOST_TR1_NO_RECURSION
+#     define NDNBOOST_TR1_NO_RECURSION
+#     define NDNBOOST_CONFIG_NO_FUNCTIONAL_RECURSION
 #  endif
 
 #  include <functional>
 
-#  ifdef BOOST_CONFIG_NO_FUNCTIONAL_RECURSION
-#     undef BOOST_TR1_NO_RECURSION
-#     undef BOOST_CONFIG_NO_FUNCTIONAL_RECURSION
+#  ifdef NDNBOOST_CONFIG_NO_FUNCTIONAL_RECURSION
+#     undef NDNBOOST_TR1_NO_RECURSION
+#     undef NDNBOOST_CONFIG_NO_FUNCTIONAL_RECURSION
 #  endif
 
 #endif
diff --git a/include/ndnboost/config/no_tr1/memory.hpp b/include/ndnboost/config/no_tr1/memory.hpp
index e035156..153226c 100644
--- a/include/ndnboost/config/no_tr1/memory.hpp
+++ b/include/ndnboost/config/no_tr1/memory.hpp
@@ -10,19 +10,19 @@
 // dependencies:
 //
 
-#ifndef BOOST_CONFIG_MEMORY
-#  define BOOST_CONFIG_MEMORY
+#ifndef NDNBOOST_CONFIG_MEMORY
+#  define NDNBOOST_CONFIG_MEMORY
 
-#  ifndef BOOST_TR1_NO_RECURSION
-#     define BOOST_TR1_NO_RECURSION
-#     define BOOST_CONFIG_NO_MEMORY_RECURSION
+#  ifndef NDNBOOST_TR1_NO_RECURSION
+#     define NDNBOOST_TR1_NO_RECURSION
+#     define NDNBOOST_CONFIG_NO_MEMORY_RECURSION
 #  endif
 
 #  include <memory>
 
-#  ifdef BOOST_CONFIG_NO_MEMORY_RECURSION
-#     undef BOOST_TR1_NO_RECURSION
-#     undef BOOST_CONFIG_NO_MEMORY_RECURSION
+#  ifdef NDNBOOST_CONFIG_NO_MEMORY_RECURSION
+#     undef NDNBOOST_TR1_NO_RECURSION
+#     undef NDNBOOST_CONFIG_NO_MEMORY_RECURSION
 #  endif
 
 #endif
diff --git a/include/ndnboost/config/no_tr1/utility.hpp b/include/ndnboost/config/no_tr1/utility.hpp
index de60035..d55b65f 100644
--- a/include/ndnboost/config/no_tr1/utility.hpp
+++ b/include/ndnboost/config/no_tr1/utility.hpp
@@ -10,19 +10,19 @@
 // dependencies:
 //
 
-#ifndef BOOST_CONFIG_UTILITY
-#  define BOOST_CONFIG_UTILITY
+#ifndef NDNBOOST_CONFIG_UTILITY
+#  define NDNBOOST_CONFIG_UTILITY
 
-#  ifndef BOOST_TR1_NO_RECURSION
-#     define BOOST_TR1_NO_RECURSION
-#     define BOOST_CONFIG_NO_UTILITY_RECURSION
+#  ifndef NDNBOOST_TR1_NO_RECURSION
+#     define NDNBOOST_TR1_NO_RECURSION
+#     define NDNBOOST_CONFIG_NO_UTILITY_RECURSION
 #  endif
 
 #  include <utility>
 
-#  ifdef BOOST_CONFIG_NO_UTILITY_RECURSION
-#     undef BOOST_TR1_NO_RECURSION
-#     undef BOOST_CONFIG_NO_UTILITY_RECURSION
+#  ifdef NDNBOOST_CONFIG_NO_UTILITY_RECURSION
+#     undef NDNBOOST_TR1_NO_RECURSION
+#     undef NDNBOOST_CONFIG_NO_UTILITY_RECURSION
 #  endif
 
 #endif
diff --git a/include/ndnboost/config/platform/aix.hpp b/include/ndnboost/config/platform/aix.hpp
index 43521cf..2c8bd90 100644
--- a/include/ndnboost/config/platform/aix.hpp
+++ b/include/ndnboost/config/platform/aix.hpp
@@ -7,23 +7,23 @@
 
 //  IBM/Aix specific config options:
 
-#define BOOST_PLATFORM "IBM Aix"
+#define NDNBOOST_PLATFORM "IBM Aix"
 
-#define BOOST_HAS_UNISTD_H
-#define BOOST_HAS_NL_TYPES_H
-#define BOOST_HAS_NANOSLEEP
-#define BOOST_HAS_CLOCK_GETTIME
+#define NDNBOOST_HAS_UNISTD_H
+#define NDNBOOST_HAS_NL_TYPES_H
+#define NDNBOOST_HAS_NANOSLEEP
+#define NDNBOOST_HAS_CLOCK_GETTIME
 
 // This needs support in "ndnboost/cstdint.hpp" exactly like FreeBSD.
 // This platform has header named <inttypes.h> which includes all
 // the things needed.
-#define BOOST_HAS_STDINT_H
+#define NDNBOOST_HAS_STDINT_H
 
 // Threading API's:
-#define BOOST_HAS_PTHREADS
-#define BOOST_HAS_PTHREAD_DELAY_NP
-#define BOOST_HAS_SCHED_YIELD
-//#define BOOST_HAS_PTHREAD_YIELD
+#define NDNBOOST_HAS_PTHREADS
+#define NDNBOOST_HAS_PTHREAD_DELAY_NP
+#define NDNBOOST_HAS_SCHED_YIELD
+//#define NDNBOOST_HAS_PTHREAD_YIELD
 
 // boilerplate code:
 #include <ndnboost/config/posix_features.hpp>
diff --git a/include/ndnboost/config/platform/amigaos.hpp b/include/ndnboost/config/platform/amigaos.hpp
index 34bcf41..26d2dd6 100644
--- a/include/ndnboost/config/platform/amigaos.hpp
+++ b/include/ndnboost/config/platform/amigaos.hpp
@@ -5,11 +5,11 @@
 
 //  See http://www.boost.org for most recent version.
 
-#define BOOST_PLATFORM "AmigaOS"
+#define NDNBOOST_PLATFORM "AmigaOS"
 
-#define BOOST_DISABLE_THREADS
-#define BOOST_NO_CWCHAR
-#define BOOST_NO_STD_WSTRING
-#define BOOST_NO_INTRINSIC_WCHAR_T
+#define NDNBOOST_DISABLE_THREADS
+#define NDNBOOST_NO_CWCHAR
+#define NDNBOOST_NO_STD_WSTRING
+#define NDNBOOST_NO_INTRINSIC_WCHAR_T
  
 
diff --git a/include/ndnboost/config/platform/beos.hpp b/include/ndnboost/config/platform/beos.hpp
index 5a5fcdc..3dab0b0 100644
--- a/include/ndnboost/config/platform/beos.hpp
+++ b/include/ndnboost/config/platform/beos.hpp
@@ -7,16 +7,16 @@
 
 //  BeOS specific config options:
 
-#define BOOST_PLATFORM "BeOS"
+#define NDNBOOST_PLATFORM "BeOS"
 
-#define BOOST_NO_CWCHAR
-#define BOOST_NO_CWCTYPE
-#define BOOST_HAS_UNISTD_H
+#define NDNBOOST_NO_CWCHAR
+#define NDNBOOST_NO_CWCTYPE
+#define NDNBOOST_HAS_UNISTD_H
 
-#define BOOST_HAS_BETHREADS
+#define NDNBOOST_HAS_BETHREADS
 
-#ifndef BOOST_DISABLE_THREADS
-#  define BOOST_HAS_THREADS
+#ifndef NDNBOOST_DISABLE_THREADS
+#  define NDNBOOST_HAS_THREADS
 #endif
 
 // boilerplate code:
diff --git a/include/ndnboost/config/platform/bsd.hpp b/include/ndnboost/config/platform/bsd.hpp
index 0510d28..df54511 100644
--- a/include/ndnboost/config/platform/bsd.hpp
+++ b/include/ndnboost/config/platform/bsd.hpp
@@ -14,13 +14,13 @@
 #endif
 
 #ifdef __FreeBSD__
-#define BOOST_PLATFORM "FreeBSD " BOOST_STRINGIZE(__FreeBSD__)
+#define NDNBOOST_PLATFORM "FreeBSD " NDNBOOST_STRINGIZE(__FreeBSD__)
 #elif defined(__NetBSD__)
-#define BOOST_PLATFORM "NetBSD " BOOST_STRINGIZE(__NetBSD__)
+#define NDNBOOST_PLATFORM "NetBSD " NDNBOOST_STRINGIZE(__NetBSD__)
 #elif defined(__OpenBSD__)
-#define BOOST_PLATFORM "OpenBSD " BOOST_STRINGIZE(__OpenBSD__)
+#define NDNBOOST_PLATFORM "OpenBSD " NDNBOOST_STRINGIZE(__OpenBSD__)
 #elif defined(__DragonFly__)
-#define BOOST_PLATFORM "DragonFly " BOOST_STRINGIZE(__DragonFly__)
+#define NDNBOOST_PLATFORM "DragonFly " NDNBOOST_STRINGIZE(__DragonFly__)
 #endif
 
 //
@@ -29,7 +29,7 @@
 // advertise the fact in <unistd.h>:
 //
 #if (defined(__FreeBSD__) && (__FreeBSD__ >= 3)) || defined(__DragonFly__)
-#  define BOOST_HAS_NL_TYPES_H
+#  define NDNBOOST_HAS_NL_TYPES_H
 #endif
 
 //
@@ -38,7 +38,7 @@
 //
 #if (defined(__FreeBSD__) && (__FreeBSD__ <= 3))\
    || defined(__OpenBSD__) || defined(__DragonFly__) 
-#  define BOOST_HAS_PTHREADS
+#  define NDNBOOST_HAS_PTHREADS
 #endif
 
 //
@@ -57,26 +57,26 @@
 
 #if !((defined(__FreeBSD__) && (__FreeBSD__ >= 5)) \
       || (defined(__NetBSD_GCC__) && (__NetBSD_GCC__ >= 2095003)) || defined(__DragonFly__))
-#  define BOOST_NO_CWCHAR
+#  define NDNBOOST_NO_CWCHAR
 #endif
 //
 // The BSD <ctype.h> has macros only, no functions:
 //
 #if !defined(__OpenBSD__) || defined(__DragonFly__)
-#  define BOOST_NO_CTYPE_FUNCTIONS
+#  define NDNBOOST_NO_CTYPE_FUNCTIONS
 #endif
 
 //
 // thread API's not auto detected:
 //
-#define BOOST_HAS_SCHED_YIELD
-#define BOOST_HAS_NANOSLEEP
-#define BOOST_HAS_GETTIMEOFDAY
-#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-#define BOOST_HAS_SIGACTION
+#define NDNBOOST_HAS_SCHED_YIELD
+#define NDNBOOST_HAS_NANOSLEEP
+#define NDNBOOST_HAS_GETTIMEOFDAY
+#define NDNBOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
+#define NDNBOOST_HAS_SIGACTION
 
 // boilerplate code:
-#define BOOST_HAS_UNISTD_H
+#define NDNBOOST_HAS_UNISTD_H
 #include <ndnboost/config/posix_features.hpp>
 
 
diff --git a/include/ndnboost/config/platform/cray.hpp b/include/ndnboost/config/platform/cray.hpp
index b25003d..200cdab 100644
--- a/include/ndnboost/config/platform/cray.hpp
+++ b/include/ndnboost/config/platform/cray.hpp
@@ -8,10 +8,10 @@
 
 //  SGI Irix specific config options:
 
-#define BOOST_PLATFORM "Cray"
+#define NDNBOOST_PLATFORM "Cray"
 
 // boilerplate code:
-#define BOOST_HAS_UNISTD_H
+#define NDNBOOST_HAS_UNISTD_H
 #include <ndnboost/config/posix_features.hpp>
 
 
diff --git a/include/ndnboost/config/platform/cygwin.hpp b/include/ndnboost/config/platform/cygwin.hpp
index 96eda3b..30022ff 100644
--- a/include/ndnboost/config/platform/cygwin.hpp
+++ b/include/ndnboost/config/platform/cygwin.hpp
@@ -7,28 +7,28 @@
 
 //  cygwin specific config options:
 
-#define BOOST_PLATFORM "Cygwin"
-#define BOOST_HAS_DIRENT_H
-#define BOOST_HAS_LOG1P
-#define BOOST_HAS_EXPM1
+#define NDNBOOST_PLATFORM "Cygwin"
+#define NDNBOOST_HAS_DIRENT_H
+#define NDNBOOST_HAS_LOG1P
+#define NDNBOOST_HAS_EXPM1
 
 //
 // Threading API:
 // See if we have POSIX threads, if we do use them, otherwise
 // revert to native Win threads.
-#define BOOST_HAS_UNISTD_H
+#define NDNBOOST_HAS_UNISTD_H
 #include <unistd.h>
-#if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0) && !defined(BOOST_HAS_WINTHREADS)
-#  define BOOST_HAS_PTHREADS
-#  define BOOST_HAS_SCHED_YIELD
-#  define BOOST_HAS_GETTIMEOFDAY
-#  define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-#  define BOOST_HAS_SIGACTION
+#if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0) && !defined(NDNBOOST_HAS_WINTHREADS)
+#  define NDNBOOST_HAS_PTHREADS
+#  define NDNBOOST_HAS_SCHED_YIELD
+#  define NDNBOOST_HAS_GETTIMEOFDAY
+#  define NDNBOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
+#  define NDNBOOST_HAS_SIGACTION
 #else
-#  if !defined(BOOST_HAS_WINTHREADS)
-#     define BOOST_HAS_WINTHREADS
+#  if !defined(NDNBOOST_HAS_WINTHREADS)
+#     define NDNBOOST_HAS_WINTHREADS
 #  endif
-#  define BOOST_HAS_FTIME
+#  define NDNBOOST_HAS_FTIME
 #endif
 
 //
@@ -36,11 +36,11 @@
 //
 #include <sys/types.h>
 #ifdef _STDINT_H
-#define BOOST_HAS_STDINT_H
+#define NDNBOOST_HAS_STDINT_H
 #endif
 
 /// Cygwin has no fenv.h
-#define BOOST_NO_FENV_H
+#define NDNBOOST_NO_FENV_H
 
 // boilerplate code:
 #include <ndnboost/config/posix_features.hpp>
@@ -48,8 +48,8 @@
 //
 // Cygwin lies about XSI conformance, there is no nl_types.h:
 //
-#ifdef BOOST_HAS_NL_TYPES_H
-#  undef BOOST_HAS_NL_TYPES_H
+#ifdef NDNBOOST_HAS_NL_TYPES_H
+#  undef NDNBOOST_HAS_NL_TYPES_H
 #endif
  
 
diff --git a/include/ndnboost/config/platform/hpux.hpp b/include/ndnboost/config/platform/hpux.hpp
index 3c717c3..e540a2e 100644
--- a/include/ndnboost/config/platform/hpux.hpp
+++ b/include/ndnboost/config/platform/hpux.hpp
@@ -11,77 +11,77 @@
 
 //  hpux specific config options:
 
-#define BOOST_PLATFORM "HP-UX"
+#define NDNBOOST_PLATFORM "HP-UX"
 
 // In principle, HP-UX has a nice <stdint.h> under the name <inttypes.h>
 // However, it has the following problem:
 // Use of UINT32_C(0) results in "0u l" for the preprocessed source
 // (verifyable with gcc 2.95.3)
 #if (defined(__GNUC__) && (__GNUC__ >= 3)) || defined(__HP_aCC)
-#  define BOOST_HAS_STDINT_H
+#  define NDNBOOST_HAS_STDINT_H
 #endif
 
 #if !(defined(__HP_aCC) || !defined(_INCLUDE__STDC_A1_SOURCE))
-#  define BOOST_NO_SWPRINTF
+#  define NDNBOOST_NO_SWPRINTF
 #endif
 #if defined(__HP_aCC) && !defined(_INCLUDE__STDC_A1_SOURCE)
-#  define BOOST_NO_CWCTYPE
+#  define NDNBOOST_NO_CWCTYPE
 #endif
 
 #if defined(__GNUC__)
 #  if (__GNUC__ < 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ < 3))
       // GNU C on HP-UX does not support threads (checked up to gcc 3.3)
-#     define BOOST_DISABLE_THREADS
-#  elif !defined(BOOST_DISABLE_THREADS)
+#     define NDNBOOST_DISABLE_THREADS
+#  elif !defined(NDNBOOST_DISABLE_THREADS)
       // threads supported from gcc-3.3 onwards:
-#     define BOOST_HAS_THREADS
-#     define BOOST_HAS_PTHREADS
+#     define NDNBOOST_HAS_THREADS
+#     define NDNBOOST_HAS_PTHREADS
 #  endif
-#elif defined(__HP_aCC) && !defined(BOOST_DISABLE_THREADS)
-#  define BOOST_HAS_PTHREADS
+#elif defined(__HP_aCC) && !defined(NDNBOOST_DISABLE_THREADS)
+#  define NDNBOOST_HAS_PTHREADS
 #endif
 
 // boilerplate code:
-#define BOOST_HAS_UNISTD_H
+#define NDNBOOST_HAS_UNISTD_H
 #include <ndnboost/config/posix_features.hpp>
 
 // the following are always available:
-#ifndef BOOST_HAS_GETTIMEOFDAY
-#  define BOOST_HAS_GETTIMEOFDAY
+#ifndef NDNBOOST_HAS_GETTIMEOFDAY
+#  define NDNBOOST_HAS_GETTIMEOFDAY
 #endif
-#ifndef BOOST_HAS_SCHED_YIELD
-#    define BOOST_HAS_SCHED_YIELD
+#ifndef NDNBOOST_HAS_SCHED_YIELD
+#    define NDNBOOST_HAS_SCHED_YIELD
 #endif
-#ifndef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-#    define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
+#ifndef NDNBOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
+#    define NDNBOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
 #endif
-#ifndef BOOST_HAS_NL_TYPES_H
-#    define BOOST_HAS_NL_TYPES_H
+#ifndef NDNBOOST_HAS_NL_TYPES_H
+#    define NDNBOOST_HAS_NL_TYPES_H
 #endif
-#ifndef BOOST_HAS_NANOSLEEP
-#    define BOOST_HAS_NANOSLEEP
+#ifndef NDNBOOST_HAS_NANOSLEEP
+#    define NDNBOOST_HAS_NANOSLEEP
 #endif
-#ifndef BOOST_HAS_GETTIMEOFDAY
-#    define BOOST_HAS_GETTIMEOFDAY
+#ifndef NDNBOOST_HAS_GETTIMEOFDAY
+#    define NDNBOOST_HAS_GETTIMEOFDAY
 #endif
-#ifndef BOOST_HAS_DIRENT_H
-#    define BOOST_HAS_DIRENT_H
+#ifndef NDNBOOST_HAS_DIRENT_H
+#    define NDNBOOST_HAS_DIRENT_H
 #endif
-#ifndef BOOST_HAS_CLOCK_GETTIME
-#    define BOOST_HAS_CLOCK_GETTIME
+#ifndef NDNBOOST_HAS_CLOCK_GETTIME
+#    define NDNBOOST_HAS_CLOCK_GETTIME
 #endif
-#ifndef BOOST_HAS_SIGACTION
-#  define BOOST_HAS_SIGACTION
+#ifndef NDNBOOST_HAS_SIGACTION
+#  define NDNBOOST_HAS_SIGACTION
 #endif
-#ifndef BOOST_HAS_NRVO 
+#ifndef NDNBOOST_HAS_NRVO 
 #  ifndef __parisc
-#    define BOOST_HAS_NRVO
+#    define NDNBOOST_HAS_NRVO
 #  endif
 #endif
-#ifndef BOOST_HAS_LOG1P 
-#  define BOOST_HAS_LOG1P
+#ifndef NDNBOOST_HAS_LOG1P 
+#  define NDNBOOST_HAS_LOG1P
 #endif
-#ifndef BOOST_HAS_EXPM1
-#  define BOOST_HAS_EXPM1
+#ifndef NDNBOOST_HAS_EXPM1
+#  define NDNBOOST_HAS_EXPM1
 #endif
 
diff --git a/include/ndnboost/config/platform/irix.hpp b/include/ndnboost/config/platform/irix.hpp
index 8064127..852d821 100644
--- a/include/ndnboost/config/platform/irix.hpp
+++ b/include/ndnboost/config/platform/irix.hpp
@@ -9,22 +9,22 @@
 
 //  SGI Irix specific config options:
 
-#define BOOST_PLATFORM "SGI Irix"
+#define NDNBOOST_PLATFORM "SGI Irix"
 
-#define BOOST_NO_SWPRINTF 
+#define NDNBOOST_NO_SWPRINTF 
 //
 // these are not auto detected by POSIX feature tests:
 //
-#define BOOST_HAS_GETTIMEOFDAY
-#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
+#define NDNBOOST_HAS_GETTIMEOFDAY
+#define NDNBOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
 
 #ifdef __GNUC__
    // GNU C on IRIX does not support threads (checked up to gcc 3.3)
-#  define BOOST_DISABLE_THREADS
+#  define NDNBOOST_DISABLE_THREADS
 #endif
 
 // boilerplate code:
-#define BOOST_HAS_UNISTD_H
+#define NDNBOOST_HAS_UNISTD_H
 #include <ndnboost/config/posix_features.hpp>
 
 
diff --git a/include/ndnboost/config/platform/linux.hpp b/include/ndnboost/config/platform/linux.hpp
index b5769ad..1073635 100644
--- a/include/ndnboost/config/platform/linux.hpp
+++ b/include/ndnboost/config/platform/linux.hpp
@@ -8,7 +8,7 @@
 
 //  linux specific config options:
 
-#define BOOST_PLATFORM "linux"
+#define NDNBOOST_PLATFORM "linux"
 
 // make sure we have __GLIBC_PREREQ if available at all
 #ifdef __cplusplus
@@ -26,7 +26,7 @@
    // int64_t only if __GNUC__.  Thus, assume a fully usable <stdint.h>
    // only when using GCC.
 #  if defined __GNUC__
-#    define BOOST_HAS_STDINT_H
+#    define NDNBOOST_HAS_STDINT_H
 #  endif
 #endif
 
@@ -37,11 +37,11 @@
    // e.g. version 25 is 21 (dec)
    //
 #  if __LIBCOMO_VERSION__ <= 20
-#    define BOOST_NO_STDC_NAMESPACE
+#    define NDNBOOST_NO_STDC_NAMESPACE
 #  endif
 
 #  if __LIBCOMO_VERSION__ <= 21
-#    define BOOST_NO_SWPRINTF
+#    define NDNBOOST_NO_SWPRINTF
 #  endif
 
 #endif
@@ -51,11 +51,11 @@
 // gettimeofday, earlier versions may or may not have it:
 //
 #if defined(__GLIBC__) && (__GLIBC__ >= 2)
-#  define BOOST_HAS_GETTIMEOFDAY
+#  define NDNBOOST_HAS_GETTIMEOFDAY
 #endif
 
 #ifdef __USE_POSIX199309
-#  define BOOST_HAS_NANOSLEEP
+#  define NDNBOOST_HAS_NANOSLEEP
 #endif
 
 #if defined(__GLIBC__) && defined(__GLIBC_PREREQ)
@@ -63,16 +63,16 @@
 
    // swprintf is available since glibc 2.2.0
 #  if !__GLIBC_PREREQ(2,2) || (!defined(__USE_ISOC99) && !defined(__USE_UNIX98))
-#    define BOOST_NO_SWPRINTF
+#    define NDNBOOST_NO_SWPRINTF
 #  endif
 #else
-#  define BOOST_NO_SWPRINTF
+#  define NDNBOOST_NO_SWPRINTF
 #endif
 
 // boilerplate code:
-#define BOOST_HAS_UNISTD_H
+#define NDNBOOST_HAS_UNISTD_H
 #include <ndnboost/config/posix_features.hpp>
-#define BOOST_HAS_PTHREAD_YIELD
+#define NDNBOOST_HAS_PTHREAD_YIELD
 
 #ifndef __GNUC__
 //
diff --git a/include/ndnboost/config/platform/macos.hpp b/include/ndnboost/config/platform/macos.hpp
index f755410..c6922db 100644
--- a/include/ndnboost/config/platform/macos.hpp
+++ b/include/ndnboost/config/platform/macos.hpp
@@ -9,14 +9,14 @@
 
 //  Mac OS specific config options:
 
-#define BOOST_PLATFORM "Mac OS"
+#define NDNBOOST_PLATFORM "Mac OS"
 
 #if __MACH__ && !defined(_MSL_USING_MSL_C)
 
 // Using the Mac OS X system BSD-style C library.
 
-#  ifndef BOOST_HAS_UNISTD_H
-#    define BOOST_HAS_UNISTD_H
+#  ifndef NDNBOOST_HAS_UNISTD_H
+#    define NDNBOOST_HAS_UNISTD_H
 #  endif
 //
 // Begin by including our boilerplate code for POSIX
@@ -26,8 +26,8 @@
 // should also always be able to do this on MaxOS X.
 //
 #  include <ndnboost/config/posix_features.hpp>
-#  ifndef BOOST_HAS_STDINT_H
-#     define BOOST_HAS_STDINT_H
+#  ifndef NDNBOOST_HAS_STDINT_H
+#     define NDNBOOST_HAS_STDINT_H
 #  endif
 
 //
@@ -35,23 +35,23 @@
 // of these only pthreads are advertised in <unistd.h>, so set the 
 // other options explicitly:
 //
-#  define BOOST_HAS_SCHED_YIELD
-#  define BOOST_HAS_GETTIMEOFDAY
-#  define BOOST_HAS_SIGACTION
+#  define NDNBOOST_HAS_SCHED_YIELD
+#  define NDNBOOST_HAS_GETTIMEOFDAY
+#  define NDNBOOST_HAS_SIGACTION
 
 #  if (__GNUC__ < 3) && !defined( __APPLE_CC__)
 
 // GCC strange "ignore std" mode works better if you pretend everything
 // is in the std namespace, for the most part.
 
-#    define BOOST_NO_STDC_NAMESPACE
+#    define NDNBOOST_NO_STDC_NAMESPACE
 #  endif
 
 #  if (__GNUC__ == 4)
 
 // Both gcc and intel require these.  
-#    define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-#    define BOOST_HAS_NANOSLEEP
+#    define NDNBOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
+#    define NDNBOOST_HAS_NANOSLEEP
 
 #  endif
 
@@ -63,21 +63,21 @@
 // not support this yet.
 #  if ( defined(TARGET_API_MAC_CARBON) && TARGET_API_MAC_CARBON ) || ( defined(TARGET_CARBON) && TARGET_CARBON )
 
-#  if !defined(BOOST_HAS_PTHREADS)
+#  if !defined(NDNBOOST_HAS_PTHREADS)
 // MPTasks support is deprecated/removed from Boost:
-//#    define BOOST_HAS_MPTASKS
+//#    define NDNBOOST_HAS_MPTASKS
 #  elif ( __dest_os == __mac_os_x )
 // We are doing a Carbon/Mach-O/MSL build which has pthreads, but only the
 // gettimeofday and no posix.
-#  define BOOST_HAS_GETTIMEOFDAY
+#  define NDNBOOST_HAS_GETTIMEOFDAY
 #  endif
 
-#ifdef BOOST_HAS_PTHREADS
-#  define BOOST_HAS_THREADS
+#ifdef NDNBOOST_HAS_PTHREADS
+#  define NDNBOOST_HAS_THREADS
 #endif
 
 // The remote call manager depends on this.
-#    define BOOST_BIND_ENABLE_PASCAL
+#    define NDNBOOST_BIND_ENABLE_PASCAL
 
 #  endif
 
diff --git a/include/ndnboost/config/platform/qnxnto.hpp b/include/ndnboost/config/platform/qnxnto.hpp
index c8b59be..972bf5c 100644
--- a/include/ndnboost/config/platform/qnxnto.hpp
+++ b/include/ndnboost/config/platform/qnxnto.hpp
@@ -7,23 +7,23 @@
 
 //  QNX specific config options:
 
-#define BOOST_PLATFORM "QNX"
+#define NDNBOOST_PLATFORM "QNX"
 
-#define BOOST_HAS_UNISTD_H
+#define NDNBOOST_HAS_UNISTD_H
 #include <ndnboost/config/posix_features.hpp>
 
 // QNX claims XOpen version 5 compatibility, but doesn't have an nl_types.h
 // or log1p and expm1:
-#undef  BOOST_HAS_NL_TYPES_H
-#undef  BOOST_HAS_LOG1P
-#undef  BOOST_HAS_EXPM1
+#undef  NDNBOOST_HAS_NL_TYPES_H
+#undef  NDNBOOST_HAS_LOG1P
+#undef  NDNBOOST_HAS_EXPM1
 
-#define BOOST_HAS_PTHREADS
-#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
+#define NDNBOOST_HAS_PTHREADS
+#define NDNBOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
 
-#define BOOST_HAS_GETTIMEOFDAY
-#define BOOST_HAS_CLOCK_GETTIME
-#define BOOST_HAS_NANOSLEEP
+#define NDNBOOST_HAS_GETTIMEOFDAY
+#define NDNBOOST_HAS_CLOCK_GETTIME
+#define NDNBOOST_HAS_NANOSLEEP
 
 
 
diff --git a/include/ndnboost/config/platform/solaris.hpp b/include/ndnboost/config/platform/solaris.hpp
index 2de1151..e9ce41e 100644
--- a/include/ndnboost/config/platform/solaris.hpp
+++ b/include/ndnboost/config/platform/solaris.hpp
@@ -8,19 +8,19 @@
 
 //  sun specific config options:
 
-#define BOOST_PLATFORM "Sun Solaris"
+#define NDNBOOST_PLATFORM "Sun Solaris"
 
-#define BOOST_HAS_GETTIMEOFDAY
+#define NDNBOOST_HAS_GETTIMEOFDAY
 
 // boilerplate code:
-#define BOOST_HAS_UNISTD_H
+#define NDNBOOST_HAS_UNISTD_H
 #include <ndnboost/config/posix_features.hpp>
 
 //
 // pthreads don't actually work with gcc unless _PTHREADS is defined:
 //
 #if defined(__GNUC__) && defined(_POSIX_THREADS) && !defined(_PTHREADS)
-# undef BOOST_HAS_PTHREADS
+# undef NDNBOOST_HAS_PTHREADS
 #endif
 
 
diff --git a/include/ndnboost/config/platform/symbian.hpp b/include/ndnboost/config/platform/symbian.hpp
index 3ccdb4b..1b32193 100644
--- a/include/ndnboost/config/platform/symbian.hpp
+++ b/include/ndnboost/config/platform/symbian.hpp
@@ -10,54 +10,54 @@
 //  symbian specific config options:
 
 
-#define BOOST_PLATFORM "Symbian"
-#define BOOST_SYMBIAN 1
+#define NDNBOOST_PLATFORM "Symbian"
+#define NDNBOOST_SYMBIAN 1
 
 
 #if defined(__S60_3X__)
 // Open C / C++ plugin was introdused in this SDK, earlier versions don't have CRT / STL
-#  define BOOST_S60_3rd_EDITION_FP2_OR_LATER_SDK
+#  define NDNBOOST_S60_3rd_EDITION_FP2_OR_LATER_SDK
 // make sure we have __GLIBC_PREREQ if available at all
 #ifdef __cplusplus
 #include <cstdlib>
 #else
 #include <stdlib.h>
 #endif// boilerplate code:
-#  define BOOST_HAS_UNISTD_H
+#  define NDNBOOST_HAS_UNISTD_H
 #  include <ndnboost/config/posix_features.hpp>
 // S60 SDK defines _POSIX_VERSION as POSIX.1
-#  ifndef BOOST_HAS_STDINT_H
-#    define BOOST_HAS_STDINT_H
+#  ifndef NDNBOOST_HAS_STDINT_H
+#    define NDNBOOST_HAS_STDINT_H
 #  endif
-#  ifndef BOOST_HAS_GETTIMEOFDAY
-#    define BOOST_HAS_GETTIMEOFDAY
+#  ifndef NDNBOOST_HAS_GETTIMEOFDAY
+#    define NDNBOOST_HAS_GETTIMEOFDAY
 #  endif
-#  ifndef BOOST_HAS_DIRENT_H
-#    define BOOST_HAS_DIRENT_H
+#  ifndef NDNBOOST_HAS_DIRENT_H
+#    define NDNBOOST_HAS_DIRENT_H
 #  endif
-#  ifndef BOOST_HAS_SIGACTION
-#    define BOOST_HAS_SIGACTION
+#  ifndef NDNBOOST_HAS_SIGACTION
+#    define NDNBOOST_HAS_SIGACTION
 #  endif
-#  ifndef BOOST_HAS_PTHREADS
-#    define BOOST_HAS_PTHREADS
+#  ifndef NDNBOOST_HAS_PTHREADS
+#    define NDNBOOST_HAS_PTHREADS
 #  endif
-#  ifndef BOOST_HAS_NANOSLEEP
-#    define BOOST_HAS_NANOSLEEP
+#  ifndef NDNBOOST_HAS_NANOSLEEP
+#    define NDNBOOST_HAS_NANOSLEEP
 #  endif
-#  ifndef BOOST_HAS_SCHED_YIELD
-#    define BOOST_HAS_SCHED_YIELD
+#  ifndef NDNBOOST_HAS_SCHED_YIELD
+#    define NDNBOOST_HAS_SCHED_YIELD
 #  endif
-#  ifndef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-#    define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
+#  ifndef NDNBOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
+#    define NDNBOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
 #  endif
-#  ifndef BOOST_HAS_LOG1P
-#    define BOOST_HAS_LOG1P
+#  ifndef NDNBOOST_HAS_LOG1P
+#    define NDNBOOST_HAS_LOG1P
 #  endif
-#  ifndef BOOST_HAS_EXPM1
-#    define BOOST_HAS_EXPM1
+#  ifndef NDNBOOST_HAS_EXPM1
+#    define NDNBOOST_HAS_EXPM1
 #  endif
-#  ifndef BOOST_POSIX_API
-#    define BOOST_POSIX_API
+#  ifndef NDNBOOST_POSIX_API
+#    define NDNBOOST_POSIX_API
 #  endif
 // endianess support
 #  include <sys/endian.h>
@@ -80,18 +80,18 @@
 #    define __BYTE_ORDER __LITTLE_ENDIAN // Symbian is LE
 #  endif
 // Known limitations
-#  define BOOST_ASIO_DISABLE_SERIAL_PORT
-#  define BOOST_DATE_TIME_NO_LOCALE
-#  define BOOST_NO_STD_WSTRING
-#  define BOOST_EXCEPTION_DISABLE
-#  define BOOST_NO_EXCEPTIONS
+#  define NDNBOOST_ASIO_DISABLE_SERIAL_PORT
+#  define NDNBOOST_DATE_TIME_NO_LOCALE
+#  define NDNBOOST_NO_STD_WSTRING
+#  define NDNBOOST_EXCEPTION_DISABLE
+#  define NDNBOOST_NO_EXCEPTIONS
 
 #else // TODO: More platform support e.g. UIQ
 #  error "Unsuppoted Symbian SDK"
 #endif
 
-#if defined(__WINSCW__) && !defined(BOOST_DISABLE_WIN32)
-#  define BOOST_DISABLE_WIN32 // winscw defines WIN32 macro
+#if defined(__WINSCW__) && !defined(NDNBOOST_DISABLE_WIN32)
+#  define NDNBOOST_DISABLE_WIN32 // winscw defines WIN32 macro
 #endif
 
 
diff --git a/include/ndnboost/config/platform/vms.hpp b/include/ndnboost/config/platform/vms.hpp
index f70efcf..f5f7457 100644
--- a/include/ndnboost/config/platform/vms.hpp
+++ b/include/ndnboost/config/platform/vms.hpp
@@ -3,23 +3,23 @@
 //  Boost Software License, Version 1.0. (See accompanying file  
 //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 
 
-#ifndef BOOST_CONFIG_PLATFORM_VMS_HPP 
-#define BOOST_CONFIG_PLATFORM_VMS_HPP 
+#ifndef NDNBOOST_CONFIG_PLATFORM_VMS_HPP 
+#define NDNBOOST_CONFIG_PLATFORM_VMS_HPP 
 
-#define BOOST_PLATFORM "OpenVMS" 
+#define NDNBOOST_PLATFORM "OpenVMS" 
 
-#undef  BOOST_HAS_STDINT_H 
-#define BOOST_HAS_UNISTD_H 
-#define BOOST_HAS_NL_TYPES_H 
-#define BOOST_HAS_GETTIMEOFDAY 
-#define BOOST_HAS_DIRENT_H 
-#define BOOST_HAS_PTHREADS 
-#define BOOST_HAS_NANOSLEEP 
-#define BOOST_HAS_CLOCK_GETTIME 
-#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE 
-#define BOOST_HAS_LOG1P 
-#define BOOST_HAS_EXPM1 
-#define BOOST_HAS_THREADS 
-#undef  BOOST_HAS_SCHED_YIELD 
+#undef  NDNBOOST_HAS_STDINT_H 
+#define NDNBOOST_HAS_UNISTD_H 
+#define NDNBOOST_HAS_NL_TYPES_H 
+#define NDNBOOST_HAS_GETTIMEOFDAY 
+#define NDNBOOST_HAS_DIRENT_H 
+#define NDNBOOST_HAS_PTHREADS 
+#define NDNBOOST_HAS_NANOSLEEP 
+#define NDNBOOST_HAS_CLOCK_GETTIME 
+#define NDNBOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE 
+#define NDNBOOST_HAS_LOG1P 
+#define NDNBOOST_HAS_EXPM1 
+#define NDNBOOST_HAS_THREADS 
+#undef  NDNBOOST_HAS_SCHED_YIELD 
 
 #endif 
diff --git a/include/ndnboost/config/platform/vxworks.hpp b/include/ndnboost/config/platform/vxworks.hpp
index b94c329..425044e 100644
--- a/include/ndnboost/config/platform/vxworks.hpp
+++ b/include/ndnboost/config/platform/vxworks.hpp
@@ -124,55 +124,55 @@
 
 // vxWorks specific config options:
 // --------------------------------
-#define BOOST_PLATFORM "vxWorks"
+#define NDNBOOST_PLATFORM "vxWorks"
 
 // Special behaviour for DKMs:
 #ifdef _WRS_KERNEL
   // DKMs do not have the <cwchar>-header,
   // but apparently they do have an intrinsic wchar_t meanwhile!
-#  define BOOST_NO_CWCHAR
+#  define NDNBOOST_NO_CWCHAR
 
   // Lots of wide-functions and -headers are unavailable for DKMs as well:
-#  define BOOST_NO_CWCTYPE
-#  define BOOST_NO_SWPRINTF
-#  define BOOST_NO_STD_WSTRING
-#  define BOOST_NO_STD_WSTREAMBUF
+#  define NDNBOOST_NO_CWCTYPE
+#  define NDNBOOST_NO_SWPRINTF
+#  define NDNBOOST_NO_STD_WSTRING
+#  define NDNBOOST_NO_STD_WSTREAMBUF
 #endif
 
 // Generally available headers:
-#define BOOST_HAS_UNISTD_H
-#define BOOST_HAS_STDINT_H
-#define BOOST_HAS_DIRENT_H
-#define BOOST_HAS_SLIST
+#define NDNBOOST_HAS_UNISTD_H
+#define NDNBOOST_HAS_STDINT_H
+#define NDNBOOST_HAS_DIRENT_H
+#define NDNBOOST_HAS_SLIST
 
 // vxWorks does not have installed an iconv-library by default,
 // so unfortunately no Unicode support from scratch is available!
 // Thus, instead it is suggested to switch to ICU, as this seems
 // to be the most complete and portable option...
-#define BOOST_LOCALE_WITH_ICU
+#define NDNBOOST_LOCALE_WITH_ICU
 
 // Generally available functionality:
-#define BOOST_HAS_THREADS
-#define BOOST_HAS_NANOSLEEP
-#define BOOST_HAS_GETTIMEOFDAY
-#define BOOST_HAS_CLOCK_GETTIME
-#define BOOST_HAS_MACRO_USE_FACET
+#define NDNBOOST_HAS_THREADS
+#define NDNBOOST_HAS_NANOSLEEP
+#define NDNBOOST_HAS_GETTIMEOFDAY
+#define NDNBOOST_HAS_CLOCK_GETTIME
+#define NDNBOOST_HAS_MACRO_USE_FACET
 
 // Generally unavailable functionality, delivered by boost's test function:
-//#define BOOST_NO_DEDUCED_TYPENAME // Commented this out, boost's test gives an errorneous result!
-#define BOOST_NO_CXX11_EXTERN_TEMPLATE
-#define BOOST_NO_CXX11_VARIADIC_MACROS
+//#define NDNBOOST_NO_DEDUCED_TYPENAME // Commented this out, boost's test gives an errorneous result!
+#define NDNBOOST_NO_CXX11_EXTERN_TEMPLATE
+#define NDNBOOST_NO_CXX11_VARIADIC_MACROS
 
 // Generally available threading API's:
-#define BOOST_HAS_PTHREADS
-#define BOOST_HAS_SCHED_YIELD
-#define BOOST_HAS_SIGACTION
+#define NDNBOOST_HAS_PTHREADS
+#define NDNBOOST_HAS_SCHED_YIELD
+#define NDNBOOST_HAS_SIGACTION
 
 // Functionality available for RTPs only:
 #ifdef __RTP__
-#  define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-#  define BOOST_HAS_LOG1P
-#  define BOOST_HAS_EXPM1
+#  define NDNBOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
+#  define NDNBOOST_HAS_LOG1P
+#  define NDNBOOST_HAS_EXPM1
 #endif
 
 // Functionality available for DKMs only:
@@ -192,7 +192,7 @@
 #endif
 
 // vxWorks doesn't work with asio serial ports:
-#define BOOST_ASIO_DISABLE_SERIAL_PORT
+#define NDNBOOST_ASIO_DISABLE_SERIAL_PORT
 // TODO: The problem here seems to bee that vxWorks uses its own, very specific
 //       ways to handle serial ports, incompatible with POSIX or anything...
 //       Maybe a specific implementation would be possible, but until the
@@ -366,4 +366,4 @@
 #include <ndnboost/config/posix_features.hpp>
 
 // vxWorks lies about XSI conformance, there is no nl_types.h:
-#undef BOOST_HAS_NL_TYPES_H
+#undef NDNBOOST_HAS_NL_TYPES_H
diff --git a/include/ndnboost/config/platform/win32.hpp b/include/ndnboost/config/platform/win32.hpp
index 82b27c8..bc4e1da 100644
--- a/include/ndnboost/config/platform/win32.hpp
+++ b/include/ndnboost/config/platform/win32.hpp
@@ -10,64 +10,64 @@
 
 //  Win32 specific config options:
 
-#define BOOST_PLATFORM "Win32"
+#define NDNBOOST_PLATFORM "Win32"
 
 //  Get the information about the MinGW runtime, i.e. __MINGW32_*VERSION.
 #if defined(__MINGW32__)
 #  include <_mingw.h>
 #endif
 
-#if defined(__GNUC__) && !defined(BOOST_NO_SWPRINTF)
-#  define BOOST_NO_SWPRINTF
+#if defined(__GNUC__) && !defined(NDNBOOST_NO_SWPRINTF)
+#  define NDNBOOST_NO_SWPRINTF
 #endif
 
-//  Default defines for BOOST_SYMBOL_EXPORT and BOOST_SYMBOL_IMPORT
+//  Default defines for NDNBOOST_SYMBOL_EXPORT and NDNBOOST_SYMBOL_IMPORT
 //  If a compiler doesn't support __declspec(dllexport)/__declspec(dllimport),
-//  its ndnboost/config/compiler/ file must define BOOST_SYMBOL_EXPORT and
-//  BOOST_SYMBOL_IMPORT
-#ifndef BOOST_SYMBOL_EXPORT
-#  define BOOST_HAS_DECLSPEC
-#  define BOOST_SYMBOL_EXPORT __declspec(dllexport)
-#  define BOOST_SYMBOL_IMPORT __declspec(dllimport)
+//  its ndnboost/config/compiler/ file must define NDNBOOST_SYMBOL_EXPORT and
+//  NDNBOOST_SYMBOL_IMPORT
+#ifndef NDNBOOST_SYMBOL_EXPORT
+#  define NDNBOOST_HAS_DECLSPEC
+#  define NDNBOOST_SYMBOL_EXPORT __declspec(dllexport)
+#  define NDNBOOST_SYMBOL_IMPORT __declspec(dllimport)
 #endif
 
 #if defined(__MINGW32__) && ((__MINGW32_MAJOR_VERSION > 2) || ((__MINGW32_MAJOR_VERSION == 2) && (__MINGW32_MINOR_VERSION >= 0)))
-#  define BOOST_HAS_STDINT_H
+#  define NDNBOOST_HAS_STDINT_H
 #  ifndef __STDC_LIMIT_MACROS
 #     define __STDC_LIMIT_MACROS
 #  endif
-#  define BOOST_HAS_DIRENT_H
-#  define BOOST_HAS_UNISTD_H
+#  define NDNBOOST_HAS_DIRENT_H
+#  define NDNBOOST_HAS_UNISTD_H
 #endif
 
 #if defined(__MINGW32__) && (__GNUC__ >= 4)
-#  define BOOST_HAS_EXPM1
-#  define BOOST_HAS_LOG1P
-#  define BOOST_HAS_GETTIMEOFDAY
+#  define NDNBOOST_HAS_EXPM1
+#  define NDNBOOST_HAS_LOG1P
+#  define NDNBOOST_HAS_GETTIMEOFDAY
 #endif
 //
 // Win32 will normally be using native Win32 threads,
 // but there is a pthread library avaliable as an option,
-// we used to disable this when BOOST_DISABLE_WIN32 was 
+// we used to disable this when NDNBOOST_DISABLE_WIN32 was 
 // defined but no longer - this should allow some
 // files to be compiled in strict mode - while maintaining
-// a consistent setting of BOOST_HAS_THREADS across
+// a consistent setting of NDNBOOST_HAS_THREADS across
 // all translation units (needed for shared_ptr etc).
 //
 
 #ifdef _WIN32_WCE
-#  define BOOST_NO_ANSI_APIS
+#  define NDNBOOST_NO_ANSI_APIS
 #else
-#  define BOOST_HAS_GETSYSTEMTIMEASFILETIME
+#  define NDNBOOST_HAS_GETSYSTEMTIMEASFILETIME
 #endif
 
-#ifndef BOOST_HAS_PTHREADS
-#  define BOOST_HAS_WINTHREADS
+#ifndef NDNBOOST_HAS_PTHREADS
+#  define NDNBOOST_HAS_WINTHREADS
 #endif
 
-#ifndef BOOST_DISABLE_WIN32
+#ifndef NDNBOOST_DISABLE_WIN32
 // WEK: Added
-#define BOOST_HAS_FTIME
-#define BOOST_WINDOWS 1
+#define NDNBOOST_HAS_FTIME
+#define NDNBOOST_WINDOWS 1
 
 #endif
diff --git a/include/ndnboost/config/posix_features.hpp b/include/ndnboost/config/posix_features.hpp
index d129547..72cc724 100644
--- a/include/ndnboost/config/posix_features.hpp
+++ b/include/ndnboost/config/posix_features.hpp
@@ -14,27 +14,27 @@
 // to the user to do this *before* including any header, although
 // in most cases the compiler will do this for you).
 
-#  if defined(BOOST_HAS_UNISTD_H)
+#  if defined(NDNBOOST_HAS_UNISTD_H)
 #     include <unistd.h>
 
       // XOpen has <nl_types.h>, but is this the correct version check?
 #     if defined(_XOPEN_VERSION) && (_XOPEN_VERSION >= 3)
-#        define BOOST_HAS_NL_TYPES_H
+#        define NDNBOOST_HAS_NL_TYPES_H
 #     endif
 
       // POSIX version 6 requires <stdint.h>
 #     if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 200100)
-#        define BOOST_HAS_STDINT_H
+#        define NDNBOOST_HAS_STDINT_H
 #     endif
 
       // POSIX version 2 requires <dirent.h>
 #     if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 199009L)
-#        define BOOST_HAS_DIRENT_H
+#        define NDNBOOST_HAS_DIRENT_H
 #     endif
 
       // POSIX version 3 requires <signal.h> to have sigaction:
 #     if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 199506L)
-#        define BOOST_HAS_SIGACTION
+#        define NDNBOOST_HAS_SIGACTION
 #     endif
       // POSIX defines _POSIX_THREADS > 0 for pthread support,
       // however some platforms define _POSIX_THREADS without
@@ -42,49 +42,49 @@
       // Strictly speaking this may catch platforms with a
       // non-functioning stub <pthreads.h>, but such occurrences should
       // occur very rarely if at all.
-#     if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0) && !defined(BOOST_HAS_WINTHREADS) && !defined(BOOST_HAS_MPTASKS)
-#        define BOOST_HAS_PTHREADS
+#     if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0) && !defined(NDNBOOST_HAS_WINTHREADS) && !defined(NDNBOOST_HAS_MPTASKS)
+#        define NDNBOOST_HAS_PTHREADS
 #     endif
 
-      // BOOST_HAS_NANOSLEEP:
+      // NDNBOOST_HAS_NANOSLEEP:
       // This is predicated on _POSIX_TIMERS or _XOPEN_REALTIME:
 #     if (defined(_POSIX_TIMERS) && (_POSIX_TIMERS+0 >= 0)) \
              || (defined(_XOPEN_REALTIME) && (_XOPEN_REALTIME+0 >= 0))
-#        define BOOST_HAS_NANOSLEEP
+#        define NDNBOOST_HAS_NANOSLEEP
 #     endif
 
-      // BOOST_HAS_CLOCK_GETTIME:
+      // NDNBOOST_HAS_CLOCK_GETTIME:
       // This is predicated on _POSIX_TIMERS (also on _XOPEN_REALTIME
       // but at least one platform - linux - defines that flag without
       // defining clock_gettime):
 #     if (defined(_POSIX_TIMERS) && (_POSIX_TIMERS+0 >= 0))
-#        define BOOST_HAS_CLOCK_GETTIME
+#        define NDNBOOST_HAS_CLOCK_GETTIME
 #     endif
 
-      // BOOST_HAS_SCHED_YIELD:
+      // NDNBOOST_HAS_SCHED_YIELD:
       // This is predicated on _POSIX_PRIORITY_SCHEDULING or
       // on _POSIX_THREAD_PRIORITY_SCHEDULING or on _XOPEN_REALTIME.
 #     if defined(_POSIX_PRIORITY_SCHEDULING) && (_POSIX_PRIORITY_SCHEDULING+0 > 0)\
             || (defined(_POSIX_THREAD_PRIORITY_SCHEDULING) && (_POSIX_THREAD_PRIORITY_SCHEDULING+0 > 0))\
             || (defined(_XOPEN_REALTIME) && (_XOPEN_REALTIME+0 >= 0))
-#        define BOOST_HAS_SCHED_YIELD
+#        define NDNBOOST_HAS_SCHED_YIELD
 #     endif
 
-      // BOOST_HAS_GETTIMEOFDAY:
-      // BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE:
+      // NDNBOOST_HAS_GETTIMEOFDAY:
+      // NDNBOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE:
       // These are predicated on _XOPEN_VERSION, and appears to be first released
       // in issue 4, version 2 (_XOPEN_VERSION > 500).
       // Likewise for the functions log1p and expm1.
 #     if defined(_XOPEN_VERSION) && (_XOPEN_VERSION+0 >= 500)
-#        define BOOST_HAS_GETTIMEOFDAY
+#        define NDNBOOST_HAS_GETTIMEOFDAY
 #        if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE+0 >= 500)
-#           define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
+#           define NDNBOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
 #        endif
-#        ifndef BOOST_HAS_LOG1P
-#           define BOOST_HAS_LOG1P
+#        ifndef NDNBOOST_HAS_LOG1P
+#           define NDNBOOST_HAS_LOG1P
 #        endif
-#        ifndef BOOST_HAS_EXPM1
-#           define BOOST_HAS_EXPM1
+#        ifndef NDNBOOST_HAS_EXPM1
+#           define NDNBOOST_HAS_EXPM1
 #        endif
 #     endif
 
diff --git a/include/ndnboost/config/requires_threads.hpp b/include/ndnboost/config/requires_threads.hpp
index be04a8e..7b793a6 100644
--- a/include/ndnboost/config/requires_threads.hpp
+++ b/include/ndnboost/config/requires_threads.hpp
@@ -4,19 +4,19 @@
 //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
 
-#ifndef BOOST_CONFIG_REQUIRES_THREADS_HPP
-#define BOOST_CONFIG_REQUIRES_THREADS_HPP
+#ifndef NDNBOOST_CONFIG_REQUIRES_THREADS_HPP
+#define NDNBOOST_CONFIG_REQUIRES_THREADS_HPP
 
-#ifndef BOOST_CONFIG_HPP
+#ifndef NDNBOOST_CONFIG_HPP
 #  include <ndnboost/config.hpp>
 #endif
 
-#if defined(BOOST_DISABLE_THREADS)
+#if defined(NDNBOOST_DISABLE_THREADS)
 
 //
 // special case to handle versions of gcc which don't currently support threads:
 //
-#if defined(__GNUC__) && ((__GNUC__ < 3) || (__GNUC_MINOR__ <= 3) || !defined(BOOST_STRICT_CONFIG))
+#if defined(__GNUC__) && ((__GNUC__ < 3) || (__GNUC_MINOR__ <= 3) || !defined(NDNBOOST_STRICT_CONFIG))
 //
 // this is checked up to gcc 3.3:
 //
@@ -26,9 +26,9 @@
 
 #endif
 
-#  error "Threading support unavaliable: it has been explicitly disabled with BOOST_DISABLE_THREADS"
+#  error "Threading support unavaliable: it has been explicitly disabled with NDNBOOST_DISABLE_THREADS"
 
-#elif !defined(BOOST_HAS_THREADS)
+#elif !defined(NDNBOOST_HAS_THREADS)
 
 # if defined __COMO__
 //  Comeau C++
@@ -87,6 +87,6 @@
 
 #endif // compilers
 
-#endif // BOOST_HAS_THREADS
+#endif // NDNBOOST_HAS_THREADS
 
-#endif // BOOST_CONFIG_REQUIRES_THREADS_HPP
+#endif // NDNBOOST_CONFIG_REQUIRES_THREADS_HPP
diff --git a/include/ndnboost/config/select_compiler_config.hpp b/include/ndnboost/config/select_compiler_config.hpp
index 2d3cde3..9ddaf2d 100644
--- a/include/ndnboost/config/select_compiler_config.hpp
+++ b/include/ndnboost/config/select_compiler_config.hpp
@@ -11,100 +11,100 @@
 //  See http://www.boost.org/ for most recent version.
 
 // locate which compiler we are using and define
-// BOOST_COMPILER_CONFIG as needed: 
+// NDNBOOST_COMPILER_CONFIG as needed: 
 
 #if defined(__GCCXML__)
 // GCC-XML emulates other compilers, it has to appear first here!
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/gcc_xml.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/gcc_xml.hpp"
 
 #elif defined(_CRAYC)
 // EDG based Cray compiler:
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/cray.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/cray.hpp"
 
 #elif defined __CUDACC__
 //  NVIDIA CUDA C++ compiler for GPU
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/nvcc.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/nvcc.hpp"
 
 #elif defined __COMO__
 //  Comeau C++
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/comeau.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/comeau.hpp"
 
 #elif defined(__PATHSCALE__) && (__PATHCC__ >= 4)
 // PathScale EKOPath compiler (has to come before clang and gcc)
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/pathscale.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/pathscale.hpp"
 
 #elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)
 //  Intel
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/intel.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/intel.hpp"
 
 #elif defined __clang__
 //  Clang C++ emulates GCC, so it has to appear early.
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/clang.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/clang.hpp"
 
 #elif defined __DMC__
 //  Digital Mars C++
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/digitalmars.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/digitalmars.hpp"
 
 # elif defined __GNUC__
 //  GNU C++:
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/gcc.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/gcc.hpp"
 
 #elif defined __KCC
 //  Kai C++
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/kai.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/kai.hpp"
 
 #elif defined __sgi
 //  SGI MIPSpro C++
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/sgi_mipspro.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/sgi_mipspro.hpp"
 
 #elif defined __DECCXX
 //  Compaq Tru64 Unix cxx
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/compaq_cxx.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/compaq_cxx.hpp"
 
 #elif defined __ghs
 //  Greenhills C++
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/greenhills.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/greenhills.hpp"
 
 #elif defined __CODEGEARC__
 //  CodeGear - must be checked for before Borland
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/codegear.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/codegear.hpp"
 
 #elif defined __BORLANDC__
 //  Borland
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/borland.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/borland.hpp"
 
 #elif defined  __MWERKS__
 //  Metrowerks CodeWarrior
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/metrowerks.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/metrowerks.hpp"
 
 #elif defined  __SUNPRO_CC
 //  Sun Workshop Compiler C++
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/sunpro_cc.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/sunpro_cc.hpp"
 
 #elif defined __HP_aCC
 //  HP aCC
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/hp_acc.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/hp_acc.hpp"
 
 #elif defined(__MRC__) || defined(__SC__)
 //  MPW MrCpp or SCpp
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/mpw.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/mpw.hpp"
 
 #elif defined(__IBMCPP__)
 //  IBM Visual Age
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/vacpp.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/vacpp.hpp"
 
 #elif defined(__PGI)
 //  Portland Group Inc.
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/pgi.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/pgi.hpp"
 
 #elif defined _MSC_VER
 //  Microsoft Visual C++
 //
 //  Must remain the last #elif since some other vendors (Metrowerks, for
 //  example) also #define _MSC_VER
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/visualc.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/visualc.hpp"
 
-#elif defined (BOOST_ASSERT_CONFIG)
+#elif defined (NDNBOOST_ASSERT_CONFIG)
 // this must come last - generate an error if we don't
 // recognise the compiler:
 #  error "Unknown compiler - please configure (http://www.boost.org/libs/config/config.htm#configuring) and report the results to the main boost mailing list (http://www.boost.org/more/mailing_lists.htm#main)"
diff --git a/include/ndnboost/config/select_platform_config.hpp b/include/ndnboost/config/select_platform_config.hpp
index 59d56f3..b043871 100644
--- a/include/ndnboost/config/select_platform_config.hpp
+++ b/include/ndnboost/config/select_platform_config.hpp
@@ -8,74 +8,74 @@
 
 //  See http://www.boost.org for most recent version.
 
-// locate which platform we are on and define BOOST_PLATFORM_CONFIG as needed.
+// locate which platform we are on and define NDNBOOST_PLATFORM_CONFIG as needed.
 // Note that we define the headers to include using "header_name" not
 // <header_name> in order to prevent macro expansion within the header
 // name (for example "linux" is a macro on linux systems).
 
 #if (defined(linux) || defined(__linux) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__)) && !defined(_CRAYC)
 // linux, also other platforms (Hurd etc) that use GLIBC, should these really have their own config headers though?
-#  define BOOST_PLATFORM_CONFIG "ndnboost/config/platform/linux.hpp"
+#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/linux.hpp"
 
 #elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
 // BSD:
-#  define BOOST_PLATFORM_CONFIG "ndnboost/config/platform/bsd.hpp"
+#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/bsd.hpp"
 
 #elif defined(sun) || defined(__sun)
 // solaris:
-#  define BOOST_PLATFORM_CONFIG "ndnboost/config/platform/solaris.hpp"
+#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/solaris.hpp"
 
 #elif defined(__sgi)
 // SGI Irix:
-#  define BOOST_PLATFORM_CONFIG "ndnboost/config/platform/irix.hpp"
+#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/irix.hpp"
 
 #elif defined(__hpux)
 // hp unix:
-#  define BOOST_PLATFORM_CONFIG "ndnboost/config/platform/hpux.hpp"
+#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/hpux.hpp"
 
 #elif defined(__CYGWIN__)
 // cygwin is not win32:
-#  define BOOST_PLATFORM_CONFIG "ndnboost/config/platform/cygwin.hpp"
+#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/cygwin.hpp"
 
 #elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
 // win32:
-#  define BOOST_PLATFORM_CONFIG "ndnboost/config/platform/win32.hpp"
+#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/win32.hpp"
 
 #elif defined(__BEOS__)
 // BeOS
-#  define BOOST_PLATFORM_CONFIG "ndnboost/config/platform/beos.hpp"
+#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/beos.hpp"
 
 #elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__)
 // MacOS
-#  define BOOST_PLATFORM_CONFIG "ndnboost/config/platform/macos.hpp"
+#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/macos.hpp"
 
 #elif defined(__IBMCPP__) || defined(_AIX)
 // IBM
-#  define BOOST_PLATFORM_CONFIG "ndnboost/config/platform/aix.hpp"
+#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/aix.hpp"
 
 #elif defined(__amigaos__)
 // AmigaOS
-#  define BOOST_PLATFORM_CONFIG "ndnboost/config/platform/amigaos.hpp"
+#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/amigaos.hpp"
 
 #elif defined(__QNXNTO__)
 // QNX:
-#  define BOOST_PLATFORM_CONFIG "ndnboost/config/platform/qnxnto.hpp"
+#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/qnxnto.hpp"
 
 #elif defined(__VXWORKS__)
 // vxWorks:
-#  define BOOST_PLATFORM_CONFIG "ndnboost/config/platform/vxworks.hpp"
+#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/vxworks.hpp"
 
 #elif defined(__SYMBIAN32__) 
 // Symbian: 
-#  define BOOST_PLATFORM_CONFIG "ndnboost/config/platform/symbian.hpp" 
+#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/symbian.hpp" 
 
 #elif defined(_CRAYC)
 // Cray:
-#  define BOOST_PLATFORM_CONFIG "ndnboost/config/platform/cray.hpp" 
+#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/cray.hpp" 
 
 #elif defined(__VMS) 
 // VMS:
-#  define BOOST_PLATFORM_CONFIG "ndnboost/config/platform/vms.hpp" 
+#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/vms.hpp" 
 #else
 
 #  if defined(unix) \
@@ -85,15 +85,15 @@
 
    // generic unix platform:
 
-#  ifndef BOOST_HAS_UNISTD_H
-#     define BOOST_HAS_UNISTD_H
+#  ifndef NDNBOOST_HAS_UNISTD_H
+#     define NDNBOOST_HAS_UNISTD_H
 #  endif
 
 #  include <ndnboost/config/posix_features.hpp>
 
 #  endif
 
-#  if defined (BOOST_ASSERT_CONFIG)
+#  if defined (NDNBOOST_ASSERT_CONFIG)
       // this must come last - generate an error if we don't
       // recognise the platform:
 #     error "Unknown platform - please configure and report the results to boost.org"
diff --git a/include/ndnboost/config/select_stdlib_config.hpp b/include/ndnboost/config/select_stdlib_config.hpp
index f0167a3..c7caede 100644
--- a/include/ndnboost/config/select_stdlib_config.hpp
+++ b/include/ndnboost/config/select_stdlib_config.hpp
@@ -9,7 +9,7 @@
 
 //  See http://www.boost.org for most recent version.
 
-// locate which std lib we are using and define BOOST_STDLIB_CONFIG as needed:
+// locate which std lib we are using and define NDNBOOST_STDLIB_CONFIG as needed:
 
 // First include <cstddef> to determine if some version of STLport is in use as the std lib
 // (do not rely on this header being included since users can short-circuit this header 
@@ -24,7 +24,7 @@
 // STLPort library; this _must_ come first, otherwise since
 // STLport typically sits on top of some other library, we
 // can end up detecting that first rather than STLport:
-#  define BOOST_STDLIB_CONFIG "ndnboost/config/stdlib/stlport.hpp"
+#  define NDNBOOST_STDLIB_CONFIG "ndnboost/config/stdlib/stlport.hpp"
 
 #else
 
@@ -38,41 +38,41 @@
 
 #if defined(__LIBCOMO__)
 // Comeau STL:
-#define BOOST_STDLIB_CONFIG "ndnboost/config/stdlib/libcomo.hpp"
+#define NDNBOOST_STDLIB_CONFIG "ndnboost/config/stdlib/libcomo.hpp"
 
 #elif defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER)
 // Rogue Wave library:
-#  define BOOST_STDLIB_CONFIG "ndnboost/config/stdlib/roguewave.hpp"
+#  define NDNBOOST_STDLIB_CONFIG "ndnboost/config/stdlib/roguewave.hpp"
 
 #elif defined(_LIBCPP_VERSION)
 // libc++
-#  define BOOST_STDLIB_CONFIG "ndnboost/config/stdlib/libcpp.hpp"
+#  define NDNBOOST_STDLIB_CONFIG "ndnboost/config/stdlib/libcpp.hpp"
 
 #elif defined(__GLIBCPP__) || defined(__GLIBCXX__)
 // GNU libstdc++ 3
-#  define BOOST_STDLIB_CONFIG "ndnboost/config/stdlib/libstdcpp3.hpp"
+#  define NDNBOOST_STDLIB_CONFIG "ndnboost/config/stdlib/libstdcpp3.hpp"
 
 #elif defined(__STL_CONFIG_H)
 // generic SGI STL
-#  define BOOST_STDLIB_CONFIG "ndnboost/config/stdlib/sgi.hpp"
+#  define NDNBOOST_STDLIB_CONFIG "ndnboost/config/stdlib/sgi.hpp"
 
 #elif defined(__MSL_CPP__)
 // MSL standard lib:
-#  define BOOST_STDLIB_CONFIG "ndnboost/config/stdlib/msl.hpp"
+#  define NDNBOOST_STDLIB_CONFIG "ndnboost/config/stdlib/msl.hpp"
 
 #elif defined(__IBMCPP__)
 // take the default VACPP std lib
-#  define BOOST_STDLIB_CONFIG "ndnboost/config/stdlib/vacpp.hpp"
+#  define NDNBOOST_STDLIB_CONFIG "ndnboost/config/stdlib/vacpp.hpp"
 
 #elif defined(MSIPL_COMPILE_H)
 // Modena C++ standard library
-#  define BOOST_STDLIB_CONFIG "ndnboost/config/stdlib/modena.hpp"
+#  define NDNBOOST_STDLIB_CONFIG "ndnboost/config/stdlib/modena.hpp"
 
 #elif (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER)
 // Dinkumware Library (this has to appear after any possible replacement libraries):
-#  define BOOST_STDLIB_CONFIG "ndnboost/config/stdlib/dinkumware.hpp"
+#  define NDNBOOST_STDLIB_CONFIG "ndnboost/config/stdlib/dinkumware.hpp"
 
-#elif defined (BOOST_ASSERT_CONFIG)
+#elif defined (NDNBOOST_ASSERT_CONFIG)
 // this must come last - generate an error if we don't
 // recognise the library:
 #  error "Unknown standard library - please configure and report the results to boost.org"
diff --git a/include/ndnboost/config/stdlib/dinkumware.hpp b/include/ndnboost/config/stdlib/dinkumware.hpp
index ec7b985..06ce536 100644
--- a/include/ndnboost/config/stdlib/dinkumware.hpp
+++ b/include/ndnboost/config/stdlib/dinkumware.hpp
@@ -23,43 +23,43 @@
    // full dinkumware 3.06 and above
    // fully conforming provided the compiler supports it:
 #  if !(defined(_GLOBAL_USING) && (_GLOBAL_USING+0 > 0)) && !defined(__BORLANDC__) && !defined(_STD) && !(defined(__ICC) && (__ICC >= 700))   // can be defined in yvals.h
-#     define BOOST_NO_STDC_NAMESPACE
+#     define NDNBOOST_NO_STDC_NAMESPACE
 #  endif
-#  if !(defined(_HAS_MEMBER_TEMPLATES_REBIND) && (_HAS_MEMBER_TEMPLATES_REBIND+0 > 0)) && !(defined(_MSC_VER) && (_MSC_VER > 1300)) && defined(BOOST_MSVC)
-#     define BOOST_NO_STD_ALLOCATOR
+#  if !(defined(_HAS_MEMBER_TEMPLATES_REBIND) && (_HAS_MEMBER_TEMPLATES_REBIND+0 > 0)) && !(defined(_MSC_VER) && (_MSC_VER > 1300)) && defined(NDNBOOST_MSVC)
+#     define NDNBOOST_NO_STD_ALLOCATOR
 #  endif
-#  define BOOST_HAS_PARTIAL_STD_ALLOCATOR
-#  if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
+#  define NDNBOOST_HAS_PARTIAL_STD_ALLOCATOR
+#  if defined(NDNBOOST_MSVC) && (NDNBOOST_MSVC < 1300)
       // if this lib version is set up for vc6 then there is no std::use_facet:
-#     define BOOST_NO_STD_USE_FACET
-#     define BOOST_HAS_TWO_ARG_USE_FACET
+#     define NDNBOOST_NO_STD_USE_FACET
+#     define NDNBOOST_HAS_TWO_ARG_USE_FACET
       // C lib functions aren't in namespace std either:
-#     define BOOST_NO_STDC_NAMESPACE
+#     define NDNBOOST_NO_STDC_NAMESPACE
       // and nor is <exception>
-#     define BOOST_NO_EXCEPTION_STD_NAMESPACE
+#     define NDNBOOST_NO_EXCEPTION_STD_NAMESPACE
 #  endif
 // There's no numeric_limits<long long> support unless _LONGLONG is defined:
 #  if !defined(_LONGLONG) && (_CPPLIB_VER <= 310)
-#     define BOOST_NO_MS_INT64_NUMERIC_LIMITS
+#     define NDNBOOST_NO_MS_INT64_NUMERIC_LIMITS
 #  endif
 // 3.06 appears to have (non-sgi versions of) <hash_set> & <hash_map>,
 // and no <slist> at all
 #else
-#  define BOOST_MSVC_STD_ITERATOR 1
-#  define BOOST_NO_STD_ITERATOR
-#  define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
-#  define BOOST_NO_STD_ALLOCATOR
-#  define BOOST_NO_STDC_NAMESPACE
-#  define BOOST_NO_STD_USE_FACET
-#  define BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
-#  define BOOST_HAS_MACRO_USE_FACET
+#  define NDNBOOST_MSVC_STD_ITERATOR 1
+#  define NDNBOOST_NO_STD_ITERATOR
+#  define NDNBOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
+#  define NDNBOOST_NO_STD_ALLOCATOR
+#  define NDNBOOST_NO_STDC_NAMESPACE
+#  define NDNBOOST_NO_STD_USE_FACET
+#  define NDNBOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
+#  define NDNBOOST_HAS_MACRO_USE_FACET
 #  ifndef _CPPLIB_VER
       // Updated Dinkum library defines this, and provides
       // its own min and max definitions, as does MTA version.
 #     ifndef __MTA__ 
-#        define BOOST_NO_STD_MIN_MAX
+#        define NDNBOOST_NO_STD_MIN_MAX
 #     endif
-#     define BOOST_NO_MS_INT64_NUMERIC_LIMITS
+#     define NDNBOOST_NO_MS_INT64_NUMERIC_LIMITS
 #  endif
 #endif
 
@@ -69,7 +69,7 @@
 // of vc7.1 (Intel and Comeau):
 //
 #if defined(_MSC_VER) && (_MSC_VER >= 1310) && !defined(__BORLANDC__)
-#  define BOOST_STD_EXTENSION_NAMESPACE stdext
+#  define NDNBOOST_STD_EXTENSION_NAMESPACE stdext
 #endif
 
 
@@ -77,72 +77,72 @@
    // if we're using a dinkum lib that's
    // been configured for VC6/7 then there is
    // no iterator traits (true even for icl)
-#  define BOOST_NO_STD_ITERATOR_TRAITS
+#  define NDNBOOST_NO_STD_ITERATOR_TRAITS
 #endif
 
 #if defined(__ICL) && (__ICL < 800) && defined(_CPPLIB_VER) && (_CPPLIB_VER <= 310)
 // Intel C++ chokes over any non-trivial use of <locale>
 // this may be an overly restrictive define, but regex fails without it:
-#  define BOOST_NO_STD_LOCALE
+#  define NDNBOOST_NO_STD_LOCALE
 #endif
 
 #include <typeinfo>
 #if ( (!_HAS_EXCEPTIONS && !defined(__ghs__)) || (!_HAS_NAMESPACE && defined(__ghs__)) ) && !defined(__TI_COMPILER_VERSION__)
-#  define BOOST_NO_STD_TYPEINFO    
+#  define NDNBOOST_NO_STD_TYPEINFO    
 #endif  
 
 //  C++0x headers implemented in 520 (as shipped by Microsoft)
 //
 #if !defined(_CPPLIB_VER) || _CPPLIB_VER < 520
-#  define BOOST_NO_CXX11_HDR_ARRAY
-#  define BOOST_NO_CXX11_HDR_CODECVT
-#  define BOOST_NO_CXX11_HDR_FORWARD_LIST
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#  define BOOST_NO_CXX11_HDR_RANDOM
-#  define BOOST_NO_CXX11_HDR_REGEX
-#  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
-#  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
-#  define BOOST_NO_CXX11_HDR_UNORDERED_SET
-#  define BOOST_NO_CXX11_HDR_TUPLE
-#  define BOOST_NO_CXX11_HDR_TYPEINDEX
-#  define BOOST_NO_CXX11_HDR_FUNCTIONAL
-#  define BOOST_NO_CXX11_NUMERIC_LIMITS
-#  define BOOST_NO_CXX11_SMART_PTR
+#  define NDNBOOST_NO_CXX11_HDR_ARRAY
+#  define NDNBOOST_NO_CXX11_HDR_CODECVT
+#  define NDNBOOST_NO_CXX11_HDR_FORWARD_LIST
+#  define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#  define NDNBOOST_NO_CXX11_HDR_RANDOM
+#  define NDNBOOST_NO_CXX11_HDR_REGEX
+#  define NDNBOOST_NO_CXX11_HDR_SYSTEM_ERROR
+#  define NDNBOOST_NO_CXX11_HDR_UNORDERED_MAP
+#  define NDNBOOST_NO_CXX11_HDR_UNORDERED_SET
+#  define NDNBOOST_NO_CXX11_HDR_TUPLE
+#  define NDNBOOST_NO_CXX11_HDR_TYPEINDEX
+#  define NDNBOOST_NO_CXX11_HDR_FUNCTIONAL
+#  define NDNBOOST_NO_CXX11_NUMERIC_LIMITS
+#  define NDNBOOST_NO_CXX11_SMART_PTR
 #endif
 
-#if (!defined(_HAS_TR1_IMPORTS) || (_HAS_TR1_IMPORTS+0 == 0)) && !defined(BOOST_NO_CXX11_HDR_TUPLE)
-#  define BOOST_NO_CXX11_HDR_TUPLE
+#if (!defined(_HAS_TR1_IMPORTS) || (_HAS_TR1_IMPORTS+0 == 0)) && !defined(NDNBOOST_NO_CXX11_HDR_TUPLE)
+#  define NDNBOOST_NO_CXX11_HDR_TUPLE
 #endif
 
 //  C++0x headers implemented in 540 (as shipped by Microsoft)
 //
 #if !defined(_CPPLIB_VER) || _CPPLIB_VER < 540
-#  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
-#  define BOOST_NO_CXX11_HDR_CHRONO
-#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
-#  define BOOST_NO_CXX11_HDR_FUTURE
-#  define BOOST_NO_CXX11_HDR_MUTEX
-#  define BOOST_NO_CXX11_HDR_RATIO
-#  define BOOST_NO_CXX11_HDR_THREAD
-#  define BOOST_NO_CXX11_ALLOCATOR
-#  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
+#  define NDNBOOST_NO_CXX11_HDR_TYPE_TRAITS
+#  define NDNBOOST_NO_CXX11_HDR_CHRONO
+#  define NDNBOOST_NO_CXX11_HDR_CONDITION_VARIABLE
+#  define NDNBOOST_NO_CXX11_HDR_FUTURE
+#  define NDNBOOST_NO_CXX11_HDR_MUTEX
+#  define NDNBOOST_NO_CXX11_HDR_RATIO
+#  define NDNBOOST_NO_CXX11_HDR_THREAD
+#  define NDNBOOST_NO_CXX11_ALLOCATOR
+#  define NDNBOOST_NO_CXX11_ATOMIC_SMART_PTR
 #endif
 
 //
 //  C++0x headers not yet (fully) implemented:
 //
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#  define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
 
 #ifdef _CPPLIB_VER
-#  define BOOST_DINKUMWARE_STDLIB _CPPLIB_VER
+#  define NDNBOOST_DINKUMWARE_STDLIB _CPPLIB_VER
 #else
-#  define BOOST_DINKUMWARE_STDLIB 1
+#  define NDNBOOST_DINKUMWARE_STDLIB 1
 #endif
 
 #ifdef _CPPLIB_VER
-#  define BOOST_STDLIB "Dinkumware standard library version " BOOST_STRINGIZE(_CPPLIB_VER)
+#  define NDNBOOST_STDLIB "Dinkumware standard library version " NDNBOOST_STRINGIZE(_CPPLIB_VER)
 #else
-#  define BOOST_STDLIB "Dinkumware standard library version 1.x"
+#  define NDNBOOST_STDLIB "Dinkumware standard library version 1.x"
 #endif
 
 
diff --git a/include/ndnboost/config/stdlib/libcomo.hpp b/include/ndnboost/config/stdlib/libcomo.hpp
index c3fe9f0..0f20a16 100644
--- a/include/ndnboost/config/stdlib/libcomo.hpp
+++ b/include/ndnboost/config/stdlib/libcomo.hpp
@@ -21,43 +21,43 @@
 // NOTE: versions of libcomo prior to beta28 have octal version numbering,
 // e.g. version 25 is 21 (dec)
 #if __LIBCOMO_VERSION__ <= 22
-#  define BOOST_NO_STD_WSTREAMBUF
+#  define NDNBOOST_NO_STD_WSTREAMBUF
 #endif
 
 #if (__LIBCOMO_VERSION__ <= 31) && defined(_WIN32)
-#define BOOST_NO_SWPRINTF
+#define NDNBOOST_NO_SWPRINTF
 #endif
 
 #if __LIBCOMO_VERSION__ >= 31
-#  define BOOST_HAS_HASH
-#  define BOOST_HAS_SLIST
+#  define NDNBOOST_HAS_HASH
+#  define NDNBOOST_HAS_SLIST
 #endif
 
 //  C++0x headers not yet implemented
 //
-#  define BOOST_NO_CXX11_HDR_ARRAY
-#  define BOOST_NO_CXX11_HDR_CHRONO
-#  define BOOST_NO_CXX11_HDR_CODECVT
-#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
-#  define BOOST_NO_CXX11_HDR_FORWARD_LIST
-#  define BOOST_NO_CXX11_HDR_FUTURE
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#  define BOOST_NO_CXX11_HDR_MUTEX
-#  define BOOST_NO_CXX11_HDR_RANDOM
-#  define BOOST_NO_CXX11_HDR_RATIO
-#  define BOOST_NO_CXX11_HDR_REGEX
-#  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
-#  define BOOST_NO_CXX11_HDR_THREAD
-#  define BOOST_NO_CXX11_HDR_TUPLE
-#  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
-#  define BOOST_NO_CXX11_HDR_TYPEINDEX
-#  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
-#  define BOOST_NO_CXX11_HDR_UNORDERED_SET
-#  define BOOST_NO_CXX11_NUMERIC_LIMITS
-#  define BOOST_NO_CXX11_ALLOCATOR
-#  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
-#  define BOOST_NO_CXX11_SMART_PTR
-#  define BOOST_NO_CXX11_HDR_FUNCTIONAL
+#  define NDNBOOST_NO_CXX11_HDR_ARRAY
+#  define NDNBOOST_NO_CXX11_HDR_CHRONO
+#  define NDNBOOST_NO_CXX11_HDR_CODECVT
+#  define NDNBOOST_NO_CXX11_HDR_CONDITION_VARIABLE
+#  define NDNBOOST_NO_CXX11_HDR_FORWARD_LIST
+#  define NDNBOOST_NO_CXX11_HDR_FUTURE
+#  define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#  define NDNBOOST_NO_CXX11_HDR_MUTEX
+#  define NDNBOOST_NO_CXX11_HDR_RANDOM
+#  define NDNBOOST_NO_CXX11_HDR_RATIO
+#  define NDNBOOST_NO_CXX11_HDR_REGEX
+#  define NDNBOOST_NO_CXX11_HDR_SYSTEM_ERROR
+#  define NDNBOOST_NO_CXX11_HDR_THREAD
+#  define NDNBOOST_NO_CXX11_HDR_TUPLE
+#  define NDNBOOST_NO_CXX11_HDR_TYPE_TRAITS
+#  define NDNBOOST_NO_CXX11_HDR_TYPEINDEX
+#  define NDNBOOST_NO_CXX11_HDR_UNORDERED_MAP
+#  define NDNBOOST_NO_CXX11_HDR_UNORDERED_SET
+#  define NDNBOOST_NO_CXX11_NUMERIC_LIMITS
+#  define NDNBOOST_NO_CXX11_ALLOCATOR
+#  define NDNBOOST_NO_CXX11_ATOMIC_SMART_PTR
+#  define NDNBOOST_NO_CXX11_SMART_PTR
+#  define NDNBOOST_NO_CXX11_HDR_FUNCTIONAL
 
 //
 // Intrinsic type_traits support.
@@ -65,8 +65,8 @@
 // has intrinsic compiler support with SGI's compilers.
 // Whatever map SGI style type traits to boost equivalents:
 //
-#define BOOST_HAS_SGI_TYPE_TRAITS
+#define NDNBOOST_HAS_SGI_TYPE_TRAITS
 
-#define BOOST_STDLIB "Comeau standard library " BOOST_STRINGIZE(__LIBCOMO_VERSION__)
+#define NDNBOOST_STDLIB "Comeau standard library " NDNBOOST_STRINGIZE(__LIBCOMO_VERSION__)
 
 
diff --git a/include/ndnboost/config/stdlib/libcpp.hpp b/include/ndnboost/config/stdlib/libcpp.hpp
index 3d57440..a4ee678 100644
--- a/include/ndnboost/config/stdlib/libcpp.hpp
+++ b/include/ndnboost/config/stdlib/libcpp.hpp
@@ -15,23 +15,23 @@
 #  endif
 #endif
 
-#define BOOST_STDLIB "libc++ version " BOOST_STRINGIZE(_LIBCPP_VERSION)
+#define NDNBOOST_STDLIB "libc++ version " NDNBOOST_STRINGIZE(_LIBCPP_VERSION)
 
-#define BOOST_HAS_THREADS
+#define NDNBOOST_HAS_THREADS
 
 #ifdef _LIBCPP_HAS_NO_VARIADICS
-#    define BOOST_NO_CXX11_HDR_TUPLE
+#    define NDNBOOST_NO_CXX11_HDR_TUPLE
 #endif
 
 //
 // These appear to be unusable/incomplete so far:
 //
-#  define BOOST_NO_CXX11_HDR_CHRONO
-#  define BOOST_NO_CXX11_HDR_FUTURE
-#  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
-#  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
+#  define NDNBOOST_NO_CXX11_HDR_CHRONO
+#  define NDNBOOST_NO_CXX11_HDR_FUTURE
+#  define NDNBOOST_NO_CXX11_HDR_TYPE_TRAITS
+#  define NDNBOOST_NO_CXX11_ATOMIC_SMART_PTR
 
 // libc++ uses a non-standard messages_base
-#define BOOST_NO_STD_MESSAGES
+#define NDNBOOST_NO_STD_MESSAGES
 
 //  --- end ---
diff --git a/include/ndnboost/config/stdlib/libstdcpp3.hpp b/include/ndnboost/config/stdlib/libstdcpp3.hpp
index 976ab76..6a0d990 100644
--- a/include/ndnboost/config/stdlib/libstdcpp3.hpp
+++ b/include/ndnboost/config/stdlib/libstdcpp3.hpp
@@ -9,19 +9,19 @@
 //  config for libstdc++ v3
 //  not much to go in here:
 
-#define BOOST_GNU_STDLIB 1
+#define NDNBOOST_GNU_STDLIB 1
 
 #ifdef __GLIBCXX__
-#define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCXX__)
+#define NDNBOOST_STDLIB "GNU libstdc++ version " NDNBOOST_STRINGIZE(__GLIBCXX__)
 #else
-#define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCPP__)
+#define NDNBOOST_STDLIB "GNU libstdc++ version " NDNBOOST_STRINGIZE(__GLIBCPP__)
 #endif
 
 #if !defined(_GLIBCPP_USE_WCHAR_T) && !defined(_GLIBCXX_USE_WCHAR_T)
-#  define BOOST_NO_CWCHAR
-#  define BOOST_NO_CWCTYPE
-#  define BOOST_NO_STD_WSTRING
-#  define BOOST_NO_STD_WSTREAMBUF
+#  define NDNBOOST_NO_CWCHAR
+#  define NDNBOOST_NO_CWCTYPE
+#  define NDNBOOST_NO_STD_WSTRING
+#  define NDNBOOST_NO_STD_WSTREAMBUF
 #endif
 
 #if defined(__osf__) && !defined(_REENTRANT) \
@@ -42,29 +42,29 @@
       // as well.  We do this because some gcc-3.4 std lib headers define _REENTANT
       // while others do not...
       //
-#     define BOOST_HAS_THREADS
+#     define NDNBOOST_HAS_THREADS
 #  else
-#     define BOOST_DISABLE_THREADS
+#     define NDNBOOST_DISABLE_THREADS
 #  endif
 #elif defined(__GLIBCPP__) \
         && !defined(_GLIBCPP_HAVE_GTHR_DEFAULT) \
         && !defined(_GLIBCPP__PTHREADS)
    // disable thread support if the std lib was built single threaded:
-#  define BOOST_DISABLE_THREADS
+#  define NDNBOOST_DISABLE_THREADS
 #endif
 
 #if (defined(linux) || defined(__linux) || defined(__linux__)) && defined(__arm__) && defined(_GLIBCPP_HAVE_GTHR_DEFAULT)
 // linux on arm apparently doesn't define _REENTRANT
 // so just turn on threading support whenever the std lib is thread safe:
-#  define BOOST_HAS_THREADS
+#  define NDNBOOST_HAS_THREADS
 #endif
 
 #if !defined(_GLIBCPP_USE_LONG_LONG) \
     && !defined(_GLIBCXX_USE_LONG_LONG)\
-    && defined(BOOST_HAS_LONG_LONG)
+    && defined(NDNBOOST_HAS_LONG_LONG)
 // May have been set by compiler/*.hpp, but "long long" without library
 // support is useless.
-#  undef BOOST_HAS_LONG_LONG
+#  undef NDNBOOST_HAS_LONG_LONG
 #endif
 
 // Apple doesn't seem to reliably defined a *unix* macro
@@ -78,16 +78,16 @@
 #endif
 
 #if defined(__GLIBCXX__) || (defined(__GLIBCPP__) && __GLIBCPP__>=20020514) // GCC >= 3.1.0
-#  define BOOST_STD_EXTENSION_NAMESPACE __gnu_cxx
-#  define BOOST_HAS_SLIST
-#  define BOOST_HAS_HASH
-#  define BOOST_SLIST_HEADER <ext/slist>
+#  define NDNBOOST_STD_EXTENSION_NAMESPACE __gnu_cxx
+#  define NDNBOOST_HAS_SLIST
+#  define NDNBOOST_HAS_HASH
+#  define NDNBOOST_SLIST_HEADER <ext/slist>
 # if !defined(__GNUC__) || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 3)
-#   define BOOST_HASH_SET_HEADER <ext/hash_set>
-#   define BOOST_HASH_MAP_HEADER <ext/hash_map>
+#   define NDNBOOST_HASH_SET_HEADER <ext/hash_set>
+#   define NDNBOOST_HASH_MAP_HEADER <ext/hash_map>
 # else
-#   define BOOST_HASH_SET_HEADER <backward/hash_set>
-#   define BOOST_HASH_MAP_HEADER <backward/hash_map>
+#   define NDNBOOST_HASH_SET_HEADER <backward/hash_set>
+#   define NDNBOOST_HASH_MAP_HEADER <backward/hash_map>
 # endif
 #endif
 
@@ -106,46 +106,46 @@
 //  C++0x headers in GCC 4.3.0 and later
 //
 #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 3) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
-#  define BOOST_NO_CXX11_HDR_ARRAY
-#  define BOOST_NO_CXX11_HDR_REGEX
-#  define BOOST_NO_CXX11_HDR_TUPLE
-#  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
-#  define BOOST_NO_CXX11_HDR_UNORDERED_SET
-#  define BOOST_NO_CXX11_HDR_FUNCTIONAL
+#  define NDNBOOST_NO_CXX11_HDR_ARRAY
+#  define NDNBOOST_NO_CXX11_HDR_REGEX
+#  define NDNBOOST_NO_CXX11_HDR_TUPLE
+#  define NDNBOOST_NO_CXX11_HDR_UNORDERED_MAP
+#  define NDNBOOST_NO_CXX11_HDR_UNORDERED_SET
+#  define NDNBOOST_NO_CXX11_HDR_FUNCTIONAL
 #endif
 
 //  C++0x headers in GCC 4.4.0 and later
 //
 #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
-#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
-#  define BOOST_NO_CXX11_HDR_FORWARD_LIST
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#  define BOOST_NO_CXX11_HDR_MUTEX
-#  define BOOST_NO_CXX11_HDR_RATIO
-#  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
-#  define BOOST_NO_CXX11_SMART_PTR
+#  define NDNBOOST_NO_CXX11_HDR_CONDITION_VARIABLE
+#  define NDNBOOST_NO_CXX11_HDR_FORWARD_LIST
+#  define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#  define NDNBOOST_NO_CXX11_HDR_MUTEX
+#  define NDNBOOST_NO_CXX11_HDR_RATIO
+#  define NDNBOOST_NO_CXX11_HDR_SYSTEM_ERROR
+#  define NDNBOOST_NO_CXX11_SMART_PTR
 #else
-#  define BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG 
-#  define BOOST_HAS_TR1_COMPLEX_OVERLOADS 
+#  define NDNBOOST_HAS_TR1_COMPLEX_INVERSE_TRIG 
+#  define NDNBOOST_HAS_TR1_COMPLEX_OVERLOADS 
 #endif
 
-#if (!defined(_GLIBCXX_HAS_GTHREADS) || !defined(_GLIBCXX_USE_C99_STDINT_TR1)) && (!defined(BOOST_NO_CXX11_HDR_CONDITION_VARIABLE) || !defined(BOOST_NO_CXX11_HDR_MUTEX))
-#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
-#  define BOOST_NO_CXX11_HDR_MUTEX
+#if (!defined(_GLIBCXX_HAS_GTHREADS) || !defined(_GLIBCXX_USE_C99_STDINT_TR1)) && (!defined(NDNBOOST_NO_CXX11_HDR_CONDITION_VARIABLE) || !defined(NDNBOOST_NO_CXX11_HDR_MUTEX))
+#  define NDNBOOST_NO_CXX11_HDR_CONDITION_VARIABLE
+#  define NDNBOOST_NO_CXX11_HDR_MUTEX
 #endif
 
 //  C++0x features in GCC 4.5.0 and later
 //
 #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
-#  define BOOST_NO_CXX11_NUMERIC_LIMITS
-#  define BOOST_NO_CXX11_HDR_FUTURE
-#  define BOOST_NO_CXX11_HDR_RANDOM
+#  define NDNBOOST_NO_CXX11_NUMERIC_LIMITS
+#  define NDNBOOST_NO_CXX11_HDR_FUTURE
+#  define NDNBOOST_NO_CXX11_HDR_RANDOM
 #endif
 
 //  C++0x features in GCC 4.6.0 and later
 //
 #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 6) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
-#  define BOOST_NO_CXX11_HDR_TYPEINDEX
+#  define NDNBOOST_NO_CXX11_HDR_TYPEINDEX
 #endif
 
 //  C++0x features in GCC 4.7.0 and later
@@ -153,14 +153,14 @@
 #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 7) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
 // Note that although <chrono> existed prior to 4.7, "stead_clock" is spelled "monotonic_clock"
 // so 4.7.0 is the first truely conforming one.
-#  define BOOST_NO_CXX11_HDR_CHRONO
-#  define BOOST_NO_CXX11_ALLOCATOR
+#  define NDNBOOST_NO_CXX11_HDR_CHRONO
+#  define NDNBOOST_NO_CXX11_ALLOCATOR
 #endif
 //  C++0x headers not yet (fully!) implemented
 //
-#  define BOOST_NO_CXX11_HDR_THREAD
-#  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
-#  define BOOST_NO_CXX11_HDR_CODECVT
-#  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
+#  define NDNBOOST_NO_CXX11_HDR_THREAD
+#  define NDNBOOST_NO_CXX11_HDR_TYPE_TRAITS
+#  define NDNBOOST_NO_CXX11_HDR_CODECVT
+#  define NDNBOOST_NO_CXX11_ATOMIC_SMART_PTR
 
 //  --- end ---
diff --git a/include/ndnboost/config/stdlib/modena.hpp b/include/ndnboost/config/stdlib/modena.hpp
index ec29e89..96fb952 100644
--- a/include/ndnboost/config/stdlib/modena.hpp
+++ b/include/ndnboost/config/stdlib/modena.hpp
@@ -15,40 +15,40 @@
 #endif
 
 #ifndef MSIPL_NL_TYPES
-#define BOOST_NO_STD_MESSAGES
+#define NDNBOOST_NO_STD_MESSAGES
 #endif
 
 #ifndef MSIPL_WCHART
-#define BOOST_NO_STD_WSTRING
+#define NDNBOOST_NO_STD_WSTRING
 #endif
 
 //  C++0x headers not yet implemented
 //
-#  define BOOST_NO_CXX11_HDR_ARRAY
-#  define BOOST_NO_CXX11_HDR_CHRONO
-#  define BOOST_NO_CXX11_HDR_CODECVT
-#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
-#  define BOOST_NO_CXX11_HDR_FORWARD_LIST
-#  define BOOST_NO_CXX11_HDR_FUTURE
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#  define BOOST_NO_CXX11_HDR_MUTEX
-#  define BOOST_NO_CXX11_HDR_RANDOM
-#  define BOOST_NO_CXX11_HDR_RATIO
-#  define BOOST_NO_CXX11_HDR_REGEX
-#  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
-#  define BOOST_NO_CXX11_HDR_THREAD
-#  define BOOST_NO_CXX11_HDR_TUPLE
-#  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
-#  define BOOST_NO_CXX11_HDR_TYPEINDEX
-#  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
-#  define BOOST_NO_CXX11_HDR_UNORDERED_SET
-#  define BOOST_NO_CXX11_NUMERIC_LIMITS
-#  define BOOST_NO_CXX11_ALLOCATOR
-#  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
-#  define BOOST_NO_CXX11_SMART_PTR
-#  define BOOST_NO_CXX11_HDR_FUNCTIONAL
+#  define NDNBOOST_NO_CXX11_HDR_ARRAY
+#  define NDNBOOST_NO_CXX11_HDR_CHRONO
+#  define NDNBOOST_NO_CXX11_HDR_CODECVT
+#  define NDNBOOST_NO_CXX11_HDR_CONDITION_VARIABLE
+#  define NDNBOOST_NO_CXX11_HDR_FORWARD_LIST
+#  define NDNBOOST_NO_CXX11_HDR_FUTURE
+#  define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#  define NDNBOOST_NO_CXX11_HDR_MUTEX
+#  define NDNBOOST_NO_CXX11_HDR_RANDOM
+#  define NDNBOOST_NO_CXX11_HDR_RATIO
+#  define NDNBOOST_NO_CXX11_HDR_REGEX
+#  define NDNBOOST_NO_CXX11_HDR_SYSTEM_ERROR
+#  define NDNBOOST_NO_CXX11_HDR_THREAD
+#  define NDNBOOST_NO_CXX11_HDR_TUPLE
+#  define NDNBOOST_NO_CXX11_HDR_TYPE_TRAITS
+#  define NDNBOOST_NO_CXX11_HDR_TYPEINDEX
+#  define NDNBOOST_NO_CXX11_HDR_UNORDERED_MAP
+#  define NDNBOOST_NO_CXX11_HDR_UNORDERED_SET
+#  define NDNBOOST_NO_CXX11_NUMERIC_LIMITS
+#  define NDNBOOST_NO_CXX11_ALLOCATOR
+#  define NDNBOOST_NO_CXX11_ATOMIC_SMART_PTR
+#  define NDNBOOST_NO_CXX11_SMART_PTR
+#  define NDNBOOST_NO_CXX11_HDR_FUNCTIONAL
 
-#define BOOST_STDLIB "Modena C++ standard library"
+#define NDNBOOST_STDLIB "Modena C++ standard library"
 
 
 
diff --git a/include/ndnboost/config/stdlib/msl.hpp b/include/ndnboost/config/stdlib/msl.hpp
index 444d620..e692e2f 100644
--- a/include/ndnboost/config/stdlib/msl.hpp
+++ b/include/ndnboost/config/stdlib/msl.hpp
@@ -16,63 +16,63 @@
 #endif
 
 #if __MSL_CPP__ >= 0x6000  // Pro 6
-#  define BOOST_HAS_HASH
-#  define BOOST_STD_EXTENSION_NAMESPACE Metrowerks
+#  define NDNBOOST_HAS_HASH
+#  define NDNBOOST_STD_EXTENSION_NAMESPACE Metrowerks
 #endif
-#define BOOST_HAS_SLIST
+#define NDNBOOST_HAS_SLIST
 
 #if __MSL_CPP__ < 0x6209
-#  define BOOST_NO_STD_MESSAGES
+#  define NDNBOOST_NO_STD_MESSAGES
 #endif
 
 // check C lib version for <stdint.h>
 #include <cstddef>
 
 #if defined(__MSL__) && (__MSL__ >= 0x5000)
-#  define BOOST_HAS_STDINT_H
+#  define NDNBOOST_HAS_STDINT_H
 #  if !defined(__PALMOS_TRAPS__)
-#    define BOOST_HAS_UNISTD_H
+#    define NDNBOOST_HAS_UNISTD_H
 #  endif
    // boilerplate code:
 #  include <ndnboost/config/posix_features.hpp>
 #endif
 
 #if defined(_MWMT) || _MSL_THREADSAFE
-#  define BOOST_HAS_THREADS
+#  define NDNBOOST_HAS_THREADS
 #endif
 
 #ifdef _MSL_NO_EXPLICIT_FUNC_TEMPLATE_ARG
-#  define BOOST_NO_STD_USE_FACET
-#  define BOOST_HAS_TWO_ARG_USE_FACET
+#  define NDNBOOST_NO_STD_USE_FACET
+#  define NDNBOOST_HAS_TWO_ARG_USE_FACET
 #endif
 
 //  C++0x headers not yet implemented
 //
-#  define BOOST_NO_CXX11_HDR_ARRAY
-#  define BOOST_NO_CXX11_HDR_CHRONO
-#  define BOOST_NO_CXX11_HDR_CODECVT
-#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
-#  define BOOST_NO_CXX11_HDR_FORWARD_LIST
-#  define BOOST_NO_CXX11_HDR_FUTURE
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#  define BOOST_NO_CXX11_HDR_MUTEX
-#  define BOOST_NO_CXX11_HDR_RANDOM
-#  define BOOST_NO_CXX11_HDR_RATIO
-#  define BOOST_NO_CXX11_HDR_REGEX
-#  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
-#  define BOOST_NO_CXX11_HDR_THREAD
-#  define BOOST_NO_CXX11_HDR_TUPLE
-#  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
-#  define BOOST_NO_CXX11_HDR_TYPEINDEX
-#  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
-#  define BOOST_NO_CXX11_HDR_UNORDERED_SET
-#  define BOOST_NO_CXX11_NUMERIC_LIMITS
-#  define BOOST_NO_CXX11_ALLOCATOR
-#  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
-#  define BOOST_NO_CXX11_SMART_PTR
-#  define BOOST_NO_CXX11_HDR_FUNCTIONAL
+#  define NDNBOOST_NO_CXX11_HDR_ARRAY
+#  define NDNBOOST_NO_CXX11_HDR_CHRONO
+#  define NDNBOOST_NO_CXX11_HDR_CODECVT
+#  define NDNBOOST_NO_CXX11_HDR_CONDITION_VARIABLE
+#  define NDNBOOST_NO_CXX11_HDR_FORWARD_LIST
+#  define NDNBOOST_NO_CXX11_HDR_FUTURE
+#  define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#  define NDNBOOST_NO_CXX11_HDR_MUTEX
+#  define NDNBOOST_NO_CXX11_HDR_RANDOM
+#  define NDNBOOST_NO_CXX11_HDR_RATIO
+#  define NDNBOOST_NO_CXX11_HDR_REGEX
+#  define NDNBOOST_NO_CXX11_HDR_SYSTEM_ERROR
+#  define NDNBOOST_NO_CXX11_HDR_THREAD
+#  define NDNBOOST_NO_CXX11_HDR_TUPLE
+#  define NDNBOOST_NO_CXX11_HDR_TYPE_TRAITS
+#  define NDNBOOST_NO_CXX11_HDR_TYPEINDEX
+#  define NDNBOOST_NO_CXX11_HDR_UNORDERED_MAP
+#  define NDNBOOST_NO_CXX11_HDR_UNORDERED_SET
+#  define NDNBOOST_NO_CXX11_NUMERIC_LIMITS
+#  define NDNBOOST_NO_CXX11_ALLOCATOR
+#  define NDNBOOST_NO_CXX11_ATOMIC_SMART_PTR
+#  define NDNBOOST_NO_CXX11_SMART_PTR
+#  define NDNBOOST_NO_CXX11_HDR_FUNCTIONAL
 
-#define BOOST_STDLIB "Metrowerks Standard Library version " BOOST_STRINGIZE(__MSL_CPP__)
+#define NDNBOOST_STDLIB "Metrowerks Standard Library version " NDNBOOST_STRINGIZE(__MSL_CPP__)
 
 
 
diff --git a/include/ndnboost/config/stdlib/roguewave.hpp b/include/ndnboost/config/stdlib/roguewave.hpp
index 0571076..955c491 100644
--- a/include/ndnboost/config/stdlib/roguewave.hpp
+++ b/include/ndnboost/config/stdlib/roguewave.hpp
@@ -10,7 +10,7 @@
 
 //  Rogue Wave std lib:
 
-#define BOOST_RW_STDLIB 1 
+#define NDNBOOST_RW_STDLIB 1 
 
 #if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)
 #  include <ndnboost/config/no_tr1/utility.hpp>
@@ -22,22 +22,22 @@
 // figure out a consistent version number:
 //
 #ifndef _RWSTD_VER
-#  define BOOST_RWSTD_VER 0x010000
+#  define NDNBOOST_RWSTD_VER 0x010000
 #elif _RWSTD_VER < 0x010000
-#  define BOOST_RWSTD_VER (_RWSTD_VER << 8)
+#  define NDNBOOST_RWSTD_VER (_RWSTD_VER << 8)
 #else
-#  define BOOST_RWSTD_VER _RWSTD_VER
+#  define NDNBOOST_RWSTD_VER _RWSTD_VER
 #endif
 
 #ifndef _RWSTD_VER
-#  define BOOST_STDLIB "Rogue Wave standard library version (Unknown version)"
+#  define NDNBOOST_STDLIB "Rogue Wave standard library version (Unknown version)"
 #elif _RWSTD_VER < 0x04010200
- #  define BOOST_STDLIB "Rogue Wave standard library version " BOOST_STRINGIZE(_RWSTD_VER)
+ #  define NDNBOOST_STDLIB "Rogue Wave standard library version " NDNBOOST_STRINGIZE(_RWSTD_VER)
 #else
 #  ifdef _RWSTD_VER_STR
-#    define BOOST_STDLIB "Apache STDCXX standard library version " _RWSTD_VER_STR
+#    define NDNBOOST_STDLIB "Apache STDCXX standard library version " _RWSTD_VER_STR
 #  else
-#    define BOOST_STDLIB "Apache STDCXX standard library version " BOOST_STRINGIZE(_RWSTD_VER)
+#    define NDNBOOST_STDLIB "Apache STDCXX standard library version " NDNBOOST_STRINGIZE(_RWSTD_VER)
 #  endif
 #endif
 
@@ -46,53 +46,53 @@
 // does not have compile time constants, even though specializations of that
 // template do:
 //
-#if BOOST_RWSTD_VER < 0x020200
-#  define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+#if NDNBOOST_RWSTD_VER < 0x020200
+#  define NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
 #endif
 
 // Sun CC 5.5 patch 113817-07 adds long long specialization, but does not change the
 // library version number (http://sunsolve6.sun.com/search/document.do?assetkey=1-21-113817):
-#if BOOST_RWSTD_VER <= 0x020101 && (!defined(__SUNPRO_CC) || (__SUNPRO_CC < 0x550))
-#  define BOOST_NO_LONG_LONG_NUMERIC_LIMITS
+#if NDNBOOST_RWSTD_VER <= 0x020101 && (!defined(__SUNPRO_CC) || (__SUNPRO_CC < 0x550))
+#  define NDNBOOST_NO_LONG_LONG_NUMERIC_LIMITS
 # endif
 
 //
 // Borland version of numeric_limits lacks __int64 specialisation:
 //
 #ifdef __BORLANDC__
-#  define BOOST_NO_MS_INT64_NUMERIC_LIMITS
+#  define NDNBOOST_NO_MS_INT64_NUMERIC_LIMITS
 #endif
 
 //
 // No std::iterator if it can't figure out default template args:
 //
-#if defined(_RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES) || defined(RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES) || (BOOST_RWSTD_VER < 0x020000)
-#  define BOOST_NO_STD_ITERATOR
+#if defined(_RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES) || defined(RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES) || (NDNBOOST_RWSTD_VER < 0x020000)
+#  define NDNBOOST_NO_STD_ITERATOR
 #endif
 
 //
 // No iterator traits without partial specialization:
 //
 #if defined(_RWSTD_NO_CLASS_PARTIAL_SPEC) || defined(RWSTD_NO_CLASS_PARTIAL_SPEC)
-#  define BOOST_NO_STD_ITERATOR_TRAITS
+#  define NDNBOOST_NO_STD_ITERATOR_TRAITS
 #endif
 
 //
 // Prior to version 2.0, std::auto_ptr was buggy, and there were no
 // new-style iostreams, and no conformant std::allocator:
 //
-#if (BOOST_RWSTD_VER < 0x020000)
-#  define BOOST_NO_AUTO_PTR
-#  define BOOST_NO_STRINGSTREAM
-#  define BOOST_NO_STD_ALLOCATOR
-#  define BOOST_NO_STD_LOCALE
+#if (NDNBOOST_RWSTD_VER < 0x020000)
+#  define NDNBOOST_NO_AUTO_PTR
+#  define NDNBOOST_NO_STRINGSTREAM
+#  define NDNBOOST_NO_STD_ALLOCATOR
+#  define NDNBOOST_NO_STD_LOCALE
 #endif
 
 //
 // No template iterator constructors without member template support:
 //
 #if defined(RWSTD_NO_MEMBER_TEMPLATES) || defined(_RWSTD_NO_MEMBER_TEMPLATES)
-#  define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
+#  define NDNBOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
 #endif
 
 //
@@ -101,38 +101,38 @@
 // on HP aCC systems even though the allocator is in fact broken):
 //
 #if !defined(_RWSTD_ALLOCATOR) || (defined(__HP_aCC) && __HP_aCC <= 33100)
-#  define BOOST_NO_STD_ALLOCATOR
+#  define NDNBOOST_NO_STD_ALLOCATOR
 #endif
 
 //
 // If we have a std::locale, we still may not have std::use_facet:
 //
-#if defined(_RWSTD_NO_TEMPLATE_ON_RETURN_TYPE) && !defined(BOOST_NO_STD_LOCALE)
-#  define BOOST_NO_STD_USE_FACET
-#  define BOOST_HAS_TWO_ARG_USE_FACET
+#if defined(_RWSTD_NO_TEMPLATE_ON_RETURN_TYPE) && !defined(NDNBOOST_NO_STD_LOCALE)
+#  define NDNBOOST_NO_STD_USE_FACET
+#  define NDNBOOST_HAS_TWO_ARG_USE_FACET
 #endif
 
 //
 // There's no std::distance prior to version 2, or without
 // partial specialization support:
 //
-#if (BOOST_RWSTD_VER < 0x020000) || defined(_RWSTD_NO_CLASS_PARTIAL_SPEC)
-    #define BOOST_NO_STD_DISTANCE
+#if (NDNBOOST_RWSTD_VER < 0x020000) || defined(_RWSTD_NO_CLASS_PARTIAL_SPEC)
+    #define NDNBOOST_NO_STD_DISTANCE
 #endif
 
 //
 // Some versions of the rogue wave library don't have assignable
 // OutputIterators:
 //
-#if BOOST_RWSTD_VER < 0x020100
-#  define BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
+#if NDNBOOST_RWSTD_VER < 0x020100
+#  define NDNBOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
 #endif
 
 //
-// Disable BOOST_HAS_LONG_LONG when the library has no support for it.
+// Disable NDNBOOST_HAS_LONG_LONG when the library has no support for it.
 //
-#if !defined(_RWSTD_LONG_LONG) && defined(BOOST_HAS_LONG_LONG)
-#  undef BOOST_HAS_LONG_LONG
+#if !defined(_RWSTD_LONG_LONG) && defined(NDNBOOST_HAS_LONG_LONG)
+#  undef NDNBOOST_HAS_LONG_LONG
 #endif
 
 //
@@ -145,7 +145,7 @@
 //
 // Define macros specific to RW V2.2 on HP-UX
 //
-#if defined(__HP_aCC) && (BOOST_RWSTD_VER == 0x02020100)
+#if defined(__HP_aCC) && (NDNBOOST_RWSTD_VER == 0x02020100)
 #  ifndef __HP_TC1_MAKE_PAIR
 #    define __HP_TC1_MAKE_PAIR
 #  endif
@@ -155,32 +155,32 @@
 #endif
 
 #if _RWSTD_VER < 0x05000000
-#  define BOOST_NO_CXX11_HDR_ARRAY
+#  define NDNBOOST_NO_CXX11_HDR_ARRAY
 #endif
 // type_traits header is incomplete:
-#  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
+#  define NDNBOOST_NO_CXX11_HDR_TYPE_TRAITS
 //
 //  C++0x headers not yet implemented
 //
-#  define BOOST_NO_CXX11_HDR_CHRONO
-#  define BOOST_NO_CXX11_HDR_CODECVT
-#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
-#  define BOOST_NO_CXX11_HDR_FORWARD_LIST
-#  define BOOST_NO_CXX11_HDR_FUTURE
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#  define BOOST_NO_CXX11_HDR_MUTEX
-#  define BOOST_NO_CXX11_HDR_RANDOM
-#  define BOOST_NO_CXX11_HDR_RATIO
-#  define BOOST_NO_CXX11_HDR_REGEX
-#  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
-#  define BOOST_NO_CXX11_HDR_THREAD
-#  define BOOST_NO_CXX11_HDR_TUPLE
-#  define BOOST_NO_CXX11_HDR_TYPEINDEX
-#  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
-#  define BOOST_NO_CXX11_HDR_UNORDERED_SET
-#  define BOOST_NO_CXX11_NUMERIC_LIMITS
-#  define BOOST_NO_CXX11_ALLOCATOR
-#  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
-#  define BOOST_NO_CXX11_SMART_PTR
-#  define BOOST_NO_CXX11_HDR_FUNCTIONAL
+#  define NDNBOOST_NO_CXX11_HDR_CHRONO
+#  define NDNBOOST_NO_CXX11_HDR_CODECVT
+#  define NDNBOOST_NO_CXX11_HDR_CONDITION_VARIABLE
+#  define NDNBOOST_NO_CXX11_HDR_FORWARD_LIST
+#  define NDNBOOST_NO_CXX11_HDR_FUTURE
+#  define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#  define NDNBOOST_NO_CXX11_HDR_MUTEX
+#  define NDNBOOST_NO_CXX11_HDR_RANDOM
+#  define NDNBOOST_NO_CXX11_HDR_RATIO
+#  define NDNBOOST_NO_CXX11_HDR_REGEX
+#  define NDNBOOST_NO_CXX11_HDR_SYSTEM_ERROR
+#  define NDNBOOST_NO_CXX11_HDR_THREAD
+#  define NDNBOOST_NO_CXX11_HDR_TUPLE
+#  define NDNBOOST_NO_CXX11_HDR_TYPEINDEX
+#  define NDNBOOST_NO_CXX11_HDR_UNORDERED_MAP
+#  define NDNBOOST_NO_CXX11_HDR_UNORDERED_SET
+#  define NDNBOOST_NO_CXX11_NUMERIC_LIMITS
+#  define NDNBOOST_NO_CXX11_ALLOCATOR
+#  define NDNBOOST_NO_CXX11_ATOMIC_SMART_PTR
+#  define NDNBOOST_NO_CXX11_SMART_PTR
+#  define NDNBOOST_NO_CXX11_HDR_FUNCTIONAL
 
diff --git a/include/ndnboost/config/stdlib/sgi.hpp b/include/ndnboost/config/stdlib/sgi.hpp
index 8ac5d03..be14f4e 100644
--- a/include/ndnboost/config/stdlib/sgi.hpp
+++ b/include/ndnboost/config/stdlib/sgi.hpp
@@ -20,7 +20,7 @@
 // No std::iterator traits without partial specialisation:
 //
 #if !defined(__STL_CLASS_PARTIAL_SPECIALIZATION)
-#  define BOOST_NO_STD_ITERATOR_TRAITS
+#  define NDNBOOST_NO_STD_ITERATOR_TRAITS
 #endif
 
 //
@@ -37,7 +37,7 @@
    // than by running the configure script).
    // Also, the unofficial GNU C++ 2.96 included in RedHat 7.1 doesn't
    // have <sstream>.
-#  define BOOST_NO_STRINGSTREAM
+#  define NDNBOOST_NO_STRINGSTREAM
 #endif
 
 // Apple doesn't seem to reliably defined a *unix* macro
@@ -56,21 +56,21 @@
 // incorrect assumption in some cases):
 //
 #if !defined(__SGI_STL_OWN_IOSTREAMS) && !defined(__STL_USE_NEW_IOSTREAMS)
-#  define BOOST_NO_STD_LOCALE
+#  define NDNBOOST_NO_STD_LOCALE
 #endif
 
 //
 // Original native SGI streams have non-standard std::messages facet:
 //
 #if defined(__sgi) && (_COMPILER_VERSION <= 650) && !defined(__SGI_STL_OWN_IOSTREAMS)
-#  define BOOST_NO_STD_LOCALE
+#  define NDNBOOST_NO_STD_LOCALE
 #endif
 
 //
 // SGI's new iostreams have missing "const" in messages<>::open
 //
 #if defined(__sgi) && (_COMPILER_VERSION <= 740) && defined(__STL_USE_NEW_IOSTREAMS)
-#  define BOOST_NO_STD_MESSAGES
+#  define NDNBOOST_NO_STD_MESSAGES
 #endif
 
 //
@@ -78,15 +78,15 @@
 // without member templates:
 //
 #if !defined(__STL_MEMBER_TEMPLATES)
-#  define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
-#  define BOOST_NO_STD_ALLOCATOR
+#  define NDNBOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
+#  define NDNBOOST_NO_STD_ALLOCATOR
 #endif
 
 //
 // We always have SGI style hash_set, hash_map, and slist:
 //
-#define BOOST_HAS_HASH
-#define BOOST_HAS_SLIST
+#define NDNBOOST_HAS_HASH
+#define NDNBOOST_HAS_SLIST
 
 //
 // If this is GNU libstdc++2, then no <limits> and no std::wstring:
@@ -94,10 +94,10 @@
 #if (defined(__GNUC__) && (__GNUC__ < 3))
 #  include <string>
 #  if defined(__BASTRING__)
-#     define BOOST_NO_LIMITS
+#     define NDNBOOST_NO_LIMITS
 // Note: <ndnboost/limits.hpp> will provide compile-time constants
-#     undef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-#     define BOOST_NO_STD_WSTRING
+#     undef NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+#     define NDNBOOST_NO_STD_WSTRING
 #  endif
 #endif
 
@@ -105,7 +105,7 @@
 // There is no standard iterator unless we have namespace support:
 //
 #if !defined(__STL_USE_NAMESPACES)
-#  define BOOST_NO_STD_ITERATOR
+#  define NDNBOOST_NO_STD_ITERATOR
 #endif
 
 //
@@ -114,35 +114,35 @@
 // has intrinsic compiler support with SGI's compilers.
 // Whatever map SGI style type traits to boost equivalents:
 //
-#define BOOST_HAS_SGI_TYPE_TRAITS
+#define NDNBOOST_HAS_SGI_TYPE_TRAITS
 
 //  C++0x headers not yet implemented
 //
-#  define BOOST_NO_CXX11_HDR_ARRAY
-#  define BOOST_NO_CXX11_HDR_CHRONO
-#  define BOOST_NO_CXX11_HDR_CODECVT
-#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
-#  define BOOST_NO_CXX11_HDR_FORWARD_LIST
-#  define BOOST_NO_CXX11_HDR_FUTURE
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#  define BOOST_NO_CXX11_HDR_MUTEX
-#  define BOOST_NO_CXX11_HDR_RANDOM
-#  define BOOST_NO_CXX11_HDR_RATIO
-#  define BOOST_NO_CXX11_HDR_REGEX
-#  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
-#  define BOOST_NO_CXX11_HDR_THREAD
-#  define BOOST_NO_CXX11_HDR_TUPLE
-#  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
-#  define BOOST_NO_CXX11_HDR_TYPEINDEX
-#  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
-#  define BOOST_NO_CXX11_HDR_UNORDERED_SET
-#  define BOOST_NO_CXX11_NUMERIC_LIMITS
-#  define BOOST_NO_CXX11_ALLOCATOR
-#  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
-#  define BOOST_NO_CXX11_SMART_PTR
-#  define BOOST_NO_CXX11_HDR_FUNCTIONAL
+#  define NDNBOOST_NO_CXX11_HDR_ARRAY
+#  define NDNBOOST_NO_CXX11_HDR_CHRONO
+#  define NDNBOOST_NO_CXX11_HDR_CODECVT
+#  define NDNBOOST_NO_CXX11_HDR_CONDITION_VARIABLE
+#  define NDNBOOST_NO_CXX11_HDR_FORWARD_LIST
+#  define NDNBOOST_NO_CXX11_HDR_FUTURE
+#  define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#  define NDNBOOST_NO_CXX11_HDR_MUTEX
+#  define NDNBOOST_NO_CXX11_HDR_RANDOM
+#  define NDNBOOST_NO_CXX11_HDR_RATIO
+#  define NDNBOOST_NO_CXX11_HDR_REGEX
+#  define NDNBOOST_NO_CXX11_HDR_SYSTEM_ERROR
+#  define NDNBOOST_NO_CXX11_HDR_THREAD
+#  define NDNBOOST_NO_CXX11_HDR_TUPLE
+#  define NDNBOOST_NO_CXX11_HDR_TYPE_TRAITS
+#  define NDNBOOST_NO_CXX11_HDR_TYPEINDEX
+#  define NDNBOOST_NO_CXX11_HDR_UNORDERED_MAP
+#  define NDNBOOST_NO_CXX11_HDR_UNORDERED_SET
+#  define NDNBOOST_NO_CXX11_NUMERIC_LIMITS
+#  define NDNBOOST_NO_CXX11_ALLOCATOR
+#  define NDNBOOST_NO_CXX11_ATOMIC_SMART_PTR
+#  define NDNBOOST_NO_CXX11_SMART_PTR
+#  define NDNBOOST_NO_CXX11_HDR_FUNCTIONAL
 
-#define BOOST_STDLIB "SGI standard library"
+#define NDNBOOST_STDLIB "SGI standard library"
 
 
 
diff --git a/include/ndnboost/config/stdlib/stlport.hpp b/include/ndnboost/config/stdlib/stlport.hpp
index 649267a..05dd719 100644
--- a/include/ndnboost/config/stdlib/stlport.hpp
+++ b/include/ndnboost/config/stdlib/stlport.hpp
@@ -27,11 +27,11 @@
 #endif
 
 //
-// __STL_STATIC_CONST_INIT_BUG implies BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+// __STL_STATIC_CONST_INIT_BUG implies NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
 // for versions prior to 4.1(beta)
 //
 #if (defined(__STL_STATIC_CONST_INIT_BUG) || defined(_STLP_STATIC_CONST_INIT_BUG)) && (__SGI_STL_PORT <= 0x400)
-#  define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+#  define NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
 #endif
 
 //
@@ -39,22 +39,22 @@
 // std::iterator traits:
 //
 #if !(defined(_STLP_CLASS_PARTIAL_SPECIALIZATION) || defined(__STL_CLASS_PARTIAL_SPECIALIZATION))
-#  define BOOST_NO_STD_ITERATOR_TRAITS
+#  define NDNBOOST_NO_STD_ITERATOR_TRAITS
 #endif
 
 //
 // No new style iostreams on GCC without STLport's iostreams enabled:
 //
 #if (defined(__GNUC__) && (__GNUC__ < 3)) && !(defined(__SGI_STL_OWN_IOSTREAMS) || defined(_STLP_OWN_IOSTREAMS))
-#  define BOOST_NO_STRINGSTREAM
+#  define NDNBOOST_NO_STRINGSTREAM
 #endif
 
 //
 // No new iostreams implies no std::locale, and no std::stringstream:
 //
 #if defined(__STL_NO_IOSTREAMS) || defined(__STL_NO_NEW_IOSTREAMS) || defined(_STLP_NO_IOSTREAMS) || defined(_STLP_NO_NEW_IOSTREAMS)
-#  define BOOST_NO_STD_LOCALE
-#  define BOOST_NO_STRINGSTREAM
+#  define NDNBOOST_NO_STD_LOCALE
+#  define NDNBOOST_NO_STRINGSTREAM
 #endif
 
 //
@@ -62,38 +62,38 @@
 // then the io stream facets are not available in namespace std::
 //
 #ifdef _STLPORT_VERSION
-#  if !(_STLPORT_VERSION >= 0x500) && !defined(_STLP_OWN_IOSTREAMS) && defined(_STLP_USE_NAMESPACES) && defined(BOOST_NO_USING_TEMPLATE) && !defined(__BORLANDC__)
-#     define BOOST_NO_STD_LOCALE
+#  if !(_STLPORT_VERSION >= 0x500) && !defined(_STLP_OWN_IOSTREAMS) && defined(_STLP_USE_NAMESPACES) && defined(NDNBOOST_NO_USING_TEMPLATE) && !defined(__BORLANDC__)
+#     define NDNBOOST_NO_STD_LOCALE
 #  endif
 #else
-#  if !defined(__SGI_STL_OWN_IOSTREAMS) && defined(__STL_USE_NAMESPACES) && defined(BOOST_NO_USING_TEMPLATE) && !defined(__BORLANDC__)
-#     define BOOST_NO_STD_LOCALE
+#  if !defined(__SGI_STL_OWN_IOSTREAMS) && defined(__STL_USE_NAMESPACES) && defined(NDNBOOST_NO_USING_TEMPLATE) && !defined(__BORLANDC__)
+#     define NDNBOOST_NO_STD_LOCALE
 #  endif
 #endif
 
 #if defined(_STLPORT_VERSION) && (_STLPORT_VERSION >= 0x520)
-#  define BOOST_HAS_TR1_UNORDERED_SET
-#  define BOOST_HAS_TR1_UNORDERED_MAP
+#  define NDNBOOST_HAS_TR1_UNORDERED_SET
+#  define NDNBOOST_HAS_TR1_UNORDERED_MAP
 #endif
 //
 // Without member template support enabled, their are no template
 // iterate constructors, and no std::allocator:
 //
 #if !(defined(__STL_MEMBER_TEMPLATES) || defined(_STLP_MEMBER_TEMPLATES))
-#  define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
-#  define BOOST_NO_STD_ALLOCATOR
+#  define NDNBOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
+#  define NDNBOOST_NO_STD_ALLOCATOR
 #endif
 //
 // however we always have at least a partial allocator:
 //
-#define BOOST_HAS_PARTIAL_STD_ALLOCATOR
+#define NDNBOOST_HAS_PARTIAL_STD_ALLOCATOR
 
 #if !defined(_STLP_MEMBER_TEMPLATE_CLASSES) || defined(_STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE)
-#  define BOOST_NO_STD_ALLOCATOR
+#  define NDNBOOST_NO_STD_ALLOCATOR
 #endif
 
-#if defined(_STLP_NO_MEMBER_TEMPLATE_KEYWORD) && defined(BOOST_MSVC) && (BOOST_MSVC <= 1300)
-#  define BOOST_NO_STD_ALLOCATOR
+#if defined(_STLP_NO_MEMBER_TEMPLATE_KEYWORD) && defined(NDNBOOST_MSVC) && (NDNBOOST_MSVC <= 1300)
+#  define NDNBOOST_NO_STD_ALLOCATOR
 #endif
 
 //
@@ -101,11 +101,11 @@
 // the support for the relevant specilazations of std:: templates.
 //
 #if !defined(_STLP_HAS_WCHAR_T) && !defined(_STLP_WCHAR_T_IS_USHORT)
-#  ifndef  BOOST_NO_STD_WSTRING
-#     define BOOST_NO_STD_WSTRING
+#  ifndef  NDNBOOST_NO_STD_WSTRING
+#     define NDNBOOST_NO_STD_WSTRING
 #  endif
-#  ifndef  BOOST_NO_STD_WSTREAMBUF
-#     define BOOST_NO_STD_WSTREAMBUF
+#  ifndef  NDNBOOST_NO_STD_WSTREAMBUF
+#     define NDNBOOST_NO_STD_WSTREAMBUF
 #  endif
 #endif
 
@@ -113,26 +113,26 @@
 // We always have SGI style hash_set, hash_map, and slist:
 //
 #ifndef _STLP_NO_EXTENSIONS
-#define BOOST_HAS_HASH
-#define BOOST_HAS_SLIST
+#define NDNBOOST_HAS_HASH
+#define NDNBOOST_HAS_SLIST
 #endif
 
 //
 // STLport does a good job of importing names into namespace std::,
-// but doesn't always get them all, define BOOST_NO_STDC_NAMESPACE, since our
+// but doesn't always get them all, define NDNBOOST_NO_STDC_NAMESPACE, since our
 // workaround does not conflict with STLports:
 //
 //
 // Harold Howe says:
-// Borland switched to STLport in BCB6. Defining BOOST_NO_STDC_NAMESPACE with
+// Borland switched to STLport in BCB6. Defining NDNBOOST_NO_STDC_NAMESPACE with
 // BCB6 does cause problems. If we detect C++ Builder, then don't define 
-// BOOST_NO_STDC_NAMESPACE
+// NDNBOOST_NO_STDC_NAMESPACE
 //
 #if !defined(__BORLANDC__) && !defined(__DMC__)
 //
 // If STLport is using it's own namespace, and the real names are in
 // the global namespace, then we duplicate STLport's using declarations
-// (by defining BOOST_NO_STDC_NAMESPACE), we do this because STLport doesn't
+// (by defining NDNBOOST_NO_STDC_NAMESPACE), we do this because STLport doesn't
 // necessarily import all the names we need into namespace std::
 // 
 #  if (defined(__STL_IMPORT_VENDOR_CSTD) \
@@ -140,8 +140,8 @@
          || defined(_STLP_IMPORT_VENDOR_CSTD) \
          || defined(_STLP_USE_OWN_NAMESPACE)) \
       && (defined(__STL_VENDOR_GLOBAL_CSTD) || defined (_STLP_VENDOR_GLOBAL_CSTD))
-#     define BOOST_NO_STDC_NAMESPACE
-#     define BOOST_NO_EXCEPTION_STD_NAMESPACE
+#     define NDNBOOST_NO_STDC_NAMESPACE
+#     define NDNBOOST_NO_EXCEPTION_STD_NAMESPACE
 #  endif
 #elif defined(__BORLANDC__) && __BORLANDC__ < 0x560
 // STLport doesn't import std::abs correctly:
@@ -164,18 +164,18 @@
 // std::use_facet may be non-standard, uses a class instead:
 //
 #if defined(__STL_NO_EXPLICIT_FUNCTION_TMPL_ARGS) || defined(_STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS)
-#  define BOOST_NO_STD_USE_FACET
-#  define BOOST_HAS_STLP_USE_FACET
+#  define NDNBOOST_NO_STD_USE_FACET
+#  define NDNBOOST_HAS_STLP_USE_FACET
 #endif
 
 //
 // If STLport thinks there are no wide functions, <cwchar> etc. is not working; but
-// only if BOOST_NO_STDC_NAMESPACE is not defined (if it is then we do the import 
+// only if NDNBOOST_NO_STDC_NAMESPACE is not defined (if it is then we do the import 
 // into std:: ourselves).
 //
-#if defined(_STLP_NO_NATIVE_WIDE_FUNCTIONS) && !defined(BOOST_NO_STDC_NAMESPACE)
-#  define BOOST_NO_CWCHAR
-#  define BOOST_NO_CWCTYPE
+#if defined(_STLP_NO_NATIVE_WIDE_FUNCTIONS) && !defined(NDNBOOST_NO_STDC_NAMESPACE)
+#  define NDNBOOST_NO_CWCHAR
+#  define NDNBOOST_NO_CWCTYPE
 #endif
 
 //
@@ -184,8 +184,8 @@
 // well (we would be missing required specializations otherwise).
 //
 #if !defined( _STLP_HAS_WCHAR_T) || defined(_STLP_WCHAR_T_IS_USHORT)
-#  undef  BOOST_NO_INTRINSIC_WCHAR_T
-#  define BOOST_NO_INTRINSIC_WCHAR_T
+#  undef  NDNBOOST_NO_INTRINSIC_WCHAR_T
+#  define NDNBOOST_NO_INTRINSIC_WCHAR_T
 #endif
 
 //
@@ -193,7 +193,7 @@
 // hashtables and the like:
 //
 #if defined(__BORLANDC__) && (__BORLANDC__ == 0x560)
-#  undef BOOST_HAS_HASH
+#  undef NDNBOOST_HAS_HASH
 #endif
 
 //
@@ -201,38 +201,38 @@
 //
 #if defined(__GNUC__) && (__GNUC__ < 3)
 #  include <algorithm> // for std::min and std::max
-#  define BOOST_USING_STD_MIN() ((void)0)
-#  define BOOST_USING_STD_MAX() ((void)0)
+#  define NDNBOOST_USING_STD_MIN() ((void)0)
+#  define NDNBOOST_USING_STD_MAX() ((void)0)
 namespace ndnboost { using std::min; using std::max; }
 #endif
 
 //  C++0x headers not yet implemented
 //
-#  define BOOST_NO_CXX11_HDR_ARRAY
-#  define BOOST_NO_CXX11_HDR_CHRONO
-#  define BOOST_NO_CXX11_HDR_CODECVT
-#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
-#  define BOOST_NO_CXX11_HDR_FORWARD_LIST
-#  define BOOST_NO_CXX11_HDR_FUTURE
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#  define BOOST_NO_CXX11_HDR_MUTEX
-#  define BOOST_NO_CXX11_HDR_RANDOM
-#  define BOOST_NO_CXX11_HDR_RATIO
-#  define BOOST_NO_CXX11_HDR_REGEX
-#  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
-#  define BOOST_NO_CXX11_HDR_THREAD
-#  define BOOST_NO_CXX11_HDR_TUPLE
-#  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
-#  define BOOST_NO_CXX11_HDR_TYPEINDEX
-#  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
-#  define BOOST_NO_CXX11_HDR_UNORDERED_SET
-#  define BOOST_NO_CXX11_NUMERIC_LIMITS
-#  define BOOST_NO_CXX11_ALLOCATOR
-#  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
-#  define BOOST_NO_CXX11_SMART_PTR
-#  define BOOST_NO_CXX11_HDR_FUNCTIONAL
+#  define NDNBOOST_NO_CXX11_HDR_ARRAY
+#  define NDNBOOST_NO_CXX11_HDR_CHRONO
+#  define NDNBOOST_NO_CXX11_HDR_CODECVT
+#  define NDNBOOST_NO_CXX11_HDR_CONDITION_VARIABLE
+#  define NDNBOOST_NO_CXX11_HDR_FORWARD_LIST
+#  define NDNBOOST_NO_CXX11_HDR_FUTURE
+#  define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#  define NDNBOOST_NO_CXX11_HDR_MUTEX
+#  define NDNBOOST_NO_CXX11_HDR_RANDOM
+#  define NDNBOOST_NO_CXX11_HDR_RATIO
+#  define NDNBOOST_NO_CXX11_HDR_REGEX
+#  define NDNBOOST_NO_CXX11_HDR_SYSTEM_ERROR
+#  define NDNBOOST_NO_CXX11_HDR_THREAD
+#  define NDNBOOST_NO_CXX11_HDR_TUPLE
+#  define NDNBOOST_NO_CXX11_HDR_TYPE_TRAITS
+#  define NDNBOOST_NO_CXX11_HDR_TYPEINDEX
+#  define NDNBOOST_NO_CXX11_HDR_UNORDERED_MAP
+#  define NDNBOOST_NO_CXX11_HDR_UNORDERED_SET
+#  define NDNBOOST_NO_CXX11_NUMERIC_LIMITS
+#  define NDNBOOST_NO_CXX11_ALLOCATOR
+#  define NDNBOOST_NO_CXX11_ATOMIC_SMART_PTR
+#  define NDNBOOST_NO_CXX11_SMART_PTR
+#  define NDNBOOST_NO_CXX11_HDR_FUNCTIONAL
 
-#define BOOST_STDLIB "STLPort standard library version " BOOST_STRINGIZE(__SGI_STL_PORT)
+#define NDNBOOST_STDLIB "STLPort standard library version " NDNBOOST_STRINGIZE(__SGI_STL_PORT)
 
 
 
diff --git a/include/ndnboost/config/stdlib/vacpp.hpp b/include/ndnboost/config/stdlib/vacpp.hpp
index 9d16946..d4719b7 100644
--- a/include/ndnboost/config/stdlib/vacpp.hpp
+++ b/include/ndnboost/config/stdlib/vacpp.hpp
@@ -6,11 +6,11 @@
 //  See http://www.boost.org for most recent version.
 
 #if __IBMCPP__ <= 501
-#  define BOOST_NO_STD_ALLOCATOR
+#  define NDNBOOST_NO_STD_ALLOCATOR
 #endif
 
-#define BOOST_HAS_MACRO_USE_FACET
-#define BOOST_NO_STD_MESSAGES
+#define NDNBOOST_HAS_MACRO_USE_FACET
+#define NDNBOOST_NO_STD_MESSAGES
 
 // Apple doesn't seem to reliably defined a *unix* macro
 #if !defined(CYGWIN) && (  defined(__unix__)  \
@@ -24,31 +24,31 @@
 
 //  C++0x headers not yet implemented
 //
-#  define BOOST_NO_CXX11_HDR_ARRAY
-#  define BOOST_NO_CXX11_HDR_CHRONO
-#  define BOOST_NO_CXX11_HDR_CODECVT
-#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
-#  define BOOST_NO_CXX11_HDR_FORWARD_LIST
-#  define BOOST_NO_CXX11_HDR_FUTURE
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#  define BOOST_NO_CXX11_HDR_MUTEX
-#  define BOOST_NO_CXX11_HDR_RANDOM
-#  define BOOST_NO_CXX11_HDR_RATIO
-#  define BOOST_NO_CXX11_HDR_REGEX
-#  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
-#  define BOOST_NO_CXX11_HDR_THREAD
-#  define BOOST_NO_CXX11_HDR_TUPLE
-#  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
-#  define BOOST_NO_CXX11_HDR_TYPEINDEX
-#  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
-#  define BOOST_NO_CXX11_HDR_UNORDERED_SET
-#  define BOOST_NO_CXX11_NUMERIC_LIMITS
-#  define BOOST_NO_CXX11_ALLOCATOR
-#  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
-#  define BOOST_NO_CXX11_SMART_PTR
-#  define BOOST_NO_CXX11_HDR_FUNCTIONAL
+#  define NDNBOOST_NO_CXX11_HDR_ARRAY
+#  define NDNBOOST_NO_CXX11_HDR_CHRONO
+#  define NDNBOOST_NO_CXX11_HDR_CODECVT
+#  define NDNBOOST_NO_CXX11_HDR_CONDITION_VARIABLE
+#  define NDNBOOST_NO_CXX11_HDR_FORWARD_LIST
+#  define NDNBOOST_NO_CXX11_HDR_FUTURE
+#  define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#  define NDNBOOST_NO_CXX11_HDR_MUTEX
+#  define NDNBOOST_NO_CXX11_HDR_RANDOM
+#  define NDNBOOST_NO_CXX11_HDR_RATIO
+#  define NDNBOOST_NO_CXX11_HDR_REGEX
+#  define NDNBOOST_NO_CXX11_HDR_SYSTEM_ERROR
+#  define NDNBOOST_NO_CXX11_HDR_THREAD
+#  define NDNBOOST_NO_CXX11_HDR_TUPLE
+#  define NDNBOOST_NO_CXX11_HDR_TYPE_TRAITS
+#  define NDNBOOST_NO_CXX11_HDR_TYPEINDEX
+#  define NDNBOOST_NO_CXX11_HDR_UNORDERED_MAP
+#  define NDNBOOST_NO_CXX11_HDR_UNORDERED_SET
+#  define NDNBOOST_NO_CXX11_NUMERIC_LIMITS
+#  define NDNBOOST_NO_CXX11_ALLOCATOR
+#  define NDNBOOST_NO_CXX11_ATOMIC_SMART_PTR
+#  define NDNBOOST_NO_CXX11_SMART_PTR
+#  define NDNBOOST_NO_CXX11_HDR_FUNCTIONAL
 
-#define BOOST_STDLIB "Visual Age default standard library"
+#define NDNBOOST_STDLIB "Visual Age default standard library"
 
 
 
diff --git a/include/ndnboost/config/suffix.hpp b/include/ndnboost/config/suffix.hpp
index 9f89029..7dfd7dc 100644
--- a/include/ndnboost/config/suffix.hpp
+++ b/include/ndnboost/config/suffix.hpp
@@ -23,8 +23,8 @@
 //  It should contain boilerplate code only - no compiler specific
 //  code unless it is unavoidable - no changes unless unavoidable.
 
-#ifndef BOOST_CONFIG_SUFFIX_HPP
-#define BOOST_CONFIG_SUFFIX_HPP
+#ifndef NDNBOOST_CONFIG_SUFFIX_HPP
+#define NDNBOOST_CONFIG_SUFFIX_HPP
 
 #if defined(__GNUC__) && (__GNUC__ >= 4)
 //
@@ -37,14 +37,14 @@
 //
 // ensure that visibility macros are always defined, thus symplifying use
 //
-#ifndef BOOST_SYMBOL_EXPORT
-# define BOOST_SYMBOL_EXPORT
+#ifndef NDNBOOST_SYMBOL_EXPORT
+# define NDNBOOST_SYMBOL_EXPORT
 #endif
-#ifndef BOOST_SYMBOL_IMPORT
-# define BOOST_SYMBOL_IMPORT
+#ifndef NDNBOOST_SYMBOL_IMPORT
+# define NDNBOOST_SYMBOL_IMPORT
 #endif
-#ifndef BOOST_SYMBOL_VISIBLE
-# define BOOST_SYMBOL_VISIBLE
+#ifndef NDNBOOST_SYMBOL_VISIBLE
+# define NDNBOOST_SYMBOL_VISIBLE
 #endif
 
 //
@@ -53,181 +53,181 @@
 // remember that since these just declare a bunch of macros, there should be
 // no namespace issues from this.
 //
-#if !defined(BOOST_HAS_LONG_LONG) && !defined(BOOST_NO_LONG_LONG)                                              \
-   && !defined(BOOST_MSVC) && !defined(__BORLANDC__)
+#if !defined(NDNBOOST_HAS_LONG_LONG) && !defined(NDNBOOST_NO_LONG_LONG)                                              \
+   && !defined(NDNBOOST_MSVC) && !defined(__BORLANDC__)
 # include <limits.h>
 # if (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX))
-#   define BOOST_HAS_LONG_LONG
+#   define NDNBOOST_HAS_LONG_LONG
 # else
-#   define BOOST_NO_LONG_LONG
+#   define NDNBOOST_NO_LONG_LONG
 # endif
 #endif
 
 // GCC 3.x will clean up all of those nasty macro definitions that
-// BOOST_NO_CTYPE_FUNCTIONS is intended to help work around, so undefine
+// NDNBOOST_NO_CTYPE_FUNCTIONS is intended to help work around, so undefine
 // it under GCC 3.x.
-#if defined(__GNUC__) && (__GNUC__ >= 3) && defined(BOOST_NO_CTYPE_FUNCTIONS)
-#  undef BOOST_NO_CTYPE_FUNCTIONS
+#if defined(__GNUC__) && (__GNUC__ >= 3) && defined(NDNBOOST_NO_CTYPE_FUNCTIONS)
+#  undef NDNBOOST_NO_CTYPE_FUNCTIONS
 #endif
 
 //
 // Assume any extensions are in namespace std:: unless stated otherwise:
 //
-#  ifndef BOOST_STD_EXTENSION_NAMESPACE
-#    define BOOST_STD_EXTENSION_NAMESPACE std
+#  ifndef NDNBOOST_STD_EXTENSION_NAMESPACE
+#    define NDNBOOST_STD_EXTENSION_NAMESPACE std
 #  endif
 
 //
 // If cv-qualified specializations are not allowed, then neither are cv-void ones:
 //
-#  if defined(BOOST_NO_CV_SPECIALIZATIONS) \
-      && !defined(BOOST_NO_CV_VOID_SPECIALIZATIONS)
-#     define BOOST_NO_CV_VOID_SPECIALIZATIONS
+#  if defined(NDNBOOST_NO_CV_SPECIALIZATIONS) \
+      && !defined(NDNBOOST_NO_CV_VOID_SPECIALIZATIONS)
+#     define NDNBOOST_NO_CV_VOID_SPECIALIZATIONS
 #  endif
 
 //
 // If there is no numeric_limits template, then it can't have any compile time
 // constants either!
 //
-#  if defined(BOOST_NO_LIMITS) \
-      && !defined(BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS)
-#     define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-#     define BOOST_NO_MS_INT64_NUMERIC_LIMITS
-#     define BOOST_NO_LONG_LONG_NUMERIC_LIMITS
+#  if defined(NDNBOOST_NO_LIMITS) \
+      && !defined(NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS)
+#     define NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+#     define NDNBOOST_NO_MS_INT64_NUMERIC_LIMITS
+#     define NDNBOOST_NO_LONG_LONG_NUMERIC_LIMITS
 #  endif
 
 //
 // if there is no long long then there is no specialisation
 // for numeric_limits<long long> either:
 //
-#if !defined(BOOST_HAS_LONG_LONG) && !defined(BOOST_NO_LONG_LONG_NUMERIC_LIMITS)
-#  define BOOST_NO_LONG_LONG_NUMERIC_LIMITS
+#if !defined(NDNBOOST_HAS_LONG_LONG) && !defined(NDNBOOST_NO_LONG_LONG_NUMERIC_LIMITS)
+#  define NDNBOOST_NO_LONG_LONG_NUMERIC_LIMITS
 #endif
 
 //
 // if there is no __int64 then there is no specialisation
 // for numeric_limits<__int64> either:
 //
-#if !defined(BOOST_HAS_MS_INT64) && !defined(BOOST_NO_MS_INT64_NUMERIC_LIMITS)
-#  define BOOST_NO_MS_INT64_NUMERIC_LIMITS
+#if !defined(NDNBOOST_HAS_MS_INT64) && !defined(NDNBOOST_NO_MS_INT64_NUMERIC_LIMITS)
+#  define NDNBOOST_NO_MS_INT64_NUMERIC_LIMITS
 #endif
 
 //
 // if member templates are supported then so is the
 // VC6 subset of member templates:
 //
-#  if !defined(BOOST_NO_MEMBER_TEMPLATES) \
-       && !defined(BOOST_MSVC6_MEMBER_TEMPLATES)
-#     define BOOST_MSVC6_MEMBER_TEMPLATES
+#  if !defined(NDNBOOST_NO_MEMBER_TEMPLATES) \
+       && !defined(NDNBOOST_MSVC6_MEMBER_TEMPLATES)
+#     define NDNBOOST_MSVC6_MEMBER_TEMPLATES
 #  endif
 
 //
 // Without partial specialization, can't test for partial specialisation bugs:
 //
-#  if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-      && !defined(BOOST_BCB_PARTIAL_SPECIALIZATION_BUG)
-#     define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
+#  if defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
+      && !defined(NDNBOOST_BCB_PARTIAL_SPECIALIZATION_BUG)
+#     define NDNBOOST_BCB_PARTIAL_SPECIALIZATION_BUG
 #  endif
 
 //
 // Without partial specialization, we can't have array-type partial specialisations:
 //
-#  if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-      && !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-#     define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
+#  if defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
+      && !defined(NDNBOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
+#     define NDNBOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
 #  endif
 
 //
 // Without partial specialization, std::iterator_traits can't work:
 //
-#  if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-      && !defined(BOOST_NO_STD_ITERATOR_TRAITS)
-#     define BOOST_NO_STD_ITERATOR_TRAITS
+#  if defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
+      && !defined(NDNBOOST_NO_STD_ITERATOR_TRAITS)
+#     define NDNBOOST_NO_STD_ITERATOR_TRAITS
 #  endif
 
 //
 // Without partial specialization, partial 
 // specialization with default args won't work either:
 //
-#  if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-      && !defined(BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS)
-#     define BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
+#  if defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
+      && !defined(NDNBOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS)
+#     define NDNBOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
 #  endif
 
 //
 // Without member template support, we can't have template constructors
 // in the standard library either:
 //
-#  if defined(BOOST_NO_MEMBER_TEMPLATES) \
-      && !defined(BOOST_MSVC6_MEMBER_TEMPLATES) \
-      && !defined(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS)
-#     define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
+#  if defined(NDNBOOST_NO_MEMBER_TEMPLATES) \
+      && !defined(NDNBOOST_MSVC6_MEMBER_TEMPLATES) \
+      && !defined(NDNBOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS)
+#     define NDNBOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
 #  endif
 
 //
 // Without member template support, we can't have a conforming
 // std::allocator template either:
 //
-#  if defined(BOOST_NO_MEMBER_TEMPLATES) \
-      && !defined(BOOST_MSVC6_MEMBER_TEMPLATES) \
-      && !defined(BOOST_NO_STD_ALLOCATOR)
-#     define BOOST_NO_STD_ALLOCATOR
+#  if defined(NDNBOOST_NO_MEMBER_TEMPLATES) \
+      && !defined(NDNBOOST_MSVC6_MEMBER_TEMPLATES) \
+      && !defined(NDNBOOST_NO_STD_ALLOCATOR)
+#     define NDNBOOST_NO_STD_ALLOCATOR
 #  endif
 
 //
 // without ADL support then using declarations will break ADL as well:
 //
-#if defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
-#  define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
+#if defined(NDNBOOST_NO_ARGUMENT_DEPENDENT_LOOKUP) && !defined(NDNBOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
+#  define NDNBOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
 #endif
 
 //
 // Without typeid support we have no dynamic RTTI either:
 //
-#if defined(BOOST_NO_TYPEID) && !defined(BOOST_NO_RTTI)
-#  define BOOST_NO_RTTI
+#if defined(NDNBOOST_NO_TYPEID) && !defined(NDNBOOST_NO_RTTI)
+#  define NDNBOOST_NO_RTTI
 #endif
 
 //
 // If we have a standard allocator, then we have a partial one as well:
 //
-#if !defined(BOOST_NO_STD_ALLOCATOR)
-#  define BOOST_HAS_PARTIAL_STD_ALLOCATOR
+#if !defined(NDNBOOST_NO_STD_ALLOCATOR)
+#  define NDNBOOST_HAS_PARTIAL_STD_ALLOCATOR
 #endif
 
 //
 // We can't have a working std::use_facet if there is no std::locale:
 //
-#  if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_USE_FACET)
-#     define BOOST_NO_STD_USE_FACET
+#  if defined(NDNBOOST_NO_STD_LOCALE) && !defined(NDNBOOST_NO_STD_USE_FACET)
+#     define NDNBOOST_NO_STD_USE_FACET
 #  endif
 
 //
 // We can't have a std::messages facet if there is no std::locale:
 //
-#  if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_MESSAGES)
-#     define BOOST_NO_STD_MESSAGES
+#  if defined(NDNBOOST_NO_STD_LOCALE) && !defined(NDNBOOST_NO_STD_MESSAGES)
+#     define NDNBOOST_NO_STD_MESSAGES
 #  endif
 
 //
 // We can't have a working std::wstreambuf if there is no std::locale:
 //
-#  if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_WSTREAMBUF)
-#     define BOOST_NO_STD_WSTREAMBUF
+#  if defined(NDNBOOST_NO_STD_LOCALE) && !defined(NDNBOOST_NO_STD_WSTREAMBUF)
+#     define NDNBOOST_NO_STD_WSTREAMBUF
 #  endif
 
 //
 // We can't have a <cwctype> if there is no <cwchar>:
 //
-#  if defined(BOOST_NO_CWCHAR) && !defined(BOOST_NO_CWCTYPE)
-#     define BOOST_NO_CWCTYPE
+#  if defined(NDNBOOST_NO_CWCHAR) && !defined(NDNBOOST_NO_CWCTYPE)
+#     define NDNBOOST_NO_CWCTYPE
 #  endif
 
 //
 // We can't have a swprintf if there is no <cwchar>:
 //
-#  if defined(BOOST_NO_CWCHAR) && !defined(BOOST_NO_SWPRINTF)
-#     define BOOST_NO_SWPRINTF
+#  if defined(NDNBOOST_NO_CWCHAR) && !defined(NDNBOOST_NO_SWPRINTF)
+#     define NDNBOOST_NO_SWPRINTF
 #  endif
 
 //
@@ -235,9 +235,9 @@
 // threading support also, unless there is some other
 // thread API enabled:
 //
-#if defined(BOOST_DISABLE_WIN32) && defined(_WIN32) \
-   && !defined(BOOST_DISABLE_THREADS) && !defined(BOOST_HAS_PTHREADS)
-#  define BOOST_DISABLE_THREADS
+#if defined(NDNBOOST_DISABLE_WIN32) && defined(_WIN32) \
+   && !defined(NDNBOOST_DISABLE_THREADS) && !defined(NDNBOOST_HAS_PTHREADS)
+#  define NDNBOOST_DISABLE_THREADS
 #endif
 
 //
@@ -248,37 +248,37 @@
 //
 #if (defined(__MT__) || defined(_MT) || defined(_REENTRANT) \
     || defined(_PTHREADS) || defined(__APPLE__) || defined(__DragonFly__)) \
-    && !defined(BOOST_HAS_THREADS)
-#  define BOOST_HAS_THREADS
+    && !defined(NDNBOOST_HAS_THREADS)
+#  define NDNBOOST_HAS_THREADS
 #endif
 
 //
-// Turn threading support off if BOOST_DISABLE_THREADS is defined:
+// Turn threading support off if NDNBOOST_DISABLE_THREADS is defined:
 //
-#if defined(BOOST_DISABLE_THREADS) && defined(BOOST_HAS_THREADS)
-#  undef BOOST_HAS_THREADS
+#if defined(NDNBOOST_DISABLE_THREADS) && defined(NDNBOOST_HAS_THREADS)
+#  undef NDNBOOST_HAS_THREADS
 #endif
 
 //
 // Turn threading support off if we don't recognise the threading API:
 //
-#if defined(BOOST_HAS_THREADS) && !defined(BOOST_HAS_PTHREADS)\
-      && !defined(BOOST_HAS_WINTHREADS) && !defined(BOOST_HAS_BETHREADS)\
-      && !defined(BOOST_HAS_MPTASKS)
-#  undef BOOST_HAS_THREADS
+#if defined(NDNBOOST_HAS_THREADS) && !defined(NDNBOOST_HAS_PTHREADS)\
+      && !defined(NDNBOOST_HAS_WINTHREADS) && !defined(NDNBOOST_HAS_BETHREADS)\
+      && !defined(NDNBOOST_HAS_MPTASKS)
+#  undef NDNBOOST_HAS_THREADS
 #endif
 
 //
 // Turn threading detail macros off if we don't (want to) use threading
 //
-#ifndef BOOST_HAS_THREADS
-#  undef BOOST_HAS_PTHREADS
-#  undef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-#  undef BOOST_HAS_PTHREAD_YIELD
-#  undef BOOST_HAS_PTHREAD_DELAY_NP
-#  undef BOOST_HAS_WINTHREADS
-#  undef BOOST_HAS_BETHREADS
-#  undef BOOST_HAS_MPTASKS
+#ifndef NDNBOOST_HAS_THREADS
+#  undef NDNBOOST_HAS_PTHREADS
+#  undef NDNBOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
+#  undef NDNBOOST_HAS_PTHREAD_YIELD
+#  undef NDNBOOST_HAS_PTHREAD_DELAY_NP
+#  undef NDNBOOST_HAS_WINTHREADS
+#  undef NDNBOOST_HAS_BETHREADS
+#  undef NDNBOOST_HAS_MPTASKS
 #endif
 
 //
@@ -286,60 +286,60 @@
 // have a <stdint.h>:
 //
 #  if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901)
-#     define BOOST_HAS_STDINT_H
-#     ifndef BOOST_HAS_LOG1P
-#        define BOOST_HAS_LOG1P
+#     define NDNBOOST_HAS_STDINT_H
+#     ifndef NDNBOOST_HAS_LOG1P
+#        define NDNBOOST_HAS_LOG1P
 #     endif
-#     ifndef BOOST_HAS_EXPM1
-#        define BOOST_HAS_EXPM1
+#     ifndef NDNBOOST_HAS_EXPM1
+#        define NDNBOOST_HAS_EXPM1
 #     endif
 #  endif
 
 //
-// Define BOOST_NO_SLIST and BOOST_NO_HASH if required.
+// Define NDNBOOST_NO_SLIST and NDNBOOST_NO_HASH if required.
 // Note that this is for backwards compatibility only.
 //
-#  if !defined(BOOST_HAS_SLIST) && !defined(BOOST_NO_SLIST)
-#     define BOOST_NO_SLIST
+#  if !defined(NDNBOOST_HAS_SLIST) && !defined(NDNBOOST_NO_SLIST)
+#     define NDNBOOST_NO_SLIST
 #  endif
 
-#  if !defined(BOOST_HAS_HASH) && !defined(BOOST_NO_HASH)
-#     define BOOST_NO_HASH
+#  if !defined(NDNBOOST_HAS_HASH) && !defined(NDNBOOST_NO_HASH)
+#     define NDNBOOST_NO_HASH
 #  endif
 
 //
-// Set BOOST_SLIST_HEADER if not set already:
+// Set NDNBOOST_SLIST_HEADER if not set already:
 //
-#if defined(BOOST_HAS_SLIST) && !defined(BOOST_SLIST_HEADER)
-#  define BOOST_SLIST_HEADER <slist>
+#if defined(NDNBOOST_HAS_SLIST) && !defined(NDNBOOST_SLIST_HEADER)
+#  define NDNBOOST_SLIST_HEADER <slist>
 #endif
 
 //
-// Set BOOST_HASH_SET_HEADER if not set already:
+// Set NDNBOOST_HASH_SET_HEADER if not set already:
 //
-#if defined(BOOST_HAS_HASH) && !defined(BOOST_HASH_SET_HEADER)
-#  define BOOST_HASH_SET_HEADER <hash_set>
+#if defined(NDNBOOST_HAS_HASH) && !defined(NDNBOOST_HASH_SET_HEADER)
+#  define NDNBOOST_HASH_SET_HEADER <hash_set>
 #endif
 
 //
-// Set BOOST_HASH_MAP_HEADER if not set already:
+// Set NDNBOOST_HASH_MAP_HEADER if not set already:
 //
-#if defined(BOOST_HAS_HASH) && !defined(BOOST_HASH_MAP_HEADER)
-#  define BOOST_HASH_MAP_HEADER <hash_map>
+#if defined(NDNBOOST_HAS_HASH) && !defined(NDNBOOST_HASH_MAP_HEADER)
+#  define NDNBOOST_HASH_MAP_HEADER <hash_map>
 #endif
 
-//  BOOST_HAS_ABI_HEADERS
+//  NDNBOOST_HAS_ABI_HEADERS
 //  This macro gets set if we have headers that fix the ABI,
 //  and prevent ODR violations when linking to external libraries:
-#if defined(BOOST_ABI_PREFIX) && defined(BOOST_ABI_SUFFIX) && !defined(BOOST_HAS_ABI_HEADERS)
-#  define BOOST_HAS_ABI_HEADERS
+#if defined(NDNBOOST_ABI_PREFIX) && defined(NDNBOOST_ABI_SUFFIX) && !defined(NDNBOOST_HAS_ABI_HEADERS)
+#  define NDNBOOST_HAS_ABI_HEADERS
 #endif
 
-#if defined(BOOST_HAS_ABI_HEADERS) && defined(BOOST_DISABLE_ABI_HEADERS)
-#  undef BOOST_HAS_ABI_HEADERS
+#if defined(NDNBOOST_HAS_ABI_HEADERS) && defined(NDNBOOST_DISABLE_ABI_HEADERS)
+#  undef NDNBOOST_HAS_ABI_HEADERS
 #endif
 
-//  BOOST_NO_STDC_NAMESPACE workaround  --------------------------------------//
+//  NDNBOOST_NO_STDC_NAMESPACE workaround  --------------------------------------//
 //  Because std::size_t usage is so common, even in boost headers which do not
 //  otherwise use the C library, the <cstddef> workaround is included here so
 //  that ugly workaround code need not appear in many other boost headers.
@@ -348,53 +348,53 @@
 //  works as expected with standard conforming compilers.  The resulting
 //  double inclusion of <cstddef> is harmless.
 
-# if defined(BOOST_NO_STDC_NAMESPACE) && defined(__cplusplus)
+# if defined(NDNBOOST_NO_STDC_NAMESPACE) && defined(__cplusplus)
 #   include <cstddef>
     namespace std { using ::ptrdiff_t; using ::size_t; }
 # endif
 
 //  Workaround for the unfortunate min/max macros defined by some platform headers
 
-#define BOOST_PREVENT_MACRO_SUBSTITUTION
+#define NDNBOOST_PREVENT_MACRO_SUBSTITUTION
 
-#ifndef BOOST_USING_STD_MIN
-#  define BOOST_USING_STD_MIN() using std::min
+#ifndef NDNBOOST_USING_STD_MIN
+#  define NDNBOOST_USING_STD_MIN() using std::min
 #endif
 
-#ifndef BOOST_USING_STD_MAX
-#  define BOOST_USING_STD_MAX() using std::max
+#ifndef NDNBOOST_USING_STD_MAX
+#  define NDNBOOST_USING_STD_MAX() using std::max
 #endif
 
-//  BOOST_NO_STD_MIN_MAX workaround  -----------------------------------------//
+//  NDNBOOST_NO_STD_MIN_MAX workaround  -----------------------------------------//
 
-#  if defined(BOOST_NO_STD_MIN_MAX) && defined(__cplusplus)
+#  if defined(NDNBOOST_NO_STD_MIN_MAX) && defined(__cplusplus)
 
 namespace std {
   template <class _Tp>
-  inline const _Tp& min BOOST_PREVENT_MACRO_SUBSTITUTION (const _Tp& __a, const _Tp& __b) {
+  inline const _Tp& min NDNBOOST_PREVENT_MACRO_SUBSTITUTION (const _Tp& __a, const _Tp& __b) {
     return __b < __a ? __b : __a;
   }
   template <class _Tp>
-  inline const _Tp& max BOOST_PREVENT_MACRO_SUBSTITUTION (const _Tp& __a, const _Tp& __b) {
+  inline const _Tp& max NDNBOOST_PREVENT_MACRO_SUBSTITUTION (const _Tp& __a, const _Tp& __b) {
     return  __a < __b ? __b : __a;
   }
 }
 
 #  endif
 
-// BOOST_STATIC_CONSTANT workaround --------------------------------------- //
+// NDNBOOST_STATIC_CONSTANT workaround --------------------------------------- //
 // On compilers which don't allow in-class initialization of static integral
 // constant members, we must use enums as a workaround if we want the constants
 // to be available at compile-time. This macro gives us a convenient way to
 // declare such constants.
 
-#  ifdef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-#       define BOOST_STATIC_CONSTANT(type, assignment) enum { assignment }
+#  ifdef NDNBOOST_NO_INCLASS_MEMBER_INITIALIZATION
+#       define NDNBOOST_STATIC_CONSTANT(type, assignment) enum { assignment }
 #  else
-#     define BOOST_STATIC_CONSTANT(type, assignment) static const type assignment
+#     define NDNBOOST_STATIC_CONSTANT(type, assignment) static const type assignment
 #  endif
 
-// BOOST_USE_FACET / HAS_FACET workaround ----------------------------------//
+// NDNBOOST_USE_FACET / HAS_FACET workaround ----------------------------------//
 // When the standard library does not have a conforming std::use_facet there
 // are various workarounds available, but they differ from library to library.
 // The same problem occurs with has_facet.
@@ -403,27 +403,27 @@
 //    replace
 //       std::use_facet<Type>(loc);
 //    with
-//       BOOST_USE_FACET(Type, loc);
-//    Note do not add a std:: prefix to the front of BOOST_USE_FACET!
-//  Use for BOOST_HAS_FACET is analogous.
+//       NDNBOOST_USE_FACET(Type, loc);
+//    Note do not add a std:: prefix to the front of NDNBOOST_USE_FACET!
+//  Use for NDNBOOST_HAS_FACET is analogous.
 
-#if defined(BOOST_NO_STD_USE_FACET)
-#  ifdef BOOST_HAS_TWO_ARG_USE_FACET
-#     define BOOST_USE_FACET(Type, loc) std::use_facet(loc, static_cast<Type*>(0))
-#     define BOOST_HAS_FACET(Type, loc) std::has_facet(loc, static_cast<Type*>(0))
-#  elif defined(BOOST_HAS_MACRO_USE_FACET)
-#     define BOOST_USE_FACET(Type, loc) std::_USE(loc, Type)
-#     define BOOST_HAS_FACET(Type, loc) std::_HAS(loc, Type)
-#  elif defined(BOOST_HAS_STLP_USE_FACET)
-#     define BOOST_USE_FACET(Type, loc) (*std::_Use_facet<Type >(loc))
-#     define BOOST_HAS_FACET(Type, loc) std::has_facet< Type >(loc)
+#if defined(NDNBOOST_NO_STD_USE_FACET)
+#  ifdef NDNBOOST_HAS_TWO_ARG_USE_FACET
+#     define NDNBOOST_USE_FACET(Type, loc) std::use_facet(loc, static_cast<Type*>(0))
+#     define NDNBOOST_HAS_FACET(Type, loc) std::has_facet(loc, static_cast<Type*>(0))
+#  elif defined(NDNBOOST_HAS_MACRO_USE_FACET)
+#     define NDNBOOST_USE_FACET(Type, loc) std::_USE(loc, Type)
+#     define NDNBOOST_HAS_FACET(Type, loc) std::_HAS(loc, Type)
+#  elif defined(NDNBOOST_HAS_STLP_USE_FACET)
+#     define NDNBOOST_USE_FACET(Type, loc) (*std::_Use_facet<Type >(loc))
+#     define NDNBOOST_HAS_FACET(Type, loc) std::has_facet< Type >(loc)
 #  endif
 #else
-#  define BOOST_USE_FACET(Type, loc) std::use_facet< Type >(loc)
-#  define BOOST_HAS_FACET(Type, loc) std::has_facet< Type >(loc)
+#  define NDNBOOST_USE_FACET(Type, loc) std::use_facet< Type >(loc)
+#  define NDNBOOST_HAS_FACET(Type, loc) std::has_facet< Type >(loc)
 #endif
 
-// BOOST_NESTED_TEMPLATE workaround ------------------------------------------//
+// NDNBOOST_NESTED_TEMPLATE workaround ------------------------------------------//
 // Member templates are supported by some compilers even though they can't use
 // the A::template member<U> syntax, as a workaround replace:
 //
@@ -431,26 +431,26 @@
 //
 // with:
 //
-// typedef typename A::BOOST_NESTED_TEMPLATE rebind<U> binder;
+// typedef typename A::NDNBOOST_NESTED_TEMPLATE rebind<U> binder;
 
-#ifndef BOOST_NO_MEMBER_TEMPLATE_KEYWORD
-#  define BOOST_NESTED_TEMPLATE template
+#ifndef NDNBOOST_NO_MEMBER_TEMPLATE_KEYWORD
+#  define NDNBOOST_NESTED_TEMPLATE template
 #else
-#  define BOOST_NESTED_TEMPLATE
+#  define NDNBOOST_NESTED_TEMPLATE
 #endif
 
-// BOOST_UNREACHABLE_RETURN(x) workaround -------------------------------------//
-// Normally evaluates to nothing, unless BOOST_NO_UNREACHABLE_RETURN_DETECTION
+// NDNBOOST_UNREACHABLE_RETURN(x) workaround -------------------------------------//
+// Normally evaluates to nothing, unless NDNBOOST_NO_UNREACHABLE_RETURN_DETECTION
 // is defined, in which case it evaluates to return x; Use when you have a return
 // statement that can never be reached.
 
-#ifdef BOOST_NO_UNREACHABLE_RETURN_DETECTION
-#  define BOOST_UNREACHABLE_RETURN(x) return x;
+#ifdef NDNBOOST_NO_UNREACHABLE_RETURN_DETECTION
+#  define NDNBOOST_UNREACHABLE_RETURN(x) return x;
 #else
-#  define BOOST_UNREACHABLE_RETURN(x)
+#  define NDNBOOST_UNREACHABLE_RETURN(x)
 #endif
 
-// BOOST_DEDUCED_TYPENAME workaround ------------------------------------------//
+// NDNBOOST_DEDUCED_TYPENAME workaround ------------------------------------------//
 //
 // Some compilers don't support the use of `typename' for dependent
 // types in deduced contexts, e.g.
@@ -459,18 +459,18 @@
 //                                  ^^^^^^^^
 // Replace these declarations with:
 //
-//     template <class T> void f(T, BOOST_DEDUCED_TYPENAME T::type);
+//     template <class T> void f(T, NDNBOOST_DEDUCED_TYPENAME T::type);
 
-#ifndef BOOST_NO_DEDUCED_TYPENAME
-#  define BOOST_DEDUCED_TYPENAME typename
+#ifndef NDNBOOST_NO_DEDUCED_TYPENAME
+#  define NDNBOOST_DEDUCED_TYPENAME typename
 #else
-#  define BOOST_DEDUCED_TYPENAME
+#  define NDNBOOST_DEDUCED_TYPENAME
 #endif
 
-#ifndef BOOST_NO_TYPENAME_WITH_CTOR
-#  define BOOST_CTOR_TYPENAME typename
+#ifndef NDNBOOST_NO_TYPENAME_WITH_CTOR
+#  define NDNBOOST_CTOR_TYPENAME typename
 #else
-#  define BOOST_CTOR_TYPENAME
+#  define NDNBOOST_CTOR_TYPENAME
 #endif
 
 // long long workaround ------------------------------------------//
@@ -478,7 +478,7 @@
 // but it's use may generate either warnings (with -ansi), or errors
 // (with -pedantic -ansi) unless it's use is prefixed by __extension__
 //
-#if defined(BOOST_HAS_LONG_LONG) && defined(__cplusplus)
+#if defined(NDNBOOST_HAS_LONG_LONG) && defined(__cplusplus)
 namespace ndnboost{
 #  ifdef __GNUC__
    __extension__ typedef long long long_long_type;
@@ -490,7 +490,7 @@
 }
 #endif
 // same again for __int128:
-#if defined(BOOST_HAS_INT128) && defined(__cplusplus)
+#if defined(NDNBOOST_HAS_INT128) && defined(__cplusplus)
 namespace ndnboost{
 #  ifdef __GNUC__
    __extension__ typedef __int128 int128_type;
@@ -502,7 +502,7 @@
 }
 #endif
 
-// BOOST_[APPEND_]EXPLICIT_TEMPLATE_[NON_]TYPE macros --------------------------//
+// NDNBOOST_[APPEND_]EXPLICIT_TEMPLATE_[NON_]TYPE macros --------------------------//
 //
 // Some compilers have problems with function templates whose template
 // parameters don't appear in the function parameter list (basically
@@ -537,52 +537,52 @@
 // To fix it, write
 //
 //   template <int n>
-//   void f(BOOST_EXPLICIT_TEMPLATE_NON_TYPE(int, n)) { ... }
+//   void f(NDNBOOST_EXPLICIT_TEMPLATE_NON_TYPE(int, n)) { ... }
 //
 //   template <typename T>
-//   void g(BOOST_EXPLICIT_TEMPLATE_TYPE(T)) { ... }
+//   void g(NDNBOOST_EXPLICIT_TEMPLATE_TYPE(T)) { ... }
 //
 
 
-#if defined(BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS) && defined(__cplusplus)
+#if defined(NDNBOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS) && defined(__cplusplus)
 
 #  include "ndnboost/type.hpp"
 #  include "ndnboost/non_type.hpp"
 
-#  define BOOST_EXPLICIT_TEMPLATE_TYPE(t)              ndnboost::type<t>* = 0
-#  define BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t)         ndnboost::type<t>*
-#  define BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v)       ndnboost::non_type<t, v>* = 0
-#  define BOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)  ndnboost::non_type<t, v>*
+#  define NDNBOOST_EXPLICIT_TEMPLATE_TYPE(t)              ndnboost::type<t>* = 0
+#  define NDNBOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t)         ndnboost::type<t>*
+#  define NDNBOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v)       ndnboost::non_type<t, v>* = 0
+#  define NDNBOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)  ndnboost::non_type<t, v>*
 
-#  define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(t)        \
-             , BOOST_EXPLICIT_TEMPLATE_TYPE(t)
-#  define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(t)   \
-             , BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
-#  define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t, v) \
-             , BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
-#  define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)    \
-             , BOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
+#  define NDNBOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(t)        \
+             , NDNBOOST_EXPLICIT_TEMPLATE_TYPE(t)
+#  define NDNBOOST_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(t)   \
+             , NDNBOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
+#  define NDNBOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t, v) \
+             , NDNBOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
+#  define NDNBOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)    \
+             , NDNBOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
 
 #else
 
 // no workaround needed: expand to nothing
 
-#  define BOOST_EXPLICIT_TEMPLATE_TYPE(t)
-#  define BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
-#  define BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
-#  define BOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
+#  define NDNBOOST_EXPLICIT_TEMPLATE_TYPE(t)
+#  define NDNBOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
+#  define NDNBOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
+#  define NDNBOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
 
-#  define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(t)
-#  define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
-#  define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
-#  define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
+#  define NDNBOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(t)
+#  define NDNBOOST_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
+#  define NDNBOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
+#  define NDNBOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
 
 
-#endif // defined BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
+#endif // defined NDNBOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
 
-// When BOOST_NO_STD_TYPEINFO is defined, we can just import
+// When NDNBOOST_NO_STD_TYPEINFO is defined, we can just import
 // the global definition into std namespace:
-#if defined(BOOST_NO_STD_TYPEINFO) && defined(__cplusplus)
+#if defined(NDNBOOST_NO_STD_TYPEINFO) && defined(__cplusplus)
 #include <typeinfo>
 namespace std{ using ::type_info; }
 #endif
@@ -590,166 +590,166 @@
 // ---------------------------------------------------------------------------//
 
 //
-// Helper macro BOOST_STRINGIZE:
+// Helper macro NDNBOOST_STRINGIZE:
 // Converts the parameter X to a string after macro replacement
 // on X has been performed.
 //
-#define BOOST_STRINGIZE(X) BOOST_DO_STRINGIZE(X)
-#define BOOST_DO_STRINGIZE(X) #X
+#define NDNBOOST_STRINGIZE(X) NDNBOOST_DO_STRINGIZE(X)
+#define NDNBOOST_DO_STRINGIZE(X) #X
 
 //
-// Helper macro BOOST_JOIN:
+// Helper macro NDNBOOST_JOIN:
 // The following piece of macro magic joins the two
 // arguments together, even when one of the arguments is
 // itself a macro (see 16.3.1 in C++ standard).  The key
 // is that macro expansion of macro arguments does not
-// occur in BOOST_DO_JOIN2 but does in BOOST_DO_JOIN.
+// occur in NDNBOOST_DO_JOIN2 but does in NDNBOOST_DO_JOIN.
 //
-#define BOOST_JOIN( X, Y ) BOOST_DO_JOIN( X, Y )
-#define BOOST_DO_JOIN( X, Y ) BOOST_DO_JOIN2(X,Y)
-#define BOOST_DO_JOIN2( X, Y ) X##Y
+#define NDNBOOST_JOIN( X, Y ) NDNBOOST_DO_JOIN( X, Y )
+#define NDNBOOST_DO_JOIN( X, Y ) NDNBOOST_DO_JOIN2(X,Y)
+#define NDNBOOST_DO_JOIN2( X, Y ) X##Y
 
 //
 // Set some default values for compiler/library/platform names.
 // These are for debugging config setup only:
 //
-#  ifndef BOOST_COMPILER
-#     define BOOST_COMPILER "Unknown ISO C++ Compiler"
+#  ifndef NDNBOOST_COMPILER
+#     define NDNBOOST_COMPILER "Unknown ISO C++ Compiler"
 #  endif
-#  ifndef BOOST_STDLIB
-#     define BOOST_STDLIB "Unknown ISO standard library"
+#  ifndef NDNBOOST_STDLIB
+#     define NDNBOOST_STDLIB "Unknown ISO standard library"
 #  endif
-#  ifndef BOOST_PLATFORM
+#  ifndef NDNBOOST_PLATFORM
 #     if defined(unix) || defined(__unix) || defined(_XOPEN_SOURCE) \
          || defined(_POSIX_SOURCE)
-#        define BOOST_PLATFORM "Generic Unix"
+#        define NDNBOOST_PLATFORM "Generic Unix"
 #     else
-#        define BOOST_PLATFORM "Unknown"
+#        define NDNBOOST_PLATFORM "Unknown"
 #     endif
 #  endif
 
 //
 // Set some default values GPU support
 //
-#  ifndef BOOST_GPU_ENABLED
-#  define BOOST_GPU_ENABLED 
+#  ifndef NDNBOOST_GPU_ENABLED
+#  define NDNBOOST_GPU_ENABLED 
 #  endif
 
-// BOOST_FORCEINLINE ---------------------------------------------//
+// NDNBOOST_FORCEINLINE ---------------------------------------------//
 // Macro to use in place of 'inline' to force a function to be inline
-#if !defined(BOOST_FORCEINLINE)
+#if !defined(NDNBOOST_FORCEINLINE)
 #  if defined(_MSC_VER)
-#    define BOOST_FORCEINLINE __forceinline
+#    define NDNBOOST_FORCEINLINE __forceinline
 #  elif defined(__GNUC__) && __GNUC__ > 3
      // Clang also defines __GNUC__ (as 4)
-#    define BOOST_FORCEINLINE inline __attribute__ ((__always_inline__))
+#    define NDNBOOST_FORCEINLINE inline __attribute__ ((__always_inline__))
 #  else
-#    define BOOST_FORCEINLINE inline
+#    define NDNBOOST_FORCEINLINE inline
 #  endif
 #endif
 
 //
-// Set BOOST_NO_DECLTYPE_N3276 when BOOST_NO_DECLTYPE is defined
+// Set NDNBOOST_NO_DECLTYPE_N3276 when NDNBOOST_NO_DECLTYPE is defined
 //
-#if defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_NO_CXX11_DECLTYPE_N3276)
-#define	BOOST_NO_CXX11_DECLTYPE_N3276 BOOST_NO_CXX11_DECLTYPE
+#if defined(NDNBOOST_NO_CXX11_DECLTYPE) && !defined(NDNBOOST_NO_CXX11_DECLTYPE_N3276)
+#define	NDNBOOST_NO_CXX11_DECLTYPE_N3276 NDNBOOST_NO_CXX11_DECLTYPE
 #endif
 
 //  -------------------- Deprecated macros for 1.50 ---------------------------
 //  These will go away in a future release
 
-//  Use BOOST_NO_CXX11_HDR_UNORDERED_SET or BOOST_NO_CXX11_HDR_UNORDERED_MAP
-//           instead of BOOST_NO_STD_UNORDERED
-#if defined(BOOST_NO_CXX11_HDR_UNORDERED_MAP) || defined (BOOST_NO_CXX11_HDR_UNORDERED_SET)
-# ifndef BOOST_NO_CXX11_STD_UNORDERED
-#  define BOOST_NO_CXX11_STD_UNORDERED
+//  Use NDNBOOST_NO_CXX11_HDR_UNORDERED_SET or NDNBOOST_NO_CXX11_HDR_UNORDERED_MAP
+//           instead of NDNBOOST_NO_STD_UNORDERED
+#if defined(NDNBOOST_NO_CXX11_HDR_UNORDERED_MAP) || defined (NDNBOOST_NO_CXX11_HDR_UNORDERED_SET)
+# ifndef NDNBOOST_NO_CXX11_STD_UNORDERED
+#  define NDNBOOST_NO_CXX11_STD_UNORDERED
 # endif
 #endif
 
-//  Use BOOST_NO_CXX11_HDR_INITIALIZER_LIST instead of BOOST_NO_INITIALIZER_LISTS
-#if defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST) && !defined(BOOST_NO_INITIALIZER_LISTS)
-#  define BOOST_NO_INITIALIZER_LISTS
+//  Use NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST instead of NDNBOOST_NO_INITIALIZER_LISTS
+#if defined(NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST) && !defined(NDNBOOST_NO_INITIALIZER_LISTS)
+#  define NDNBOOST_NO_INITIALIZER_LISTS
 #endif
 
-//  Use BOOST_NO_CXX11_HDR_ARRAY instead of BOOST_NO_0X_HDR_ARRAY
-#if defined(BOOST_NO_CXX11_HDR_ARRAY) && !defined(BOOST_NO_0X_HDR_ARRAY)
-#  define BOOST_NO_0X_HDR_ARRAY
+//  Use NDNBOOST_NO_CXX11_HDR_ARRAY instead of NDNBOOST_NO_0X_HDR_ARRAY
+#if defined(NDNBOOST_NO_CXX11_HDR_ARRAY) && !defined(NDNBOOST_NO_0X_HDR_ARRAY)
+#  define NDNBOOST_NO_0X_HDR_ARRAY
 #endif
-//  Use BOOST_NO_CXX11_HDR_CHRONO instead of BOOST_NO_0X_HDR_CHRONO
-#if defined(BOOST_NO_CXX11_HDR_CHRONO) && !defined(BOOST_NO_0X_HDR_CHRONO)
-#  define BOOST_NO_0X_HDR_CHRONO
+//  Use NDNBOOST_NO_CXX11_HDR_CHRONO instead of NDNBOOST_NO_0X_HDR_CHRONO
+#if defined(NDNBOOST_NO_CXX11_HDR_CHRONO) && !defined(NDNBOOST_NO_0X_HDR_CHRONO)
+#  define NDNBOOST_NO_0X_HDR_CHRONO
 #endif
-//  Use BOOST_NO_CXX11_HDR_CODECVT instead of BOOST_NO_0X_HDR_CODECVT
-#if defined(BOOST_NO_CXX11_HDR_CODECVT) && !defined(BOOST_NO_0X_HDR_CODECVT)
-#  define BOOST_NO_0X_HDR_CODECVT
+//  Use NDNBOOST_NO_CXX11_HDR_CODECVT instead of NDNBOOST_NO_0X_HDR_CODECVT
+#if defined(NDNBOOST_NO_CXX11_HDR_CODECVT) && !defined(NDNBOOST_NO_0X_HDR_CODECVT)
+#  define NDNBOOST_NO_0X_HDR_CODECVT
 #endif
-//  Use BOOST_NO_CXX11_HDR_CONDITION_VARIABLE instead of BOOST_NO_0X_HDR_CONDITION_VARIABLE
-#if defined(BOOST_NO_CXX11_HDR_CONDITION_VARIABLE) && !defined(BOOST_NO_0X_HDR_CONDITION_VARIABLE)
-#  define BOOST_NO_0X_HDR_CONDITION_VARIABLE
+//  Use NDNBOOST_NO_CXX11_HDR_CONDITION_VARIABLE instead of NDNBOOST_NO_0X_HDR_CONDITION_VARIABLE
+#if defined(NDNBOOST_NO_CXX11_HDR_CONDITION_VARIABLE) && !defined(NDNBOOST_NO_0X_HDR_CONDITION_VARIABLE)
+#  define NDNBOOST_NO_0X_HDR_CONDITION_VARIABLE
 #endif
-//  Use BOOST_NO_CXX11_HDR_FORWARD_LIST instead of BOOST_NO_0X_HDR_FORWARD_LIST
-#if defined(BOOST_NO_CXX11_HDR_FORWARD_LIST) && !defined(BOOST_NO_0X_HDR_FORWARD_LIST)
-#  define BOOST_NO_0X_HDR_FORWARD_LIST
+//  Use NDNBOOST_NO_CXX11_HDR_FORWARD_LIST instead of NDNBOOST_NO_0X_HDR_FORWARD_LIST
+#if defined(NDNBOOST_NO_CXX11_HDR_FORWARD_LIST) && !defined(NDNBOOST_NO_0X_HDR_FORWARD_LIST)
+#  define NDNBOOST_NO_0X_HDR_FORWARD_LIST
 #endif
-//  Use BOOST_NO_CXX11_HDR_FUTURE instead of BOOST_NO_0X_HDR_FUTURE
-#if defined(BOOST_NO_CXX11_HDR_FUTURE) && !defined(BOOST_NO_0X_HDR_FUTURE)
-#  define BOOST_NO_0X_HDR_FUTURE
+//  Use NDNBOOST_NO_CXX11_HDR_FUTURE instead of NDNBOOST_NO_0X_HDR_FUTURE
+#if defined(NDNBOOST_NO_CXX11_HDR_FUTURE) && !defined(NDNBOOST_NO_0X_HDR_FUTURE)
+#  define NDNBOOST_NO_0X_HDR_FUTURE
 #endif
 
-//  Use BOOST_NO_CXX11_HDR_INITIALIZER_LIST 
-//  instead of BOOST_NO_0X_HDR_INITIALIZER_LIST or BOOST_NO_INITIALIZER_LISTS
-#ifdef BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-# ifndef BOOST_NO_0X_HDR_INITIALIZER_LIST
-#  define BOOST_NO_0X_HDR_INITIALIZER_LIST
+//  Use NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST 
+//  instead of NDNBOOST_NO_0X_HDR_INITIALIZER_LIST or NDNBOOST_NO_INITIALIZER_LISTS
+#ifdef NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+# ifndef NDNBOOST_NO_0X_HDR_INITIALIZER_LIST
+#  define NDNBOOST_NO_0X_HDR_INITIALIZER_LIST
 # endif
-# ifndef BOOST_NO_INITIALIZER_LISTS
-#  define BOOST_NO_INITIALIZER_LISTS
+# ifndef NDNBOOST_NO_INITIALIZER_LISTS
+#  define NDNBOOST_NO_INITIALIZER_LISTS
 # endif
 #endif
 
-//  Use BOOST_NO_CXX11_HDR_MUTEX instead of BOOST_NO_0X_HDR_MUTEX
-#if defined(BOOST_NO_CXX11_HDR_MUTEX) && !defined(BOOST_NO_0X_HDR_MUTEX)
-#  define BOOST_NO_0X_HDR_MUTEX
+//  Use NDNBOOST_NO_CXX11_HDR_MUTEX instead of NDNBOOST_NO_0X_HDR_MUTEX
+#if defined(NDNBOOST_NO_CXX11_HDR_MUTEX) && !defined(NDNBOOST_NO_0X_HDR_MUTEX)
+#  define NDNBOOST_NO_0X_HDR_MUTEX
 #endif
-//  Use BOOST_NO_CXX11_HDR_RANDOM instead of BOOST_NO_0X_HDR_RANDOM
-#if defined(BOOST_NO_CXX11_HDR_RANDOM) && !defined(BOOST_NO_0X_HDR_RANDOM)
-#  define BOOST_NO_0X_HDR_RANDOM
+//  Use NDNBOOST_NO_CXX11_HDR_RANDOM instead of NDNBOOST_NO_0X_HDR_RANDOM
+#if defined(NDNBOOST_NO_CXX11_HDR_RANDOM) && !defined(NDNBOOST_NO_0X_HDR_RANDOM)
+#  define NDNBOOST_NO_0X_HDR_RANDOM
 #endif
-//  Use BOOST_NO_CXX11_HDR_RATIO instead of BOOST_NO_0X_HDR_RATIO
-#if defined(BOOST_NO_CXX11_HDR_RATIO) && !defined(BOOST_NO_0X_HDR_RATIO)
-#  define BOOST_NO_0X_HDR_RATIO
+//  Use NDNBOOST_NO_CXX11_HDR_RATIO instead of NDNBOOST_NO_0X_HDR_RATIO
+#if defined(NDNBOOST_NO_CXX11_HDR_RATIO) && !defined(NDNBOOST_NO_0X_HDR_RATIO)
+#  define NDNBOOST_NO_0X_HDR_RATIO
 #endif
-//  Use BOOST_NO_CXX11_HDR_REGEX instead of BOOST_NO_0X_HDR_REGEX
-#if defined(BOOST_NO_CXX11_HDR_REGEX) && !defined(BOOST_NO_0X_HDR_REGEX)
-#  define BOOST_NO_0X_HDR_REGEX
+//  Use NDNBOOST_NO_CXX11_HDR_REGEX instead of NDNBOOST_NO_0X_HDR_REGEX
+#if defined(NDNBOOST_NO_CXX11_HDR_REGEX) && !defined(NDNBOOST_NO_0X_HDR_REGEX)
+#  define NDNBOOST_NO_0X_HDR_REGEX
 #endif
-//  Use BOOST_NO_CXX11_HDR_SYSTEM_ERROR instead of BOOST_NO_0X_HDR_SYSTEM_ERROR
-#if defined(BOOST_NO_CXX11_HDR_SYSTEM_ERROR) && !defined(BOOST_NO_0X_HDR_SYSTEM_ERROR)
-#  define BOOST_NO_0X_HDR_SYSTEM_ERROR
+//  Use NDNBOOST_NO_CXX11_HDR_SYSTEM_ERROR instead of NDNBOOST_NO_0X_HDR_SYSTEM_ERROR
+#if defined(NDNBOOST_NO_CXX11_HDR_SYSTEM_ERROR) && !defined(NDNBOOST_NO_0X_HDR_SYSTEM_ERROR)
+#  define NDNBOOST_NO_0X_HDR_SYSTEM_ERROR
 #endif
-//  Use BOOST_NO_CXX11_HDR_THREAD instead of BOOST_NO_0X_HDR_THREAD
-#if defined(BOOST_NO_CXX11_HDR_THREAD) && !defined(BOOST_NO_0X_HDR_THREAD)
-#  define BOOST_NO_0X_HDR_THREAD
+//  Use NDNBOOST_NO_CXX11_HDR_THREAD instead of NDNBOOST_NO_0X_HDR_THREAD
+#if defined(NDNBOOST_NO_CXX11_HDR_THREAD) && !defined(NDNBOOST_NO_0X_HDR_THREAD)
+#  define NDNBOOST_NO_0X_HDR_THREAD
 #endif
-//  Use BOOST_NO_CXX11_HDR_TUPLE instead of BOOST_NO_0X_HDR_TUPLE
-#if defined(BOOST_NO_CXX11_HDR_TUPLE) && !defined(BOOST_NO_0X_HDR_TUPLE)
-#  define BOOST_NO_0X_HDR_TUPLE
+//  Use NDNBOOST_NO_CXX11_HDR_TUPLE instead of NDNBOOST_NO_0X_HDR_TUPLE
+#if defined(NDNBOOST_NO_CXX11_HDR_TUPLE) && !defined(NDNBOOST_NO_0X_HDR_TUPLE)
+#  define NDNBOOST_NO_0X_HDR_TUPLE
 #endif
-//  Use BOOST_NO_CXX11_HDR_TYPE_TRAITS instead of BOOST_NO_0X_HDR_TYPE_TRAITS
-#if defined(BOOST_NO_CXX11_HDR_TYPE_TRAITS) && !defined(BOOST_NO_0X_HDR_TYPE_TRAITS)
-#  define BOOST_NO_0X_HDR_TYPE_TRAITS
+//  Use NDNBOOST_NO_CXX11_HDR_TYPE_TRAITS instead of NDNBOOST_NO_0X_HDR_TYPE_TRAITS
+#if defined(NDNBOOST_NO_CXX11_HDR_TYPE_TRAITS) && !defined(NDNBOOST_NO_0X_HDR_TYPE_TRAITS)
+#  define NDNBOOST_NO_0X_HDR_TYPE_TRAITS
 #endif
-//  Use BOOST_NO_CXX11_HDR_TYPEINDEX instead of BOOST_NO_0X_HDR_TYPEINDEX
-#if defined(BOOST_NO_CXX11_HDR_TYPEINDEX) && !defined(BOOST_NO_0X_HDR_TYPEINDEX)
-#  define BOOST_NO_0X_HDR_TYPEINDEX
+//  Use NDNBOOST_NO_CXX11_HDR_TYPEINDEX instead of NDNBOOST_NO_0X_HDR_TYPEINDEX
+#if defined(NDNBOOST_NO_CXX11_HDR_TYPEINDEX) && !defined(NDNBOOST_NO_0X_HDR_TYPEINDEX)
+#  define NDNBOOST_NO_0X_HDR_TYPEINDEX
 #endif
-//  Use BOOST_NO_CXX11_HDR_UNORDERED_MAP instead of BOOST_NO_0X_HDR_UNORDERED_MAP
-#if defined(BOOST_NO_CXX11_HDR_UNORDERED_MAP) && !defined(BOOST_NO_0X_HDR_UNORDERED_MAP)
-#  define BOOST_NO_0X_HDR_UNORDERED_MAP
+//  Use NDNBOOST_NO_CXX11_HDR_UNORDERED_MAP instead of NDNBOOST_NO_0X_HDR_UNORDERED_MAP
+#if defined(NDNBOOST_NO_CXX11_HDR_UNORDERED_MAP) && !defined(NDNBOOST_NO_0X_HDR_UNORDERED_MAP)
+#  define NDNBOOST_NO_0X_HDR_UNORDERED_MAP
 #endif
-//  Use BOOST_NO_CXX11_HDR_UNORDERED_SET instead of BOOST_NO_0X_HDR_UNORDERED_SET
-#if defined(BOOST_NO_CXX11_HDR_UNORDERED_SET) && !defined(BOOST_NO_0X_HDR_UNORDERED_SET)
-#  define BOOST_NO_0X_HDR_UNORDERED_SET
+//  Use NDNBOOST_NO_CXX11_HDR_UNORDERED_SET instead of NDNBOOST_NO_0X_HDR_UNORDERED_SET
+#if defined(NDNBOOST_NO_CXX11_HDR_UNORDERED_SET) && !defined(NDNBOOST_NO_0X_HDR_UNORDERED_SET)
+#  define NDNBOOST_NO_0X_HDR_UNORDERED_SET
 #endif
 
 //  ------------------ End of deprecated macros for 1.50 ---------------------------
@@ -757,176 +757,176 @@
 //  -------------------- Deprecated macros for 1.51 ---------------------------
 //  These will go away in a future release
 
-//  Use     BOOST_NO_CXX11_AUTO_DECLARATIONS instead of   BOOST_NO_AUTO_DECLARATIONS
-#if defined(BOOST_NO_CXX11_AUTO_DECLARATIONS) && !defined(BOOST_NO_AUTO_DECLARATIONS)
-#  define BOOST_NO_AUTO_DECLARATIONS
+//  Use     NDNBOOST_NO_CXX11_AUTO_DECLARATIONS instead of   NDNBOOST_NO_AUTO_DECLARATIONS
+#if defined(NDNBOOST_NO_CXX11_AUTO_DECLARATIONS) && !defined(NDNBOOST_NO_AUTO_DECLARATIONS)
+#  define NDNBOOST_NO_AUTO_DECLARATIONS
 #endif
-//  Use     BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS instead of   BOOST_NO_AUTO_MULTIDECLARATIONS
-#if defined(BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS) && !defined(BOOST_NO_AUTO_MULTIDECLARATIONS)
-#  define BOOST_NO_AUTO_MULTIDECLARATIONS
+//  Use     NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS instead of   NDNBOOST_NO_AUTO_MULTIDECLARATIONS
+#if defined(NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS) && !defined(NDNBOOST_NO_AUTO_MULTIDECLARATIONS)
+#  define NDNBOOST_NO_AUTO_MULTIDECLARATIONS
 #endif
-//  Use     BOOST_NO_CXX11_CHAR16_T instead of   BOOST_NO_CHAR16_T
-#if defined(BOOST_NO_CXX11_CHAR16_T) && !defined(BOOST_NO_CHAR16_T)
-#  define BOOST_NO_CHAR16_T
+//  Use     NDNBOOST_NO_CXX11_CHAR16_T instead of   NDNBOOST_NO_CHAR16_T
+#if defined(NDNBOOST_NO_CXX11_CHAR16_T) && !defined(NDNBOOST_NO_CHAR16_T)
+#  define NDNBOOST_NO_CHAR16_T
 #endif
-//  Use     BOOST_NO_CXX11_CHAR32_T instead of   BOOST_NO_CHAR32_T
-#if defined(BOOST_NO_CXX11_CHAR32_T) && !defined(BOOST_NO_CHAR32_T)
-#  define BOOST_NO_CHAR32_T
+//  Use     NDNBOOST_NO_CXX11_CHAR32_T instead of   NDNBOOST_NO_CHAR32_T
+#if defined(NDNBOOST_NO_CXX11_CHAR32_T) && !defined(NDNBOOST_NO_CHAR32_T)
+#  define NDNBOOST_NO_CHAR32_T
 #endif
-//  Use     BOOST_NO_CXX11_TEMPLATE_ALIASES instead of   BOOST_NO_TEMPLATE_ALIASES
-#if defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) && !defined(BOOST_NO_TEMPLATE_ALIASES)
-#  define BOOST_NO_TEMPLATE_ALIASES
+//  Use     NDNBOOST_NO_CXX11_TEMPLATE_ALIASES instead of   NDNBOOST_NO_TEMPLATE_ALIASES
+#if defined(NDNBOOST_NO_CXX11_TEMPLATE_ALIASES) && !defined(NDNBOOST_NO_TEMPLATE_ALIASES)
+#  define NDNBOOST_NO_TEMPLATE_ALIASES
 #endif
-//  Use     BOOST_NO_CXX11_CONSTEXPR instead of   BOOST_NO_CONSTEXPR
-#if defined(BOOST_NO_CXX11_CONSTEXPR) && !defined(BOOST_NO_CONSTEXPR)
-#  define BOOST_NO_CONSTEXPR
+//  Use     NDNBOOST_NO_CXX11_CONSTEXPR instead of   NDNBOOST_NO_CONSTEXPR
+#if defined(NDNBOOST_NO_CXX11_CONSTEXPR) && !defined(NDNBOOST_NO_CONSTEXPR)
+#  define NDNBOOST_NO_CONSTEXPR
 #endif
-//  Use     BOOST_NO_CXX11_DECLTYPE_N3276 instead of   BOOST_NO_DECLTYPE_N3276
-#if defined(BOOST_NO_CXX11_DECLTYPE_N3276) && !defined(BOOST_NO_DECLTYPE_N3276)
-#  define BOOST_NO_DECLTYPE_N3276
+//  Use     NDNBOOST_NO_CXX11_DECLTYPE_N3276 instead of   NDNBOOST_NO_DECLTYPE_N3276
+#if defined(NDNBOOST_NO_CXX11_DECLTYPE_N3276) && !defined(NDNBOOST_NO_DECLTYPE_N3276)
+#  define NDNBOOST_NO_DECLTYPE_N3276
 #endif
-//  Use     BOOST_NO_CXX11_DECLTYPE instead of   BOOST_NO_DECLTYPE
-#if defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_NO_DECLTYPE)
-#  define BOOST_NO_DECLTYPE
+//  Use     NDNBOOST_NO_CXX11_DECLTYPE instead of   NDNBOOST_NO_DECLTYPE
+#if defined(NDNBOOST_NO_CXX11_DECLTYPE) && !defined(NDNBOOST_NO_DECLTYPE)
+#  define NDNBOOST_NO_DECLTYPE
 #endif
-//  Use     BOOST_NO_CXX11_DEFAULTED_FUNCTIONS instead of   BOOST_NO_DEFAULTED_FUNCTIONS
-#if defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS) && !defined(BOOST_NO_DEFAULTED_FUNCTIONS)
-#  define BOOST_NO_DEFAULTED_FUNCTIONS
+//  Use     NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS instead of   NDNBOOST_NO_DEFAULTED_FUNCTIONS
+#if defined(NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS) && !defined(NDNBOOST_NO_DEFAULTED_FUNCTIONS)
+#  define NDNBOOST_NO_DEFAULTED_FUNCTIONS
 #endif
-//  Use     BOOST_NO_CXX11_DELETED_FUNCTIONS instead of   BOOST_NO_DELETED_FUNCTIONS
-#if defined(BOOST_NO_CXX11_DELETED_FUNCTIONS) && !defined(BOOST_NO_DELETED_FUNCTIONS)
-#  define BOOST_NO_DELETED_FUNCTIONS
+//  Use     NDNBOOST_NO_CXX11_DELETED_FUNCTIONS instead of   NDNBOOST_NO_DELETED_FUNCTIONS
+#if defined(NDNBOOST_NO_CXX11_DELETED_FUNCTIONS) && !defined(NDNBOOST_NO_DELETED_FUNCTIONS)
+#  define NDNBOOST_NO_DELETED_FUNCTIONS
 #endif
-//  Use     BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS instead of   BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
-#if defined(BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS) && !defined(BOOST_NO_EXPLICIT_CONVERSION_OPERATORS)
-#  define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
+//  Use     NDNBOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS instead of   NDNBOOST_NO_EXPLICIT_CONVERSION_OPERATORS
+#if defined(NDNBOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS) && !defined(NDNBOOST_NO_EXPLICIT_CONVERSION_OPERATORS)
+#  define NDNBOOST_NO_EXPLICIT_CONVERSION_OPERATORS
 #endif
-//  Use     BOOST_NO_CXX11_EXTERN_TEMPLATE instead of   BOOST_NO_EXTERN_TEMPLATE
-#if defined(BOOST_NO_CXX11_EXTERN_TEMPLATE) && !defined(BOOST_NO_EXTERN_TEMPLATE)
-#  define BOOST_NO_EXTERN_TEMPLATE
+//  Use     NDNBOOST_NO_CXX11_EXTERN_TEMPLATE instead of   NDNBOOST_NO_EXTERN_TEMPLATE
+#if defined(NDNBOOST_NO_CXX11_EXTERN_TEMPLATE) && !defined(NDNBOOST_NO_EXTERN_TEMPLATE)
+#  define NDNBOOST_NO_EXTERN_TEMPLATE
 #endif
-//  Use     BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS instead of   BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#if defined(BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS) && !defined(BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS)
-#  define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
+//  Use     NDNBOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS instead of   NDNBOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
+#if defined(NDNBOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS) && !defined(NDNBOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS)
+#  define NDNBOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
 #endif
-//  Use     BOOST_NO_CXX11_LAMBDAS instead of   BOOST_NO_LAMBDAS
-#if defined(BOOST_NO_CXX11_LAMBDAS) && !defined(BOOST_NO_LAMBDAS)
-#  define BOOST_NO_LAMBDAS
+//  Use     NDNBOOST_NO_CXX11_LAMBDAS instead of   NDNBOOST_NO_LAMBDAS
+#if defined(NDNBOOST_NO_CXX11_LAMBDAS) && !defined(NDNBOOST_NO_LAMBDAS)
+#  define NDNBOOST_NO_LAMBDAS
 #endif
-//  Use     BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS instead of   BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#if defined(BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS) && !defined(BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS)
-#  define BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS
+//  Use     NDNBOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS instead of   NDNBOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS
+#if defined(NDNBOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS) && !defined(NDNBOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS)
+#  define NDNBOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS
 #endif
-//  Use     BOOST_NO_CXX11_NOEXCEPT instead of   BOOST_NO_NOEXCEPT
-#if defined(BOOST_NO_CXX11_NOEXCEPT) && !defined(BOOST_NO_NOEXCEPT)
-#  define BOOST_NO_NOEXCEPT
+//  Use     NDNBOOST_NO_CXX11_NOEXCEPT instead of   NDNBOOST_NO_NOEXCEPT
+#if defined(NDNBOOST_NO_CXX11_NOEXCEPT) && !defined(NDNBOOST_NO_NOEXCEPT)
+#  define NDNBOOST_NO_NOEXCEPT
 #endif
-//  Use     BOOST_NO_CXX11_NULLPTR instead of   BOOST_NO_NULLPTR
-#if defined(BOOST_NO_CXX11_NULLPTR) && !defined(BOOST_NO_NULLPTR)
-#  define BOOST_NO_NULLPTR
+//  Use     NDNBOOST_NO_CXX11_NULLPTR instead of   NDNBOOST_NO_NULLPTR
+#if defined(NDNBOOST_NO_CXX11_NULLPTR) && !defined(NDNBOOST_NO_NULLPTR)
+#  define NDNBOOST_NO_NULLPTR
 #endif
-//  Use     BOOST_NO_CXX11_RAW_LITERALS instead of   BOOST_NO_RAW_LITERALS
-#if defined(BOOST_NO_CXX11_RAW_LITERALS) && !defined(BOOST_NO_RAW_LITERALS)
-#  define BOOST_NO_RAW_LITERALS
+//  Use     NDNBOOST_NO_CXX11_RAW_LITERALS instead of   NDNBOOST_NO_RAW_LITERALS
+#if defined(NDNBOOST_NO_CXX11_RAW_LITERALS) && !defined(NDNBOOST_NO_RAW_LITERALS)
+#  define NDNBOOST_NO_RAW_LITERALS
 #endif
-//  Use     BOOST_NO_CXX11_RVALUE_REFERENCES instead of   BOOST_NO_RVALUE_REFERENCES
-#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_NO_RVALUE_REFERENCES)
-#  define BOOST_NO_RVALUE_REFERENCES
+//  Use     NDNBOOST_NO_CXX11_RVALUE_REFERENCES instead of   NDNBOOST_NO_RVALUE_REFERENCES
+#if defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(NDNBOOST_NO_RVALUE_REFERENCES)
+#  define NDNBOOST_NO_RVALUE_REFERENCES
 #endif
-//  Use     BOOST_NO_CXX11_SCOPED_ENUMS instead of   BOOST_NO_SCOPED_ENUMS
-#if defined(BOOST_NO_CXX11_SCOPED_ENUMS) && !defined(BOOST_NO_SCOPED_ENUMS)
-#  define BOOST_NO_SCOPED_ENUMS
+//  Use     NDNBOOST_NO_CXX11_SCOPED_ENUMS instead of   NDNBOOST_NO_SCOPED_ENUMS
+#if defined(NDNBOOST_NO_CXX11_SCOPED_ENUMS) && !defined(NDNBOOST_NO_SCOPED_ENUMS)
+#  define NDNBOOST_NO_SCOPED_ENUMS
 #endif
-//  Use     BOOST_NO_CXX11_STATIC_ASSERT instead of   BOOST_NO_STATIC_ASSERT
-#if defined(BOOST_NO_CXX11_STATIC_ASSERT) && !defined(BOOST_NO_STATIC_ASSERT)
-#  define BOOST_NO_STATIC_ASSERT
+//  Use     NDNBOOST_NO_CXX11_STATIC_ASSERT instead of   NDNBOOST_NO_STATIC_ASSERT
+#if defined(NDNBOOST_NO_CXX11_STATIC_ASSERT) && !defined(NDNBOOST_NO_STATIC_ASSERT)
+#  define NDNBOOST_NO_STATIC_ASSERT
 #endif
-//  Use     BOOST_NO_CXX11_STD_UNORDERED instead of   BOOST_NO_STD_UNORDERED
-#if defined(BOOST_NO_CXX11_STD_UNORDERED) && !defined(BOOST_NO_STD_UNORDERED)
-#  define BOOST_NO_STD_UNORDERED
+//  Use     NDNBOOST_NO_CXX11_STD_UNORDERED instead of   NDNBOOST_NO_STD_UNORDERED
+#if defined(NDNBOOST_NO_CXX11_STD_UNORDERED) && !defined(NDNBOOST_NO_STD_UNORDERED)
+#  define NDNBOOST_NO_STD_UNORDERED
 #endif
-//  Use     BOOST_NO_CXX11_UNICODE_LITERALS instead of   BOOST_NO_UNICODE_LITERALS
-#if defined(BOOST_NO_CXX11_UNICODE_LITERALS) && !defined(BOOST_NO_UNICODE_LITERALS)
-#  define BOOST_NO_UNICODE_LITERALS
+//  Use     NDNBOOST_NO_CXX11_UNICODE_LITERALS instead of   NDNBOOST_NO_UNICODE_LITERALS
+#if defined(NDNBOOST_NO_CXX11_UNICODE_LITERALS) && !defined(NDNBOOST_NO_UNICODE_LITERALS)
+#  define NDNBOOST_NO_UNICODE_LITERALS
 #endif
-//  Use     BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX instead of   BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
-#if defined(BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX) && !defined(BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX)
-#  define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
+//  Use     NDNBOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX instead of   NDNBOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
+#if defined(NDNBOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX) && !defined(NDNBOOST_NO_UNIFIED_INITIALIZATION_SYNTAX)
+#  define NDNBOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
 #endif
-//  Use     BOOST_NO_CXX11_VARIADIC_TEMPLATES instead of   BOOST_NO_VARIADIC_TEMPLATES
-#if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_NO_VARIADIC_TEMPLATES)
-#  define BOOST_NO_VARIADIC_TEMPLATES
+//  Use     NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES instead of   NDNBOOST_NO_VARIADIC_TEMPLATES
+#if defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(NDNBOOST_NO_VARIADIC_TEMPLATES)
+#  define NDNBOOST_NO_VARIADIC_TEMPLATES
 #endif
-//  Use     BOOST_NO_CXX11_VARIADIC_MACROS instead of   BOOST_NO_VARIADIC_MACROS
-#if defined(BOOST_NO_CXX11_VARIADIC_MACROS) && !defined(BOOST_NO_VARIADIC_MACROS)
-#  define BOOST_NO_VARIADIC_MACROS
+//  Use     NDNBOOST_NO_CXX11_VARIADIC_MACROS instead of   NDNBOOST_NO_VARIADIC_MACROS
+#if defined(NDNBOOST_NO_CXX11_VARIADIC_MACROS) && !defined(NDNBOOST_NO_VARIADIC_MACROS)
+#  define NDNBOOST_NO_VARIADIC_MACROS
 #endif
-//  Use     BOOST_NO_CXX11_NUMERIC_LIMITS instead of   BOOST_NO_NUMERIC_LIMITS_LOWEST
-#if defined(BOOST_NO_CXX11_NUMERIC_LIMITS) && !defined(BOOST_NO_NUMERIC_LIMITS_LOWEST)
-#  define BOOST_NO_NUMERIC_LIMITS_LOWEST
+//  Use     NDNBOOST_NO_CXX11_NUMERIC_LIMITS instead of   NDNBOOST_NO_NUMERIC_LIMITS_LOWEST
+#if defined(NDNBOOST_NO_CXX11_NUMERIC_LIMITS) && !defined(NDNBOOST_NO_NUMERIC_LIMITS_LOWEST)
+#  define NDNBOOST_NO_NUMERIC_LIMITS_LOWEST
 #endif
 //  ------------------ End of deprecated macros for 1.51 ---------------------------
 
 
 
 //
-// Helper macros BOOST_NOEXCEPT, BOOST_NOEXCEPT_IF, BOOST_NOEXCEPT_EXPR
+// Helper macros NDNBOOST_NOEXCEPT, NDNBOOST_NOEXCEPT_IF, NDNBOOST_NOEXCEPT_EXPR
 // These aid the transition to C++11 while still supporting C++03 compilers
 //
-#ifdef BOOST_NO_CXX11_NOEXCEPT
-#  define BOOST_NOEXCEPT
-#  define BOOST_NOEXCEPT_OR_NOTHROW throw()
-#  define BOOST_NOEXCEPT_IF(Predicate)
-#  define BOOST_NOEXCEPT_EXPR(Expression) false
+#ifdef NDNBOOST_NO_CXX11_NOEXCEPT
+#  define NDNBOOST_NOEXCEPT
+#  define NDNBOOST_NOEXCEPT_OR_NOTHROW throw()
+#  define NDNBOOST_NOEXCEPT_IF(Predicate)
+#  define NDNBOOST_NOEXCEPT_EXPR(Expression) false
 #else
-#  define BOOST_NOEXCEPT noexcept
-#  define BOOST_NOEXCEPT_OR_NOTHROW noexcept
-#  define BOOST_NOEXCEPT_IF(Predicate) noexcept((Predicate))
-#  define BOOST_NOEXCEPT_EXPR(Expression) noexcept((Expression))
+#  define NDNBOOST_NOEXCEPT noexcept
+#  define NDNBOOST_NOEXCEPT_OR_NOTHROW noexcept
+#  define NDNBOOST_NOEXCEPT_IF(Predicate) noexcept((Predicate))
+#  define NDNBOOST_NOEXCEPT_EXPR(Expression) noexcept((Expression))
 #endif
 //
-// Helper macro BOOST_FALLTHROUGH 
-// Fallback definition of BOOST_FALLTHROUGH macro used to mark intended 
+// Helper macro NDNBOOST_FALLTHROUGH 
+// Fallback definition of NDNBOOST_FALLTHROUGH macro used to mark intended 
 // fall-through between case labels in a switch statement. We use a definition 
 // that requires a semicolon after it to avoid at least one type of misuse even 
 // on unsupported compilers. 
 // 
-#ifndef BOOST_FALLTHROUGH 
-#  define BOOST_FALLTHROUGH ((void)0) 
+#ifndef NDNBOOST_FALLTHROUGH 
+#  define NDNBOOST_FALLTHROUGH ((void)0) 
 #endif 
 
 //
 // constexpr workarounds
 // 
-#if defined(BOOST_NO_CXX11_CONSTEXPR)
-#define BOOST_CONSTEXPR
-#define BOOST_CONSTEXPR_OR_CONST const
+#if defined(NDNBOOST_NO_CXX11_CONSTEXPR)
+#define NDNBOOST_CONSTEXPR
+#define NDNBOOST_CONSTEXPR_OR_CONST const
 #else
-#define BOOST_CONSTEXPR constexpr
-#define BOOST_CONSTEXPR_OR_CONST constexpr
+#define NDNBOOST_CONSTEXPR constexpr
+#define NDNBOOST_CONSTEXPR_OR_CONST constexpr
 #endif
 
-#define BOOST_STATIC_CONSTEXPR  static BOOST_CONSTEXPR_OR_CONST
+#define NDNBOOST_STATIC_CONSTEXPR  static NDNBOOST_CONSTEXPR_OR_CONST
 
 //
-// Set BOOST_HAS_STATIC_ASSERT when BOOST_NO_CXX11_STATIC_ASSERT is not defined
+// Set NDNBOOST_HAS_STATIC_ASSERT when NDNBOOST_NO_CXX11_STATIC_ASSERT is not defined
 //
-#if !defined(BOOST_NO_CXX11_STATIC_ASSERT) && !defined(BOOST_HAS_STATIC_ASSERT)
-#  define BOOST_HAS_STATIC_ASSERT
+#if !defined(NDNBOOST_NO_CXX11_STATIC_ASSERT) && !defined(NDNBOOST_HAS_STATIC_ASSERT)
+#  define NDNBOOST_HAS_STATIC_ASSERT
 #endif
 
 //
-// Set BOOST_HAS_RVALUE_REFS when BOOST_NO_CXX11_RVALUE_REFERENCES is not defined
+// Set NDNBOOST_HAS_RVALUE_REFS when NDNBOOST_NO_CXX11_RVALUE_REFERENCES is not defined
 //
-#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_HAS_RVALUE_REFS)
-#define BOOST_HAS_RVALUE_REFS
+#if !defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(NDNBOOST_HAS_RVALUE_REFS)
+#define NDNBOOST_HAS_RVALUE_REFS
 #endif
 
 //
-// Set BOOST_HAS_VARIADIC_TMPL when BOOST_NO_CXX11_VARIADIC_TEMPLATES is not defined
+// Set NDNBOOST_HAS_VARIADIC_TMPL when NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES is not defined
 //
-#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_HAS_VARIADIC_TMPL)
-#define BOOST_HAS_VARIADIC_TMPL
+#if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(NDNBOOST_HAS_VARIADIC_TMPL)
+#define NDNBOOST_HAS_VARIADIC_TMPL
 #endif
 
 
diff --git a/include/ndnboost/config/user.hpp b/include/ndnboost/config/user.hpp
index 2a5c15c..ce06075 100644
--- a/include/ndnboost/config/user.hpp
+++ b/include/ndnboost/config/user.hpp
@@ -14,32 +14,32 @@
 //
 
 // define this to locate a compiler config file:
-// #define BOOST_COMPILER_CONFIG <myheader>
+// #define NDNBOOST_COMPILER_CONFIG <myheader>
 
 // define this to locate a stdlib config file:
-// #define BOOST_STDLIB_CONFIG   <myheader>
+// #define NDNBOOST_STDLIB_CONFIG   <myheader>
 
 // define this to locate a platform config file:
-// #define BOOST_PLATFORM_CONFIG <myheader>
+// #define NDNBOOST_PLATFORM_CONFIG <myheader>
 
 // define this to disable compiler config,
 // use if your compiler config has nothing to set:
-// #define BOOST_NO_COMPILER_CONFIG
+// #define NDNBOOST_NO_COMPILER_CONFIG
 
 // define this to disable stdlib config,
 // use if your stdlib config has nothing to set:
-// #define BOOST_NO_STDLIB_CONFIG
+// #define NDNBOOST_NO_STDLIB_CONFIG
 
 // define this to disable platform config,
 // use if your platform config has nothing to set:
-// #define BOOST_NO_PLATFORM_CONFIG
+// #define NDNBOOST_NO_PLATFORM_CONFIG
 
 // define this to disable all config options,
 // excluding the user config.  Use if your
 // setup is fully ISO compliant, and has no
 // useful extensions, or for autoconf generated
 // setups:
-// #define BOOST_NO_CONFIG
+// #define NDNBOOST_NO_CONFIG
 
 // define this to make the config "optimistic"
 // about unknown compiler versions.  Normally
@@ -48,39 +48,39 @@
 // setting this flag, causes the config to assume
 // that unknown compiler versions are fully conformant
 // with the standard:
-// #define BOOST_STRICT_CONFIG
+// #define NDNBOOST_STRICT_CONFIG
 
 // define this to cause the config to halt compilation
 // with an #error if it encounters anything unknown --
 // either an unknown compiler version or an unknown
 // compiler/platform/library:
-// #define BOOST_ASSERT_CONFIG
+// #define NDNBOOST_ASSERT_CONFIG
 
 
 // define if you want to disable threading support, even
 // when available:
-// #define BOOST_DISABLE_THREADS
+// #define NDNBOOST_DISABLE_THREADS
 
 // define when you want to disable Win32 specific features
 // even when available:
-// #define BOOST_DISABLE_WIN32
+// #define NDNBOOST_DISABLE_WIN32
 
-// BOOST_DISABLE_ABI_HEADERS: Stops boost headers from including any 
+// NDNBOOST_DISABLE_ABI_HEADERS: Stops boost headers from including any 
 // prefix/suffix headers that normally control things like struct 
 // packing and alignment. 
-// #define BOOST_DISABLE_ABI_HEADERS
+// #define NDNBOOST_DISABLE_ABI_HEADERS
 
-// BOOST_ABI_PREFIX: A prefix header to include in place of whatever
+// NDNBOOST_ABI_PREFIX: A prefix header to include in place of whatever
 // boost.config would normally select, any replacement should set up 
 // struct packing and alignment options as required. 
-// #define BOOST_ABI_PREFIX my-header-name
+// #define NDNBOOST_ABI_PREFIX my-header-name
 
-// BOOST_ABI_SUFFIX: A suffix header to include in place of whatever 
+// NDNBOOST_ABI_SUFFIX: A suffix header to include in place of whatever 
 // boost.config would normally select, any replacement should undo 
 // the effects of the prefix header. 
-// #define BOOST_ABI_SUFFIX my-header-name
+// #define NDNBOOST_ABI_SUFFIX my-header-name
 
-// BOOST_ALL_DYN_LINK: Forces all libraries that have separate source, 
+// NDNBOOST_ALL_DYN_LINK: Forces all libraries that have separate source, 
 // to be linked as dll's rather than static libraries on Microsoft Windows 
 // (this macro is used to turn on __declspec(dllimport) modifiers, so that 
 // the compiler knows which symbols to look for in a dll rather than in a 
@@ -88,37 +88,37 @@
 // be statically linked (Boost.Test for example) and others which may only 
 // be dynamically linked (Boost.Threads for example), in these cases this 
 // macro has no effect.
-// #define BOOST_ALL_DYN_LINK
+// #define NDNBOOST_ALL_DYN_LINK
  
-// BOOST_WHATEVER_DYN_LINK: Forces library "whatever" to be linked as a dll 
+// NDNBOOST_WHATEVER_DYN_LINK: Forces library "whatever" to be linked as a dll 
 // rather than a static library on Microsoft Windows: replace the WHATEVER 
 // part of the macro name with the name of the library that you want to 
-// dynamically link to, for example use BOOST_DATE_TIME_DYN_LINK or 
-// BOOST_REGEX_DYN_LINK etc (this macro is used to turn on __declspec(dllimport) 
+// dynamically link to, for example use NDNBOOST_DATE_TIME_DYN_LINK or 
+// NDNBOOST_REGEX_DYN_LINK etc (this macro is used to turn on __declspec(dllimport) 
 // modifiers, so that the compiler knows which symbols to look for in a dll 
 // rather than in a static library).  
 // Note that there may be some libraries that can only be statically linked 
 // (Boost.Test for example) and others which may only be dynamically linked 
 // (Boost.Threads for example), in these cases this macro is unsupported.
-// #define BOOST_WHATEVER_DYN_LINK
+// #define NDNBOOST_WHATEVER_DYN_LINK
  
-// BOOST_ALL_NO_LIB: Tells the config system not to automatically select 
+// NDNBOOST_ALL_NO_LIB: Tells the config system not to automatically select 
 // which libraries to link against.  
 // Normally if a compiler supports #pragma lib, then the correct library 
 // build variant will be automatically selected and linked against, 
 // simply by the act of including one of that library's headers.  
 // This macro turns that feature off.
-// #define BOOST_ALL_NO_LIB
+// #define NDNBOOST_ALL_NO_LIB
  
-// BOOST_WHATEVER_NO_LIB: Tells the config system not to automatically 
+// NDNBOOST_WHATEVER_NO_LIB: Tells the config system not to automatically 
 // select which library to link against for library "whatever", 
 // replace WHATEVER in the macro name with the name of the library; 
-// for example BOOST_DATE_TIME_NO_LIB or BOOST_REGEX_NO_LIB.  
+// for example NDNBOOST_DATE_TIME_NO_LIB or NDNBOOST_REGEX_NO_LIB.  
 // Normally if a compiler supports #pragma lib, then the correct library 
 // build variant will be automatically selected and linked against, simply 
 // by the act of including one of that library's headers.  This macro turns 
 // that feature off.
-// #define BOOST_WHATEVER_NO_LIB
+// #define NDNBOOST_WHATEVER_NO_LIB
  
 
 
diff --git a/include/ndnboost/config/warning_disable.hpp b/include/ndnboost/config/warning_disable.hpp
index fea8e82..ef37a0a 100644
--- a/include/ndnboost/config/warning_disable.hpp
+++ b/include/ndnboost/config/warning_disable.hpp
@@ -27,8 +27,8 @@
 //  before or by this one :-(
 //
 
-#ifndef BOOST_CONFIG_WARNING_DISABLE_HPP
-#define BOOST_CONFIG_WARNING_DISABLE_HPP
+#ifndef NDNBOOST_CONFIG_WARNING_DISABLE_HPP
+#define NDNBOOST_CONFIG_WARNING_DISABLE_HPP
 
 #if defined(_MSC_VER) && (_MSC_VER >= 1400) 
    // Error 'function': was declared deprecated
@@ -44,4 +44,4 @@
 #  pragma warning(disable:1786)
 #endif
 
-#endif // BOOST_CONFIG_WARNING_DISABLE_HPP
+#endif // NDNBOOST_CONFIG_WARNING_DISABLE_HPP
diff --git a/include/ndnboost/container/container_fwd.hpp b/include/ndnboost/container/container_fwd.hpp
index 7dda7bd..824b465 100644
--- a/include/ndnboost/container/container_fwd.hpp
+++ b/include/ndnboost/container/container_fwd.hpp
@@ -8,8 +8,8 @@
 //
 //////////////////////////////////////////////////////////////////////////////
 
-#ifndef BOOST_CONTAINER_CONTAINER_FWD_HPP
-#define BOOST_CONTAINER_CONTAINER_FWD_HPP
+#ifndef NDNBOOST_CONTAINER_CONTAINER_FWD_HPP
+#define NDNBOOST_CONTAINER_CONTAINER_FWD_HPP
 
 #if (defined _MSC_VER) && (_MSC_VER >= 1200)
 #  pragma once
@@ -170,4 +170,4 @@
 
 }}  //namespace ndnboost { namespace container {
 
-#endif //#ifndef BOOST_CONTAINER_CONTAINER_FWD_HPP
+#endif //#ifndef NDNBOOST_CONTAINER_CONTAINER_FWD_HPP
diff --git a/include/ndnboost/cstdint.hpp b/include/ndnboost/cstdint.hpp
index 22cc447..8abc944 100644
--- a/include/ndnboost/cstdint.hpp
+++ b/include/ndnboost/cstdint.hpp
@@ -10,7 +10,7 @@
 //  See http://www.boost.org/libs/integer for documentation.
 
 //  Revision History
-//   31 Oct 01  use BOOST_HAS_LONG_LONG to check for "long long" (Jens M.)
+//   31 Oct 01  use NDNBOOST_HAS_LONG_LONG to check for "long long" (Jens M.)
 //   16 Apr 01  check LONGLONG_MAX when looking for "long long" (Jens Maurer)
 //   23 Jan 01  prefer "long" over "int" for int32_t and intmax_t (Jens Maurer)
 //   12 Nov 00  Merged <ndnboost/stdint.h> (Jens Maurer)
@@ -20,8 +20,8 @@
 //    8 Aug 99  Initial version (Beman Dawes)
 
 
-#ifndef BOOST_CSTDINT_HPP
-#define BOOST_CSTDINT_HPP
+#ifndef NDNBOOST_CSTDINT_HPP
+#define NDNBOOST_CSTDINT_HPP
 
 //
 // Since we always define the INT#_C macros as per C++0x, 
@@ -41,7 +41,7 @@
 // so we disable use of stdint.h when GLIBC does not define __GLIBC_HAVE_LONG_LONG.
 // See https://svn.boost.org/trac/boost/ticket/3548 and http://sources.redhat.com/bugzilla/show_bug.cgi?id=10990
 //
-#if defined(BOOST_HAS_STDINT_H) && (!defined(__GLIBC__) || defined(__GLIBC_HAVE_LONG_LONG))
+#if defined(NDNBOOST_HAS_STDINT_H) && (!defined(__GLIBC__) || defined(__GLIBC_HAVE_LONG_LONG))
 
 // The following #include is an implementation artifact; not part of interface.
 # ifdef __hpux
@@ -49,7 +49,7 @@
 #   include <inttypes.h>
 #   ifdef __STDC_32_MODE__
       // this is triggered with GCC, because it defines __cplusplus < 199707L
-#     define BOOST_NO_INT64_T
+#     define NDNBOOST_NO_INT64_T
 #   endif 
 # elif defined(__FreeBSD__) || defined(__IBMCPP__) || defined(_AIX)
 #   include <inttypes.h>
@@ -86,7 +86,7 @@
 typedef ::uintleast32_t uint_least32_t;
 typedef ::uintfast32_t uint_fast32_t;
 
-# ifndef BOOST_NO_INT64_T
+# ifndef NDNBOOST_NO_INT64_T
 
 typedef ::intleast64_t int_least64_t;
 typedef ::intfast64_t int_fast64_t;
@@ -121,7 +121,7 @@
   using ::uint_least32_t;     
   using ::uint_fast32_t;      
                      
-# ifndef BOOST_NO_INT64_T
+# ifndef NDNBOOST_NO_INT64_T
 
   using ::int64_t;            
   using ::int_least64_t;      
@@ -164,7 +164,7 @@
   typedef uint32_t uint_least32_t;     
   typedef uint32_t uint_fast32_t;      
          
-# ifndef BOOST_NO_INT64_T          
+# ifndef NDNBOOST_NO_INT64_T          
 
   using ::int64_t;            
   typedef int64_t int_least64_t;      
@@ -185,7 +185,7 @@
 
 } // namespace ndnboost
 
-#else  // BOOST_HAS_STDINT_H
+#else  // NDNBOOST_HAS_STDINT_H
 
 # include <ndnboost/limits.hpp> // implementation artifact; not part of interface
 # include <limits.h>         // needed for limits macros
@@ -291,8 +291,8 @@
 
 //  64-bit types + intmax_t and uintmax_t  ----------------------------------//
 
-# if defined(BOOST_HAS_LONG_LONG) && \
-   !defined(BOOST_MSVC) && !defined(__BORLANDC__) && \
+# if defined(NDNBOOST_HAS_LONG_LONG) && \
+   !defined(NDNBOOST_MSVC) && !defined(__BORLANDC__) && \
    (!defined(__GLIBCPP__) || defined(_GLIBCPP_USE_LONG_LONG)) && \
    (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX))
 #    if defined(__hpux)
@@ -326,7 +326,7 @@
 #    else
 #       error defaults not correct; you must hand modify ndnboost/cstdint.hpp
 #    endif
-# elif defined(__GNUC__) && defined(BOOST_HAS_LONG_LONG)
+# elif defined(__GNUC__) && defined(NDNBOOST_HAS_LONG_LONG)
      __extension__ typedef long long            intmax_t;
      __extension__ typedef unsigned long long   uintmax_t;
      __extension__ typedef long long            int64_t;
@@ -335,7 +335,7 @@
      __extension__ typedef unsigned long long   uint64_t;
      __extension__ typedef unsigned long long   uint_least64_t;
      __extension__ typedef unsigned long long   uint_fast64_t;
-# elif defined(BOOST_HAS_MS_INT64)
+# elif defined(NDNBOOST_HAS_MS_INT64)
      //
      // we have Borland/Intel/Microsoft __int64:
      //
@@ -348,7 +348,7 @@
      typedef unsigned __int64    uint_least64_t;
      typedef unsigned __int64    uint_fast64_t;
 # else // assume no 64-bit integers
-#  define BOOST_NO_INT64_T
+#  define NDNBOOST_NO_INT64_T
      typedef int32_t              intmax_t;
      typedef uint32_t             uintmax_t;
 # endif
@@ -356,9 +356,9 @@
 } // namespace ndnboost
 
 
-#endif // BOOST_HAS_STDINT_H
+#endif // NDNBOOST_HAS_STDINT_H
 
-#endif // BOOST_CSTDINT_HPP
+#endif // NDNBOOST_CSTDINT_HPP
 
 
 /****************************************************
@@ -367,13 +367,13 @@
 
 Added 23rd September 2000 (John Maddock).
 Modified 11th September 2001 to be excluded when
-BOOST_HAS_STDINT_H is defined (John Maddock).
+NDNBOOST_HAS_STDINT_H is defined (John Maddock).
 Modified 11th Dec 2009 to always define the
 INT#_C macros if they're not already defined (John Maddock).
 
 ******************************************************/
 
-#if !defined(BOOST__STDC_CONSTANT_MACROS_DEFINED) && \
+#if !defined(NDNBOOST__STDC_CONSTANT_MACROS_DEFINED) && \
    (!defined(INT8_C) || !defined(INT16_C) || !defined(INT32_C) || !defined(INT64_C))
 //
 // For the following code we get several warnings along the lines of: 
@@ -387,8 +387,8 @@
 #endif 
 
 #include <limits.h>
-# define BOOST__STDC_CONSTANT_MACROS_DEFINED
-# if defined(BOOST_HAS_MS_INT64)
+# define NDNBOOST__STDC_CONSTANT_MACROS_DEFINED
+# if defined(NDNBOOST_HAS_MS_INT64)
 //
 // Borland/Intel/Microsoft compilers have width specific suffixes:
 //
@@ -454,7 +454,7 @@
 
 //  64-bit types + intmax_t and uintmax_t  ----------------------------------//
 #ifndef INT64_C
-#  if defined(BOOST_HAS_LONG_LONG) && \
+#  if defined(NDNBOOST_HAS_LONG_LONG) && \
     (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX) || defined(_LLONG_MAX))
 
 #    if defined(__hpux)
@@ -479,7 +479,7 @@
 #    else
 #       error defaults not correct; you must hand modify ndnboost/cstdint.hpp
 #    endif
-#  elif defined(BOOST_HAS_LONG_LONG)
+#  elif defined(NDNBOOST_HAS_LONG_LONG)
      // Usual macros not defined, work things out for ourselves:
 #    if(~0uLL == 18446744073709551615ULL)
 #       define INT64_C(value) value##LL
@@ -491,7 +491,7 @@
 #    error defaults not correct; you must hand modify ndnboost/cstdint.hpp
 #  endif
 
-#  ifdef BOOST_NO_INT64_T
+#  ifdef NDNBOOST_NO_INT64_T
 #   define INTMAX_C(value) INT32_C(value)
 #   define UINTMAX_C(value) UINT32_C(value)
 #  else
diff --git a/include/ndnboost/cstdlib.hpp b/include/ndnboost/cstdlib.hpp
index f57725f..c3d124c 100644
--- a/include/ndnboost/cstdlib.hpp
+++ b/include/ndnboost/cstdlib.hpp
@@ -9,8 +9,8 @@
 //  Revision History
 //   26 Feb 01  Initial version (Beman Dawes)
 
-#ifndef BOOST_CSTDLIB_HPP
-#define BOOST_CSTDLIB_HPP
+#ifndef NDNBOOST_CSTDLIB_HPP
+#define NDNBOOST_CSTDLIB_HPP
 
 #include <cstdlib>
 
diff --git a/include/ndnboost/current_function.hpp b/include/ndnboost/current_function.hpp
index cd7f516..111f9fa 100644
--- a/include/ndnboost/current_function.hpp
+++ b/include/ndnboost/current_function.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_CURRENT_FUNCTION_HPP_INCLUDED
-#define BOOST_CURRENT_FUNCTION_HPP_INCLUDED
+#ifndef NDNBOOST_CURRENT_FUNCTION_HPP_INCLUDED
+#define NDNBOOST_CURRENT_FUNCTION_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -8,7 +8,7 @@
 #endif
 
 //
-//  ndnboost/current_function.hpp - BOOST_CURRENT_FUNCTION
+//  ndnboost/current_function.hpp - NDNBOOST_CURRENT_FUNCTION
 //
 //  Copyright (c) 2002 Peter Dimov and Multi Media Ltd.
 //
@@ -30,31 +30,31 @@
 
 #if defined(__GNUC__) || (defined(__MWERKS__) && (__MWERKS__ >= 0x3000)) || (defined(__ICC) && (__ICC >= 600)) || defined(__ghs__)
 
-# define BOOST_CURRENT_FUNCTION __PRETTY_FUNCTION__
+# define NDNBOOST_CURRENT_FUNCTION __PRETTY_FUNCTION__
 
 #elif defined(__DMC__) && (__DMC__ >= 0x810)
 
-# define BOOST_CURRENT_FUNCTION __PRETTY_FUNCTION__
+# define NDNBOOST_CURRENT_FUNCTION __PRETTY_FUNCTION__
 
 #elif defined(__FUNCSIG__)
 
-# define BOOST_CURRENT_FUNCTION __FUNCSIG__
+# define NDNBOOST_CURRENT_FUNCTION __FUNCSIG__
 
 #elif (defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 600)) || (defined(__IBMCPP__) && (__IBMCPP__ >= 500))
 
-# define BOOST_CURRENT_FUNCTION __FUNCTION__
+# define NDNBOOST_CURRENT_FUNCTION __FUNCTION__
 
 #elif defined(__BORLANDC__) && (__BORLANDC__ >= 0x550)
 
-# define BOOST_CURRENT_FUNCTION __FUNC__
+# define NDNBOOST_CURRENT_FUNCTION __FUNC__
 
 #elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901)
 
-# define BOOST_CURRENT_FUNCTION __func__
+# define NDNBOOST_CURRENT_FUNCTION __func__
 
 #else
 
-# define BOOST_CURRENT_FUNCTION "(unknown)"
+# define NDNBOOST_CURRENT_FUNCTION "(unknown)"
 
 #endif
 
@@ -64,5 +64,5 @@
 
 } // namespace ndnboost
 
-#endif // #ifndef BOOST_CURRENT_FUNCTION_HPP_INCLUDED
+#endif // #ifndef NDNBOOST_CURRENT_FUNCTION_HPP_INCLUDED
 
diff --git a/include/ndnboost/detail/call_traits.hpp b/include/ndnboost/detail/call_traits.hpp
index 0a2cdb2..410f4ae 100644
--- a/include/ndnboost/detail/call_traits.hpp
+++ b/include/ndnboost/detail/call_traits.hpp
@@ -15,10 +15,10 @@
       (issue raised by Steve Cleary).
 */
 
-#ifndef BOOST_DETAIL_CALL_TRAITS_HPP
-#define BOOST_DETAIL_CALL_TRAITS_HPP
+#ifndef NDNBOOST_DETAIL_CALL_TRAITS_HPP
+#define NDNBOOST_DETAIL_CALL_TRAITS_HPP
 
-#ifndef BOOST_CONFIG_HPP
+#ifndef NDNBOOST_CONFIG_HPP
 #include <ndnboost/config.hpp>
 #endif
 #include <cstddef>
@@ -100,7 +100,7 @@
    typedef T& param_type;  // hh removed const
 };
 
-#if BOOST_WORKAROUND( __BORLANDC__,  < 0x5A0 )
+#if NDNBOOST_WORKAROUND( __BORLANDC__,  < 0x5A0 )
 // these are illegal specialisations; cv-qualifies applied to
 // references have no effect according to [8.3.2p1],
 // C++ Builder requires them though as it treats cv-qualified
@@ -139,7 +139,7 @@
    typedef T * const param_type;  // hh removed const
 };
 #endif
-#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
+#if !defined(NDNBOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
 template <typename T, std::size_t N>
 struct call_traits<T [N]>
 {
@@ -169,4 +169,4 @@
 
 }
 
-#endif // BOOST_DETAIL_CALL_TRAITS_HPP
+#endif // NDNBOOST_DETAIL_CALL_TRAITS_HPP
diff --git a/include/ndnboost/detail/container_fwd.hpp b/include/ndnboost/detail/container_fwd.hpp
index 0254e7b..7081f07 100644
--- a/include/ndnboost/detail/container_fwd.hpp
+++ b/include/ndnboost/detail/container_fwd.hpp
@@ -5,11 +5,11 @@
 
 // Note: if you change this include guard, you also need to change
 // container_fwd_compile_fail.cpp
-#if !defined(BOOST_DETAIL_CONTAINER_FWD_HPP)
-#define BOOST_DETAIL_CONTAINER_FWD_HPP
+#if !defined(NDNBOOST_DETAIL_CONTAINER_FWD_HPP)
+#define NDNBOOST_DETAIL_CONTAINER_FWD_HPP
 
 #if defined(_MSC_VER) && (_MSC_VER >= 1020) && \
-    !defined(BOOST_DETAIL_TEST_CONFIG_ONLY)
+    !defined(NDNBOOST_DETAIL_TEST_CONFIG_ONLY)
 # pragma once
 #endif
 
@@ -18,31 +18,31 @@
 
 ////////////////////////////////////////////////////////////////////////////////
 //                                                                            //
-// Define BOOST_DETAIL_NO_CONTAINER_FWD if you don't want this header to      //
+// Define NDNBOOST_DETAIL_NO_CONTAINER_FWD if you don't want this header to      //
 // forward declare standard containers.                                       //
 //                                                                            //
-// BOOST_DETAIL_CONTAINER_FWD to make it foward declare containers even if it //
+// NDNBOOST_DETAIL_CONTAINER_FWD to make it foward declare containers even if it //
 // normally doesn't.                                                          //
 //                                                                            //
-// BOOST_DETAIL_NO_CONTAINER_FWD overrides BOOST_DETAIL_CONTAINER_FWD.        //
+// NDNBOOST_DETAIL_NO_CONTAINER_FWD overrides NDNBOOST_DETAIL_CONTAINER_FWD.        //
 //                                                                            //
 ////////////////////////////////////////////////////////////////////////////////
 
-#if !defined(BOOST_DETAIL_NO_CONTAINER_FWD)
-#  if defined(BOOST_DETAIL_CONTAINER_FWD)
+#if !defined(NDNBOOST_DETAIL_NO_CONTAINER_FWD)
+#  if defined(NDNBOOST_DETAIL_CONTAINER_FWD)
      // Force forward declarations.
 #  elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
      // STLport
-#    define BOOST_DETAIL_NO_CONTAINER_FWD
+#    define NDNBOOST_DETAIL_NO_CONTAINER_FWD
 #  elif defined(__LIBCOMO__)
      // Comeau STL:
-#    define BOOST_DETAIL_NO_CONTAINER_FWD
+#    define NDNBOOST_DETAIL_NO_CONTAINER_FWD
 #  elif defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER)
      // Rogue Wave library:
-#    define BOOST_DETAIL_NO_CONTAINER_FWD
+#    define NDNBOOST_DETAIL_NO_CONTAINER_FWD
 #  elif defined(_LIBCPP_VERSION)
      // libc++
-#    define BOOST_DETAIL_NO_CONTAINER_FWD
+#    define NDNBOOST_DETAIL_NO_CONTAINER_FWD
 #  elif defined(__GLIBCPP__) || defined(__GLIBCXX__)
      // GNU libstdc++ 3
      //
@@ -52,10 +52,10 @@
         || defined(_GLIBCXX_DEBUG) \
         || defined(_GLIBCXX_PARALLEL) \
         || defined(_GLIBCXX_PROFILE)
-#      define BOOST_DETAIL_NO_CONTAINER_FWD
+#      define NDNBOOST_DETAIL_NO_CONTAINER_FWD
 #    else
 #      if defined(__GLIBCXX__) && __GLIBCXX__ >= 20040530
-#        define BOOST_CONTAINER_FWD_COMPLEX_STRUCT
+#        define NDNBOOST_CONTAINER_FWD_COMPLEX_STRUCT
 #      endif
 #    endif
 #  elif defined(__STL_CONFIG_H)
@@ -63,30 +63,30 @@
      //
      // Forward declaration seems to be okay, but it has a couple of odd
      // implementations.
-#    define BOOST_CONTAINER_FWD_BAD_BITSET
+#    define NDNBOOST_CONTAINER_FWD_BAD_BITSET
 #    if !defined(__STL_NON_TYPE_TMPL_PARAM_BUG)
-#      define BOOST_CONTAINER_FWD_BAD_DEQUE
+#      define NDNBOOST_CONTAINER_FWD_BAD_DEQUE
 #     endif
 #  elif defined(__MSL_CPP__)
      // MSL standard lib:
-#    define BOOST_DETAIL_NO_CONTAINER_FWD
+#    define NDNBOOST_DETAIL_NO_CONTAINER_FWD
 #  elif defined(__IBMCPP__)
      // The default VACPP std lib, forward declaration seems to be fine.
 #  elif defined(MSIPL_COMPILE_H)
      // Modena C++ standard library
-#    define BOOST_DETAIL_NO_CONTAINER_FWD
+#    define NDNBOOST_DETAIL_NO_CONTAINER_FWD
 #  elif (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER)
      // Dinkumware Library (this has to appear after any possible replacement
      // libraries)
 #  else
-#    define BOOST_DETAIL_NO_CONTAINER_FWD
+#    define NDNBOOST_DETAIL_NO_CONTAINER_FWD
 #  endif
 #endif
 
-#if !defined(BOOST_DETAIL_TEST_CONFIG_ONLY)
+#if !defined(NDNBOOST_DETAIL_TEST_CONFIG_ONLY)
 
-#if defined(BOOST_DETAIL_NO_CONTAINER_FWD) && \
-    !defined(BOOST_DETAIL_TEST_FORCE_CONTAINER_FWD)
+#if defined(NDNBOOST_DETAIL_NO_CONTAINER_FWD) && \
+    !defined(NDNBOOST_DETAIL_TEST_FORCE_CONTAINER_FWD)
 
 #include <deque>
 #include <list>
@@ -101,15 +101,15 @@
 
 #include <cstddef>
 
-#if defined(BOOST_CONTAINER_FWD_BAD_DEQUE)
+#if defined(NDNBOOST_CONTAINER_FWD_BAD_DEQUE)
 #include <deque>
 #endif
 
-#if defined(BOOST_CONTAINER_FWD_BAD_BITSET)
+#if defined(NDNBOOST_CONTAINER_FWD_BAD_BITSET)
 #include <bitset>
 #endif
 
-#if defined(BOOST_MSVC)
+#if defined(NDNBOOST_MSVC)
 #pragma warning(push)
 #pragma warning(disable:4099) // struct/class mismatch in fwd declarations
 #endif
@@ -119,20 +119,20 @@
     template <class T> class allocator;
     template <class charT, class traits, class Allocator> class basic_string;
 
-#if BOOST_WORKAROUND(__GNUC__, < 3) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
+#if NDNBOOST_WORKAROUND(__GNUC__, < 3) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
 
     template <class charT> struct string_char_traits;
 #else
     template <class charT> struct char_traits;
 #endif
 
-#if defined(BOOST_CONTAINER_FWD_COMPLEX_STRUCT)
+#if defined(NDNBOOST_CONTAINER_FWD_COMPLEX_STRUCT)
     template <class T> struct complex;
 #else
     template <class T> class complex;
 #endif
 
-#if !defined(BOOST_CONTAINER_FWD_BAD_DEQUE)
+#if !defined(NDNBOOST_CONTAINER_FWD_BAD_DEQUE)
     template <class T, class Allocator> class deque;
 #endif
 
@@ -144,19 +144,19 @@
     template <class Key, class Compare, class Allocator> class set;
     template <class Key, class Compare, class Allocator> class multiset;
 
-#if !defined(BOOST_CONTAINER_FWD_BAD_BITSET)
+#if !defined(NDNBOOST_CONTAINER_FWD_BAD_BITSET)
     template <size_t N> class bitset;
 #endif
     template <class T1, class T2> struct pair;
 }
 
-#if defined(BOOST_MSVC)
+#if defined(NDNBOOST_MSVC)
 #pragma warning(pop)
 #endif
 
-#endif // BOOST_DETAIL_NO_CONTAINER_FWD &&
-       // !defined(BOOST_DETAIL_TEST_FORCE_CONTAINER_FWD)
+#endif // NDNBOOST_DETAIL_NO_CONTAINER_FWD &&
+       // !defined(NDNBOOST_DETAIL_TEST_FORCE_CONTAINER_FWD)
 
-#endif // BOOST_DETAIL_TEST_CONFIG_ONLY
+#endif // NDNBOOST_DETAIL_TEST_CONFIG_ONLY
 
 #endif
diff --git a/include/ndnboost/detail/endian.hpp b/include/ndnboost/detail/endian.hpp
index 1dcb237..c07bd00 100644
--- a/include/ndnboost/detail/endian.hpp
+++ b/include/ndnboost/detail/endian.hpp
@@ -22,11 +22,11 @@
  * which this code was originally taken.
  *
  * Modified by Caleb Epstein to use <endian.h> with GNU libc and to
- * defined the BOOST_ENDIAN macro.
+ * defined the NDNBOOST_ENDIAN macro.
  */
 
-#ifndef BOOST_DETAIL_ENDIAN_HPP
-#define BOOST_DETAIL_ENDIAN_HPP
+#ifndef NDNBOOST_DETAIL_ENDIAN_HPP
+#define NDNBOOST_DETAIL_ENDIAN_HPP
 
 //
 // Special cases come first:
@@ -36,15 +36,15 @@
 // __BYTE_ORDER
 # include <endian.h>
 # if (__BYTE_ORDER == __LITTLE_ENDIAN)
-#  define BOOST_LITTLE_ENDIAN
+#  define NDNBOOST_LITTLE_ENDIAN
 # elif (__BYTE_ORDER == __BIG_ENDIAN)
-#  define BOOST_BIG_ENDIAN
+#  define NDNBOOST_BIG_ENDIAN
 # elif (__BYTE_ORDER == __PDP_ENDIAN)
-#  define BOOST_PDP_ENDIAN
+#  define NDNBOOST_PDP_ENDIAN
 # else
 #  error Unknown machine endianness detected.
 # endif
-# define BOOST_BYTE_ORDER __BYTE_ORDER
+# define NDNBOOST_BYTE_ORDER __BYTE_ORDER
 
 #elif defined(__NetBSD__) || defined(__FreeBSD__) || \
     defined(__OpenBSD__) || (__DragonFly__)
@@ -56,15 +56,15 @@
 #  include <sys/endian.h>
 #  endif
 # if (_BYTE_ORDER == _LITTLE_ENDIAN)
-#  define BOOST_LITTLE_ENDIAN
+#  define NDNBOOST_LITTLE_ENDIAN
 # elif (_BYTE_ORDER == _BIG_ENDIAN)
-#  define BOOST_BIG_ENDIAN
+#  define NDNBOOST_BIG_ENDIAN
 # elif (_BYTE_ORDER == _PDP_ENDIAN)
-#  define BOOST_PDP_ENDIAN
+#  define NDNBOOST_PDP_ENDIAN
 # else
 #  error Unknown machine endianness detected.
 # endif
-# define BOOST_BYTE_ORDER _BYTE_ORDER
+# define NDNBOOST_BYTE_ORDER _BYTE_ORDER
 
 #elif defined( __ANDROID__ )
 // Adroid specific code, see: https://svn.boost.org/trac/boost/ticket/7528
@@ -72,39 +72,39 @@
 // http://stackoverflow.com/questions/6212951/endianness-of-android-ndk
 # include "machine/_types.h"
 # ifdef __ARMEB__
-#  define BOOST_BIG_ENDIAN
-#  define BOOST_BYTE_ORDER 4321
+#  define NDNBOOST_BIG_ENDIAN
+#  define NDNBOOST_BYTE_ORDER 4321
 # else
-#  define BOOST_LITTLE_ENDIAN
-#  define BOOST_BYTE_ORDER 1234
+#  define NDNBOOST_LITTLE_ENDIAN
+#  define NDNBOOST_BYTE_ORDER 1234
 # endif // __ARMEB__
 
 #elif defined( _XBOX )
 //
 // XBox is always big endian??
 //
-# define BOOST_BIG_ENDIAN
-# define BOOST_BYTE_ORDER 4321
+# define NDNBOOST_BIG_ENDIAN
+# define NDNBOOST_BYTE_ORDER 4321
 
 #elif defined(_BIG_ENDIAN) && !defined(_LITTLE_ENDIAN) || \
     defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__) || \
     defined(__BIGENDIAN__) && !defined(__LITTLEENDIAN__) || \
     defined(_STLP_BIG_ENDIAN) && !defined(_STLP_LITTLE_ENDIAN)
-# define BOOST_BIG_ENDIAN
-# define BOOST_BYTE_ORDER 4321
+# define NDNBOOST_BIG_ENDIAN
+# define NDNBOOST_BYTE_ORDER 4321
 #elif defined(_LITTLE_ENDIAN) && !defined(_BIG_ENDIAN) || \
     defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__) || \
     defined(__LITTLEENDIAN__) && !defined(__BIGENDIAN__) || \
     defined(_STLP_LITTLE_ENDIAN) && !defined(_STLP_BIG_ENDIAN)
-# define BOOST_LITTLE_ENDIAN
-# define BOOST_BYTE_ORDER 1234
+# define NDNBOOST_LITTLE_ENDIAN
+# define NDNBOOST_BYTE_ORDER 1234
 #elif defined(__sparc) || defined(__sparc__) \
    || defined(_POWER) || defined(__powerpc__) \
    || defined(__ppc__) || defined(__hpux) || defined(__hppa) \
    || defined(_MIPSEB) || defined(_POWER) \
    || defined(__s390__) || defined(__ARMEB__)
-# define BOOST_BIG_ENDIAN
-# define BOOST_BYTE_ORDER 4321
+# define NDNBOOST_BIG_ENDIAN
+# define NDNBOOST_BYTE_ORDER 4321
 #elif defined(__i386__) || defined(__alpha__) \
    || defined(__ia64) || defined(__ia64__) \
    || defined(_M_IX86) || defined(_M_IA64) \
@@ -115,8 +115,8 @@
    || defined(__ARMEL__) \
    || (defined(_WIN32) && defined(__ARM__) && defined(_MSC_VER)) // ARM Windows CE don't define anything reasonably unique, but there are no big-endian Windows versions 
 
-# define BOOST_LITTLE_ENDIAN
-# define BOOST_BYTE_ORDER 1234
+# define NDNBOOST_LITTLE_ENDIAN
+# define NDNBOOST_BYTE_ORDER 1234
 #else
 # error The file ndnboost/detail/endian.hpp needs to be set up for your CPU type.
 #endif
diff --git a/include/ndnboost/detail/fenv.hpp b/include/ndnboost/detail/fenv.hpp
index 4618b54..90edcb0 100644
--- a/include/ndnboost/detail/fenv.hpp
+++ b/include/ndnboost/detail/fenv.hpp
@@ -7,12 +7,12 @@
 
 #include <ndnboost/config.hpp>
 
-#if defined(BOOST_NO_FENV_H)
+#if defined(NDNBOOST_NO_FENV_H)
   #error This platform does not have a floating point environment
 #endif
 
-#if !defined(BOOST_DETAIL_FENV_HPP)
-#define BOOST_DETAIL_FENV_HPP
+#if !defined(NDNBOOST_DETAIL_FENV_HPP)
+#define NDNBOOST_DETAIL_FENV_HPP
 
 /* If we're using clang + glibc, we have to get hacky. 
  * See http://llvm.org/bugs/show_bug.cgi?id=6907 */
@@ -70,5 +70,5 @@
 
 #endif
 
-#endif /* BOOST_DETAIL_FENV_HPP */
+#endif /* NDNBOOST_DETAIL_FENV_HPP */
  
diff --git a/include/ndnboost/detail/indirect_traits.hpp b/include/ndnboost/detail/indirect_traits.hpp
index fa2d671..95d95df 100644
--- a/include/ndnboost/detail/indirect_traits.hpp
+++ b/include/ndnboost/detail/indirect_traits.hpp
@@ -26,7 +26,7 @@
 # include <ndnboost/mpl/not.hpp>
 # include <ndnboost/mpl/aux_/lambda_support.hpp>
 
-#  ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#  ifdef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 #   include <ndnboost/detail/is_function_ref_tester.hpp>
 #  endif 
 
@@ -34,7 +34,7 @@
 
 namespace indirect_traits {
 
-#  ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#  ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 template <class T>
 struct is_reference_to_const : mpl::false_
 {
@@ -45,7 +45,7 @@
 {
 };
 
-#   if defined(BOOST_MSVC) && _MSC_FULL_VER <= 13102140 // vc7.01 alpha workaround
+#   if defined(NDNBOOST_MSVC) && _MSC_FULL_VER <= 13102140 // vc7.01 alpha workaround
 template<class T>
 struct is_reference_to_const<T const volatile&> : mpl::true_
 {
@@ -90,7 +90,7 @@
 struct is_reference_to_member_function_pointer
     : is_reference_to_member_function_pointer_impl<T>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_member_function_pointer,(T))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_member_function_pointer,(T))
 };
 
 template <class T>
@@ -138,7 +138,7 @@
 {
 };
 
-#   if defined(BOOST_MSVC) && _MSC_FULL_VER <= 13102140 // vc7.01 alpha workaround
+#   if defined(NDNBOOST_MSVC) && _MSC_FULL_VER <= 13102140 // vc7.01 alpha workaround
 template <class T>
 struct is_reference_to_volatile<T const volatile&> : mpl::true_
 {
@@ -182,7 +182,7 @@
           >
       >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_class,(T))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_class,(T))
 };
 
 template <class T>
@@ -196,7 +196,7 @@
           >
       >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_pointer_to_class,(T))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_pointer_to_class,(T))
 };
 
 #  else
@@ -251,7 +251,7 @@
 struct is_reference_to_function_aux
 {
     static T t;
-    BOOST_STATIC_CONSTANT(
+    NDNBOOST_STATIC_CONSTANT(
         bool, value = sizeof(detail::is_function_ref_tester(t,0)) == sizeof(::ndnboost::type_traits::yes_type));
     typedef mpl::bool_<value> type;
  };
@@ -266,7 +266,7 @@
 struct is_pointer_to_function_aux
 {
     static T t;
-    BOOST_STATIC_CONSTANT(
+    NDNBOOST_STATIC_CONSTANT(
         bool, value
         = sizeof(::ndnboost::type_traits::is_function_ptr_tester(t)) == sizeof(::ndnboost::type_traits::yes_type));
     typedef mpl::bool_<value> type;
@@ -276,7 +276,7 @@
 struct is_pointer_to_function
     : mpl::if_<is_pointer<T>, is_pointer_to_function_aux<T>, mpl::bool_<false> >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_pointer_to_function,(T))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_pointer_to_function,(T))
 };
 
 struct false_helper1
@@ -298,7 +298,7 @@
     struct apply
     {
         static T t;
-        BOOST_STATIC_CONSTANT(
+        NDNBOOST_STATIC_CONSTANT(
             bool, value
             = sizeof(reference_to_const_helper(t)) == sizeof(inner_yes_type));
         typedef mpl::bool_<value> type;
@@ -330,7 +330,7 @@
     struct apply
     {
         static T t;
-        BOOST_STATIC_CONSTANT(
+        NDNBOOST_STATIC_CONSTANT(
             bool, value
             = sizeof(reference_to_const_helper(t)) == sizeof(inner_no_type));
         
@@ -348,7 +348,7 @@
 struct is_reference_to_non_const
     : is_reference_to_non_const_helper1<is_reference<T>::value>::template apply<T>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_non_const,(T))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_non_const,(T))
 };
 
 
@@ -364,7 +364,7 @@
     struct apply
     {
         static T t;
-        BOOST_STATIC_CONSTANT(
+        NDNBOOST_STATIC_CONSTANT(
             bool, value
             = sizeof(reference_to_volatile_helper(t)) == sizeof(inner_yes_type));
         typedef mpl::bool_<value> type;
@@ -391,7 +391,7 @@
 struct reference_to_pointer_impl
 {
     static T t;
-    BOOST_STATIC_CONSTANT(
+    NDNBOOST_STATIC_CONSTANT(
         bool, value
         = (sizeof((reference_to_pointer_helper)(t)) == sizeof(inner_yes_type))
         );
@@ -403,14 +403,14 @@
 struct is_reference_to_pointer
   : mpl::eval_if<is_reference<T>, reference_to_pointer_impl<T>, mpl::false_>::type
 {   
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_pointer,(T))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_pointer,(T))
 };
 
 template <class T>
 struct is_reference_to_function_pointer
   : mpl::eval_if<is_reference<T>, is_pointer_to_function_aux<T>, mpl::false_>::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_function_pointer,(T))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_function_pointer,(T))
 };
 
 
@@ -427,7 +427,7 @@
 struct is_pointer_to_member_function_aux
 {
     static T t;
-    BOOST_STATIC_CONSTANT(
+    NDNBOOST_STATIC_CONSTANT(
         bool, value
         = sizeof((member_function_pointer_helper)(t)) == sizeof(inner_yes_type));
     typedef mpl::bool_<value> type;
@@ -441,7 +441,7 @@
         , mpl::bool_<false>
      >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_member_function_pointer,(T))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_member_function_pointer,(T))
 };
 
 template <typename V>
@@ -452,13 +452,13 @@
 struct is_reference_to_class
 {
     static T t;
-    BOOST_STATIC_CONSTANT(
+    NDNBOOST_STATIC_CONSTANT(
         bool, value
         = (is_reference<T>::value
            & (sizeof(reference_to_class_helper(t)) == sizeof(inner_yes_type)))
         );
     typedef mpl::bool_<value> type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_class,(T))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_class,(T))
 };
 
 template <typename V>
@@ -469,14 +469,14 @@
 struct is_pointer_to_class
 {
     static T t;
-    BOOST_STATIC_CONSTANT(
+    NDNBOOST_STATIC_CONSTANT(
         bool, value
         = (is_pointer<T>::value
            && sizeof(pointer_to_class_helper(t)) == sizeof(inner_yes_type))
         );
     typedef mpl::bool_<value> type;
 };
-#  endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION 
+#  endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION 
 
 }
 
diff --git a/include/ndnboost/detail/interlocked.hpp b/include/ndnboost/detail/interlocked.hpp
index 1616414..5c480d5 100644
--- a/include/ndnboost/detail/interlocked.hpp
+++ b/include/ndnboost/detail/interlocked.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_DETAIL_INTERLOCKED_HPP_INCLUDED
-#define BOOST_DETAIL_INTERLOCKED_HPP_INCLUDED
+#ifndef NDNBOOST_DETAIL_INTERLOCKED_HPP_INCLUDED
+#define NDNBOOST_DETAIL_INTERLOCKED_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -19,17 +19,17 @@
 
 #include <ndnboost/config.hpp>
 
-#if defined( BOOST_USE_WINDOWS_H )
+#if defined( NDNBOOST_USE_WINDOWS_H )
 
 # include <windows.h>
 
-# define BOOST_INTERLOCKED_INCREMENT InterlockedIncrement
-# define BOOST_INTERLOCKED_DECREMENT InterlockedDecrement
-# define BOOST_INTERLOCKED_COMPARE_EXCHANGE InterlockedCompareExchange
-# define BOOST_INTERLOCKED_EXCHANGE InterlockedExchange
-# define BOOST_INTERLOCKED_EXCHANGE_ADD InterlockedExchangeAdd
-# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER InterlockedCompareExchangePointer
-# define BOOST_INTERLOCKED_EXCHANGE_POINTER InterlockedExchangePointer
+# define NDNBOOST_INTERLOCKED_INCREMENT InterlockedIncrement
+# define NDNBOOST_INTERLOCKED_DECREMENT InterlockedDecrement
+# define NDNBOOST_INTERLOCKED_COMPARE_EXCHANGE InterlockedCompareExchange
+# define NDNBOOST_INTERLOCKED_EXCHANGE InterlockedExchange
+# define NDNBOOST_INTERLOCKED_EXCHANGE_ADD InterlockedExchangeAdd
+# define NDNBOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER InterlockedCompareExchangePointer
+# define NDNBOOST_INTERLOCKED_EXCHANGE_POINTER InterlockedExchangePointer
 
 #elif defined(_WIN32_WCE)
 
@@ -41,11 +41,11 @@
 extern "C" long __cdecl _InterlockedExchange( long volatile *, long );
 extern "C" long __cdecl _InterlockedExchangeAdd( long volatile *, long );
 
-# define BOOST_INTERLOCKED_INCREMENT _InterlockedIncrement
-# define BOOST_INTERLOCKED_DECREMENT _InterlockedDecrement
-# define BOOST_INTERLOCKED_COMPARE_EXCHANGE _InterlockedCompareExchange
-# define BOOST_INTERLOCKED_EXCHANGE _InterlockedExchange
-# define BOOST_INTERLOCKED_EXCHANGE_ADD _InterlockedExchangeAdd
+# define NDNBOOST_INTERLOCKED_INCREMENT _InterlockedIncrement
+# define NDNBOOST_INTERLOCKED_DECREMENT _InterlockedDecrement
+# define NDNBOOST_INTERLOCKED_COMPARE_EXCHANGE _InterlockedCompareExchange
+# define NDNBOOST_INTERLOCKED_EXCHANGE _InterlockedExchange
+# define NDNBOOST_INTERLOCKED_EXCHANGE_ADD _InterlockedExchangeAdd
 
 #else
 // under Windows CE we still have old-style Interlocked* functions
@@ -56,22 +56,22 @@
 extern "C" long __cdecl InterlockedExchange( long*, long );
 extern "C" long __cdecl InterlockedExchangeAdd( long*, long );
 
-# define BOOST_INTERLOCKED_INCREMENT InterlockedIncrement
-# define BOOST_INTERLOCKED_DECREMENT InterlockedDecrement
-# define BOOST_INTERLOCKED_COMPARE_EXCHANGE InterlockedCompareExchange
-# define BOOST_INTERLOCKED_EXCHANGE InterlockedExchange
-# define BOOST_INTERLOCKED_EXCHANGE_ADD InterlockedExchangeAdd
+# define NDNBOOST_INTERLOCKED_INCREMENT InterlockedIncrement
+# define NDNBOOST_INTERLOCKED_DECREMENT InterlockedDecrement
+# define NDNBOOST_INTERLOCKED_COMPARE_EXCHANGE InterlockedCompareExchange
+# define NDNBOOST_INTERLOCKED_EXCHANGE InterlockedExchange
+# define NDNBOOST_INTERLOCKED_EXCHANGE_ADD InterlockedExchangeAdd
 
 #endif
 
-# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest,exchange,compare) \
-    ((void*)BOOST_INTERLOCKED_COMPARE_EXCHANGE((long*)(dest),(long)(exchange),(long)(compare)))
-# define BOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \
-    ((void*)BOOST_INTERLOCKED_EXCHANGE((long*)(dest),(long)(exchange)))
+# define NDNBOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest,exchange,compare) \
+    ((void*)NDNBOOST_INTERLOCKED_COMPARE_EXCHANGE((long*)(dest),(long)(exchange),(long)(compare)))
+# define NDNBOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \
+    ((void*)NDNBOOST_INTERLOCKED_EXCHANGE((long*)(dest),(long)(exchange)))
 
-#elif defined( BOOST_MSVC ) || defined( BOOST_INTEL_WIN )
+#elif defined( NDNBOOST_MSVC ) || defined( NDNBOOST_INTEL_WIN )
 
-#if defined( BOOST_MSVC ) && BOOST_MSVC >= 1600
+#if defined( NDNBOOST_MSVC ) && NDNBOOST_MSVC >= 1600
 
 #include <intrin.h>
 
@@ -107,30 +107,30 @@
 #  pragma intrinsic( _InterlockedCompareExchangePointer )
 #  pragma intrinsic( _InterlockedExchangePointer )
 
-#  define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER _InterlockedCompareExchangePointer
-#  define BOOST_INTERLOCKED_EXCHANGE_POINTER _InterlockedExchangePointer
+#  define NDNBOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER _InterlockedCompareExchangePointer
+#  define NDNBOOST_INTERLOCKED_EXCHANGE_POINTER _InterlockedExchangePointer
 
 # else
 
-#  define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest,exchange,compare) \
-    ((void*)BOOST_INTERLOCKED_COMPARE_EXCHANGE((long volatile*)(dest),(long)(exchange),(long)(compare)))
-#  define BOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \
-    ((void*)BOOST_INTERLOCKED_EXCHANGE((long volatile*)(dest),(long)(exchange)))
+#  define NDNBOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest,exchange,compare) \
+    ((void*)NDNBOOST_INTERLOCKED_COMPARE_EXCHANGE((long volatile*)(dest),(long)(exchange),(long)(compare)))
+#  define NDNBOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \
+    ((void*)NDNBOOST_INTERLOCKED_EXCHANGE((long volatile*)(dest),(long)(exchange)))
 
 # endif
 
-# define BOOST_INTERLOCKED_INCREMENT _InterlockedIncrement
-# define BOOST_INTERLOCKED_DECREMENT _InterlockedDecrement
-# define BOOST_INTERLOCKED_COMPARE_EXCHANGE _InterlockedCompareExchange
-# define BOOST_INTERLOCKED_EXCHANGE _InterlockedExchange
-# define BOOST_INTERLOCKED_EXCHANGE_ADD _InterlockedExchangeAdd
+# define NDNBOOST_INTERLOCKED_INCREMENT _InterlockedIncrement
+# define NDNBOOST_INTERLOCKED_DECREMENT _InterlockedDecrement
+# define NDNBOOST_INTERLOCKED_COMPARE_EXCHANGE _InterlockedCompareExchange
+# define NDNBOOST_INTERLOCKED_EXCHANGE _InterlockedExchange
+# define NDNBOOST_INTERLOCKED_EXCHANGE_ADD _InterlockedExchangeAdd
 
 #elif defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) || defined( __CYGWIN__ )
 
 #if defined(__MINGW64__)
-#define BOOST_INTERLOCKED_IMPORT
+#define NDNBOOST_INTERLOCKED_IMPORT
 #else
-#define BOOST_INTERLOCKED_IMPORT __declspec(dllimport)
+#define NDNBOOST_INTERLOCKED_IMPORT __declspec(dllimport)
 #endif
 
 
@@ -140,35 +140,35 @@
 namespace detail
 {
 
-extern "C" BOOST_INTERLOCKED_IMPORT long __stdcall InterlockedIncrement( long volatile * );
-extern "C" BOOST_INTERLOCKED_IMPORT long __stdcall InterlockedDecrement( long volatile * );
-extern "C" BOOST_INTERLOCKED_IMPORT long __stdcall InterlockedCompareExchange( long volatile *, long, long );
-extern "C" BOOST_INTERLOCKED_IMPORT long __stdcall InterlockedExchange( long volatile *, long );
-extern "C" BOOST_INTERLOCKED_IMPORT long __stdcall InterlockedExchangeAdd( long volatile *, long );
+extern "C" NDNBOOST_INTERLOCKED_IMPORT long __stdcall InterlockedIncrement( long volatile * );
+extern "C" NDNBOOST_INTERLOCKED_IMPORT long __stdcall InterlockedDecrement( long volatile * );
+extern "C" NDNBOOST_INTERLOCKED_IMPORT long __stdcall InterlockedCompareExchange( long volatile *, long, long );
+extern "C" NDNBOOST_INTERLOCKED_IMPORT long __stdcall InterlockedExchange( long volatile *, long );
+extern "C" NDNBOOST_INTERLOCKED_IMPORT long __stdcall InterlockedExchangeAdd( long volatile *, long );
 
 # if defined(_M_IA64) || defined(_M_AMD64)
-extern "C" BOOST_INTERLOCKED_IMPORT void* __stdcall InterlockedCompareExchangePointer( void* volatile *, void*, void* );
-extern "C" BOOST_INTERLOCKED_IMPORT void* __stdcall InterlockedExchangePointer( void* volatile *, void* );
+extern "C" NDNBOOST_INTERLOCKED_IMPORT void* __stdcall InterlockedCompareExchangePointer( void* volatile *, void*, void* );
+extern "C" NDNBOOST_INTERLOCKED_IMPORT void* __stdcall InterlockedExchangePointer( void* volatile *, void* );
 # endif
 
 } // namespace detail
 
 } // namespace ndnboost
 
-# define BOOST_INTERLOCKED_INCREMENT ::ndnboost::detail::InterlockedIncrement
-# define BOOST_INTERLOCKED_DECREMENT ::ndnboost::detail::InterlockedDecrement
-# define BOOST_INTERLOCKED_COMPARE_EXCHANGE ::ndnboost::detail::InterlockedCompareExchange
-# define BOOST_INTERLOCKED_EXCHANGE ::ndnboost::detail::InterlockedExchange
-# define BOOST_INTERLOCKED_EXCHANGE_ADD ::ndnboost::detail::InterlockedExchangeAdd
+# define NDNBOOST_INTERLOCKED_INCREMENT ::ndnboost::detail::InterlockedIncrement
+# define NDNBOOST_INTERLOCKED_DECREMENT ::ndnboost::detail::InterlockedDecrement
+# define NDNBOOST_INTERLOCKED_COMPARE_EXCHANGE ::ndnboost::detail::InterlockedCompareExchange
+# define NDNBOOST_INTERLOCKED_EXCHANGE ::ndnboost::detail::InterlockedExchange
+# define NDNBOOST_INTERLOCKED_EXCHANGE_ADD ::ndnboost::detail::InterlockedExchangeAdd
 
 # if defined(_M_IA64) || defined(_M_AMD64)
-#  define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER ::ndnboost::detail::InterlockedCompareExchangePointer
-#  define BOOST_INTERLOCKED_EXCHANGE_POINTER ::ndnboost::detail::InterlockedExchangePointer
+#  define NDNBOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER ::ndnboost::detail::InterlockedCompareExchangePointer
+#  define NDNBOOST_INTERLOCKED_EXCHANGE_POINTER ::ndnboost::detail::InterlockedExchangePointer
 # else
-#  define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest,exchange,compare) \
-    ((void*)BOOST_INTERLOCKED_COMPARE_EXCHANGE((long volatile*)(dest),(long)(exchange),(long)(compare)))
-#  define BOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \
-    ((void*)BOOST_INTERLOCKED_EXCHANGE((long volatile*)(dest),(long)(exchange)))
+#  define NDNBOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest,exchange,compare) \
+    ((void*)NDNBOOST_INTERLOCKED_COMPARE_EXCHANGE((long volatile*)(dest),(long)(exchange),(long)(compare)))
+#  define NDNBOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \
+    ((void*)NDNBOOST_INTERLOCKED_EXCHANGE((long volatile*)(dest),(long)(exchange)))
 # endif
 
 #else
@@ -177,4 +177,4 @@
 
 #endif
 
-#endif // #ifndef BOOST_DETAIL_INTERLOCKED_HPP_INCLUDED
+#endif // #ifndef NDNBOOST_DETAIL_INTERLOCKED_HPP_INCLUDED
diff --git a/include/ndnboost/detail/is_function_ref_tester.hpp b/include/ndnboost/detail/is_function_ref_tester.hpp
index b8301ec..001ff5f 100644
--- a/include/ndnboost/detail/is_function_ref_tester.hpp
+++ b/include/ndnboost/detail/is_function_ref_tester.hpp
@@ -5,17 +5,17 @@
 // accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
 
-#if !defined(BOOST_PP_IS_ITERATING)
+#if !defined(NDNBOOST_PP_IS_ITERATING)
 
 ///// header body
 
-#ifndef BOOST_DETAIL_IS_FUNCTION_REF_TESTER_HPP_INCLUDED
-#define BOOST_DETAIL_IS_FUNCTION_REF_TESTER_HPP_INCLUDED
+#ifndef NDNBOOST_DETAIL_IS_FUNCTION_REF_TESTER_HPP_INCLUDED
+#define NDNBOOST_DETAIL_IS_FUNCTION_REF_TESTER_HPP_INCLUDED
 
 #include "ndnboost/type_traits/detail/yes_no_type.hpp"
 #include "ndnboost/type_traits/config.hpp"
 
-#if defined(BOOST_TT_PREPROCESSING_MODE)
+#if defined(NDNBOOST_TT_PREPROCESSING_MODE)
 #   include "ndnboost/preprocessor/iterate.hpp"
 #   include "ndnboost/preprocessor/enum_params.hpp"
 #   include "ndnboost/preprocessor/comma_if.hpp"
@@ -26,9 +26,9 @@
 namespace is_function_ref_tester_ {
 
 template <class T>
-ndnboost::type_traits::no_type BOOST_TT_DECL is_function_ref_tester(T& ...);
+ndnboost::type_traits::no_type NDNBOOST_TT_DECL is_function_ref_tester(T& ...);
 
-#if !defined(BOOST_TT_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_TT_PREPROCESSING_MODE)
 // preprocessor-generated part, don't edit by hand!
 
 template <class R>
@@ -111,26 +111,26 @@
 
 #else
 
-#define BOOST_PP_ITERATION_PARAMS_1 \
+#define NDNBOOST_PP_ITERATION_PARAMS_1 \
     (3, (0, 25, "ndnboost/detail/is_function_ref_tester.hpp"))
-#include BOOST_PP_ITERATE()
+#include NDNBOOST_PP_ITERATE()
 
-#endif // BOOST_TT_PREPROCESSING_MODE
+#endif // NDNBOOST_TT_PREPROCESSING_MODE
 
 } // namespace detail
 } // namespace python
 } // namespace ndnboost
 
-#endif // BOOST_DETAIL_IS_FUNCTION_REF_TESTER_HPP_INCLUDED
+#endif // NDNBOOST_DETAIL_IS_FUNCTION_REF_TESTER_HPP_INCLUDED
 
 ///// iteration
 
 #else
-#define i BOOST_PP_FRAME_ITERATION(1)
+#define i NDNBOOST_PP_FRAME_ITERATION(1)
 
-template <class R BOOST_PP_COMMA_IF(i) BOOST_PP_ENUM_PARAMS(i,class T) >
-ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(BOOST_PP_ENUM_PARAMS(i,T)), int);
+template <class R NDNBOOST_PP_COMMA_IF(i) NDNBOOST_PP_ENUM_PARAMS(i,class T) >
+ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(NDNBOOST_PP_ENUM_PARAMS(i,T)), int);
 
 #undef i
-#endif // BOOST_PP_IS_ITERATING
+#endif // NDNBOOST_PP_IS_ITERATING
 
diff --git a/include/ndnboost/detail/is_incrementable.hpp b/include/ndnboost/detail/is_incrementable.hpp
index a15ccb6..0471db9 100644
--- a/include/ndnboost/detail/is_incrementable.hpp
+++ b/include/ndnboost/detail/is_incrementable.hpp
@@ -34,7 +34,7 @@
   struct any { template <class T> any(T const&); };
 
   // This is a last-resort operator++ for when none other is found
-# if BOOST_WORKAROUND(__GNUC__, == 4) && __GNUC_MINOR__ == 0 && __GNUC_PATCHLEVEL__ == 2
+# if NDNBOOST_WORKAROUND(__GNUC__, == 4) && __GNUC_MINOR__ == 0 && __GNUC_PATCHLEVEL__ == 2
   
 }
 
@@ -55,16 +55,16 @@
   
 # endif 
 
-# if BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3202)) \
-    || BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
-#  define BOOST_comma(a,b) (a)
+# if NDNBOOST_WORKAROUND(__MWERKS__, NDNBOOST_TESTED_AT(0x3202)) \
+    || NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)
+#  define NDNBOOST_comma(a,b) (a)
 # else 
   // In case an operator++ is found that returns void, we'll use ++x,0
   tag operator,(tag,int);  
-#  define BOOST_comma(a,b) (a,b)
+#  define NDNBOOST_comma(a,b) (a,b)
 # endif 
 
-# if defined(BOOST_MSVC)
+# if defined(NDNBOOST_MSVC)
 #  pragma warning(push)
 #  pragma warning(disable:4913) // Warning about operator,
 # endif 
@@ -81,9 +81,9 @@
   {
       static typename ndnboost::remove_cv<T>::type& x;
 
-      BOOST_STATIC_CONSTANT(
+      NDNBOOST_STATIC_CONSTANT(
           bool
-        , value = sizeof(is_incrementable_::check_(BOOST_comma(++x,0))) == 1
+        , value = sizeof(is_incrementable_::check_(NDNBOOST_comma(++x,0))) == 1
       );
   };
 
@@ -92,40 +92,40 @@
   {
       static typename ndnboost::remove_cv<T>::type& x;
 
-      BOOST_STATIC_CONSTANT(
+      NDNBOOST_STATIC_CONSTANT(
           bool
-        , value = sizeof(is_incrementable_::check_(BOOST_comma(x++,0))) == 1
+        , value = sizeof(is_incrementable_::check_(NDNBOOST_comma(x++,0))) == 1
       );
   };
 
-# if defined(BOOST_MSVC)
+# if defined(NDNBOOST_MSVC)
 #  pragma warning(pop)
 # endif 
 
 }
 
-# undef BOOST_comma
+# undef NDNBOOST_comma
 
 template<typename T> 
 struct is_incrementable 
-BOOST_TT_AUX_BOOL_C_BASE(::ndnboost::detail::is_incrementable_::impl<T>::value)
+NDNBOOST_TT_AUX_BOOL_C_BASE(::ndnboost::detail::is_incrementable_::impl<T>::value)
 { 
-    BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(::ndnboost::detail::is_incrementable_::impl<T>::value)
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_incrementable,(T))
+    NDNBOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(::ndnboost::detail::is_incrementable_::impl<T>::value)
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_incrementable,(T))
 };
 
 template<typename T> 
 struct is_postfix_incrementable 
-BOOST_TT_AUX_BOOL_C_BASE(::ndnboost::detail::is_incrementable_::impl<T>::value)
+NDNBOOST_TT_AUX_BOOL_C_BASE(::ndnboost::detail::is_incrementable_::impl<T>::value)
 { 
-    BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(::ndnboost::detail::is_incrementable_::postfix_impl<T>::value)
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_postfix_incrementable,(T))
+    NDNBOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(::ndnboost::detail::is_incrementable_::postfix_impl<T>::value)
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_postfix_incrementable,(T))
 };
 
 } // namespace detail
 
-BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1, ::ndnboost::detail::is_incrementable)
-BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1, ::ndnboost::detail::is_postfix_incrementable)
+NDNBOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1, ::ndnboost::detail::is_incrementable)
+NDNBOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1, ::ndnboost::detail::is_postfix_incrementable)
 
 } // namespace ndnboost
 
diff --git a/include/ndnboost/detail/iterator.hpp b/include/ndnboost/detail/iterator.hpp
index 6cfb5aa..c2bb102 100644
--- a/include/ndnboost/detail/iterator.hpp
+++ b/include/ndnboost/detail/iterator.hpp
@@ -26,7 +26,7 @@
 // 03 Mar 2001 - Put all implementation into namespace
 //               ndnboost::detail::iterator_traits_. Some progress made on fixes
 //               for Intel compiler. (David Abrahams)
-// 02 Mar 2001 - Changed BOOST_MSVC to BOOST_MSVC_STD_ITERATOR in a few
+// 02 Mar 2001 - Changed NDNBOOST_MSVC to NDNBOOST_MSVC_STD_ITERATOR in a few
 //               places. (Jeremy Siek)
 // 19 Feb 2001 - Improved workarounds for stock MSVC6; use yes_type and
 //               no_type from type_traits.hpp; stopped trying to remove_cv
@@ -63,16 +63,16 @@
 # if defined(__SGI_STL_PORT)
 
 #  if (__SGI_STL_PORT <= 0x410) && !defined(__STL_CLASS_PARTIAL_SPECIALIZATION) && defined(__STL_DEBUG)
-#   define BOOST_BAD_CONTAINER_ITERATOR_CATEGORY_TYPEDEF
+#   define NDNBOOST_BAD_CONTAINER_ITERATOR_CATEGORY_TYPEDEF
 #  endif
 
-#  define BOOST_BAD_OUTPUT_ITERATOR_SPECIALIZATION
+#  define NDNBOOST_BAD_OUTPUT_ITERATOR_SPECIALIZATION
 
 # endif // STLPort <= 4.1b4 && no partial specialization
 
-# if !defined(BOOST_NO_STD_ITERATOR_TRAITS)             \
-  && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-  && !defined(BOOST_MSVC_STD_ITERATOR)
+# if !defined(NDNBOOST_NO_STD_ITERATOR_TRAITS)             \
+  && !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
+  && !defined(NDNBOOST_MSVC_STD_ITERATOR)
     
 namespace ndnboost { namespace detail {
 
@@ -87,10 +87,10 @@
 
 # else
 
-#  if  !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)  \
-    && !defined(BOOST_MSVC_STD_ITERATOR)
+#  if  !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)  \
+    && !defined(NDNBOOST_MSVC_STD_ITERATOR)
 
-// This is the case where everything conforms except BOOST_NO_STD_ITERATOR_TRAITS
+// This is the case where everything conforms except NDNBOOST_NO_STD_ITERATOR_TRAITS
 
 namespace ndnboost { namespace detail {
 
@@ -135,11 +135,11 @@
 # include <ndnboost/type_traits/detail/yes_no_type.hpp>
 # include <ndnboost/type_traits/is_pointer.hpp>
 
-# ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+# ifdef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 #  include <ndnboost/type_traits/is_same.hpp>
 #  include <ndnboost/type_traits/remove_pointer.hpp>
 # endif
-# ifdef BOOST_BAD_OUTPUT_ITERATOR_SPECIALIZATION
+# ifdef NDNBOOST_BAD_OUTPUT_ITERATOR_SPECIALIZATION
 #  include <ndnboost/type_traits/is_base_and_derived.hpp>
 # endif
 
@@ -152,11 +152,11 @@
 
 namespace ndnboost { namespace detail {
 
-BOOST_MPL_HAS_XXX_TRAIT_DEF(value_type)
-BOOST_MPL_HAS_XXX_TRAIT_DEF(reference)
-BOOST_MPL_HAS_XXX_TRAIT_DEF(pointer)
-BOOST_MPL_HAS_XXX_TRAIT_DEF(difference_type)
-BOOST_MPL_HAS_XXX_TRAIT_DEF(iterator_category)
+NDNBOOST_MPL_HAS_XXX_TRAIT_DEF(value_type)
+NDNBOOST_MPL_HAS_XXX_TRAIT_DEF(reference)
+NDNBOOST_MPL_HAS_XXX_TRAIT_DEF(pointer)
+NDNBOOST_MPL_HAS_XXX_TRAIT_DEF(difference_type)
+NDNBOOST_MPL_HAS_XXX_TRAIT_DEF(iterator_category)
 
 // is_mutable_iterator --
 //
@@ -170,7 +170,7 @@
 // This one detects ordinary mutable iterators - the result of
 // operator* is convertible to the value_type.
 template <class T>
-type_traits::yes_type is_mutable_iterator_helper(T const*, BOOST_DEDUCED_TYPENAME T::value_type*);
+type_traits::yes_type is_mutable_iterator_helper(T const*, NDNBOOST_DEDUCED_TYPENAME T::value_type*);
 
 // Since you can't take the address of an rvalue, the guts of
 // is_mutable_iterator_impl will fail if we use &*t directly.  This
@@ -191,7 +191,7 @@
 {
     static T t;
     
-    BOOST_STATIC_CONSTANT(
+    NDNBOOST_STATIC_CONSTANT(
         bool, value = sizeof(
             detail::is_mutable_iterator_helper(
                 (T*)0
@@ -201,7 +201,7 @@
     );
 };
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(
     is_mutable_iterator,T,::ndnboost::detail::is_mutable_iterator_impl<T>::value)
 
 
@@ -222,12 +222,12 @@
     };
 };
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(
     is_full_iterator_traits,T,::ndnboost::detail::is_full_iterator_traits_impl<T>::value)
 
 
-#   ifdef BOOST_BAD_CONTAINER_ITERATOR_CATEGORY_TYPEDEF
-BOOST_MPL_HAS_XXX_TRAIT_DEF(_Iterator_category)
+#   ifdef NDNBOOST_BAD_CONTAINER_ITERATOR_CATEGORY_TYPEDEF
+NDNBOOST_MPL_HAS_XXX_TRAIT_DEF(_Iterator_category)
     
 // is_stlport_40_debug_iterator --
 //
@@ -246,7 +246,7 @@
     };
 };
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(
     is_stlport_40_debug_iterator,T,::ndnboost::detail::is_stlport_40_debug_iterator_impl<T>::value)
 
 template <class T>
@@ -258,11 +258,11 @@
     typedef typename T::difference_type difference_type;
     typedef typename T::_Iterator_category iterator_category;
 };
-#   endif // BOOST_BAD_CONTAINER_ITERATOR_CATEGORY_TYPEDEF 
+#   endif // NDNBOOST_BAD_CONTAINER_ITERATOR_CATEGORY_TYPEDEF 
 
 template <class T> struct pointer_iterator_traits;
 
-#   ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#   ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 template <class T>
 struct pointer_iterator_traits<T*>
 {
@@ -279,13 +279,13 @@
 // some basic types, remove_pointer is manually defined in
 // type_traits/broken_compiler_spec.hpp. For others, do it yourself.
 
-template<class P> class please_invoke_BOOST_TT_BROKEN_COMPILER_SPEC_on_cv_unqualified_pointee;
+template<class P> class please_invoke_NDNBOOST_TT_BROKEN_COMPILER_SPEC_on_cv_unqualified_pointee;
 
 template<class P>
 struct pointer_value_type
   : mpl::if_<
         is_same<P, typename remove_pointer<P>::type>
-      , please_invoke_BOOST_TT_BROKEN_COMPILER_SPEC_on_cv_unqualified_pointee<P>
+      , please_invoke_NDNBOOST_TT_BROKEN_COMPILER_SPEC_on_cv_unqualified_pointee<P>
       , typename remove_const<
             typename remove_pointer<P>::type
         >::type
@@ -298,7 +298,7 @@
 struct pointer_reference
   : mpl::if_<
         is_same<P, typename remove_pointer<P>::type>
-      , please_invoke_BOOST_TT_BROKEN_COMPILER_SPEC_on_cv_unqualified_pointee<P>
+      , please_invoke_NDNBOOST_TT_BROKEN_COMPILER_SPEC_on_cv_unqualified_pointee<P>
       , typename remove_pointer<P>::type&
     >
 {
@@ -315,7 +315,7 @@
     typedef typename pointer_reference<T>::type reference;
 };
 
-#   endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#   endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 // We'll sort iterator types into one of these classifications, from which we
 // can determine the difference_type, pointer, reference, and value_type
@@ -347,7 +347,7 @@
     typedef const typename std::iterator_traits<Iterator>::value_type& reference;
 };
 
-#   ifdef BOOST_BAD_OUTPUT_ITERATOR_SPECIALIZATION
+#   ifdef NDNBOOST_BAD_OUTPUT_ITERATOR_SPECIALIZATION
 template <class Iterator>
 struct is_bad_output_iterator
     : is_base_and_derived<
@@ -384,7 +384,7 @@
         is_full_iterator_traits<Iterator>
         // Use a standard iterator_traits implementation
         , standard_iterator_traits<Iterator>
-#   ifdef BOOST_BAD_CONTAINER_ITERATOR_CATEGORY_TYPEDEF
+#   ifdef NDNBOOST_BAD_CONTAINER_ITERATOR_CATEGORY_TYPEDEF
         // Check for STLPort 4.0 broken _Iterator_category type
         , mpl::if_<
              is_stlport_40_debug_iterator<Iterator>
@@ -392,7 +392,7 @@
 #   endif
         // Otherwise, assume it's a Dinkum iterator
         , msvc_stdlib_iterator_traits<Iterator>
-#   ifdef BOOST_BAD_CONTAINER_ITERATOR_CATEGORY_TYPEDEF
+#   ifdef NDNBOOST_BAD_CONTAINER_ITERATOR_CATEGORY_TYPEDEF
         >::type
 #   endif 
     >::type
@@ -415,7 +415,7 @@
     // Explicit forwarding from base class needed to keep MSVC6 happy
     // under some circumstances.
  private:
-#   ifdef BOOST_BAD_OUTPUT_ITERATOR_SPECIALIZATION
+#   ifdef NDNBOOST_BAD_OUTPUT_ITERATOR_SPECIALIZATION
     typedef 
     typename mpl::if_<
         is_bad_output_iterator<Iterator>
@@ -488,7 +488,7 @@
 # endif
 
 
-# undef BOOST_BAD_CONTAINER_ITERATOR_CATEGORY_TYPEDEF
-# undef BOOST_BAD_OUTPUT_ITERATOR_SPECIALIZATION
+# undef NDNBOOST_BAD_CONTAINER_ITERATOR_CATEGORY_TYPEDEF
+# undef NDNBOOST_BAD_OUTPUT_ITERATOR_SPECIALIZATION
 
 #endif // ITERATOR_DWA122600_HPP_
diff --git a/include/ndnboost/detail/lcast_precision.hpp b/include/ndnboost/detail/lcast_precision.hpp
index b763a83..2b0b2aa 100644
--- a/include/ndnboost/detail/lcast_precision.hpp
+++ b/include/ndnboost/detail/lcast_precision.hpp
@@ -5,8 +5,8 @@
 // (See accompanying file LICENSE_1_0.txt
 // or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_DETAIL_LCAST_PRECISION_HPP_INCLUDED
-#define BOOST_DETAIL_LCAST_PRECISION_HPP_INCLUDED
+#ifndef NDNBOOST_DETAIL_LCAST_PRECISION_HPP_INCLUDED
+#define NDNBOOST_DETAIL_LCAST_PRECISION_HPP_INCLUDED
 
 #include <climits>
 #include <ios>
@@ -15,19 +15,19 @@
 #include <ndnboost/config.hpp>
 #include <ndnboost/integer_traits.hpp>
 
-#ifndef BOOST_NO_IS_ABSTRACT
+#ifndef NDNBOOST_NO_IS_ABSTRACT
 // Fix for SF:1358600 - lexical_cast & pure virtual functions & VC 8 STL
 #include <ndnboost/mpl/if.hpp>
 #include <ndnboost/type_traits/is_abstract.hpp>
 #endif
 
-#if defined(BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS) || \
-  (defined(BOOST_MSVC) && (BOOST_MSVC<1310))
+#if defined(NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS) || \
+  (defined(NDNBOOST_MSVC) && (NDNBOOST_MSVC<1310))
 
-#define BOOST_LCAST_NO_COMPILE_TIME_PRECISION
+#define NDNBOOST_LCAST_NO_COMPILE_TIME_PRECISION
 #endif
 
-#ifdef BOOST_LCAST_NO_COMPILE_TIME_PRECISION
+#ifdef NDNBOOST_LCAST_NO_COMPILE_TIME_PRECISION
 #include <ndnboost/assert.hpp>
 #else
 #include <ndnboost/static_assert.hpp>
@@ -37,58 +37,58 @@
 
 class lcast_abstract_stub {};
 
-#ifndef BOOST_LCAST_NO_COMPILE_TIME_PRECISION
+#ifndef NDNBOOST_LCAST_NO_COMPILE_TIME_PRECISION
 // Calculate an argument to pass to std::ios_base::precision from
 // lexical_cast. See alternative implementation for broken standard
 // libraries in lcast_get_precision below. Keep them in sync, please.
 template<class T>
 struct lcast_precision
 {
-#ifdef BOOST_NO_IS_ABSTRACT
+#ifdef NDNBOOST_NO_IS_ABSTRACT
     typedef std::numeric_limits<T> limits; // No fix for SF:1358600.
 #else
-    typedef BOOST_DEDUCED_TYPENAME ndnboost::mpl::if_<
+    typedef NDNBOOST_DEDUCED_TYPENAME ndnboost::mpl::if_<
         ndnboost::is_abstract<T>
       , std::numeric_limits<lcast_abstract_stub>
       , std::numeric_limits<T>
       >::type limits;
 #endif
 
-    BOOST_STATIC_CONSTANT(bool, use_default_precision =
+    NDNBOOST_STATIC_CONSTANT(bool, use_default_precision =
             !limits::is_specialized || limits::is_exact
         );
 
-    BOOST_STATIC_CONSTANT(bool, is_specialized_bin =
+    NDNBOOST_STATIC_CONSTANT(bool, is_specialized_bin =
             !use_default_precision &&
             limits::radix == 2 && limits::digits > 0
         );
 
-    BOOST_STATIC_CONSTANT(bool, is_specialized_dec =
+    NDNBOOST_STATIC_CONSTANT(bool, is_specialized_dec =
             !use_default_precision &&
             limits::radix == 10 && limits::digits10 > 0
         );
 
-    BOOST_STATIC_CONSTANT(std::streamsize, streamsize_max =
+    NDNBOOST_STATIC_CONSTANT(std::streamsize, streamsize_max =
             ndnboost::integer_traits<std::streamsize>::const_max
         );
 
-    BOOST_STATIC_CONSTANT(unsigned int, precision_dec = limits::digits10 + 1U);
+    NDNBOOST_STATIC_CONSTANT(unsigned int, precision_dec = limits::digits10 + 1U);
 
-    BOOST_STATIC_ASSERT(!is_specialized_dec ||
+    NDNBOOST_STATIC_ASSERT(!is_specialized_dec ||
             precision_dec <= streamsize_max + 0UL
         );
 
-    BOOST_STATIC_CONSTANT(unsigned long, precision_bin =
+    NDNBOOST_STATIC_CONSTANT(unsigned long, precision_bin =
             2UL + limits::digits * 30103UL / 100000UL
         );
 
-    BOOST_STATIC_ASSERT(!is_specialized_bin ||
+    NDNBOOST_STATIC_ASSERT(!is_specialized_bin ||
             (limits::digits + 0UL < ULONG_MAX / 30103UL &&
             precision_bin > limits::digits10 + 0UL &&
             precision_bin <= streamsize_max + 0UL)
         );
 
-    BOOST_STATIC_CONSTANT(std::streamsize, value =
+    NDNBOOST_STATIC_CONSTANT(std::streamsize, value =
             is_specialized_bin ? precision_bin
                                : is_specialized_dec ? precision_dec : 6
         );
@@ -98,14 +98,14 @@
 template<class T>
 inline std::streamsize lcast_get_precision(T* = 0)
 {
-#ifndef BOOST_LCAST_NO_COMPILE_TIME_PRECISION
+#ifndef NDNBOOST_LCAST_NO_COMPILE_TIME_PRECISION
     return lcast_precision<T>::value;
 #else // Follow lcast_precision algorithm at run-time:
 
-#ifdef BOOST_NO_IS_ABSTRACT
+#ifdef NDNBOOST_NO_IS_ABSTRACT
     typedef std::numeric_limits<T> limits; // No fix for SF:1358600.
 #else
-    typedef BOOST_DEDUCED_TYPENAME ndnboost::mpl::if_<
+    typedef NDNBOOST_DEDUCED_TYPENAME ndnboost::mpl::if_<
         ndnboost::is_abstract<T>
       , std::numeric_limits<lcast_abstract_stub>
       , std::numeric_limits<T>
@@ -134,7 +134,7 @@
             unsigned long const precision = 2UL + digits * 30103UL / 100000UL;
             // unsigned long is selected because it is at least 32-bits
             // and thus ULONG_MAX / 30103UL is big enough for all types.
-            BOOST_ASSERT(
+            NDNBOOST_ASSERT(
                     digits < ULONG_MAX / 30103UL &&
                     precision > limits::digits10 + 0UL &&
                     precision <= streamsize_max + 0UL
@@ -145,7 +145,7 @@
         {   // Decimal Floating-point type, most likely a User Defined Type
             // rather than a real floating-point hardware type.
             unsigned int const precision = limits::digits10 + 1U;
-            BOOST_ASSERT(precision <= streamsize_max + 0UL);
+            NDNBOOST_ASSERT(precision <= streamsize_max + 0UL);
             return precision;
         }
     }
@@ -180,5 +180,5 @@
 
 }}
 
-#endif //  BOOST_DETAIL_LCAST_PRECISION_HPP_INCLUDED
+#endif //  NDNBOOST_DETAIL_LCAST_PRECISION_HPP_INCLUDED
 
diff --git a/include/ndnboost/detail/lightweight_mutex.hpp b/include/ndnboost/detail/lightweight_mutex.hpp
index 69e3e38..2860c1a 100644
--- a/include/ndnboost/detail/lightweight_mutex.hpp
+++ b/include/ndnboost/detail/lightweight_mutex.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED
-#define BOOST_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED
+#ifndef NDNBOOST_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED
+#define NDNBOOST_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -19,4 +19,4 @@
 
 #include <ndnboost/smart_ptr/detail/lightweight_mutex.hpp>
 
-#endif // #ifndef BOOST_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED
+#endif // #ifndef NDNBOOST_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED
diff --git a/include/ndnboost/detail/lightweight_test.hpp b/include/ndnboost/detail/lightweight_test.hpp
index 252a2be..40e7cd6 100644
--- a/include/ndnboost/detail/lightweight_test.hpp
+++ b/include/ndnboost/detail/lightweight_test.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_DETAIL_LIGHTWEIGHT_TEST_HPP_INCLUDED
-#define BOOST_DETAIL_LIGHTWEIGHT_TEST_HPP_INCLUDED
+#ifndef NDNBOOST_DETAIL_LIGHTWEIGHT_TEST_HPP_INCLUDED
+#define NDNBOOST_DETAIL_LIGHTWEIGHT_TEST_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -23,38 +23,38 @@
 //    If expression is false increases the error count 
 //    and outputs a message containing 'expression'
 //
-//  BOOST_TEST(expression)
+//  NDNBOOST_TEST(expression)
 //
 //    ---------------
 //
 //    Increases error count and outputs a message containing 'message'
 //
-//  BOOST_ERROR(message)
+//  NDNBOOST_ERROR(message)
 //
 //    ---------------
 //
 //    If 'expr1' != 'expr2' increases the error count 
 //    and outputs a message containing both expressions
 //
-//  BOOST_TEST_EQ(expr1, expr2)
+//  NDNBOOST_TEST_EQ(expr1, expr2)
 //
 //    ---------------
 //
 //    If 'expr1' == 'expr2' increases the error count 
 //    and outputs a message containing both expressions
 //
-//  BOOST_TEST_NE(expr1, expr2)
+//  NDNBOOST_TEST_NE(expr1, expr2)
 //
 //    ---------------
 //
-//    If BOOST_NO_EXCEPTIONS is NOT defined and if 'expr' does not
+//    If NDNBOOST_NO_EXCEPTIONS is NOT defined and if 'expr' does not
 //    throw an exception of type 'excep', increases the error count
 //    and outputs a message containing the expression.
 //
-//    If BOOST_NO_EXCEPTIONS is defined, this macro expands to nothing
+//    If NDNBOOST_NO_EXCEPTIONS is defined, this macro expands to nothing
 //    and 'expr' is not evaluated.
 //
-//  BOOST_TEST_THROWS(expr, excep)
+//  NDNBOOST_TEST_THROWS(expr, excep)
 //
 //    ---------------
 //
@@ -70,8 +70,8 @@
 
 //  IDE's like Visual Studio perform better if output goes to std::cout or
 //  some other stream, so allow user to configure output stream:
-#ifndef BOOST_LIGHTWEIGHT_TEST_OSTREAM
-# define BOOST_LIGHTWEIGHT_TEST_OSTREAM std::cerr
+#ifndef NDNBOOST_LIGHTWEIGHT_TEST_OSTREAM
+# define NDNBOOST_LIGHTWEIGHT_TEST_OSTREAM std::cerr
 #endif
 
 namespace ndnboost
@@ -86,7 +86,7 @@
   report_errors_reminder() : called_report_errors_function(false) {}
  ~report_errors_reminder()
   {
-    BOOST_ASSERT(called_report_errors_function);  // verify report_errors() was called  
+    NDNBOOST_ASSERT(called_report_errors_function);  // verify report_errors() was called  
   }
 };
 
@@ -105,7 +105,7 @@
 
 inline void test_failed_impl(char const * expr, char const * file, int line, char const * function)
 {
-    BOOST_LIGHTWEIGHT_TEST_OSTREAM
+    NDNBOOST_LIGHTWEIGHT_TEST_OSTREAM
       << file << "(" << line << "): test '" << expr << "' failed in function '"
       << function << "'" << std::endl;
     ++test_errors();
@@ -113,7 +113,7 @@
 
 inline void error_impl(char const * msg, char const * file, int line, char const * function)
 {
-    BOOST_LIGHTWEIGHT_TEST_OSTREAM
+    NDNBOOST_LIGHTWEIGHT_TEST_OSTREAM
       << file << "(" << line << "): " << msg << " in function '"
       << function << "'" << std::endl;
     ++test_errors();
@@ -121,7 +121,7 @@
 
 inline void throw_failed_impl(char const * excep, char const * file, int line, char const * function)
 {
-   BOOST_LIGHTWEIGHT_TEST_OSTREAM
+   NDNBOOST_LIGHTWEIGHT_TEST_OSTREAM
     << file << "(" << line << "): Exception '" << excep << "' not thrown in function '"
     << function << "'" << std::endl;
    ++test_errors();
@@ -135,7 +135,7 @@
     }
     else
     {
-        BOOST_LIGHTWEIGHT_TEST_OSTREAM
+        NDNBOOST_LIGHTWEIGHT_TEST_OSTREAM
             << file << "(" << line << "): test '" << expr1 << " == " << expr2
             << "' failed in function '" << function << "': "
             << "'" << t << "' != '" << u << "'" << std::endl;
@@ -151,7 +151,7 @@
     }
     else
     {
-        BOOST_LIGHTWEIGHT_TEST_OSTREAM
+        NDNBOOST_LIGHTWEIGHT_TEST_OSTREAM
             << file << "(" << line << "): test '" << expr1 << " != " << expr2
             << "' failed in function '" << function << "': "
             << "'" << t << "' == '" << u << "'" << std::endl;
@@ -169,13 +169,13 @@
 
     if( errors == 0 )
     {
-        BOOST_LIGHTWEIGHT_TEST_OSTREAM
+        NDNBOOST_LIGHTWEIGHT_TEST_OSTREAM
           << "No errors detected." << std::endl;
         return 0;
     }
     else
     {
-        BOOST_LIGHTWEIGHT_TEST_OSTREAM
+        NDNBOOST_LIGHTWEIGHT_TEST_OSTREAM
           << errors << " error" << (errors == 1? "": "s") << " detected." << std::endl;
         return 1;
     }
@@ -183,26 +183,26 @@
 
 } // namespace ndnboost
 
-#define BOOST_TEST(expr) ((expr)? (void)0: ::ndnboost::detail::test_failed_impl(#expr, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION))
-#define BOOST_ERROR(msg) ::ndnboost::detail::error_impl(msg, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION)
-#define BOOST_TEST_EQ(expr1,expr2) ( ::ndnboost::detail::test_eq_impl(#expr1, #expr2, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION, expr1, expr2) )
-#define BOOST_TEST_NE(expr1,expr2) ( ::ndnboost::detail::test_ne_impl(#expr1, #expr2, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION, expr1, expr2) )
-#ifndef BOOST_NO_EXCEPTIONS
-   #define BOOST_TEST_THROWS( EXPR, EXCEP )                    \
+#define NDNBOOST_TEST(expr) ((expr)? (void)0: ::ndnboost::detail::test_failed_impl(#expr, __FILE__, __LINE__, NDNBOOST_CURRENT_FUNCTION))
+#define NDNBOOST_ERROR(msg) ::ndnboost::detail::error_impl(msg, __FILE__, __LINE__, NDNBOOST_CURRENT_FUNCTION)
+#define NDNBOOST_TEST_EQ(expr1,expr2) ( ::ndnboost::detail::test_eq_impl(#expr1, #expr2, __FILE__, __LINE__, NDNBOOST_CURRENT_FUNCTION, expr1, expr2) )
+#define NDNBOOST_TEST_NE(expr1,expr2) ( ::ndnboost::detail::test_ne_impl(#expr1, #expr2, __FILE__, __LINE__, NDNBOOST_CURRENT_FUNCTION, expr1, expr2) )
+#ifndef NDNBOOST_NO_EXCEPTIONS
+   #define NDNBOOST_TEST_THROWS( EXPR, EXCEP )                    \
       try {                                                    \
          EXPR;                                                 \
          ::ndnboost::detail::throw_failed_impl                    \
-         (#EXCEP, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION); \
+         (#EXCEP, __FILE__, __LINE__, NDNBOOST_CURRENT_FUNCTION); \
       }                                                        \
       catch(EXCEP const&) {                                    \
       }                                                        \
       catch(...) {                                             \
          ::ndnboost::detail::throw_failed_impl                    \
-         (#EXCEP, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION); \
+         (#EXCEP, __FILE__, __LINE__, NDNBOOST_CURRENT_FUNCTION); \
       }                                                        \
    //
 #else
-   #define BOOST_TEST_THROWS( EXPR, EXCEP )
+   #define NDNBOOST_TEST_THROWS( EXPR, EXCEP )
 #endif
 
-#endif // #ifndef BOOST_DETAIL_LIGHTWEIGHT_TEST_HPP_INCLUDED
+#endif // #ifndef NDNBOOST_DETAIL_LIGHTWEIGHT_TEST_HPP_INCLUDED
diff --git a/include/ndnboost/detail/no_exceptions_support.hpp b/include/ndnboost/detail/no_exceptions_support.hpp
index a56958e..037b18c 100644
--- a/include/ndnboost/detail/no_exceptions_support.hpp
+++ b/include/ndnboost/detail/no_exceptions_support.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_DETAIL_NO_EXCEPTIONS_SUPPORT_HPP_
-#define BOOST_DETAIL_NO_EXCEPTIONS_SUPPORT_HPP_
+#ifndef NDNBOOST_DETAIL_NO_EXCEPTIONS_SUPPORT_HPP_
+#define NDNBOOST_DETAIL_NO_EXCEPTIONS_SUPPORT_HPP_
 
 #if (defined _MSC_VER) && (_MSC_VER >= 1200)
 #  pragma once
@@ -13,7 +13,7 @@
 //
 //
 // This file contains helper macros used when exception support may be
-// disabled (as indicated by macro BOOST_NO_EXCEPTIONS).
+// disabled (as indicated by macro NDNBOOST_NO_EXCEPTIONS).
 //
 // Before picking up these macros you may consider using RAII techniques
 // to deal with exceptions - their syntax can be always the same with 
@@ -23,15 +23,15 @@
 /* Example of use:
 
 void foo() {
-  BOOST_TRY {
+  NDNBOOST_TRY {
     ...
-  } BOOST_CATCH(const std::bad_alloc&) {
+  } NDNBOOST_CATCH(const std::bad_alloc&) {
       ...
-      BOOST_RETHROW
-  } BOOST_CATCH(const std::exception& e) {
+      NDNBOOST_RETHROW
+  } NDNBOOST_CATCH(const std::exception& e) {
       ...
   }
-  BOOST_CATCH_END
+  NDNBOOST_CATCH_END
 }
 
 With exception support enabled it will expand into:
@@ -66,21 +66,21 @@
 #include <ndnboost/config.hpp>
 #include <ndnboost/detail/workaround.hpp>
 
-#if !(defined BOOST_NO_EXCEPTIONS)
-#    define BOOST_TRY { try
-#    define BOOST_CATCH(x) catch(x)
-#    define BOOST_RETHROW throw;
-#    define BOOST_CATCH_END }
+#if !(defined NDNBOOST_NO_EXCEPTIONS)
+#    define NDNBOOST_TRY { try
+#    define NDNBOOST_CATCH(x) catch(x)
+#    define NDNBOOST_RETHROW throw;
+#    define NDNBOOST_CATCH_END }
 #else
-#    if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
-#        define BOOST_TRY { if ("")
-#        define BOOST_CATCH(x) else if (!"")
+#    if NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564))
+#        define NDNBOOST_TRY { if ("")
+#        define NDNBOOST_CATCH(x) else if (!"")
 #    else
-#        define BOOST_TRY { if (true)
-#        define BOOST_CATCH(x) else if (false)
+#        define NDNBOOST_TRY { if (true)
+#        define NDNBOOST_CATCH(x) else if (false)
 #    endif
-#    define BOOST_RETHROW
-#    define BOOST_CATCH_END }
+#    define NDNBOOST_RETHROW
+#    define NDNBOOST_CATCH_END }
 #endif
 
 
diff --git a/include/ndnboost/detail/ob_call_traits.hpp b/include/ndnboost/detail/ob_call_traits.hpp
index 45f3743..ddbbb0c 100644
--- a/include/ndnboost/detail/ob_call_traits.hpp
+++ b/include/ndnboost/detail/ob_call_traits.hpp
@@ -16,23 +16,23 @@
       & Ulrich Eisenecker.
 */
 
-#ifndef BOOST_OB_CALL_TRAITS_HPP
-#define BOOST_OB_CALL_TRAITS_HPP
+#ifndef NDNBOOST_OB_CALL_TRAITS_HPP
+#define NDNBOOST_OB_CALL_TRAITS_HPP
 
-#ifndef BOOST_CONFIG_HPP
+#ifndef NDNBOOST_CONFIG_HPP
 #include <ndnboost/config.hpp>
 #endif
 
-#ifndef BOOST_ARITHMETIC_TYPE_TRAITS_HPP
+#ifndef NDNBOOST_ARITHMETIC_TYPE_TRAITS_HPP
 #include <ndnboost/type_traits/arithmetic_traits.hpp>
 #endif
-#ifndef BOOST_COMPOSITE_TYPE_TRAITS_HPP
+#ifndef NDNBOOST_COMPOSITE_TYPE_TRAITS_HPP
 #include <ndnboost/type_traits/composite_traits.hpp>
 #endif
 
 namespace ndnboost{
 
-#ifdef BOOST_MSVC6_MEMBER_TEMPLATES
+#ifdef NDNBOOST_MSVC6_MEMBER_TEMPLATES
 //
 // use member templates to emulate
 // partial specialisation:
@@ -165,4 +165,4 @@
 
 }
 
-#endif // BOOST_OB_CALL_TRAITS_HPP
+#endif // NDNBOOST_OB_CALL_TRAITS_HPP
diff --git a/include/ndnboost/detail/reference_content.hpp b/include/ndnboost/detail/reference_content.hpp
index 52d2c02..098d4ea 100644
--- a/include/ndnboost/detail/reference_content.hpp
+++ b/include/ndnboost/detail/reference_content.hpp
@@ -10,12 +10,12 @@
 // accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_DETAIL_REFERENCE_CONTENT_HPP
-#define BOOST_DETAIL_REFERENCE_CONTENT_HPP
+#ifndef NDNBOOST_DETAIL_REFERENCE_CONTENT_HPP
+#define NDNBOOST_DETAIL_REFERENCE_CONTENT_HPP
 
 #include "ndnboost/config.hpp"
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 #   include "ndnboost/mpl/bool.hpp"
 #   include "ndnboost/type_traits/has_nothrow_copy.hpp"
 #else
@@ -78,7 +78,7 @@
 
 template <typename T = mpl::void_> struct make_reference_content;
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template <typename T>
 struct make_reference_content
@@ -92,7 +92,7 @@
     typedef reference_content<T&> type;
 };
 
-#else // defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#else // defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template <typename T>
 struct make_reference_content
@@ -104,7 +104,7 @@
 {
 };
 
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION workaround
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION workaround
 
 template <>
 struct make_reference_content< mpl::void_ >
@@ -124,7 +124,7 @@
 // reference_content<T&> type traits specializations
 //
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template <typename T>
 struct has_nothrow_copy<
@@ -134,8 +134,8 @@
 {
 };
 
-#endif // !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#endif // !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 } // namespace ndnboost
 
-#endif // BOOST_DETAIL_REFERENCE_CONTENT_HPP
+#endif // NDNBOOST_DETAIL_REFERENCE_CONTENT_HPP
diff --git a/include/ndnboost/detail/sp_typeinfo.hpp b/include/ndnboost/detail/sp_typeinfo.hpp
index 2239709..7ed63aa 100644
--- a/include/ndnboost/detail/sp_typeinfo.hpp
+++ b/include/ndnboost/detail/sp_typeinfo.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_DETAIL_SP_TYPEINFO_HPP_INCLUDED
-#define BOOST_DETAIL_SP_TYPEINFO_HPP_INCLUDED
+#ifndef NDNBOOST_DETAIL_SP_TYPEINFO_HPP_INCLUDED
+#define NDNBOOST_DETAIL_SP_TYPEINFO_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -17,7 +17,7 @@
 
 #include <ndnboost/config.hpp>
 
-#if defined( BOOST_NO_TYPEID )
+#if defined( NDNBOOST_NO_TYPEID )
 
 #include <ndnboost/current_function.hpp>
 #include <functional>
@@ -70,7 +70,7 @@
 
     static char const * name()
     {
-        return BOOST_CURRENT_FUNCTION;
+        return NDNBOOST_CURRENT_FUNCTION;
     }
 };
 
@@ -102,7 +102,7 @@
 
 } // namespace ndnboost
 
-#define BOOST_SP_TYPEID(T) (ndnboost::detail::sp_typeid_<T>::ti_)
+#define NDNBOOST_SP_TYPEID(T) (ndnboost::detail::sp_typeid_<T>::ti_)
 
 #else
 
@@ -114,7 +114,7 @@
 namespace detail
 {
 
-#if defined( BOOST_NO_STD_TYPEINFO )
+#if defined( NDNBOOST_NO_STD_TYPEINFO )
 
 typedef ::type_info sp_typeinfo;
 
@@ -128,8 +128,8 @@
 
 } // namespace ndnboost
 
-#define BOOST_SP_TYPEID(T) typeid(T)
+#define NDNBOOST_SP_TYPEID(T) typeid(T)
 
 #endif
 
-#endif  // #ifndef BOOST_DETAIL_SP_TYPEINFO_HPP_INCLUDED
+#endif  // #ifndef NDNBOOST_DETAIL_SP_TYPEINFO_HPP_INCLUDED
diff --git a/include/ndnboost/detail/workaround.hpp b/include/ndnboost/detail/workaround.hpp
index 6568e47..7e4ace0 100644
--- a/include/ndnboost/detail/workaround.hpp
+++ b/include/ndnboost/detail/workaround.hpp
@@ -9,34 +9,34 @@
 //
 // Usage:
 //
-//     #if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+//     #if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
 //        // workaround for eVC4 and VC6
 //        ... // workaround code here
 //     #endif
 //
-// When BOOST_STRICT_CONFIG is defined, expands to 0. Otherwise, the
+// When NDNBOOST_STRICT_CONFIG is defined, expands to 0. Otherwise, the
 // first argument must be undefined or expand to a numeric
 // value. The above expands to:
 //
-//     (BOOST_MSVC) != 0 && (BOOST_MSVC) < 1300
+//     (NDNBOOST_MSVC) != 0 && (NDNBOOST_MSVC) < 1300
 //
 // When used for workarounds that apply to the latest known version 
 // and all earlier versions of a compiler, the following convention 
 // should be observed:
 //
-//     #if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1301))
+//     #if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, NDNBOOST_TESTED_AT(1301))
 //
 // The version number in this case corresponds to the last version in
 // which the workaround was known to have been required. When
-// BOOST_DETECT_OUTDATED_WORKAROUNDS is not the defined, the macro
-// BOOST_TESTED_AT(x) expands to "!= 0", which effectively activates
+// NDNBOOST_DETECT_OUTDATED_WORKAROUNDS is not the defined, the macro
+// NDNBOOST_TESTED_AT(x) expands to "!= 0", which effectively activates
 // the workaround for any version of the compiler. When
-// BOOST_DETECT_OUTDATED_WORKAROUNDS is defined, a compiler warning or
+// NDNBOOST_DETECT_OUTDATED_WORKAROUNDS is defined, a compiler warning or
 // error will be issued if the compiler version exceeds the argument
-// to BOOST_TESTED_AT().  This can be used to locate workarounds which
+// to NDNBOOST_TESTED_AT().  This can be used to locate workarounds which
 // may be obsoleted by newer versions.
 
-# ifndef BOOST_STRICT_CONFIG
+# ifndef NDNBOOST_STRICT_CONFIG
 
 #include <ndnboost/config.hpp>
 
@@ -60,15 +60,15 @@
 #else
 #define _MSC_FULL_VER_WORKAROUND_GUARD 0
 #endif
-#ifndef BOOST_MSVC
-#define BOOST_MSVC_WORKAROUND_GUARD 1
+#ifndef NDNBOOST_MSVC
+#define NDNBOOST_MSVC_WORKAROUND_GUARD 1
 #else
-#define BOOST_MSVC_WORKAROUND_GUARD 0
+#define NDNBOOST_MSVC_WORKAROUND_GUARD 0
 #endif
-#ifndef BOOST_MSVC_FULL_VER
-#define BOOST_MSVC_FULL_VER_WORKAROUND_GUARD 1
+#ifndef NDNBOOST_MSVC_FULL_VER
+#define NDNBOOST_MSVC_FULL_VER_WORKAROUND_GUARD 1
 #else
-#define BOOST_MSVC_FULL_VER_WORKAROUND_GUARD 0
+#define NDNBOOST_MSVC_FULL_VER_WORKAROUND_GUARD 0
 #endif
 #ifndef __GNUC__
 #define __GNUC___WORKAROUND_GUARD 1
@@ -171,10 +171,10 @@
 #else
 #define _RWSTD_VER_WORKAROUND_GUARD 0
 #endif
-#ifndef BOOST_RWSTD_VER
-#define BOOST_RWSTD_VER_WORKAROUND_GUARD 1
+#ifndef NDNBOOST_RWSTD_VER
+#define NDNBOOST_RWSTD_VER_WORKAROUND_GUARD 1
 #else
-#define BOOST_RWSTD_VER_WORKAROUND_GUARD 0
+#define NDNBOOST_RWSTD_VER_WORKAROUND_GUARD 0
 #endif
 #ifndef __GLIBCPP__
 #define __GLIBCPP___WORKAROUND_GUARD 1
@@ -207,60 +207,60 @@
 #define _CPPLIB_VER_WORKAROUND_GUARD 0
 #endif
 
-#ifndef BOOST_INTEL_CXX_VERSION
-#define BOOST_INTEL_CXX_VERSION_WORKAROUND_GUARD 1
+#ifndef NDNBOOST_INTEL_CXX_VERSION
+#define NDNBOOST_INTEL_CXX_VERSION_WORKAROUND_GUARD 1
 #else
-#define BOOST_INTEL_CXX_VERSION_WORKAROUND_GUARD 0
+#define NDNBOOST_INTEL_CXX_VERSION_WORKAROUND_GUARD 0
 #endif
-#ifndef BOOST_INTEL_WIN
-#define BOOST_INTEL_WIN_WORKAROUND_GUARD 1
+#ifndef NDNBOOST_INTEL_WIN
+#define NDNBOOST_INTEL_WIN_WORKAROUND_GUARD 1
 #else
-#define BOOST_INTEL_WIN_WORKAROUND_GUARD 0
+#define NDNBOOST_INTEL_WIN_WORKAROUND_GUARD 0
 #endif
-#ifndef BOOST_DINKUMWARE_STDLIB
-#define BOOST_DINKUMWARE_STDLIB_WORKAROUND_GUARD 1
+#ifndef NDNBOOST_DINKUMWARE_STDLIB
+#define NDNBOOST_DINKUMWARE_STDLIB_WORKAROUND_GUARD 1
 #else
-#define BOOST_DINKUMWARE_STDLIB_WORKAROUND_GUARD 0
+#define NDNBOOST_DINKUMWARE_STDLIB_WORKAROUND_GUARD 0
 #endif
-#ifndef BOOST_INTEL
-#define BOOST_INTEL_WORKAROUND_GUARD 1
+#ifndef NDNBOOST_INTEL
+#define NDNBOOST_INTEL_WORKAROUND_GUARD 1
 #else
-#define BOOST_INTEL_WORKAROUND_GUARD 0
+#define NDNBOOST_INTEL_WORKAROUND_GUARD 0
 #endif
 // Always define to zero, if it's used it'll be defined my MPL:
-#define BOOST_MPL_CFG_GCC_WORKAROUND_GUARD 0
+#define NDNBOOST_MPL_CFG_GCC_WORKAROUND_GUARD 0
 
-#  define BOOST_WORKAROUND(symbol, test)                \
+#  define NDNBOOST_WORKAROUND(symbol, test)                \
          ((symbol ## _WORKAROUND_GUARD + 0 == 0) &&     \
          (symbol != 0) && (1 % (( (symbol test) ) + 1)))
 //                              ^ ^           ^ ^
 // The extra level of parenthesis nesting above, along with the
-// BOOST_OPEN_PAREN indirection below, is required to satisfy the
+// NDNBOOST_OPEN_PAREN indirection below, is required to satisfy the
 // broken preprocessor in MWCW 8.3 and earlier.
 //
 // The basic mechanism works as follows:
 //      (symbol test) + 1        =>   if (symbol test) then 2 else 1
 //      1 % ((symbol test) + 1)  =>   if (symbol test) then 1 else 0
 //
-// The complication with % is for cooperation with BOOST_TESTED_AT().
-// When "test" is BOOST_TESTED_AT(x) and
-// BOOST_DETECT_OUTDATED_WORKAROUNDS is #defined,
+// The complication with % is for cooperation with NDNBOOST_TESTED_AT().
+// When "test" is NDNBOOST_TESTED_AT(x) and
+// NDNBOOST_DETECT_OUTDATED_WORKAROUNDS is #defined,
 //
 //      symbol test              =>   if (symbol <= x) then 1 else -1
 //      (symbol test) + 1        =>   if (symbol <= x) then 2 else 0
 //      1 % ((symbol test) + 1)  =>   if (symbol <= x) then 1 else divide-by-zero
 //
 
-#  ifdef BOOST_DETECT_OUTDATED_WORKAROUNDS
-#   define BOOST_OPEN_PAREN (
-#   define BOOST_TESTED_AT(value)  > value) ?(-1): BOOST_OPEN_PAREN 1
+#  ifdef NDNBOOST_DETECT_OUTDATED_WORKAROUNDS
+#   define NDNBOOST_OPEN_PAREN (
+#   define NDNBOOST_TESTED_AT(value)  > value) ?(-1): NDNBOOST_OPEN_PAREN 1
 #  else
-#   define BOOST_TESTED_AT(value) != ((value)-(value))
+#   define NDNBOOST_TESTED_AT(value) != ((value)-(value))
 #  endif
 
 # else
 
-#  define BOOST_WORKAROUND(symbol, test) 0
+#  define NDNBOOST_WORKAROUND(symbol, test) 0
 
 # endif 
 
diff --git a/include/ndnboost/exception/current_exception_cast.hpp b/include/ndnboost/exception/current_exception_cast.hpp
index f4da16b..2dc62ea 100644
--- a/include/ndnboost/exception/current_exception_cast.hpp
+++ b/include/ndnboost/exception/current_exception_cast.hpp
@@ -5,10 +5,10 @@
 
 #ifndef UUID_7E83C166200811DE885E826156D89593
 #define UUID_7E83C166200811DE885E826156D89593
-#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(NDNBOOST_EXCEPTION_ENABLE_WARNINGS)
 #pragma GCC system_header
 #endif
-#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#if defined(_MSC_VER) && !defined(NDNBOOST_EXCEPTION_ENABLE_WARNINGS)
 #pragma warning(push,1)
 #endif
 
@@ -37,7 +37,7 @@
         }
     }
 
-#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#if defined(_MSC_VER) && !defined(NDNBOOST_EXCEPTION_ENABLE_WARNINGS)
 #pragma warning(pop)
 #endif
 #endif
diff --git a/include/ndnboost/exception/detail/attribute_noreturn.hpp b/include/ndnboost/exception/detail/attribute_noreturn.hpp
index ae9f031..abf526f 100644
--- a/include/ndnboost/exception/detail/attribute_noreturn.hpp
+++ b/include/ndnboost/exception/detail/attribute_noreturn.hpp
@@ -7,11 +7,11 @@
 #define UUID_61531AB0680611DEADD5846855D89593
 
 #if defined(_MSC_VER)
-#define BOOST_ATTRIBUTE_NORETURN __declspec(noreturn)
+#define NDNBOOST_ATTRIBUTE_NORETURN __declspec(noreturn)
 #elif defined(__GNUC__)
-#define BOOST_ATTRIBUTE_NORETURN __attribute__((__noreturn__))
+#define NDNBOOST_ATTRIBUTE_NORETURN __attribute__((__noreturn__))
 #else
-#define BOOST_ATTRIBUTE_NORETURN
+#define NDNBOOST_ATTRIBUTE_NORETURN
 #endif
 
 #endif
diff --git a/include/ndnboost/exception/detail/error_info_impl.hpp b/include/ndnboost/exception/detail/error_info_impl.hpp
index 9847814..3127f2a 100644
--- a/include/ndnboost/exception/detail/error_info_impl.hpp
+++ b/include/ndnboost/exception/detail/error_info_impl.hpp
@@ -5,10 +5,10 @@
 
 #ifndef UUID_CE6983AC753411DDA764247956D89593
 #define UUID_CE6983AC753411DDA764247956D89593
-#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(NDNBOOST_EXCEPTION_ENABLE_WARNINGS)
 #pragma GCC system_header
 #endif
-#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#if defined(_MSC_VER) && !defined(NDNBOOST_EXCEPTION_ENABLE_WARNINGS)
 #pragma warning(push,1)
 #endif
 
@@ -68,7 +68,7 @@
         };
     }
 
-#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#if defined(_MSC_VER) && !defined(NDNBOOST_EXCEPTION_ENABLE_WARNINGS)
 #pragma warning(pop)
 #endif
 #endif
diff --git a/include/ndnboost/exception/detail/type_info.hpp b/include/ndnboost/exception/detail/type_info.hpp
index d1c671f..4c9eb47 100644
--- a/include/ndnboost/exception/detail/type_info.hpp
+++ b/include/ndnboost/exception/detail/type_info.hpp
@@ -5,17 +5,17 @@
 
 #ifndef UUID_C3E1741C754311DDB2834CCA55D89593
 #define UUID_C3E1741C754311DDB2834CCA55D89593
-#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(NDNBOOST_EXCEPTION_ENABLE_WARNINGS)
 #pragma GCC system_header
 #endif
-#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#if defined(_MSC_VER) && !defined(NDNBOOST_EXCEPTION_ENABLE_WARNINGS)
 #pragma warning(push,1)
 #endif
 
 #include <ndnboost/detail/sp_typeinfo.hpp>
 #include <ndnboost/current_function.hpp>
 #include <ndnboost/config.hpp>
-#ifndef BOOST_NO_TYPEID
+#ifndef NDNBOOST_NO_TYPEID
 #include <ndnboost/units/detail/utility.hpp>
 #endif
 #include <string>
@@ -28,8 +28,8 @@
     std::string
     tag_type_name()
         {
-#ifdef BOOST_NO_TYPEID
-        return BOOST_CURRENT_FUNCTION;
+#ifdef NDNBOOST_NO_TYPEID
+        return NDNBOOST_CURRENT_FUNCTION;
 #else
         return units::detail::demangle(typeid(T*).name());
 #endif
@@ -40,8 +40,8 @@
     std::string
     type_name()
         {
-#ifdef BOOST_NO_TYPEID
-        return BOOST_CURRENT_FUNCTION;
+#ifdef NDNBOOST_NO_TYPEID
+        return NDNBOOST_CURRENT_FUNCTION;
 #else
         return units::detail::demangle(typeid(T).name());
 #endif
@@ -71,13 +71,13 @@
         }
     }
 
-#define BOOST_EXCEPTION_STATIC_TYPEID(T) ::ndnboost::exception_detail::type_info_(BOOST_SP_TYPEID(T))
+#define NDNBOOST_EXCEPTION_STATIC_TYPEID(T) ::ndnboost::exception_detail::type_info_(NDNBOOST_SP_TYPEID(T))
 
-#ifndef BOOST_NO_RTTI
-#define BOOST_EXCEPTION_DYNAMIC_TYPEID(x) ::ndnboost::exception_detail::type_info_(typeid(x))
+#ifndef NDNBOOST_NO_RTTI
+#define NDNBOOST_EXCEPTION_DYNAMIC_TYPEID(x) ::ndnboost::exception_detail::type_info_(typeid(x))
 #endif
 
-#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#if defined(_MSC_VER) && !defined(NDNBOOST_EXCEPTION_ENABLE_WARNINGS)
 #pragma warning(pop)
 #endif
 #endif
diff --git a/include/ndnboost/exception/exception.hpp b/include/ndnboost/exception/exception.hpp
index 1597252..cb1a8cb 100644
--- a/include/ndnboost/exception/exception.hpp
+++ b/include/ndnboost/exception/exception.hpp
@@ -5,10 +5,10 @@
 
 #ifndef UUID_274DA366004E11DCB1DDFE2E56D89593
 #define UUID_274DA366004E11DCB1DDFE2E56D89593
-#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(NDNBOOST_EXCEPTION_ENABLE_WARNINGS)
 #pragma GCC system_header
 #endif
-#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#if defined(_MSC_VER) && !defined(NDNBOOST_EXCEPTION_ENABLE_WARNINGS)
 #pragma warning(push,1)
 #endif
 
@@ -477,7 +477,7 @@
         }
     }
 
-#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#if defined(_MSC_VER) && !defined(NDNBOOST_EXCEPTION_ENABLE_WARNINGS)
 #pragma warning(pop)
 #endif
 #endif
diff --git a/include/ndnboost/exception/get_error_info.hpp b/include/ndnboost/exception/get_error_info.hpp
index 9a798ed..14f6c56 100644
--- a/include/ndnboost/exception/get_error_info.hpp
+++ b/include/ndnboost/exception/get_error_info.hpp
@@ -5,10 +5,10 @@
 
 #ifndef UUID_1A590226753311DD9E4CCF6156D89593
 #define UUID_1A590226753311DD9E4CCF6156D89593
-#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(NDNBOOST_EXCEPTION_ENABLE_WARNINGS)
 #pragma GCC system_header
 #endif
-#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#if defined(_MSC_VER) && !defined(NDNBOOST_EXCEPTION_ENABLE_WARNINGS)
 #pragma warning(push,1)
 #endif
 
@@ -32,10 +32,10 @@
             get( exception const & x )
                 {
                 if( exception_detail::error_info_container * c=x.data_.get() )
-                    if( shared_ptr<exception_detail::error_info_base> eib = c->get(BOOST_EXCEPTION_STATIC_TYPEID(ErrorInfo)) )
+                    if( shared_ptr<exception_detail::error_info_base> eib = c->get(NDNBOOST_EXCEPTION_STATIC_TYPEID(ErrorInfo)) )
                         {
-#ifndef BOOST_NO_RTTI
-                        BOOST_ASSERT( 0!=dynamic_cast<ErrorInfo *>(eib.get()) );
+#ifndef NDNBOOST_NO_RTTI
+                        NDNBOOST_ASSERT( 0!=dynamic_cast<ErrorInfo *>(eib.get()) );
 #endif
                         ErrorInfo * w = static_cast<ErrorInfo *>(eib.get());
                         return &w->value();
@@ -95,7 +95,7 @@
             };
         }
 
-#ifdef BOOST_NO_RTTI
+#ifdef NDNBOOST_NO_RTTI
     template <class ErrorInfo>
     inline
     typename ErrorInfo::value_type const *
@@ -124,7 +124,7 @@
 #endif
     }
 
-#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#if defined(_MSC_VER) && !defined(NDNBOOST_EXCEPTION_ENABLE_WARNINGS)
 #pragma warning(pop)
 #endif
 #endif
diff --git a/include/ndnboost/function.hpp b/include/ndnboost/function.hpp
index a351102..ebb0926 100644
--- a/include/ndnboost/function.hpp
+++ b/include/ndnboost/function.hpp
@@ -15,52 +15,52 @@
 #include <ndnboost/preprocessor/iterate.hpp>
 #include <ndnboost/detail/workaround.hpp>
 
-#ifndef BOOST_FUNCTION_MAX_ARGS
-#  define BOOST_FUNCTION_MAX_ARGS 10
-#endif // BOOST_FUNCTION_MAX_ARGS
+#ifndef NDNBOOST_FUNCTION_MAX_ARGS
+#  define NDNBOOST_FUNCTION_MAX_ARGS 10
+#endif // NDNBOOST_FUNCTION_MAX_ARGS
 
 // Include the prologue here so that the use of file-level iteration
 // in anything that may be included by function_template.hpp doesn't break
 #include <ndnboost/function/detail/prologue.hpp>
 
 // Older Visual Age C++ version do not handle the file iteration well
-#if BOOST_WORKAROUND(__IBMCPP__, >= 500) && BOOST_WORKAROUND(__IBMCPP__, < 800)
-#  if BOOST_FUNCTION_MAX_ARGS >= 0
+#if NDNBOOST_WORKAROUND(__IBMCPP__, >= 500) && NDNBOOST_WORKAROUND(__IBMCPP__, < 800)
+#  if NDNBOOST_FUNCTION_MAX_ARGS >= 0
 #    include <ndnboost/function/function0.hpp>
 #  endif
-#  if BOOST_FUNCTION_MAX_ARGS >= 1
+#  if NDNBOOST_FUNCTION_MAX_ARGS >= 1
 #    include <ndnboost/function/function1.hpp>
 #  endif
-#  if BOOST_FUNCTION_MAX_ARGS >= 2
+#  if NDNBOOST_FUNCTION_MAX_ARGS >= 2
 #    include <ndnboost/function/function2.hpp>
 #  endif
-#  if BOOST_FUNCTION_MAX_ARGS >= 3
+#  if NDNBOOST_FUNCTION_MAX_ARGS >= 3
 #    include <ndnboost/function/function3.hpp>
 #  endif
-#  if BOOST_FUNCTION_MAX_ARGS >= 4
+#  if NDNBOOST_FUNCTION_MAX_ARGS >= 4
 #    include <ndnboost/function/function4.hpp>
 #  endif
-#  if BOOST_FUNCTION_MAX_ARGS >= 5
+#  if NDNBOOST_FUNCTION_MAX_ARGS >= 5
 #    include <ndnboost/function/function5.hpp>
 #  endif
-#  if BOOST_FUNCTION_MAX_ARGS >= 6
+#  if NDNBOOST_FUNCTION_MAX_ARGS >= 6
 #    include <ndnboost/function/function6.hpp>
 #  endif
-#  if BOOST_FUNCTION_MAX_ARGS >= 7
+#  if NDNBOOST_FUNCTION_MAX_ARGS >= 7
 #    include <ndnboost/function/function7.hpp>
 #  endif
-#  if BOOST_FUNCTION_MAX_ARGS >= 8
+#  if NDNBOOST_FUNCTION_MAX_ARGS >= 8
 #    include <ndnboost/function/function8.hpp>
 #  endif
-#  if BOOST_FUNCTION_MAX_ARGS >= 9
+#  if NDNBOOST_FUNCTION_MAX_ARGS >= 9
 #    include <ndnboost/function/function9.hpp>
 #  endif
-#  if BOOST_FUNCTION_MAX_ARGS >= 10
+#  if NDNBOOST_FUNCTION_MAX_ARGS >= 10
 #    include <ndnboost/function/function10.hpp>
 #  endif
 #else
 // What is the '3' for?
-#  define BOOST_PP_ITERATION_PARAMS_1 (3,(0,BOOST_FUNCTION_MAX_ARGS,<ndnboost/function/detail/function_iterate.hpp>))
-#  include BOOST_PP_ITERATE()
-#  undef BOOST_PP_ITERATION_PARAMS_1
+#  define NDNBOOST_PP_ITERATION_PARAMS_1 (3,(0,NDNBOOST_FUNCTION_MAX_ARGS,<ndnboost/function/detail/function_iterate.hpp>))
+#  include NDNBOOST_PP_ITERATE()
+#  undef NDNBOOST_PP_ITERATION_PARAMS_1
 #endif
diff --git a/include/ndnboost/function/detail/function_iterate.hpp b/include/ndnboost/function/detail/function_iterate.hpp
index 5c41196..344f283 100644
--- a/include/ndnboost/function/detail/function_iterate.hpp
+++ b/include/ndnboost/function/detail/function_iterate.hpp
@@ -6,11 +6,11 @@
 //  http://www.boost.org/LICENSE_1_0.txt)
 
 // For more information, see http://www.boost.org
-#if !defined(BOOST_PP_IS_ITERATING)
+#if !defined(NDNBOOST_PP_IS_ITERATING)
 # error Boost.Function - do not include this file!
 #endif
 
-#define BOOST_FUNCTION_NUM_ARGS BOOST_PP_ITERATION()
+#define NDNBOOST_FUNCTION_NUM_ARGS NDNBOOST_PP_ITERATION()
 #include <ndnboost/function/detail/maybe_include.hpp>
-#undef BOOST_FUNCTION_NUM_ARGS
+#undef NDNBOOST_FUNCTION_NUM_ARGS
 
diff --git a/include/ndnboost/function/detail/gen_maybe_include.pl b/include/ndnboost/function/detail/gen_maybe_include.pl
index ab4367d..53dcf8f 100644
--- a/include/ndnboost/function/detail/gen_maybe_include.pl
+++ b/include/ndnboost/function/detail/gen_maybe_include.pl
@@ -26,9 +26,9 @@
     else {
 	print OUT "#elif";
     }
-    print OUT " BOOST_FUNCTION_NUM_ARGS == $on_arg\n";
-    print OUT "#  ifndef BOOST_FUNCTION_$on_arg\n";
-    print OUT "#    define BOOST_FUNCTION_$on_arg\n";
+    print OUT " NDNBOOST_FUNCTION_NUM_ARGS == $on_arg\n";
+    print OUT "#  ifndef NDNBOOST_FUNCTION_$on_arg\n";
+    print OUT "#    define NDNBOOST_FUNCTION_$on_arg\n";
     print OUT "#    include <ndnboost/function/function_template.hpp>\n";
     print OUT "#  endif\n";
 }
diff --git a/include/ndnboost/function/detail/maybe_include.hpp b/include/ndnboost/function/detail/maybe_include.hpp
index a2f003e..90b998e 100644
--- a/include/ndnboost/function/detail/maybe_include.hpp
+++ b/include/ndnboost/function/detail/maybe_include.hpp
@@ -7,259 +7,259 @@
 
 // For more information, see http://www.boost.org
 
-#if BOOST_FUNCTION_NUM_ARGS == 0
-#  ifndef BOOST_FUNCTION_0
-#    define BOOST_FUNCTION_0
+#if NDNBOOST_FUNCTION_NUM_ARGS == 0
+#  ifndef NDNBOOST_FUNCTION_0
+#    define NDNBOOST_FUNCTION_0
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 1
-#  ifndef BOOST_FUNCTION_1
-#    define BOOST_FUNCTION_1
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 1
+#  ifndef NDNBOOST_FUNCTION_1
+#    define NDNBOOST_FUNCTION_1
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 2
-#  ifndef BOOST_FUNCTION_2
-#    define BOOST_FUNCTION_2
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 2
+#  ifndef NDNBOOST_FUNCTION_2
+#    define NDNBOOST_FUNCTION_2
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 3
-#  ifndef BOOST_FUNCTION_3
-#    define BOOST_FUNCTION_3
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 3
+#  ifndef NDNBOOST_FUNCTION_3
+#    define NDNBOOST_FUNCTION_3
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 4
-#  ifndef BOOST_FUNCTION_4
-#    define BOOST_FUNCTION_4
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 4
+#  ifndef NDNBOOST_FUNCTION_4
+#    define NDNBOOST_FUNCTION_4
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 5
-#  ifndef BOOST_FUNCTION_5
-#    define BOOST_FUNCTION_5
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 5
+#  ifndef NDNBOOST_FUNCTION_5
+#    define NDNBOOST_FUNCTION_5
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 6
-#  ifndef BOOST_FUNCTION_6
-#    define BOOST_FUNCTION_6
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 6
+#  ifndef NDNBOOST_FUNCTION_6
+#    define NDNBOOST_FUNCTION_6
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 7
-#  ifndef BOOST_FUNCTION_7
-#    define BOOST_FUNCTION_7
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 7
+#  ifndef NDNBOOST_FUNCTION_7
+#    define NDNBOOST_FUNCTION_7
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 8
-#  ifndef BOOST_FUNCTION_8
-#    define BOOST_FUNCTION_8
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 8
+#  ifndef NDNBOOST_FUNCTION_8
+#    define NDNBOOST_FUNCTION_8
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 9
-#  ifndef BOOST_FUNCTION_9
-#    define BOOST_FUNCTION_9
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 9
+#  ifndef NDNBOOST_FUNCTION_9
+#    define NDNBOOST_FUNCTION_9
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 10
-#  ifndef BOOST_FUNCTION_10
-#    define BOOST_FUNCTION_10
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 10
+#  ifndef NDNBOOST_FUNCTION_10
+#    define NDNBOOST_FUNCTION_10
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 11
-#  ifndef BOOST_FUNCTION_11
-#    define BOOST_FUNCTION_11
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 11
+#  ifndef NDNBOOST_FUNCTION_11
+#    define NDNBOOST_FUNCTION_11
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 12
-#  ifndef BOOST_FUNCTION_12
-#    define BOOST_FUNCTION_12
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 12
+#  ifndef NDNBOOST_FUNCTION_12
+#    define NDNBOOST_FUNCTION_12
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 13
-#  ifndef BOOST_FUNCTION_13
-#    define BOOST_FUNCTION_13
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 13
+#  ifndef NDNBOOST_FUNCTION_13
+#    define NDNBOOST_FUNCTION_13
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 14
-#  ifndef BOOST_FUNCTION_14
-#    define BOOST_FUNCTION_14
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 14
+#  ifndef NDNBOOST_FUNCTION_14
+#    define NDNBOOST_FUNCTION_14
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 15
-#  ifndef BOOST_FUNCTION_15
-#    define BOOST_FUNCTION_15
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 15
+#  ifndef NDNBOOST_FUNCTION_15
+#    define NDNBOOST_FUNCTION_15
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 16
-#  ifndef BOOST_FUNCTION_16
-#    define BOOST_FUNCTION_16
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 16
+#  ifndef NDNBOOST_FUNCTION_16
+#    define NDNBOOST_FUNCTION_16
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 17
-#  ifndef BOOST_FUNCTION_17
-#    define BOOST_FUNCTION_17
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 17
+#  ifndef NDNBOOST_FUNCTION_17
+#    define NDNBOOST_FUNCTION_17
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 18
-#  ifndef BOOST_FUNCTION_18
-#    define BOOST_FUNCTION_18
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 18
+#  ifndef NDNBOOST_FUNCTION_18
+#    define NDNBOOST_FUNCTION_18
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 19
-#  ifndef BOOST_FUNCTION_19
-#    define BOOST_FUNCTION_19
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 19
+#  ifndef NDNBOOST_FUNCTION_19
+#    define NDNBOOST_FUNCTION_19
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 20
-#  ifndef BOOST_FUNCTION_20
-#    define BOOST_FUNCTION_20
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 20
+#  ifndef NDNBOOST_FUNCTION_20
+#    define NDNBOOST_FUNCTION_20
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 21
-#  ifndef BOOST_FUNCTION_21
-#    define BOOST_FUNCTION_21
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 21
+#  ifndef NDNBOOST_FUNCTION_21
+#    define NDNBOOST_FUNCTION_21
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 22
-#  ifndef BOOST_FUNCTION_22
-#    define BOOST_FUNCTION_22
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 22
+#  ifndef NDNBOOST_FUNCTION_22
+#    define NDNBOOST_FUNCTION_22
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 23
-#  ifndef BOOST_FUNCTION_23
-#    define BOOST_FUNCTION_23
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 23
+#  ifndef NDNBOOST_FUNCTION_23
+#    define NDNBOOST_FUNCTION_23
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 24
-#  ifndef BOOST_FUNCTION_24
-#    define BOOST_FUNCTION_24
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 24
+#  ifndef NDNBOOST_FUNCTION_24
+#    define NDNBOOST_FUNCTION_24
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 25
-#  ifndef BOOST_FUNCTION_25
-#    define BOOST_FUNCTION_25
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 25
+#  ifndef NDNBOOST_FUNCTION_25
+#    define NDNBOOST_FUNCTION_25
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 26
-#  ifndef BOOST_FUNCTION_26
-#    define BOOST_FUNCTION_26
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 26
+#  ifndef NDNBOOST_FUNCTION_26
+#    define NDNBOOST_FUNCTION_26
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 27
-#  ifndef BOOST_FUNCTION_27
-#    define BOOST_FUNCTION_27
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 27
+#  ifndef NDNBOOST_FUNCTION_27
+#    define NDNBOOST_FUNCTION_27
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 28
-#  ifndef BOOST_FUNCTION_28
-#    define BOOST_FUNCTION_28
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 28
+#  ifndef NDNBOOST_FUNCTION_28
+#    define NDNBOOST_FUNCTION_28
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 29
-#  ifndef BOOST_FUNCTION_29
-#    define BOOST_FUNCTION_29
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 29
+#  ifndef NDNBOOST_FUNCTION_29
+#    define NDNBOOST_FUNCTION_29
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 30
-#  ifndef BOOST_FUNCTION_30
-#    define BOOST_FUNCTION_30
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 30
+#  ifndef NDNBOOST_FUNCTION_30
+#    define NDNBOOST_FUNCTION_30
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 31
-#  ifndef BOOST_FUNCTION_31
-#    define BOOST_FUNCTION_31
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 31
+#  ifndef NDNBOOST_FUNCTION_31
+#    define NDNBOOST_FUNCTION_31
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 32
-#  ifndef BOOST_FUNCTION_32
-#    define BOOST_FUNCTION_32
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 32
+#  ifndef NDNBOOST_FUNCTION_32
+#    define NDNBOOST_FUNCTION_32
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 33
-#  ifndef BOOST_FUNCTION_33
-#    define BOOST_FUNCTION_33
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 33
+#  ifndef NDNBOOST_FUNCTION_33
+#    define NDNBOOST_FUNCTION_33
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 34
-#  ifndef BOOST_FUNCTION_34
-#    define BOOST_FUNCTION_34
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 34
+#  ifndef NDNBOOST_FUNCTION_34
+#    define NDNBOOST_FUNCTION_34
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 35
-#  ifndef BOOST_FUNCTION_35
-#    define BOOST_FUNCTION_35
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 35
+#  ifndef NDNBOOST_FUNCTION_35
+#    define NDNBOOST_FUNCTION_35
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 36
-#  ifndef BOOST_FUNCTION_36
-#    define BOOST_FUNCTION_36
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 36
+#  ifndef NDNBOOST_FUNCTION_36
+#    define NDNBOOST_FUNCTION_36
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 37
-#  ifndef BOOST_FUNCTION_37
-#    define BOOST_FUNCTION_37
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 37
+#  ifndef NDNBOOST_FUNCTION_37
+#    define NDNBOOST_FUNCTION_37
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 38
-#  ifndef BOOST_FUNCTION_38
-#    define BOOST_FUNCTION_38
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 38
+#  ifndef NDNBOOST_FUNCTION_38
+#    define NDNBOOST_FUNCTION_38
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 39
-#  ifndef BOOST_FUNCTION_39
-#    define BOOST_FUNCTION_39
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 39
+#  ifndef NDNBOOST_FUNCTION_39
+#    define NDNBOOST_FUNCTION_39
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 40
-#  ifndef BOOST_FUNCTION_40
-#    define BOOST_FUNCTION_40
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 40
+#  ifndef NDNBOOST_FUNCTION_40
+#    define NDNBOOST_FUNCTION_40
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 41
-#  ifndef BOOST_FUNCTION_41
-#    define BOOST_FUNCTION_41
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 41
+#  ifndef NDNBOOST_FUNCTION_41
+#    define NDNBOOST_FUNCTION_41
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 42
-#  ifndef BOOST_FUNCTION_42
-#    define BOOST_FUNCTION_42
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 42
+#  ifndef NDNBOOST_FUNCTION_42
+#    define NDNBOOST_FUNCTION_42
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 43
-#  ifndef BOOST_FUNCTION_43
-#    define BOOST_FUNCTION_43
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 43
+#  ifndef NDNBOOST_FUNCTION_43
+#    define NDNBOOST_FUNCTION_43
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 44
-#  ifndef BOOST_FUNCTION_44
-#    define BOOST_FUNCTION_44
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 44
+#  ifndef NDNBOOST_FUNCTION_44
+#    define NDNBOOST_FUNCTION_44
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 45
-#  ifndef BOOST_FUNCTION_45
-#    define BOOST_FUNCTION_45
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 45
+#  ifndef NDNBOOST_FUNCTION_45
+#    define NDNBOOST_FUNCTION_45
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 46
-#  ifndef BOOST_FUNCTION_46
-#    define BOOST_FUNCTION_46
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 46
+#  ifndef NDNBOOST_FUNCTION_46
+#    define NDNBOOST_FUNCTION_46
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 47
-#  ifndef BOOST_FUNCTION_47
-#    define BOOST_FUNCTION_47
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 47
+#  ifndef NDNBOOST_FUNCTION_47
+#    define NDNBOOST_FUNCTION_47
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 48
-#  ifndef BOOST_FUNCTION_48
-#    define BOOST_FUNCTION_48
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 48
+#  ifndef NDNBOOST_FUNCTION_48
+#    define NDNBOOST_FUNCTION_48
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 49
-#  ifndef BOOST_FUNCTION_49
-#    define BOOST_FUNCTION_49
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 49
+#  ifndef NDNBOOST_FUNCTION_49
+#    define NDNBOOST_FUNCTION_49
 #    include <ndnboost/function/function_template.hpp>
 #  endif
-#elif BOOST_FUNCTION_NUM_ARGS == 50
-#  ifndef BOOST_FUNCTION_50
-#    define BOOST_FUNCTION_50
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 50
+#  ifndef NDNBOOST_FUNCTION_50
+#    define NDNBOOST_FUNCTION_50
 #    include <ndnboost/function/function_template.hpp>
 #  endif
 #else
diff --git a/include/ndnboost/function/detail/prologue.hpp b/include/ndnboost/function/detail/prologue.hpp
index 458324c..fac6e8e 100644
--- a/include/ndnboost/function/detail/prologue.hpp
+++ b/include/ndnboost/function/detail/prologue.hpp
@@ -7,8 +7,8 @@
 
 // For more information, see http://www.boost.org
 
-#ifndef BOOST_FUNCTION_PROLOGUE_HPP
-#define BOOST_FUNCTION_PROLOGUE_HPP
+#ifndef NDNBOOST_FUNCTION_PROLOGUE_HPP
+#define NDNBOOST_FUNCTION_PROLOGUE_HPP
 #  include <cassert>
 #  include <algorithm>
 #  include <ndnboost/config/no_tr1/functional.hpp> // unary_function, binary_function
@@ -23,4 +23,4 @@
 #  include <ndnboost/preprocessor/repeat.hpp>
 #  include <ndnboost/preprocessor/inc.hpp>
 #  include <ndnboost/type_traits/is_void.hpp>
-#endif // BOOST_FUNCTION_PROLOGUE_HPP
+#endif // NDNBOOST_FUNCTION_PROLOGUE_HPP
diff --git a/include/ndnboost/function/function0.hpp b/include/ndnboost/function/function0.hpp
index 79211dc..ea15d62 100644
--- a/include/ndnboost/function/function0.hpp
+++ b/include/ndnboost/function/function0.hpp
@@ -7,6 +7,6 @@
 
 // For more information, see http://www.boost.org
 
-#define BOOST_FUNCTION_NUM_ARGS 0
+#define NDNBOOST_FUNCTION_NUM_ARGS 0
 #include <ndnboost/function/detail/maybe_include.hpp>
-#undef BOOST_FUNCTION_NUM_ARGS
+#undef NDNBOOST_FUNCTION_NUM_ARGS
diff --git a/include/ndnboost/function/function1.hpp b/include/ndnboost/function/function1.hpp
index 83fbc19..bf4a605 100644
--- a/include/ndnboost/function/function1.hpp
+++ b/include/ndnboost/function/function1.hpp
@@ -7,6 +7,6 @@
 
 // For more information, see http://www.boost.org
 
-#define BOOST_FUNCTION_NUM_ARGS 1
+#define NDNBOOST_FUNCTION_NUM_ARGS 1
 #include <ndnboost/function/detail/maybe_include.hpp>
-#undef BOOST_FUNCTION_NUM_ARGS
+#undef NDNBOOST_FUNCTION_NUM_ARGS
diff --git a/include/ndnboost/function/function10.hpp b/include/ndnboost/function/function10.hpp
index bbd3dec..fd0ee32 100644
--- a/include/ndnboost/function/function10.hpp
+++ b/include/ndnboost/function/function10.hpp
@@ -7,6 +7,6 @@
 
 // For more information, see http://www.boost.org
 
-#define BOOST_FUNCTION_NUM_ARGS 10
+#define NDNBOOST_FUNCTION_NUM_ARGS 10
 #include <ndnboost/function/detail/maybe_include.hpp>
-#undef BOOST_FUNCTION_NUM_ARGS
+#undef NDNBOOST_FUNCTION_NUM_ARGS
diff --git a/include/ndnboost/function/function2.hpp b/include/ndnboost/function/function2.hpp
index 65dbfda..603c2d0 100644
--- a/include/ndnboost/function/function2.hpp
+++ b/include/ndnboost/function/function2.hpp
@@ -7,6 +7,6 @@
 
 // For more information, see http://www.boost.org
 
-#define BOOST_FUNCTION_NUM_ARGS 2
+#define NDNBOOST_FUNCTION_NUM_ARGS 2
 #include <ndnboost/function/detail/maybe_include.hpp>
-#undef BOOST_FUNCTION_NUM_ARGS
+#undef NDNBOOST_FUNCTION_NUM_ARGS
diff --git a/include/ndnboost/function/function3.hpp b/include/ndnboost/function/function3.hpp
index 3244755..3ec62d5 100644
--- a/include/ndnboost/function/function3.hpp
+++ b/include/ndnboost/function/function3.hpp
@@ -7,6 +7,6 @@
 
 // For more information, see http://www.boost.org
 
-#define BOOST_FUNCTION_NUM_ARGS 3
+#define NDNBOOST_FUNCTION_NUM_ARGS 3
 #include <ndnboost/function/detail/maybe_include.hpp>
-#undef BOOST_FUNCTION_NUM_ARGS
+#undef NDNBOOST_FUNCTION_NUM_ARGS
diff --git a/include/ndnboost/function/function4.hpp b/include/ndnboost/function/function4.hpp
index 467b03b..e3a2be5 100644
--- a/include/ndnboost/function/function4.hpp
+++ b/include/ndnboost/function/function4.hpp
@@ -7,6 +7,6 @@
 
 // For more information, see http://www.boost.org
 
-#define BOOST_FUNCTION_NUM_ARGS 4
+#define NDNBOOST_FUNCTION_NUM_ARGS 4
 #include <ndnboost/function/detail/maybe_include.hpp>
-#undef BOOST_FUNCTION_NUM_ARGS
+#undef NDNBOOST_FUNCTION_NUM_ARGS
diff --git a/include/ndnboost/function/function5.hpp b/include/ndnboost/function/function5.hpp
index 77cf420..3d53e5a 100644
--- a/include/ndnboost/function/function5.hpp
+++ b/include/ndnboost/function/function5.hpp
@@ -7,6 +7,6 @@
 
 // For more information, see http://www.boost.org
 
-#define BOOST_FUNCTION_NUM_ARGS 5
+#define NDNBOOST_FUNCTION_NUM_ARGS 5
 #include <ndnboost/function/detail/maybe_include.hpp>
-#undef BOOST_FUNCTION_NUM_ARGS
+#undef NDNBOOST_FUNCTION_NUM_ARGS
diff --git a/include/ndnboost/function/function6.hpp b/include/ndnboost/function/function6.hpp
index eae829d..12746ea 100644
--- a/include/ndnboost/function/function6.hpp
+++ b/include/ndnboost/function/function6.hpp
@@ -7,6 +7,6 @@
 
 // For more information, see http://www.boost.org
 
-#define BOOST_FUNCTION_NUM_ARGS 6
+#define NDNBOOST_FUNCTION_NUM_ARGS 6
 #include <ndnboost/function/detail/maybe_include.hpp>
-#undef BOOST_FUNCTION_NUM_ARGS
+#undef NDNBOOST_FUNCTION_NUM_ARGS
diff --git a/include/ndnboost/function/function7.hpp b/include/ndnboost/function/function7.hpp
index 0c7a5aa..ed92ed2 100644
--- a/include/ndnboost/function/function7.hpp
+++ b/include/ndnboost/function/function7.hpp
@@ -7,6 +7,6 @@
 
 // For more information, see http://www.boost.org
 
-#define BOOST_FUNCTION_NUM_ARGS 7
+#define NDNBOOST_FUNCTION_NUM_ARGS 7
 #include <ndnboost/function/detail/maybe_include.hpp>
-#undef BOOST_FUNCTION_NUM_ARGS
+#undef NDNBOOST_FUNCTION_NUM_ARGS
diff --git a/include/ndnboost/function/function8.hpp b/include/ndnboost/function/function8.hpp
index c9cc28b..4817e51 100644
--- a/include/ndnboost/function/function8.hpp
+++ b/include/ndnboost/function/function8.hpp
@@ -7,6 +7,6 @@
 
 // For more information, see http://www.boost.org
 
-#define BOOST_FUNCTION_NUM_ARGS 8
+#define NDNBOOST_FUNCTION_NUM_ARGS 8
 #include <ndnboost/function/detail/maybe_include.hpp>
-#undef BOOST_FUNCTION_NUM_ARGS
+#undef NDNBOOST_FUNCTION_NUM_ARGS
diff --git a/include/ndnboost/function/function9.hpp b/include/ndnboost/function/function9.hpp
index 33c8836..a0cd21b 100644
--- a/include/ndnboost/function/function9.hpp
+++ b/include/ndnboost/function/function9.hpp
@@ -7,6 +7,6 @@
 
 // For more information, see http://www.boost.org
 
-#define BOOST_FUNCTION_NUM_ARGS 9
+#define NDNBOOST_FUNCTION_NUM_ARGS 9
 #include <ndnboost/function/detail/maybe_include.hpp>
-#undef BOOST_FUNCTION_NUM_ARGS
+#undef NDNBOOST_FUNCTION_NUM_ARGS
diff --git a/include/ndnboost/function/function_base.hpp b/include/ndnboost/function/function_base.hpp
index 30af1a3..f992eb3 100644
--- a/include/ndnboost/function/function_base.hpp
+++ b/include/ndnboost/function/function_base.hpp
@@ -8,8 +8,8 @@
 
 // For more information, see http://www.boost.org
 
-#ifndef BOOST_FUNCTION_BASE_HEADER
-#define BOOST_FUNCTION_BASE_HEADER
+#ifndef NDNBOOST_FUNCTION_BASE_HEADER
+#define NDNBOOST_FUNCTION_BASE_HEADER
 
 #include <stdexcept>
 #include <string>
@@ -30,7 +30,7 @@
 #include <ndnboost/mpl/if.hpp>
 #include <ndnboost/detail/workaround.hpp>
 #include <ndnboost/type_traits/alignment_of.hpp>
-#ifndef BOOST_NO_SFINAE
+#ifndef NDNBOOST_NO_SFINAE
 #  include "ndnboost/utility/enable_if.hpp"
 #else
 #  include "ndnboost/mpl/bool.hpp"
@@ -38,49 +38,49 @@
 #include <ndnboost/function_equal.hpp>
 #include <ndnboost/function/function_fwd.hpp>
 
-#if defined(BOOST_MSVC)
+#if defined(NDNBOOST_MSVC)
 #   pragma warning( push )
 #   pragma warning( disable : 4793 ) // complaint about native code generation
 #   pragma warning( disable : 4127 ) // "conditional expression is constant"
 #endif       
 
-// Define BOOST_FUNCTION_STD_NS to the namespace that contains type_info.
-#ifdef BOOST_NO_STD_TYPEINFO
+// Define NDNBOOST_FUNCTION_STD_NS to the namespace that contains type_info.
+#ifdef NDNBOOST_NO_STD_TYPEINFO
 // Embedded VC++ does not have type_info in namespace std
-#  define BOOST_FUNCTION_STD_NS
+#  define NDNBOOST_FUNCTION_STD_NS
 #else
-#  define BOOST_FUNCTION_STD_NS std
+#  define NDNBOOST_FUNCTION_STD_NS std
 #endif
 
 // Borrowed from Boost.Python library: determines the cases where we
 // need to use std::type_info::name to compare instead of operator==.
-#if defined( BOOST_NO_TYPEID )
-#  define BOOST_FUNCTION_COMPARE_TYPE_ID(X,Y) ((X)==(Y))
+#if defined( NDNBOOST_NO_TYPEID )
+#  define NDNBOOST_FUNCTION_COMPARE_TYPE_ID(X,Y) ((X)==(Y))
 #elif (defined(__GNUC__) && __GNUC__ >= 3) \
  || defined(_AIX) \
  || (   defined(__sgi) && defined(__host_mips))
 #  include <cstring>
-#  define BOOST_FUNCTION_COMPARE_TYPE_ID(X,Y) \
+#  define NDNBOOST_FUNCTION_COMPARE_TYPE_ID(X,Y) \
      (std::strcmp((X).name(),(Y).name()) == 0)
 # else
-#  define BOOST_FUNCTION_COMPARE_TYPE_ID(X,Y) ((X)==(Y))
+#  define NDNBOOST_FUNCTION_COMPARE_TYPE_ID(X,Y) ((X)==(Y))
 #endif
 
-#if defined(BOOST_MSVC) && BOOST_MSVC <= 1300 || defined(__ICL) && __ICL <= 600 || defined(__MWERKS__) && __MWERKS__ < 0x2406 && !defined(BOOST_STRICT_CONFIG)
-#  define BOOST_FUNCTION_TARGET_FIX(x) x
+#if defined(NDNBOOST_MSVC) && NDNBOOST_MSVC <= 1300 || defined(__ICL) && __ICL <= 600 || defined(__MWERKS__) && __MWERKS__ < 0x2406 && !defined(NDNBOOST_STRICT_CONFIG)
+#  define NDNBOOST_FUNCTION_TARGET_FIX(x) x
 #else
-#  define BOOST_FUNCTION_TARGET_FIX(x)
+#  define NDNBOOST_FUNCTION_TARGET_FIX(x)
 #endif // not MSVC
 
-#if !BOOST_WORKAROUND(__BORLANDC__, < 0x5A0)
-#  define BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor,Type)              \
+#if !NDNBOOST_WORKAROUND(__BORLANDC__, < 0x5A0)
+#  define NDNBOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor,Type)              \
       typename ::ndnboost::enable_if_c<(::ndnboost::type_traits::ice_not<          \
                             (::ndnboost::is_integral<Functor>::value)>::value), \
                            Type>::type
 #else
 // BCC doesn't recognize this depends on a template argument and complains
 // about the use of 'typename'
-#  define BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor,Type)     \
+#  define NDNBOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor,Type)     \
       ::ndnboost::enable_if_c<(::ndnboost::type_traits::ice_not<          \
                    (::ndnboost::is_integral<Functor>::value)>::value), \
                        Type>::type
@@ -222,7 +222,7 @@
 
               // Check whether we have the same type. We can add
               // cv-qualifiers, but we can't take them away.
-              if (BOOST_FUNCTION_COMPARE_TYPE_ID(check_type, BOOST_SP_TYPEID(F))
+              if (NDNBOOST_FUNCTION_COMPARE_TYPE_ID(check_type, NDNBOOST_SP_TYPEID(F))
                   && (!in_buffer.obj_ref.is_const_qualified 
                       || out_buffer.type.const_qualified)
                   && (!in_buffer.obj_ref.is_volatile_qualified
@@ -234,7 +234,7 @@
             return;
 
           case get_functor_type_tag:
-            out_buffer.type.type = &BOOST_SP_TYPEID(F);
+            out_buffer.type.type = &NDNBOOST_SP_TYPEID(F);
             out_buffer.type.const_qualified = in_buffer.obj_ref.is_const_qualified;
             out_buffer.type.volatile_qualified = in_buffer.obj_ref.is_volatile_qualified;
             return;
@@ -249,7 +249,7 @@
       template<typename F>
       struct function_allows_small_object_optimization
       {
-        BOOST_STATIC_CONSTANT
+        NDNBOOST_STATIC_CONSTANT
           (bool, 
            value = ((sizeof(F) <= sizeof(function_buffer) &&
                      (alignment_of<function_buffer>::value 
@@ -296,12 +296,12 @@
           else if (op == check_functor_type_tag) {
             const detail::sp_typeinfo& check_type 
               = *out_buffer.type.type;
-            if (BOOST_FUNCTION_COMPARE_TYPE_ID(check_type, BOOST_SP_TYPEID(Functor)))
+            if (NDNBOOST_FUNCTION_COMPARE_TYPE_ID(check_type, NDNBOOST_SP_TYPEID(Functor)))
               out_buffer.obj_ptr = &in_buffer.func_ptr;
             else
               out_buffer.obj_ptr = 0;
           } else /* op == get_functor_type_tag */ {
-            out_buffer.type.type = &BOOST_SP_TYPEID(Functor);
+            out_buffer.type.type = &NDNBOOST_SP_TYPEID(Functor);
             out_buffer.type.const_qualified = false;
             out_buffer.type.volatile_qualified = false;
           }
@@ -330,12 +330,12 @@
           } else if (op == check_functor_type_tag) {
             const detail::sp_typeinfo& check_type 
               = *out_buffer.type.type;
-            if (BOOST_FUNCTION_COMPARE_TYPE_ID(check_type, BOOST_SP_TYPEID(Functor)))
+            if (NDNBOOST_FUNCTION_COMPARE_TYPE_ID(check_type, NDNBOOST_SP_TYPEID(Functor)))
               out_buffer.obj_ptr = &in_buffer.data;
             else
               out_buffer.obj_ptr = 0;
           } else /* op == get_functor_type_tag */ {
-            out_buffer.type.type = &BOOST_SP_TYPEID(Functor);
+            out_buffer.type.type = &NDNBOOST_SP_TYPEID(Functor);
             out_buffer.type.const_qualified = false;
             out_buffer.type.volatile_qualified = false;            
           }
@@ -391,12 +391,12 @@
           } else if (op == check_functor_type_tag) {
             const detail::sp_typeinfo& check_type
               = *out_buffer.type.type;
-            if (BOOST_FUNCTION_COMPARE_TYPE_ID(check_type, BOOST_SP_TYPEID(Functor)))
+            if (NDNBOOST_FUNCTION_COMPARE_TYPE_ID(check_type, NDNBOOST_SP_TYPEID(Functor)))
               out_buffer.obj_ptr = in_buffer.obj_ptr;
             else
               out_buffer.obj_ptr = 0;
           } else /* op == get_functor_type_tag */ {
-            out_buffer.type.type = &BOOST_SP_TYPEID(Functor);
+            out_buffer.type.type = &NDNBOOST_SP_TYPEID(Functor);
             out_buffer.type.const_qualified = false;
             out_buffer.type.volatile_qualified = false;
           }
@@ -431,7 +431,7 @@
           typedef typename get_function_tag<functor_type>::type tag_type;
           switch (op) {
           case get_functor_type_tag:
-            out_buffer.type.type = &BOOST_SP_TYPEID(functor_type);
+            out_buffer.type.type = &NDNBOOST_SP_TYPEID(functor_type);
             out_buffer.type.const_qualified = false;
             out_buffer.type.volatile_qualified = false;
             return;
@@ -502,12 +502,12 @@
           } else if (op == check_functor_type_tag) {
             const detail::sp_typeinfo& check_type 
               = *out_buffer.type.type;
-            if (BOOST_FUNCTION_COMPARE_TYPE_ID(check_type, BOOST_SP_TYPEID(Functor)))
+            if (NDNBOOST_FUNCTION_COMPARE_TYPE_ID(check_type, NDNBOOST_SP_TYPEID(Functor)))
               out_buffer.obj_ptr = in_buffer.obj_ptr;
             else
               out_buffer.obj_ptr = 0;
           } else /* op == get_functor_type_tag */ {
-            out_buffer.type.type = &BOOST_SP_TYPEID(Functor);
+            out_buffer.type.type = &NDNBOOST_SP_TYPEID(Functor);
             out_buffer.type.const_qualified = false;
             out_buffer.type.volatile_qualified = false;
           }
@@ -534,7 +534,7 @@
           typedef typename get_function_tag<functor_type>::type tag_type;
           switch (op) {
           case get_functor_type_tag:
-            out_buffer.type.type = &BOOST_SP_TYPEID(functor_type);
+            out_buffer.type.type = &NDNBOOST_SP_TYPEID(functor_type);
             out_buffer.type.const_qualified = false;
             out_buffer.type.volatile_qualified = false;
             return;
@@ -549,7 +549,7 @@
       // A type that is only used for comparisons against zero
       struct useless_clear_type {};
 
-#ifdef BOOST_NO_SFINAE
+#ifdef NDNBOOST_NO_SFINAE
       // These routines perform comparisons between a Boost.Function
       // object and an arbitrary function object (when the last
       // parameter is mpl::bool_<false>) or against zero (when the
@@ -606,7 +606,7 @@
             return fp != g.get_pointer();
           else return true;
         }
-#endif // BOOST_NO_SFINAE
+#endif // NDNBOOST_NO_SFINAE
 
       /**
        * Stores the "manager" portion of the vtable for a
@@ -635,11 +635,11 @@
   /** Determine if the function is empty (i.e., has no target). */
   bool empty() const { return !vtable; }
 
-  /** Retrieve the type of the stored function object, or BOOST_SP_TYPEID(void)
+  /** Retrieve the type of the stored function object, or NDNBOOST_SP_TYPEID(void)
       if this is empty. */
   const detail::sp_typeinfo& target_type() const
   {
-    if (!vtable) return BOOST_SP_TYPEID(void);
+    if (!vtable) return NDNBOOST_SP_TYPEID(void);
 
     detail::function::function_buffer type;
     get_vtable()->manager(functor, type, detail::function::get_functor_type_tag);
@@ -652,7 +652,7 @@
       if (!vtable) return 0;
 
       detail::function::function_buffer type_result;
-      type_result.type.type = &BOOST_SP_TYPEID(Functor);
+      type_result.type.type = &NDNBOOST_SP_TYPEID(Functor);
       type_result.type.const_qualified = is_const<Functor>::value;
       type_result.type.volatile_qualified = is_volatile<Functor>::value;
       get_vtable()->manager(functor, type_result, 
@@ -661,7 +661,7 @@
     }
 
   template<typename Functor>
-#if defined(BOOST_MSVC) && BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+#if defined(NDNBOOST_MSVC) && NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
     const Functor* target( Functor * = 0 ) const
 #else
     const Functor* target() const
@@ -670,7 +670,7 @@
       if (!vtable) return 0;
 
       detail::function::function_buffer type_result;
-      type_result.type.type = &BOOST_SP_TYPEID(Functor);
+      type_result.type.type = &NDNBOOST_SP_TYPEID(Functor);
       type_result.type.const_qualified = true;
       type_result.type.volatile_qualified = is_volatile<Functor>::value;
       get_vtable()->manager(functor, type_result, 
@@ -683,7 +683,7 @@
   template<typename F>
     bool contains(const F& f) const
     {
-#if defined(BOOST_MSVC) && BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+#if defined(NDNBOOST_MSVC) && NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
       if (const F* fp = this->target( (F*)0 ))
 #else
       if (const F* fp = this->template target<F>())
@@ -700,7 +700,7 @@
   // problems with instantiation of function return types before it
   // has been verified that the argument types match up.
   template<typename Functor>
-    BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool)
+    NDNBOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool)
     operator==(Functor g) const
     {
       if (const Functor* fp = target<Functor>())
@@ -709,7 +709,7 @@
     }
 
   template<typename Functor>
-    BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool)
+    NDNBOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool)
     operator!=(Functor g) const
     {
       if (const Functor* fp = target<Functor>())
@@ -742,7 +742,7 @@
   bad_function_call() : std::runtime_error("call to empty ndnboost::function") {}
 };
 
-#ifndef BOOST_NO_SFINAE
+#ifndef NDNBOOST_NO_SFINAE
 inline bool operator==(const function_base& f,
                        detail::function::useless_clear_type*)
 {
@@ -768,7 +768,7 @@
 }
 #endif
 
-#ifdef BOOST_NO_SFINAE
+#ifdef NDNBOOST_NO_SFINAE
 // Comparisons between ndnboost::function objects and arbitrary function objects
 template<typename Functor>
   inline bool operator==(const function_base& f, Functor g)
@@ -804,7 +804,7 @@
 // objects. GCC 3.3 and before has an obnoxious bug that prevents this
 // from working.
 template<typename Functor>
-  BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool)
+  NDNBOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool)
   operator==(const function_base& f, Functor g)
   {
     if (const Functor* fp = f.template target<Functor>())
@@ -813,7 +813,7 @@
   }
 
 template<typename Functor>
-  BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool)
+  NDNBOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool)
   operator==(Functor g, const function_base& f)
   {
     if (const Functor* fp = f.template target<Functor>())
@@ -822,7 +822,7 @@
   }
 
 template<typename Functor>
-  BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool)
+  NDNBOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool)
   operator!=(const function_base& f, Functor g)
   {
     if (const Functor* fp = f.template target<Functor>())
@@ -831,7 +831,7 @@
   }
 
 template<typename Functor>
-  BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool)
+  NDNBOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool)
   operator!=(Functor g, const function_base& f)
   {
     if (const Functor* fp = f.template target<Functor>())
@@ -841,7 +841,7 @@
 #  endif
 
 template<typename Functor>
-  BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool)
+  NDNBOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool)
   operator==(const function_base& f, reference_wrapper<Functor> g)
   {
     if (const Functor* fp = f.template target<Functor>())
@@ -850,7 +850,7 @@
   }
 
 template<typename Functor>
-  BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool)
+  NDNBOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool)
   operator==(reference_wrapper<Functor> g, const function_base& f)
   {
     if (const Functor* fp = f.template target<Functor>())
@@ -859,7 +859,7 @@
   }
 
 template<typename Functor>
-  BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool)
+  NDNBOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool)
   operator!=(const function_base& f, reference_wrapper<Functor> g)
   {
     if (const Functor* fp = f.template target<Functor>())
@@ -868,7 +868,7 @@
   }
 
 template<typename Functor>
-  BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool)
+  NDNBOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool)
   operator!=(reference_wrapper<Functor> g, const function_base& f)
   {
     if (const Functor* fp = f.template target<Functor>())
@@ -885,7 +885,7 @@
       return f->empty();
     }
 
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1310)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1310)
     inline bool has_empty_target(const void*)
     {
       return false;
@@ -900,11 +900,11 @@
 } // end namespace detail
 } // end namespace ndnboost
 
-#undef BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL
-#undef BOOST_FUNCTION_COMPARE_TYPE_ID
+#undef NDNBOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL
+#undef NDNBOOST_FUNCTION_COMPARE_TYPE_ID
 
-#if defined(BOOST_MSVC)
+#if defined(NDNBOOST_MSVC)
 #   pragma warning( pop )
 #endif       
 
-#endif // BOOST_FUNCTION_BASE_HEADER
+#endif // NDNBOOST_FUNCTION_BASE_HEADER
diff --git a/include/ndnboost/function/function_fwd.hpp b/include/ndnboost/function/function_fwd.hpp
index 11df6eb..3ebc33c 100644
--- a/include/ndnboost/function/function_fwd.hpp
+++ b/include/ndnboost/function/function_fwd.hpp
@@ -6,11 +6,11 @@
 //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //
 // For more information, see http://www.boost.org
-#ifndef BOOST_FUNCTION_FWD_HPP
-#define BOOST_FUNCTION_FWD_HPP
+#ifndef NDNBOOST_FUNCTION_FWD_HPP
+#define NDNBOOST_FUNCTION_FWD_HPP
 #include <ndnboost/config.hpp>
 
-#if defined(__sgi) && defined(_COMPILER_VERSION) && _COMPILER_VERSION <= 730 && !defined(BOOST_STRICT_CONFIG)
+#if defined(__sgi) && defined(_COMPILER_VERSION) && _COMPILER_VERSION <= 730 && !defined(NDNBOOST_STRICT_CONFIG)
 // Work around a compiler bug.
 // ndnboost::python::objects::function has to be seen by the compiler before the
 // ndnboost::function class template.
@@ -19,16 +19,16 @@
 }}}
 #endif
 
-#if defined (BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)                    \
- || defined(BOOST_BCB_PARTIAL_SPECIALIZATION_BUG)                         \
- || !(defined(BOOST_STRICT_CONFIG) || !defined(__SUNPRO_CC) || __SUNPRO_CC > 0x540)
-#  define BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX
+#if defined (NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)                    \
+ || defined(NDNBOOST_BCB_PARTIAL_SPECIALIZATION_BUG)                         \
+ || !(defined(NDNBOOST_STRICT_CONFIG) || !defined(__SUNPRO_CC) || __SUNPRO_CC > 0x540)
+#  define NDNBOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX
 #endif
 
 namespace ndnboost {
   class bad_function_call;
 
-#if !defined(BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX)
+#if !defined(NDNBOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX)
   // Preferred syntax
   template<typename Signature> class function;
 
diff --git a/include/ndnboost/function/function_template.hpp b/include/ndnboost/function/function_template.hpp
index 6256b73..11642e6 100644
--- a/include/ndnboost/function/function_template.hpp
+++ b/include/ndnboost/function/function_template.hpp
@@ -13,69 +13,69 @@
 #include <ndnboost/function/detail/prologue.hpp>
 #include <ndnboost/detail/no_exceptions_support.hpp>
 
-#if defined(BOOST_MSVC)
+#if defined(NDNBOOST_MSVC)
 #   pragma warning( push )
 #   pragma warning( disable : 4127 ) // "conditional expression is constant"
 #endif       
 
-#define BOOST_FUNCTION_TEMPLATE_PARMS BOOST_PP_ENUM_PARAMS(BOOST_FUNCTION_NUM_ARGS, typename T)
+#define NDNBOOST_FUNCTION_TEMPLATE_PARMS NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_FUNCTION_NUM_ARGS, typename T)
 
-#define BOOST_FUNCTION_TEMPLATE_ARGS BOOST_PP_ENUM_PARAMS(BOOST_FUNCTION_NUM_ARGS, T)
+#define NDNBOOST_FUNCTION_TEMPLATE_ARGS NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_FUNCTION_NUM_ARGS, T)
 
-#define BOOST_FUNCTION_PARM(J,I,D) BOOST_PP_CAT(T,I) BOOST_PP_CAT(a,I)
+#define NDNBOOST_FUNCTION_PARM(J,I,D) NDNBOOST_PP_CAT(T,I) NDNBOOST_PP_CAT(a,I)
 
-#define BOOST_FUNCTION_PARMS BOOST_PP_ENUM(BOOST_FUNCTION_NUM_ARGS,BOOST_FUNCTION_PARM,BOOST_PP_EMPTY)
+#define NDNBOOST_FUNCTION_PARMS NDNBOOST_PP_ENUM(NDNBOOST_FUNCTION_NUM_ARGS,NDNBOOST_FUNCTION_PARM,NDNBOOST_PP_EMPTY)
 
-#define BOOST_FUNCTION_ARGS BOOST_PP_ENUM_PARAMS(BOOST_FUNCTION_NUM_ARGS, a)
+#define NDNBOOST_FUNCTION_ARGS NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_FUNCTION_NUM_ARGS, a)
 
-#define BOOST_FUNCTION_ARG_TYPE(J,I,D) \
-  typedef BOOST_PP_CAT(T,I) BOOST_PP_CAT(BOOST_PP_CAT(arg, BOOST_PP_INC(I)),_type);
+#define NDNBOOST_FUNCTION_ARG_TYPE(J,I,D) \
+  typedef NDNBOOST_PP_CAT(T,I) NDNBOOST_PP_CAT(NDNBOOST_PP_CAT(arg, NDNBOOST_PP_INC(I)),_type);
 
-#define BOOST_FUNCTION_ARG_TYPES BOOST_PP_REPEAT(BOOST_FUNCTION_NUM_ARGS,BOOST_FUNCTION_ARG_TYPE,BOOST_PP_EMPTY)
+#define NDNBOOST_FUNCTION_ARG_TYPES NDNBOOST_PP_REPEAT(NDNBOOST_FUNCTION_NUM_ARGS,NDNBOOST_FUNCTION_ARG_TYPE,NDNBOOST_PP_EMPTY)
 
 // Comma if nonzero number of arguments
-#if BOOST_FUNCTION_NUM_ARGS == 0
-#  define BOOST_FUNCTION_COMMA
+#if NDNBOOST_FUNCTION_NUM_ARGS == 0
+#  define NDNBOOST_FUNCTION_COMMA
 #else
-#  define BOOST_FUNCTION_COMMA ,
-#endif // BOOST_FUNCTION_NUM_ARGS > 0
+#  define NDNBOOST_FUNCTION_COMMA ,
+#endif // NDNBOOST_FUNCTION_NUM_ARGS > 0
 
 // Class names used in this version of the code
-#define BOOST_FUNCTION_FUNCTION BOOST_JOIN(function,BOOST_FUNCTION_NUM_ARGS)
-#define BOOST_FUNCTION_FUNCTION_INVOKER \
-  BOOST_JOIN(function_invoker,BOOST_FUNCTION_NUM_ARGS)
-#define BOOST_FUNCTION_VOID_FUNCTION_INVOKER \
-  BOOST_JOIN(void_function_invoker,BOOST_FUNCTION_NUM_ARGS)
-#define BOOST_FUNCTION_FUNCTION_OBJ_INVOKER \
-  BOOST_JOIN(function_obj_invoker,BOOST_FUNCTION_NUM_ARGS)
-#define BOOST_FUNCTION_VOID_FUNCTION_OBJ_INVOKER \
-  BOOST_JOIN(void_function_obj_invoker,BOOST_FUNCTION_NUM_ARGS)
-#define BOOST_FUNCTION_FUNCTION_REF_INVOKER \
-  BOOST_JOIN(function_ref_invoker,BOOST_FUNCTION_NUM_ARGS)
-#define BOOST_FUNCTION_VOID_FUNCTION_REF_INVOKER \
-  BOOST_JOIN(void_function_ref_invoker,BOOST_FUNCTION_NUM_ARGS)
-#define BOOST_FUNCTION_MEMBER_INVOKER \
-  BOOST_JOIN(function_mem_invoker,BOOST_FUNCTION_NUM_ARGS)
-#define BOOST_FUNCTION_VOID_MEMBER_INVOKER \
-  BOOST_JOIN(function_void_mem_invoker,BOOST_FUNCTION_NUM_ARGS)
-#define BOOST_FUNCTION_GET_FUNCTION_INVOKER \
-  BOOST_JOIN(get_function_invoker,BOOST_FUNCTION_NUM_ARGS)
-#define BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER \
-  BOOST_JOIN(get_function_obj_invoker,BOOST_FUNCTION_NUM_ARGS)
-#define BOOST_FUNCTION_GET_FUNCTION_REF_INVOKER \
-  BOOST_JOIN(get_function_ref_invoker,BOOST_FUNCTION_NUM_ARGS)
-#define BOOST_FUNCTION_GET_MEMBER_INVOKER \
-  BOOST_JOIN(get_member_invoker,BOOST_FUNCTION_NUM_ARGS)
-#define BOOST_FUNCTION_GET_INVOKER \
-  BOOST_JOIN(get_invoker,BOOST_FUNCTION_NUM_ARGS)
-#define BOOST_FUNCTION_VTABLE BOOST_JOIN(basic_vtable,BOOST_FUNCTION_NUM_ARGS)
+#define NDNBOOST_FUNCTION_FUNCTION NDNBOOST_JOIN(function,NDNBOOST_FUNCTION_NUM_ARGS)
+#define NDNBOOST_FUNCTION_FUNCTION_INVOKER \
+  NDNBOOST_JOIN(function_invoker,NDNBOOST_FUNCTION_NUM_ARGS)
+#define NDNBOOST_FUNCTION_VOID_FUNCTION_INVOKER \
+  NDNBOOST_JOIN(void_function_invoker,NDNBOOST_FUNCTION_NUM_ARGS)
+#define NDNBOOST_FUNCTION_FUNCTION_OBJ_INVOKER \
+  NDNBOOST_JOIN(function_obj_invoker,NDNBOOST_FUNCTION_NUM_ARGS)
+#define NDNBOOST_FUNCTION_VOID_FUNCTION_OBJ_INVOKER \
+  NDNBOOST_JOIN(void_function_obj_invoker,NDNBOOST_FUNCTION_NUM_ARGS)
+#define NDNBOOST_FUNCTION_FUNCTION_REF_INVOKER \
+  NDNBOOST_JOIN(function_ref_invoker,NDNBOOST_FUNCTION_NUM_ARGS)
+#define NDNBOOST_FUNCTION_VOID_FUNCTION_REF_INVOKER \
+  NDNBOOST_JOIN(void_function_ref_invoker,NDNBOOST_FUNCTION_NUM_ARGS)
+#define NDNBOOST_FUNCTION_MEMBER_INVOKER \
+  NDNBOOST_JOIN(function_mem_invoker,NDNBOOST_FUNCTION_NUM_ARGS)
+#define NDNBOOST_FUNCTION_VOID_MEMBER_INVOKER \
+  NDNBOOST_JOIN(function_void_mem_invoker,NDNBOOST_FUNCTION_NUM_ARGS)
+#define NDNBOOST_FUNCTION_GET_FUNCTION_INVOKER \
+  NDNBOOST_JOIN(get_function_invoker,NDNBOOST_FUNCTION_NUM_ARGS)
+#define NDNBOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER \
+  NDNBOOST_JOIN(get_function_obj_invoker,NDNBOOST_FUNCTION_NUM_ARGS)
+#define NDNBOOST_FUNCTION_GET_FUNCTION_REF_INVOKER \
+  NDNBOOST_JOIN(get_function_ref_invoker,NDNBOOST_FUNCTION_NUM_ARGS)
+#define NDNBOOST_FUNCTION_GET_MEMBER_INVOKER \
+  NDNBOOST_JOIN(get_member_invoker,NDNBOOST_FUNCTION_NUM_ARGS)
+#define NDNBOOST_FUNCTION_GET_INVOKER \
+  NDNBOOST_JOIN(get_invoker,NDNBOOST_FUNCTION_NUM_ARGS)
+#define NDNBOOST_FUNCTION_VTABLE NDNBOOST_JOIN(basic_vtable,NDNBOOST_FUNCTION_NUM_ARGS)
 
-#ifndef BOOST_NO_VOID_RETURNS
-#  define BOOST_FUNCTION_VOID_RETURN_TYPE void
-#  define BOOST_FUNCTION_RETURN(X) X
+#ifndef NDNBOOST_NO_VOID_RETURNS
+#  define NDNBOOST_FUNCTION_VOID_RETURN_TYPE void
+#  define NDNBOOST_FUNCTION_RETURN(X) X
 #else
-#  define BOOST_FUNCTION_VOID_RETURN_TYPE ndnboost::detail::function::unusable
-#  define BOOST_FUNCTION_RETURN(X) X; return BOOST_FUNCTION_VOID_RETURN_TYPE ()
+#  define NDNBOOST_FUNCTION_VOID_RETURN_TYPE ndnboost::detail::function::unusable
+#  define NDNBOOST_FUNCTION_RETURN(X) X; return NDNBOOST_FUNCTION_VOID_RETURN_TYPE ()
 #endif
 
 namespace ndnboost {
@@ -83,45 +83,45 @@
     namespace function {
       template<
         typename FunctionPtr,
-        typename R BOOST_FUNCTION_COMMA
-        BOOST_FUNCTION_TEMPLATE_PARMS
+        typename R NDNBOOST_FUNCTION_COMMA
+        NDNBOOST_FUNCTION_TEMPLATE_PARMS
         >
-      struct BOOST_FUNCTION_FUNCTION_INVOKER
+      struct NDNBOOST_FUNCTION_FUNCTION_INVOKER
       {
-        static R invoke(function_buffer& function_ptr BOOST_FUNCTION_COMMA
-                        BOOST_FUNCTION_PARMS)
+        static R invoke(function_buffer& function_ptr NDNBOOST_FUNCTION_COMMA
+                        NDNBOOST_FUNCTION_PARMS)
         {
           FunctionPtr f = reinterpret_cast<FunctionPtr>(function_ptr.func_ptr);
-          return f(BOOST_FUNCTION_ARGS);
+          return f(NDNBOOST_FUNCTION_ARGS);
         }
       };
 
       template<
         typename FunctionPtr,
-        typename R BOOST_FUNCTION_COMMA
-        BOOST_FUNCTION_TEMPLATE_PARMS
+        typename R NDNBOOST_FUNCTION_COMMA
+        NDNBOOST_FUNCTION_TEMPLATE_PARMS
         >
-      struct BOOST_FUNCTION_VOID_FUNCTION_INVOKER
+      struct NDNBOOST_FUNCTION_VOID_FUNCTION_INVOKER
       {
-        static BOOST_FUNCTION_VOID_RETURN_TYPE
-        invoke(function_buffer& function_ptr BOOST_FUNCTION_COMMA
-               BOOST_FUNCTION_PARMS)
+        static NDNBOOST_FUNCTION_VOID_RETURN_TYPE
+        invoke(function_buffer& function_ptr NDNBOOST_FUNCTION_COMMA
+               NDNBOOST_FUNCTION_PARMS)
 
         {
           FunctionPtr f = reinterpret_cast<FunctionPtr>(function_ptr.func_ptr);
-          BOOST_FUNCTION_RETURN(f(BOOST_FUNCTION_ARGS));
+          NDNBOOST_FUNCTION_RETURN(f(NDNBOOST_FUNCTION_ARGS));
         }
       };
 
       template<
         typename FunctionObj,
-        typename R BOOST_FUNCTION_COMMA
-        BOOST_FUNCTION_TEMPLATE_PARMS
+        typename R NDNBOOST_FUNCTION_COMMA
+        NDNBOOST_FUNCTION_TEMPLATE_PARMS
       >
-      struct BOOST_FUNCTION_FUNCTION_OBJ_INVOKER
+      struct NDNBOOST_FUNCTION_FUNCTION_OBJ_INVOKER
       {
-        static R invoke(function_buffer& function_obj_ptr BOOST_FUNCTION_COMMA
-                        BOOST_FUNCTION_PARMS)
+        static R invoke(function_buffer& function_obj_ptr NDNBOOST_FUNCTION_COMMA
+                        NDNBOOST_FUNCTION_PARMS)
 
         {
           FunctionObj* f;
@@ -129,20 +129,20 @@
             f = reinterpret_cast<FunctionObj*>(&function_obj_ptr.data);
           else
             f = reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
-          return (*f)(BOOST_FUNCTION_ARGS);
+          return (*f)(NDNBOOST_FUNCTION_ARGS);
         }
       };
 
       template<
         typename FunctionObj,
-        typename R BOOST_FUNCTION_COMMA
-        BOOST_FUNCTION_TEMPLATE_PARMS
+        typename R NDNBOOST_FUNCTION_COMMA
+        NDNBOOST_FUNCTION_TEMPLATE_PARMS
       >
-      struct BOOST_FUNCTION_VOID_FUNCTION_OBJ_INVOKER
+      struct NDNBOOST_FUNCTION_VOID_FUNCTION_OBJ_INVOKER
       {
-        static BOOST_FUNCTION_VOID_RETURN_TYPE
-        invoke(function_buffer& function_obj_ptr BOOST_FUNCTION_COMMA
-               BOOST_FUNCTION_PARMS)
+        static NDNBOOST_FUNCTION_VOID_RETURN_TYPE
+        invoke(function_buffer& function_obj_ptr NDNBOOST_FUNCTION_COMMA
+               NDNBOOST_FUNCTION_PARMS)
 
         {
           FunctionObj* f;
@@ -150,165 +150,165 @@
             f = reinterpret_cast<FunctionObj*>(&function_obj_ptr.data);
           else
             f = reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
-          BOOST_FUNCTION_RETURN((*f)(BOOST_FUNCTION_ARGS));
+          NDNBOOST_FUNCTION_RETURN((*f)(NDNBOOST_FUNCTION_ARGS));
         }
       };
 
       template<
         typename FunctionObj,
-        typename R BOOST_FUNCTION_COMMA
-        BOOST_FUNCTION_TEMPLATE_PARMS
+        typename R NDNBOOST_FUNCTION_COMMA
+        NDNBOOST_FUNCTION_TEMPLATE_PARMS
       >
-      struct BOOST_FUNCTION_FUNCTION_REF_INVOKER
+      struct NDNBOOST_FUNCTION_FUNCTION_REF_INVOKER
       {
-        static R invoke(function_buffer& function_obj_ptr BOOST_FUNCTION_COMMA
-                        BOOST_FUNCTION_PARMS)
+        static R invoke(function_buffer& function_obj_ptr NDNBOOST_FUNCTION_COMMA
+                        NDNBOOST_FUNCTION_PARMS)
 
         {
           FunctionObj* f = 
             reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
-          return (*f)(BOOST_FUNCTION_ARGS);
+          return (*f)(NDNBOOST_FUNCTION_ARGS);
         }
       };
 
       template<
         typename FunctionObj,
-        typename R BOOST_FUNCTION_COMMA
-        BOOST_FUNCTION_TEMPLATE_PARMS
+        typename R NDNBOOST_FUNCTION_COMMA
+        NDNBOOST_FUNCTION_TEMPLATE_PARMS
       >
-      struct BOOST_FUNCTION_VOID_FUNCTION_REF_INVOKER
+      struct NDNBOOST_FUNCTION_VOID_FUNCTION_REF_INVOKER
       {
-        static BOOST_FUNCTION_VOID_RETURN_TYPE
-        invoke(function_buffer& function_obj_ptr BOOST_FUNCTION_COMMA
-               BOOST_FUNCTION_PARMS)
+        static NDNBOOST_FUNCTION_VOID_RETURN_TYPE
+        invoke(function_buffer& function_obj_ptr NDNBOOST_FUNCTION_COMMA
+               NDNBOOST_FUNCTION_PARMS)
 
         {
           FunctionObj* f = 
             reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
-          BOOST_FUNCTION_RETURN((*f)(BOOST_FUNCTION_ARGS));
+          NDNBOOST_FUNCTION_RETURN((*f)(NDNBOOST_FUNCTION_ARGS));
         }
       };
 
-#if BOOST_FUNCTION_NUM_ARGS > 0
+#if NDNBOOST_FUNCTION_NUM_ARGS > 0
       /* Handle invocation of member pointers. */
       template<
         typename MemberPtr,
-        typename R BOOST_FUNCTION_COMMA
-        BOOST_FUNCTION_TEMPLATE_PARMS
+        typename R NDNBOOST_FUNCTION_COMMA
+        NDNBOOST_FUNCTION_TEMPLATE_PARMS
       >
-      struct BOOST_FUNCTION_MEMBER_INVOKER
+      struct NDNBOOST_FUNCTION_MEMBER_INVOKER
       {
-        static R invoke(function_buffer& function_obj_ptr BOOST_FUNCTION_COMMA
-                        BOOST_FUNCTION_PARMS)
+        static R invoke(function_buffer& function_obj_ptr NDNBOOST_FUNCTION_COMMA
+                        NDNBOOST_FUNCTION_PARMS)
 
         {
           MemberPtr* f = 
             reinterpret_cast<MemberPtr*>(&function_obj_ptr.data);
-          return ndnboost::mem_fn(*f)(BOOST_FUNCTION_ARGS);
+          return ndnboost::mem_fn(*f)(NDNBOOST_FUNCTION_ARGS);
         }
       };
 
       template<
         typename MemberPtr,
-        typename R BOOST_FUNCTION_COMMA
-        BOOST_FUNCTION_TEMPLATE_PARMS
+        typename R NDNBOOST_FUNCTION_COMMA
+        NDNBOOST_FUNCTION_TEMPLATE_PARMS
       >
-      struct BOOST_FUNCTION_VOID_MEMBER_INVOKER
+      struct NDNBOOST_FUNCTION_VOID_MEMBER_INVOKER
       {
-        static BOOST_FUNCTION_VOID_RETURN_TYPE
-        invoke(function_buffer& function_obj_ptr BOOST_FUNCTION_COMMA
-               BOOST_FUNCTION_PARMS)
+        static NDNBOOST_FUNCTION_VOID_RETURN_TYPE
+        invoke(function_buffer& function_obj_ptr NDNBOOST_FUNCTION_COMMA
+               NDNBOOST_FUNCTION_PARMS)
 
         {
           MemberPtr* f = 
             reinterpret_cast<MemberPtr*>(&function_obj_ptr.data);
-          BOOST_FUNCTION_RETURN(ndnboost::mem_fn(*f)(BOOST_FUNCTION_ARGS));
+          NDNBOOST_FUNCTION_RETURN(ndnboost::mem_fn(*f)(NDNBOOST_FUNCTION_ARGS));
         }
       };
 #endif
 
       template<
         typename FunctionPtr,
-        typename R BOOST_FUNCTION_COMMA
-        BOOST_FUNCTION_TEMPLATE_PARMS
+        typename R NDNBOOST_FUNCTION_COMMA
+        NDNBOOST_FUNCTION_TEMPLATE_PARMS
       >
-      struct BOOST_FUNCTION_GET_FUNCTION_INVOKER
+      struct NDNBOOST_FUNCTION_GET_FUNCTION_INVOKER
       {
         typedef typename mpl::if_c<(is_void<R>::value),
-                            BOOST_FUNCTION_VOID_FUNCTION_INVOKER<
+                            NDNBOOST_FUNCTION_VOID_FUNCTION_INVOKER<
                             FunctionPtr,
-                            R BOOST_FUNCTION_COMMA
-                            BOOST_FUNCTION_TEMPLATE_ARGS
+                            R NDNBOOST_FUNCTION_COMMA
+                            NDNBOOST_FUNCTION_TEMPLATE_ARGS
                           >,
-                          BOOST_FUNCTION_FUNCTION_INVOKER<
+                          NDNBOOST_FUNCTION_FUNCTION_INVOKER<
                             FunctionPtr,
-                            R BOOST_FUNCTION_COMMA
-                            BOOST_FUNCTION_TEMPLATE_ARGS
+                            R NDNBOOST_FUNCTION_COMMA
+                            NDNBOOST_FUNCTION_TEMPLATE_ARGS
                           >
                        >::type type;
       };
 
       template<
         typename FunctionObj,
-        typename R BOOST_FUNCTION_COMMA
-        BOOST_FUNCTION_TEMPLATE_PARMS
+        typename R NDNBOOST_FUNCTION_COMMA
+        NDNBOOST_FUNCTION_TEMPLATE_PARMS
        >
-      struct BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER
+      struct NDNBOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER
       {
         typedef typename mpl::if_c<(is_void<R>::value),
-                            BOOST_FUNCTION_VOID_FUNCTION_OBJ_INVOKER<
+                            NDNBOOST_FUNCTION_VOID_FUNCTION_OBJ_INVOKER<
                             FunctionObj,
-                            R BOOST_FUNCTION_COMMA
-                            BOOST_FUNCTION_TEMPLATE_ARGS
+                            R NDNBOOST_FUNCTION_COMMA
+                            NDNBOOST_FUNCTION_TEMPLATE_ARGS
                           >,
-                          BOOST_FUNCTION_FUNCTION_OBJ_INVOKER<
+                          NDNBOOST_FUNCTION_FUNCTION_OBJ_INVOKER<
                             FunctionObj,
-                            R BOOST_FUNCTION_COMMA
-                            BOOST_FUNCTION_TEMPLATE_ARGS
+                            R NDNBOOST_FUNCTION_COMMA
+                            NDNBOOST_FUNCTION_TEMPLATE_ARGS
                           >
                        >::type type;
       };
 
       template<
         typename FunctionObj,
-        typename R BOOST_FUNCTION_COMMA
-        BOOST_FUNCTION_TEMPLATE_PARMS
+        typename R NDNBOOST_FUNCTION_COMMA
+        NDNBOOST_FUNCTION_TEMPLATE_PARMS
        >
-      struct BOOST_FUNCTION_GET_FUNCTION_REF_INVOKER
+      struct NDNBOOST_FUNCTION_GET_FUNCTION_REF_INVOKER
       {
         typedef typename mpl::if_c<(is_void<R>::value),
-                            BOOST_FUNCTION_VOID_FUNCTION_REF_INVOKER<
+                            NDNBOOST_FUNCTION_VOID_FUNCTION_REF_INVOKER<
                             FunctionObj,
-                            R BOOST_FUNCTION_COMMA
-                            BOOST_FUNCTION_TEMPLATE_ARGS
+                            R NDNBOOST_FUNCTION_COMMA
+                            NDNBOOST_FUNCTION_TEMPLATE_ARGS
                           >,
-                          BOOST_FUNCTION_FUNCTION_REF_INVOKER<
+                          NDNBOOST_FUNCTION_FUNCTION_REF_INVOKER<
                             FunctionObj,
-                            R BOOST_FUNCTION_COMMA
-                            BOOST_FUNCTION_TEMPLATE_ARGS
+                            R NDNBOOST_FUNCTION_COMMA
+                            NDNBOOST_FUNCTION_TEMPLATE_ARGS
                           >
                        >::type type;
       };
 
-#if BOOST_FUNCTION_NUM_ARGS > 0
+#if NDNBOOST_FUNCTION_NUM_ARGS > 0
       /* Retrieve the appropriate invoker for a member pointer.  */
       template<
         typename MemberPtr,
-        typename R BOOST_FUNCTION_COMMA
-        BOOST_FUNCTION_TEMPLATE_PARMS
+        typename R NDNBOOST_FUNCTION_COMMA
+        NDNBOOST_FUNCTION_TEMPLATE_PARMS
        >
-      struct BOOST_FUNCTION_GET_MEMBER_INVOKER
+      struct NDNBOOST_FUNCTION_GET_MEMBER_INVOKER
       {
         typedef typename mpl::if_c<(is_void<R>::value),
-                            BOOST_FUNCTION_VOID_MEMBER_INVOKER<
+                            NDNBOOST_FUNCTION_VOID_MEMBER_INVOKER<
                             MemberPtr,
-                            R BOOST_FUNCTION_COMMA
-                            BOOST_FUNCTION_TEMPLATE_ARGS
+                            R NDNBOOST_FUNCTION_COMMA
+                            NDNBOOST_FUNCTION_TEMPLATE_ARGS
                           >,
-                          BOOST_FUNCTION_MEMBER_INVOKER<
+                          NDNBOOST_FUNCTION_MEMBER_INVOKER<
                             MemberPtr,
-                            R BOOST_FUNCTION_COMMA
-                            BOOST_FUNCTION_TEMPLATE_ARGS
+                            R NDNBOOST_FUNCTION_COMMA
+                            NDNBOOST_FUNCTION_TEMPLATE_ARGS
                           >
                        >::type type;
       };
@@ -324,20 +324,20 @@
          contains two typedefs, "invoker_type" and "manager_type",
          which correspond to the invoker and manager types. */
       template<typename Tag>
-      struct BOOST_FUNCTION_GET_INVOKER { };
+      struct NDNBOOST_FUNCTION_GET_INVOKER { };
 
       /* Retrieve the invoker for a function pointer. */
       template<>
-      struct BOOST_FUNCTION_GET_INVOKER<function_ptr_tag>
+      struct NDNBOOST_FUNCTION_GET_INVOKER<function_ptr_tag>
       {
         template<typename FunctionPtr,
-                 typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS>
+                 typename R NDNBOOST_FUNCTION_COMMA NDNBOOST_FUNCTION_TEMPLATE_PARMS>
         struct apply
         {
-          typedef typename BOOST_FUNCTION_GET_FUNCTION_INVOKER<
+          typedef typename NDNBOOST_FUNCTION_GET_FUNCTION_INVOKER<
                              FunctionPtr,
-                             R BOOST_FUNCTION_COMMA
-                             BOOST_FUNCTION_TEMPLATE_ARGS
+                             R NDNBOOST_FUNCTION_COMMA
+                             NDNBOOST_FUNCTION_TEMPLATE_ARGS
                            >::type
             invoker_type;
 
@@ -345,14 +345,14 @@
         };
 
         template<typename FunctionPtr,
-                 typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS,
+                 typename R NDNBOOST_FUNCTION_COMMA NDNBOOST_FUNCTION_TEMPLATE_PARMS,
                  typename Allocator>
         struct apply_a
         {
-          typedef typename BOOST_FUNCTION_GET_FUNCTION_INVOKER<
+          typedef typename NDNBOOST_FUNCTION_GET_FUNCTION_INVOKER<
                              FunctionPtr,
-                             R BOOST_FUNCTION_COMMA
-                             BOOST_FUNCTION_TEMPLATE_ARGS
+                             R NDNBOOST_FUNCTION_COMMA
+                             NDNBOOST_FUNCTION_TEMPLATE_ARGS
                            >::type
             invoker_type;
 
@@ -360,19 +360,19 @@
         };
       };
 
-#if BOOST_FUNCTION_NUM_ARGS > 0
+#if NDNBOOST_FUNCTION_NUM_ARGS > 0
       /* Retrieve the invoker for a member pointer. */
       template<>
-      struct BOOST_FUNCTION_GET_INVOKER<member_ptr_tag>
+      struct NDNBOOST_FUNCTION_GET_INVOKER<member_ptr_tag>
       {
         template<typename MemberPtr,
-                 typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS>
+                 typename R NDNBOOST_FUNCTION_COMMA NDNBOOST_FUNCTION_TEMPLATE_PARMS>
         struct apply
         {
-          typedef typename BOOST_FUNCTION_GET_MEMBER_INVOKER<
+          typedef typename NDNBOOST_FUNCTION_GET_MEMBER_INVOKER<
                              MemberPtr,
-                             R BOOST_FUNCTION_COMMA
-                             BOOST_FUNCTION_TEMPLATE_ARGS
+                             R NDNBOOST_FUNCTION_COMMA
+                             NDNBOOST_FUNCTION_TEMPLATE_ARGS
                            >::type
             invoker_type;
 
@@ -380,14 +380,14 @@
         };
 
         template<typename MemberPtr,
-                 typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS,
+                 typename R NDNBOOST_FUNCTION_COMMA NDNBOOST_FUNCTION_TEMPLATE_PARMS,
                  typename Allocator>
         struct apply_a
         {
-          typedef typename BOOST_FUNCTION_GET_MEMBER_INVOKER<
+          typedef typename NDNBOOST_FUNCTION_GET_MEMBER_INVOKER<
                              MemberPtr,
-                             R BOOST_FUNCTION_COMMA
-                             BOOST_FUNCTION_TEMPLATE_ARGS
+                             R NDNBOOST_FUNCTION_COMMA
+                             NDNBOOST_FUNCTION_TEMPLATE_ARGS
                            >::type
             invoker_type;
 
@@ -398,16 +398,16 @@
 
       /* Retrieve the invoker for a function object. */
       template<>
-      struct BOOST_FUNCTION_GET_INVOKER<function_obj_tag>
+      struct NDNBOOST_FUNCTION_GET_INVOKER<function_obj_tag>
       {
         template<typename FunctionObj,
-                 typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS>
+                 typename R NDNBOOST_FUNCTION_COMMA NDNBOOST_FUNCTION_TEMPLATE_PARMS>
         struct apply
         {
-          typedef typename BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER<
+          typedef typename NDNBOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER<
                              FunctionObj,
-                             R BOOST_FUNCTION_COMMA
-                             BOOST_FUNCTION_TEMPLATE_ARGS
+                             R NDNBOOST_FUNCTION_COMMA
+                             NDNBOOST_FUNCTION_TEMPLATE_ARGS
                            >::type
             invoker_type;
 
@@ -415,14 +415,14 @@
         };
 
         template<typename FunctionObj,
-                 typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS,
+                 typename R NDNBOOST_FUNCTION_COMMA NDNBOOST_FUNCTION_TEMPLATE_PARMS,
                  typename Allocator>
         struct apply_a
         {
-          typedef typename BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER<
+          typedef typename NDNBOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER<
                              FunctionObj,
-                             R BOOST_FUNCTION_COMMA
-                             BOOST_FUNCTION_TEMPLATE_ARGS
+                             R NDNBOOST_FUNCTION_COMMA
+                             NDNBOOST_FUNCTION_TEMPLATE_ARGS
                            >::type
             invoker_type;
 
@@ -432,16 +432,16 @@
 
       /* Retrieve the invoker for a reference to a function object. */
       template<>
-      struct BOOST_FUNCTION_GET_INVOKER<function_obj_ref_tag>
+      struct NDNBOOST_FUNCTION_GET_INVOKER<function_obj_ref_tag>
       {
         template<typename RefWrapper,
-                 typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS>
+                 typename R NDNBOOST_FUNCTION_COMMA NDNBOOST_FUNCTION_TEMPLATE_PARMS>
         struct apply
         {
-          typedef typename BOOST_FUNCTION_GET_FUNCTION_REF_INVOKER<
+          typedef typename NDNBOOST_FUNCTION_GET_FUNCTION_REF_INVOKER<
                              typename RefWrapper::type,
-                             R BOOST_FUNCTION_COMMA
-                             BOOST_FUNCTION_TEMPLATE_ARGS
+                             R NDNBOOST_FUNCTION_COMMA
+                             NDNBOOST_FUNCTION_TEMPLATE_ARGS
                            >::type
             invoker_type;
 
@@ -449,14 +449,14 @@
         };
 
         template<typename RefWrapper,
-                 typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS,
+                 typename R NDNBOOST_FUNCTION_COMMA NDNBOOST_FUNCTION_TEMPLATE_PARMS,
                  typename Allocator>
         struct apply_a
         {
-          typedef typename BOOST_FUNCTION_GET_FUNCTION_REF_INVOKER<
+          typedef typename NDNBOOST_FUNCTION_GET_FUNCTION_REF_INVOKER<
                              typename RefWrapper::type,
-                             R BOOST_FUNCTION_COMMA
-                             BOOST_FUNCTION_TEMPLATE_ARGS
+                             R NDNBOOST_FUNCTION_COMMA
+                             NDNBOOST_FUNCTION_TEMPLATE_ARGS
                            >::type
             invoker_type;
 
@@ -472,18 +472,18 @@
        * members. It therefore cannot have any constructors,
        * destructors, base classes, etc.
        */
-      template<typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS>
-      struct BOOST_FUNCTION_VTABLE
+      template<typename R NDNBOOST_FUNCTION_COMMA NDNBOOST_FUNCTION_TEMPLATE_PARMS>
+      struct NDNBOOST_FUNCTION_VTABLE
       {
-#ifndef BOOST_NO_VOID_RETURNS
+#ifndef NDNBOOST_NO_VOID_RETURNS
         typedef R         result_type;
 #else
         typedef typename function_return_type<R>::type result_type;
-#endif // BOOST_NO_VOID_RETURNS
+#endif // NDNBOOST_NO_VOID_RETURNS
 
         typedef result_type (*invoker_type)(function_buffer&
-                                            BOOST_FUNCTION_COMMA
-                                            BOOST_FUNCTION_TEMPLATE_ARGS);
+                                            NDNBOOST_FUNCTION_COMMA
+                                            NDNBOOST_FUNCTION_TEMPLATE_ARGS);
 
         template<typename F>
         bool assign_to(F f, function_buffer& functor) const
@@ -528,7 +528,7 @@
         }
 
         // Member pointers
-#if BOOST_FUNCTION_NUM_ARGS > 0
+#if NDNBOOST_FUNCTION_NUM_ARGS > 0
         template<typename MemberPtr>
         bool assign_to(MemberPtr f, function_buffer& functor, member_ptr_tag) const
         {
@@ -555,7 +555,7 @@
             return false;
           }
         }
-#endif // BOOST_FUNCTION_NUM_ARGS > 0
+#endif // NDNBOOST_FUNCTION_NUM_ARGS > 0
 
         // Function objects
         // Assign to a function object using the small object optimization
@@ -646,16 +646,16 @@
   } // end namespace detail
 
   template<
-    typename R BOOST_FUNCTION_COMMA
-    BOOST_FUNCTION_TEMPLATE_PARMS
+    typename R NDNBOOST_FUNCTION_COMMA
+    NDNBOOST_FUNCTION_TEMPLATE_PARMS
   >
-  class BOOST_FUNCTION_FUNCTION : public function_base
+  class NDNBOOST_FUNCTION_FUNCTION : public function_base
 
-#if BOOST_FUNCTION_NUM_ARGS == 1
+#if NDNBOOST_FUNCTION_NUM_ARGS == 1
 
     , public std::unary_function<T0,R>
 
-#elif BOOST_FUNCTION_NUM_ARGS == 2
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 2
 
     , public std::binary_function<T0,T1,R>
 
@@ -663,16 +663,16 @@
 
   {
   public:
-#ifndef BOOST_NO_VOID_RETURNS
+#ifndef NDNBOOST_NO_VOID_RETURNS
     typedef R         result_type;
 #else
     typedef  typename ndnboost::detail::function::function_return_type<R>::type
       result_type;
-#endif // BOOST_NO_VOID_RETURNS
+#endif // NDNBOOST_NO_VOID_RETURNS
 
   private:
-    typedef ndnboost::detail::function::BOOST_FUNCTION_VTABLE<
-              R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_ARGS>
+    typedef ndnboost::detail::function::NDNBOOST_FUNCTION_VTABLE<
+              R NDNBOOST_FUNCTION_COMMA NDNBOOST_FUNCTION_TEMPLATE_ARGS>
       vtable_type;
 
     vtable_type* get_vtable() const {
@@ -683,7 +683,7 @@
     struct clear_type {};
 
   public:
-    BOOST_STATIC_CONSTANT(int, args = BOOST_FUNCTION_NUM_ARGS);
+    NDNBOOST_STATIC_CONSTANT(int, args = NDNBOOST_FUNCTION_NUM_ARGS);
 
     // add signature for ndnboost::lambda
     template<typename Args>
@@ -692,178 +692,178 @@
       typedef result_type type;
     };
 
-#if BOOST_FUNCTION_NUM_ARGS == 1
+#if NDNBOOST_FUNCTION_NUM_ARGS == 1
     typedef T0 argument_type;
-#elif BOOST_FUNCTION_NUM_ARGS == 2
+#elif NDNBOOST_FUNCTION_NUM_ARGS == 2
     typedef T0 first_argument_type;
     typedef T1 second_argument_type;
 #endif
 
-    BOOST_STATIC_CONSTANT(int, arity = BOOST_FUNCTION_NUM_ARGS);
-    BOOST_FUNCTION_ARG_TYPES
+    NDNBOOST_STATIC_CONSTANT(int, arity = NDNBOOST_FUNCTION_NUM_ARGS);
+    NDNBOOST_FUNCTION_ARG_TYPES
 
-    typedef BOOST_FUNCTION_FUNCTION self_type;
+    typedef NDNBOOST_FUNCTION_FUNCTION self_type;
 
-    BOOST_FUNCTION_FUNCTION() : function_base() { }
+    NDNBOOST_FUNCTION_FUNCTION() : function_base() { }
 
     // MSVC chokes if the following two constructors are collapsed into
     // one with a default parameter.
     template<typename Functor>
-    BOOST_FUNCTION_FUNCTION(Functor BOOST_FUNCTION_TARGET_FIX(const &) f
-#ifndef BOOST_NO_SFINAE
+    NDNBOOST_FUNCTION_FUNCTION(Functor NDNBOOST_FUNCTION_TARGET_FIX(const &) f
+#ifndef NDNBOOST_NO_SFINAE
                             ,typename enable_if_c<
                             (ndnboost::type_traits::ice_not<
                              (is_integral<Functor>::value)>::value),
                                         int>::type = 0
-#endif // BOOST_NO_SFINAE
+#endif // NDNBOOST_NO_SFINAE
                             ) :
       function_base()
     {
       this->assign_to(f);
     }
     template<typename Functor,typename Allocator>
-    BOOST_FUNCTION_FUNCTION(Functor BOOST_FUNCTION_TARGET_FIX(const &) f, Allocator a
-#ifndef BOOST_NO_SFINAE
+    NDNBOOST_FUNCTION_FUNCTION(Functor NDNBOOST_FUNCTION_TARGET_FIX(const &) f, Allocator a
+#ifndef NDNBOOST_NO_SFINAE
                             ,typename enable_if_c<
                             (ndnboost::type_traits::ice_not<
                              (is_integral<Functor>::value)>::value),
                                         int>::type = 0
-#endif // BOOST_NO_SFINAE
+#endif // NDNBOOST_NO_SFINAE
                             ) :
       function_base()
     {
       this->assign_to_a(f,a);
     }
 
-#ifndef BOOST_NO_SFINAE
-    BOOST_FUNCTION_FUNCTION(clear_type*) : function_base() { }
+#ifndef NDNBOOST_NO_SFINAE
+    NDNBOOST_FUNCTION_FUNCTION(clear_type*) : function_base() { }
 #else
-    BOOST_FUNCTION_FUNCTION(int zero) : function_base()
+    NDNBOOST_FUNCTION_FUNCTION(int zero) : function_base()
     {
-      BOOST_ASSERT(zero == 0);
+      NDNBOOST_ASSERT(zero == 0);
     }
 #endif
 
-    BOOST_FUNCTION_FUNCTION(const BOOST_FUNCTION_FUNCTION& f) : function_base()
+    NDNBOOST_FUNCTION_FUNCTION(const NDNBOOST_FUNCTION_FUNCTION& f) : function_base()
     {
       this->assign_to_own(f);
     }
     
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
-    BOOST_FUNCTION_FUNCTION(BOOST_FUNCTION_FUNCTION&& f) : function_base()
+#ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
+    NDNBOOST_FUNCTION_FUNCTION(NDNBOOST_FUNCTION_FUNCTION&& f) : function_base()
     {
       this->move_assign(f);
     }
 #endif
     
-    ~BOOST_FUNCTION_FUNCTION() { clear(); }
+    ~NDNBOOST_FUNCTION_FUNCTION() { clear(); }
 
-    result_type operator()(BOOST_FUNCTION_PARMS) const
+    result_type operator()(NDNBOOST_FUNCTION_PARMS) const
     {
       if (this->empty())
         ndnboost::throw_exception(bad_function_call());
 
       return get_vtable()->invoker
-               (this->functor BOOST_FUNCTION_COMMA BOOST_FUNCTION_ARGS);
+               (this->functor NDNBOOST_FUNCTION_COMMA NDNBOOST_FUNCTION_ARGS);
     }
 
-    // The distinction between when to use BOOST_FUNCTION_FUNCTION and
+    // The distinction between when to use NDNBOOST_FUNCTION_FUNCTION and
     // when to use self_type is obnoxious. MSVC cannot handle self_type as
     // the return type of these assignment operators, but Borland C++ cannot
-    // handle BOOST_FUNCTION_FUNCTION as the type of the temporary to
+    // handle NDNBOOST_FUNCTION_FUNCTION as the type of the temporary to
     // construct.
     template<typename Functor>
-#ifndef BOOST_NO_SFINAE
+#ifndef NDNBOOST_NO_SFINAE
     typename enable_if_c<
                (ndnboost::type_traits::ice_not<
                  (is_integral<Functor>::value)>::value),
-               BOOST_FUNCTION_FUNCTION&>::type
+               NDNBOOST_FUNCTION_FUNCTION&>::type
 #else
-    BOOST_FUNCTION_FUNCTION&
+    NDNBOOST_FUNCTION_FUNCTION&
 #endif
-    operator=(Functor BOOST_FUNCTION_TARGET_FIX(const &) f)
+    operator=(Functor NDNBOOST_FUNCTION_TARGET_FIX(const &) f)
     {
       this->clear();
-      BOOST_TRY  {
+      NDNBOOST_TRY  {
         this->assign_to(f);
-      } BOOST_CATCH (...) {
+      } NDNBOOST_CATCH (...) {
         vtable = 0;
-        BOOST_RETHROW;
+        NDNBOOST_RETHROW;
       }
-      BOOST_CATCH_END
+      NDNBOOST_CATCH_END
       return *this;
     }
     template<typename Functor,typename Allocator>
-    void assign(Functor BOOST_FUNCTION_TARGET_FIX(const &) f, Allocator a)
+    void assign(Functor NDNBOOST_FUNCTION_TARGET_FIX(const &) f, Allocator a)
     {
       this->clear();
-      BOOST_TRY{
+      NDNBOOST_TRY{
         this->assign_to_a(f,a);
-      } BOOST_CATCH (...) {
+      } NDNBOOST_CATCH (...) {
         vtable = 0;
-        BOOST_RETHROW;
+        NDNBOOST_RETHROW;
       }
-      BOOST_CATCH_END
+      NDNBOOST_CATCH_END
     }
 
-#ifndef BOOST_NO_SFINAE
-    BOOST_FUNCTION_FUNCTION& operator=(clear_type*)
+#ifndef NDNBOOST_NO_SFINAE
+    NDNBOOST_FUNCTION_FUNCTION& operator=(clear_type*)
     {
       this->clear();
       return *this;
     }
 #else
-    BOOST_FUNCTION_FUNCTION& operator=(int zero)
+    NDNBOOST_FUNCTION_FUNCTION& operator=(int zero)
     {
-      BOOST_ASSERT(zero == 0);
+      NDNBOOST_ASSERT(zero == 0);
       this->clear();
       return *this;
     }
 #endif
 
-    // Assignment from another BOOST_FUNCTION_FUNCTION
-    BOOST_FUNCTION_FUNCTION& operator=(const BOOST_FUNCTION_FUNCTION& f)
+    // Assignment from another NDNBOOST_FUNCTION_FUNCTION
+    NDNBOOST_FUNCTION_FUNCTION& operator=(const NDNBOOST_FUNCTION_FUNCTION& f)
     {
       if (&f == this)
         return *this;
 
       this->clear();
-      BOOST_TRY {
+      NDNBOOST_TRY {
         this->assign_to_own(f);
-      } BOOST_CATCH (...) {
+      } NDNBOOST_CATCH (...) {
         vtable = 0;
-        BOOST_RETHROW;
+        NDNBOOST_RETHROW;
       }
-      BOOST_CATCH_END
+      NDNBOOST_CATCH_END
       return *this;
     }
     
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
-    // Move assignment from another BOOST_FUNCTION_FUNCTION
-    BOOST_FUNCTION_FUNCTION& operator=(BOOST_FUNCTION_FUNCTION&& f)
+#ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
+    // Move assignment from another NDNBOOST_FUNCTION_FUNCTION
+    NDNBOOST_FUNCTION_FUNCTION& operator=(NDNBOOST_FUNCTION_FUNCTION&& f)
     {
       
       if (&f == this)
         return *this;
 
       this->clear();
-      BOOST_TRY {
+      NDNBOOST_TRY {
         this->move_assign(f);
-      } BOOST_CATCH (...) {
+      } NDNBOOST_CATCH (...) {
         vtable = 0;
-        BOOST_RETHROW;
+        NDNBOOST_RETHROW;
       }
-      BOOST_CATCH_END
+      NDNBOOST_CATCH_END
       return *this;
     }
 #endif
 
-    void swap(BOOST_FUNCTION_FUNCTION& other)
+    void swap(NDNBOOST_FUNCTION_FUNCTION& other)
     {
       if (&other == this)
         return;
 
-      BOOST_FUNCTION_FUNCTION tmp;
+      NDNBOOST_FUNCTION_FUNCTION tmp;
       tmp.move_assign(*this);
       this->move_assign(other);
       other.move_assign(tmp);
@@ -879,7 +879,7 @@
       }
     }
 
-#if (defined __SUNPRO_CC) && (__SUNPRO_CC <= 0x530) && !(defined BOOST_NO_COMPILER_CONFIG)
+#if (defined __SUNPRO_CC) && (__SUNPRO_CC <= 0x530) && !(defined NDNBOOST_NO_COMPILER_CONFIG)
     // Sun C++ 5.3 can't handle the safe_bool idiom, so don't use it
     operator bool () const { return !this->empty(); }
 #else
@@ -899,7 +899,7 @@
 #endif
 
   private:
-    void assign_to_own(const BOOST_FUNCTION_FUNCTION& f)
+    void assign_to_own(const NDNBOOST_FUNCTION_FUNCTION& f)
     {
       if (!f.empty()) {
         this->vtable = f.vtable;
@@ -917,10 +917,10 @@
       using detail::function::vtable_base;
 
       typedef typename detail::function::get_function_tag<Functor>::type tag;
-      typedef detail::function::BOOST_FUNCTION_GET_INVOKER<tag> get_invoker;
+      typedef detail::function::NDNBOOST_FUNCTION_GET_INVOKER<tag> get_invoker;
       typedef typename get_invoker::
-                         template apply<Functor, R BOOST_FUNCTION_COMMA 
-                        BOOST_FUNCTION_TEMPLATE_ARGS>
+                         template apply<Functor, R NDNBOOST_FUNCTION_COMMA 
+                        NDNBOOST_FUNCTION_TEMPLATE_ARGS>
         handler_type;
       
       typedef typename handler_type::invoker_type invoker_type;
@@ -950,10 +950,10 @@
       using detail::function::vtable_base;
 
       typedef typename detail::function::get_function_tag<Functor>::type tag;
-      typedef detail::function::BOOST_FUNCTION_GET_INVOKER<tag> get_invoker;
+      typedef detail::function::NDNBOOST_FUNCTION_GET_INVOKER<tag> get_invoker;
       typedef typename get_invoker::
-                         template apply_a<Functor, R BOOST_FUNCTION_COMMA 
-                         BOOST_FUNCTION_TEMPLATE_ARGS,
+                         template apply_a<Functor, R NDNBOOST_FUNCTION_COMMA 
+                         NDNBOOST_FUNCTION_TEMPLATE_ARGS,
                          Allocator>
         handler_type;
       
@@ -981,12 +981,12 @@
     // Moves the value from the specified argument to *this. If the argument 
     // has its function object allocated on the heap, move_assign will pass 
     // its buffer to *this, and set the argument's buffer pointer to NULL. 
-    void move_assign(BOOST_FUNCTION_FUNCTION& f) 
+    void move_assign(NDNBOOST_FUNCTION_FUNCTION& f) 
     { 
       if (&f == this)
         return;
 
-      BOOST_TRY {
+      NDNBOOST_TRY {
         if (!f.empty()) {
           this->vtable = f.vtable;
           if (this->has_trivial_copy_and_destroy())
@@ -998,57 +998,57 @@
         } else {
           clear();
         }
-      } BOOST_CATCH (...) {
+      } NDNBOOST_CATCH (...) {
         vtable = 0;
-        BOOST_RETHROW;
+        NDNBOOST_RETHROW;
       }
-      BOOST_CATCH_END
+      NDNBOOST_CATCH_END
     }
   };
 
-  template<typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS>
-  inline void swap(BOOST_FUNCTION_FUNCTION<
-                     R BOOST_FUNCTION_COMMA
-                     BOOST_FUNCTION_TEMPLATE_ARGS
+  template<typename R NDNBOOST_FUNCTION_COMMA NDNBOOST_FUNCTION_TEMPLATE_PARMS>
+  inline void swap(NDNBOOST_FUNCTION_FUNCTION<
+                     R NDNBOOST_FUNCTION_COMMA
+                     NDNBOOST_FUNCTION_TEMPLATE_ARGS
                    >& f1,
-                   BOOST_FUNCTION_FUNCTION<
-                     R BOOST_FUNCTION_COMMA
-                     BOOST_FUNCTION_TEMPLATE_ARGS
+                   NDNBOOST_FUNCTION_FUNCTION<
+                     R NDNBOOST_FUNCTION_COMMA
+                     NDNBOOST_FUNCTION_TEMPLATE_ARGS
                    >& f2)
   {
     f1.swap(f2);
   }
 
 // Poison comparisons between ndnboost::function objects of the same type.
-template<typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS>
-  void operator==(const BOOST_FUNCTION_FUNCTION<
-                          R BOOST_FUNCTION_COMMA
-                          BOOST_FUNCTION_TEMPLATE_ARGS>&,
-                  const BOOST_FUNCTION_FUNCTION<
-                          R BOOST_FUNCTION_COMMA
-                          BOOST_FUNCTION_TEMPLATE_ARGS>&);
-template<typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS>
-  void operator!=(const BOOST_FUNCTION_FUNCTION<
-                          R BOOST_FUNCTION_COMMA
-                          BOOST_FUNCTION_TEMPLATE_ARGS>&,
-                  const BOOST_FUNCTION_FUNCTION<
-                          R BOOST_FUNCTION_COMMA
-                          BOOST_FUNCTION_TEMPLATE_ARGS>& );
+template<typename R NDNBOOST_FUNCTION_COMMA NDNBOOST_FUNCTION_TEMPLATE_PARMS>
+  void operator==(const NDNBOOST_FUNCTION_FUNCTION<
+                          R NDNBOOST_FUNCTION_COMMA
+                          NDNBOOST_FUNCTION_TEMPLATE_ARGS>&,
+                  const NDNBOOST_FUNCTION_FUNCTION<
+                          R NDNBOOST_FUNCTION_COMMA
+                          NDNBOOST_FUNCTION_TEMPLATE_ARGS>&);
+template<typename R NDNBOOST_FUNCTION_COMMA NDNBOOST_FUNCTION_TEMPLATE_PARMS>
+  void operator!=(const NDNBOOST_FUNCTION_FUNCTION<
+                          R NDNBOOST_FUNCTION_COMMA
+                          NDNBOOST_FUNCTION_TEMPLATE_ARGS>&,
+                  const NDNBOOST_FUNCTION_FUNCTION<
+                          R NDNBOOST_FUNCTION_COMMA
+                          NDNBOOST_FUNCTION_TEMPLATE_ARGS>& );
 
-#if !defined(BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX)
+#if !defined(NDNBOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX)
 
-#if BOOST_FUNCTION_NUM_ARGS == 0
-#define BOOST_FUNCTION_PARTIAL_SPEC R (void)
+#if NDNBOOST_FUNCTION_NUM_ARGS == 0
+#define NDNBOOST_FUNCTION_PARTIAL_SPEC R (void)
 #else
-#define BOOST_FUNCTION_PARTIAL_SPEC R (BOOST_PP_ENUM_PARAMS(BOOST_FUNCTION_NUM_ARGS,T))
+#define NDNBOOST_FUNCTION_PARTIAL_SPEC R (NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_FUNCTION_NUM_ARGS,T))
 #endif
 
-template<typename R BOOST_FUNCTION_COMMA
-         BOOST_FUNCTION_TEMPLATE_PARMS>
-class function<BOOST_FUNCTION_PARTIAL_SPEC>
-  : public BOOST_FUNCTION_FUNCTION<R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_ARGS>
+template<typename R NDNBOOST_FUNCTION_COMMA
+         NDNBOOST_FUNCTION_TEMPLATE_PARMS>
+class function<NDNBOOST_FUNCTION_PARTIAL_SPEC>
+  : public NDNBOOST_FUNCTION_FUNCTION<R NDNBOOST_FUNCTION_COMMA NDNBOOST_FUNCTION_TEMPLATE_ARGS>
 {
-  typedef BOOST_FUNCTION_FUNCTION<R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_ARGS> base_type;
+  typedef NDNBOOST_FUNCTION_FUNCTION<R NDNBOOST_FUNCTION_COMMA NDNBOOST_FUNCTION_TEMPLATE_ARGS> base_type;
   typedef function self_type;
 
   struct clear_type {};
@@ -1059,7 +1059,7 @@
 
   template<typename Functor>
   function(Functor f
-#ifndef BOOST_NO_SFINAE
+#ifndef NDNBOOST_NO_SFINAE
            ,typename enable_if_c<
                             (ndnboost::type_traits::ice_not<
                           (is_integral<Functor>::value)>::value),
@@ -1071,7 +1071,7 @@
   }
   template<typename Functor,typename Allocator>
   function(Functor f, Allocator a
-#ifndef BOOST_NO_SFINAE
+#ifndef NDNBOOST_NO_SFINAE
            ,typename enable_if_c<
                             (ndnboost::type_traits::ice_not<
                           (is_integral<Functor>::value)>::value),
@@ -1082,7 +1082,7 @@
   {
   }
 
-#ifndef BOOST_NO_SFINAE
+#ifndef NDNBOOST_NO_SFINAE
   function(clear_type*) : base_type() {}
 #endif
 
@@ -1090,7 +1090,7 @@
 
   function(const base_type& f) : base_type(static_cast<const base_type&>(f)){}
 
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
+#ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
   // Move constructors
   function(self_type&& f): base_type(static_cast<base_type&&>(f)){}
   function(base_type&& f): base_type(static_cast<base_type&&>(f)){}
@@ -1102,7 +1102,7 @@
     return *this;
   }
 
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
+#ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
   self_type& operator=(self_type&& f)
   {
     self_type(static_cast<self_type&&>(f)).swap(*this);
@@ -1111,7 +1111,7 @@
 #endif  
 
   template<typename Functor>
-#ifndef BOOST_NO_SFINAE
+#ifndef NDNBOOST_NO_SFINAE
   typename enable_if_c<
                             (ndnboost::type_traits::ice_not<
                          (is_integral<Functor>::value)>::value),
@@ -1125,7 +1125,7 @@
     return *this;
   }
 
-#ifndef BOOST_NO_SFINAE
+#ifndef NDNBOOST_NO_SFINAE
   self_type& operator=(clear_type*)
   {
     this->clear();
@@ -1139,7 +1139,7 @@
     return *this;
   }
   
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
+#ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
   self_type& operator=(base_type&& f)
   {
     self_type(static_cast<base_type&&>(f)).swap(*this);
@@ -1148,38 +1148,38 @@
 #endif 
 };
 
-#undef BOOST_FUNCTION_PARTIAL_SPEC
+#undef NDNBOOST_FUNCTION_PARTIAL_SPEC
 #endif // have partial specialization
 
 } // end namespace ndnboost
 
 // Cleanup after ourselves...
-#undef BOOST_FUNCTION_VTABLE
-#undef BOOST_FUNCTION_COMMA
-#undef BOOST_FUNCTION_FUNCTION
-#undef BOOST_FUNCTION_FUNCTION_INVOKER
-#undef BOOST_FUNCTION_VOID_FUNCTION_INVOKER
-#undef BOOST_FUNCTION_FUNCTION_OBJ_INVOKER
-#undef BOOST_FUNCTION_VOID_FUNCTION_OBJ_INVOKER
-#undef BOOST_FUNCTION_FUNCTION_REF_INVOKER
-#undef BOOST_FUNCTION_VOID_FUNCTION_REF_INVOKER
-#undef BOOST_FUNCTION_MEMBER_INVOKER
-#undef BOOST_FUNCTION_VOID_MEMBER_INVOKER
-#undef BOOST_FUNCTION_GET_FUNCTION_INVOKER
-#undef BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER
-#undef BOOST_FUNCTION_GET_FUNCTION_REF_INVOKER
-#undef BOOST_FUNCTION_GET_MEM_FUNCTION_INVOKER
-#undef BOOST_FUNCTION_GET_INVOKER
-#undef BOOST_FUNCTION_TEMPLATE_PARMS
-#undef BOOST_FUNCTION_TEMPLATE_ARGS
-#undef BOOST_FUNCTION_PARMS
-#undef BOOST_FUNCTION_PARM
-#undef BOOST_FUNCTION_ARGS
-#undef BOOST_FUNCTION_ARG_TYPE
-#undef BOOST_FUNCTION_ARG_TYPES
-#undef BOOST_FUNCTION_VOID_RETURN_TYPE
-#undef BOOST_FUNCTION_RETURN
+#undef NDNBOOST_FUNCTION_VTABLE
+#undef NDNBOOST_FUNCTION_COMMA
+#undef NDNBOOST_FUNCTION_FUNCTION
+#undef NDNBOOST_FUNCTION_FUNCTION_INVOKER
+#undef NDNBOOST_FUNCTION_VOID_FUNCTION_INVOKER
+#undef NDNBOOST_FUNCTION_FUNCTION_OBJ_INVOKER
+#undef NDNBOOST_FUNCTION_VOID_FUNCTION_OBJ_INVOKER
+#undef NDNBOOST_FUNCTION_FUNCTION_REF_INVOKER
+#undef NDNBOOST_FUNCTION_VOID_FUNCTION_REF_INVOKER
+#undef NDNBOOST_FUNCTION_MEMBER_INVOKER
+#undef NDNBOOST_FUNCTION_VOID_MEMBER_INVOKER
+#undef NDNBOOST_FUNCTION_GET_FUNCTION_INVOKER
+#undef NDNBOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER
+#undef NDNBOOST_FUNCTION_GET_FUNCTION_REF_INVOKER
+#undef NDNBOOST_FUNCTION_GET_MEM_FUNCTION_INVOKER
+#undef NDNBOOST_FUNCTION_GET_INVOKER
+#undef NDNBOOST_FUNCTION_TEMPLATE_PARMS
+#undef NDNBOOST_FUNCTION_TEMPLATE_ARGS
+#undef NDNBOOST_FUNCTION_PARMS
+#undef NDNBOOST_FUNCTION_PARM
+#undef NDNBOOST_FUNCTION_ARGS
+#undef NDNBOOST_FUNCTION_ARG_TYPE
+#undef NDNBOOST_FUNCTION_ARG_TYPES
+#undef NDNBOOST_FUNCTION_VOID_RETURN_TYPE
+#undef NDNBOOST_FUNCTION_RETURN
 
-#if defined(BOOST_MSVC)
+#if defined(NDNBOOST_MSVC)
 #   pragma warning( pop )
 #endif       
diff --git a/include/ndnboost/function/function_typeof.hpp b/include/ndnboost/function/function_typeof.hpp
index e3d26c5..3dc0744 100644
--- a/include/ndnboost/function/function_typeof.hpp
+++ b/include/ndnboost/function/function_typeof.hpp
@@ -6,40 +6,40 @@
 //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //
 // For more information, see http://www.boost.org
-#ifndef BOOST_FUNCTION_TYPEOF_HPP
-#define BOOST_FUNCTION_TYPEOF_HPP
+#ifndef NDNBOOST_FUNCTION_TYPEOF_HPP
+#define NDNBOOST_FUNCTION_TYPEOF_HPP
 #include <ndnboost/function/function_fwd.hpp>
 #include <ndnboost/typeof/typeof.hpp>
 
-#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
+#include NDNBOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
 
-BOOST_TYPEOF_REGISTER_TYPE(ndnboost::bad_function_call)
+NDNBOOST_TYPEOF_REGISTER_TYPE(ndnboost::bad_function_call)
 
-#if !defined(BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX)
-BOOST_TYPEOF_REGISTER_TEMPLATE(ndnboost::function, (typename))
+#if !defined(NDNBOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX)
+NDNBOOST_TYPEOF_REGISTER_TEMPLATE(ndnboost::function, (typename))
 #endif
 
-BOOST_TYPEOF_REGISTER_TEMPLATE(ndnboost::function0, (typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(ndnboost::function1, (typename)(typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(ndnboost::function2, (typename)(typename)(typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(ndnboost::function3, 
+NDNBOOST_TYPEOF_REGISTER_TEMPLATE(ndnboost::function0, (typename))
+NDNBOOST_TYPEOF_REGISTER_TEMPLATE(ndnboost::function1, (typename)(typename))
+NDNBOOST_TYPEOF_REGISTER_TEMPLATE(ndnboost::function2, (typename)(typename)(typename))
+NDNBOOST_TYPEOF_REGISTER_TEMPLATE(ndnboost::function3, 
   (typename)(typename)(typename)(typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(ndnboost::function4, 
+NDNBOOST_TYPEOF_REGISTER_TEMPLATE(ndnboost::function4, 
   (typename)(typename)(typename)(typename)(typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(ndnboost::function5, 
+NDNBOOST_TYPEOF_REGISTER_TEMPLATE(ndnboost::function5, 
   (typename)(typename)(typename)(typename)(typename)(typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(ndnboost::function6, 
+NDNBOOST_TYPEOF_REGISTER_TEMPLATE(ndnboost::function6, 
   (typename)(typename)(typename)(typename)(typename)(typename)(typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(ndnboost::function7, 
+NDNBOOST_TYPEOF_REGISTER_TEMPLATE(ndnboost::function7, 
   (typename)(typename)(typename)(typename)(typename)(typename)(typename)
   (typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(ndnboost::function8, 
+NDNBOOST_TYPEOF_REGISTER_TEMPLATE(ndnboost::function8, 
   (typename)(typename)(typename)(typename)(typename)(typename)(typename)
   (typename)(typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(ndnboost::function9, 
+NDNBOOST_TYPEOF_REGISTER_TEMPLATE(ndnboost::function9, 
   (typename)(typename)(typename)(typename)(typename)(typename)(typename)
   (typename)(typename)(typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(ndnboost::function10, 
+NDNBOOST_TYPEOF_REGISTER_TEMPLATE(ndnboost::function10, 
   (typename)(typename)(typename)(typename)(typename)(typename)(typename)
   (typename)(typename)(typename)(typename))
 #endif
diff --git a/include/ndnboost/function/gen_function_N.pl b/include/ndnboost/function/gen_function_N.pl
index 7fc53c9..c3f4401 100644
--- a/include/ndnboost/function/gen_function_N.pl
+++ b/include/ndnboost/function/gen_function_N.pl
@@ -19,8 +19,8 @@
 $totalNumArgs = $ARGV[0];
 for ($numArgs = 0; $numArgs <= $totalNumArgs; ++$numArgs) {
   open OUT, ">function$numArgs.hpp";
-  print OUT "#define BOOST_FUNCTION_NUM_ARGS $numArgs\n";
+  print OUT "#define NDNBOOST_FUNCTION_NUM_ARGS $numArgs\n";
   print OUT "#include <ndnboost/function/detail/maybe_include.hpp>\n";
-  print OUT "#undef BOOST_FUNCTION_NUM_ARGS\n";
+  print OUT "#undef NDNBOOST_FUNCTION_NUM_ARGS\n";
   close OUT;
 }
diff --git a/include/ndnboost/function_equal.hpp b/include/ndnboost/function_equal.hpp
index c492d56..43e612c 100644
--- a/include/ndnboost/function_equal.hpp
+++ b/include/ndnboost/function_equal.hpp
@@ -7,8 +7,8 @@
 //  http://www.boost.org/LICENSE_1_0.txt)
 
 // For more information, see http://www.boost.org
-#ifndef BOOST_FUNCTION_EQUAL_HPP
-#define BOOST_FUNCTION_EQUAL_HPP
+#ifndef NDNBOOST_FUNCTION_EQUAL_HPP
+#define NDNBOOST_FUNCTION_EQUAL_HPP
 
 namespace ndnboost {
 
@@ -25,4 +25,4 @@
 
 } // end namespace ndnboost
 
-#endif // BOOST_FUNCTION_EQUAL_HPP
+#endif // NDNBOOST_FUNCTION_EQUAL_HPP
diff --git a/include/ndnboost/function_types/components.hpp b/include/ndnboost/function_types/components.hpp
index 6c4d43a..6fec107 100644
--- a/include/ndnboost/function_types/components.hpp
+++ b/include/ndnboost/function_types/components.hpp
@@ -6,8 +6,8 @@
 
 //------------------------------------------------------------------------------
 
-#ifndef BOOST_FT_COMPONENTS_HPP_INCLUDED
-#define BOOST_FT_COMPONENTS_HPP_INCLUDED
+#ifndef NDNBOOST_FT_COMPONENTS_HPP_INCLUDED
+#define NDNBOOST_FT_COMPONENTS_HPP_INCLUDED
 
 #include <cstddef>
 
@@ -23,7 +23,7 @@
 #include <ndnboost/mpl/integral_c.hpp>
 #include <ndnboost/mpl/vector/vector0.hpp>
 
-#if BOOST_WORKAROUND(__BORLANDC__, <= 0x565)
+#if NDNBOOST_WORKAROUND(__BORLANDC__, <= 0x565)
 #   include <ndnboost/type_traits/remove_cv.hpp>
 
 #   include <ndnboost/mpl/identity.hpp>
@@ -41,22 +41,22 @@
 #   include <ndnboost/function_types/detail/classifier.hpp>
 #endif
 
-#ifndef BOOST_FT_NO_CV_FUNC_SUPPORT
+#ifndef NDNBOOST_FT_NO_CV_FUNC_SUPPORT
 #   include <ndnboost/mpl/remove.hpp>
 #endif
 
 #include <ndnboost/function_types/config/config.hpp>
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#   if   BOOST_FT_MAX_ARITY < 10
+#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#   if   NDNBOOST_FT_MAX_ARITY < 10
 #     include <ndnboost/mpl/vector/vector10.hpp>
-#   elif BOOST_FT_MAX_ARITY < 20
+#   elif NDNBOOST_FT_MAX_ARITY < 20
 #     include <ndnboost/mpl/vector/vector20.hpp>
-#   elif BOOST_FT_MAX_ARITY < 30
+#   elif NDNBOOST_FT_MAX_ARITY < 30
 #     include <ndnboost/mpl/vector/vector30.hpp>
-#   elif BOOST_FT_MAX_ARITY < 40
+#   elif NDNBOOST_FT_MAX_ARITY < 40
 #     include <ndnboost/mpl/vector/vector40.hpp>
-#   elif BOOST_FT_MAX_ARITY < 50
+#   elif NDNBOOST_FT_MAX_ARITY < 50
 #     include <ndnboost/mpl/vector/vector50.hpp>
 #   endif
 #else
@@ -81,14 +81,14 @@
     namespace detail 
     {
       template<typename T, typename L> struct components_impl;
-#if BOOST_WORKAROUND(__BORLANDC__, <= 0x565)
+#if NDNBOOST_WORKAROUND(__BORLANDC__, <= 0x565)
       template<typename T, typename OrigT, typename L> struct components_bcc;
 #endif
     }
 
     template<typename T, typename ClassTypeTransform> 
     struct components
-#if !BOOST_WORKAROUND(__BORLANDC__, <= 0x565)
+#if !NDNBOOST_WORKAROUND(__BORLANDC__, <= 0x565)
       : detail::components_impl<T, ClassTypeTransform>
 #else
       : detail::components_bcc<typename remove_cv<T>::type,T,
@@ -97,7 +97,7 @@
     { 
       typedef components<T,ClassTypeTransform> type;
 
-      BOOST_MPL_AUX_LAMBDA_SUPPORT(2,components,(T,ClassTypeTransform))
+      NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2,components,(T,ClassTypeTransform))
     };
 
 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@@ -148,7 +148,7 @@
         , pointer_tag, /* --> */ reference_tag >
     { };
 
-#if !BOOST_FT_NO_CV_FUNC_SUPPORT
+#if !NDNBOOST_FT_NO_CV_FUNC_SUPPORT
     // Retry the type with a member pointer attached to detect cv functions
     class a_class;
 
@@ -260,8 +260,8 @@
           typename detail::class_transform<C,L>::type > types;
     };
 
-#if !BOOST_WORKAROUND(__BORLANDC__, <= 0x565)
-#   define BOOST_FT_variations BOOST_FT_pointer|BOOST_FT_member_pointer
+#if !NDNBOOST_WORKAROUND(__BORLANDC__, <= 0x565)
+#   define NDNBOOST_FT_variations NDNBOOST_FT_pointer|NDNBOOST_FT_member_pointer
 
     template<typename T, class C, typename L>
     struct components_impl<T C::*, L>
@@ -269,7 +269,7 @@
     { };
 
 #else  
-#   define BOOST_FT_variations BOOST_FT_pointer
+#   define NDNBOOST_FT_variations NDNBOOST_FT_pointer
 
     // This workaround removes the member pointer from the type to allow 
     // detection of member function pointers with BCC. 
@@ -288,13 +288,13 @@
     // we remove the qualifiers, So we cannot exploit the same bug to make the 
     // library work for cv-qualified function types).
     template<typename T> struct encode_cv
-    { typedef char (& type)[1]; BOOST_STATIC_CONSTANT(std::size_t, value = 1); };
+    { typedef char (& type)[1]; NDNBOOST_STATIC_CONSTANT(std::size_t, value = 1); };
     template<typename T> struct encode_cv<T const *>
-    { typedef char (& type)[2]; BOOST_STATIC_CONSTANT(std::size_t, value = 2); };
+    { typedef char (& type)[2]; NDNBOOST_STATIC_CONSTANT(std::size_t, value = 2); };
     template<typename T> struct encode_cv<T volatile *>
-    { typedef char (& type)[3]; BOOST_STATIC_CONSTANT(std::size_t, value = 3); };
+    { typedef char (& type)[3]; NDNBOOST_STATIC_CONSTANT(std::size_t, value = 3); };
     template<typename T> struct encode_cv<T const volatile *> 
-    { typedef char (& type)[4]; BOOST_STATIC_CONSTANT(std::size_t, value = 4); };
+    { typedef char (& type)[4]; NDNBOOST_STATIC_CONSTANT(std::size_t, value = 4); };
 
     // For member function pointers we have to use a function template (partial
     // template specialization for a member pointer drops the cv qualification 
@@ -304,7 +304,7 @@
 
     template<typename T> struct encode_mfp_cv
     { 
-      BOOST_STATIC_CONSTANT(std::size_t, value = 
+      NDNBOOST_STATIC_CONSTANT(std::size_t, value = 
           sizeof(detail::mfp_cv_tester((T)0L))); 
     };
 
@@ -415,12 +415,12 @@
 
 #endif // end of BORLAND WORKAROUND
 
-#define BOOST_FT_al_path ndnboost/function_types/detail/components_impl
+#define NDNBOOST_FT_al_path ndnboost/function_types/detail/components_impl
 #include <ndnboost/function_types/detail/pp_loop.hpp>
 
   } } // namespace function_types::detail
 
-  BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::components)
+  NDNBOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::components)
 
 } // namespace ::boost
 
diff --git a/include/ndnboost/function_types/config/cc_names.hpp b/include/ndnboost/function_types/config/cc_names.hpp
index ab69d64..8620a0a 100644
--- a/include/ndnboost/function_types/config/cc_names.hpp
+++ b/include/ndnboost/function_types/config/cc_names.hpp
@@ -6,25 +6,25 @@
 
 //------------------------------------------------------------------------------
 
-#ifndef BOOST_FT_CONFIG_CC_NAMES_HPP_INCLUDED
-#define BOOST_FT_CONFIG_CC_NAMES_HPP_INCLUDED
+#ifndef NDNBOOST_FT_CONFIG_CC_NAMES_HPP_INCLUDED
+#define NDNBOOST_FT_CONFIG_CC_NAMES_HPP_INCLUDED
 
-#define BOOST_FT_BUILTIN_CC_NAMES \
-  (( IMPLICIT           , implicit_cc , BOOST_PP_EMPTY                ))\
-  (( CDECL              , cdecl_cc    , BOOST_PP_IDENTITY(__cdecl   ) ))\
-  (( STDCALL            , stdcall_cc  , BOOST_PP_IDENTITY(__stdcall ) ))\
-  (( PASCAL             , pascal_cc   , BOOST_PP_IDENTITY(pascal    ) ))\
-  (( FASTCALL           , fastcall_cc , BOOST_PP_IDENTITY(__fastcall) ))\
-  (( CLRCALL            , clrcall_cc  , BOOST_PP_IDENTITY(__clrcall ) ))\
-  (( THISCALL           , thiscall_cc , BOOST_PP_IDENTITY(__thiscall) ))\
-  (( IMPLICIT_THISCALL  , thiscall_cc , BOOST_PP_EMPTY                )) 
+#define NDNBOOST_FT_BUILTIN_CC_NAMES \
+  (( IMPLICIT           , implicit_cc , NDNBOOST_PP_EMPTY                ))\
+  (( CDECL              , cdecl_cc    , NDNBOOST_PP_IDENTITY(__cdecl   ) ))\
+  (( STDCALL            , stdcall_cc  , NDNBOOST_PP_IDENTITY(__stdcall ) ))\
+  (( PASCAL             , pascal_cc   , NDNBOOST_PP_IDENTITY(pascal    ) ))\
+  (( FASTCALL           , fastcall_cc , NDNBOOST_PP_IDENTITY(__fastcall) ))\
+  (( CLRCALL            , clrcall_cc  , NDNBOOST_PP_IDENTITY(__clrcall ) ))\
+  (( THISCALL           , thiscall_cc , NDNBOOST_PP_IDENTITY(__thiscall) ))\
+  (( IMPLICIT_THISCALL  , thiscall_cc , NDNBOOST_PP_EMPTY                )) 
 
 // append user-defined cc names to builtin ones
-#ifdef BOOST_FT_CC_NAMES 
-#   define BOOST_FT_CC_NAMES_SEQ BOOST_FT_BUILTIN_CC_NAMES BOOST_FT_CC_NAMES
-#   define BOOST_FT_CC_PREPROCESSING 1
+#ifdef NDNBOOST_FT_CC_NAMES 
+#   define NDNBOOST_FT_CC_NAMES_SEQ NDNBOOST_FT_BUILTIN_CC_NAMES NDNBOOST_FT_CC_NAMES
+#   define NDNBOOST_FT_CC_PREPROCESSING 1
 #else
-#   define BOOST_FT_CC_NAMES_SEQ BOOST_FT_BUILTIN_CC_NAMES
+#   define NDNBOOST_FT_CC_NAMES_SEQ NDNBOOST_FT_BUILTIN_CC_NAMES
 #endif
 
 #endif
diff --git a/include/ndnboost/function_types/config/compiler.hpp b/include/ndnboost/function_types/config/compiler.hpp
index 9b06d18..87170a1 100644
--- a/include/ndnboost/function_types/config/compiler.hpp
+++ b/include/ndnboost/function_types/config/compiler.hpp
@@ -6,87 +6,87 @@
 
 //------------------------------------------------------------------------------
 
-#ifndef BOOST_FT_CONFIG_COMPILER_HPP_INCLUDED
-#define BOOST_FT_CONFIG_COMPILER_HPP_INCLUDED
+#ifndef NDNBOOST_FT_CONFIG_COMPILER_HPP_INCLUDED
+#define NDNBOOST_FT_CONFIG_COMPILER_HPP_INCLUDED
 
 #include <ndnboost/config.hpp>
 #include <ndnboost/detail/workaround.hpp>
 
-#if defined(BOOST_MSVC)
+#if defined(NDNBOOST_MSVC)
 
-#   if BOOST_MSVC < 1310
+#   if NDNBOOST_MSVC < 1310
 #     error "unsupported compiler version"
 #   endif
 
-#   ifdef BOOST_FT_AUTODETECT_CALLING_CONVENTIONS
+#   ifdef NDNBOOST_FT_AUTODETECT_CALLING_CONVENTIONS
 
       // enable clrcall calling covention (call to .NET managed code) when
       // compiling with /clr 
-#     if BOOST_MSVC >= 1400 && defined(__cplusplus_cli)
-#       ifndef BOOST_FT_CC_CLRCALL
-#       define BOOST_FT_CC_CLRCALL callable_builtin
+#     if NDNBOOST_MSVC >= 1400 && defined(__cplusplus_cli)
+#       ifndef NDNBOOST_FT_CC_CLRCALL
+#       define NDNBOOST_FT_CC_CLRCALL callable_builtin
 #       endif
 #     endif
 
       // Intel x86 architecture specific calling conventions
 #     ifdef _M_IX86
-#       define BOOST_FT_COMMON_X86_CCs callable_builtin
-#       if BOOST_MSVC < 1400
+#       define NDNBOOST_FT_COMMON_X86_CCs callable_builtin
+#       if NDNBOOST_MSVC < 1400
           // version 7.1 is missing a keyword to specify the thiscall cc ...
-#         ifndef BOOST_FT_CC_IMPLICIT_THISCALL
-#         define BOOST_FT_CC_IMPLICIT_THISCALL non_variadic|member|callable_builtin
-#         ifndef BOOST_FT_CONFIG_OK
+#         ifndef NDNBOOST_FT_CC_IMPLICIT_THISCALL
+#         define NDNBOOST_FT_CC_IMPLICIT_THISCALL non_variadic|member|callable_builtin
+#         ifndef NDNBOOST_FT_CONFIG_OK
 #           pragma message("INFO| /Gd /Gr /Gz will compiler options will cause")
 #           pragma message("INFO| a compile error.")
 #           pragma message("INFO| Reconfigure Boost.FunctionTypes in this case.")
 #           pragma message("INFO| This message can be suppressed by defining")
-#           pragma message("INFO| BOOST_FT_CONFIG_OK.")
+#           pragma message("INFO| NDNBOOST_FT_CONFIG_OK.")
 #         endif
 #         endif
 #       else 
           // ...introduced in version 8
-#         ifndef BOOST_FT_CC_THISCALL
-#         define BOOST_FT_CC_THISCALL non_variadic|member|callable_builtin
+#         ifndef NDNBOOST_FT_CC_THISCALL
+#         define NDNBOOST_FT_CC_THISCALL non_variadic|member|callable_builtin
 #         endif
 #       endif
 #     endif
 #   endif
 
-#elif defined(__GNUC__) && !defined(BOOST_INTEL_LINUX)
+#elif defined(__GNUC__) && !defined(NDNBOOST_INTEL_LINUX)
 
 #   if __GNUC__ < 3
 #     error "unsupported compiler version"
 #   endif
 
-#   ifdef BOOST_FT_AUTODETECT_CALLING_CONVENTIONS
+#   ifdef NDNBOOST_FT_AUTODETECT_CALLING_CONVENTIONS
 
 #     if defined(__i386__)
 #       // see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20439
 #       // see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29328
-#       if BOOST_WORKAROUND(__GNUC__,BOOST_TESTED_AT(4))
-#         ifndef BOOST_FT_CC_IMPLICIT 
-#         define BOOST_FT_CC_IMPLICIT member|callable_builtin
+#       if NDNBOOST_WORKAROUND(__GNUC__,NDNBOOST_TESTED_AT(4))
+#         ifndef NDNBOOST_FT_CC_IMPLICIT 
+#         define NDNBOOST_FT_CC_IMPLICIT member|callable_builtin
 #         endif
-#         define BOOST_FT_COMMON_X86_CCs non_member|callable_builtin
+#         define NDNBOOST_FT_COMMON_X86_CCs non_member|callable_builtin
 #       else
-#         define BOOST_FT_COMMON_X86_CCs callable_builtin
+#         define NDNBOOST_FT_COMMON_X86_CCs callable_builtin
 #       endif
 #     else
-#       ifndef BOOST_FT_CC_IMPLICIT
-#       define BOOST_FT_CC_IMPLICIT callable_builtin
+#       ifndef NDNBOOST_FT_CC_IMPLICIT
+#       define NDNBOOST_FT_CC_IMPLICIT callable_builtin
 #       endif
 #     endif
 #   endif
 
-#   if (defined(BOOST_FT_CC_CDECL) || defined(BOOST_FT_COMMON_X86_CCs)) \
+#   if (defined(NDNBOOST_FT_CC_CDECL) || defined(NDNBOOST_FT_COMMON_X86_CCs)) \
         && !defined(__cdecl)
 #     define __cdecl __attribute__((__cdecl__))
 #   endif
-#   if (defined(BOOST_FT_CC_STDCALL) || defined(BOOST_FT_COMMON_X86_CCs)) \
+#   if (defined(NDNBOOST_FT_CC_STDCALL) || defined(NDNBOOST_FT_COMMON_X86_CCs)) \
         && !defined(__stdcall)
 #     define __stdcall __attribute__((__stdcall__))
 #   endif
-#   if (defined(BOOST_FT_CC_FASTCALL) || defined(BOOST_FT_COMMON_X86_CCs)) \
+#   if (defined(NDNBOOST_FT_CC_FASTCALL) || defined(NDNBOOST_FT_COMMON_X86_CCs)) \
         && !defined(__fastcall)
 #     define __fastcall __attribute__((__fastcall__))
 #   endif
@@ -99,16 +99,16 @@
 #     pragma message("WARNING: library untested with this compiler version")
 #   endif
 
-#   ifdef BOOST_FT_AUTODETECT_CALLING_CONVENTIONS
-#     define BOOST_FT_COMMON_X86_CCs callable_builtin
+#   ifdef NDNBOOST_FT_AUTODETECT_CALLING_CONVENTIONS
+#     define NDNBOOST_FT_COMMON_X86_CCs callable_builtin
 #   endif
 
     // syntactic specialities of cc specifier
-#   define BOOST_FT_SYNTAX(result,lparen,cc_spec,type_mod,name,rparen) \
+#   define NDNBOOST_FT_SYNTAX(result,lparen,cc_spec,type_mod,name,rparen) \
                         result() cc_spec() lparen() type_mod() name() rparen()
 #else
     // only enable default calling convention
-#   define BOOST_FT_CC_IMPLICIT callable_builtin
+#   define NDNBOOST_FT_CC_IMPLICIT callable_builtin
 #endif
 
 
diff --git a/include/ndnboost/function_types/config/config.hpp b/include/ndnboost/function_types/config/config.hpp
index fb428a4..5e85532 100644
--- a/include/ndnboost/function_types/config/config.hpp
+++ b/include/ndnboost/function_types/config/config.hpp
@@ -6,53 +6,53 @@
 
 //------------------------------------------------------------------------------
 
-#ifndef BOOST_FT_CONFIG_HPP_INCLUDED
-#define BOOST_FT_CONFIG_HPP_INCLUDED
+#ifndef NDNBOOST_FT_CONFIG_HPP_INCLUDED
+#define NDNBOOST_FT_CONFIG_HPP_INCLUDED
 
 #include <ndnboost/function_types/config/compiler.hpp>
 #include <ndnboost/function_types/config/cc_names.hpp>
 
 // maximum allowed arity
-#ifndef BOOST_FT_MAX_ARITY
-#define BOOST_FT_MAX_ARITY 20
+#ifndef NDNBOOST_FT_MAX_ARITY
+#define NDNBOOST_FT_MAX_ARITY 20
 #endif
 
 // the most common calling conventions for x86 architecture can be enabled at
 // once in the compiler config
-#ifdef BOOST_FT_COMMON_X86_CCs
-#   ifndef BOOST_FT_CC_CDECL
-#   define BOOST_FT_CC_CDECL BOOST_FT_COMMON_X86_CCs
+#ifdef NDNBOOST_FT_COMMON_X86_CCs
+#   ifndef NDNBOOST_FT_CC_CDECL
+#   define NDNBOOST_FT_CC_CDECL NDNBOOST_FT_COMMON_X86_CCs
 #   endif
-#   ifndef BOOST_FT_CC_STDCALL
-#   define BOOST_FT_CC_STDCALL non_variadic|BOOST_FT_COMMON_X86_CCs
+#   ifndef NDNBOOST_FT_CC_STDCALL
+#   define NDNBOOST_FT_CC_STDCALL non_variadic|NDNBOOST_FT_COMMON_X86_CCs
 #   endif
-#   ifndef BOOST_FT_CC_FASTCALL
-#   define BOOST_FT_CC_FASTCALL non_variadic|BOOST_FT_COMMON_X86_CCs
+#   ifndef NDNBOOST_FT_CC_FASTCALL
+#   define NDNBOOST_FT_CC_FASTCALL non_variadic|NDNBOOST_FT_COMMON_X86_CCs
 #   endif
 #endif
 
 // where to place the cc specifier (the common way)
-#ifndef BOOST_FT_SYNTAX
-#   define BOOST_FT_SYNTAX(result,lparen,cc_spec,type_mod,name,rparen) \
+#ifndef NDNBOOST_FT_SYNTAX
+#   define NDNBOOST_FT_SYNTAX(result,lparen,cc_spec,type_mod,name,rparen) \
                         result() lparen() cc_spec() type_mod() name() rparen()
 #endif
 
 // param for nullary functions
 // set to "void" for compilers that require nullary functions to read 
 // "R (void)" in template partial specialization
-#ifndef BOOST_FT_NULLARY_PARAM
-#define BOOST_FT_NULLARY_PARAM 
+#ifndef NDNBOOST_FT_NULLARY_PARAM
+#define NDNBOOST_FT_NULLARY_PARAM 
 #endif
 
 // there is a pending defect report on cv qualified function types, so support
 // for these types is disabled, unless for compilers where it's known to work
-#ifndef BOOST_FT_NO_CV_FUNC_SUPPORT
-#define BOOST_FT_NO_CV_FUNC_SUPPORT 1
+#ifndef NDNBOOST_FT_NO_CV_FUNC_SUPPORT
+#define NDNBOOST_FT_NO_CV_FUNC_SUPPORT 1
 #endif
 
 // full preprocessing implies preprocessing of the ccs
-#if defined(BOOST_FT_PREPROCESSING_MODE) && !defined(BOOST_FT_CC_PREPROCESSING)
-#   define BOOST_FT_CC_PREPROCESSING 1
+#if defined(NDNBOOST_FT_PREPROCESSING_MODE) && !defined(NDNBOOST_FT_CC_PREPROCESSING)
+#   define NDNBOOST_FT_CC_PREPROCESSING 1
 #endif
 
 #endif
diff --git a/include/ndnboost/function_types/detail/class_transform.hpp b/include/ndnboost/function_types/detail/class_transform.hpp
index 56ace17..d2964d6 100644
--- a/include/ndnboost/function_types/detail/class_transform.hpp
+++ b/include/ndnboost/function_types/detail/class_transform.hpp
@@ -6,8 +6,8 @@
 
 //------------------------------------------------------------------------------
 
-#ifndef BOOST_FT_DETAIL_CLASS_TRANSFORM_HPP_INCLUDED
-#define BOOST_FT_DETAIL_CLASS_TRANSFORM_HPP_INCLUDED
+#ifndef NDNBOOST_FT_DETAIL_CLASS_TRANSFORM_HPP_INCLUDED
+#define NDNBOOST_FT_DETAIL_CLASS_TRANSFORM_HPP_INCLUDED
 
 #include <ndnboost/mpl/apply.hpp>
 #include <ndnboost/mpl/always.hpp>
@@ -28,7 +28,7 @@
 { typedef typename mpl::apply1<L,T>::type type; };
 
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 // We can short-circuit the mechanism implemented in the primary template for 
 // the most common lambda expression and save both the "un-lambdaing" and the
 // type traits invocation (we know that T can only be a class type).
diff --git a/include/ndnboost/function_types/detail/classifier.hpp b/include/ndnboost/function_types/detail/classifier.hpp
index 200e818..f6ebd25 100644
--- a/include/ndnboost/function_types/detail/classifier.hpp
+++ b/include/ndnboost/function_types/detail/classifier.hpp
@@ -6,8 +6,8 @@
 
 //------------------------------------------------------------------------------
 
-#ifndef BOOST_FT_DETAIL_CLASSIFIER_HPP_INCLUDED
-#define BOOST_FT_DETAIL_CLASSIFIER_HPP_INCLUDED
+#ifndef NDNBOOST_FT_DETAIL_CLASSIFIER_HPP_INCLUDED
+#define NDNBOOST_FT_DETAIL_CLASSIFIER_HPP_INCLUDED
 
 #include <ndnboost/type.hpp>
 #include <ndnboost/config.hpp>
@@ -31,28 +31,28 @@
   >::type type;
 };
 
-char BOOST_TT_DECL classifier_impl(...);
+char NDNBOOST_TT_DECL classifier_impl(...);
 
-#define BOOST_FT_variations BOOST_FT_function|BOOST_FT_pointer|\
-                            BOOST_FT_member_pointer
+#define NDNBOOST_FT_variations NDNBOOST_FT_function|NDNBOOST_FT_pointer|\
+                            NDNBOOST_FT_member_pointer
 
-#define BOOST_FT_type_function(cc,name) BOOST_FT_SYNTAX( \
-    R BOOST_PP_EMPTY,BOOST_PP_LPAREN,cc,* BOOST_PP_EMPTY,name,BOOST_PP_RPAREN)
+#define NDNBOOST_FT_type_function(cc,name) NDNBOOST_FT_SYNTAX( \
+    R NDNBOOST_PP_EMPTY,NDNBOOST_PP_LPAREN,cc,* NDNBOOST_PP_EMPTY,name,NDNBOOST_PP_RPAREN)
 
-#define BOOST_FT_type_function_pointer(cc,name) BOOST_FT_SYNTAX( \
-    R BOOST_PP_EMPTY,BOOST_PP_LPAREN,cc,** BOOST_PP_EMPTY,name,BOOST_PP_RPAREN)
+#define NDNBOOST_FT_type_function_pointer(cc,name) NDNBOOST_FT_SYNTAX( \
+    R NDNBOOST_PP_EMPTY,NDNBOOST_PP_LPAREN,cc,** NDNBOOST_PP_EMPTY,name,NDNBOOST_PP_RPAREN)
 
-#define BOOST_FT_type_member_function_pointer(cc,name) BOOST_FT_SYNTAX( \
-    R BOOST_PP_EMPTY,BOOST_PP_LPAREN,cc,T0::** BOOST_PP_EMPTY,name,BOOST_PP_RPAREN)
+#define NDNBOOST_FT_type_member_function_pointer(cc,name) NDNBOOST_FT_SYNTAX( \
+    R NDNBOOST_PP_EMPTY,NDNBOOST_PP_LPAREN,cc,T0::** NDNBOOST_PP_EMPTY,name,NDNBOOST_PP_RPAREN)
 
-#define BOOST_FT_al_path ndnboost/function_types/detail/classifier_impl
+#define NDNBOOST_FT_al_path ndnboost/function_types/detail/classifier_impl
 #include <ndnboost/function_types/detail/pp_loop.hpp>
 
 template<typename T> struct classifier_bits
 {
   static typename ndnboost::add_reference<T>::type tester;
 
-  BOOST_STATIC_CONSTANT(bits_t,value = (bits_t)sizeof(
+  NDNBOOST_STATIC_CONSTANT(bits_t,value = (bits_t)sizeof(
     ndnboost::function_types::detail::classifier_impl(& tester) 
   )-1);
 };
diff --git a/include/ndnboost/function_types/detail/classifier_impl/arity10_0.hpp b/include/ndnboost/function_types/detail/classifier_impl/arity10_0.hpp
index e27f3c2..7d177a2 100644
--- a/include/ndnboost/function_types/detail/classifier_impl/arity10_0.hpp
+++ b/include/ndnboost/function_types/detail/classifier_impl/arity10_0.hpp
@@ -8,48 +8,48 @@
 
 // no include guards, this file is intended for multiple inclusion
 
-// input:  BOOST_FT_syntax     type macro to use
-// input:  BOOST_FT_cc         empty or cc specifier 
-// input:  BOOST_FT_ell        empty or "..."
-// input:  BOOST_FT_cv         empty or cv qualifiers
-// input:  BOOST_FT_flags      single decimal integer encoding the flags
-// output: BOOST_FT_n          number of component types (arity+1)
-// output: BOOST_FT_arity      current arity
-// output: BOOST_FT_type       macro that expands to the type
-// output: BOOST_FT_tplargs(p) template arguments with given prefix
-// output: BOOST_FT_params(p)  parameters with given prefix
+// input:  NDNBOOST_FT_syntax     type macro to use
+// input:  NDNBOOST_FT_cc         empty or cc specifier 
+// input:  NDNBOOST_FT_ell        empty or "..."
+// input:  NDNBOOST_FT_cv         empty or cv qualifiers
+// input:  NDNBOOST_FT_flags      single decimal integer encoding the flags
+// output: NDNBOOST_FT_n          number of component types (arity+1)
+// output: NDNBOOST_FT_arity      current arity
+// output: NDNBOOST_FT_type       macro that expands to the type
+// output: NDNBOOST_FT_tplargs(p) template arguments with given prefix
+// output: NDNBOOST_FT_params(p)  parameters with given prefix
 
 template< typename R >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,0> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (BOOST_FT_nullary_param BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,0> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (NDNBOOST_FT_nullary_param NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,1> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,1> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,2> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,2> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,3> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,3> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,4> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,4> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,5> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,5> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,6> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,6> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,7> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,7> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,8> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,8> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,9> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,9> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,10> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,10> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 
diff --git a/include/ndnboost/function_types/detail/classifier_impl/arity10_1.hpp b/include/ndnboost/function_types/detail/classifier_impl/arity10_1.hpp
index cca8027..627ec51 100644
--- a/include/ndnboost/function_types/detail/classifier_impl/arity10_1.hpp
+++ b/include/ndnboost/function_types/detail/classifier_impl/arity10_1.hpp
@@ -8,45 +8,45 @@
 
 // no include guards, this file is intended for multiple inclusion
 
-// input:  BOOST_FT_syntax     type macro to use
-// input:  BOOST_FT_cc         empty or cc specifier 
-// input:  BOOST_FT_ell        empty or "..."
-// input:  BOOST_FT_cv         empty or cv qualifiers
-// input:  BOOST_FT_flags      single decimal integer encoding the flags
-// output: BOOST_FT_n          number of component types (arity+1)
-// output: BOOST_FT_arity      current arity
-// output: BOOST_FT_type       macro that expands to the type
-// output: BOOST_FT_tplargs(p) template arguments with given prefix
-// output: BOOST_FT_params(p)  parameters with given prefix
+// input:  NDNBOOST_FT_syntax     type macro to use
+// input:  NDNBOOST_FT_cc         empty or cc specifier 
+// input:  NDNBOOST_FT_ell        empty or "..."
+// input:  NDNBOOST_FT_cv         empty or cv qualifiers
+// input:  NDNBOOST_FT_flags      single decimal integer encoding the flags
+// output: NDNBOOST_FT_n          number of component types (arity+1)
+// output: NDNBOOST_FT_arity      current arity
+// output: NDNBOOST_FT_type       macro that expands to the type
+// output: NDNBOOST_FT_tplargs(p) template arguments with given prefix
+// output: NDNBOOST_FT_params(p)  parameters with given prefix
 
 template< typename R , typename T0 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,1> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) ( BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,1> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) ( NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,2> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,2> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,3> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,3> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,4> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,4> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,5> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,5> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,6> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,6> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,7> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,7> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,8> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,8> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,9> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,9> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,10> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,10> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 
diff --git a/include/ndnboost/function_types/detail/classifier_impl/arity20_0.hpp b/include/ndnboost/function_types/detail/classifier_impl/arity20_0.hpp
index ec05bbd..3641eec 100644
--- a/include/ndnboost/function_types/detail/classifier_impl/arity20_0.hpp
+++ b/include/ndnboost/function_types/detail/classifier_impl/arity20_0.hpp
@@ -8,46 +8,46 @@
 
 // no include guards, this file is intended for multiple inclusion
 
-// input:  BOOST_FT_syntax     type macro to use
-// input:  BOOST_FT_cc         empty or cc specifier 
-// input:  BOOST_FT_ell        empty or "..."
-// input:  BOOST_FT_cv         empty or cv qualifiers
-// input:  BOOST_FT_flags      single decimal integer encoding the flags
-// output: BOOST_FT_n          number of component types (arity+1)
-// output: BOOST_FT_arity      current arity
-// output: BOOST_FT_type       macro that expands to the type
-// output: BOOST_FT_tplargs(p) template arguments with given prefix
-// output: BOOST_FT_params(p)  parameters with given prefix
+// input:  NDNBOOST_FT_syntax     type macro to use
+// input:  NDNBOOST_FT_cc         empty or cc specifier 
+// input:  NDNBOOST_FT_ell        empty or "..."
+// input:  NDNBOOST_FT_cv         empty or cv qualifiers
+// input:  NDNBOOST_FT_flags      single decimal integer encoding the flags
+// output: NDNBOOST_FT_n          number of component types (arity+1)
+// output: NDNBOOST_FT_arity      current arity
+// output: NDNBOOST_FT_type       macro that expands to the type
+// output: NDNBOOST_FT_tplargs(p) template arguments with given prefix
+// output: NDNBOOST_FT_params(p)  parameters with given prefix
 
 # include <ndnboost/function_types/detail/classifier_impl/arity10_0.hpp>
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,11> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,11> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,12> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,12> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,13> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,13> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,14> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,14> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,15> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,15> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,16> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,16> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,17> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,17> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,18> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,18> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,19> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,19> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,20> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,20> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 
diff --git a/include/ndnboost/function_types/detail/classifier_impl/arity20_1.hpp b/include/ndnboost/function_types/detail/classifier_impl/arity20_1.hpp
index b871d27..cd799e5 100644
--- a/include/ndnboost/function_types/detail/classifier_impl/arity20_1.hpp
+++ b/include/ndnboost/function_types/detail/classifier_impl/arity20_1.hpp
@@ -8,46 +8,46 @@
 
 // no include guards, this file is intended for multiple inclusion
 
-// input:  BOOST_FT_syntax     type macro to use
-// input:  BOOST_FT_cc         empty or cc specifier 
-// input:  BOOST_FT_ell        empty or "..."
-// input:  BOOST_FT_cv         empty or cv qualifiers
-// input:  BOOST_FT_flags      single decimal integer encoding the flags
-// output: BOOST_FT_n          number of component types (arity+1)
-// output: BOOST_FT_arity      current arity
-// output: BOOST_FT_type       macro that expands to the type
-// output: BOOST_FT_tplargs(p) template arguments with given prefix
-// output: BOOST_FT_params(p)  parameters with given prefix
+// input:  NDNBOOST_FT_syntax     type macro to use
+// input:  NDNBOOST_FT_cc         empty or cc specifier 
+// input:  NDNBOOST_FT_ell        empty or "..."
+// input:  NDNBOOST_FT_cv         empty or cv qualifiers
+// input:  NDNBOOST_FT_flags      single decimal integer encoding the flags
+// output: NDNBOOST_FT_n          number of component types (arity+1)
+// output: NDNBOOST_FT_arity      current arity
+// output: NDNBOOST_FT_type       macro that expands to the type
+// output: NDNBOOST_FT_tplargs(p) template arguments with given prefix
+// output: NDNBOOST_FT_params(p)  parameters with given prefix
 
 # include <ndnboost/function_types/detail/classifier_impl/arity10_1.hpp>
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,11> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,11> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,12> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,12> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,13> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,13> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,14> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,14> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,15> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,15> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,16> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,16> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,17> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,17> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,18> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,18> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,19> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,19> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,20> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,20> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 
diff --git a/include/ndnboost/function_types/detail/classifier_impl/arity30_0.hpp b/include/ndnboost/function_types/detail/classifier_impl/arity30_0.hpp
index b4a4fb3..ce9f2b3 100644
--- a/include/ndnboost/function_types/detail/classifier_impl/arity30_0.hpp
+++ b/include/ndnboost/function_types/detail/classifier_impl/arity30_0.hpp
@@ -8,46 +8,46 @@
 
 // no include guards, this file is intended for multiple inclusion
 
-// input:  BOOST_FT_syntax     type macro to use
-// input:  BOOST_FT_cc         empty or cc specifier 
-// input:  BOOST_FT_ell        empty or "..."
-// input:  BOOST_FT_cv         empty or cv qualifiers
-// input:  BOOST_FT_flags      single decimal integer encoding the flags
-// output: BOOST_FT_n          number of component types (arity+1)
-// output: BOOST_FT_arity      current arity
-// output: BOOST_FT_type       macro that expands to the type
-// output: BOOST_FT_tplargs(p) template arguments with given prefix
-// output: BOOST_FT_params(p)  parameters with given prefix
+// input:  NDNBOOST_FT_syntax     type macro to use
+// input:  NDNBOOST_FT_cc         empty or cc specifier 
+// input:  NDNBOOST_FT_ell        empty or "..."
+// input:  NDNBOOST_FT_cv         empty or cv qualifiers
+// input:  NDNBOOST_FT_flags      single decimal integer encoding the flags
+// output: NDNBOOST_FT_n          number of component types (arity+1)
+// output: NDNBOOST_FT_arity      current arity
+// output: NDNBOOST_FT_type       macro that expands to the type
+// output: NDNBOOST_FT_tplargs(p) template arguments with given prefix
+// output: NDNBOOST_FT_params(p)  parameters with given prefix
 
 # include <ndnboost/function_types/detail/classifier_impl/arity20_0.hpp>
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,21> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,21> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,22> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,22> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,23> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,23> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,24> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,24> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,25> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,25> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,26> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,26> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,27> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,27> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,28> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,28> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,29> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,29> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,30> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,30> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 
diff --git a/include/ndnboost/function_types/detail/classifier_impl/arity30_1.hpp b/include/ndnboost/function_types/detail/classifier_impl/arity30_1.hpp
index 4d1cd6f..70c7836 100644
--- a/include/ndnboost/function_types/detail/classifier_impl/arity30_1.hpp
+++ b/include/ndnboost/function_types/detail/classifier_impl/arity30_1.hpp
@@ -8,46 +8,46 @@
 
 // no include guards, this file is intended for multiple inclusion
 
-// input:  BOOST_FT_syntax     type macro to use
-// input:  BOOST_FT_cc         empty or cc specifier 
-// input:  BOOST_FT_ell        empty or "..."
-// input:  BOOST_FT_cv         empty or cv qualifiers
-// input:  BOOST_FT_flags      single decimal integer encoding the flags
-// output: BOOST_FT_n          number of component types (arity+1)
-// output: BOOST_FT_arity      current arity
-// output: BOOST_FT_type       macro that expands to the type
-// output: BOOST_FT_tplargs(p) template arguments with given prefix
-// output: BOOST_FT_params(p)  parameters with given prefix
+// input:  NDNBOOST_FT_syntax     type macro to use
+// input:  NDNBOOST_FT_cc         empty or cc specifier 
+// input:  NDNBOOST_FT_ell        empty or "..."
+// input:  NDNBOOST_FT_cv         empty or cv qualifiers
+// input:  NDNBOOST_FT_flags      single decimal integer encoding the flags
+// output: NDNBOOST_FT_n          number of component types (arity+1)
+// output: NDNBOOST_FT_arity      current arity
+// output: NDNBOOST_FT_type       macro that expands to the type
+// output: NDNBOOST_FT_tplargs(p) template arguments with given prefix
+// output: NDNBOOST_FT_params(p)  parameters with given prefix
 
 # include <ndnboost/function_types/detail/classifier_impl/arity20_1.hpp>
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,21> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,21> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,22> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,22> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,23> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,23> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,24> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,24> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,25> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,25> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,26> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,26> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,27> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,27> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,28> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,28> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,29> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,29> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,30> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,30> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 
diff --git a/include/ndnboost/function_types/detail/classifier_impl/arity40_0.hpp b/include/ndnboost/function_types/detail/classifier_impl/arity40_0.hpp
index 773d84b..b5d946c 100644
--- a/include/ndnboost/function_types/detail/classifier_impl/arity40_0.hpp
+++ b/include/ndnboost/function_types/detail/classifier_impl/arity40_0.hpp
@@ -8,46 +8,46 @@
 
 // no include guards, this file is intended for multiple inclusion
 
-// input:  BOOST_FT_syntax     type macro to use
-// input:  BOOST_FT_cc         empty or cc specifier 
-// input:  BOOST_FT_ell        empty or "..."
-// input:  BOOST_FT_cv         empty or cv qualifiers
-// input:  BOOST_FT_flags      single decimal integer encoding the flags
-// output: BOOST_FT_n          number of component types (arity+1)
-// output: BOOST_FT_arity      current arity
-// output: BOOST_FT_type       macro that expands to the type
-// output: BOOST_FT_tplargs(p) template arguments with given prefix
-// output: BOOST_FT_params(p)  parameters with given prefix
+// input:  NDNBOOST_FT_syntax     type macro to use
+// input:  NDNBOOST_FT_cc         empty or cc specifier 
+// input:  NDNBOOST_FT_ell        empty or "..."
+// input:  NDNBOOST_FT_cv         empty or cv qualifiers
+// input:  NDNBOOST_FT_flags      single decimal integer encoding the flags
+// output: NDNBOOST_FT_n          number of component types (arity+1)
+// output: NDNBOOST_FT_arity      current arity
+// output: NDNBOOST_FT_type       macro that expands to the type
+// output: NDNBOOST_FT_tplargs(p) template arguments with given prefix
+// output: NDNBOOST_FT_params(p)  parameters with given prefix
 
 # include <ndnboost/function_types/detail/classifier_impl/arity30_0.hpp>
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,31> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,31> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,32> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,32> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,33> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,33> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,34> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,34> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,35> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,35> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,36> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,36> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,37> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,37> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,38> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,38> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,39> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,39> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,40> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,40> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 
diff --git a/include/ndnboost/function_types/detail/classifier_impl/arity40_1.hpp b/include/ndnboost/function_types/detail/classifier_impl/arity40_1.hpp
index 29dabd0..d24e336 100644
--- a/include/ndnboost/function_types/detail/classifier_impl/arity40_1.hpp
+++ b/include/ndnboost/function_types/detail/classifier_impl/arity40_1.hpp
@@ -8,46 +8,46 @@
 
 // no include guards, this file is intended for multiple inclusion
 
-// input:  BOOST_FT_syntax     type macro to use
-// input:  BOOST_FT_cc         empty or cc specifier 
-// input:  BOOST_FT_ell        empty or "..."
-// input:  BOOST_FT_cv         empty or cv qualifiers
-// input:  BOOST_FT_flags      single decimal integer encoding the flags
-// output: BOOST_FT_n          number of component types (arity+1)
-// output: BOOST_FT_arity      current arity
-// output: BOOST_FT_type       macro that expands to the type
-// output: BOOST_FT_tplargs(p) template arguments with given prefix
-// output: BOOST_FT_params(p)  parameters with given prefix
+// input:  NDNBOOST_FT_syntax     type macro to use
+// input:  NDNBOOST_FT_cc         empty or cc specifier 
+// input:  NDNBOOST_FT_ell        empty or "..."
+// input:  NDNBOOST_FT_cv         empty or cv qualifiers
+// input:  NDNBOOST_FT_flags      single decimal integer encoding the flags
+// output: NDNBOOST_FT_n          number of component types (arity+1)
+// output: NDNBOOST_FT_arity      current arity
+// output: NDNBOOST_FT_type       macro that expands to the type
+// output: NDNBOOST_FT_tplargs(p) template arguments with given prefix
+// output: NDNBOOST_FT_params(p)  parameters with given prefix
 
 # include <ndnboost/function_types/detail/classifier_impl/arity30_1.hpp>
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,31> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,31> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,32> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,32> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,33> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,33> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,34> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,34> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,35> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,35> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,36> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,36> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,37> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,37> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,38> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,38> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,39> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,39> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,40> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,40> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 
diff --git a/include/ndnboost/function_types/detail/classifier_impl/arity50_0.hpp b/include/ndnboost/function_types/detail/classifier_impl/arity50_0.hpp
index 712f66c..2f3b8f4 100644
--- a/include/ndnboost/function_types/detail/classifier_impl/arity50_0.hpp
+++ b/include/ndnboost/function_types/detail/classifier_impl/arity50_0.hpp
@@ -8,46 +8,46 @@
 
 // no include guards, this file is intended for multiple inclusion
 
-// input:  BOOST_FT_syntax     type macro to use
-// input:  BOOST_FT_cc         empty or cc specifier 
-// input:  BOOST_FT_ell        empty or "..."
-// input:  BOOST_FT_cv         empty or cv qualifiers
-// input:  BOOST_FT_flags      single decimal integer encoding the flags
-// output: BOOST_FT_n          number of component types (arity+1)
-// output: BOOST_FT_arity      current arity
-// output: BOOST_FT_type       macro that expands to the type
-// output: BOOST_FT_tplargs(p) template arguments with given prefix
-// output: BOOST_FT_params(p)  parameters with given prefix
+// input:  NDNBOOST_FT_syntax     type macro to use
+// input:  NDNBOOST_FT_cc         empty or cc specifier 
+// input:  NDNBOOST_FT_ell        empty or "..."
+// input:  NDNBOOST_FT_cv         empty or cv qualifiers
+// input:  NDNBOOST_FT_flags      single decimal integer encoding the flags
+// output: NDNBOOST_FT_n          number of component types (arity+1)
+// output: NDNBOOST_FT_arity      current arity
+// output: NDNBOOST_FT_type       macro that expands to the type
+// output: NDNBOOST_FT_tplargs(p) template arguments with given prefix
+// output: NDNBOOST_FT_params(p)  parameters with given prefix
 
 # include <ndnboost/function_types/detail/classifier_impl/arity40_0.hpp>
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,41> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,41> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,42> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,42> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,43> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,43> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,44> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,44> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,45> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,45> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,46> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,46> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,47> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,47> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,48> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,48> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47 , typename T48 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,49> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,49> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47 , typename T48 , typename T49 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,50> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,50> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 
diff --git a/include/ndnboost/function_types/detail/classifier_impl/arity50_1.hpp b/include/ndnboost/function_types/detail/classifier_impl/arity50_1.hpp
index bb710a5..57d33df 100644
--- a/include/ndnboost/function_types/detail/classifier_impl/arity50_1.hpp
+++ b/include/ndnboost/function_types/detail/classifier_impl/arity50_1.hpp
@@ -8,45 +8,45 @@
 
 // no include guards, this file is intended for multiple inclusion
 
-// input:  BOOST_FT_syntax     type macro to use
-// input:  BOOST_FT_cc         empty or cc specifier 
-// input:  BOOST_FT_ell        empty or "..."
-// input:  BOOST_FT_cv         empty or cv qualifiers
-// input:  BOOST_FT_flags      single decimal integer encoding the flags
-// output: BOOST_FT_n          number of component types (arity+1)
-// output: BOOST_FT_arity      current arity
-// output: BOOST_FT_type       macro that expands to the type
-// output: BOOST_FT_tplargs(p) template arguments with given prefix
-// output: BOOST_FT_params(p)  parameters with given prefix
+// input:  NDNBOOST_FT_syntax     type macro to use
+// input:  NDNBOOST_FT_cc         empty or cc specifier 
+// input:  NDNBOOST_FT_ell        empty or "..."
+// input:  NDNBOOST_FT_cv         empty or cv qualifiers
+// input:  NDNBOOST_FT_flags      single decimal integer encoding the flags
+// output: NDNBOOST_FT_n          number of component types (arity+1)
+// output: NDNBOOST_FT_arity      current arity
+// output: NDNBOOST_FT_type       macro that expands to the type
+// output: NDNBOOST_FT_tplargs(p) template arguments with given prefix
+// output: NDNBOOST_FT_params(p)  parameters with given prefix
 
 # include <ndnboost/function_types/detail/classifier_impl/arity40_1.hpp>
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,41> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,41> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,42> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,42> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,43> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,43> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,44> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,44> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,45> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,45> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,46> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,46> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,47> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,47> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,48> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,48> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47 , typename T48 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,49> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,49> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47 , typename T48 , typename T49 >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,50> ::type
-classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49 BOOST_FT_ell) BOOST_FT_cv);
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,50> ::type
+classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49 NDNBOOST_FT_ell) NDNBOOST_FT_cv);
diff --git a/include/ndnboost/function_types/detail/classifier_impl/master.hpp b/include/ndnboost/function_types/detail/classifier_impl/master.hpp
index 0ddacf6..10c2ec4 100644
--- a/include/ndnboost/function_types/detail/classifier_impl/master.hpp
+++ b/include/ndnboost/function_types/detail/classifier_impl/master.hpp
@@ -8,24 +8,24 @@
 
 // no include guards, this file is intended for multiple inclusion
 
-#if BOOST_FT_ARITY_LOOP_PREFIX
+#if NDNBOOST_FT_ARITY_LOOP_PREFIX
 
-#   ifndef BOOST_FT_DETAIL_CLASSIFIER_IMPL_MASTER_HPP_INCLUDED
-#   define BOOST_FT_DETAIL_CLASSIFIER_IMPL_MASTER_HPP_INCLUDED
+#   ifndef NDNBOOST_FT_DETAIL_CLASSIFIER_IMPL_MASTER_HPP_INCLUDED
+#   define NDNBOOST_FT_DETAIL_CLASSIFIER_IMPL_MASTER_HPP_INCLUDED
 #     include <ndnboost/preprocessor/facilities/identity.hpp>
 #   endif
 
-#   define BOOST_FT_type_name
+#   define NDNBOOST_FT_type_name
 
-#elif BOOST_FT_ARITY_LOOP_IS_ITERATING
+#elif NDNBOOST_FT_ARITY_LOOP_IS_ITERATING
 
-template< BOOST_FT_tplargs(BOOST_PP_IDENTITY(typename)) >
-typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,BOOST_FT_arity>::type
-classifier_impl(BOOST_FT_type);
+template< NDNBOOST_FT_tplargs(NDNBOOST_PP_IDENTITY(typename)) >
+typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,NDNBOOST_FT_arity>::type
+classifier_impl(NDNBOOST_FT_type);
 
-#elif BOOST_FT_ARITY_LOOP_SUFFIX
+#elif NDNBOOST_FT_ARITY_LOOP_SUFFIX
 
-#   undef BOOST_FT_type_name
+#   undef NDNBOOST_FT_type_name
 
 #else
 #   error "attempt to use arity loop master file without loop"
diff --git a/include/ndnboost/function_types/detail/components_as_mpl_sequence.hpp b/include/ndnboost/function_types/detail/components_as_mpl_sequence.hpp
index 3d94e4e..c9c2af0 100644
--- a/include/ndnboost/function_types/detail/components_as_mpl_sequence.hpp
+++ b/include/ndnboost/function_types/detail/components_as_mpl_sequence.hpp
@@ -6,8 +6,8 @@
 
 //------------------------------------------------------------------------------
 
-#ifndef BOOST_FT_DETAIL_COMPONENTS_AS_MPL_SEQUENCE_HPP_INCLUDED
-#define BOOST_FT_DETAIL_COMPONENTS_AS_MPL_SEQUENCE_HPP_INCLUDED
+#ifndef NDNBOOST_FT_DETAIL_COMPONENTS_AS_MPL_SEQUENCE_HPP_INCLUDED
+#define NDNBOOST_FT_DETAIL_COMPONENTS_AS_MPL_SEQUENCE_HPP_INCLUDED
 
 #include <ndnboost/mpl/size_fwd.hpp>
 #include <ndnboost/mpl/empty_fwd.hpp>
diff --git a/include/ndnboost/function_types/detail/components_impl/arity10_0.hpp b/include/ndnboost/function_types/detail/components_impl/arity10_0.hpp
index f96c6a9..ec7993d 100644
--- a/include/ndnboost/function_types/detail/components_impl/arity10_0.hpp
+++ b/include/ndnboost/function_types/detail/components_impl/arity10_0.hpp
@@ -8,123 +8,123 @@
 
 // no include guards, this file is intended for multiple inclusion
 
-// input:  BOOST_FT_syntax     type macro to use
-// input:  BOOST_FT_cc         empty or cc specifier 
-// input:  BOOST_FT_ell        empty or "..."
-// input:  BOOST_FT_cv         empty or cv qualifiers
-// input:  BOOST_FT_flags      single decimal integer encoding the flags
-// output: BOOST_FT_n          number of component types (arity+1)
-// output: BOOST_FT_arity      current arity
-// output: BOOST_FT_type       macro that expands to the type
-// output: BOOST_FT_tplargs(p) template arguments with given prefix
-// output: BOOST_FT_params(p)  parameters with given prefix
+// input:  NDNBOOST_FT_syntax     type macro to use
+// input:  NDNBOOST_FT_cc         empty or cc specifier 
+// input:  NDNBOOST_FT_ell        empty or "..."
+// input:  NDNBOOST_FT_cv         empty or cv qualifiers
+// input:  NDNBOOST_FT_flags      single decimal integer encoding the flags
+// output: NDNBOOST_FT_n          number of component types (arity+1)
+// output: NDNBOOST_FT_arity      current arity
+// output: NDNBOOST_FT_type       macro that expands to the type
+// output: NDNBOOST_FT_tplargs(p) template arguments with given prefix
+// output: NDNBOOST_FT_params(p)  parameters with given prefix
 
 template< typename R, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (BOOST_FT_nullary_param BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (NDNBOOST_FT_nullary_param NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (BOOST_FT_nullary_param BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (NDNBOOST_FT_nullary_param NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,0> function_arity;
-typedef mpl::vector1< R BOOST_FT_nullary_param > types;
+typedef mpl::vector1< R NDNBOOST_FT_nullary_param > types;
 };
 template< typename R , typename T0, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,1> function_arity;
 typedef mpl::vector2< R , T0 > types;
 };
 template< typename R , typename T0 , typename T1, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,2> function_arity;
 typedef mpl::vector3< R , T0 , T1 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,3> function_arity;
 typedef mpl::vector4< R , T0 , T1 , T2 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,4> function_arity;
 typedef mpl::vector5< R , T0 , T1 , T2 , T3 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,5> function_arity;
 typedef mpl::vector6< R , T0 , T1 , T2 , T3 , T4 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,6> function_arity;
 typedef mpl::vector7< R , T0 , T1 , T2 , T3 , T4 , T5 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,7> function_arity;
 typedef mpl::vector8< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,8> function_arity;
 typedef mpl::vector9< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,9> function_arity;
 typedef mpl::vector10< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,10> function_arity;
 typedef mpl::vector11< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 > types;
diff --git a/include/ndnboost/function_types/detail/components_impl/arity10_1.hpp b/include/ndnboost/function_types/detail/components_impl/arity10_1.hpp
index 1b06a97..8b8968a 100644
--- a/include/ndnboost/function_types/detail/components_impl/arity10_1.hpp
+++ b/include/ndnboost/function_types/detail/components_impl/arity10_1.hpp
@@ -8,115 +8,115 @@
 
 // no include guards, this file is intended for multiple inclusion
 
-// input:  BOOST_FT_syntax     type macro to use
-// input:  BOOST_FT_cc         empty or cc specifier 
-// input:  BOOST_FT_ell        empty or "..."
-// input:  BOOST_FT_cv         empty or cv qualifiers
-// input:  BOOST_FT_flags      single decimal integer encoding the flags
-// output: BOOST_FT_n          number of component types (arity+1)
-// output: BOOST_FT_arity      current arity
-// output: BOOST_FT_type       macro that expands to the type
-// output: BOOST_FT_tplargs(p) template arguments with given prefix
-// output: BOOST_FT_params(p)  parameters with given prefix
+// input:  NDNBOOST_FT_syntax     type macro to use
+// input:  NDNBOOST_FT_cc         empty or cc specifier 
+// input:  NDNBOOST_FT_ell        empty or "..."
+// input:  NDNBOOST_FT_cv         empty or cv qualifiers
+// input:  NDNBOOST_FT_flags      single decimal integer encoding the flags
+// output: NDNBOOST_FT_n          number of component types (arity+1)
+// output: NDNBOOST_FT_arity      current arity
+// output: NDNBOOST_FT_type       macro that expands to the type
+// output: NDNBOOST_FT_tplargs(p) template arguments with given prefix
+// output: NDNBOOST_FT_params(p)  parameters with given prefix
 
 template< typename R , typename T0, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) ( BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) ( NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) ( BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) ( NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,1> function_arity;
-typedef mpl::vector2< R, typename class_transform<T0 BOOST_FT_cv, L> ::type > types;
+typedef mpl::vector2< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type > types;
 };
 template< typename R , typename T0 , typename T1, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,2> function_arity;
-typedef mpl::vector3< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 > types;
+typedef mpl::vector3< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,3> function_arity;
-typedef mpl::vector4< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 > types;
+typedef mpl::vector4< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,4> function_arity;
-typedef mpl::vector5< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 > types;
+typedef mpl::vector5< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,5> function_arity;
-typedef mpl::vector6< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 > types;
+typedef mpl::vector6< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,6> function_arity;
-typedef mpl::vector7< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 > types;
+typedef mpl::vector7< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,7> function_arity;
-typedef mpl::vector8< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 > types;
+typedef mpl::vector8< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,8> function_arity;
-typedef mpl::vector9< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 > types;
+typedef mpl::vector9< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,9> function_arity;
-typedef mpl::vector10< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 > types;
+typedef mpl::vector10< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,10> function_arity;
-typedef mpl::vector11< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 > types;
+typedef mpl::vector11< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 > types;
 };
 
diff --git a/include/ndnboost/function_types/detail/components_impl/arity20_0.hpp b/include/ndnboost/function_types/detail/components_impl/arity20_0.hpp
index f3670c6..ba530de 100644
--- a/include/ndnboost/function_types/detail/components_impl/arity20_0.hpp
+++ b/include/ndnboost/function_types/detail/components_impl/arity20_0.hpp
@@ -8,114 +8,114 @@
 
 // no include guards, this file is intended for multiple inclusion
 
-// input:  BOOST_FT_syntax     type macro to use
-// input:  BOOST_FT_cc         empty or cc specifier 
-// input:  BOOST_FT_ell        empty or "..."
-// input:  BOOST_FT_cv         empty or cv qualifiers
-// input:  BOOST_FT_flags      single decimal integer encoding the flags
-// output: BOOST_FT_n          number of component types (arity+1)
-// output: BOOST_FT_arity      current arity
-// output: BOOST_FT_type       macro that expands to the type
-// output: BOOST_FT_tplargs(p) template arguments with given prefix
-// output: BOOST_FT_params(p)  parameters with given prefix
+// input:  NDNBOOST_FT_syntax     type macro to use
+// input:  NDNBOOST_FT_cc         empty or cc specifier 
+// input:  NDNBOOST_FT_ell        empty or "..."
+// input:  NDNBOOST_FT_cv         empty or cv qualifiers
+// input:  NDNBOOST_FT_flags      single decimal integer encoding the flags
+// output: NDNBOOST_FT_n          number of component types (arity+1)
+// output: NDNBOOST_FT_arity      current arity
+// output: NDNBOOST_FT_type       macro that expands to the type
+// output: NDNBOOST_FT_tplargs(p) template arguments with given prefix
+// output: NDNBOOST_FT_params(p)  parameters with given prefix
 
 # include <ndnboost/function_types/detail/components_impl/arity10_0.hpp>
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,11> function_arity;
 typedef mpl::vector12< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,12> function_arity;
 typedef mpl::vector13< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,13> function_arity;
 typedef mpl::vector14< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,14> function_arity;
 typedef mpl::vector15< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,15> function_arity;
 typedef mpl::vector16< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,16> function_arity;
 typedef mpl::vector17< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,17> function_arity;
 typedef mpl::vector18< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,18> function_arity;
 typedef mpl::vector19< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,19> function_arity;
 typedef mpl::vector20< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,20> function_arity;
 typedef mpl::vector21< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 > types;
diff --git a/include/ndnboost/function_types/detail/components_impl/arity20_1.hpp b/include/ndnboost/function_types/detail/components_impl/arity20_1.hpp
index 3c688e5..836763a 100644
--- a/include/ndnboost/function_types/detail/components_impl/arity20_1.hpp
+++ b/include/ndnboost/function_types/detail/components_impl/arity20_1.hpp
@@ -8,116 +8,116 @@
 
 // no include guards, this file is intended for multiple inclusion
 
-// input:  BOOST_FT_syntax     type macro to use
-// input:  BOOST_FT_cc         empty or cc specifier 
-// input:  BOOST_FT_ell        empty or "..."
-// input:  BOOST_FT_cv         empty or cv qualifiers
-// input:  BOOST_FT_flags      single decimal integer encoding the flags
-// output: BOOST_FT_n          number of component types (arity+1)
-// output: BOOST_FT_arity      current arity
-// output: BOOST_FT_type       macro that expands to the type
-// output: BOOST_FT_tplargs(p) template arguments with given prefix
-// output: BOOST_FT_params(p)  parameters with given prefix
+// input:  NDNBOOST_FT_syntax     type macro to use
+// input:  NDNBOOST_FT_cc         empty or cc specifier 
+// input:  NDNBOOST_FT_ell        empty or "..."
+// input:  NDNBOOST_FT_cv         empty or cv qualifiers
+// input:  NDNBOOST_FT_flags      single decimal integer encoding the flags
+// output: NDNBOOST_FT_n          number of component types (arity+1)
+// output: NDNBOOST_FT_arity      current arity
+// output: NDNBOOST_FT_type       macro that expands to the type
+// output: NDNBOOST_FT_tplargs(p) template arguments with given prefix
+// output: NDNBOOST_FT_params(p)  parameters with given prefix
 
 # include <ndnboost/function_types/detail/components_impl/arity10_1.hpp>
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,11> function_arity;
-typedef mpl::vector12< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 > types;
+typedef mpl::vector12< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,12> function_arity;
-typedef mpl::vector13< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 > types;
+typedef mpl::vector13< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,13> function_arity;
-typedef mpl::vector14< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 > types;
+typedef mpl::vector14< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,14> function_arity;
-typedef mpl::vector15< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 > types;
+typedef mpl::vector15< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,15> function_arity;
-typedef mpl::vector16< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 > types;
+typedef mpl::vector16< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,16> function_arity;
-typedef mpl::vector17< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 > types;
+typedef mpl::vector17< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,17> function_arity;
-typedef mpl::vector18< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 > types;
+typedef mpl::vector18< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,18> function_arity;
-typedef mpl::vector19< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 > types;
+typedef mpl::vector19< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,19> function_arity;
-typedef mpl::vector20< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 > types;
+typedef mpl::vector20< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,20> function_arity;
-typedef mpl::vector21< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 > types;
+typedef mpl::vector21< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 > types;
 };
 
diff --git a/include/ndnboost/function_types/detail/components_impl/arity30_0.hpp b/include/ndnboost/function_types/detail/components_impl/arity30_0.hpp
index f60ba9d..f44979c 100644
--- a/include/ndnboost/function_types/detail/components_impl/arity30_0.hpp
+++ b/include/ndnboost/function_types/detail/components_impl/arity30_0.hpp
@@ -8,114 +8,114 @@
 
 // no include guards, this file is intended for multiple inclusion
 
-// input:  BOOST_FT_syntax     type macro to use
-// input:  BOOST_FT_cc         empty or cc specifier 
-// input:  BOOST_FT_ell        empty or "..."
-// input:  BOOST_FT_cv         empty or cv qualifiers
-// input:  BOOST_FT_flags      single decimal integer encoding the flags
-// output: BOOST_FT_n          number of component types (arity+1)
-// output: BOOST_FT_arity      current arity
-// output: BOOST_FT_type       macro that expands to the type
-// output: BOOST_FT_tplargs(p) template arguments with given prefix
-// output: BOOST_FT_params(p)  parameters with given prefix
+// input:  NDNBOOST_FT_syntax     type macro to use
+// input:  NDNBOOST_FT_cc         empty or cc specifier 
+// input:  NDNBOOST_FT_ell        empty or "..."
+// input:  NDNBOOST_FT_cv         empty or cv qualifiers
+// input:  NDNBOOST_FT_flags      single decimal integer encoding the flags
+// output: NDNBOOST_FT_n          number of component types (arity+1)
+// output: NDNBOOST_FT_arity      current arity
+// output: NDNBOOST_FT_type       macro that expands to the type
+// output: NDNBOOST_FT_tplargs(p) template arguments with given prefix
+// output: NDNBOOST_FT_params(p)  parameters with given prefix
 
 # include <ndnboost/function_types/detail/components_impl/arity20_0.hpp>
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,21> function_arity;
 typedef mpl::vector22< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,22> function_arity;
 typedef mpl::vector23< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,23> function_arity;
 typedef mpl::vector24< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,24> function_arity;
 typedef mpl::vector25< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,25> function_arity;
 typedef mpl::vector26< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,26> function_arity;
 typedef mpl::vector27< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,27> function_arity;
 typedef mpl::vector28< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,28> function_arity;
 typedef mpl::vector29< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,29> function_arity;
 typedef mpl::vector30< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,30> function_arity;
 typedef mpl::vector31< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 > types;
diff --git a/include/ndnboost/function_types/detail/components_impl/arity30_1.hpp b/include/ndnboost/function_types/detail/components_impl/arity30_1.hpp
index ac7798f..bcc393f 100644
--- a/include/ndnboost/function_types/detail/components_impl/arity30_1.hpp
+++ b/include/ndnboost/function_types/detail/components_impl/arity30_1.hpp
@@ -8,116 +8,116 @@
 
 // no include guards, this file is intended for multiple inclusion
 
-// input:  BOOST_FT_syntax     type macro to use
-// input:  BOOST_FT_cc         empty or cc specifier 
-// input:  BOOST_FT_ell        empty or "..."
-// input:  BOOST_FT_cv         empty or cv qualifiers
-// input:  BOOST_FT_flags      single decimal integer encoding the flags
-// output: BOOST_FT_n          number of component types (arity+1)
-// output: BOOST_FT_arity      current arity
-// output: BOOST_FT_type       macro that expands to the type
-// output: BOOST_FT_tplargs(p) template arguments with given prefix
-// output: BOOST_FT_params(p)  parameters with given prefix
+// input:  NDNBOOST_FT_syntax     type macro to use
+// input:  NDNBOOST_FT_cc         empty or cc specifier 
+// input:  NDNBOOST_FT_ell        empty or "..."
+// input:  NDNBOOST_FT_cv         empty or cv qualifiers
+// input:  NDNBOOST_FT_flags      single decimal integer encoding the flags
+// output: NDNBOOST_FT_n          number of component types (arity+1)
+// output: NDNBOOST_FT_arity      current arity
+// output: NDNBOOST_FT_type       macro that expands to the type
+// output: NDNBOOST_FT_tplargs(p) template arguments with given prefix
+// output: NDNBOOST_FT_params(p)  parameters with given prefix
 
 # include <ndnboost/function_types/detail/components_impl/arity20_1.hpp>
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,21> function_arity;
-typedef mpl::vector22< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 > types;
+typedef mpl::vector22< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,22> function_arity;
-typedef mpl::vector23< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 > types;
+typedef mpl::vector23< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,23> function_arity;
-typedef mpl::vector24< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 > types;
+typedef mpl::vector24< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,24> function_arity;
-typedef mpl::vector25< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 > types;
+typedef mpl::vector25< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,25> function_arity;
-typedef mpl::vector26< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 > types;
+typedef mpl::vector26< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,26> function_arity;
-typedef mpl::vector27< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 > types;
+typedef mpl::vector27< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,27> function_arity;
-typedef mpl::vector28< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 > types;
+typedef mpl::vector28< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,28> function_arity;
-typedef mpl::vector29< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 > types;
+typedef mpl::vector29< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,29> function_arity;
-typedef mpl::vector30< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 > types;
+typedef mpl::vector30< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,30> function_arity;
-typedef mpl::vector31< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 > types;
+typedef mpl::vector31< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 > types;
 };
 
diff --git a/include/ndnboost/function_types/detail/components_impl/arity40_0.hpp b/include/ndnboost/function_types/detail/components_impl/arity40_0.hpp
index a457bd7..64850a8 100644
--- a/include/ndnboost/function_types/detail/components_impl/arity40_0.hpp
+++ b/include/ndnboost/function_types/detail/components_impl/arity40_0.hpp
@@ -8,114 +8,114 @@
 
 // no include guards, this file is intended for multiple inclusion
 
-// input:  BOOST_FT_syntax     type macro to use
-// input:  BOOST_FT_cc         empty or cc specifier 
-// input:  BOOST_FT_ell        empty or "..."
-// input:  BOOST_FT_cv         empty or cv qualifiers
-// input:  BOOST_FT_flags      single decimal integer encoding the flags
-// output: BOOST_FT_n          number of component types (arity+1)
-// output: BOOST_FT_arity      current arity
-// output: BOOST_FT_type       macro that expands to the type
-// output: BOOST_FT_tplargs(p) template arguments with given prefix
-// output: BOOST_FT_params(p)  parameters with given prefix
+// input:  NDNBOOST_FT_syntax     type macro to use
+// input:  NDNBOOST_FT_cc         empty or cc specifier 
+// input:  NDNBOOST_FT_ell        empty or "..."
+// input:  NDNBOOST_FT_cv         empty or cv qualifiers
+// input:  NDNBOOST_FT_flags      single decimal integer encoding the flags
+// output: NDNBOOST_FT_n          number of component types (arity+1)
+// output: NDNBOOST_FT_arity      current arity
+// output: NDNBOOST_FT_type       macro that expands to the type
+// output: NDNBOOST_FT_tplargs(p) template arguments with given prefix
+// output: NDNBOOST_FT_params(p)  parameters with given prefix
 
 # include <ndnboost/function_types/detail/components_impl/arity30_0.hpp>
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,31> function_arity;
 typedef mpl::vector32< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,32> function_arity;
 typedef mpl::vector33< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,33> function_arity;
 typedef mpl::vector34< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,34> function_arity;
 typedef mpl::vector35< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,35> function_arity;
 typedef mpl::vector36< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,36> function_arity;
 typedef mpl::vector37< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,37> function_arity;
 typedef mpl::vector38< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,38> function_arity;
 typedef mpl::vector39< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,39> function_arity;
 typedef mpl::vector40< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,40> function_arity;
 typedef mpl::vector41< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 > types;
diff --git a/include/ndnboost/function_types/detail/components_impl/arity40_1.hpp b/include/ndnboost/function_types/detail/components_impl/arity40_1.hpp
index f70ec30..5f7f49e 100644
--- a/include/ndnboost/function_types/detail/components_impl/arity40_1.hpp
+++ b/include/ndnboost/function_types/detail/components_impl/arity40_1.hpp
@@ -8,116 +8,116 @@
 
 // no include guards, this file is intended for multiple inclusion
 
-// input:  BOOST_FT_syntax     type macro to use
-// input:  BOOST_FT_cc         empty or cc specifier 
-// input:  BOOST_FT_ell        empty or "..."
-// input:  BOOST_FT_cv         empty or cv qualifiers
-// input:  BOOST_FT_flags      single decimal integer encoding the flags
-// output: BOOST_FT_n          number of component types (arity+1)
-// output: BOOST_FT_arity      current arity
-// output: BOOST_FT_type       macro that expands to the type
-// output: BOOST_FT_tplargs(p) template arguments with given prefix
-// output: BOOST_FT_params(p)  parameters with given prefix
+// input:  NDNBOOST_FT_syntax     type macro to use
+// input:  NDNBOOST_FT_cc         empty or cc specifier 
+// input:  NDNBOOST_FT_ell        empty or "..."
+// input:  NDNBOOST_FT_cv         empty or cv qualifiers
+// input:  NDNBOOST_FT_flags      single decimal integer encoding the flags
+// output: NDNBOOST_FT_n          number of component types (arity+1)
+// output: NDNBOOST_FT_arity      current arity
+// output: NDNBOOST_FT_type       macro that expands to the type
+// output: NDNBOOST_FT_tplargs(p) template arguments with given prefix
+// output: NDNBOOST_FT_params(p)  parameters with given prefix
 
 # include <ndnboost/function_types/detail/components_impl/arity30_1.hpp>
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,31> function_arity;
-typedef mpl::vector32< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 > types;
+typedef mpl::vector32< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,32> function_arity;
-typedef mpl::vector33< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 > types;
+typedef mpl::vector33< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,33> function_arity;
-typedef mpl::vector34< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 > types;
+typedef mpl::vector34< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,34> function_arity;
-typedef mpl::vector35< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 > types;
+typedef mpl::vector35< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,35> function_arity;
-typedef mpl::vector36< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 > types;
+typedef mpl::vector36< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,36> function_arity;
-typedef mpl::vector37< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 > types;
+typedef mpl::vector37< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,37> function_arity;
-typedef mpl::vector38< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 > types;
+typedef mpl::vector38< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,38> function_arity;
-typedef mpl::vector39< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 > types;
+typedef mpl::vector39< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,39> function_arity;
-typedef mpl::vector40< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 > types;
+typedef mpl::vector40< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,40> function_arity;
-typedef mpl::vector41< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 > types;
+typedef mpl::vector41< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 > types;
 };
 
diff --git a/include/ndnboost/function_types/detail/components_impl/arity50_0.hpp b/include/ndnboost/function_types/detail/components_impl/arity50_0.hpp
index b2fda73..769f6b4 100644
--- a/include/ndnboost/function_types/detail/components_impl/arity50_0.hpp
+++ b/include/ndnboost/function_types/detail/components_impl/arity50_0.hpp
@@ -8,114 +8,114 @@
 
 // no include guards, this file is intended for multiple inclusion
 
-// input:  BOOST_FT_syntax     type macro to use
-// input:  BOOST_FT_cc         empty or cc specifier 
-// input:  BOOST_FT_ell        empty or "..."
-// input:  BOOST_FT_cv         empty or cv qualifiers
-// input:  BOOST_FT_flags      single decimal integer encoding the flags
-// output: BOOST_FT_n          number of component types (arity+1)
-// output: BOOST_FT_arity      current arity
-// output: BOOST_FT_type       macro that expands to the type
-// output: BOOST_FT_tplargs(p) template arguments with given prefix
-// output: BOOST_FT_params(p)  parameters with given prefix
+// input:  NDNBOOST_FT_syntax     type macro to use
+// input:  NDNBOOST_FT_cc         empty or cc specifier 
+// input:  NDNBOOST_FT_ell        empty or "..."
+// input:  NDNBOOST_FT_cv         empty or cv qualifiers
+// input:  NDNBOOST_FT_flags      single decimal integer encoding the flags
+// output: NDNBOOST_FT_n          number of component types (arity+1)
+// output: NDNBOOST_FT_arity      current arity
+// output: NDNBOOST_FT_type       macro that expands to the type
+// output: NDNBOOST_FT_tplargs(p) template arguments with given prefix
+// output: NDNBOOST_FT_params(p)  parameters with given prefix
 
 # include <ndnboost/function_types/detail/components_impl/arity40_0.hpp>
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,41> function_arity;
 typedef mpl::vector42< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,42> function_arity;
 typedef mpl::vector43< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,43> function_arity;
 typedef mpl::vector44< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,44> function_arity;
 typedef mpl::vector45< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,45> function_arity;
 typedef mpl::vector46< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,46> function_arity;
 typedef mpl::vector47< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,47> function_arity;
 typedef mpl::vector48< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,48> function_arity;
 typedef mpl::vector49< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47 , typename T48, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,49> function_arity;
 typedef mpl::vector50< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47 , typename T48 , typename T49, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,50> function_arity;
 typedef mpl::vector51< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49 > types;
diff --git a/include/ndnboost/function_types/detail/components_impl/arity50_1.hpp b/include/ndnboost/function_types/detail/components_impl/arity50_1.hpp
index 67fd9c8..d37a56f 100644
--- a/include/ndnboost/function_types/detail/components_impl/arity50_1.hpp
+++ b/include/ndnboost/function_types/detail/components_impl/arity50_1.hpp
@@ -8,116 +8,116 @@
 
 // no include guards, this file is intended for multiple inclusion
 
-// input:  BOOST_FT_syntax     type macro to use
-// input:  BOOST_FT_cc         empty or cc specifier 
-// input:  BOOST_FT_ell        empty or "..."
-// input:  BOOST_FT_cv         empty or cv qualifiers
-// input:  BOOST_FT_flags      single decimal integer encoding the flags
-// output: BOOST_FT_n          number of component types (arity+1)
-// output: BOOST_FT_arity      current arity
-// output: BOOST_FT_type       macro that expands to the type
-// output: BOOST_FT_tplargs(p) template arguments with given prefix
-// output: BOOST_FT_params(p)  parameters with given prefix
+// input:  NDNBOOST_FT_syntax     type macro to use
+// input:  NDNBOOST_FT_cc         empty or cc specifier 
+// input:  NDNBOOST_FT_ell        empty or "..."
+// input:  NDNBOOST_FT_cv         empty or cv qualifiers
+// input:  NDNBOOST_FT_flags      single decimal integer encoding the flags
+// output: NDNBOOST_FT_n          number of component types (arity+1)
+// output: NDNBOOST_FT_arity      current arity
+// output: NDNBOOST_FT_type       macro that expands to the type
+// output: NDNBOOST_FT_tplargs(p) template arguments with given prefix
+// output: NDNBOOST_FT_params(p)  parameters with given prefix
 
 # include <ndnboost/function_types/detail/components_impl/arity40_1.hpp>
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,41> function_arity;
-typedef mpl::vector42< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 > types;
+typedef mpl::vector42< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,42> function_arity;
-typedef mpl::vector43< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 > types;
+typedef mpl::vector43< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,43> function_arity;
-typedef mpl::vector44< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 > types;
+typedef mpl::vector44< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,44> function_arity;
-typedef mpl::vector45< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 > types;
+typedef mpl::vector45< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,45> function_arity;
-typedef mpl::vector46< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 > types;
+typedef mpl::vector46< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,46> function_arity;
-typedef mpl::vector47< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 > types;
+typedef mpl::vector47< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,47> function_arity;
-typedef mpl::vector48< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 > types;
+typedef mpl::vector48< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,48> function_arity;
-typedef mpl::vector49< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 > types;
+typedef mpl::vector49< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47 , typename T48, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,49> function_arity;
-typedef mpl::vector50< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 > types;
+typedef mpl::vector50< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 > types;
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47 , typename T48 , typename T49, typename L>
-struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49 BOOST_FT_ell) BOOST_FT_cv, L>
+struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
 {
-typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-typedef constant<BOOST_FT_full_mask> mask;
-typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+typedef constant<NDNBOOST_FT_full_mask> mask;
+typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type;
 typedef components_mpl_sequence_tag tag;
 typedef mpl::integral_c<std::size_t,50> function_arity;
-typedef mpl::vector51< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49 > types;
+typedef mpl::vector51< R, typename class_transform<T0 NDNBOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49 > types;
 };
 
diff --git a/include/ndnboost/function_types/detail/components_impl/master.hpp b/include/ndnboost/function_types/detail/components_impl/master.hpp
index cf3ca88..caaf63e 100644
--- a/include/ndnboost/function_types/detail/components_impl/master.hpp
+++ b/include/ndnboost/function_types/detail/components_impl/master.hpp
@@ -8,10 +8,10 @@
 
 // no include guards, this file is intended for multiple inclusion
 
-#if   BOOST_FT_ARITY_LOOP_PREFIX
+#if   NDNBOOST_FT_ARITY_LOOP_PREFIX
 
-#   ifndef BOOST_FT_DETAIL_COMPONENTS_IMPL_MASTER_HPP_INCLUDED
-#   define BOOST_FT_DETAIL_COMPONENTS_IMPL_MASTER_HPP_INCLUDED
+#   ifndef NDNBOOST_FT_DETAIL_COMPONENTS_IMPL_MASTER_HPP_INCLUDED
+#   define NDNBOOST_FT_DETAIL_COMPONENTS_IMPL_MASTER_HPP_INCLUDED
 #     include <ndnboost/preprocessor/cat.hpp>
 #     include <ndnboost/preprocessor/facilities/empty.hpp>
 #     include <ndnboost/preprocessor/facilities/identity.hpp>
@@ -19,41 +19,41 @@
 #     include <ndnboost/preprocessor/punctuation/comma_if.hpp>
 #   endif
 
-#   define BOOST_FT_type_name
+#   define NDNBOOST_FT_type_name
 
-#   if !BOOST_FT_mfp
+#   if !NDNBOOST_FT_mfp
 
-#     define BOOST_FT_types \
-          R BOOST_PP_COMMA_IF(BOOST_FT_arity) BOOST_FT_params(BOOST_PP_EMPTY)
+#     define NDNBOOST_FT_types \
+          R NDNBOOST_PP_COMMA_IF(NDNBOOST_FT_arity) NDNBOOST_FT_params(NDNBOOST_PP_EMPTY)
 #   else
 
-#     define BOOST_FT_types \
-          R, typename class_transform<T0 BOOST_FT_cv, L>::type \
-          BOOST_PP_COMMA_IF(BOOST_PP_DEC(BOOST_FT_arity)) \
-          BOOST_FT_params(BOOST_PP_EMPTY)
+#     define NDNBOOST_FT_types \
+          R, typename class_transform<T0 NDNBOOST_FT_cv, L>::type \
+          NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_DEC(NDNBOOST_FT_arity)) \
+          NDNBOOST_FT_params(NDNBOOST_PP_EMPTY)
 
 #   endif
 
-#elif BOOST_FT_ARITY_LOOP_IS_ITERATING
+#elif NDNBOOST_FT_ARITY_LOOP_IS_ITERATING
 
-template< BOOST_FT_tplargs(BOOST_PP_IDENTITY(typename)), typename L>
-struct components_impl<BOOST_FT_type, L>
+template< NDNBOOST_FT_tplargs(NDNBOOST_PP_IDENTITY(typename)), typename L>
+struct components_impl<NDNBOOST_FT_type, L>
 {
-  typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
-  typedef constant<BOOST_FT_full_mask> mask;
+  typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
+  typedef constant<NDNBOOST_FT_full_mask> mask;
 
-  typedef function_types::components<BOOST_FT_type, L> type;
+  typedef function_types::components<NDNBOOST_FT_type, L> type;
   typedef components_mpl_sequence_tag tag;
 
-  typedef mpl::integral_c<std::size_t,BOOST_FT_arity> function_arity;
+  typedef mpl::integral_c<std::size_t,NDNBOOST_FT_arity> function_arity;
 
-  typedef BOOST_PP_CAT(mpl::vector,BOOST_FT_n)< BOOST_FT_types > types;
+  typedef NDNBOOST_PP_CAT(mpl::vector,NDNBOOST_FT_n)< NDNBOOST_FT_types > types;
 };
 
-#elif BOOST_FT_ARITY_LOOP_SUFFIX
+#elif NDNBOOST_FT_ARITY_LOOP_SUFFIX
 
-#   undef BOOST_FT_types
-#   undef BOOST_FT_type_name
+#   undef NDNBOOST_FT_types
+#   undef NDNBOOST_FT_type_name
 
 #else
 #   error "attempt to use arity loop master file without loop"
diff --git a/include/ndnboost/function_types/detail/cv_traits.hpp b/include/ndnboost/function_types/detail/cv_traits.hpp
index 297ddf4..60e7bf1 100644
--- a/include/ndnboost/function_types/detail/cv_traits.hpp
+++ b/include/ndnboost/function_types/detail/cv_traits.hpp
@@ -6,14 +6,14 @@
 
 //------------------------------------------------------------------------------
 
-#ifndef BOOST_FT_DETAIL_CV_TRAITS_HPP_INCLUDED
-#define BOOST_FT_DETAIL_CV_TRAITS_HPP_INCLUDED
+#ifndef NDNBOOST_FT_DETAIL_CV_TRAITS_HPP_INCLUDED
+#define NDNBOOST_FT_DETAIL_CV_TRAITS_HPP_INCLUDED
 
 #include <cstddef>
 #include <ndnboost/detail/workaround.hpp>
 
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-    || BOOST_WORKAROUND(__BORLANDC__, <= 0x582)
+#if defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
+    || NDNBOOST_WORKAROUND(__BORLANDC__, <= 0x582)
 #   include <ndnboost/type_traits/remove_cv.hpp>
 #   include <ndnboost/type_traits/remove_pointer.hpp>
 #   include <ndnboost/type_traits/remove_reference.hpp>
@@ -23,8 +23,8 @@
 
 namespace ndnboost { namespace function_types { namespace detail {
 
-#if ! (defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-    || BOOST_WORKAROUND(__BORLANDC__, <= 0x582))
+#if ! (defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
+    || NDNBOOST_WORKAROUND(__BORLANDC__, <= 0x582))
 
 template<typename T> struct cv_traits 
 { typedef non_cv tag; typedef T type; };
@@ -107,7 +107,7 @@
 struct cv_code
 {
   static T _t;
-  BOOST_STATIC_CONSTANT(std::size_t, value = 
+  NDNBOOST_STATIC_CONSTANT(std::size_t, value = 
       sizeof(::ndnboost::function_types::detail::switch_cv(
          ::ndnboost::function_types::detail::ref_to_ptr(_t) ) ));
 };
diff --git a/include/ndnboost/function_types/detail/encoding/aliases_def.hpp b/include/ndnboost/function_types/detail/encoding/aliases_def.hpp
index 4d48331..34164d4 100644
--- a/include/ndnboost/function_types/detail/encoding/aliases_def.hpp
+++ b/include/ndnboost/function_types/detail/encoding/aliases_def.hpp
@@ -8,9 +8,9 @@
 
 // no include guards, this file is intended for multiple inclusions
 
-#define callable_builtin BOOST_FT_callable_builtin
-#define member           BOOST_FT_member_pointer
-#define non_member       BOOST_FT_non_member
-#define variadic         BOOST_FT_variadic
-#define non_variadic     BOOST_FT_non_variadic
+#define callable_builtin NDNBOOST_FT_callable_builtin
+#define member           NDNBOOST_FT_member_pointer
+#define non_member       NDNBOOST_FT_non_member
+#define variadic         NDNBOOST_FT_variadic
+#define non_variadic     NDNBOOST_FT_non_variadic
 
diff --git a/include/ndnboost/function_types/detail/encoding/def.hpp b/include/ndnboost/function_types/detail/encoding/def.hpp
index 08074fb..f733447 100644
--- a/include/ndnboost/function_types/detail/encoding/def.hpp
+++ b/include/ndnboost/function_types/detail/encoding/def.hpp
@@ -19,33 +19,33 @@
 // bit 6: member function pointer
 // bit 7: member object pointer
 
-#define BOOST_FT_type_mask                            0x000000ff // 1111 1111 
-#define BOOST_FT_callable_builtin                     0x00000001 // 0000 0001
-#define BOOST_FT_non_member                           0x00000002 // 0000 0010
-#define BOOST_FT_function                             0x00000007 // 0000 0111
-#define BOOST_FT_pointer                              0x0000000b // 0000 1011
-#define BOOST_FT_reference                            0x00000013 // 0001 0011
-#define BOOST_FT_non_member_callable_builtin          0x00000003 // 0000 0011
-#define BOOST_FT_member_pointer                       0x00000020 // 0010 0000
-#define BOOST_FT_member_function_pointer              0x00000061 // 0110 0001
-#define BOOST_FT_member_object_pointer                0x000000a3 // 1010 0001
-#define BOOST_FT_member_object_pointer_flags          0x000002a3
+#define NDNBOOST_FT_type_mask                            0x000000ff // 1111 1111 
+#define NDNBOOST_FT_callable_builtin                     0x00000001 // 0000 0001
+#define NDNBOOST_FT_non_member                           0x00000002 // 0000 0010
+#define NDNBOOST_FT_function                             0x00000007 // 0000 0111
+#define NDNBOOST_FT_pointer                              0x0000000b // 0000 1011
+#define NDNBOOST_FT_reference                            0x00000013 // 0001 0011
+#define NDNBOOST_FT_non_member_callable_builtin          0x00000003 // 0000 0011
+#define NDNBOOST_FT_member_pointer                       0x00000020 // 0010 0000
+#define NDNBOOST_FT_member_function_pointer              0x00000061 // 0110 0001
+#define NDNBOOST_FT_member_object_pointer                0x000000a3 // 1010 0001
+#define NDNBOOST_FT_member_object_pointer_flags          0x000002a3
 
-#define BOOST_FT_variadic                             0x00000100
-#define BOOST_FT_non_variadic                         0x00000200
-#define BOOST_FT_variadic_mask                        0x00000300
+#define NDNBOOST_FT_variadic                             0x00000100
+#define NDNBOOST_FT_non_variadic                         0x00000200
+#define NDNBOOST_FT_variadic_mask                        0x00000300
 
-#define BOOST_FT_const                                0x00000400
-#define BOOST_FT_volatile                             0x00000800
+#define NDNBOOST_FT_const                                0x00000400
+#define NDNBOOST_FT_volatile                             0x00000800
 
-#define BOOST_FT_default_cc                           0x00008000
-#define BOOST_FT_cc_mask                              0x00ff8000
+#define NDNBOOST_FT_default_cc                           0x00008000
+#define NDNBOOST_FT_cc_mask                              0x00ff8000
 
-#define BOOST_FT_kind_mask                            0x000000fc 
+#define NDNBOOST_FT_kind_mask                            0x000000fc 
 
-#define BOOST_FT_flags_mask                           0x00000fff
-#define BOOST_FT_full_mask                            0x00ff0fff
+#define NDNBOOST_FT_flags_mask                           0x00000fff
+#define NDNBOOST_FT_full_mask                            0x00ff0fff
 
-#define BOOST_FT_arity_shift                          24
-#define BOOST_FT_arity_mask                           0x7f000000
+#define NDNBOOST_FT_arity_shift                          24
+#define NDNBOOST_FT_arity_mask                           0x7f000000
 
diff --git a/include/ndnboost/function_types/detail/encoding/undef.hpp b/include/ndnboost/function_types/detail/encoding/undef.hpp
index 1920d6f..5f12327 100644
--- a/include/ndnboost/function_types/detail/encoding/undef.hpp
+++ b/include/ndnboost/function_types/detail/encoding/undef.hpp
@@ -8,31 +8,31 @@
 
 // no include guards, this file is intended for multiple inclusion
 
-#undef BOOST_FT_type_mask
-#undef BOOST_FT_kind_mask
-#undef BOOST_FT_callable_builtin
-#undef BOOST_FT_non_member
-#undef BOOST_FT_function
-#undef BOOST_FT_pointer
-#undef BOOST_FT_reference
-#undef BOOST_FT_non_member_callable_builtin
-#undef BOOST_FT_member_pointer
-#undef BOOST_FT_member_function_pointer
-#undef BOOST_FT_member_object_pointer
-#undef BOOST_FT_member_object_pointer_flags
+#undef NDNBOOST_FT_type_mask
+#undef NDNBOOST_FT_kind_mask
+#undef NDNBOOST_FT_callable_builtin
+#undef NDNBOOST_FT_non_member
+#undef NDNBOOST_FT_function
+#undef NDNBOOST_FT_pointer
+#undef NDNBOOST_FT_reference
+#undef NDNBOOST_FT_non_member_callable_builtin
+#undef NDNBOOST_FT_member_pointer
+#undef NDNBOOST_FT_member_function_pointer
+#undef NDNBOOST_FT_member_object_pointer
+#undef NDNBOOST_FT_member_object_pointer_flags
 
-#undef BOOST_FT_variadic
-#undef BOOST_FT_non_variadic
-#undef BOOST_FT_variadic_mask
+#undef NDNBOOST_FT_variadic
+#undef NDNBOOST_FT_non_variadic
+#undef NDNBOOST_FT_variadic_mask
 
-#undef BOOST_FT_const
-#undef BOOST_FT_volatile
+#undef NDNBOOST_FT_const
+#undef NDNBOOST_FT_volatile
 
-#undef BOOST_FT_default_cc
-#undef BOOST_FT_cc_mask
+#undef NDNBOOST_FT_default_cc
+#undef NDNBOOST_FT_cc_mask
 
-#undef BOOST_FT_flags_mask
-#undef BOOST_FT_full_mask
+#undef NDNBOOST_FT_flags_mask
+#undef NDNBOOST_FT_full_mask
 
-#undef BOOST_FT_arity_mask
+#undef NDNBOOST_FT_arity_mask
 
diff --git a/include/ndnboost/function_types/detail/pp_arity_loop.hpp b/include/ndnboost/function_types/detail/pp_arity_loop.hpp
index 37989e9..62b591e 100644
--- a/include/ndnboost/function_types/detail/pp_arity_loop.hpp
+++ b/include/ndnboost/function_types/detail/pp_arity_loop.hpp
@@ -8,67 +8,67 @@
 
 // no include guards, this file is intended for multiple inclusion
 
-#ifndef BOOST_FT_PREPROCESSING_MODE
-// input:  BOOST_FT_mfp        0 or 1 <=> member function pointer?
-// input:  BOOST_FT_type_name  BOOST_FT_type --> "R (* ..._type_name)()" (pass2)
+#ifndef NDNBOOST_FT_PREPROCESSING_MODE
+// input:  NDNBOOST_FT_mfp        0 or 1 <=> member function pointer?
+// input:  NDNBOOST_FT_type_name  NDNBOOST_FT_type --> "R (* ..._type_name)()" (pass2)
 #endif
-// input:  BOOST_FT_syntax     type macro to use
-// input:  BOOST_FT_cc         empty or cc specifier 
-// input:  BOOST_FT_ell        empty or "..."
-// input:  BOOST_FT_cv         empty or cv qualifiers
-// input:  BOOST_FT_flags      single decimal integer encoding the flags
-// output: BOOST_FT_n          number of component types (arity+1)
-// output: BOOST_FT_arity      current arity
-// output: BOOST_FT_type       macro that expands to the type
-// output: BOOST_FT_tplargs(p) template arguments with given prefix
-// output: BOOST_FT_params(p)  parameters with given prefix
+// input:  NDNBOOST_FT_syntax     type macro to use
+// input:  NDNBOOST_FT_cc         empty or cc specifier 
+// input:  NDNBOOST_FT_ell        empty or "..."
+// input:  NDNBOOST_FT_cv         empty or cv qualifiers
+// input:  NDNBOOST_FT_flags      single decimal integer encoding the flags
+// output: NDNBOOST_FT_n          number of component types (arity+1)
+// output: NDNBOOST_FT_arity      current arity
+// output: NDNBOOST_FT_type       macro that expands to the type
+// output: NDNBOOST_FT_tplargs(p) template arguments with given prefix
+// output: NDNBOOST_FT_params(p)  parameters with given prefix
 
 #ifdef __WAVE__
 #   pragma wave option(preserve: 0)
 #endif
 
-#ifndef BOOST_FT_ARITY_LOOP_IS_ITERATING
+#ifndef NDNBOOST_FT_ARITY_LOOP_IS_ITERATING
 
-#   define BOOST_FT_AL_PREPROCESSED \
-        BOOST_FT_AL_FILE(BOOST_FT_al_path,BOOST_FT_FROM_ARITY,BOOST_FT_mfp)
+#   define NDNBOOST_FT_AL_PREPROCESSED \
+        NDNBOOST_FT_AL_FILE(NDNBOOST_FT_al_path,NDNBOOST_FT_FROM_ARITY,NDNBOOST_FT_mfp)
 
-#   define BOOST_FT_AL_FILE(base_path,max_arity,mfp) \
-        BOOST_FT_AL_FILE_I(base_path,max_arity,mfp)
-#   define BOOST_FT_AL_FILE_I(base_path,max_arity,mfp) \
+#   define NDNBOOST_FT_AL_FILE(base_path,max_arity,mfp) \
+        NDNBOOST_FT_AL_FILE_I(base_path,max_arity,mfp)
+#   define NDNBOOST_FT_AL_FILE_I(base_path,max_arity,mfp) \
         <base_path/arity ## max_arity ## _ ## mfp.hpp>
 
-#   if !defined(BOOST_FT_PREPROCESSING_MODE)
+#   if !defined(NDNBOOST_FT_PREPROCESSING_MODE)
 
-#     if BOOST_FT_MAX_ARITY < 10
-#       define BOOST_FT_FROM_ARITY 0 
-#     elif BOOST_FT_MAX_ARITY < 20
-#       define BOOST_FT_FROM_ARITY 10
-#     elif BOOST_FT_MAX_ARITY < 30
-#       define BOOST_FT_FROM_ARITY 20
-#     elif BOOST_FT_MAX_ARITY < 40
-#       define BOOST_FT_FROM_ARITY 30
+#     if NDNBOOST_FT_MAX_ARITY < 10
+#       define NDNBOOST_FT_FROM_ARITY 0 
+#     elif NDNBOOST_FT_MAX_ARITY < 20
+#       define NDNBOOST_FT_FROM_ARITY 10
+#     elif NDNBOOST_FT_MAX_ARITY < 30
+#       define NDNBOOST_FT_FROM_ARITY 20
+#     elif NDNBOOST_FT_MAX_ARITY < 40
+#       define NDNBOOST_FT_FROM_ARITY 30
 #     endif
 
-#     if BOOST_FT_FROM_ARITY
-#       include BOOST_FT_AL_PREPROCESSED
+#     if NDNBOOST_FT_FROM_ARITY
+#       include NDNBOOST_FT_AL_PREPROCESSED
 #     endif
 
-#   elif !defined(BOOST_FT_FROM_ARITY) // single pass preprocessing
-#     define BOOST_FT_FROM_ARITY 0
+#   elif !defined(NDNBOOST_FT_FROM_ARITY) // single pass preprocessing
+#     define NDNBOOST_FT_FROM_ARITY 0
 
-#   elif BOOST_FT_FROM_ARITY > 0       // arity20 includes arity10
-BOOST_PP_EXPAND(#) include BOOST_FT_AL_PREPROCESSED
+#   elif NDNBOOST_FT_FROM_ARITY > 0       // arity20 includes arity10
+NDNBOOST_PP_EXPAND(#) include NDNBOOST_FT_AL_PREPROCESSED
 #   endif
 
-#   undef BOOST_FT_AL_PREPROCESSED
+#   undef NDNBOOST_FT_AL_PREPROCESSED
 
-#   undef BOOST_FT_AL_FILE
-#   undef BOOST_FT_AL_FILE_I
+#   undef NDNBOOST_FT_AL_FILE
+#   undef NDNBOOST_FT_AL_FILE_I
 
-#   if BOOST_FT_MAX_ARITY > BOOST_FT_FROM_ARITY
+#   if NDNBOOST_FT_MAX_ARITY > NDNBOOST_FT_FROM_ARITY
 
-#     ifndef BOOST_FT_DETAIL_ARITY_LOOP_HPP_INCLUDED
-#     define BOOST_FT_DETAIL_ARITY_LOOP_HPP_INCLUDED
+#     ifndef NDNBOOST_FT_DETAIL_ARITY_LOOP_HPP_INCLUDED
+#     define NDNBOOST_FT_DETAIL_ARITY_LOOP_HPP_INCLUDED
 #         include <ndnboost/preprocessor/cat.hpp>
 #         include <ndnboost/preprocessor/tuple/eat.hpp>
 #         include <ndnboost/preprocessor/control/if.hpp>
@@ -81,67 +81,67 @@
 #         include <ndnboost/preprocessor/repetition/enum_trailing_params.hpp>
 #     endif
 
-#     define BOOST_FT_AL_INCLUDE_FILE <BOOST_FT_al_path/master.hpp>
+#     define NDNBOOST_FT_AL_INCLUDE_FILE <NDNBOOST_FT_al_path/master.hpp>
 
-#     define BOOST_FT_ARITY_LOOP_PREFIX 1
-#     include BOOST_FT_AL_INCLUDE_FILE
-#     undef  BOOST_FT_ARITY_LOOP_PREFIX
+#     define NDNBOOST_FT_ARITY_LOOP_PREFIX 1
+#     include NDNBOOST_FT_AL_INCLUDE_FILE
+#     undef  NDNBOOST_FT_ARITY_LOOP_PREFIX
 
-#     if !BOOST_PP_IS_ITERATING
-#       define BOOST_PP_FILENAME_1 BOOST_FT_AL_INCLUDE_FILE
-#     elif BOOST_PP_ITERATION_DEPTH() == 1
-#       define BOOST_PP_FILENAME_2 BOOST_FT_AL_INCLUDE_FILE
+#     if !NDNBOOST_PP_IS_ITERATING
+#       define NDNBOOST_PP_FILENAME_1 NDNBOOST_FT_AL_INCLUDE_FILE
+#     elif NDNBOOST_PP_ITERATION_DEPTH() == 1
+#       define NDNBOOST_PP_FILENAME_2 NDNBOOST_FT_AL_INCLUDE_FILE
 #     else
 #       error "loops nested too deeply"
 #     endif
 
-#     define BOOST_FT_arity BOOST_PP_ITERATION()
-#     define BOOST_FT_n     BOOST_PP_INC(BOOST_FT_arity)
+#     define NDNBOOST_FT_arity NDNBOOST_PP_ITERATION()
+#     define NDNBOOST_FT_n     NDNBOOST_PP_INC(NDNBOOST_FT_arity)
 
-#     define BOOST_FT_type \
-          BOOST_FT_syntax(BOOST_FT_cc,BOOST_FT_type_name BOOST_PP_EMPTY)\
-               (BOOST_FT_params(BOOST_PP_EMPTY) BOOST_FT_ell) BOOST_FT_cv
+#     define NDNBOOST_FT_type \
+          NDNBOOST_FT_syntax(NDNBOOST_FT_cc,NDNBOOST_FT_type_name NDNBOOST_PP_EMPTY)\
+               (NDNBOOST_FT_params(NDNBOOST_PP_EMPTY) NDNBOOST_FT_ell) NDNBOOST_FT_cv
 
-#     define BOOST_FT_tplargs(prefx) \
-          prefx() R BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_FT_arity,prefx() T)
+#     define NDNBOOST_FT_tplargs(prefx) \
+          prefx() R NDNBOOST_PP_ENUM_TRAILING_PARAMS(NDNBOOST_FT_arity,prefx() T)
 
-#     if !BOOST_FT_mfp
+#     if !NDNBOOST_FT_mfp
 
-#       define BOOST_FT_params(prefx) \
-            BOOST_PP_IF(BOOST_FT_arity,BOOST_PP_ENUM_PARAMS, \
-                BOOST_FT_nullary_param BOOST_PP_TUPLE_EAT(2))( \
-                    BOOST_FT_arity,prefx() T) 
+#       define NDNBOOST_FT_params(prefx) \
+            NDNBOOST_PP_IF(NDNBOOST_FT_arity,NDNBOOST_PP_ENUM_PARAMS, \
+                NDNBOOST_FT_nullary_param NDNBOOST_PP_TUPLE_EAT(2))( \
+                    NDNBOOST_FT_arity,prefx() T) 
 #     else
 
-#       define BOOST_FT_params(prefx) \
-            BOOST_PP_ENUM_SHIFTED_PARAMS(BOOST_FT_arity,prefx() T)
+#       define NDNBOOST_FT_params(prefx) \
+            NDNBOOST_PP_ENUM_SHIFTED_PARAMS(NDNBOOST_FT_arity,prefx() T)
 
 #     endif
 
-#     if !BOOST_FT_FROM_ARITY 
-#       define BOOST_PP_ITERATION_LIMITS (BOOST_FT_mfp, BOOST_FT_MAX_ARITY)
+#     if !NDNBOOST_FT_FROM_ARITY 
+#       define NDNBOOST_PP_ITERATION_LIMITS (NDNBOOST_FT_mfp, NDNBOOST_FT_MAX_ARITY)
 #     else
-#       define BOOST_PP_ITERATION_LIMITS \
-            (BOOST_FT_FROM_ARITY+1, BOOST_FT_MAX_ARITY)
+#       define NDNBOOST_PP_ITERATION_LIMITS \
+            (NDNBOOST_FT_FROM_ARITY+1, NDNBOOST_FT_MAX_ARITY)
 #     endif
 
-#     define BOOST_FT_ARITY_LOOP_IS_ITERATING 1
-#     include BOOST_PP_ITERATE()
-#     undef  BOOST_FT_ARITY_LOOP_IS_ITERATING
+#     define NDNBOOST_FT_ARITY_LOOP_IS_ITERATING 1
+#     include NDNBOOST_PP_ITERATE()
+#     undef  NDNBOOST_FT_ARITY_LOOP_IS_ITERATING
 
-#     undef BOOST_FT_arity
-#     undef BOOST_FT_params
-#     undef BOOST_FT_tplargs
-#     undef BOOST_FT_type
+#     undef NDNBOOST_FT_arity
+#     undef NDNBOOST_FT_params
+#     undef NDNBOOST_FT_tplargs
+#     undef NDNBOOST_FT_type
 
-#     define BOOST_FT_ARITY_LOOP_SUFFIX 1
-#     include BOOST_FT_AL_INCLUDE_FILE
-#     undef  BOOST_FT_ARITY_LOOP_SUFFIX
+#     define NDNBOOST_FT_ARITY_LOOP_SUFFIX 1
+#     include NDNBOOST_FT_AL_INCLUDE_FILE
+#     undef  NDNBOOST_FT_ARITY_LOOP_SUFFIX
 
-#     undef BOOST_FT_AL_INCLUDE_FILE
+#     undef NDNBOOST_FT_AL_INCLUDE_FILE
 #   endif
 
-#   undef BOOST_FT_FROM_ARITY
+#   undef NDNBOOST_FT_FROM_ARITY
 
 #else
 #   error "attempt to nest arity loops"
diff --git a/include/ndnboost/function_types/detail/pp_cc_loop/master.hpp b/include/ndnboost/function_types/detail/pp_cc_loop/master.hpp
index 0f821d0..d800e0d 100644
--- a/include/ndnboost/function_types/detail/pp_cc_loop/master.hpp
+++ b/include/ndnboost/function_types/detail/pp_cc_loop/master.hpp
@@ -14,10 +14,10 @@
 #endif
 
 
-#if !BOOST_PP_IS_ITERATING
+#if !NDNBOOST_PP_IS_ITERATING
 
-#   ifndef BOOST_FT_DETAIL_CC_LOOP_MASTER_HPP_INCLUDED
-#   define BOOST_FT_DETAIL_CC_LOOP_MASTER_HPP_INCLUDED
+#   ifndef NDNBOOST_FT_DETAIL_CC_LOOP_MASTER_HPP_INCLUDED
+#   define NDNBOOST_FT_DETAIL_CC_LOOP_MASTER_HPP_INCLUDED
 #     include <ndnboost/function_types/config/cc_names.hpp>
 
 #     include <ndnboost/preprocessor/cat.hpp>
@@ -32,105 +32,105 @@
 #   include <ndnboost/function_types/detail/encoding/def.hpp>
 #   include <ndnboost/function_types/detail/encoding/aliases_def.hpp>
 
-#   define  BOOST_PP_FILENAME_1 \
+#   define  NDNBOOST_PP_FILENAME_1 \
         <ndnboost/function_types/detail/pp_cc_loop/master.hpp>
-#   define  BOOST_PP_ITERATION_LIMITS \
-        (0,BOOST_PP_SEQ_SIZE(BOOST_FT_CC_NAMES_SEQ)-1)
-#   include BOOST_PP_ITERATE()
-#   if !defined(BOOST_FT_config_valid) && BOOST_FT_CC_PREPROCESSING
-#     define BOOST_FT_cc_id 1
-#     define BOOST_FT_cc_name implicit_cc
-#     define BOOST_FT_cc BOOST_PP_EMPTY
-#     define BOOST_FT_cond callable_builtin
-#     include BOOST_FT_cc_file
-#     undef BOOST_FT_cond
-#     undef BOOST_FT_cc_name
-#     undef BOOST_FT_cc
-#     undef BOOST_FT_cc_id
-#   elif !defined(BOOST_FT_config_valid) // and generating preprocessed file
-BOOST_PP_EXPAND(#) ifndef BOOST_FT_config_valid
-BOOST_PP_EXPAND(#)   define BOOST_FT_cc_id 1
-BOOST_PP_EXPAND(#)   define BOOST_FT_cc_name implicit_cc
-BOOST_PP_EXPAND(#)   define BOOST_FT_cc BOOST_PP_EMPTY
-BOOST_PP_EXPAND(#)   define BOOST_FT_cond callable_builtin
+#   define  NDNBOOST_PP_ITERATION_LIMITS \
+        (0,NDNBOOST_PP_SEQ_SIZE(NDNBOOST_FT_CC_NAMES_SEQ)-1)
+#   include NDNBOOST_PP_ITERATE()
+#   if !defined(NDNBOOST_FT_config_valid) && NDNBOOST_FT_CC_PREPROCESSING
+#     define NDNBOOST_FT_cc_id 1
+#     define NDNBOOST_FT_cc_name implicit_cc
+#     define NDNBOOST_FT_cc NDNBOOST_PP_EMPTY
+#     define NDNBOOST_FT_cond callable_builtin
+#     include NDNBOOST_FT_cc_file
+#     undef NDNBOOST_FT_cond
+#     undef NDNBOOST_FT_cc_name
+#     undef NDNBOOST_FT_cc
+#     undef NDNBOOST_FT_cc_id
+#   elif !defined(NDNBOOST_FT_config_valid) // and generating preprocessed file
+NDNBOOST_PP_EXPAND(#) ifndef NDNBOOST_FT_config_valid
+NDNBOOST_PP_EXPAND(#)   define NDNBOOST_FT_cc_id 1
+NDNBOOST_PP_EXPAND(#)   define NDNBOOST_FT_cc_name implicit_cc
+NDNBOOST_PP_EXPAND(#)   define NDNBOOST_FT_cc NDNBOOST_PP_EMPTY
+NDNBOOST_PP_EXPAND(#)   define NDNBOOST_FT_cond callable_builtin
 #define _()
-BOOST_PP_EXPAND(#)   include BOOST_FT_cc_file
+NDNBOOST_PP_EXPAND(#)   include NDNBOOST_FT_cc_file
 #undef _
-BOOST_PP_EXPAND(#)   undef BOOST_FT_cond
-BOOST_PP_EXPAND(#)   undef BOOST_FT_cc_name
-BOOST_PP_EXPAND(#)   undef BOOST_FT_cc
-BOOST_PP_EXPAND(#)   undef BOOST_FT_cc_id
-BOOST_PP_EXPAND(#) else
-BOOST_PP_EXPAND(#)   undef BOOST_FT_config_valid
-BOOST_PP_EXPAND(#) endif
+NDNBOOST_PP_EXPAND(#)   undef NDNBOOST_FT_cond
+NDNBOOST_PP_EXPAND(#)   undef NDNBOOST_FT_cc_name
+NDNBOOST_PP_EXPAND(#)   undef NDNBOOST_FT_cc
+NDNBOOST_PP_EXPAND(#)   undef NDNBOOST_FT_cc_id
+NDNBOOST_PP_EXPAND(#) else
+NDNBOOST_PP_EXPAND(#)   undef NDNBOOST_FT_config_valid
+NDNBOOST_PP_EXPAND(#) endif
 
 #   else
-#     undef BOOST_FT_config_valid
+#     undef NDNBOOST_FT_config_valid
 #   endif
 
 #   include <ndnboost/function_types/detail/encoding/aliases_undef.hpp>
 #   include <ndnboost/function_types/detail/encoding/undef.hpp>
 
-#elif BOOST_FT_CC_PREPROCESSING
+#elif NDNBOOST_FT_CC_PREPROCESSING
 
-#   define BOOST_FT_cc_id  BOOST_PP_INC(BOOST_PP_FRAME_ITERATION(1))
-#   define BOOST_FT_cc_inf \
-        BOOST_PP_SEQ_ELEM(BOOST_PP_FRAME_ITERATION(1),BOOST_FT_CC_NAMES_SEQ)
+#   define NDNBOOST_FT_cc_id  NDNBOOST_PP_INC(NDNBOOST_PP_FRAME_ITERATION(1))
+#   define NDNBOOST_FT_cc_inf \
+        NDNBOOST_PP_SEQ_ELEM(NDNBOOST_PP_FRAME_ITERATION(1),NDNBOOST_FT_CC_NAMES_SEQ)
 
-#   define BOOST_FT_cc_pp_name BOOST_PP_TUPLE_ELEM(3,0,BOOST_FT_cc_inf)
-#   define BOOST_FT_cc_name    BOOST_PP_TUPLE_ELEM(3,1,BOOST_FT_cc_inf)
-#   define BOOST_FT_cc         BOOST_PP_TUPLE_ELEM(3,2,BOOST_FT_cc_inf)
+#   define NDNBOOST_FT_cc_pp_name NDNBOOST_PP_TUPLE_ELEM(3,0,NDNBOOST_FT_cc_inf)
+#   define NDNBOOST_FT_cc_name    NDNBOOST_PP_TUPLE_ELEM(3,1,NDNBOOST_FT_cc_inf)
+#   define NDNBOOST_FT_cc         NDNBOOST_PP_TUPLE_ELEM(3,2,NDNBOOST_FT_cc_inf)
 
-#   define BOOST_FT_cond BOOST_PP_CAT(BOOST_FT_CC_,BOOST_FT_cc_pp_name)
+#   define NDNBOOST_FT_cond NDNBOOST_PP_CAT(NDNBOOST_FT_CC_,NDNBOOST_FT_cc_pp_name)
 
-#   if BOOST_FT_cond
-#     define BOOST_FT_config_valid 1
-#     include BOOST_FT_cc_file
+#   if NDNBOOST_FT_cond
+#     define NDNBOOST_FT_config_valid 1
+#     include NDNBOOST_FT_cc_file
 #   endif
 
-#   undef BOOST_FT_cond
+#   undef NDNBOOST_FT_cond
 
-#   undef BOOST_FT_cc_pp_name
-#   undef BOOST_FT_cc_name
-#   undef BOOST_FT_cc
+#   undef NDNBOOST_FT_cc_pp_name
+#   undef NDNBOOST_FT_cc_name
+#   undef NDNBOOST_FT_cc
 
-#   undef BOOST_FT_cc_id
-#   undef BOOST_FT_cc_inf
+#   undef NDNBOOST_FT_cc_id
+#   undef NDNBOOST_FT_cc_inf
 
 #else // if generating preprocessed file
-BOOST_PP_EXPAND(#) define BOOST_FT_cc_id BOOST_PP_INC(BOOST_PP_ITERATION())
+NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_cc_id NDNBOOST_PP_INC(NDNBOOST_PP_ITERATION())
 
-#   define BOOST_FT_cc_inf \
-        BOOST_PP_SEQ_ELEM(BOOST_PP_ITERATION(),BOOST_FT_CC_NAMES_SEQ)
+#   define NDNBOOST_FT_cc_inf \
+        NDNBOOST_PP_SEQ_ELEM(NDNBOOST_PP_ITERATION(),NDNBOOST_FT_CC_NAMES_SEQ)
 
-#   define BOOST_FT_cc_pp_name BOOST_PP_TUPLE_ELEM(3,0,BOOST_FT_cc_inf)
+#   define NDNBOOST_FT_cc_pp_name NDNBOOST_PP_TUPLE_ELEM(3,0,NDNBOOST_FT_cc_inf)
 
-#   define BOOST_FT_CC_DEF(name,index) \
-        name BOOST_PP_TUPLE_ELEM(3,index,BOOST_FT_cc_inf)
-BOOST_PP_EXPAND(#) define BOOST_FT_CC_DEF(BOOST_FT_cc_name,1)
-BOOST_PP_EXPAND(#) define BOOST_FT_CC_DEF(BOOST_FT_cc,2)
-#   undef  BOOST_FT_CC_DEF
+#   define NDNBOOST_FT_CC_DEF(name,index) \
+        name NDNBOOST_PP_TUPLE_ELEM(3,index,NDNBOOST_FT_cc_inf)
+NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_CC_DEF(NDNBOOST_FT_cc_name,1)
+NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_CC_DEF(NDNBOOST_FT_cc,2)
+#   undef  NDNBOOST_FT_CC_DEF
 
-#   define BOOST_FT_cc_cond_v BOOST_PP_CAT(BOOST_FT_CC_,BOOST_FT_cc_pp_name)
-BOOST_PP_EXPAND(#) define BOOST_FT_cond BOOST_FT_cc_cond_v
-#   undef  BOOST_FT_cc_cond_v
+#   define NDNBOOST_FT_cc_cond_v NDNBOOST_PP_CAT(NDNBOOST_FT_CC_,NDNBOOST_FT_cc_pp_name)
+NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_cond NDNBOOST_FT_cc_cond_v
+#   undef  NDNBOOST_FT_cc_cond_v
 
-#   undef BOOST_FT_cc_pp_name
-#   undef BOOST_FT_cc_inf
+#   undef NDNBOOST_FT_cc_pp_name
+#   undef NDNBOOST_FT_cc_inf
 
-BOOST_PP_EXPAND(#) if BOOST_FT_cond
-BOOST_PP_EXPAND(#)   define BOOST_FT_config_valid 1
+NDNBOOST_PP_EXPAND(#) if NDNBOOST_FT_cond
+NDNBOOST_PP_EXPAND(#)   define NDNBOOST_FT_config_valid 1
 #define _()
-BOOST_PP_EXPAND(#)   include BOOST_FT_cc_file
+NDNBOOST_PP_EXPAND(#)   include NDNBOOST_FT_cc_file
 #undef _
-BOOST_PP_EXPAND(#) endif
+NDNBOOST_PP_EXPAND(#) endif
 
-BOOST_PP_EXPAND(#) undef BOOST_FT_cond
+NDNBOOST_PP_EXPAND(#) undef NDNBOOST_FT_cond
 
-BOOST_PP_EXPAND(#) undef BOOST_FT_cc_name
-BOOST_PP_EXPAND(#) undef BOOST_FT_cc
+NDNBOOST_PP_EXPAND(#) undef NDNBOOST_FT_cc_name
+NDNBOOST_PP_EXPAND(#) undef NDNBOOST_FT_cc
 
-BOOST_PP_EXPAND(#) undef BOOST_FT_cc_id
+NDNBOOST_PP_EXPAND(#) undef NDNBOOST_FT_cc_id
 
 #endif
 
diff --git a/include/ndnboost/function_types/detail/pp_cc_loop/preprocessed.hpp b/include/ndnboost/function_types/detail/pp_cc_loop/preprocessed.hpp
index da4079c..391ec1a 100644
--- a/include/ndnboost/function_types/detail/pp_cc_loop/preprocessed.hpp
+++ b/include/ndnboost/function_types/detail/pp_cc_loop/preprocessed.hpp
@@ -9,112 +9,112 @@
 // no include guards, this file is intended for multiple inclusions
 
 // this file has been generated from the master.hpp file in the same directory
-# define BOOST_FT_cc_id 1
-# define BOOST_FT_cc_name implicit_cc
-# define BOOST_FT_cc BOOST_PP_EMPTY
-# define BOOST_FT_cond BOOST_FT_CC_IMPLICIT
-# if BOOST_FT_cond
-# define BOOST_FT_config_valid 1
-# include BOOST_FT_cc_file
+# define NDNBOOST_FT_cc_id 1
+# define NDNBOOST_FT_cc_name implicit_cc
+# define NDNBOOST_FT_cc NDNBOOST_PP_EMPTY
+# define NDNBOOST_FT_cond NDNBOOST_FT_CC_IMPLICIT
+# if NDNBOOST_FT_cond
+# define NDNBOOST_FT_config_valid 1
+# include NDNBOOST_FT_cc_file
 # endif
-# undef BOOST_FT_cond
-# undef BOOST_FT_cc_name
-# undef BOOST_FT_cc
-# undef BOOST_FT_cc_id
-# define BOOST_FT_cc_id 2
-# define BOOST_FT_cc_name cdecl_cc
-# define BOOST_FT_cc BOOST_PP_IDENTITY(__cdecl )
-# define BOOST_FT_cond BOOST_FT_CC_CDECL
-# if BOOST_FT_cond
-# define BOOST_FT_config_valid 1
-# include BOOST_FT_cc_file
+# undef NDNBOOST_FT_cond
+# undef NDNBOOST_FT_cc_name
+# undef NDNBOOST_FT_cc
+# undef NDNBOOST_FT_cc_id
+# define NDNBOOST_FT_cc_id 2
+# define NDNBOOST_FT_cc_name cdecl_cc
+# define NDNBOOST_FT_cc NDNBOOST_PP_IDENTITY(__cdecl )
+# define NDNBOOST_FT_cond NDNBOOST_FT_CC_CDECL
+# if NDNBOOST_FT_cond
+# define NDNBOOST_FT_config_valid 1
+# include NDNBOOST_FT_cc_file
 # endif
-# undef BOOST_FT_cond
-# undef BOOST_FT_cc_name
-# undef BOOST_FT_cc
-# undef BOOST_FT_cc_id
-# define BOOST_FT_cc_id 3
-# define BOOST_FT_cc_name stdcall_cc
-# define BOOST_FT_cc BOOST_PP_IDENTITY(__stdcall )
-# define BOOST_FT_cond BOOST_FT_CC_STDCALL
-# if BOOST_FT_cond
-# define BOOST_FT_config_valid 1
-# include BOOST_FT_cc_file
+# undef NDNBOOST_FT_cond
+# undef NDNBOOST_FT_cc_name
+# undef NDNBOOST_FT_cc
+# undef NDNBOOST_FT_cc_id
+# define NDNBOOST_FT_cc_id 3
+# define NDNBOOST_FT_cc_name stdcall_cc
+# define NDNBOOST_FT_cc NDNBOOST_PP_IDENTITY(__stdcall )
+# define NDNBOOST_FT_cond NDNBOOST_FT_CC_STDCALL
+# if NDNBOOST_FT_cond
+# define NDNBOOST_FT_config_valid 1
+# include NDNBOOST_FT_cc_file
 # endif
-# undef BOOST_FT_cond
-# undef BOOST_FT_cc_name
-# undef BOOST_FT_cc
-# undef BOOST_FT_cc_id
-# define BOOST_FT_cc_id 4
-# define BOOST_FT_cc_name pascal_cc
-# define BOOST_FT_cc BOOST_PP_IDENTITY(pascal )
-# define BOOST_FT_cond BOOST_FT_CC_PASCAL
-# if BOOST_FT_cond
-# define BOOST_FT_config_valid 1
-# include BOOST_FT_cc_file
+# undef NDNBOOST_FT_cond
+# undef NDNBOOST_FT_cc_name
+# undef NDNBOOST_FT_cc
+# undef NDNBOOST_FT_cc_id
+# define NDNBOOST_FT_cc_id 4
+# define NDNBOOST_FT_cc_name pascal_cc
+# define NDNBOOST_FT_cc NDNBOOST_PP_IDENTITY(pascal )
+# define NDNBOOST_FT_cond NDNBOOST_FT_CC_PASCAL
+# if NDNBOOST_FT_cond
+# define NDNBOOST_FT_config_valid 1
+# include NDNBOOST_FT_cc_file
 # endif
-# undef BOOST_FT_cond
-# undef BOOST_FT_cc_name
-# undef BOOST_FT_cc
-# undef BOOST_FT_cc_id
-# define BOOST_FT_cc_id 5
-# define BOOST_FT_cc_name fastcall_cc
-# define BOOST_FT_cc BOOST_PP_IDENTITY(__fastcall)
-# define BOOST_FT_cond BOOST_FT_CC_FASTCALL
-# if BOOST_FT_cond
-# define BOOST_FT_config_valid 1
-# include BOOST_FT_cc_file
+# undef NDNBOOST_FT_cond
+# undef NDNBOOST_FT_cc_name
+# undef NDNBOOST_FT_cc
+# undef NDNBOOST_FT_cc_id
+# define NDNBOOST_FT_cc_id 5
+# define NDNBOOST_FT_cc_name fastcall_cc
+# define NDNBOOST_FT_cc NDNBOOST_PP_IDENTITY(__fastcall)
+# define NDNBOOST_FT_cond NDNBOOST_FT_CC_FASTCALL
+# if NDNBOOST_FT_cond
+# define NDNBOOST_FT_config_valid 1
+# include NDNBOOST_FT_cc_file
 # endif
-# undef BOOST_FT_cond
-# undef BOOST_FT_cc_name
-# undef BOOST_FT_cc
-# undef BOOST_FT_cc_id
-# define BOOST_FT_cc_id 6
-# define BOOST_FT_cc_name clrcall_cc
-# define BOOST_FT_cc BOOST_PP_IDENTITY(__clrcall )
-# define BOOST_FT_cond BOOST_FT_CC_CLRCALL
-# if BOOST_FT_cond
-# define BOOST_FT_config_valid 1
-# include BOOST_FT_cc_file
+# undef NDNBOOST_FT_cond
+# undef NDNBOOST_FT_cc_name
+# undef NDNBOOST_FT_cc
+# undef NDNBOOST_FT_cc_id
+# define NDNBOOST_FT_cc_id 6
+# define NDNBOOST_FT_cc_name clrcall_cc
+# define NDNBOOST_FT_cc NDNBOOST_PP_IDENTITY(__clrcall )
+# define NDNBOOST_FT_cond NDNBOOST_FT_CC_CLRCALL
+# if NDNBOOST_FT_cond
+# define NDNBOOST_FT_config_valid 1
+# include NDNBOOST_FT_cc_file
 # endif
-# undef BOOST_FT_cond
-# undef BOOST_FT_cc_name
-# undef BOOST_FT_cc
-# undef BOOST_FT_cc_id
-# define BOOST_FT_cc_id 7
-# define BOOST_FT_cc_name thiscall_cc
-# define BOOST_FT_cc BOOST_PP_IDENTITY(__thiscall)
-# define BOOST_FT_cond BOOST_FT_CC_THISCALL
-# if BOOST_FT_cond
-# define BOOST_FT_config_valid 1
-# include BOOST_FT_cc_file
+# undef NDNBOOST_FT_cond
+# undef NDNBOOST_FT_cc_name
+# undef NDNBOOST_FT_cc
+# undef NDNBOOST_FT_cc_id
+# define NDNBOOST_FT_cc_id 7
+# define NDNBOOST_FT_cc_name thiscall_cc
+# define NDNBOOST_FT_cc NDNBOOST_PP_IDENTITY(__thiscall)
+# define NDNBOOST_FT_cond NDNBOOST_FT_CC_THISCALL
+# if NDNBOOST_FT_cond
+# define NDNBOOST_FT_config_valid 1
+# include NDNBOOST_FT_cc_file
 # endif
-# undef BOOST_FT_cond
-# undef BOOST_FT_cc_name
-# undef BOOST_FT_cc
-# undef BOOST_FT_cc_id
-# define BOOST_FT_cc_id 8
-# define BOOST_FT_cc_name thiscall_cc
-# define BOOST_FT_cc BOOST_PP_EMPTY
-# define BOOST_FT_cond BOOST_FT_CC_IMPLICIT_THISCALL
-# if BOOST_FT_cond
-# define BOOST_FT_config_valid 1
-# include BOOST_FT_cc_file
+# undef NDNBOOST_FT_cond
+# undef NDNBOOST_FT_cc_name
+# undef NDNBOOST_FT_cc
+# undef NDNBOOST_FT_cc_id
+# define NDNBOOST_FT_cc_id 8
+# define NDNBOOST_FT_cc_name thiscall_cc
+# define NDNBOOST_FT_cc NDNBOOST_PP_EMPTY
+# define NDNBOOST_FT_cond NDNBOOST_FT_CC_IMPLICIT_THISCALL
+# if NDNBOOST_FT_cond
+# define NDNBOOST_FT_config_valid 1
+# include NDNBOOST_FT_cc_file
 # endif
-# undef BOOST_FT_cond
-# undef BOOST_FT_cc_name
-# undef BOOST_FT_cc
-# undef BOOST_FT_cc_id
-# ifndef BOOST_FT_config_valid
-# define BOOST_FT_cc_id 1
-# define BOOST_FT_cc_name implicit_cc
-# define BOOST_FT_cc BOOST_PP_EMPTY
-# define BOOST_FT_cond 0x00000001
-# include BOOST_FT_cc_file
-# undef BOOST_FT_cond
-# undef BOOST_FT_cc_name
-# undef BOOST_FT_cc
-# undef BOOST_FT_cc_id
+# undef NDNBOOST_FT_cond
+# undef NDNBOOST_FT_cc_name
+# undef NDNBOOST_FT_cc
+# undef NDNBOOST_FT_cc_id
+# ifndef NDNBOOST_FT_config_valid
+# define NDNBOOST_FT_cc_id 1
+# define NDNBOOST_FT_cc_name implicit_cc
+# define NDNBOOST_FT_cc NDNBOOST_PP_EMPTY
+# define NDNBOOST_FT_cond 0x00000001
+# include NDNBOOST_FT_cc_file
+# undef NDNBOOST_FT_cond
+# undef NDNBOOST_FT_cc_name
+# undef NDNBOOST_FT_cc
+# undef NDNBOOST_FT_cc_id
 # else
-# undef BOOST_FT_config_valid
+# undef NDNBOOST_FT_config_valid
 # endif
diff --git a/include/ndnboost/function_types/detail/pp_loop.hpp b/include/ndnboost/function_types/detail/pp_loop.hpp
index 1ce6ab7..1b6e7ba 100644
--- a/include/ndnboost/function_types/detail/pp_loop.hpp
+++ b/include/ndnboost/function_types/detail/pp_loop.hpp
@@ -8,8 +8,8 @@
 
 // no include guards, this file is intended for multiple inclusions
 
-#ifndef BOOST_FT_DETAIL_PP_LOOP_HPP_INCLUDED
-#define BOOST_FT_DETAIL_PP_LOOP_HPP_INCLUDED
+#ifndef NDNBOOST_FT_DETAIL_PP_LOOP_HPP_INCLUDED
+#define NDNBOOST_FT_DETAIL_PP_LOOP_HPP_INCLUDED
 #   include <ndnboost/preprocessor/facilities/expand.hpp>
 #   include <ndnboost/preprocessor/facilities/empty.hpp>
 #   include <ndnboost/preprocessor/punctuation/paren.hpp>
@@ -18,53 +18,53 @@
 #include <ndnboost/function_types/detail/encoding/def.hpp>
 #include <ndnboost/function_types/detail/encoding/aliases_def.hpp>
 
-#if defined(BOOST_FT_PREPROCESSING_MODE)
-#   define BOOST_FT_loop <ndnboost/function_types/detail/pp_cc_loop/master.hpp>
+#if defined(NDNBOOST_FT_PREPROCESSING_MODE)
+#   define NDNBOOST_FT_loop <ndnboost/function_types/detail/pp_cc_loop/master.hpp>
 #else
-#   define BOOST_FT_loop \
+#   define NDNBOOST_FT_loop \
         <ndnboost/function_types/detail/pp_cc_loop/preprocessed.hpp>
 #endif
 
-#if defined(BOOST_FT_al_path)
+#if defined(NDNBOOST_FT_al_path)
 
-#   define BOOST_FT_cc_file \
+#   define NDNBOOST_FT_cc_file \
         <ndnboost/function_types/detail/pp_variate_loop/preprocessed.hpp>
-#   define BOOST_FT_variate_file \
+#   define NDNBOOST_FT_variate_file \
         <ndnboost/function_types/detail/pp_arity_loop.hpp>
 
-#   ifndef BOOST_FT_type_function
-#   define BOOST_FT_type_function(cc,name) BOOST_FT_SYNTAX( \
-      R BOOST_PP_EMPTY,BOOST_PP_EMPTY,cc,BOOST_PP_EMPTY,name,BOOST_PP_EMPTY)
+#   ifndef NDNBOOST_FT_type_function
+#   define NDNBOOST_FT_type_function(cc,name) NDNBOOST_FT_SYNTAX( \
+      R NDNBOOST_PP_EMPTY,NDNBOOST_PP_EMPTY,cc,NDNBOOST_PP_EMPTY,name,NDNBOOST_PP_EMPTY)
 #   endif
-#   ifndef BOOST_FT_type_function_pointer
-#   define BOOST_FT_type_function_pointer(cc,name) BOOST_FT_SYNTAX( \
-      R BOOST_PP_EMPTY,BOOST_PP_LPAREN,cc,* BOOST_PP_EMPTY,name,BOOST_PP_RPAREN)
+#   ifndef NDNBOOST_FT_type_function_pointer
+#   define NDNBOOST_FT_type_function_pointer(cc,name) NDNBOOST_FT_SYNTAX( \
+      R NDNBOOST_PP_EMPTY,NDNBOOST_PP_LPAREN,cc,* NDNBOOST_PP_EMPTY,name,NDNBOOST_PP_RPAREN)
 #   endif
-#   ifndef BOOST_FT_type_function_reference
-#   define BOOST_FT_type_function_reference(cc,name) BOOST_FT_SYNTAX( \
-      R BOOST_PP_EMPTY,BOOST_PP_LPAREN,cc,& BOOST_PP_EMPTY,name,BOOST_PP_RPAREN)
+#   ifndef NDNBOOST_FT_type_function_reference
+#   define NDNBOOST_FT_type_function_reference(cc,name) NDNBOOST_FT_SYNTAX( \
+      R NDNBOOST_PP_EMPTY,NDNBOOST_PP_LPAREN,cc,& NDNBOOST_PP_EMPTY,name,NDNBOOST_PP_RPAREN)
 #   endif
-#   ifndef BOOST_FT_type_member_function_pointer
-#   define BOOST_FT_type_member_function_pointer(cc,name) BOOST_FT_SYNTAX( \
-      R BOOST_PP_EMPTY,BOOST_PP_LPAREN,cc,T0::* BOOST_PP_EMPTY,name,BOOST_PP_RPAREN)
+#   ifndef NDNBOOST_FT_type_member_function_pointer
+#   define NDNBOOST_FT_type_member_function_pointer(cc,name) NDNBOOST_FT_SYNTAX( \
+      R NDNBOOST_PP_EMPTY,NDNBOOST_PP_LPAREN,cc,T0::* NDNBOOST_PP_EMPTY,name,NDNBOOST_PP_RPAREN)
 #   endif
 
-#   include BOOST_FT_loop
+#   include NDNBOOST_FT_loop
 
-#   undef BOOST_FT_type_function
-#   undef BOOST_FT_type_function_pointer
-#   undef BOOST_FT_type_function_reference
-#   undef BOOST_FT_type_member_function_pointer
+#   undef NDNBOOST_FT_type_function
+#   undef NDNBOOST_FT_type_function_pointer
+#   undef NDNBOOST_FT_type_function_reference
+#   undef NDNBOOST_FT_type_member_function_pointer
 
-#   undef BOOST_FT_variations
-#   undef BOOST_FT_variate_file
-#   undef BOOST_FT_cc_file
-#   undef BOOST_FT_al_path
+#   undef NDNBOOST_FT_variations
+#   undef NDNBOOST_FT_variate_file
+#   undef NDNBOOST_FT_cc_file
+#   undef NDNBOOST_FT_al_path
 
-#elif defined(BOOST_FT_cc_file)
+#elif defined(NDNBOOST_FT_cc_file)
 
-#   include BOOST_FT_loop
-#   undef BOOST_FT_cc_file
+#   include NDNBOOST_FT_loop
+#   undef NDNBOOST_FT_cc_file
 
 #else
 
@@ -72,7 +72,7 @@
 
 #endif
 
-#undef BOOST_FT_loop
+#undef NDNBOOST_FT_loop
 
 #include <ndnboost/function_types/detail/encoding/aliases_undef.hpp>
 #include <ndnboost/function_types/detail/encoding/undef.hpp>
diff --git a/include/ndnboost/function_types/detail/pp_retag_default_cc/master.hpp b/include/ndnboost/function_types/detail/pp_retag_default_cc/master.hpp
index 2b0f2f8..292a5bd 100644
--- a/include/ndnboost/function_types/detail/pp_retag_default_cc/master.hpp
+++ b/include/ndnboost/function_types/detail/pp_retag_default_cc/master.hpp
@@ -13,7 +13,7 @@
 #   pragma wave option(preserve: 0)
 #endif
 
-#if !defined(BOOST_PP_VALUE)
+#if !defined(NDNBOOST_PP_VALUE)
 #   include <ndnboost/preprocessor/slot/slot.hpp>
 #   include <ndnboost/preprocessor/iteration/self.hpp>
 
@@ -26,12 +26,12 @@
 {
   template<class Tag, class RefTag> struct selector_bits
   {
-#   define  BOOST_PP_VALUE non_member|member|non_variadic|variadic
-#   include BOOST_PP_ASSIGN_SLOT(1)
+#   define  NDNBOOST_PP_VALUE non_member|member|non_variadic|variadic
+#   include NDNBOOST_PP_ASSIGN_SLOT(1)
 
-    BOOST_STATIC_CONSTANT(bits_t, value = (
-        (::ndnboost::function_types::detail::bits<Tag>::value & BOOST_FT_default_cc) 
-      | (::ndnboost::function_types::detail::bits<RefTag>::value & BOOST_PP_SLOT(1))
+    NDNBOOST_STATIC_CONSTANT(bits_t, value = (
+        (::ndnboost::function_types::detail::bits<Tag>::value & NDNBOOST_FT_default_cc) 
+      | (::ndnboost::function_types::detail::bits<RefTag>::value & NDNBOOST_PP_SLOT(1))
     ));
   };
 
@@ -50,54 +50,54 @@
   };
 
   class test_class;
-  typedef constant<BOOST_FT_cc_mask> cc_mask_constant;
+  typedef constant<NDNBOOST_FT_cc_mask> cc_mask_constant;
 
-#   define BOOST_FT_self \
+#   define NDNBOOST_FT_self \
       <ndnboost/function_types/detail/pp_retag_default_cc/master.hpp>
 
-#   define  default_cc_ BOOST_FT_default_cc
+#   define  default_cc_ NDNBOOST_FT_default_cc
 
-#   define  BOOST_PP_VALUE default_cc_|non_member|non_variadic
-#   define  BOOST_FT_tester void (*tester)()
-#   define  BOOST_PP_INDIRECT_SELF BOOST_FT_self
-#   include BOOST_PP_INCLUDE_SELF()
+#   define  NDNBOOST_PP_VALUE default_cc_|non_member|non_variadic
+#   define  NDNBOOST_FT_tester void (*tester)()
+#   define  NDNBOOST_PP_INDIRECT_SELF NDNBOOST_FT_self
+#   include NDNBOOST_PP_INCLUDE_SELF()
 
-#   define  BOOST_PP_VALUE default_cc_|non_member|variadic
-#   define  BOOST_FT_tester void (*tester)(...)
-#   define  BOOST_PP_INDIRECT_SELF BOOST_FT_self
-#   include BOOST_PP_INCLUDE_SELF()
+#   define  NDNBOOST_PP_VALUE default_cc_|non_member|variadic
+#   define  NDNBOOST_FT_tester void (*tester)(...)
+#   define  NDNBOOST_PP_INDIRECT_SELF NDNBOOST_FT_self
+#   include NDNBOOST_PP_INCLUDE_SELF()
 
-#   define  BOOST_PP_VALUE default_cc_|member|non_variadic
-#   define  BOOST_FT_tester void (test_class::*tester)()
-#   define  BOOST_PP_INDIRECT_SELF BOOST_FT_self
-#   include BOOST_PP_INCLUDE_SELF()
+#   define  NDNBOOST_PP_VALUE default_cc_|member|non_variadic
+#   define  NDNBOOST_FT_tester void (test_class::*tester)()
+#   define  NDNBOOST_PP_INDIRECT_SELF NDNBOOST_FT_self
+#   include NDNBOOST_PP_INCLUDE_SELF()
 
-#   define  BOOST_PP_VALUE default_cc_|member|variadic
-#   define  BOOST_FT_tester void (test_class::*tester)(...)
-#   define  BOOST_PP_INDIRECT_SELF BOOST_FT_self
-#   include BOOST_PP_INCLUDE_SELF()
+#   define  NDNBOOST_PP_VALUE default_cc_|member|variadic
+#   define  NDNBOOST_FT_tester void (test_class::*tester)(...)
+#   define  NDNBOOST_PP_INDIRECT_SELF NDNBOOST_FT_self
+#   include NDNBOOST_PP_INCLUDE_SELF()
 
 #   undef   default_cc_
 
-#   undef BOOST_FT_self
+#   undef NDNBOOST_FT_self
 
 } } } // namespace ::ndnboost::function_types::detail
 
 #   include <ndnboost/function_types/detail/encoding/aliases_undef.hpp>
 #   include <ndnboost/function_types/detail/encoding/undef.hpp>
 
-#else // if defined(BOOST_PP_VALUE)
+#else // if defined(NDNBOOST_PP_VALUE)
 
-#   include BOOST_PP_ASSIGN_SLOT(1)
+#   include NDNBOOST_PP_ASSIGN_SLOT(1)
 
-  template<> struct default_cc_tag<BOOST_PP_SLOT(1)> 
+  template<> struct default_cc_tag<NDNBOOST_PP_SLOT(1)> 
   {
-    typedef BOOST_FT_tester;
+    typedef NDNBOOST_FT_tester;
     typedef mpl::bitand_<components<tester>::bits,cc_mask_constant> bits;
     typedef cc_mask_constant mask;
   };
 
-#   undef BOOST_FT_tester
+#   undef NDNBOOST_FT_tester
 
 #endif
 
diff --git a/include/ndnboost/function_types/detail/pp_retag_default_cc/preprocessed.hpp b/include/ndnboost/function_types/detail/pp_retag_default_cc/preprocessed.hpp
index 0c0c7ab..8a2b7e9 100644
--- a/include/ndnboost/function_types/detail/pp_retag_default_cc/preprocessed.hpp
+++ b/include/ndnboost/function_types/detail/pp_retag_default_cc/preprocessed.hpp
@@ -14,7 +14,7 @@
 {
 template<class Tag, class RefTag> struct selector_bits
 {
-BOOST_STATIC_CONSTANT(bits_t, value = (
+NDNBOOST_STATIC_CONSTANT(bits_t, value = (
 (::ndnboost::function_types::detail::bits<Tag> ::value & 0x00008000) 
 | (::ndnboost::function_types::detail::bits<RefTag> ::value & 802)
 ));
diff --git a/include/ndnboost/function_types/detail/pp_tags/cc_tag.hpp b/include/ndnboost/function_types/detail/pp_tags/cc_tag.hpp
index 81f1d89..5b80a07 100644
--- a/include/ndnboost/function_types/detail/pp_tags/cc_tag.hpp
+++ b/include/ndnboost/function_types/detail/pp_tags/cc_tag.hpp
@@ -8,10 +8,10 @@
 
 // no include guards, this file is intended for multiple inclusions
 
-  struct BOOST_FT_cc_name
+  struct NDNBOOST_FT_cc_name
   {
-    typedef detail::encode_bits<0,BOOST_FT_cc_id> bits;
-    typedef detail::constant<BOOST_FT_cc_mask> mask;
+    typedef detail::encode_bits<0,NDNBOOST_FT_cc_id> bits;
+    typedef detail::constant<NDNBOOST_FT_cc_mask> mask;
   };
 
 
diff --git a/include/ndnboost/function_types/detail/pp_tags/master.hpp b/include/ndnboost/function_types/detail/pp_tags/master.hpp
index 8d45ea4..5e86342 100644
--- a/include/ndnboost/function_types/detail/pp_tags/master.hpp
+++ b/include/ndnboost/function_types/detail/pp_tags/master.hpp
@@ -13,7 +13,7 @@
 #   pragma wave option(preserve: 0)
 #endif
 
-#if !defined(BOOST_FT_PREPROCESSING_MODE) || defined(BOOST_FT_CONFIG_HPP_INCLUDED)
+#if !defined(NDNBOOST_FT_PREPROCESSING_MODE) || defined(NDNBOOST_FT_CONFIG_HPP_INCLUDED)
 #   error "this file used with two-pass preprocessing, only"
 #endif
 
@@ -22,103 +22,103 @@
 
 namespace ndnboost { namespace function_types {
 
-typedef detail::property_tag<BOOST_FT_non_variadic,BOOST_FT_variadic_mask> non_variadic;
-typedef detail::property_tag<BOOST_FT_variadic,BOOST_FT_variadic_mask>     variadic;
+typedef detail::property_tag<NDNBOOST_FT_non_variadic,NDNBOOST_FT_variadic_mask> non_variadic;
+typedef detail::property_tag<NDNBOOST_FT_variadic,NDNBOOST_FT_variadic_mask>     variadic;
                                                                        
-typedef detail::property_tag<0,BOOST_FT_const>                     non_const;
-typedef detail::property_tag<BOOST_FT_const,BOOST_FT_const>        const_qualified;
+typedef detail::property_tag<0,NDNBOOST_FT_const>                     non_const;
+typedef detail::property_tag<NDNBOOST_FT_const,NDNBOOST_FT_const>        const_qualified;
                                                                        
-typedef detail::property_tag<0,BOOST_FT_volatile>                  non_volatile;
-typedef detail::property_tag<BOOST_FT_volatile,BOOST_FT_volatile>  volatile_qualified; 
+typedef detail::property_tag<0,NDNBOOST_FT_volatile>                  non_volatile;
+typedef detail::property_tag<NDNBOOST_FT_volatile,NDNBOOST_FT_volatile>  volatile_qualified; 
 
-typedef detail::property_tag<BOOST_FT_default_cc,BOOST_FT_cc_mask> default_cc;
+typedef detail::property_tag<NDNBOOST_FT_default_cc,NDNBOOST_FT_cc_mask> default_cc;
 
-#define BOOST_PP_VALUE BOOST_FT_const|BOOST_FT_volatile 
-#include BOOST_PP_ASSIGN_SLOT(1)
+#define NDNBOOST_PP_VALUE NDNBOOST_FT_const|NDNBOOST_FT_volatile 
+#include NDNBOOST_PP_ASSIGN_SLOT(1)
 
-typedef detail::property_tag<0                , BOOST_PP_SLOT(1)> non_cv;
-typedef detail::property_tag<BOOST_FT_const   , BOOST_PP_SLOT(1)> const_non_volatile;
-typedef detail::property_tag<BOOST_FT_volatile, BOOST_PP_SLOT(1)> volatile_non_const;
-typedef detail::property_tag<BOOST_PP_SLOT(1) , BOOST_PP_SLOT(1)> cv_qualified;
+typedef detail::property_tag<0                , NDNBOOST_PP_SLOT(1)> non_cv;
+typedef detail::property_tag<NDNBOOST_FT_const   , NDNBOOST_PP_SLOT(1)> const_non_volatile;
+typedef detail::property_tag<NDNBOOST_FT_volatile, NDNBOOST_PP_SLOT(1)> volatile_non_const;
+typedef detail::property_tag<NDNBOOST_PP_SLOT(1) , NDNBOOST_PP_SLOT(1)> cv_qualified;
 
 namespace detail {
 
-  typedef constant<BOOST_FT_full_mask> full_mask;
+  typedef constant<NDNBOOST_FT_full_mask> full_mask;
 
   template <bits_t Flags, bits_t CCID> struct encode_bits_impl
   {
-    BOOST_STATIC_CONSTANT( bits_t, value = 
-      Flags | (BOOST_FT_default_cc * CCID) << 1 );
+    NDNBOOST_STATIC_CONSTANT( bits_t, value = 
+      Flags | (NDNBOOST_FT_default_cc * CCID) << 1 );
   };
 
   template <bits_t Flags, bits_t CCID, std::size_t Arity> 
   struct encode_charr_impl
   {
-    BOOST_STATIC_CONSTANT(std::size_t, value = (std::size_t)(1+
-      Flags | (BOOST_FT_default_cc * CCID) << 1 | Arity << BOOST_FT_arity_shift
+    NDNBOOST_STATIC_CONSTANT(std::size_t, value = (std::size_t)(1+
+      Flags | (NDNBOOST_FT_default_cc * CCID) << 1 | Arity << NDNBOOST_FT_arity_shift
     ));
   };
 
   template <bits_t Bits> struct decode_bits
   {
-    BOOST_STATIC_CONSTANT(bits_t, flags = Bits & BOOST_FT_flags_mask);
+    NDNBOOST_STATIC_CONSTANT(bits_t, flags = Bits & NDNBOOST_FT_flags_mask);
 
-    BOOST_STATIC_CONSTANT(bits_t, cc_id = 
-      ( (Bits & BOOST_FT_full_mask) / BOOST_FT_default_cc) >> 1 
+    NDNBOOST_STATIC_CONSTANT(bits_t, cc_id = 
+      ( (Bits & NDNBOOST_FT_full_mask) / NDNBOOST_FT_default_cc) >> 1 
     );
 
-    BOOST_STATIC_CONSTANT(bits_t, tag_bits = (Bits & BOOST_FT_full_mask));
+    NDNBOOST_STATIC_CONSTANT(bits_t, tag_bits = (Bits & NDNBOOST_FT_full_mask));
 
-    BOOST_STATIC_CONSTANT(std::size_t, arity = (std::size_t)
-      (Bits >> BOOST_FT_arity_shift) 
+    NDNBOOST_STATIC_CONSTANT(std::size_t, arity = (std::size_t)
+      (Bits >> NDNBOOST_FT_arity_shift) 
     );
   };
 
   template <bits_t LHS_bits, bits_t LHS_mask, bits_t RHS_bits, bits_t RHS_mask>
   struct tag_ice
   {
-    BOOST_STATIC_CONSTANT(bool, match =
-      RHS_bits == (LHS_bits & RHS_mask & (RHS_bits |~BOOST_FT_type_mask))
+    NDNBOOST_STATIC_CONSTANT(bool, match =
+      RHS_bits == (LHS_bits & RHS_mask & (RHS_bits |~NDNBOOST_FT_type_mask))
     );
 
-    BOOST_STATIC_CONSTANT(bits_t, combined_bits = 
+    NDNBOOST_STATIC_CONSTANT(bits_t, combined_bits = 
       (LHS_bits & ~RHS_mask) | RHS_bits
     );
 
-    BOOST_STATIC_CONSTANT(bits_t, combined_mask =
+    NDNBOOST_STATIC_CONSTANT(bits_t, combined_mask =
       LHS_mask | RHS_mask
     );
 
-    BOOST_STATIC_CONSTANT(bits_t, extracted_bits =
+    NDNBOOST_STATIC_CONSTANT(bits_t, extracted_bits =
       LHS_bits & RHS_mask
     );
 
   };
 
-#define BOOST_FT_mask BOOST_FT_type_mask
-  typedef property_tag<BOOST_FT_callable_builtin,BOOST_FT_mask>            callable_builtin_tag;
-  typedef property_tag<BOOST_FT_non_member_callable_builtin,BOOST_FT_mask> nonmember_callable_builtin_tag;
-  typedef property_tag<BOOST_FT_function,BOOST_FT_mask>       function_tag;
-  typedef property_tag<BOOST_FT_reference,BOOST_FT_mask>      reference_tag;
-  typedef property_tag<BOOST_FT_pointer,BOOST_FT_mask>        pointer_tag;
-  typedef property_tag<BOOST_FT_member_function_pointer,BOOST_FT_mask> member_function_pointer_tag;
-  typedef property_tag<BOOST_FT_member_object_pointer,BOOST_FT_mask> member_object_pointer_tag;
-  typedef property_tag<BOOST_FT_member_object_pointer_flags,BOOST_FT_full_mask> member_object_pointer_base;
-  typedef property_tag<BOOST_FT_member_pointer,BOOST_FT_mask> member_pointer_tag;
-#undef  BOOST_FT_mask 
+#define NDNBOOST_FT_mask NDNBOOST_FT_type_mask
+  typedef property_tag<NDNBOOST_FT_callable_builtin,NDNBOOST_FT_mask>            callable_builtin_tag;
+  typedef property_tag<NDNBOOST_FT_non_member_callable_builtin,NDNBOOST_FT_mask> nonmember_callable_builtin_tag;
+  typedef property_tag<NDNBOOST_FT_function,NDNBOOST_FT_mask>       function_tag;
+  typedef property_tag<NDNBOOST_FT_reference,NDNBOOST_FT_mask>      reference_tag;
+  typedef property_tag<NDNBOOST_FT_pointer,NDNBOOST_FT_mask>        pointer_tag;
+  typedef property_tag<NDNBOOST_FT_member_function_pointer,NDNBOOST_FT_mask> member_function_pointer_tag;
+  typedef property_tag<NDNBOOST_FT_member_object_pointer,NDNBOOST_FT_mask> member_object_pointer_tag;
+  typedef property_tag<NDNBOOST_FT_member_object_pointer_flags,NDNBOOST_FT_full_mask> member_object_pointer_base;
+  typedef property_tag<NDNBOOST_FT_member_pointer,NDNBOOST_FT_mask> member_pointer_tag;
+#undef  NDNBOOST_FT_mask 
 
-#define BOOST_PP_VALUE BOOST_FT_function|BOOST_FT_non_variadic|BOOST_FT_default_cc
-#include BOOST_PP_ASSIGN_SLOT(1)
-#define BOOST_PP_VALUE BOOST_FT_type_mask|BOOST_FT_variadic_mask|BOOST_FT_cc_mask
-#include BOOST_PP_ASSIGN_SLOT(2)
+#define NDNBOOST_PP_VALUE NDNBOOST_FT_function|NDNBOOST_FT_non_variadic|NDNBOOST_FT_default_cc
+#include NDNBOOST_PP_ASSIGN_SLOT(1)
+#define NDNBOOST_PP_VALUE NDNBOOST_FT_type_mask|NDNBOOST_FT_variadic_mask|NDNBOOST_FT_cc_mask
+#include NDNBOOST_PP_ASSIGN_SLOT(2)
 
-  typedef property_tag< BOOST_PP_SLOT(1) , BOOST_PP_SLOT(2) > nv_dcc_func;
+  typedef property_tag< NDNBOOST_PP_SLOT(1) , NDNBOOST_PP_SLOT(2) > nv_dcc_func;
 
-#define BOOST_PP_VALUE \
-    BOOST_FT_member_function_pointer|BOOST_FT_non_variadic|BOOST_FT_default_cc
-#include BOOST_PP_ASSIGN_SLOT(1)
+#define NDNBOOST_PP_VALUE \
+    NDNBOOST_FT_member_function_pointer|NDNBOOST_FT_non_variadic|NDNBOOST_FT_default_cc
+#include NDNBOOST_PP_ASSIGN_SLOT(1)
 
-  typedef property_tag< BOOST_PP_SLOT(1) , BOOST_PP_SLOT(2) > nv_dcc_mfp;
+  typedef property_tag< NDNBOOST_PP_SLOT(1) , NDNBOOST_PP_SLOT(2) > nv_dcc_mfp;
 
 } // namespace detail
 
diff --git a/include/ndnboost/function_types/detail/pp_tags/preprocessed.hpp b/include/ndnboost/function_types/detail/pp_tags/preprocessed.hpp
index 8aa1c36..f449959 100644
--- a/include/ndnboost/function_types/detail/pp_tags/preprocessed.hpp
+++ b/include/ndnboost/function_types/detail/pp_tags/preprocessed.hpp
@@ -25,40 +25,40 @@
 typedef constant<0x00ff0fff> full_mask;
 template <bits_t Flags, bits_t CCID> struct encode_bits_impl
 {
-BOOST_STATIC_CONSTANT( bits_t, value = 
+NDNBOOST_STATIC_CONSTANT( bits_t, value = 
 Flags | (0x00008000 * CCID) << 1 );
 };
 template <bits_t Flags, bits_t CCID, std::size_t Arity> 
 struct encode_charr_impl
 {
-BOOST_STATIC_CONSTANT(std::size_t, value = (std::size_t)(1+
+NDNBOOST_STATIC_CONSTANT(std::size_t, value = (std::size_t)(1+
 Flags | (0x00008000 * CCID) << 1 | Arity << 24
 ));
 };
 template <bits_t Bits> struct decode_bits
 {
-BOOST_STATIC_CONSTANT(bits_t, flags = Bits & 0x00000fff);
-BOOST_STATIC_CONSTANT(bits_t, cc_id = 
+NDNBOOST_STATIC_CONSTANT(bits_t, flags = Bits & 0x00000fff);
+NDNBOOST_STATIC_CONSTANT(bits_t, cc_id = 
 ( (Bits & 0x00ff0fff) / 0x00008000) >> 1 
 );
-BOOST_STATIC_CONSTANT(bits_t, tag_bits = (Bits & 0x00ff0fff));
-BOOST_STATIC_CONSTANT(std::size_t, arity = (std::size_t)
+NDNBOOST_STATIC_CONSTANT(bits_t, tag_bits = (Bits & 0x00ff0fff));
+NDNBOOST_STATIC_CONSTANT(std::size_t, arity = (std::size_t)
 (Bits >> 24) 
 );
 };
 template <bits_t LHS_bits, bits_t LHS_mask, bits_t RHS_bits, bits_t RHS_mask>
 struct tag_ice
 {
-BOOST_STATIC_CONSTANT(bool, match =
+NDNBOOST_STATIC_CONSTANT(bool, match =
 RHS_bits == (LHS_bits & RHS_mask & (RHS_bits | ~0x000000ff))
 );
-BOOST_STATIC_CONSTANT(bits_t, combined_bits = 
+NDNBOOST_STATIC_CONSTANT(bits_t, combined_bits = 
 (LHS_bits & ~RHS_mask) | RHS_bits
 );
-BOOST_STATIC_CONSTANT(bits_t, combined_mask =
+NDNBOOST_STATIC_CONSTANT(bits_t, combined_mask =
 LHS_mask | RHS_mask
 );
-BOOST_STATIC_CONSTANT(bits_t, extracted_bits =
+NDNBOOST_STATIC_CONSTANT(bits_t, extracted_bits =
 LHS_bits & RHS_mask
 );
 };
diff --git a/include/ndnboost/function_types/detail/pp_variate_loop/master.hpp b/include/ndnboost/function_types/detail/pp_variate_loop/master.hpp
index f452019..880a518 100644
--- a/include/ndnboost/function_types/detail/pp_variate_loop/master.hpp
+++ b/include/ndnboost/function_types/detail/pp_variate_loop/master.hpp
@@ -11,142 +11,142 @@
 #   pragma wave option(preserve: 0)
 #endif
 
-#if !defined(BOOST_FT_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_FT_PREPROCESSING_MODE)
 #   error "this file is only for two-pass preprocessing"
 #endif
 
-#if !defined(BOOST_PP_VALUE)
+#if !defined(NDNBOOST_PP_VALUE)
 #   include <ndnboost/preprocessor/slot/slot.hpp>
 #   include <ndnboost/preprocessor/facilities/empty.hpp>
 #   include <ndnboost/preprocessor/facilities/expand.hpp>
 #   include <ndnboost/function_types/detail/encoding/def.hpp>
 
-BOOST_PP_EXPAND(#) define BOOST_FT_mfp 0
-BOOST_PP_EXPAND(#) define BOOST_FT_syntax BOOST_FT_type_function
+NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_mfp 0
+NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_syntax NDNBOOST_FT_type_function
 
-#   define  BOOST_PP_VALUE \
-      BOOST_FT_function|BOOST_FT_non_variadic
+#   define  NDNBOOST_PP_VALUE \
+      NDNBOOST_FT_function|NDNBOOST_FT_non_variadic
 #   include __FILE__
-#   define  BOOST_PP_VALUE \
-      BOOST_FT_function|BOOST_FT_variadic
+#   define  NDNBOOST_PP_VALUE \
+      NDNBOOST_FT_function|NDNBOOST_FT_variadic
 #   include __FILE__
 
-BOOST_PP_EXPAND(#) if !BOOST_FT_NO_CV_FUNC_SUPPORT
-#   define  BOOST_PP_VALUE \
-      BOOST_FT_function|BOOST_FT_non_variadic|BOOST_FT_const
+NDNBOOST_PP_EXPAND(#) if !NDNBOOST_FT_NO_CV_FUNC_SUPPORT
+#   define  NDNBOOST_PP_VALUE \
+      NDNBOOST_FT_function|NDNBOOST_FT_non_variadic|NDNBOOST_FT_const
 #   include __FILE__
-#   define  BOOST_PP_VALUE \
-      BOOST_FT_function|BOOST_FT_variadic|BOOST_FT_const
+#   define  NDNBOOST_PP_VALUE \
+      NDNBOOST_FT_function|NDNBOOST_FT_variadic|NDNBOOST_FT_const
 #   include __FILE__
-#   define  BOOST_PP_VALUE \
-      BOOST_FT_function|BOOST_FT_non_variadic|BOOST_FT_volatile
+#   define  NDNBOOST_PP_VALUE \
+      NDNBOOST_FT_function|NDNBOOST_FT_non_variadic|NDNBOOST_FT_volatile
 #   include __FILE__
-#   define  BOOST_PP_VALUE \
-      BOOST_FT_function|BOOST_FT_variadic|BOOST_FT_volatile
+#   define  NDNBOOST_PP_VALUE \
+      NDNBOOST_FT_function|NDNBOOST_FT_variadic|NDNBOOST_FT_volatile
 #   include __FILE__
-#   define  BOOST_PP_VALUE \
-      BOOST_FT_function|BOOST_FT_non_variadic|BOOST_FT_const|BOOST_FT_volatile
+#   define  NDNBOOST_PP_VALUE \
+      NDNBOOST_FT_function|NDNBOOST_FT_non_variadic|NDNBOOST_FT_const|NDNBOOST_FT_volatile
 #   include __FILE__
-#   define  BOOST_PP_VALUE \
-      BOOST_FT_function|BOOST_FT_variadic|BOOST_FT_const|BOOST_FT_volatile
+#   define  NDNBOOST_PP_VALUE \
+      NDNBOOST_FT_function|NDNBOOST_FT_variadic|NDNBOOST_FT_const|NDNBOOST_FT_volatile
 #   include __FILE__
-BOOST_PP_EXPAND(#) endif
+NDNBOOST_PP_EXPAND(#) endif
 
 
-BOOST_PP_EXPAND(#) undef  BOOST_FT_syntax
-BOOST_PP_EXPAND(#) define BOOST_FT_syntax BOOST_FT_type_function_pointer
+NDNBOOST_PP_EXPAND(#) undef  NDNBOOST_FT_syntax
+NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_syntax NDNBOOST_FT_type_function_pointer
 
-#   define  BOOST_PP_VALUE \
-      BOOST_FT_pointer|BOOST_FT_non_variadic
+#   define  NDNBOOST_PP_VALUE \
+      NDNBOOST_FT_pointer|NDNBOOST_FT_non_variadic
 #   include __FILE__
-#   define  BOOST_PP_VALUE \
-      BOOST_FT_pointer|BOOST_FT_variadic
+#   define  NDNBOOST_PP_VALUE \
+      NDNBOOST_FT_pointer|NDNBOOST_FT_variadic
 #   include __FILE__
 
-BOOST_PP_EXPAND(#) undef  BOOST_FT_syntax
-BOOST_PP_EXPAND(#) define BOOST_FT_syntax BOOST_FT_type_function_reference
+NDNBOOST_PP_EXPAND(#) undef  NDNBOOST_FT_syntax
+NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_syntax NDNBOOST_FT_type_function_reference
 
-#   define BOOST_PP_VALUE \
-      BOOST_FT_reference|BOOST_FT_non_variadic
+#   define NDNBOOST_PP_VALUE \
+      NDNBOOST_FT_reference|NDNBOOST_FT_non_variadic
 #   include __FILE__
-#   define BOOST_PP_VALUE \
-      BOOST_FT_reference|BOOST_FT_variadic
+#   define NDNBOOST_PP_VALUE \
+      NDNBOOST_FT_reference|NDNBOOST_FT_variadic
 #   include __FILE__
 
-BOOST_PP_EXPAND(#) undef  BOOST_FT_syntax
-BOOST_PP_EXPAND(#) undef  BOOST_FT_mfp
+NDNBOOST_PP_EXPAND(#) undef  NDNBOOST_FT_syntax
+NDNBOOST_PP_EXPAND(#) undef  NDNBOOST_FT_mfp
 
-BOOST_PP_EXPAND(#) define BOOST_FT_mfp 1
-BOOST_PP_EXPAND(#) define BOOST_FT_syntax BOOST_FT_type_member_function_pointer
+NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_mfp 1
+NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_syntax NDNBOOST_FT_type_member_function_pointer
 
-#   define  BOOST_PP_VALUE \
-      BOOST_FT_member_function_pointer|BOOST_FT_non_variadic
+#   define  NDNBOOST_PP_VALUE \
+      NDNBOOST_FT_member_function_pointer|NDNBOOST_FT_non_variadic
 #   include __FILE__
-#   define  BOOST_PP_VALUE \
-      BOOST_FT_member_function_pointer|BOOST_FT_variadic
+#   define  NDNBOOST_PP_VALUE \
+      NDNBOOST_FT_member_function_pointer|NDNBOOST_FT_variadic
 #   include __FILE__
-#   define  BOOST_PP_VALUE \
-      BOOST_FT_member_function_pointer|BOOST_FT_non_variadic|BOOST_FT_const
+#   define  NDNBOOST_PP_VALUE \
+      NDNBOOST_FT_member_function_pointer|NDNBOOST_FT_non_variadic|NDNBOOST_FT_const
 #   include __FILE__
-#   define  BOOST_PP_VALUE \
-      BOOST_FT_member_function_pointer|BOOST_FT_variadic|BOOST_FT_const
+#   define  NDNBOOST_PP_VALUE \
+      NDNBOOST_FT_member_function_pointer|NDNBOOST_FT_variadic|NDNBOOST_FT_const
 #   include __FILE__
-#   define  BOOST_PP_VALUE \
-      BOOST_FT_member_function_pointer|BOOST_FT_non_variadic|BOOST_FT_volatile
+#   define  NDNBOOST_PP_VALUE \
+      NDNBOOST_FT_member_function_pointer|NDNBOOST_FT_non_variadic|NDNBOOST_FT_volatile
 #   include __FILE__
-#   define  BOOST_PP_VALUE \
-      BOOST_FT_member_function_pointer|BOOST_FT_variadic|BOOST_FT_volatile
+#   define  NDNBOOST_PP_VALUE \
+      NDNBOOST_FT_member_function_pointer|NDNBOOST_FT_variadic|NDNBOOST_FT_volatile
 #   include __FILE__
-#   define  BOOST_PP_VALUE \
-      BOOST_FT_member_function_pointer|BOOST_FT_non_variadic|BOOST_FT_const|BOOST_FT_volatile
+#   define  NDNBOOST_PP_VALUE \
+      NDNBOOST_FT_member_function_pointer|NDNBOOST_FT_non_variadic|NDNBOOST_FT_const|NDNBOOST_FT_volatile
 #   include __FILE__
-#   define  BOOST_PP_VALUE \
-      BOOST_FT_member_function_pointer|BOOST_FT_variadic|BOOST_FT_const|BOOST_FT_volatile
+#   define  NDNBOOST_PP_VALUE \
+      NDNBOOST_FT_member_function_pointer|NDNBOOST_FT_variadic|NDNBOOST_FT_const|NDNBOOST_FT_volatile
 #   include __FILE__
 
-BOOST_PP_EXPAND(#) undef  BOOST_FT_syntax
-BOOST_PP_EXPAND(#) undef  BOOST_FT_mfp
+NDNBOOST_PP_EXPAND(#) undef  NDNBOOST_FT_syntax
+NDNBOOST_PP_EXPAND(#) undef  NDNBOOST_FT_mfp
 
 #   include <ndnboost/function_types/detail/encoding/undef.hpp>
 #else 
 
-#   include BOOST_PP_ASSIGN_SLOT(1)
+#   include NDNBOOST_PP_ASSIGN_SLOT(1)
 
-#   define  BOOST_PP_VALUE BOOST_PP_SLOT(1) & BOOST_FT_kind_mask
-#   include BOOST_PP_ASSIGN_SLOT(2)
+#   define  NDNBOOST_PP_VALUE NDNBOOST_PP_SLOT(1) & NDNBOOST_FT_kind_mask
+#   include NDNBOOST_PP_ASSIGN_SLOT(2)
 
-BOOST_PP_EXPAND(#) if !!(BOOST_PP_SLOT(2) & (BOOST_FT_variations))
-BOOST_PP_EXPAND(#) if (BOOST_PP_SLOT(1) & (BOOST_FT_cond)) == (BOOST_FT_cond)
+NDNBOOST_PP_EXPAND(#) if !!(NDNBOOST_PP_SLOT(2) & (NDNBOOST_FT_variations))
+NDNBOOST_PP_EXPAND(#) if (NDNBOOST_PP_SLOT(1) & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
 
-#   if ( BOOST_PP_SLOT(1) & (BOOST_FT_variadic) )
-BOOST_PP_EXPAND(#)   define BOOST_FT_ell ...
-BOOST_PP_EXPAND(#)   define BOOST_FT_nullary_param
+#   if ( NDNBOOST_PP_SLOT(1) & (NDNBOOST_FT_variadic) )
+NDNBOOST_PP_EXPAND(#)   define NDNBOOST_FT_ell ...
+NDNBOOST_PP_EXPAND(#)   define NDNBOOST_FT_nullary_param
 #   else
-BOOST_PP_EXPAND(#)   define BOOST_FT_ell
-BOOST_PP_EXPAND(#)   define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
+NDNBOOST_PP_EXPAND(#)   define NDNBOOST_FT_ell
+NDNBOOST_PP_EXPAND(#)   define NDNBOOST_FT_nullary_param NDNBOOST_FT_NULLARY_PARAM
 #   endif
 
-#   if !( BOOST_PP_SLOT(1) & (BOOST_FT_volatile) )
-#     if !( BOOST_PP_SLOT(1) & (BOOST_FT_const) )
-BOOST_PP_EXPAND(#)   define BOOST_FT_cv 
+#   if !( NDNBOOST_PP_SLOT(1) & (NDNBOOST_FT_volatile) )
+#     if !( NDNBOOST_PP_SLOT(1) & (NDNBOOST_FT_const) )
+NDNBOOST_PP_EXPAND(#)   define NDNBOOST_FT_cv 
 #     else
-BOOST_PP_EXPAND(#)   define BOOST_FT_cv const
+NDNBOOST_PP_EXPAND(#)   define NDNBOOST_FT_cv const
 #     endif
 #   else
-#     if !( BOOST_PP_SLOT(1) & (BOOST_FT_const) )
-BOOST_PP_EXPAND(#)   define BOOST_FT_cv volatile
+#     if !( NDNBOOST_PP_SLOT(1) & (NDNBOOST_FT_const) )
+NDNBOOST_PP_EXPAND(#)   define NDNBOOST_FT_cv volatile
 #     else
-BOOST_PP_EXPAND(#)   define BOOST_FT_cv const volatile
+NDNBOOST_PP_EXPAND(#)   define NDNBOOST_FT_cv const volatile
 #     endif
 #   endif
-BOOST_PP_EXPAND(#)   define BOOST_FT_flags BOOST_PP_SLOT(1)
-BOOST_PP_EXPAND(#)   include BOOST_FT_variate_file
+NDNBOOST_PP_EXPAND(#)   define NDNBOOST_FT_flags NDNBOOST_PP_SLOT(1)
+NDNBOOST_PP_EXPAND(#)   include NDNBOOST_FT_variate_file
 
-BOOST_PP_EXPAND(#)   undef BOOST_FT_cv
-BOOST_PP_EXPAND(#)   undef BOOST_FT_ell
-BOOST_PP_EXPAND(#)   undef BOOST_FT_nullary_param
-BOOST_PP_EXPAND(#)   undef BOOST_FT_flags
-BOOST_PP_EXPAND(#) endif
-BOOST_PP_EXPAND(#) endif
+NDNBOOST_PP_EXPAND(#)   undef NDNBOOST_FT_cv
+NDNBOOST_PP_EXPAND(#)   undef NDNBOOST_FT_ell
+NDNBOOST_PP_EXPAND(#)   undef NDNBOOST_FT_nullary_param
+NDNBOOST_PP_EXPAND(#)   undef NDNBOOST_FT_flags
+NDNBOOST_PP_EXPAND(#) endif
+NDNBOOST_PP_EXPAND(#) endif
 #endif
 
diff --git a/include/ndnboost/function_types/detail/pp_variate_loop/preprocessed.hpp b/include/ndnboost/function_types/detail/pp_variate_loop/preprocessed.hpp
index 7e7c4f9..83cc0c6 100644
--- a/include/ndnboost/function_types/detail/pp_variate_loop/preprocessed.hpp
+++ b/include/ndnboost/function_types/detail/pp_variate_loop/preprocessed.hpp
@@ -7,277 +7,277 @@
 //------------------------------------------------------------------------------
 
 // this file has been generated from the master.hpp file in the same directory
-# define BOOST_FT_mfp 0
-# define BOOST_FT_syntax BOOST_FT_type_function
-# if ! ! (4 & (BOOST_FT_variations))
-# if (519 & (BOOST_FT_cond)) == (BOOST_FT_cond)
-# define BOOST_FT_ell
-# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
-# define BOOST_FT_cv 
-# define BOOST_FT_flags 519
-# include BOOST_FT_variate_file
-# undef BOOST_FT_cv
-# undef BOOST_FT_ell
-# undef BOOST_FT_nullary_param
-# undef BOOST_FT_flags
+# define NDNBOOST_FT_mfp 0
+# define NDNBOOST_FT_syntax NDNBOOST_FT_type_function
+# if ! ! (4 & (NDNBOOST_FT_variations))
+# if (519 & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
+# define NDNBOOST_FT_ell
+# define NDNBOOST_FT_nullary_param NDNBOOST_FT_NULLARY_PARAM
+# define NDNBOOST_FT_cv 
+# define NDNBOOST_FT_flags 519
+# include NDNBOOST_FT_variate_file
+# undef NDNBOOST_FT_cv
+# undef NDNBOOST_FT_ell
+# undef NDNBOOST_FT_nullary_param
+# undef NDNBOOST_FT_flags
 # endif
 # endif
-# if ! ! (4 & (BOOST_FT_variations))
-# if (263 & (BOOST_FT_cond)) == (BOOST_FT_cond)
-# define BOOST_FT_ell ...
-# define BOOST_FT_nullary_param
-# define BOOST_FT_cv 
-# define BOOST_FT_flags 263
-# include BOOST_FT_variate_file
-# undef BOOST_FT_cv
-# undef BOOST_FT_ell
-# undef BOOST_FT_nullary_param
-# undef BOOST_FT_flags
+# if ! ! (4 & (NDNBOOST_FT_variations))
+# if (263 & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
+# define NDNBOOST_FT_ell ...
+# define NDNBOOST_FT_nullary_param
+# define NDNBOOST_FT_cv 
+# define NDNBOOST_FT_flags 263
+# include NDNBOOST_FT_variate_file
+# undef NDNBOOST_FT_cv
+# undef NDNBOOST_FT_ell
+# undef NDNBOOST_FT_nullary_param
+# undef NDNBOOST_FT_flags
 # endif
 # endif
-# if !BOOST_FT_NO_CV_FUNC_SUPPORT
-# if ! ! (4 & (BOOST_FT_variations))
-# if (1543 & (BOOST_FT_cond)) == (BOOST_FT_cond)
-# define BOOST_FT_ell
-# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
-# define BOOST_FT_cv const
-# define BOOST_FT_flags 1543
-# include BOOST_FT_variate_file
-# undef BOOST_FT_cv
-# undef BOOST_FT_ell
-# undef BOOST_FT_nullary_param
-# undef BOOST_FT_flags
+# if !NDNBOOST_FT_NO_CV_FUNC_SUPPORT
+# if ! ! (4 & (NDNBOOST_FT_variations))
+# if (1543 & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
+# define NDNBOOST_FT_ell
+# define NDNBOOST_FT_nullary_param NDNBOOST_FT_NULLARY_PARAM
+# define NDNBOOST_FT_cv const
+# define NDNBOOST_FT_flags 1543
+# include NDNBOOST_FT_variate_file
+# undef NDNBOOST_FT_cv
+# undef NDNBOOST_FT_ell
+# undef NDNBOOST_FT_nullary_param
+# undef NDNBOOST_FT_flags
 # endif
 # endif
-# if ! ! (4 & (BOOST_FT_variations))
-# if (1287 & (BOOST_FT_cond)) == (BOOST_FT_cond)
-# define BOOST_FT_ell ...
-# define BOOST_FT_nullary_param
-# define BOOST_FT_cv const
-# define BOOST_FT_flags 1287
-# include BOOST_FT_variate_file
-# undef BOOST_FT_cv
-# undef BOOST_FT_ell
-# undef BOOST_FT_nullary_param
-# undef BOOST_FT_flags
+# if ! ! (4 & (NDNBOOST_FT_variations))
+# if (1287 & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
+# define NDNBOOST_FT_ell ...
+# define NDNBOOST_FT_nullary_param
+# define NDNBOOST_FT_cv const
+# define NDNBOOST_FT_flags 1287
+# include NDNBOOST_FT_variate_file
+# undef NDNBOOST_FT_cv
+# undef NDNBOOST_FT_ell
+# undef NDNBOOST_FT_nullary_param
+# undef NDNBOOST_FT_flags
 # endif
 # endif
-# if ! ! (4 & (BOOST_FT_variations))
-# if (2567 & (BOOST_FT_cond)) == (BOOST_FT_cond)
-# define BOOST_FT_ell
-# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
-# define BOOST_FT_cv volatile
-# define BOOST_FT_flags 2567
-# include BOOST_FT_variate_file
-# undef BOOST_FT_cv
-# undef BOOST_FT_ell
-# undef BOOST_FT_nullary_param
-# undef BOOST_FT_flags
+# if ! ! (4 & (NDNBOOST_FT_variations))
+# if (2567 & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
+# define NDNBOOST_FT_ell
+# define NDNBOOST_FT_nullary_param NDNBOOST_FT_NULLARY_PARAM
+# define NDNBOOST_FT_cv volatile
+# define NDNBOOST_FT_flags 2567
+# include NDNBOOST_FT_variate_file
+# undef NDNBOOST_FT_cv
+# undef NDNBOOST_FT_ell
+# undef NDNBOOST_FT_nullary_param
+# undef NDNBOOST_FT_flags
 # endif
 # endif
-# if ! ! (4 & (BOOST_FT_variations))
-# if (2311 & (BOOST_FT_cond)) == (BOOST_FT_cond)
-# define BOOST_FT_ell ...
-# define BOOST_FT_nullary_param
-# define BOOST_FT_cv volatile
-# define BOOST_FT_flags 2311
-# include BOOST_FT_variate_file
-# undef BOOST_FT_cv
-# undef BOOST_FT_ell
-# undef BOOST_FT_nullary_param
-# undef BOOST_FT_flags
+# if ! ! (4 & (NDNBOOST_FT_variations))
+# if (2311 & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
+# define NDNBOOST_FT_ell ...
+# define NDNBOOST_FT_nullary_param
+# define NDNBOOST_FT_cv volatile
+# define NDNBOOST_FT_flags 2311
+# include NDNBOOST_FT_variate_file
+# undef NDNBOOST_FT_cv
+# undef NDNBOOST_FT_ell
+# undef NDNBOOST_FT_nullary_param
+# undef NDNBOOST_FT_flags
 # endif
 # endif
-# if ! ! (4 & (BOOST_FT_variations))
-# if (3591 & (BOOST_FT_cond)) == (BOOST_FT_cond)
-# define BOOST_FT_ell
-# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
-# define BOOST_FT_cv const volatile
-# define BOOST_FT_flags 3591
-# include BOOST_FT_variate_file
-# undef BOOST_FT_cv
-# undef BOOST_FT_ell
-# undef BOOST_FT_nullary_param
-# undef BOOST_FT_flags
+# if ! ! (4 & (NDNBOOST_FT_variations))
+# if (3591 & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
+# define NDNBOOST_FT_ell
+# define NDNBOOST_FT_nullary_param NDNBOOST_FT_NULLARY_PARAM
+# define NDNBOOST_FT_cv const volatile
+# define NDNBOOST_FT_flags 3591
+# include NDNBOOST_FT_variate_file
+# undef NDNBOOST_FT_cv
+# undef NDNBOOST_FT_ell
+# undef NDNBOOST_FT_nullary_param
+# undef NDNBOOST_FT_flags
 # endif
 # endif
-# if ! ! (4 & (BOOST_FT_variations))
-# if (3335 & (BOOST_FT_cond)) == (BOOST_FT_cond)
-# define BOOST_FT_ell ...
-# define BOOST_FT_nullary_param
-# define BOOST_FT_cv const volatile
-# define BOOST_FT_flags 3335
-# include BOOST_FT_variate_file
-# undef BOOST_FT_cv
-# undef BOOST_FT_ell
-# undef BOOST_FT_nullary_param
-# undef BOOST_FT_flags
+# if ! ! (4 & (NDNBOOST_FT_variations))
+# if (3335 & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
+# define NDNBOOST_FT_ell ...
+# define NDNBOOST_FT_nullary_param
+# define NDNBOOST_FT_cv const volatile
+# define NDNBOOST_FT_flags 3335
+# include NDNBOOST_FT_variate_file
+# undef NDNBOOST_FT_cv
+# undef NDNBOOST_FT_ell
+# undef NDNBOOST_FT_nullary_param
+# undef NDNBOOST_FT_flags
 # endif
 # endif
 # endif
-# undef BOOST_FT_syntax
-# define BOOST_FT_syntax BOOST_FT_type_function_pointer
-# if ! ! (8 & (BOOST_FT_variations))
-# if (523 & (BOOST_FT_cond)) == (BOOST_FT_cond)
-# define BOOST_FT_ell
-# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
-# define BOOST_FT_cv 
-# define BOOST_FT_flags 523
-# include BOOST_FT_variate_file
-# undef BOOST_FT_cv
-# undef BOOST_FT_ell
-# undef BOOST_FT_nullary_param
-# undef BOOST_FT_flags
+# undef NDNBOOST_FT_syntax
+# define NDNBOOST_FT_syntax NDNBOOST_FT_type_function_pointer
+# if ! ! (8 & (NDNBOOST_FT_variations))
+# if (523 & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
+# define NDNBOOST_FT_ell
+# define NDNBOOST_FT_nullary_param NDNBOOST_FT_NULLARY_PARAM
+# define NDNBOOST_FT_cv 
+# define NDNBOOST_FT_flags 523
+# include NDNBOOST_FT_variate_file
+# undef NDNBOOST_FT_cv
+# undef NDNBOOST_FT_ell
+# undef NDNBOOST_FT_nullary_param
+# undef NDNBOOST_FT_flags
 # endif
 # endif
-# if ! ! (8 & (BOOST_FT_variations))
-# if (267 & (BOOST_FT_cond)) == (BOOST_FT_cond)
-# define BOOST_FT_ell ...
-# define BOOST_FT_nullary_param
-# define BOOST_FT_cv 
-# define BOOST_FT_flags 267
-# include BOOST_FT_variate_file
-# undef BOOST_FT_cv
-# undef BOOST_FT_ell
-# undef BOOST_FT_nullary_param
-# undef BOOST_FT_flags
+# if ! ! (8 & (NDNBOOST_FT_variations))
+# if (267 & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
+# define NDNBOOST_FT_ell ...
+# define NDNBOOST_FT_nullary_param
+# define NDNBOOST_FT_cv 
+# define NDNBOOST_FT_flags 267
+# include NDNBOOST_FT_variate_file
+# undef NDNBOOST_FT_cv
+# undef NDNBOOST_FT_ell
+# undef NDNBOOST_FT_nullary_param
+# undef NDNBOOST_FT_flags
 # endif
 # endif
-# undef BOOST_FT_syntax
-# define BOOST_FT_syntax BOOST_FT_type_function_reference
-# if ! ! (16 & (BOOST_FT_variations))
-# if (531 & (BOOST_FT_cond)) == (BOOST_FT_cond)
-# define BOOST_FT_ell
-# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
-# define BOOST_FT_cv 
-# define BOOST_FT_flags 531
-# include BOOST_FT_variate_file
-# undef BOOST_FT_cv
-# undef BOOST_FT_ell
-# undef BOOST_FT_nullary_param
-# undef BOOST_FT_flags
+# undef NDNBOOST_FT_syntax
+# define NDNBOOST_FT_syntax NDNBOOST_FT_type_function_reference
+# if ! ! (16 & (NDNBOOST_FT_variations))
+# if (531 & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
+# define NDNBOOST_FT_ell
+# define NDNBOOST_FT_nullary_param NDNBOOST_FT_NULLARY_PARAM
+# define NDNBOOST_FT_cv 
+# define NDNBOOST_FT_flags 531
+# include NDNBOOST_FT_variate_file
+# undef NDNBOOST_FT_cv
+# undef NDNBOOST_FT_ell
+# undef NDNBOOST_FT_nullary_param
+# undef NDNBOOST_FT_flags
 # endif
 # endif
-# if ! ! (16 & (BOOST_FT_variations))
-# if (275 & (BOOST_FT_cond)) == (BOOST_FT_cond)
-# define BOOST_FT_ell ...
-# define BOOST_FT_nullary_param
-# define BOOST_FT_cv 
-# define BOOST_FT_flags 275
-# include BOOST_FT_variate_file
-# undef BOOST_FT_cv
-# undef BOOST_FT_ell
-# undef BOOST_FT_nullary_param
-# undef BOOST_FT_flags
+# if ! ! (16 & (NDNBOOST_FT_variations))
+# if (275 & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
+# define NDNBOOST_FT_ell ...
+# define NDNBOOST_FT_nullary_param
+# define NDNBOOST_FT_cv 
+# define NDNBOOST_FT_flags 275
+# include NDNBOOST_FT_variate_file
+# undef NDNBOOST_FT_cv
+# undef NDNBOOST_FT_ell
+# undef NDNBOOST_FT_nullary_param
+# undef NDNBOOST_FT_flags
 # endif
 # endif
-# undef BOOST_FT_syntax
-# undef BOOST_FT_mfp
-# define BOOST_FT_mfp 1
-# define BOOST_FT_syntax BOOST_FT_type_member_function_pointer
-# if ! ! (96 & (BOOST_FT_variations))
-# if (609 & (BOOST_FT_cond)) == (BOOST_FT_cond)
-# define BOOST_FT_ell
-# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
-# define BOOST_FT_cv 
-# define BOOST_FT_flags 609
-# include BOOST_FT_variate_file
-# undef BOOST_FT_cv
-# undef BOOST_FT_ell
-# undef BOOST_FT_nullary_param
-# undef BOOST_FT_flags
+# undef NDNBOOST_FT_syntax
+# undef NDNBOOST_FT_mfp
+# define NDNBOOST_FT_mfp 1
+# define NDNBOOST_FT_syntax NDNBOOST_FT_type_member_function_pointer
+# if ! ! (96 & (NDNBOOST_FT_variations))
+# if (609 & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
+# define NDNBOOST_FT_ell
+# define NDNBOOST_FT_nullary_param NDNBOOST_FT_NULLARY_PARAM
+# define NDNBOOST_FT_cv 
+# define NDNBOOST_FT_flags 609
+# include NDNBOOST_FT_variate_file
+# undef NDNBOOST_FT_cv
+# undef NDNBOOST_FT_ell
+# undef NDNBOOST_FT_nullary_param
+# undef NDNBOOST_FT_flags
 # endif
 # endif
-# if ! ! (96 & (BOOST_FT_variations))
-# if (353 & (BOOST_FT_cond)) == (BOOST_FT_cond)
-# define BOOST_FT_ell ...
-# define BOOST_FT_nullary_param
-# define BOOST_FT_cv 
-# define BOOST_FT_flags 353
-# include BOOST_FT_variate_file
-# undef BOOST_FT_cv
-# undef BOOST_FT_ell
-# undef BOOST_FT_nullary_param
-# undef BOOST_FT_flags
+# if ! ! (96 & (NDNBOOST_FT_variations))
+# if (353 & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
+# define NDNBOOST_FT_ell ...
+# define NDNBOOST_FT_nullary_param
+# define NDNBOOST_FT_cv 
+# define NDNBOOST_FT_flags 353
+# include NDNBOOST_FT_variate_file
+# undef NDNBOOST_FT_cv
+# undef NDNBOOST_FT_ell
+# undef NDNBOOST_FT_nullary_param
+# undef NDNBOOST_FT_flags
 # endif
 # endif
-# if ! ! (96 & (BOOST_FT_variations))
-# if (1633 & (BOOST_FT_cond)) == (BOOST_FT_cond)
-# define BOOST_FT_ell
-# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
-# define BOOST_FT_cv const
-# define BOOST_FT_flags 1633
-# include BOOST_FT_variate_file
-# undef BOOST_FT_cv
-# undef BOOST_FT_ell
-# undef BOOST_FT_nullary_param
-# undef BOOST_FT_flags
+# if ! ! (96 & (NDNBOOST_FT_variations))
+# if (1633 & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
+# define NDNBOOST_FT_ell
+# define NDNBOOST_FT_nullary_param NDNBOOST_FT_NULLARY_PARAM
+# define NDNBOOST_FT_cv const
+# define NDNBOOST_FT_flags 1633
+# include NDNBOOST_FT_variate_file
+# undef NDNBOOST_FT_cv
+# undef NDNBOOST_FT_ell
+# undef NDNBOOST_FT_nullary_param
+# undef NDNBOOST_FT_flags
 # endif
 # endif
-# if ! ! (96 & (BOOST_FT_variations))
-# if (1377 & (BOOST_FT_cond)) == (BOOST_FT_cond)
-# define BOOST_FT_ell ...
-# define BOOST_FT_nullary_param
-# define BOOST_FT_cv const
-# define BOOST_FT_flags 1377
-# include BOOST_FT_variate_file
-# undef BOOST_FT_cv
-# undef BOOST_FT_ell
-# undef BOOST_FT_nullary_param
-# undef BOOST_FT_flags
+# if ! ! (96 & (NDNBOOST_FT_variations))
+# if (1377 & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
+# define NDNBOOST_FT_ell ...
+# define NDNBOOST_FT_nullary_param
+# define NDNBOOST_FT_cv const
+# define NDNBOOST_FT_flags 1377
+# include NDNBOOST_FT_variate_file
+# undef NDNBOOST_FT_cv
+# undef NDNBOOST_FT_ell
+# undef NDNBOOST_FT_nullary_param
+# undef NDNBOOST_FT_flags
 # endif
 # endif
-# if ! ! (96 & (BOOST_FT_variations))
-# if (2657 & (BOOST_FT_cond)) == (BOOST_FT_cond)
-# define BOOST_FT_ell
-# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
-# define BOOST_FT_cv volatile
-# define BOOST_FT_flags 2657
-# include BOOST_FT_variate_file
-# undef BOOST_FT_cv
-# undef BOOST_FT_ell
-# undef BOOST_FT_nullary_param
-# undef BOOST_FT_flags
+# if ! ! (96 & (NDNBOOST_FT_variations))
+# if (2657 & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
+# define NDNBOOST_FT_ell
+# define NDNBOOST_FT_nullary_param NDNBOOST_FT_NULLARY_PARAM
+# define NDNBOOST_FT_cv volatile
+# define NDNBOOST_FT_flags 2657
+# include NDNBOOST_FT_variate_file
+# undef NDNBOOST_FT_cv
+# undef NDNBOOST_FT_ell
+# undef NDNBOOST_FT_nullary_param
+# undef NDNBOOST_FT_flags
 # endif
 # endif
-# if ! ! (96 & (BOOST_FT_variations))
-# if (2401 & (BOOST_FT_cond)) == (BOOST_FT_cond)
-# define BOOST_FT_ell ...
-# define BOOST_FT_nullary_param
-# define BOOST_FT_cv volatile
-# define BOOST_FT_flags 2401
-# include BOOST_FT_variate_file
-# undef BOOST_FT_cv
-# undef BOOST_FT_ell
-# undef BOOST_FT_nullary_param
-# undef BOOST_FT_flags
+# if ! ! (96 & (NDNBOOST_FT_variations))
+# if (2401 & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
+# define NDNBOOST_FT_ell ...
+# define NDNBOOST_FT_nullary_param
+# define NDNBOOST_FT_cv volatile
+# define NDNBOOST_FT_flags 2401
+# include NDNBOOST_FT_variate_file
+# undef NDNBOOST_FT_cv
+# undef NDNBOOST_FT_ell
+# undef NDNBOOST_FT_nullary_param
+# undef NDNBOOST_FT_flags
 # endif
 # endif
-# if ! ! (96 & (BOOST_FT_variations))
-# if (3681 & (BOOST_FT_cond)) == (BOOST_FT_cond)
-# define BOOST_FT_ell
-# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
-# define BOOST_FT_cv const volatile
-# define BOOST_FT_flags 3681
-# include BOOST_FT_variate_file
-# undef BOOST_FT_cv
-# undef BOOST_FT_ell
-# undef BOOST_FT_nullary_param
-# undef BOOST_FT_flags
+# if ! ! (96 & (NDNBOOST_FT_variations))
+# if (3681 & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
+# define NDNBOOST_FT_ell
+# define NDNBOOST_FT_nullary_param NDNBOOST_FT_NULLARY_PARAM
+# define NDNBOOST_FT_cv const volatile
+# define NDNBOOST_FT_flags 3681
+# include NDNBOOST_FT_variate_file
+# undef NDNBOOST_FT_cv
+# undef NDNBOOST_FT_ell
+# undef NDNBOOST_FT_nullary_param
+# undef NDNBOOST_FT_flags
 # endif
 # endif
-# if ! ! (96 & (BOOST_FT_variations))
-# if (3425 & (BOOST_FT_cond)) == (BOOST_FT_cond)
-# define BOOST_FT_ell ...
-# define BOOST_FT_nullary_param
-# define BOOST_FT_cv const volatile
-# define BOOST_FT_flags 3425
-# include BOOST_FT_variate_file
-# undef BOOST_FT_cv
-# undef BOOST_FT_ell
-# undef BOOST_FT_nullary_param
-# undef BOOST_FT_flags
+# if ! ! (96 & (NDNBOOST_FT_variations))
+# if (3425 & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
+# define NDNBOOST_FT_ell ...
+# define NDNBOOST_FT_nullary_param
+# define NDNBOOST_FT_cv const volatile
+# define NDNBOOST_FT_flags 3425
+# include NDNBOOST_FT_variate_file
+# undef NDNBOOST_FT_cv
+# undef NDNBOOST_FT_ell
+# undef NDNBOOST_FT_nullary_param
+# undef NDNBOOST_FT_flags
 # endif
 # endif
-# undef BOOST_FT_syntax
-# undef BOOST_FT_mfp
+# undef NDNBOOST_FT_syntax
+# undef NDNBOOST_FT_mfp
diff --git a/include/ndnboost/function_types/detail/retag_default_cc.hpp b/include/ndnboost/function_types/detail/retag_default_cc.hpp
index 39dcb02..a5549cc 100644
--- a/include/ndnboost/function_types/detail/retag_default_cc.hpp
+++ b/include/ndnboost/function_types/detail/retag_default_cc.hpp
@@ -6,14 +6,14 @@
 
 //------------------------------------------------------------------------------
 
-#ifndef BOOST_FT_DETAIL_RETAG_DEFAULT_CC_HPP_INCLUDED
-#define BOOST_FT_DETAIL_RETAG_DEFAULT_CC_HPP_INCLUDED
+#ifndef NDNBOOST_FT_DETAIL_RETAG_DEFAULT_CC_HPP_INCLUDED
+#define NDNBOOST_FT_DETAIL_RETAG_DEFAULT_CC_HPP_INCLUDED
 
 #include <ndnboost/mpl/bitand.hpp>
 
 #include <ndnboost/function_types/components.hpp>
 
-#if defined(BOOST_FT_PREPROCESSING_MODE)
+#if defined(NDNBOOST_FT_PREPROCESSING_MODE)
 #   include <ndnboost/function_types/detail/pp_retag_default_cc/master.hpp>
 #else
 #   include <ndnboost/function_types/detail/pp_retag_default_cc/preprocessed.hpp>
diff --git a/include/ndnboost/function_types/detail/synthesize.hpp b/include/ndnboost/function_types/detail/synthesize.hpp
index 660a522..aba6ff3 100644
--- a/include/ndnboost/function_types/detail/synthesize.hpp
+++ b/include/ndnboost/function_types/detail/synthesize.hpp
@@ -6,8 +6,8 @@
 
 //------------------------------------------------------------------------------
 
-#ifndef BOOST_FT_DETAIL_SYNTHESIZE_HPP_INCLUDED
-#define BOOST_FT_DETAIL_SYNTHESIZE_HPP_INCLUDED
+#ifndef NDNBOOST_FT_DETAIL_SYNTHESIZE_HPP_INCLUDED
+#define NDNBOOST_FT_DETAIL_SYNTHESIZE_HPP_INCLUDED
 
 #include <cstddef>
 
@@ -69,8 +69,8 @@
   typedef R C::* type;
 };
 
-#define BOOST_FT_variations BOOST_FT_function|BOOST_FT_member_pointer
-#define BOOST_FT_al_path ndnboost/function_types/detail/synthesize_impl
+#define NDNBOOST_FT_variations NDNBOOST_FT_function|NDNBOOST_FT_member_pointer
+#define NDNBOOST_FT_al_path ndnboost/function_types/detail/synthesize_impl
 #include <ndnboost/function_types/detail/pp_loop.hpp>
 
 } } } // namespace ::ndnboost::function_types::detail
diff --git a/include/ndnboost/function_types/detail/synthesize_impl/arity10_0.hpp b/include/ndnboost/function_types/detail/synthesize_impl/arity10_0.hpp
index ad22e50..54db3be 100644
--- a/include/ndnboost/function_types/detail/synthesize_impl/arity10_0.hpp
+++ b/include/ndnboost/function_types/detail/synthesize_impl/arity10_0.hpp
@@ -8,44 +8,44 @@
 
 // no include guards, this file is intended for multiple inclusion
 
-// input:  BOOST_FT_syntax     type macro to use
-// input:  BOOST_FT_cc         empty or cc specifier 
-// input:  BOOST_FT_ell        empty or "..."
-// input:  BOOST_FT_cv         empty or cv qualifiers
-// input:  BOOST_FT_flags      single decimal integer encoding the flags
-// output: BOOST_FT_n          number of component types (arity+1)
-// output: BOOST_FT_arity      current arity
-// output: BOOST_FT_type       macro that expands to the type
-// output: BOOST_FT_tplargs(p) template arguments with given prefix
-// output: BOOST_FT_params(p)  parameters with given prefix
+// input:  NDNBOOST_FT_syntax     type macro to use
+// input:  NDNBOOST_FT_cc         empty or cc specifier 
+// input:  NDNBOOST_FT_ell        empty or "..."
+// input:  NDNBOOST_FT_cv         empty or cv qualifiers
+// input:  NDNBOOST_FT_flags      single decimal integer encoding the flags
+// output: NDNBOOST_FT_n          number of component types (arity+1)
+// output: NDNBOOST_FT_arity      current arity
+// output: NDNBOOST_FT_type       macro that expands to the type
+// output: NDNBOOST_FT_tplargs(p) template arguments with given prefix
+// output: NDNBOOST_FT_params(p)  parameters with given prefix
 
-# define BOOST_FT_make_type(flags,cc,arity) BOOST_FT_make_type_impl(flags,cc,arity)
-# define BOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity
+# define NDNBOOST_FT_make_type(flags,cc,arity) NDNBOOST_FT_make_type_impl(flags,cc,arity)
+# define NDNBOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity
 template< typename R >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,0)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,0)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (BOOST_FT_nullary_param BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (NDNBOOST_FT_nullary_param NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 1 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 1 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
 private:
 typedef typename mpl::begin<S> ::type iter_0;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,0) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,0) 
 < typename mpl::deref< iter_0 > ::type 
 > ::type type;
 };
 };
 template< typename R , typename T0 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,1)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,1)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 2 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 2 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -53,19 +53,19 @@
 typedef typename mpl::begin<S> ::type iter_0;
 typedef typename mpl::next< iter_0 > ::type iter_1;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,1) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,1) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 > ::type type;
 };
 };
 template< typename R , typename T0 , typename T1 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,2)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,2)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 3 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 3 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -74,7 +74,7 @@
 typedef typename mpl::next< iter_0 > ::type iter_1;
 typedef typename mpl::next< iter_1 > ::type iter_2;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,2) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,2) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -82,12 +82,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,3)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,3)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 4 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 4 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -97,7 +97,7 @@
 typedef typename mpl::next< iter_1 > ::type iter_2;
 typedef typename mpl::next< iter_2 > ::type iter_3;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,3) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,3) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -106,12 +106,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,4)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,4)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 5 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 5 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -122,7 +122,7 @@
 typedef typename mpl::next< iter_2 > ::type iter_3;
 typedef typename mpl::next< iter_3 > ::type iter_4;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,4) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,4) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -132,12 +132,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,5)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,5)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 6 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 6 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -149,7 +149,7 @@
 typedef typename mpl::next< iter_3 > ::type iter_4;
 typedef typename mpl::next< iter_4 > ::type iter_5;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,5) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,5) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -160,12 +160,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,6)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,6)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 7 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 7 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -178,7 +178,7 @@
 typedef typename mpl::next< iter_4 > ::type iter_5;
 typedef typename mpl::next< iter_5 > ::type iter_6;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,6) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,6) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -190,12 +190,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,7)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,7)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 8 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 8 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -209,7 +209,7 @@
 typedef typename mpl::next< iter_5 > ::type iter_6;
 typedef typename mpl::next< iter_6 > ::type iter_7;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,7) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,7) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -222,12 +222,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,8)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,8)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 9 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 9 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -242,7 +242,7 @@
 typedef typename mpl::next< iter_6 > ::type iter_7;
 typedef typename mpl::next< iter_7 > ::type iter_8;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,8) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,8) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -256,12 +256,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,9)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,9)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 10 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 10 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -277,7 +277,7 @@
 typedef typename mpl::next< iter_7 > ::type iter_8;
 typedef typename mpl::next< iter_8 > ::type iter_9;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,9) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,9) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -292,12 +292,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,10)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,10)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 11 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 11 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -314,7 +314,7 @@
 typedef typename mpl::next< iter_8 > ::type iter_9;
 typedef typename mpl::next< iter_9 > ::type iter_10;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,10) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,10) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -329,6 +329,6 @@
 > ::type type;
 };
 };
-# undef BOOST_FT_make_type
-# undef BOOST_FT_make_type_impl
+# undef NDNBOOST_FT_make_type
+# undef NDNBOOST_FT_make_type_impl
 
diff --git a/include/ndnboost/function_types/detail/synthesize_impl/arity10_1.hpp b/include/ndnboost/function_types/detail/synthesize_impl/arity10_1.hpp
index bbd5963..8ebb2c8 100644
--- a/include/ndnboost/function_types/detail/synthesize_impl/arity10_1.hpp
+++ b/include/ndnboost/function_types/detail/synthesize_impl/arity10_1.hpp
@@ -8,26 +8,26 @@
 
 // no include guards, this file is intended for multiple inclusion
 
-// input:  BOOST_FT_syntax     type macro to use
-// input:  BOOST_FT_cc         empty or cc specifier 
-// input:  BOOST_FT_ell        empty or "..."
-// input:  BOOST_FT_cv         empty or cv qualifiers
-// input:  BOOST_FT_flags      single decimal integer encoding the flags
-// output: BOOST_FT_n          number of component types (arity+1)
-// output: BOOST_FT_arity      current arity
-// output: BOOST_FT_type       macro that expands to the type
-// output: BOOST_FT_tplargs(p) template arguments with given prefix
-// output: BOOST_FT_params(p)  parameters with given prefix
+// input:  NDNBOOST_FT_syntax     type macro to use
+// input:  NDNBOOST_FT_cc         empty or cc specifier 
+// input:  NDNBOOST_FT_ell        empty or "..."
+// input:  NDNBOOST_FT_cv         empty or cv qualifiers
+// input:  NDNBOOST_FT_flags      single decimal integer encoding the flags
+// output: NDNBOOST_FT_n          number of component types (arity+1)
+// output: NDNBOOST_FT_arity      current arity
+// output: NDNBOOST_FT_type       macro that expands to the type
+// output: NDNBOOST_FT_tplargs(p) template arguments with given prefix
+// output: NDNBOOST_FT_params(p)  parameters with given prefix
 
-# define BOOST_FT_make_type(flags,cc,arity) BOOST_FT_make_type_impl(flags,cc,arity)
-# define BOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity
+# define NDNBOOST_FT_make_type(flags,cc,arity) NDNBOOST_FT_make_type_impl(flags,cc,arity)
+# define NDNBOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity
 template< typename R , typename T0 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,1)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,1)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) ( BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) ( NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 2 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 2 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -35,7 +35,7 @@
 typedef typename mpl::begin<S> ::type iter_0;
 typedef typename mpl::next< iter_0 > ::type iter_1;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,1) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,1) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -43,12 +43,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,2)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,2)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 3 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 3 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -57,7 +57,7 @@
 typedef typename mpl::next< iter_0 > ::type iter_1;
 typedef typename mpl::next< iter_1 > ::type iter_2;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,2) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,2) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -66,12 +66,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,3)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,3)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 4 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 4 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -81,7 +81,7 @@
 typedef typename mpl::next< iter_1 > ::type iter_2;
 typedef typename mpl::next< iter_2 > ::type iter_3;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,3) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,3) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -91,12 +91,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,4)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,4)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 5 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 5 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -107,7 +107,7 @@
 typedef typename mpl::next< iter_2 > ::type iter_3;
 typedef typename mpl::next< iter_3 > ::type iter_4;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,4) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,4) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -118,12 +118,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,5)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,5)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 6 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 6 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -135,7 +135,7 @@
 typedef typename mpl::next< iter_3 > ::type iter_4;
 typedef typename mpl::next< iter_4 > ::type iter_5;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,5) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,5) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -147,12 +147,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,6)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,6)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 7 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 7 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -165,7 +165,7 @@
 typedef typename mpl::next< iter_4 > ::type iter_5;
 typedef typename mpl::next< iter_5 > ::type iter_6;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,6) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,6) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -178,12 +178,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,7)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,7)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 8 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 8 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -197,7 +197,7 @@
 typedef typename mpl::next< iter_5 > ::type iter_6;
 typedef typename mpl::next< iter_6 > ::type iter_7;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,7) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,7) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -211,12 +211,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,8)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,8)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 9 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 9 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -231,7 +231,7 @@
 typedef typename mpl::next< iter_6 > ::type iter_7;
 typedef typename mpl::next< iter_7 > ::type iter_8;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,8) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,8) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -246,12 +246,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,9)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,9)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 10 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 10 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -267,7 +267,7 @@
 typedef typename mpl::next< iter_7 > ::type iter_8;
 typedef typename mpl::next< iter_8 > ::type iter_9;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,9) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,9) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -283,12 +283,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,10)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,10)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 11 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 11 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -305,7 +305,7 @@
 typedef typename mpl::next< iter_8 > ::type iter_9;
 typedef typename mpl::next< iter_9 > ::type iter_10;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,10) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,10) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -321,6 +321,6 @@
 > ::type type;
 };
 };
-# undef BOOST_FT_make_type
-# undef BOOST_FT_make_type_impl
+# undef NDNBOOST_FT_make_type
+# undef NDNBOOST_FT_make_type_impl
 
diff --git a/include/ndnboost/function_types/detail/synthesize_impl/arity20_0.hpp b/include/ndnboost/function_types/detail/synthesize_impl/arity20_0.hpp
index 86988d7..0ad2a0f 100644
--- a/include/ndnboost/function_types/detail/synthesize_impl/arity20_0.hpp
+++ b/include/ndnboost/function_types/detail/synthesize_impl/arity20_0.hpp
@@ -8,27 +8,27 @@
 
 // no include guards, this file is intended for multiple inclusion
 
-// input:  BOOST_FT_syntax     type macro to use
-// input:  BOOST_FT_cc         empty or cc specifier 
-// input:  BOOST_FT_ell        empty or "..."
-// input:  BOOST_FT_cv         empty or cv qualifiers
-// input:  BOOST_FT_flags      single decimal integer encoding the flags
-// output: BOOST_FT_n          number of component types (arity+1)
-// output: BOOST_FT_arity      current arity
-// output: BOOST_FT_type       macro that expands to the type
-// output: BOOST_FT_tplargs(p) template arguments with given prefix
-// output: BOOST_FT_params(p)  parameters with given prefix
+// input:  NDNBOOST_FT_syntax     type macro to use
+// input:  NDNBOOST_FT_cc         empty or cc specifier 
+// input:  NDNBOOST_FT_ell        empty or "..."
+// input:  NDNBOOST_FT_cv         empty or cv qualifiers
+// input:  NDNBOOST_FT_flags      single decimal integer encoding the flags
+// output: NDNBOOST_FT_n          number of component types (arity+1)
+// output: NDNBOOST_FT_arity      current arity
+// output: NDNBOOST_FT_type       macro that expands to the type
+// output: NDNBOOST_FT_tplargs(p) template arguments with given prefix
+// output: NDNBOOST_FT_params(p)  parameters with given prefix
 
 # include <ndnboost/function_types/detail/synthesize_impl/arity10_0.hpp>
-# define BOOST_FT_make_type(flags,cc,arity) BOOST_FT_make_type_impl(flags,cc,arity)
-# define BOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity
+# define NDNBOOST_FT_make_type(flags,cc,arity) NDNBOOST_FT_make_type_impl(flags,cc,arity)
+# define NDNBOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,11)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,11)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 12 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 12 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -46,7 +46,7 @@
 typedef typename mpl::next< iter_9 > ::type iter_10;
 typedef typename mpl::next< iter_10 > ::type iter_11;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,11) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,11) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -63,12 +63,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,12)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,12)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 13 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 13 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -87,7 +87,7 @@
 typedef typename mpl::next< iter_10 > ::type iter_11;
 typedef typename mpl::next< iter_11 > ::type iter_12;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,12) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,12) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -105,12 +105,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,13)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,13)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 14 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 14 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -130,7 +130,7 @@
 typedef typename mpl::next< iter_11 > ::type iter_12;
 typedef typename mpl::next< iter_12 > ::type iter_13;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,13) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,13) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -149,12 +149,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,14)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,14)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 15 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 15 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -175,7 +175,7 @@
 typedef typename mpl::next< iter_12 > ::type iter_13;
 typedef typename mpl::next< iter_13 > ::type iter_14;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,14) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,14) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -195,12 +195,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,15)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,15)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 16 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 16 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -222,7 +222,7 @@
 typedef typename mpl::next< iter_13 > ::type iter_14;
 typedef typename mpl::next< iter_14 > ::type iter_15;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,15) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,15) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -243,12 +243,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,16)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,16)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 17 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 17 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -271,7 +271,7 @@
 typedef typename mpl::next< iter_14 > ::type iter_15;
 typedef typename mpl::next< iter_15 > ::type iter_16;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,16) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,16) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -293,12 +293,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,17)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,17)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 18 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 18 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -322,7 +322,7 @@
 typedef typename mpl::next< iter_15 > ::type iter_16;
 typedef typename mpl::next< iter_16 > ::type iter_17;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,17) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,17) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -345,12 +345,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,18)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,18)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 19 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 19 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -375,7 +375,7 @@
 typedef typename mpl::next< iter_16 > ::type iter_17;
 typedef typename mpl::next< iter_17 > ::type iter_18;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,18) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,18) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -399,12 +399,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,19)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,19)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 20 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 20 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -430,7 +430,7 @@
 typedef typename mpl::next< iter_17 > ::type iter_18;
 typedef typename mpl::next< iter_18 > ::type iter_19;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,19) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,19) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -455,12 +455,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,20)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,20)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 21 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 21 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -487,7 +487,7 @@
 typedef typename mpl::next< iter_18 > ::type iter_19;
 typedef typename mpl::next< iter_19 > ::type iter_20;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,20) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,20) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -512,6 +512,6 @@
 > ::type type;
 };
 };
-# undef BOOST_FT_make_type
-# undef BOOST_FT_make_type_impl
+# undef NDNBOOST_FT_make_type
+# undef NDNBOOST_FT_make_type_impl
 
diff --git a/include/ndnboost/function_types/detail/synthesize_impl/arity20_1.hpp b/include/ndnboost/function_types/detail/synthesize_impl/arity20_1.hpp
index f1e6645..9776c83 100644
--- a/include/ndnboost/function_types/detail/synthesize_impl/arity20_1.hpp
+++ b/include/ndnboost/function_types/detail/synthesize_impl/arity20_1.hpp
@@ -8,27 +8,27 @@
 
 // no include guards, this file is intended for multiple inclusion
 
-// input:  BOOST_FT_syntax     type macro to use
-// input:  BOOST_FT_cc         empty or cc specifier 
-// input:  BOOST_FT_ell        empty or "..."
-// input:  BOOST_FT_cv         empty or cv qualifiers
-// input:  BOOST_FT_flags      single decimal integer encoding the flags
-// output: BOOST_FT_n          number of component types (arity+1)
-// output: BOOST_FT_arity      current arity
-// output: BOOST_FT_type       macro that expands to the type
-// output: BOOST_FT_tplargs(p) template arguments with given prefix
-// output: BOOST_FT_params(p)  parameters with given prefix
+// input:  NDNBOOST_FT_syntax     type macro to use
+// input:  NDNBOOST_FT_cc         empty or cc specifier 
+// input:  NDNBOOST_FT_ell        empty or "..."
+// input:  NDNBOOST_FT_cv         empty or cv qualifiers
+// input:  NDNBOOST_FT_flags      single decimal integer encoding the flags
+// output: NDNBOOST_FT_n          number of component types (arity+1)
+// output: NDNBOOST_FT_arity      current arity
+// output: NDNBOOST_FT_type       macro that expands to the type
+// output: NDNBOOST_FT_tplargs(p) template arguments with given prefix
+// output: NDNBOOST_FT_params(p)  parameters with given prefix
 
 # include <ndnboost/function_types/detail/synthesize_impl/arity10_1.hpp>
-# define BOOST_FT_make_type(flags,cc,arity) BOOST_FT_make_type_impl(flags,cc,arity)
-# define BOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity
+# define NDNBOOST_FT_make_type(flags,cc,arity) NDNBOOST_FT_make_type_impl(flags,cc,arity)
+# define NDNBOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,11)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,11)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 12 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 12 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -46,7 +46,7 @@
 typedef typename mpl::next< iter_9 > ::type iter_10;
 typedef typename mpl::next< iter_10 > ::type iter_11;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,11) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,11) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -64,12 +64,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,12)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,12)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 13 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 13 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -88,7 +88,7 @@
 typedef typename mpl::next< iter_10 > ::type iter_11;
 typedef typename mpl::next< iter_11 > ::type iter_12;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,12) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,12) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -107,12 +107,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,13)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,13)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 14 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 14 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -132,7 +132,7 @@
 typedef typename mpl::next< iter_11 > ::type iter_12;
 typedef typename mpl::next< iter_12 > ::type iter_13;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,13) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,13) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -152,12 +152,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,14)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,14)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 15 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 15 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -178,7 +178,7 @@
 typedef typename mpl::next< iter_12 > ::type iter_13;
 typedef typename mpl::next< iter_13 > ::type iter_14;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,14) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,14) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -199,12 +199,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,15)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,15)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 16 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 16 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -226,7 +226,7 @@
 typedef typename mpl::next< iter_13 > ::type iter_14;
 typedef typename mpl::next< iter_14 > ::type iter_15;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,15) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,15) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -248,12 +248,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,16)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,16)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 17 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 17 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -276,7 +276,7 @@
 typedef typename mpl::next< iter_14 > ::type iter_15;
 typedef typename mpl::next< iter_15 > ::type iter_16;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,16) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,16) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -299,12 +299,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,17)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,17)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 18 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 18 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -328,7 +328,7 @@
 typedef typename mpl::next< iter_15 > ::type iter_16;
 typedef typename mpl::next< iter_16 > ::type iter_17;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,17) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,17) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -352,12 +352,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,18)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,18)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 19 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 19 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -382,7 +382,7 @@
 typedef typename mpl::next< iter_16 > ::type iter_17;
 typedef typename mpl::next< iter_17 > ::type iter_18;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,18) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,18) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -407,12 +407,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,19)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,19)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 20 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 20 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -438,7 +438,7 @@
 typedef typename mpl::next< iter_17 > ::type iter_18;
 typedef typename mpl::next< iter_18 > ::type iter_19;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,19) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,19) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -464,12 +464,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,20)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,20)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 21 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 21 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -496,7 +496,7 @@
 typedef typename mpl::next< iter_18 > ::type iter_19;
 typedef typename mpl::next< iter_19 > ::type iter_20;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,20) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,20) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -522,6 +522,6 @@
 > ::type type;
 };
 };
-# undef BOOST_FT_make_type
-# undef BOOST_FT_make_type_impl
+# undef NDNBOOST_FT_make_type
+# undef NDNBOOST_FT_make_type_impl
 
diff --git a/include/ndnboost/function_types/detail/synthesize_impl/arity30_0.hpp b/include/ndnboost/function_types/detail/synthesize_impl/arity30_0.hpp
index 0810409..a4838fd 100644
--- a/include/ndnboost/function_types/detail/synthesize_impl/arity30_0.hpp
+++ b/include/ndnboost/function_types/detail/synthesize_impl/arity30_0.hpp
@@ -8,27 +8,27 @@
 
 // no include guards, this file is intended for multiple inclusion
 
-// input:  BOOST_FT_syntax     type macro to use
-// input:  BOOST_FT_cc         empty or cc specifier 
-// input:  BOOST_FT_ell        empty or "..."
-// input:  BOOST_FT_cv         empty or cv qualifiers
-// input:  BOOST_FT_flags      single decimal integer encoding the flags
-// output: BOOST_FT_n          number of component types (arity+1)
-// output: BOOST_FT_arity      current arity
-// output: BOOST_FT_type       macro that expands to the type
-// output: BOOST_FT_tplargs(p) template arguments with given prefix
-// output: BOOST_FT_params(p)  parameters with given prefix
+// input:  NDNBOOST_FT_syntax     type macro to use
+// input:  NDNBOOST_FT_cc         empty or cc specifier 
+// input:  NDNBOOST_FT_ell        empty or "..."
+// input:  NDNBOOST_FT_cv         empty or cv qualifiers
+// input:  NDNBOOST_FT_flags      single decimal integer encoding the flags
+// output: NDNBOOST_FT_n          number of component types (arity+1)
+// output: NDNBOOST_FT_arity      current arity
+// output: NDNBOOST_FT_type       macro that expands to the type
+// output: NDNBOOST_FT_tplargs(p) template arguments with given prefix
+// output: NDNBOOST_FT_params(p)  parameters with given prefix
 
 # include <ndnboost/function_types/detail/synthesize_impl/arity20_0.hpp>
-# define BOOST_FT_make_type(flags,cc,arity) BOOST_FT_make_type_impl(flags,cc,arity)
-# define BOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity
+# define NDNBOOST_FT_make_type(flags,cc,arity) NDNBOOST_FT_make_type_impl(flags,cc,arity)
+# define NDNBOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,21)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,21)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 22 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 22 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -56,7 +56,7 @@
 typedef typename mpl::next< iter_19 > ::type iter_20;
 typedef typename mpl::next< iter_20 > ::type iter_21;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,21) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,21) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -83,12 +83,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,22)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,22)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 23 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 23 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -117,7 +117,7 @@
 typedef typename mpl::next< iter_20 > ::type iter_21;
 typedef typename mpl::next< iter_21 > ::type iter_22;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,22) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,22) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -145,12 +145,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,23)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,23)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 24 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 24 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -180,7 +180,7 @@
 typedef typename mpl::next< iter_21 > ::type iter_22;
 typedef typename mpl::next< iter_22 > ::type iter_23;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,23) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,23) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -209,12 +209,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,24)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,24)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 25 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 25 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -245,7 +245,7 @@
 typedef typename mpl::next< iter_22 > ::type iter_23;
 typedef typename mpl::next< iter_23 > ::type iter_24;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,24) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,24) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -275,12 +275,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,25)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,25)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 26 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 26 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -312,7 +312,7 @@
 typedef typename mpl::next< iter_23 > ::type iter_24;
 typedef typename mpl::next< iter_24 > ::type iter_25;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,25) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,25) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -343,12 +343,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,26)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,26)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 27 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 27 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -381,7 +381,7 @@
 typedef typename mpl::next< iter_24 > ::type iter_25;
 typedef typename mpl::next< iter_25 > ::type iter_26;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,26) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,26) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -413,12 +413,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,27)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,27)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 28 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 28 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -452,7 +452,7 @@
 typedef typename mpl::next< iter_25 > ::type iter_26;
 typedef typename mpl::next< iter_26 > ::type iter_27;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,27) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,27) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -485,12 +485,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,28)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,28)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 29 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 29 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -525,7 +525,7 @@
 typedef typename mpl::next< iter_26 > ::type iter_27;
 typedef typename mpl::next< iter_27 > ::type iter_28;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,28) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,28) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -559,12 +559,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,29)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,29)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 30 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 30 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -600,7 +600,7 @@
 typedef typename mpl::next< iter_27 > ::type iter_28;
 typedef typename mpl::next< iter_28 > ::type iter_29;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,29) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,29) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -635,12 +635,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,30)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,30)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 31 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 31 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -677,7 +677,7 @@
 typedef typename mpl::next< iter_28 > ::type iter_29;
 typedef typename mpl::next< iter_29 > ::type iter_30;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,30) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,30) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -712,6 +712,6 @@
 > ::type type;
 };
 };
-# undef BOOST_FT_make_type
-# undef BOOST_FT_make_type_impl
+# undef NDNBOOST_FT_make_type
+# undef NDNBOOST_FT_make_type_impl
 
diff --git a/include/ndnboost/function_types/detail/synthesize_impl/arity30_1.hpp b/include/ndnboost/function_types/detail/synthesize_impl/arity30_1.hpp
index 0a7530d..f5829d6 100644
--- a/include/ndnboost/function_types/detail/synthesize_impl/arity30_1.hpp
+++ b/include/ndnboost/function_types/detail/synthesize_impl/arity30_1.hpp
@@ -8,27 +8,27 @@
 
 // no include guards, this file is intended for multiple inclusion
 
-// input:  BOOST_FT_syntax     type macro to use
-// input:  BOOST_FT_cc         empty or cc specifier 
-// input:  BOOST_FT_ell        empty or "..."
-// input:  BOOST_FT_cv         empty or cv qualifiers
-// input:  BOOST_FT_flags      single decimal integer encoding the flags
-// output: BOOST_FT_n          number of component types (arity+1)
-// output: BOOST_FT_arity      current arity
-// output: BOOST_FT_type       macro that expands to the type
-// output: BOOST_FT_tplargs(p) template arguments with given prefix
-// output: BOOST_FT_params(p)  parameters with given prefix
+// input:  NDNBOOST_FT_syntax     type macro to use
+// input:  NDNBOOST_FT_cc         empty or cc specifier 
+// input:  NDNBOOST_FT_ell        empty or "..."
+// input:  NDNBOOST_FT_cv         empty or cv qualifiers
+// input:  NDNBOOST_FT_flags      single decimal integer encoding the flags
+// output: NDNBOOST_FT_n          number of component types (arity+1)
+// output: NDNBOOST_FT_arity      current arity
+// output: NDNBOOST_FT_type       macro that expands to the type
+// output: NDNBOOST_FT_tplargs(p) template arguments with given prefix
+// output: NDNBOOST_FT_params(p)  parameters with given prefix
 
 # include <ndnboost/function_types/detail/synthesize_impl/arity20_1.hpp>
-# define BOOST_FT_make_type(flags,cc,arity) BOOST_FT_make_type_impl(flags,cc,arity)
-# define BOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity
+# define NDNBOOST_FT_make_type(flags,cc,arity) NDNBOOST_FT_make_type_impl(flags,cc,arity)
+# define NDNBOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,21)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,21)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 22 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 22 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -56,7 +56,7 @@
 typedef typename mpl::next< iter_19 > ::type iter_20;
 typedef typename mpl::next< iter_20 > ::type iter_21;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,21) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,21) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -84,12 +84,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,22)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,22)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 23 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 23 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -118,7 +118,7 @@
 typedef typename mpl::next< iter_20 > ::type iter_21;
 typedef typename mpl::next< iter_21 > ::type iter_22;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,22) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,22) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -147,12 +147,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,23)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,23)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 24 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 24 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -182,7 +182,7 @@
 typedef typename mpl::next< iter_21 > ::type iter_22;
 typedef typename mpl::next< iter_22 > ::type iter_23;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,23) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,23) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -212,12 +212,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,24)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,24)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 25 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 25 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -248,7 +248,7 @@
 typedef typename mpl::next< iter_22 > ::type iter_23;
 typedef typename mpl::next< iter_23 > ::type iter_24;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,24) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,24) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -279,12 +279,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,25)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,25)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 26 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 26 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -316,7 +316,7 @@
 typedef typename mpl::next< iter_23 > ::type iter_24;
 typedef typename mpl::next< iter_24 > ::type iter_25;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,25) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,25) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -348,12 +348,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,26)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,26)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 27 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 27 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -386,7 +386,7 @@
 typedef typename mpl::next< iter_24 > ::type iter_25;
 typedef typename mpl::next< iter_25 > ::type iter_26;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,26) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,26) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -419,12 +419,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,27)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,27)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 28 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 28 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -458,7 +458,7 @@
 typedef typename mpl::next< iter_25 > ::type iter_26;
 typedef typename mpl::next< iter_26 > ::type iter_27;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,27) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,27) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -492,12 +492,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,28)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,28)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 29 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 29 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -532,7 +532,7 @@
 typedef typename mpl::next< iter_26 > ::type iter_27;
 typedef typename mpl::next< iter_27 > ::type iter_28;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,28) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,28) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -567,12 +567,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,29)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,29)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 30 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 30 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -608,7 +608,7 @@
 typedef typename mpl::next< iter_27 > ::type iter_28;
 typedef typename mpl::next< iter_28 > ::type iter_29;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,29) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,29) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -644,12 +644,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,30)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,30)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 31 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 31 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -686,7 +686,7 @@
 typedef typename mpl::next< iter_28 > ::type iter_29;
 typedef typename mpl::next< iter_29 > ::type iter_30;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,30) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,30) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -722,6 +722,6 @@
 > ::type type;
 };
 };
-# undef BOOST_FT_make_type
-# undef BOOST_FT_make_type_impl
+# undef NDNBOOST_FT_make_type
+# undef NDNBOOST_FT_make_type_impl
 
diff --git a/include/ndnboost/function_types/detail/synthesize_impl/arity40_0.hpp b/include/ndnboost/function_types/detail/synthesize_impl/arity40_0.hpp
index d1ef292..6ff1c3f 100644
--- a/include/ndnboost/function_types/detail/synthesize_impl/arity40_0.hpp
+++ b/include/ndnboost/function_types/detail/synthesize_impl/arity40_0.hpp
@@ -8,27 +8,27 @@
 
 // no include guards, this file is intended for multiple inclusion
 
-// input:  BOOST_FT_syntax     type macro to use
-// input:  BOOST_FT_cc         empty or cc specifier 
-// input:  BOOST_FT_ell        empty or "..."
-// input:  BOOST_FT_cv         empty or cv qualifiers
-// input:  BOOST_FT_flags      single decimal integer encoding the flags
-// output: BOOST_FT_n          number of component types (arity+1)
-// output: BOOST_FT_arity      current arity
-// output: BOOST_FT_type       macro that expands to the type
-// output: BOOST_FT_tplargs(p) template arguments with given prefix
-// output: BOOST_FT_params(p)  parameters with given prefix
+// input:  NDNBOOST_FT_syntax     type macro to use
+// input:  NDNBOOST_FT_cc         empty or cc specifier 
+// input:  NDNBOOST_FT_ell        empty or "..."
+// input:  NDNBOOST_FT_cv         empty or cv qualifiers
+// input:  NDNBOOST_FT_flags      single decimal integer encoding the flags
+// output: NDNBOOST_FT_n          number of component types (arity+1)
+// output: NDNBOOST_FT_arity      current arity
+// output: NDNBOOST_FT_type       macro that expands to the type
+// output: NDNBOOST_FT_tplargs(p) template arguments with given prefix
+// output: NDNBOOST_FT_params(p)  parameters with given prefix
 
 # include <ndnboost/function_types/detail/synthesize_impl/arity30_0.hpp>
-# define BOOST_FT_make_type(flags,cc,arity) BOOST_FT_make_type_impl(flags,cc,arity)
-# define BOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity
+# define NDNBOOST_FT_make_type(flags,cc,arity) NDNBOOST_FT_make_type_impl(flags,cc,arity)
+# define NDNBOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,31)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,31)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 32 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 32 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -66,7 +66,7 @@
 typedef typename mpl::next< iter_29 > ::type iter_30;
 typedef typename mpl::next< iter_30 > ::type iter_31;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,31) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,31) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -103,12 +103,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,32)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,32)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 33 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 33 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -147,7 +147,7 @@
 typedef typename mpl::next< iter_30 > ::type iter_31;
 typedef typename mpl::next< iter_31 > ::type iter_32;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,32) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,32) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -185,12 +185,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,33)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,33)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 34 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 34 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -230,7 +230,7 @@
 typedef typename mpl::next< iter_31 > ::type iter_32;
 typedef typename mpl::next< iter_32 > ::type iter_33;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,33) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,33) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -269,12 +269,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,34)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,34)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 35 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 35 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -315,7 +315,7 @@
 typedef typename mpl::next< iter_32 > ::type iter_33;
 typedef typename mpl::next< iter_33 > ::type iter_34;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,34) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,34) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -355,12 +355,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,35)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,35)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 36 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 36 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -402,7 +402,7 @@
 typedef typename mpl::next< iter_33 > ::type iter_34;
 typedef typename mpl::next< iter_34 > ::type iter_35;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,35) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,35) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -443,12 +443,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,36)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,36)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 37 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 37 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -491,7 +491,7 @@
 typedef typename mpl::next< iter_34 > ::type iter_35;
 typedef typename mpl::next< iter_35 > ::type iter_36;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,36) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,36) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -533,12 +533,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,37)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,37)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 38 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 38 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -582,7 +582,7 @@
 typedef typename mpl::next< iter_35 > ::type iter_36;
 typedef typename mpl::next< iter_36 > ::type iter_37;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,37) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,37) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -625,12 +625,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,38)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,38)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 39 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 39 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -675,7 +675,7 @@
 typedef typename mpl::next< iter_36 > ::type iter_37;
 typedef typename mpl::next< iter_37 > ::type iter_38;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,38) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,38) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -719,12 +719,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,39)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,39)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 40 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 40 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -770,7 +770,7 @@
 typedef typename mpl::next< iter_37 > ::type iter_38;
 typedef typename mpl::next< iter_38 > ::type iter_39;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,39) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,39) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -815,12 +815,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,40)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,40)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 41 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 41 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -867,7 +867,7 @@
 typedef typename mpl::next< iter_38 > ::type iter_39;
 typedef typename mpl::next< iter_39 > ::type iter_40;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,40) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,40) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -912,6 +912,6 @@
 > ::type type;
 };
 };
-# undef BOOST_FT_make_type
-# undef BOOST_FT_make_type_impl
+# undef NDNBOOST_FT_make_type
+# undef NDNBOOST_FT_make_type_impl
 
diff --git a/include/ndnboost/function_types/detail/synthesize_impl/arity40_1.hpp b/include/ndnboost/function_types/detail/synthesize_impl/arity40_1.hpp
index b620c04..9585f58 100644
--- a/include/ndnboost/function_types/detail/synthesize_impl/arity40_1.hpp
+++ b/include/ndnboost/function_types/detail/synthesize_impl/arity40_1.hpp
@@ -8,27 +8,27 @@
 
 // no include guards, this file is intended for multiple inclusion
 
-// input:  BOOST_FT_syntax     type macro to use
-// input:  BOOST_FT_cc         empty or cc specifier 
-// input:  BOOST_FT_ell        empty or "..."
-// input:  BOOST_FT_cv         empty or cv qualifiers
-// input:  BOOST_FT_flags      single decimal integer encoding the flags
-// output: BOOST_FT_n          number of component types (arity+1)
-// output: BOOST_FT_arity      current arity
-// output: BOOST_FT_type       macro that expands to the type
-// output: BOOST_FT_tplargs(p) template arguments with given prefix
-// output: BOOST_FT_params(p)  parameters with given prefix
+// input:  NDNBOOST_FT_syntax     type macro to use
+// input:  NDNBOOST_FT_cc         empty or cc specifier 
+// input:  NDNBOOST_FT_ell        empty or "..."
+// input:  NDNBOOST_FT_cv         empty or cv qualifiers
+// input:  NDNBOOST_FT_flags      single decimal integer encoding the flags
+// output: NDNBOOST_FT_n          number of component types (arity+1)
+// output: NDNBOOST_FT_arity      current arity
+// output: NDNBOOST_FT_type       macro that expands to the type
+// output: NDNBOOST_FT_tplargs(p) template arguments with given prefix
+// output: NDNBOOST_FT_params(p)  parameters with given prefix
 
 # include <ndnboost/function_types/detail/synthesize_impl/arity30_1.hpp>
-# define BOOST_FT_make_type(flags,cc,arity) BOOST_FT_make_type_impl(flags,cc,arity)
-# define BOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity
+# define NDNBOOST_FT_make_type(flags,cc,arity) NDNBOOST_FT_make_type_impl(flags,cc,arity)
+# define NDNBOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,31)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,31)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 32 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 32 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -66,7 +66,7 @@
 typedef typename mpl::next< iter_29 > ::type iter_30;
 typedef typename mpl::next< iter_30 > ::type iter_31;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,31) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,31) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -104,12 +104,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,32)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,32)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 33 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 33 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -148,7 +148,7 @@
 typedef typename mpl::next< iter_30 > ::type iter_31;
 typedef typename mpl::next< iter_31 > ::type iter_32;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,32) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,32) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -187,12 +187,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,33)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,33)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 34 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 34 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -232,7 +232,7 @@
 typedef typename mpl::next< iter_31 > ::type iter_32;
 typedef typename mpl::next< iter_32 > ::type iter_33;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,33) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,33) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -272,12 +272,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,34)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,34)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 35 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 35 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -318,7 +318,7 @@
 typedef typename mpl::next< iter_32 > ::type iter_33;
 typedef typename mpl::next< iter_33 > ::type iter_34;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,34) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,34) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -359,12 +359,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,35)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,35)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 36 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 36 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -406,7 +406,7 @@
 typedef typename mpl::next< iter_33 > ::type iter_34;
 typedef typename mpl::next< iter_34 > ::type iter_35;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,35) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,35) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -448,12 +448,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,36)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,36)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 37 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 37 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -496,7 +496,7 @@
 typedef typename mpl::next< iter_34 > ::type iter_35;
 typedef typename mpl::next< iter_35 > ::type iter_36;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,36) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,36) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -539,12 +539,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,37)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,37)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 38 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 38 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -588,7 +588,7 @@
 typedef typename mpl::next< iter_35 > ::type iter_36;
 typedef typename mpl::next< iter_36 > ::type iter_37;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,37) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,37) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -632,12 +632,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,38)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,38)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 39 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 39 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -682,7 +682,7 @@
 typedef typename mpl::next< iter_36 > ::type iter_37;
 typedef typename mpl::next< iter_37 > ::type iter_38;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,38) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,38) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -727,12 +727,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,39)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,39)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 40 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 40 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -778,7 +778,7 @@
 typedef typename mpl::next< iter_37 > ::type iter_38;
 typedef typename mpl::next< iter_38 > ::type iter_39;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,39) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,39) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -824,12 +824,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,40)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,40)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 41 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 41 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -876,7 +876,7 @@
 typedef typename mpl::next< iter_38 > ::type iter_39;
 typedef typename mpl::next< iter_39 > ::type iter_40;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,40) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,40) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -922,6 +922,6 @@
 > ::type type;
 };
 };
-# undef BOOST_FT_make_type
-# undef BOOST_FT_make_type_impl
+# undef NDNBOOST_FT_make_type
+# undef NDNBOOST_FT_make_type_impl
 
diff --git a/include/ndnboost/function_types/detail/synthesize_impl/arity50_0.hpp b/include/ndnboost/function_types/detail/synthesize_impl/arity50_0.hpp
index 3e2c6a8..d29b6b5 100644
--- a/include/ndnboost/function_types/detail/synthesize_impl/arity50_0.hpp
+++ b/include/ndnboost/function_types/detail/synthesize_impl/arity50_0.hpp
@@ -8,27 +8,27 @@
 
 // no include guards, this file is intended for multiple inclusion
 
-// input:  BOOST_FT_syntax     type macro to use
-// input:  BOOST_FT_cc         empty or cc specifier 
-// input:  BOOST_FT_ell        empty or "..."
-// input:  BOOST_FT_cv         empty or cv qualifiers
-// input:  BOOST_FT_flags      single decimal integer encoding the flags
-// output: BOOST_FT_n          number of component types (arity+1)
-// output: BOOST_FT_arity      current arity
-// output: BOOST_FT_type       macro that expands to the type
-// output: BOOST_FT_tplargs(p) template arguments with given prefix
-// output: BOOST_FT_params(p)  parameters with given prefix
+// input:  NDNBOOST_FT_syntax     type macro to use
+// input:  NDNBOOST_FT_cc         empty or cc specifier 
+// input:  NDNBOOST_FT_ell        empty or "..."
+// input:  NDNBOOST_FT_cv         empty or cv qualifiers
+// input:  NDNBOOST_FT_flags      single decimal integer encoding the flags
+// output: NDNBOOST_FT_n          number of component types (arity+1)
+// output: NDNBOOST_FT_arity      current arity
+// output: NDNBOOST_FT_type       macro that expands to the type
+// output: NDNBOOST_FT_tplargs(p) template arguments with given prefix
+// output: NDNBOOST_FT_params(p)  parameters with given prefix
 
 # include <ndnboost/function_types/detail/synthesize_impl/arity40_0.hpp>
-# define BOOST_FT_make_type(flags,cc,arity) BOOST_FT_make_type_impl(flags,cc,arity)
-# define BOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity
+# define NDNBOOST_FT_make_type(flags,cc,arity) NDNBOOST_FT_make_type_impl(flags,cc,arity)
+# define NDNBOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,41)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,41)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 42 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 42 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -76,7 +76,7 @@
 typedef typename mpl::next< iter_39 > ::type iter_40;
 typedef typename mpl::next< iter_40 > ::type iter_41;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,41) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,41) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -123,12 +123,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,42)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,42)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 43 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 43 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -177,7 +177,7 @@
 typedef typename mpl::next< iter_40 > ::type iter_41;
 typedef typename mpl::next< iter_41 > ::type iter_42;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,42) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,42) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -225,12 +225,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,43)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,43)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 44 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 44 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -280,7 +280,7 @@
 typedef typename mpl::next< iter_41 > ::type iter_42;
 typedef typename mpl::next< iter_42 > ::type iter_43;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,43) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,43) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -329,12 +329,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,44)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,44)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 45 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 45 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -385,7 +385,7 @@
 typedef typename mpl::next< iter_42 > ::type iter_43;
 typedef typename mpl::next< iter_43 > ::type iter_44;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,44) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,44) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -435,12 +435,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,45)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,45)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 46 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 46 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -492,7 +492,7 @@
 typedef typename mpl::next< iter_43 > ::type iter_44;
 typedef typename mpl::next< iter_44 > ::type iter_45;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,45) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,45) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -543,12 +543,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,46)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,46)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 47 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 47 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -601,7 +601,7 @@
 typedef typename mpl::next< iter_44 > ::type iter_45;
 typedef typename mpl::next< iter_45 > ::type iter_46;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,46) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,46) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -653,12 +653,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,47)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,47)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 48 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 48 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -712,7 +712,7 @@
 typedef typename mpl::next< iter_45 > ::type iter_46;
 typedef typename mpl::next< iter_46 > ::type iter_47;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,47) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,47) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -765,12 +765,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,48)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,48)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 49 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 49 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -825,7 +825,7 @@
 typedef typename mpl::next< iter_46 > ::type iter_47;
 typedef typename mpl::next< iter_47 > ::type iter_48;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,48) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,48) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -879,12 +879,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47 , typename T48 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,49)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,49)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 50 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 50 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -940,7 +940,7 @@
 typedef typename mpl::next< iter_47 > ::type iter_48;
 typedef typename mpl::next< iter_48 > ::type iter_49;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,49) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,49) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -995,12 +995,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47 , typename T48 , typename T49 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,50)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,50)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 51 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 51 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -1057,7 +1057,7 @@
 typedef typename mpl::next< iter_48 > ::type iter_49;
 typedef typename mpl::next< iter_49 > ::type iter_50;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,50) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,50) 
 < typename mpl::deref< iter_0 > ::type 
 , typename mpl::deref< iter_1 > ::type
 , typename mpl::deref< iter_2 > ::type
@@ -1112,6 +1112,6 @@
 > ::type type;
 };
 };
-# undef BOOST_FT_make_type
-# undef BOOST_FT_make_type_impl
+# undef NDNBOOST_FT_make_type
+# undef NDNBOOST_FT_make_type_impl
 
diff --git a/include/ndnboost/function_types/detail/synthesize_impl/arity50_1.hpp b/include/ndnboost/function_types/detail/synthesize_impl/arity50_1.hpp
index aa74d17..35e73d0 100644
--- a/include/ndnboost/function_types/detail/synthesize_impl/arity50_1.hpp
+++ b/include/ndnboost/function_types/detail/synthesize_impl/arity50_1.hpp
@@ -8,27 +8,27 @@
 
 // no include guards, this file is intended for multiple inclusion
 
-// input:  BOOST_FT_syntax     type macro to use
-// input:  BOOST_FT_cc         empty or cc specifier 
-// input:  BOOST_FT_ell        empty or "..."
-// input:  BOOST_FT_cv         empty or cv qualifiers
-// input:  BOOST_FT_flags      single decimal integer encoding the flags
-// output: BOOST_FT_n          number of component types (arity+1)
-// output: BOOST_FT_arity      current arity
-// output: BOOST_FT_type       macro that expands to the type
-// output: BOOST_FT_tplargs(p) template arguments with given prefix
-// output: BOOST_FT_params(p)  parameters with given prefix
+// input:  NDNBOOST_FT_syntax     type macro to use
+// input:  NDNBOOST_FT_cc         empty or cc specifier 
+// input:  NDNBOOST_FT_ell        empty or "..."
+// input:  NDNBOOST_FT_cv         empty or cv qualifiers
+// input:  NDNBOOST_FT_flags      single decimal integer encoding the flags
+// output: NDNBOOST_FT_n          number of component types (arity+1)
+// output: NDNBOOST_FT_arity      current arity
+// output: NDNBOOST_FT_type       macro that expands to the type
+// output: NDNBOOST_FT_tplargs(p) template arguments with given prefix
+// output: NDNBOOST_FT_params(p)  parameters with given prefix
 
 # include <ndnboost/function_types/detail/synthesize_impl/arity40_1.hpp>
-# define BOOST_FT_make_type(flags,cc,arity) BOOST_FT_make_type_impl(flags,cc,arity)
-# define BOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity
+# define NDNBOOST_FT_make_type(flags,cc,arity) NDNBOOST_FT_make_type_impl(flags,cc,arity)
+# define NDNBOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,41)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,41)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 42 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 42 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -76,7 +76,7 @@
 typedef typename mpl::next< iter_39 > ::type iter_40;
 typedef typename mpl::next< iter_40 > ::type iter_41;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,41) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,41) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -124,12 +124,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,42)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,42)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 43 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 43 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -178,7 +178,7 @@
 typedef typename mpl::next< iter_40 > ::type iter_41;
 typedef typename mpl::next< iter_41 > ::type iter_42;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,42) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,42) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -227,12 +227,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,43)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,43)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 44 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 44 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -282,7 +282,7 @@
 typedef typename mpl::next< iter_41 > ::type iter_42;
 typedef typename mpl::next< iter_42 > ::type iter_43;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,43) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,43) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -332,12 +332,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,44)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,44)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 45 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 45 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -388,7 +388,7 @@
 typedef typename mpl::next< iter_42 > ::type iter_43;
 typedef typename mpl::next< iter_43 > ::type iter_44;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,44) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,44) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -439,12 +439,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,45)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,45)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 46 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 46 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -496,7 +496,7 @@
 typedef typename mpl::next< iter_43 > ::type iter_44;
 typedef typename mpl::next< iter_44 > ::type iter_45;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,45) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,45) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -548,12 +548,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,46)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,46)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 47 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 47 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -606,7 +606,7 @@
 typedef typename mpl::next< iter_44 > ::type iter_45;
 typedef typename mpl::next< iter_45 > ::type iter_46;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,46) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,46) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -659,12 +659,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,47)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,47)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 48 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 48 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -718,7 +718,7 @@
 typedef typename mpl::next< iter_45 > ::type iter_46;
 typedef typename mpl::next< iter_46 > ::type iter_47;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,47) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,47) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -772,12 +772,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,48)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,48)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 49 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 49 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -832,7 +832,7 @@
 typedef typename mpl::next< iter_46 > ::type iter_47;
 typedef typename mpl::next< iter_47 > ::type iter_48;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,48) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,48) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -887,12 +887,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47 , typename T48 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,49)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,49)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 50 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 50 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -948,7 +948,7 @@
 typedef typename mpl::next< iter_47 > ::type iter_48;
 typedef typename mpl::next< iter_48 > ::type iter_49;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,49) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,49) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -1004,12 +1004,12 @@
 };
 };
 template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47 , typename T48 , typename T49 >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,50)
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,50)
 {
-typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49 BOOST_FT_ell) BOOST_FT_cv ;
+typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
 };
 template< > 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 51 > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 51 > 
 { 
 template<typename S> struct synthesize_impl_i
 {
@@ -1066,7 +1066,7 @@
 typedef typename mpl::next< iter_48 > ::type iter_49;
 typedef typename mpl::next< iter_49 > ::type iter_50;
 public:
-typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,50) 
+typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,50) 
 < typename mpl::deref< iter_0 > ::type 
 , typename detail::cv_traits< 
 typename mpl::deref< iter_1 > ::type > ::type
@@ -1122,6 +1122,6 @@
 > ::type type;
 };
 };
-# undef BOOST_FT_make_type
-# undef BOOST_FT_make_type_impl
+# undef NDNBOOST_FT_make_type
+# undef NDNBOOST_FT_make_type_impl
 
diff --git a/include/ndnboost/function_types/detail/synthesize_impl/master.hpp b/include/ndnboost/function_types/detail/synthesize_impl/master.hpp
index fa06789..d08b9cb 100644
--- a/include/ndnboost/function_types/detail/synthesize_impl/master.hpp
+++ b/include/ndnboost/function_types/detail/synthesize_impl/master.hpp
@@ -8,10 +8,10 @@
 
 // no include guards, this file is intended for multiple inclusion
 
-#if   BOOST_FT_ARITY_LOOP_PREFIX
+#if   NDNBOOST_FT_ARITY_LOOP_PREFIX
 
-#   ifndef BOOST_FT_DETAIL_SYNTHESIZE_IMPL_MASTER_HPP_INCLUDED
-#   define BOOST_FT_DETAIL_SYNTHESIZE_IMPL_MASTER_HPP_INCLUDED
+#   ifndef NDNBOOST_FT_DETAIL_SYNTHESIZE_IMPL_MASTER_HPP_INCLUDED
+#   define NDNBOOST_FT_DETAIL_SYNTHESIZE_IMPL_MASTER_HPP_INCLUDED
 #     include <ndnboost/preprocessor/cat.hpp>
 #     include <ndnboost/preprocessor/arithmetic/dec.hpp>
 #     include <ndnboost/preprocessor/iteration/local.hpp>
@@ -19,67 +19,67 @@
 #     include <ndnboost/preprocessor/facilities/identity.hpp>
 #   endif
 
-#   define BOOST_FT_type_name type
+#   define NDNBOOST_FT_type_name type
 
-#   ifdef BOOST_FT_flags
-#     define BOOST_FT_make_type(flags,cc,arity) BOOST_FT_make_type_impl(flags,cc,arity)
-#     define BOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity
+#   ifdef NDNBOOST_FT_flags
+#     define NDNBOOST_FT_make_type(flags,cc,arity) NDNBOOST_FT_make_type_impl(flags,cc,arity)
+#     define NDNBOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity
 #   else
-BOOST_PP_EXPAND(#) define BOOST_FT_make_type(flags,cc,arity) BOOST_FT_make_type_impl(flags,cc,arity)
-BOOST_PP_EXPAND(#) define BOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity
+NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_make_type(flags,cc,arity) NDNBOOST_FT_make_type_impl(flags,cc,arity)
+NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity
 #   endif
 
-#   define BOOST_FT_iter(i) BOOST_PP_CAT(iter_,i)
+#   define NDNBOOST_FT_iter(i) NDNBOOST_PP_CAT(iter_,i)
 
-#elif BOOST_FT_ARITY_LOOP_IS_ITERATING
+#elif NDNBOOST_FT_ARITY_LOOP_IS_ITERATING
 
-template< BOOST_FT_tplargs(BOOST_PP_IDENTITY(typename)) >
-struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,BOOST_FT_arity)
+template< NDNBOOST_FT_tplargs(NDNBOOST_PP_IDENTITY(typename)) >
+struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,NDNBOOST_FT_arity)
 {
-  typedef BOOST_FT_type ;
+  typedef NDNBOOST_FT_type ;
 };
 
 template<> 
-struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, BOOST_FT_n > 
+struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, NDNBOOST_FT_n > 
 { 
   template<typename S> struct synthesize_impl_i
   {
   private:
-    typedef typename mpl::begin<S>::type BOOST_FT_iter(0);
-#   if BOOST_FT_n > 1
-#     define BOOST_PP_LOCAL_MACRO(i) typedef typename mpl::next< \
-          BOOST_FT_iter(BOOST_PP_DEC(i)) >::type BOOST_FT_iter(i);
-#     define BOOST_PP_LOCAL_LIMITS (1,BOOST_FT_n-1)
-#     include BOOST_PP_LOCAL_ITERATE()
+    typedef typename mpl::begin<S>::type NDNBOOST_FT_iter(0);
+#   if NDNBOOST_FT_n > 1
+#     define NDNBOOST_PP_LOCAL_MACRO(i) typedef typename mpl::next< \
+          NDNBOOST_FT_iter(NDNBOOST_PP_DEC(i)) >::type NDNBOOST_FT_iter(i);
+#     define NDNBOOST_PP_LOCAL_LIMITS (1,NDNBOOST_FT_n-1)
+#     include NDNBOOST_PP_LOCAL_ITERATE()
 #   endif
   public:
-    typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,BOOST_FT_arity) 
-    < typename mpl::deref< BOOST_FT_iter(0) >::type 
-#   if BOOST_FT_mfp
+    typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,NDNBOOST_FT_arity) 
+    < typename mpl::deref< NDNBOOST_FT_iter(0) >::type 
+#   if NDNBOOST_FT_mfp
     , typename detail::cv_traits< 
-          typename mpl::deref< BOOST_FT_iter(1) >::type >::type
+          typename mpl::deref< NDNBOOST_FT_iter(1) >::type >::type
 #   endif
-#   if BOOST_FT_n > (BOOST_FT_mfp+1)
-#     define BOOST_PP_LOCAL_LIMITS (BOOST_FT_mfp+1,BOOST_FT_n-1)
-#     define BOOST_PP_LOCAL_MACRO(i) \
-        , typename mpl::deref< BOOST_FT_iter(i) >::type
-#     include BOOST_PP_LOCAL_ITERATE()
+#   if NDNBOOST_FT_n > (NDNBOOST_FT_mfp+1)
+#     define NDNBOOST_PP_LOCAL_LIMITS (NDNBOOST_FT_mfp+1,NDNBOOST_FT_n-1)
+#     define NDNBOOST_PP_LOCAL_MACRO(i) \
+        , typename mpl::deref< NDNBOOST_FT_iter(i) >::type
+#     include NDNBOOST_PP_LOCAL_ITERATE()
 #   endif
     >::type type;
   };
 };
 
-#elif BOOST_FT_ARITY_LOOP_SUFFIX
+#elif NDNBOOST_FT_ARITY_LOOP_SUFFIX
 
-#   ifdef BOOST_FT_flags
-#     undef BOOST_FT_make_type
-#     undef BOOST_FT_make_type_impl
+#   ifdef NDNBOOST_FT_flags
+#     undef NDNBOOST_FT_make_type
+#     undef NDNBOOST_FT_make_type_impl
 #   else
-BOOST_PP_EXPAND(#) undef BOOST_FT_make_type
-BOOST_PP_EXPAND(#) undef BOOST_FT_make_type_impl
+NDNBOOST_PP_EXPAND(#) undef NDNBOOST_FT_make_type
+NDNBOOST_PP_EXPAND(#) undef NDNBOOST_FT_make_type_impl
 #   endif
-#   undef BOOST_FT_iter
-#   undef BOOST_FT_type_name
+#   undef NDNBOOST_FT_iter
+#   undef NDNBOOST_FT_type_name
 
 #else
 #   error "attempt to use arity loop master file without loop"
diff --git a/include/ndnboost/function_types/detail/to_sequence.hpp b/include/ndnboost/function_types/detail/to_sequence.hpp
index de51a4b..7b57ed4 100644
--- a/include/ndnboost/function_types/detail/to_sequence.hpp
+++ b/include/ndnboost/function_types/detail/to_sequence.hpp
@@ -6,8 +6,8 @@
 
 //------------------------------------------------------------------------------
 
-#ifndef BOOST_FT_DETAIL_TO_SEQUENCE_HPP_INCLUDED
-#define BOOST_FT_DETAIL_TO_SEQUENCE_HPP_INCLUDED
+#ifndef NDNBOOST_FT_DETAIL_TO_SEQUENCE_HPP_INCLUDED
+#define NDNBOOST_FT_DETAIL_TO_SEQUENCE_HPP_INCLUDED
 
 #include <ndnboost/mpl/eval_if.hpp>
 #include <ndnboost/mpl/identity.hpp>
@@ -32,7 +32,7 @@
   type;
 };
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 // reduce template instantiations, if possible
 template<typename T, typename U>
 struct to_sequence< components<T,U> > 
diff --git a/include/ndnboost/function_types/function_type.hpp b/include/ndnboost/function_types/function_type.hpp
index bad90ba..3746214 100644
--- a/include/ndnboost/function_types/function_type.hpp
+++ b/include/ndnboost/function_types/function_type.hpp
@@ -6,8 +6,8 @@
 
 //------------------------------------------------------------------------------
 
-#ifndef BOOST_FT_FUNCTION_TYPE_HPP_INCLUDED
-#define BOOST_FT_FUNCTION_TYPE_HPP_INCLUDED
+#ifndef NDNBOOST_FT_FUNCTION_TYPE_HPP_INCLUDED
+#define NDNBOOST_FT_FUNCTION_TYPE_HPP_INCLUDED
 
 #include <ndnboost/function_types/detail/synthesize.hpp>
 #include <ndnboost/function_types/detail/to_sequence.hpp>
@@ -19,10 +19,10 @@
     template<typename Types, typename Tag = null_tag> struct function_type
       : detail::synthesize_func<typename detail::to_sequence<Types>::type, Tag>
     {
-      BOOST_MPL_AUX_LAMBDA_SUPPORT(2,function_type,(Types,Tag))
+      NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2,function_type,(Types,Tag))
     };
   }
-  BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::function_type)
+  NDNBOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::function_type)
 }
 
 #endif
diff --git a/include/ndnboost/function_types/is_callable_builtin.hpp b/include/ndnboost/function_types/is_callable_builtin.hpp
index 7d138ea..a2b2247 100644
--- a/include/ndnboost/function_types/is_callable_builtin.hpp
+++ b/include/ndnboost/function_types/is_callable_builtin.hpp
@@ -6,8 +6,8 @@
 
 //------------------------------------------------------------------------------
 
-#ifndef BOOST_FT_IS_CALLABLE_BUILTIN_HPP_INCLUDED
-#define BOOST_FT_IS_CALLABLE_BUILTIN_HPP_INCLUDED
+#ifndef NDNBOOST_FT_IS_CALLABLE_BUILTIN_HPP_INCLUDED
+#define NDNBOOST_FT_IS_CALLABLE_BUILTIN_HPP_INCLUDED
 
 #include <ndnboost/mpl/aux_/lambda_support.hpp>
 #include <ndnboost/type_traits/detail/template_arity_spec.hpp>
@@ -25,10 +25,10 @@
         , function_types::tag<Tag, detail::callable_builtin_tag> 
         >
     { 
-      BOOST_MPL_AUX_LAMBDA_SUPPORT(2,is_callable_builtin,(T,Tag))
+      NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2,is_callable_builtin,(T,Tag))
     };
   }
-  BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::is_callable_builtin)
+  NDNBOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::is_callable_builtin)
 }
 
 #endif
diff --git a/include/ndnboost/function_types/is_function.hpp b/include/ndnboost/function_types/is_function.hpp
index f6eb020..1e76215 100644
--- a/include/ndnboost/function_types/is_function.hpp
+++ b/include/ndnboost/function_types/is_function.hpp
@@ -5,8 +5,8 @@
 // Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
 //------------------------------------------------------------------------------
 
-#ifndef BOOST_FT_IS_FUNCTION_HPP_INCLUDED
-#define BOOST_FT_IS_FUNCTION_HPP_INCLUDED
+#ifndef NDNBOOST_FT_IS_FUNCTION_HPP_INCLUDED
+#define NDNBOOST_FT_IS_FUNCTION_HPP_INCLUDED
 
 #include <ndnboost/mpl/aux_/lambda_support.hpp>
 #include <ndnboost/type_traits/detail/template_arity_spec.hpp>
@@ -24,10 +24,10 @@
         , function_types::tag<Tag ,detail::function_tag> 
         >
     { 
-      BOOST_MPL_AUX_LAMBDA_SUPPORT(2,is_function,(T,Tag))
+      NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2,is_function,(T,Tag))
     };
   }
-  BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::is_function)
+  NDNBOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::is_function)
 } 
 
 #endif
diff --git a/include/ndnboost/function_types/is_function_pointer.hpp b/include/ndnboost/function_types/is_function_pointer.hpp
index 6853aa3..ddff50c 100644
--- a/include/ndnboost/function_types/is_function_pointer.hpp
+++ b/include/ndnboost/function_types/is_function_pointer.hpp
@@ -6,8 +6,8 @@
 
 //------------------------------------------------------------------------------
 
-#ifndef BOOST_FT_IS_FUNCTION_POINTER_HPP_INCLUDED
-#define BOOST_FT_IS_FUNCTION_POINTER_HPP_INCLUDED
+#ifndef NDNBOOST_FT_IS_FUNCTION_POINTER_HPP_INCLUDED
+#define NDNBOOST_FT_IS_FUNCTION_POINTER_HPP_INCLUDED
 
 #include <ndnboost/mpl/aux_/lambda_support.hpp>
 #include <ndnboost/type_traits/detail/template_arity_spec.hpp>
@@ -25,10 +25,10 @@
         , function_types::tag<Tag ,detail::pointer_tag> 
         >
     { 
-      BOOST_MPL_AUX_LAMBDA_SUPPORT(2,is_function_pointer,(T,Tag))
+      NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2,is_function_pointer,(T,Tag))
     };
   }
-  BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::is_function_pointer)
+  NDNBOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::is_function_pointer)
 }
 
 #endif
diff --git a/include/ndnboost/function_types/is_function_reference.hpp b/include/ndnboost/function_types/is_function_reference.hpp
index 61d7050..7350283 100644
--- a/include/ndnboost/function_types/is_function_reference.hpp
+++ b/include/ndnboost/function_types/is_function_reference.hpp
@@ -6,8 +6,8 @@
 
 //------------------------------------------------------------------------------
 
-#ifndef BOOST_FT_IS_FUNCTION_REFERENCE_HPP_INCLUDED
-#define BOOST_FT_IS_FUNCTION_REFERENCE_HPP_INCLUDED
+#ifndef NDNBOOST_FT_IS_FUNCTION_REFERENCE_HPP_INCLUDED
+#define NDNBOOST_FT_IS_FUNCTION_REFERENCE_HPP_INCLUDED
 
 #include <ndnboost/mpl/aux_/lambda_support.hpp>
 #include <ndnboost/type_traits/detail/template_arity_spec.hpp>
@@ -24,10 +24,10 @@
         < function_types::components<T>
         , function_types::tag<Tag ,detail::reference_tag> >
     { 
-      BOOST_MPL_AUX_LAMBDA_SUPPORT(2,is_function_reference,(T,Tag))
+      NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2,is_function_reference,(T,Tag))
     };
   }
-  BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::is_function_reference)
+  NDNBOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::is_function_reference)
 } 
 
 #endif
diff --git a/include/ndnboost/function_types/parameter_types.hpp b/include/ndnboost/function_types/parameter_types.hpp
index 5e35b02..a604ce4 100644
--- a/include/ndnboost/function_types/parameter_types.hpp
+++ b/include/ndnboost/function_types/parameter_types.hpp
@@ -6,8 +6,8 @@
 
 //------------------------------------------------------------------------------
 
-#ifndef BOOST_FT_PARAMETER_TYPES_HPP_INCLUDED
-#define BOOST_FT_PARAMETER_TYPES_HPP_INCLUDED
+#ifndef NDNBOOST_FT_PARAMETER_TYPES_HPP_INCLUDED
+#define NDNBOOST_FT_PARAMETER_TYPES_HPP_INCLUDED
 
 #include <ndnboost/blank.hpp>
 #include <ndnboost/mpl/if.hpp>
@@ -45,10 +45,10 @@
         , detail::parameter_types_impl<T,ClassTypeTransform>, ndnboost::blank
         >::type
     {
-      BOOST_MPL_AUX_LAMBDA_SUPPORT(2,parameter_types,(T,ClassTypeTransform)) 
+      NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2,parameter_types,(T,ClassTypeTransform)) 
     };
   }
-  BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::parameter_types)
+  NDNBOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::parameter_types)
 }
 
 #endif
diff --git a/include/ndnboost/function_types/property_tags.hpp b/include/ndnboost/function_types/property_tags.hpp
index ef14d38..2662fcc 100644
--- a/include/ndnboost/function_types/property_tags.hpp
+++ b/include/ndnboost/function_types/property_tags.hpp
@@ -6,8 +6,8 @@
 
 //------------------------------------------------------------------------------
 
-#ifndef BOOST_FT_DETAIL_TAGS_HPP_INCLUDED
-#define BOOST_FT_DETAIL_TAGS_HPP_INCLUDED
+#ifndef NDNBOOST_FT_DETAIL_TAGS_HPP_INCLUDED
+#define NDNBOOST_FT_DETAIL_TAGS_HPP_INCLUDED
 
 #include <cstddef>
 
@@ -102,7 +102,7 @@
         detail::compound_tag<Tag3,Tag4> >
 { };
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 template<class Tag1, class Tag2, class Tag3> struct tag<Tag1,Tag2,Tag3,null_tag>
   : detail::compound_tag<detail::compound_tag<Tag1,Tag2>,Tag3>
 { };
@@ -141,7 +141,7 @@
 #include <ndnboost/function_types/detail/pp_tags/preprocessed.hpp>
 
 namespace ndnboost { namespace function_types {
-#define BOOST_FT_cc_file <ndnboost/function_types/detail/pp_tags/cc_tag.hpp>
+#define NDNBOOST_FT_cc_file <ndnboost/function_types/detail/pp_tags/cc_tag.hpp>
 #include <ndnboost/function_types/detail/pp_loop.hpp>
 } } // namespace ndnboost::function_types
 
diff --git a/include/ndnboost/function_types/result_type.hpp b/include/ndnboost/function_types/result_type.hpp
index 1fcdd53..22fb10f 100644
--- a/include/ndnboost/function_types/result_type.hpp
+++ b/include/ndnboost/function_types/result_type.hpp
@@ -6,8 +6,8 @@
 
 //------------------------------------------------------------------------------
 
-#ifndef BOOST_FT_RESULT_TYPE_HPP_INCLUDED
-#define BOOST_FT_RESULT_TYPE_HPP_INCLUDED
+#ifndef NDNBOOST_FT_RESULT_TYPE_HPP_INCLUDED
+#define NDNBOOST_FT_RESULT_TYPE_HPP_INCLUDED
 
 #include <ndnboost/blank.hpp>
 #include <ndnboost/mpl/if.hpp>
@@ -40,10 +40,10 @@
         , detail::result_type_impl<T>, ndnboost::blank
         >::type
     { 
-      BOOST_MPL_AUX_LAMBDA_SUPPORT(1,result_type,(T)) 
+      NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,result_type,(T)) 
     };
   }
-  BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1,function_types::result_type)
+  NDNBOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1,function_types::result_type)
 }
 
 #endif
diff --git a/include/ndnboost/functional.hpp b/include/ndnboost/functional.hpp
index 34586bd..b14457d 100644
--- a/include/ndnboost/functional.hpp
+++ b/include/ndnboost/functional.hpp
@@ -9,8 +9,8 @@
 // $Id: functional.hpp 36246 2006-12-02 14:17:26Z andreas_huber69 $
 // ------------------------------------------------------------------------------
 
-#ifndef BOOST_FUNCTIONAL_HPP
-#define BOOST_FUNCTIONAL_HPP
+#ifndef NDNBOOST_FUNCTIONAL_HPP
+#define NDNBOOST_FUNCTIONAL_HPP
 
 #include <ndnboost/config.hpp>
 #include <ndnboost/call_traits.hpp>
@@ -18,7 +18,7 @@
 
 namespace ndnboost
 {
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
     // --------------------------------------------------------------------------
     // The following traits classes allow us to avoid the need for ptr_fun
     // because the types of arguments and the result of a function can be 
@@ -116,7 +116,7 @@
         typedef A1 first_argument_type;
         typedef A2 second_argument_type;
     };
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#else // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
     // --------------------------------------------------------------------------
     // If we have no partial specialisation available, decay to a situation
     // that is no worse than in the Standard, i.e., ptr_fun will be required.
@@ -140,7 +140,7 @@
         typedef typename Operation::first_argument_type  first_argument_type;
         typedef typename Operation::second_argument_type second_argument_type;
     };    
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
     
     // --------------------------------------------------------------------------
     // unary_negate, not1
@@ -384,7 +384,7 @@
         return mem_fun1_t<S,T,A>(f);
     }
 
-#ifndef BOOST_NO_POINTER_TO_MEMBER_CONST
+#ifndef NDNBOOST_NO_POINTER_TO_MEMBER_CONST
     template<class S, class T>
     inline const_mem_fun_t<S,T> mem_fun(S (T::*f)() const)
     {
@@ -396,7 +396,7 @@
     {
         return const_mem_fun1_t<S,T,A>(f);
     }
-#endif // BOOST_NO_POINTER_TO_MEMBER_CONST
+#endif // NDNBOOST_NO_POINTER_TO_MEMBER_CONST
 
     // --------------------------------------------------------------------------
     // mem_fun_ref, etc
@@ -479,7 +479,7 @@
         return mem_fun1_ref_t<S,T,A>(f);
     }
 
-#ifndef BOOST_NO_POINTER_TO_MEMBER_CONST
+#ifndef NDNBOOST_NO_POINTER_TO_MEMBER_CONST
     template<class S, class T>
     inline const_mem_fun_ref_t<S,T> mem_fun_ref(S (T::*f)() const)
     {
@@ -491,7 +491,7 @@
     {
         return const_mem_fun1_ref_t<S,T,A>(f);
     }   
-#endif // BOOST_NO_POINTER_TO_MEMBER_CONST
+#endif // NDNBOOST_NO_POINTER_TO_MEMBER_CONST
 
     // --------------------------------------------------------------------------
     // ptr_fun
diff --git a/include/ndnboost/functional/hash/hash_fwd.hpp b/include/ndnboost/functional/hash/hash_fwd.hpp
index 06babfb..10d2715 100644
--- a/include/ndnboost/functional/hash/hash_fwd.hpp
+++ b/include/ndnboost/functional/hash/hash_fwd.hpp
@@ -7,8 +7,8 @@
 //  http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2005/n1756.pdf
 //  issue 6.18. 
 
-#if !defined(BOOST_FUNCTIONAL_HASH_FWD_HPP)
-#define BOOST_FUNCTIONAL_HASH_FWD_HPP
+#if !defined(NDNBOOST_FUNCTIONAL_HASH_FWD_HPP)
+#define NDNBOOST_FUNCTIONAL_HASH_FWD_HPP
 
 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
 # pragma once
@@ -22,7 +22,7 @@
 {
     template <class T> struct hash;
 
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
     template <class T> void hash_combine(std::size_t& seed, T& v);
 #else
     template <class T> void hash_combine(std::size_t& seed, T const& v);
@@ -31,7 +31,7 @@
     template <class It> std::size_t hash_range(It, It);
     template <class It> void hash_range(std::size_t&, It, It);
 
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551))
+#if NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x551))
     template <class T> inline std::size_t hash_range(T*, T*);
     template <class T> inline void hash_range(std::size_t&, T*, T*);
 #endif
diff --git a/include/ndnboost/get_pointer.hpp b/include/ndnboost/get_pointer.hpp
index 24ea6c7..f20867b 100644
--- a/include/ndnboost/get_pointer.hpp
+++ b/include/ndnboost/get_pointer.hpp
@@ -29,7 +29,7 @@
     return p.get();
 }
 
-#if !defined( BOOST_NO_CXX11_SMART_PTR )
+#if !defined( NDNBOOST_NO_CXX11_SMART_PTR )
 
 template<class T> T * get_pointer( std::unique_ptr<T> const& p )
 {
diff --git a/include/ndnboost/integer.hpp b/include/ndnboost/integer.hpp
index 56e3ffe..b49c459 100644
--- a/include/ndnboost/integer.hpp
+++ b/include/ndnboost/integer.hpp
@@ -12,14 +12,14 @@
 //   30 Jul 00  Add typename syntax fix (Jens Maurer)
 //   28 Aug 99  Initial version
 
-#ifndef BOOST_INTEGER_HPP
-#define BOOST_INTEGER_HPP
+#ifndef NDNBOOST_INTEGER_HPP
+#define NDNBOOST_INTEGER_HPP
 
 #include <ndnboost/integer_fwd.hpp>  // self include
 
 #include <ndnboost/integer_traits.hpp>  // for ndnboost::::ndnboost::integer_traits
 #include <ndnboost/limits.hpp>          // for ::std::numeric_limits
-#include <ndnboost/cstdint.hpp>         // for ndnboost::int64_t and BOOST_NO_INTEGRAL_INT64_T
+#include <ndnboost/cstdint.hpp>         // for ndnboost::int64_t and NDNBOOST_NO_INTEGRAL_INT64_T
 #include <ndnboost/static_assert.hpp>
 
 //
@@ -57,18 +57,18 @@
   //  specializatons: 1=long, 2=int, 3=short, 4=signed char,
   //     6=unsigned long, 7=unsigned int, 8=unsigned short, 9=unsigned char
   //  no specializations for 0 and 5: requests for a type > long are in error
-#ifdef BOOST_HAS_LONG_LONG
+#ifdef NDNBOOST_HAS_LONG_LONG
   template<> struct int_least_helper<1> { typedef ndnboost::long_long_type least; };
-#elif defined(BOOST_HAS_MS_INT64)
+#elif defined(NDNBOOST_HAS_MS_INT64)
   template<> struct int_least_helper<1> { typedef __int64 least; };
 #endif
   template<> struct int_least_helper<2> { typedef long least; };
   template<> struct int_least_helper<3> { typedef int least; };
   template<> struct int_least_helper<4> { typedef short least; };
   template<> struct int_least_helper<5> { typedef signed char least; };
-#ifdef BOOST_HAS_LONG_LONG
+#ifdef NDNBOOST_HAS_LONG_LONG
   template<> struct uint_least_helper<1> { typedef ndnboost::ulong_long_type least; };
-#elif defined(BOOST_HAS_MS_INT64)
+#elif defined(NDNBOOST_HAS_MS_INT64)
   template<> struct uint_least_helper<1> { typedef unsigned __int64 least; };
 #endif
   template<> struct uint_least_helper<2> { typedef unsigned long least; };
@@ -95,7 +95,7 @@
   template <> struct exact_signed_base_helper<sizeof(long)* CHAR_BIT> { typedef long exact; };
   template <> struct exact_unsigned_base_helper<sizeof(unsigned long)* CHAR_BIT> { typedef unsigned long exact; };
 #endif
-#if defined(BOOST_HAS_LONG_LONG) &&\
+#if defined(NDNBOOST_HAS_LONG_LONG) &&\
    ((defined(ULLONG_MAX) && (ULLONG_MAX != ULONG_MAX)) ||\
     (defined(ULONG_LONG_MAX) && (ULONG_LONG_MAX != ULONG_MAX)) ||\
     (defined(ULONGLONG_MAX) && (ULONGLONG_MAX != ULONG_MAX)) ||\
@@ -113,11 +113,11 @@
   template< int Bits >   // bits (including sign) required
   struct int_t : public detail::exact_signed_base_helper<Bits>
   {
-      BOOST_STATIC_ASSERT_MSG(Bits <= (int)(sizeof(ndnboost::intmax_t) * CHAR_BIT),
+      NDNBOOST_STATIC_ASSERT_MSG(Bits <= (int)(sizeof(ndnboost::intmax_t) * CHAR_BIT),
          "No suitable signed integer type with the requested number of bits is available.");
       typedef typename detail::int_least_helper
         <
-#ifdef BOOST_HAS_LONG_LONG
+#ifdef NDNBOOST_HAS_LONG_LONG
           (Bits <= (int)(sizeof(ndnboost::long_long_type) * CHAR_BIT)) +
 #else
            1 +
@@ -134,11 +134,11 @@
   template< int Bits >   // bits required
   struct uint_t : public detail::exact_unsigned_base_helper<Bits>
   {
-     BOOST_STATIC_ASSERT_MSG(Bits <= (int)(sizeof(ndnboost::uintmax_t) * CHAR_BIT),
+     NDNBOOST_STATIC_ASSERT_MSG(Bits <= (int)(sizeof(ndnboost::uintmax_t) * CHAR_BIT),
          "No suitable unsigned integer type with the requested number of bits is available.");
-#if (defined(__BORLANDC__) || defined(__CODEGEAR__)) && defined(BOOST_NO_INTEGRAL_INT64_T)
+#if (defined(__BORLANDC__) || defined(__CODEGEAR__)) && defined(NDNBOOST_NO_INTEGRAL_INT64_T)
      // It's really not clear why this workaround should be needed... shrug I guess!  JM
-     BOOST_STATIC_CONSTANT(int, s = 
+     NDNBOOST_STATIC_CONSTANT(int, s = 
            6 +
           (Bits <= ::std::numeric_limits<unsigned long>::digits) +
           (Bits <= ::std::numeric_limits<unsigned int>::digits) +
@@ -148,7 +148,7 @@
 #else
       typedef typename detail::uint_least_helper
         < 
-#ifdef BOOST_HAS_LONG_LONG
+#ifdef NDNBOOST_HAS_LONG_LONG
           (Bits <= (int)(sizeof(ndnboost::long_long_type) * CHAR_BIT)) +
 #else
            1 +
@@ -166,7 +166,7 @@
   //  integer templates specifying extreme value  ----------------------------//
 
   //  signed
-#if !defined(BOOST_NO_INTEGRAL_INT64_T) && defined(BOOST_HAS_LONG_LONG)
+#if !defined(NDNBOOST_NO_INTEGRAL_INT64_T) && defined(NDNBOOST_HAS_LONG_LONG)
   template< ndnboost::long_long_type MaxValue >   // maximum value to require support
 #else
   template< long MaxValue >   // maximum value to require support
@@ -175,7 +175,7 @@
   {
       typedef typename detail::int_least_helper
         <
-#if !defined(BOOST_NO_INTEGRAL_INT64_T) && defined(BOOST_HAS_LONG_LONG)
+#if !defined(NDNBOOST_NO_INTEGRAL_INT64_T) && defined(NDNBOOST_HAS_LONG_LONG)
           (MaxValue <= ::ndnboost::integer_traits<ndnboost::long_long_type>::const_max) +
 #else
            1 +
@@ -188,7 +188,7 @@
       typedef typename int_fast_t<least>::type  fast;
   };
 
-#if !defined(BOOST_NO_INTEGRAL_INT64_T) && defined(BOOST_HAS_LONG_LONG)
+#if !defined(NDNBOOST_NO_INTEGRAL_INT64_T) && defined(NDNBOOST_HAS_LONG_LONG)
   template< ndnboost::long_long_type MinValue >   // minimum value to require support
 #else
   template< long MinValue >   // minimum value to require support
@@ -197,7 +197,7 @@
   {
       typedef typename detail::int_least_helper
         <
-#if !defined(BOOST_NO_INTEGRAL_INT64_T) && defined(BOOST_HAS_LONG_LONG)
+#if !defined(NDNBOOST_NO_INTEGRAL_INT64_T) && defined(NDNBOOST_HAS_LONG_LONG)
           (MinValue >= ::ndnboost::integer_traits<ndnboost::long_long_type>::const_min) +
 #else
            1 +
@@ -211,7 +211,7 @@
   };
 
   //  unsigned
-#if !defined(BOOST_NO_INTEGRAL_INT64_T) && defined(BOOST_HAS_LONG_LONG)
+#if !defined(NDNBOOST_NO_INTEGRAL_INT64_T) && defined(NDNBOOST_HAS_LONG_LONG)
   template< ndnboost::ulong_long_type MaxValue >   // minimum value to require support
 #else
   template< unsigned long MaxValue >   // minimum value to require support
@@ -220,16 +220,16 @@
   {
 #if (defined(__BORLANDC__) || defined(__CODEGEAR__))
      // It's really not clear why this workaround should be needed... shrug I guess!  JM
-#if defined(BOOST_NO_INTEGRAL_INT64_T)
-      BOOST_STATIC_CONSTANT(unsigned, which = 
+#if defined(NDNBOOST_NO_INTEGRAL_INT64_T)
+      NDNBOOST_STATIC_CONSTANT(unsigned, which = 
            1 +
           (MaxValue <= ::ndnboost::integer_traits<unsigned long>::const_max) +
           (MaxValue <= ::ndnboost::integer_traits<unsigned int>::const_max) +
           (MaxValue <= ::ndnboost::integer_traits<unsigned short>::const_max) +
           (MaxValue <= ::ndnboost::integer_traits<unsigned char>::const_max));
       typedef typename detail::int_least_helper< ::ndnboost::uint_value_t<MaxValue>::which>::least least;
-#else // BOOST_NO_INTEGRAL_INT64_T
-      BOOST_STATIC_CONSTANT(unsigned, which = 
+#else // NDNBOOST_NO_INTEGRAL_INT64_T
+      NDNBOOST_STATIC_CONSTANT(unsigned, which = 
            1 +
           (MaxValue <= ::ndnboost::integer_traits<ndnboost::ulong_long_type>::const_max) +
           (MaxValue <= ::ndnboost::integer_traits<unsigned long>::const_max) +
@@ -237,11 +237,11 @@
           (MaxValue <= ::ndnboost::integer_traits<unsigned short>::const_max) +
           (MaxValue <= ::ndnboost::integer_traits<unsigned char>::const_max));
       typedef typename detail::uint_least_helper< ::ndnboost::uint_value_t<MaxValue>::which>::least least;
-#endif // BOOST_NO_INTEGRAL_INT64_T
+#endif // NDNBOOST_NO_INTEGRAL_INT64_T
 #else
       typedef typename detail::uint_least_helper
         < 
-#if !defined(BOOST_NO_INTEGRAL_INT64_T) && defined(BOOST_HAS_LONG_LONG)
+#if !defined(NDNBOOST_NO_INTEGRAL_INT64_T) && defined(NDNBOOST_HAS_LONG_LONG)
           (MaxValue <= ::ndnboost::integer_traits<ndnboost::ulong_long_type>::const_max) +
 #else
            1 +
@@ -258,4 +258,4 @@
 
 } // namespace ndnboost
 
-#endif  // BOOST_INTEGER_HPP
+#endif  // NDNBOOST_INTEGER_HPP
diff --git a/include/ndnboost/integer/static_log2.hpp b/include/ndnboost/integer/static_log2.hpp
index cf890f8..5140f37 100644
--- a/include/ndnboost/integer/static_log2.hpp
+++ b/include/ndnboost/integer/static_log2.hpp
@@ -13,8 +13,8 @@
 // ------------------------------------------------------------------------- //
 
 
-#ifndef BOOST_INTEGER_STATIC_LOG2_HPP
-#define BOOST_INTEGER_STATIC_LOG2_HPP
+#ifndef NDNBOOST_INTEGER_STATIC_LOG2_HPP
+#define NDNBOOST_INTEGER_STATIC_LOG2_HPP
 
 #include "ndnboost/integer_fwd.hpp" // for ndnboost::intmax_t
 
@@ -47,8 +47,8 @@
      template <result_type n>
      struct choose_initial_n {
 
-         BOOST_STATIC_CONSTANT(bool, c = (argument_type(1) << n << n) != 0);
-         BOOST_STATIC_CONSTANT(
+         NDNBOOST_STATIC_CONSTANT(bool, c = (argument_type(1) << n << n) != 0);
+         NDNBOOST_STATIC_CONSTANT(
              result_type,
              value = !c*n + choose_initial_n<2*c*n>::value
          );
@@ -57,7 +57,7 @@
 
      template <>
      struct choose_initial_n<0> {
-         BOOST_STATIC_CONSTANT(result_type, value = 0);
+         NDNBOOST_STATIC_CONSTANT(result_type, value = 0);
      };
 
 
@@ -84,8 +84,8 @@
      template <argument_type x, result_type n = initial_n>
      struct static_log2_impl {
 
-         BOOST_STATIC_CONSTANT(bool, c = (x >> n) > 0); // x >= 2**n ?
-         BOOST_STATIC_CONSTANT(
+         NDNBOOST_STATIC_CONSTANT(bool, c = (x >> n) > 0); // x >= 2**n ?
+         NDNBOOST_STATIC_CONSTANT(
              result_type,
              value = c*n + (static_log2_impl< (x>>c*n), n/2 >::value)
          );
@@ -94,7 +94,7 @@
 
      template <>
      struct static_log2_impl<1, 0> {
-        BOOST_STATIC_CONSTANT(result_type, value = 0);
+        NDNBOOST_STATIC_CONSTANT(result_type, value = 0);
      };
 
      }
@@ -109,7 +109,7 @@
  template <static_log2_argument_type x>
  struct static_log2 {
 
-     BOOST_STATIC_CONSTANT(
+     NDNBOOST_STATIC_CONSTANT(
          static_log2_result_type,
          value = detail::static_log2_impl::static_log2_impl<x>::value
      );
diff --git a/include/ndnboost/integer_fwd.hpp b/include/ndnboost/integer_fwd.hpp
index ec7dd4c..16c6e65 100644
--- a/include/ndnboost/integer_fwd.hpp
+++ b/include/ndnboost/integer_fwd.hpp
@@ -6,13 +6,13 @@
 
 //  See http://www.boost.org/libs/integer for documentation.
 
-#ifndef BOOST_INTEGER_FWD_HPP
-#define BOOST_INTEGER_FWD_HPP
+#ifndef NDNBOOST_INTEGER_FWD_HPP
+#define NDNBOOST_INTEGER_FWD_HPP
 
 #include <climits>  // for UCHAR_MAX, etc.
 #include <cstddef>  // for std::size_t
 
-#include <ndnboost/config.hpp>  // for BOOST_NO_INTRINSIC_WCHAR_T
+#include <ndnboost/config.hpp>  // for NDNBOOST_NO_INTRINSIC_WCHAR_T
 #include <ndnboost/limits.hpp>  // for std::numeric_limits
 #include <ndnboost/cstdint.hpp>  // For intmax_t
 
@@ -20,7 +20,7 @@
 namespace ndnboost
 {
 
-#ifdef BOOST_NO_INTEGRAL_INT64_T
+#ifdef NDNBOOST_NO_INTEGRAL_INT64_T
      typedef unsigned long static_log2_argument_type;
      typedef          int  static_log2_result_type;
      typedef long          static_min_max_signed_type;
@@ -54,7 +54,7 @@
 template <  >
     class integer_traits< unsigned char >;
 
-#ifndef BOOST_NO_INTRINSIC_WCHAR_T
+#ifndef NDNBOOST_NO_INTRINSIC_WCHAR_T
 template <  >
     class integer_traits< wchar_t >;
 #endif
@@ -77,13 +77,13 @@
 template <  >
     class integer_traits< unsigned long >;
 
-#if !defined(BOOST_NO_INTEGRAL_INT64_T) && !defined(BOOST_NO_INT64_T) && defined(BOOST_HAS_LONG_LONG)
+#if !defined(NDNBOOST_NO_INTEGRAL_INT64_T) && !defined(NDNBOOST_NO_INT64_T) && defined(NDNBOOST_HAS_LONG_LONG)
 template <  >
 class integer_traits<  ::ndnboost::long_long_type>;
 
 template <  >
 class integer_traits<  ::ndnboost::ulong_long_type >;
-#elif !defined(BOOST_NO_INTEGRAL_INT64_T) && !defined(BOOST_NO_INT64_T) && defined(BOOST_HAS_MS_INT64)
+#elif !defined(NDNBOOST_NO_INTEGRAL_INT64_T) && !defined(NDNBOOST_NO_INT64_T) && defined(NDNBOOST_HAS_MS_INT64)
 template <  >
 class integer_traits<__int64>;
 
@@ -103,21 +103,21 @@
 template< int Bits >
     struct uint_t;
 
-#if !defined(BOOST_NO_INTEGRAL_INT64_T) && defined(BOOST_HAS_LONG_LONG)
+#if !defined(NDNBOOST_NO_INTEGRAL_INT64_T) && defined(NDNBOOST_HAS_LONG_LONG)
     template< ndnboost::long_long_type MaxValue >   // maximum value to require support
 #else
   template< long MaxValue >   // maximum value to require support
 #endif
     struct int_max_value_t;
 
-#if !defined(BOOST_NO_INTEGRAL_INT64_T) && defined(BOOST_HAS_LONG_LONG)
+#if !defined(NDNBOOST_NO_INTEGRAL_INT64_T) && defined(NDNBOOST_HAS_LONG_LONG)
   template< ndnboost::long_long_type MinValue >   // minimum value to require support
 #else
   template< long MinValue >   // minimum value to require support
 #endif
     struct int_min_value_t;
 
-#if !defined(BOOST_NO_INTEGRAL_INT64_T) && defined(BOOST_HAS_LONG_LONG)
+#if !defined(NDNBOOST_NO_INTEGRAL_INT64_T) && defined(NDNBOOST_HAS_LONG_LONG)
   template< ndnboost::ulong_long_type MaxValue >   // maximum value to require support
 #else
   template< unsigned long MaxValue >   // maximum value to require support
@@ -161,4 +161,4 @@
 }  // namespace ndnboost
 
 
-#endif  // BOOST_INTEGER_FWD_HPP
+#endif  // NDNBOOST_INTEGER_FWD_HPP
diff --git a/include/ndnboost/integer_traits.hpp b/include/ndnboost/integer_traits.hpp
index 6abf5d1..f8a6afd 100644
--- a/include/ndnboost/integer_traits.hpp
+++ b/include/ndnboost/integer_traits.hpp
@@ -13,8 +13,8 @@
 //  See http://www.boost.org/libs/integer for documentation.
 
 
-#ifndef BOOST_INTEGER_TRAITS_HPP
-#define BOOST_INTEGER_TRAITS_HPP
+#ifndef NDNBOOST_INTEGER_TRAITS_HPP
+#define NDNBOOST_INTEGER_TRAITS_HPP
 
 #include <ndnboost/config.hpp>
 #include <ndnboost/limits.hpp>
@@ -23,7 +23,7 @@
 #include <limits.h>
 // we need wchar.h for WCHAR_MAX/MIN but not all platforms provide it,
 // and some may have <wchar.h> but not <cwchar> ...
-#if !defined(BOOST_NO_INTRINSIC_WCHAR_T) && (!defined(BOOST_NO_CWCHAR) || defined(sun) || defined(__sun) || defined(__QNX__))
+#if !defined(NDNBOOST_NO_INTRINSIC_WCHAR_T) && (!defined(NDNBOOST_NO_CWCHAR) || defined(sun) || defined(__sun) || defined(__QNX__))
 #include <wchar.h>
 #endif
 
@@ -44,7 +44,7 @@
 class integer_traits : public std::numeric_limits<T>
 {
 public:
-  BOOST_STATIC_CONSTANT(bool, is_integral = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_integral = false);
 };
 
 namespace detail {
@@ -52,12 +52,12 @@
 class integer_traits_base
 {
 public:
-  BOOST_STATIC_CONSTANT(bool, is_integral = true);
-  BOOST_STATIC_CONSTANT(T, const_min = min_val);
-  BOOST_STATIC_CONSTANT(T, const_max = max_val);
+  NDNBOOST_STATIC_CONSTANT(bool, is_integral = true);
+  NDNBOOST_STATIC_CONSTANT(T, const_min = min_val);
+  NDNBOOST_STATIC_CONSTANT(T, const_max = max_val);
 };
 
-#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
+#ifndef NDNBOOST_NO_INCLASS_MEMBER_INITIALIZATION
 //  A definition is required even for integral static constants
 template<class T, T min_val, T max_val>
 const bool integer_traits_base<T, min_val, max_val>::is_integral;
@@ -95,7 +95,7 @@
     public detail::integer_traits_base<unsigned char, 0, UCHAR_MAX>
 { };
 
-#ifndef BOOST_NO_INTRINSIC_WCHAR_T
+#ifndef NDNBOOST_NO_INTRINSIC_WCHAR_T
 template<>
 class integer_traits<wchar_t>
   : public std::numeric_limits<wchar_t>,
@@ -128,7 +128,7 @@
 #error No WCHAR_MIN and WCHAR_MAX present, please adjust integer_traits<> for your compiler.
 #endif
 { };
-#endif // BOOST_NO_INTRINSIC_WCHAR_T
+#endif // NDNBOOST_NO_INTRINSIC_WCHAR_T
 
 template<>
 class integer_traits<short>
@@ -166,8 +166,8 @@
     public detail::integer_traits_base<unsigned long, 0, ULONG_MAX>
 { };
 
-#if !defined(BOOST_NO_INTEGRAL_INT64_T) && !defined(BOOST_NO_INT64_T)
-#if defined(ULLONG_MAX) && defined(BOOST_HAS_LONG_LONG)
+#if !defined(NDNBOOST_NO_INTEGRAL_INT64_T) && !defined(NDNBOOST_NO_INT64_T)
+#if defined(ULLONG_MAX) && defined(NDNBOOST_HAS_LONG_LONG)
 
 template<>
 class integer_traits< ::ndnboost::long_long_type>
@@ -181,7 +181,7 @@
     public detail::integer_traits_base< ::ndnboost::ulong_long_type, 0, ULLONG_MAX>
 { };
 
-#elif defined(ULONG_LONG_MAX) && defined(BOOST_HAS_LONG_LONG)
+#elif defined(ULONG_LONG_MAX) && defined(NDNBOOST_HAS_LONG_LONG)
 
 template<>
 class integer_traits< ::ndnboost::long_long_type>  : public std::numeric_limits< ::ndnboost::long_long_type>,    public detail::integer_traits_base< ::ndnboost::long_long_type, LONG_LONG_MIN, LONG_LONG_MAX>{ };
@@ -191,7 +191,7 @@
     public detail::integer_traits_base< ::ndnboost::ulong_long_type, 0, ULONG_LONG_MAX>
 { };
 
-#elif defined(ULONGLONG_MAX) && defined(BOOST_HAS_LONG_LONG)
+#elif defined(ULONGLONG_MAX) && defined(NDNBOOST_HAS_LONG_LONG)
 
 template<>
 class integer_traits< ::ndnboost::long_long_type>
@@ -205,7 +205,7 @@
     public detail::integer_traits_base< ::ndnboost::ulong_long_type, 0, ULONGLONG_MAX>
 { };
 
-#elif defined(_LLONG_MAX) && defined(_C2) && defined(BOOST_HAS_LONG_LONG)
+#elif defined(_LLONG_MAX) && defined(_C2) && defined(NDNBOOST_HAS_LONG_LONG)
 
 template<>
 class integer_traits< ::ndnboost::long_long_type>
@@ -219,7 +219,7 @@
     public detail::integer_traits_base< ::ndnboost::ulong_long_type, 0, _ULLONG_MAX>
 { };
 
-#elif defined(BOOST_HAS_LONG_LONG)
+#elif defined(NDNBOOST_HAS_LONG_LONG)
 //
 // we have long long but no constants, this happens for example with gcc in -ansi mode,
 // we'll just have to work out the values for ourselves (assumes 2's compliment representation):
@@ -236,7 +236,7 @@
     public detail::integer_traits_base< ::ndnboost::ulong_long_type, 0, ~0uLL>
 { };
 
-#elif defined(BOOST_HAS_MS_INT64)
+#elif defined(NDNBOOST_HAS_MS_INT64)
 
 template<>
 class integer_traits< __int64>
@@ -255,7 +255,7 @@
 
 } // namespace ndnboost
 
-#endif /* BOOST_INTEGER_TRAITS_HPP */
+#endif /* NDNBOOST_INTEGER_TRAITS_HPP */
 
 
 
diff --git a/include/ndnboost/intrusive/detail/config_begin.hpp b/include/ndnboost/intrusive/detail/config_begin.hpp
index 5350c1c..4e7ce04 100644
--- a/include/ndnboost/intrusive/detail/config_begin.hpp
+++ b/include/ndnboost/intrusive/detail/config_begin.hpp
@@ -10,12 +10,12 @@
 //
 /////////////////////////////////////////////////////////////////////////////
 
-#ifndef BOOST_INTRUSIVE_CONFIG_INCLUDED
-#define BOOST_INTRUSIVE_CONFIG_INCLUDED
+#ifndef NDNBOOST_INTRUSIVE_CONFIG_INCLUDED
+#define NDNBOOST_INTRUSIVE_CONFIG_INCLUDED
 #include <ndnboost/config.hpp>
 #endif
 
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
 
    #pragma warning (push)
    //
@@ -48,5 +48,5 @@
    #pragma warning (disable : 4512) //'typeid' used on polymorphic type 'ndnboost::exception' with /GR-
 #endif
 
-//#define BOOST_INTRUSIVE_USE_ITERATOR_FACADE
-//#define BOOST_INTRUSIVE_USE_ITERATOR_ENABLE_IF_CONVERTIBLE
+//#define NDNBOOST_INTRUSIVE_USE_ITERATOR_FACADE
+//#define NDNBOOST_INTRUSIVE_USE_ITERATOR_ENABLE_IF_CONVERTIBLE
diff --git a/include/ndnboost/intrusive/detail/config_end.hpp b/include/ndnboost/intrusive/detail/config_end.hpp
index d653030..6aa1214 100644
--- a/include/ndnboost/intrusive/detail/config_end.hpp
+++ b/include/ndnboost/intrusive/detail/config_end.hpp
@@ -10,6 +10,6 @@
 //
 /////////////////////////////////////////////////////////////////////////////
 
-#if defined BOOST_MSVC
+#if defined NDNBOOST_MSVC
    #pragma warning (pop)
 #endif
diff --git a/include/ndnboost/intrusive/detail/has_member_function_callable_with.hpp b/include/ndnboost/intrusive/detail/has_member_function_callable_with.hpp
index a9cdff9..56da5b9 100644
--- a/include/ndnboost/intrusive/detail/has_member_function_callable_with.hpp
+++ b/include/ndnboost/intrusive/detail/has_member_function_callable_with.hpp
@@ -10,10 +10,10 @@
 
 // sample.h
 
-#if !defined(BOOST_PP_IS_ITERATING)
+#if !defined(NDNBOOST_PP_IS_ITERATING)
 
-   #ifndef BOOST_INTRUSIVE_DETAIL_HAS_MEMBER_FUNCTION_CALLABLE_WITH_DETAILS_INCLUDED
-   #define BOOST_INTRUSIVE_DETAIL_HAS_MEMBER_FUNCTION_CALLABLE_WITH_DETAILS_INCLUDED
+   #ifndef NDNBOOST_INTRUSIVE_DETAIL_HAS_MEMBER_FUNCTION_CALLABLE_WITH_DETAILS_INCLUDED
+   #define NDNBOOST_INTRUSIVE_DETAIL_HAS_MEMBER_FUNCTION_CALLABLE_WITH_DETAILS_INCLUDED
 
       #include <ndnboost/intrusive/detail/config_begin.hpp>
       #include <ndnboost/intrusive/detail/workaround.hpp>
@@ -25,9 +25,9 @@
       //Mark that we don't support 0 arg calls due to compiler ICE in GCC 3.4/4.0/4.1 and
       //wrong SFINAE for GCC 4.2/4.3
       #if defined(__GNUC__) && !defined(__clang__) && ((__GNUC__*100 + __GNUC_MINOR__*10) >= 340) && ((__GNUC__*100 + __GNUC_MINOR__*10) <= 430)
-      #define BOOST_INTRUSIVE_DETAIL_HAS_MEMBER_FUNCTION_CALLABLE_WITH_0_ARGS_UNSUPPORTED
-      #elif defined(BOOST_INTEL) && (BOOST_INTEL < 1200 )
-      #define BOOST_INTRUSIVE_DETAIL_HAS_MEMBER_FUNCTION_CALLABLE_WITH_0_ARGS_UNSUPPORTED
+      #define NDNBOOST_INTRUSIVE_DETAIL_HAS_MEMBER_FUNCTION_CALLABLE_WITH_0_ARGS_UNSUPPORTED
+      #elif defined(NDNBOOST_INTEL) && (NDNBOOST_INTEL < 1200 )
+      #define NDNBOOST_INTRUSIVE_DETAIL_HAS_MEMBER_FUNCTION_CALLABLE_WITH_0_ARGS_UNSUPPORTED
       #endif
 
       namespace ndnboost_intrusive_has_member_function_callable_with {
@@ -54,36 +54,36 @@
 
       #include <ndnboost/intrusive/detail/config_end.hpp>
 
-   #endif   //BOOST_INTRUSIVE_DETAIL_HAS_MEMBER_FUNCTION_CALLABLE_WITH_DETAILS_INCLUDED
+   #endif   //NDNBOOST_INTRUSIVE_DETAIL_HAS_MEMBER_FUNCTION_CALLABLE_WITH_DETAILS_INCLUDED
 
-#else //!BOOST_PP_IS_ITERATING
+#else //!NDNBOOST_PP_IS_ITERATING
 
-   #ifndef  BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME
-   #error "BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME not defined!"
+   #ifndef  NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME
+   #error "NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME not defined!"
    #endif
 
-   #ifndef  BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEGIN
-   #error "BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEGIN not defined!"
+   #ifndef  NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEGIN
+   #error "NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEGIN not defined!"
    #endif
 
-   #ifndef  BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_END
-   #error "BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_END not defined!"
+   #ifndef  NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_END
+   #error "NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_END not defined!"
    #endif
 
-   #if BOOST_PP_ITERATION_START() != 0
-   #error "BOOST_PP_ITERATION_START() must be zero (0)"
+   #if NDNBOOST_PP_ITERATION_START() != 0
+   #error "NDNBOOST_PP_ITERATION_START() must be zero (0)"
    #endif
 
-   #if BOOST_PP_ITERATION() == 0
+   #if NDNBOOST_PP_ITERATION() == 0
 
-      BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEGIN
+      NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEGIN
 
       template <typename Type>
-      class BOOST_PP_CAT(has_member_function_named_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)
+      class NDNBOOST_PP_CAT(has_member_function_named_, NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)
       {
          struct BaseMixin
          {
-            void BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME();
+            void NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME();
          };
 
          struct Base : public ::ndnboost::intrusive::detail::remove_cv<Type>::type, public BaseMixin { Base(); };
@@ -91,7 +91,7 @@
 
          template <typename U>
          static ndnboost_intrusive_has_member_function_callable_with::no_type  deduce
-            (U*, Helper<void (BaseMixin::*)(), &U::BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME>* = 0);
+            (U*, Helper<void (BaseMixin::*)(), &U::NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME>* = 0);
          static ndnboost_intrusive_has_member_function_callable_with::yes_type deduce(...);
 
          public:
@@ -99,16 +99,16 @@
             sizeof(ndnboost_intrusive_has_member_function_callable_with::yes_type) == sizeof(deduce((Base*)(0)));
       };
 
-      #if !defined(BOOST_INTRUSIVE_PERFECT_FORWARDING)
+      #if !defined(NDNBOOST_INTRUSIVE_PERFECT_FORWARDING)
 
          template<typename Fun, bool HasFunc
-                  BOOST_PP_ENUM_TRAILING(BOOST_PP_ITERATION_FINISH(), BOOST_INTRUSIVE_PP_TEMPLATE_PARAM_VOID_DEFAULT, _)>
-         struct BOOST_PP_CAT(BOOST_PP_CAT(has_member_function_callable_with_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME), _impl);
+                  NDNBOOST_PP_ENUM_TRAILING(NDNBOOST_PP_ITERATION_FINISH(), NDNBOOST_INTRUSIVE_PP_TEMPLATE_PARAM_VOID_DEFAULT, _)>
+         struct NDNBOOST_PP_CAT(NDNBOOST_PP_CAT(has_member_function_callable_with_, NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME), _impl);
          //!
 
-         template<typename Fun BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_PP_ITERATION_FINISH(), class P)>
-         struct BOOST_PP_CAT(BOOST_PP_CAT(has_member_function_callable_with_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME), _impl)
-            <Fun, false BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_PP_ITERATION_FINISH(), P)>
+         template<typename Fun NDNBOOST_PP_ENUM_TRAILING_PARAMS(NDNBOOST_PP_ITERATION_FINISH(), class P)>
+         struct NDNBOOST_PP_CAT(NDNBOOST_PP_CAT(has_member_function_callable_with_, NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME), _impl)
+            <Fun, false NDNBOOST_PP_ENUM_TRAILING_PARAMS(NDNBOOST_PP_ITERATION_FINISH(), P)>
          {
             static const bool value = false;
          };
@@ -116,46 +116,46 @@
 
          #if !defined(_MSC_VER) || (_MSC_VER < 1600)
 
-            #if defined(BOOST_INTRUSIVE_DETAIL_HAS_MEMBER_FUNCTION_CALLABLE_WITH_0_ARGS_UNSUPPORTED)
+            #if defined(NDNBOOST_INTRUSIVE_DETAIL_HAS_MEMBER_FUNCTION_CALLABLE_WITH_0_ARGS_UNSUPPORTED)
 
             template<typename Fun>
-            struct BOOST_PP_CAT(BOOST_PP_CAT(has_member_function_callable_with_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME),_impl)
-               <Fun, true BOOST_PP_ENUM_TRAILING(BOOST_PP_SUB(BOOST_PP_ITERATION_FINISH(), BOOST_PP_ITERATION()), BOOST_INTRUSIVE_PP_IDENTITY, void)>
+            struct NDNBOOST_PP_CAT(NDNBOOST_PP_CAT(has_member_function_callable_with_, NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME),_impl)
+               <Fun, true NDNBOOST_PP_ENUM_TRAILING(NDNBOOST_PP_SUB(NDNBOOST_PP_ITERATION_FINISH(), NDNBOOST_PP_ITERATION()), NDNBOOST_INTRUSIVE_PP_IDENTITY, void)>
             {
                //Mark that we don't support 0 arg calls due to compiler ICE in GCC 3.4/4.0/4.1 and
                //wrong SFINAE for GCC 4.2/4.3
                static const bool value = true;
             };
 
-            #else //defined(BOOST_INTRUSIVE_DETAIL_HAS_MEMBER_FUNCTION_CALLABLE_WITH_0_ARGS_UNSUPPORTED)
+            #else //defined(NDNBOOST_INTRUSIVE_DETAIL_HAS_MEMBER_FUNCTION_CALLABLE_WITH_0_ARGS_UNSUPPORTED)
 
             //Special case for 0 args
             template< class F
                   , std::size_t N =
                         sizeof((ndnboost::move_detail::declval<F>().
-                           BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME (), 0))>
-            struct BOOST_PP_CAT(zeroarg_checker_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)
+                           NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME (), 0))>
+            struct NDNBOOST_PP_CAT(zeroarg_checker_, NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)
             {
                ndnboost_intrusive_has_member_function_callable_with::yes_type dummy;
-               BOOST_PP_CAT(zeroarg_checker_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)(int);
+               NDNBOOST_PP_CAT(zeroarg_checker_, NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)(int);
             };
 
             //For buggy compilers like MSVC 7.1+ ((F*)0)->func() does not
             //SFINAE-out the zeroarg_checker_ instantiation but sizeof yields to 0.
             template<class F>
-            struct BOOST_PP_CAT(zeroarg_checker_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)<F, 0>
+            struct NDNBOOST_PP_CAT(zeroarg_checker_, NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)<F, 0>
             {
                ndnboost_intrusive_has_member_function_callable_with::no_type dummy;
-               BOOST_PP_CAT(zeroarg_checker_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)(int);
+               NDNBOOST_PP_CAT(zeroarg_checker_, NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)(int);
             };
 
             template<typename Fun>
-            struct BOOST_PP_CAT(BOOST_PP_CAT(has_member_function_callable_with_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME),_impl)
-               <Fun, true BOOST_PP_ENUM_TRAILING(BOOST_PP_SUB(BOOST_PP_ITERATION_FINISH(), BOOST_PP_ITERATION()), BOOST_INTRUSIVE_PP_IDENTITY, void)>
+            struct NDNBOOST_PP_CAT(NDNBOOST_PP_CAT(has_member_function_callable_with_, NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME),_impl)
+               <Fun, true NDNBOOST_PP_ENUM_TRAILING(NDNBOOST_PP_SUB(NDNBOOST_PP_ITERATION_FINISH(), NDNBOOST_PP_ITERATION()), NDNBOOST_INTRUSIVE_PP_IDENTITY, void)>
             {
                template<class U>
-               static BOOST_PP_CAT(zeroarg_checker_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)<U>
-                  Test(BOOST_PP_CAT(zeroarg_checker_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)<U>*);
+               static NDNBOOST_PP_CAT(zeroarg_checker_, NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)<U>
+                  Test(NDNBOOST_PP_CAT(zeroarg_checker_, NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)<U>*);
 
                template <class U>
                static ndnboost_intrusive_has_member_function_callable_with::no_type Test(...);
@@ -163,15 +163,15 @@
                static const bool value = sizeof(Test< Fun >(0))
                                     == sizeof(ndnboost_intrusive_has_member_function_callable_with::yes_type);
             };
-            #endif   //defined(BOOST_INTRUSIVE_DETAIL_HAS_MEMBER_FUNCTION_CALLABLE_WITH_0_ARGS_UNSUPPORTED)
+            #endif   //defined(NDNBOOST_INTRUSIVE_DETAIL_HAS_MEMBER_FUNCTION_CALLABLE_WITH_0_ARGS_UNSUPPORTED)
 
          #else //#if !defined(_MSC_VER) || (_MSC_VER < 1600)
             template<typename Fun>
-            struct BOOST_PP_CAT(BOOST_PP_CAT(has_member_function_callable_with_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME),_impl)
-               <Fun, true BOOST_PP_ENUM_TRAILING(BOOST_PP_SUB(BOOST_PP_ITERATION_FINISH(), BOOST_PP_ITERATION()), BOOST_INTRUSIVE_PP_IDENTITY, void)>
+            struct NDNBOOST_PP_CAT(NDNBOOST_PP_CAT(has_member_function_callable_with_, NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME),_impl)
+               <Fun, true NDNBOOST_PP_ENUM_TRAILING(NDNBOOST_PP_SUB(NDNBOOST_PP_ITERATION_FINISH(), NDNBOOST_PP_ITERATION()), NDNBOOST_INTRUSIVE_PP_IDENTITY, void)>
             {
                template<class U>
-               static decltype( ndnboost::move_detail::declval<Fun>().BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME()
+               static decltype( ndnboost::move_detail::declval<Fun>().NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME()
                               , ndnboost_intrusive_has_member_function_callable_with::yes_type())
                   Test(Fun*);
 
@@ -183,13 +183,13 @@
             };
          #endif   //#if !defined(_MSC_VER) || (_MSC_VER < 1600)
 
-      #else   //#if !defined(BOOST_INTRUSIVE_PERFECT_FORWARDING)
+      #else   //#if !defined(NDNBOOST_INTRUSIVE_PERFECT_FORWARDING)
 
          template<typename Fun, bool HasFunc, class ...Args>
-         struct BOOST_PP_CAT(BOOST_PP_CAT(has_member_function_callable_with_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME),_impl);
+         struct NDNBOOST_PP_CAT(NDNBOOST_PP_CAT(has_member_function_callable_with_, NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME),_impl);
 
          template<typename Fun, class ...Args>
-         struct BOOST_PP_CAT(BOOST_PP_CAT(has_member_function_callable_with_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME),_impl)
+         struct NDNBOOST_PP_CAT(NDNBOOST_PP_CAT(has_member_function_callable_with_, NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME),_impl)
             <Fun, false, Args...>
          {
             static const bool value = false;
@@ -199,29 +199,29 @@
          template< class F
                , std::size_t N =
                      sizeof((ndnboost::move_detail::declval<F>().
-                        BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME (), 0))>
-         struct BOOST_PP_CAT(zeroarg_checker_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)
+                        NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME (), 0))>
+         struct NDNBOOST_PP_CAT(zeroarg_checker_, NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)
          {
             ndnboost_intrusive_has_member_function_callable_with::yes_type dummy;
-            BOOST_PP_CAT(zeroarg_checker_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)(int);
+            NDNBOOST_PP_CAT(zeroarg_checker_, NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)(int);
          };
 
          //For buggy compilers like MSVC 7.1+ ((F*)0)->func() does not
          //SFINAE-out the zeroarg_checker_ instantiation but sizeof yields to 0.
          template<class F>
-         struct BOOST_PP_CAT(zeroarg_checker_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)<F, 0>
+         struct NDNBOOST_PP_CAT(zeroarg_checker_, NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)<F, 0>
          {
             ndnboost_intrusive_has_member_function_callable_with::no_type dummy;
-            BOOST_PP_CAT(zeroarg_checker_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)(int);
+            NDNBOOST_PP_CAT(zeroarg_checker_, NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)(int);
          };
 
          template<typename Fun>
-         struct BOOST_PP_CAT(BOOST_PP_CAT(has_member_function_callable_with_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME),_impl)
+         struct NDNBOOST_PP_CAT(NDNBOOST_PP_CAT(has_member_function_callable_with_, NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME),_impl)
             <Fun, true>
          {
             template<class U>
-            static BOOST_PP_CAT(zeroarg_checker_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)
-               <U> Test(BOOST_PP_CAT(zeroarg_checker_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)<U>*);
+            static NDNBOOST_PP_CAT(zeroarg_checker_, NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)
+               <U> Test(NDNBOOST_PP_CAT(zeroarg_checker_, NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)<U>*);
 
             template <class U>
             static ndnboost_intrusive_has_member_function_callable_with::no_type Test(...);
@@ -231,19 +231,19 @@
          };
 
          template<typename Fun, class ...DontCares>
-         struct BOOST_PP_CAT( funwrap_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME )
+         struct NDNBOOST_PP_CAT( funwrap_, NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME )
             : Fun
          {
-            BOOST_PP_CAT( funwrap_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME )();
-            using Fun::BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME;
+            NDNBOOST_PP_CAT( funwrap_, NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME )();
+            using Fun::NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME;
 
             ndnboost_intrusive_has_member_function_callable_with::private_type
-               BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME
+               NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME
                   ( DontCares...)  const;
          };
 
          template<typename Fun, class ...Args>
-         struct BOOST_PP_CAT( BOOST_PP_CAT(has_member_function_callable_with_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME), _impl)
+         struct NDNBOOST_PP_CAT( NDNBOOST_PP_CAT(has_member_function_callable_with_, NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME), _impl)
             <Fun, true , Args...>
          {
             template<class T>
@@ -252,106 +252,106 @@
                typedef ndnboost_intrusive_has_member_function_callable_with::dont_care type;
             };
 
-            typedef BOOST_PP_CAT( funwrap_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME )
+            typedef NDNBOOST_PP_CAT( funwrap_, NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME )
                <Fun, typename make_dontcare<Args>::type...> FunWrap;
 
             static bool const value = (sizeof(ndnboost_intrusive_has_member_function_callable_with::no_type) ==
                                        sizeof(ndnboost_intrusive_has_member_function_callable_with::is_private_type
                                                 ( (::ndnboost::move_detail::declval< FunWrap >().
-                                          BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME
+                                          NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME
                                              ( ::ndnboost::move_detail::declval<Args>()... ), 0) )
                                              )
                                        );
          };
 
          template<typename Fun, class ...Args>
-         struct BOOST_PP_CAT( has_member_function_callable_with_
-                            , BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)
-            : public BOOST_PP_CAT( BOOST_PP_CAT(has_member_function_callable_with_
-                                 , BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME),_impl)
+         struct NDNBOOST_PP_CAT( has_member_function_callable_with_
+                            , NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)
+            : public NDNBOOST_PP_CAT( NDNBOOST_PP_CAT(has_member_function_callable_with_
+                                 , NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME),_impl)
                < Fun
-               , BOOST_PP_CAT( has_member_function_named_
-                             , BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME )<Fun>::value
+               , NDNBOOST_PP_CAT( has_member_function_named_
+                             , NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME )<Fun>::value
                , Args... >
          {};
 
-      #endif   //#if !defined(BOOST_INTRUSIVE_PERFECT_FORWARDING)
+      #endif   //#if !defined(NDNBOOST_INTRUSIVE_PERFECT_FORWARDING)
 
-      BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_END
+      NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_END
 
-   #else   //BOOST_PP_ITERATION() == 0
+   #else   //NDNBOOST_PP_ITERATION() == 0
 
-      #if !defined(BOOST_INTRUSIVE_PERFECT_FORWARDING)
+      #if !defined(NDNBOOST_INTRUSIVE_PERFECT_FORWARDING)
 
-         BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEGIN
+         NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEGIN
 
          template<typename Fun>
-         struct BOOST_PP_CAT( BOOST_PP_CAT(funwrap, BOOST_PP_ITERATION())
-                           , BOOST_PP_CAT(_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME))
+         struct NDNBOOST_PP_CAT( NDNBOOST_PP_CAT(funwrap, NDNBOOST_PP_ITERATION())
+                           , NDNBOOST_PP_CAT(_, NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME))
             : Fun
          {
-            BOOST_PP_CAT( BOOST_PP_CAT(funwrap, BOOST_PP_ITERATION())
-                        , BOOST_PP_CAT(_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME))();
+            NDNBOOST_PP_CAT( NDNBOOST_PP_CAT(funwrap, NDNBOOST_PP_ITERATION())
+                        , NDNBOOST_PP_CAT(_, NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME))();
 
-            using Fun::BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME;
+            using Fun::NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME;
             ndnboost_intrusive_has_member_function_callable_with::private_type
-               BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME
-                  ( BOOST_PP_ENUM(BOOST_PP_ITERATION()
-                  , BOOST_INTRUSIVE_PP_IDENTITY
+               NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME
+                  ( NDNBOOST_PP_ENUM(NDNBOOST_PP_ITERATION()
+                  , NDNBOOST_INTRUSIVE_PP_IDENTITY
                   , ndnboost_intrusive_has_member_function_callable_with::dont_care))  const;
          };
 
-         template<typename Fun BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_PP_ITERATION(), class P)>
-         struct BOOST_PP_CAT( BOOST_PP_CAT(has_member_function_callable_with_
-                            , BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME),_impl)
+         template<typename Fun NDNBOOST_PP_ENUM_TRAILING_PARAMS(NDNBOOST_PP_ITERATION(), class P)>
+         struct NDNBOOST_PP_CAT( NDNBOOST_PP_CAT(has_member_function_callable_with_
+                            , NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME),_impl)
             <Fun, true
-            BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_PP_ITERATION(), P)
-            BOOST_PP_ENUM_TRAILING( BOOST_PP_SUB(BOOST_PP_ITERATION_FINISH(), BOOST_PP_ITERATION())
-                                  , BOOST_INTRUSIVE_PP_IDENTITY
+            NDNBOOST_PP_ENUM_TRAILING_PARAMS(NDNBOOST_PP_ITERATION(), P)
+            NDNBOOST_PP_ENUM_TRAILING( NDNBOOST_PP_SUB(NDNBOOST_PP_ITERATION_FINISH(), NDNBOOST_PP_ITERATION())
+                                  , NDNBOOST_INTRUSIVE_PP_IDENTITY
                                   , void)>
          {
-            typedef BOOST_PP_CAT( BOOST_PP_CAT(funwrap, BOOST_PP_ITERATION())
-                              , BOOST_PP_CAT(_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME))<Fun>
+            typedef NDNBOOST_PP_CAT( NDNBOOST_PP_CAT(funwrap, NDNBOOST_PP_ITERATION())
+                              , NDNBOOST_PP_CAT(_, NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME))<Fun>
                      FunWrap;
             static bool const value =
             (sizeof(ndnboost_intrusive_has_member_function_callable_with::no_type) ==
                sizeof(ndnboost_intrusive_has_member_function_callable_with::is_private_type
                         (  (ndnboost::move_detail::declval<FunWrap>().
-                              BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME
-                                 ( BOOST_PP_ENUM( BOOST_PP_ITERATION(), BOOST_INTRUSIVE_PP_DECLVAL, _) ), 0
+                              NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME
+                                 ( NDNBOOST_PP_ENUM( NDNBOOST_PP_ITERATION(), NDNBOOST_INTRUSIVE_PP_DECLVAL, _) ), 0
                            )
                         )
                      )
             );
          };
 
-         BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_END
-      #endif   //#if !defined(BOOST_INTRUSIVE_PERFECT_FORWARDING)
+         NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_END
+      #endif   //#if !defined(NDNBOOST_INTRUSIVE_PERFECT_FORWARDING)
 
-   #endif   //BOOST_PP_ITERATION() == 0
+   #endif   //NDNBOOST_PP_ITERATION() == 0
 
-   #if BOOST_PP_ITERATION() == BOOST_PP_ITERATION_FINISH()
+   #if NDNBOOST_PP_ITERATION() == NDNBOOST_PP_ITERATION_FINISH()
 
-      #if !defined(BOOST_INTRUSIVE_PERFECT_FORWARDING)
+      #if !defined(NDNBOOST_INTRUSIVE_PERFECT_FORWARDING)
 
-         BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEGIN
+         NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEGIN
 
          template<typename Fun
-                  BOOST_PP_ENUM_TRAILING(BOOST_PP_ITERATION_FINISH(), BOOST_INTRUSIVE_PP_TEMPLATE_PARAM_VOID_DEFAULT, _)>
-         struct BOOST_PP_CAT(has_member_function_callable_with_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)
-            : public BOOST_PP_CAT(BOOST_PP_CAT(has_member_function_callable_with_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME), _impl)
-               <Fun, BOOST_PP_CAT(has_member_function_named_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)<Fun>::value
-               BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_PP_ITERATION_FINISH(), P) >
+                  NDNBOOST_PP_ENUM_TRAILING(NDNBOOST_PP_ITERATION_FINISH(), NDNBOOST_INTRUSIVE_PP_TEMPLATE_PARAM_VOID_DEFAULT, _)>
+         struct NDNBOOST_PP_CAT(has_member_function_callable_with_, NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)
+            : public NDNBOOST_PP_CAT(NDNBOOST_PP_CAT(has_member_function_callable_with_, NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME), _impl)
+               <Fun, NDNBOOST_PP_CAT(has_member_function_named_, NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)<Fun>::value
+               NDNBOOST_PP_ENUM_TRAILING_PARAMS(NDNBOOST_PP_ITERATION_FINISH(), P) >
          {};
 
-         BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_END
+         NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_END
 
-      #endif //#if !defined(BOOST_INTRUSIVE_PERFECT_FORWARDING)
+      #endif //#if !defined(NDNBOOST_INTRUSIVE_PERFECT_FORWARDING)
 
-      #undef BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME
-      #undef BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEGIN
-      #undef BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_END
+      #undef NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME
+      #undef NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEGIN
+      #undef NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_END
 
-   #endif   //#if BOOST_PP_ITERATION() == BOOST_PP_ITERATION_FINISH()
+   #endif   //#if NDNBOOST_PP_ITERATION() == NDNBOOST_PP_ITERATION_FINISH()
 
-#endif   //!BOOST_PP_IS_ITERATING
+#endif   //!NDNBOOST_PP_IS_ITERATING
diff --git a/include/ndnboost/intrusive/detail/memory_util.hpp b/include/ndnboost/intrusive/detail/memory_util.hpp
index 81cc105..4d88ef9 100644
--- a/include/ndnboost/intrusive/detail/memory_util.hpp
+++ b/include/ndnboost/intrusive/detail/memory_util.hpp
@@ -14,8 +14,8 @@
 //
 //////////////////////////////////////////////////////////////////////////////
 
-#ifndef BOOST_INTRUSIVE_ALLOCATOR_MEMORY_UTIL_HPP
-#define BOOST_INTRUSIVE_ALLOCATOR_MEMORY_UTIL_HPP
+#ifndef NDNBOOST_INTRUSIVE_ALLOCATOR_MEMORY_UTIL_HPP
+#define NDNBOOST_INTRUSIVE_ALLOCATOR_MEMORY_UTIL_HPP
 
 #if (defined _MSC_VER) && (_MSC_VER >= 1200)
 #  pragma once
@@ -53,7 +53,7 @@
 };
 
 // Infrastructure for providing a default type for T::TNAME if absent.
-#define BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(TNAME)              \
+#define NDNBOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(TNAME)              \
    template <typename T, typename DefaultType>                             \
    struct boost_intrusive_default_type_ ## TNAME                           \
    {                                                                       \
@@ -97,12 +97,12 @@
    };                                                                      \
 //
 
-#define BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_DEFAULT(INSTANTIATION_NS_PREFIX, T, TNAME, TIMPL)   \
+#define NDNBOOST_INTRUSIVE_OBTAIN_TYPE_WITH_DEFAULT(INSTANTIATION_NS_PREFIX, T, TNAME, TIMPL)   \
       typename INSTANTIATION_NS_PREFIX                                                       \
          boost_intrusive_default_type_ ## TNAME< T, TIMPL >::type                            \
 //
 
-#define BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_EVAL_DEFAULT(INSTANTIATION_NS_PREFIX, T, TNAME, TIMPL) \
+#define NDNBOOST_INTRUSIVE_OBTAIN_TYPE_WITH_EVAL_DEFAULT(INSTANTIATION_NS_PREFIX, T, TNAME, TIMPL) \
       typename INSTANTIATION_NS_PREFIX                                                          \
          boost_intrusive_eval_default_type_ ## TNAME< T, TIMPL >::type                          \
 //
@@ -111,36 +111,36 @@
 
 #include <ndnboost/intrusive/detail/has_member_function_callable_with.hpp>
 
-#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME pointer_to
-#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEGIN namespace ndnboost { namespace intrusive { namespace detail {
-#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_END   }}}
-#define BOOST_PP_ITERATION_PARAMS_1 (3, (0, 1, <ndnboost/intrusive/detail/has_member_function_callable_with.hpp>))
-#include BOOST_PP_ITERATE()
+#define NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME pointer_to
+#define NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEGIN namespace ndnboost { namespace intrusive { namespace detail {
+#define NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_END   }}}
+#define NDNBOOST_PP_ITERATION_PARAMS_1 (3, (0, 1, <ndnboost/intrusive/detail/has_member_function_callable_with.hpp>))
+#include NDNBOOST_PP_ITERATE()
 
-#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME static_cast_from
-#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEGIN namespace ndnboost { namespace intrusive { namespace detail {
-#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_END   }}}
-#define BOOST_PP_ITERATION_PARAMS_1 (3, (0, 1, <ndnboost/intrusive/detail/has_member_function_callable_with.hpp>))
-#include BOOST_PP_ITERATE()
+#define NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME static_cast_from
+#define NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEGIN namespace ndnboost { namespace intrusive { namespace detail {
+#define NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_END   }}}
+#define NDNBOOST_PP_ITERATION_PARAMS_1 (3, (0, 1, <ndnboost/intrusive/detail/has_member_function_callable_with.hpp>))
+#include NDNBOOST_PP_ITERATE()
 
-#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME const_cast_from
-#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEGIN namespace ndnboost { namespace intrusive { namespace detail {
-#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_END   }}}
-#define BOOST_PP_ITERATION_PARAMS_1 (3, (0, 1, <ndnboost/intrusive/detail/has_member_function_callable_with.hpp>))
-#include BOOST_PP_ITERATE()
+#define NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME const_cast_from
+#define NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEGIN namespace ndnboost { namespace intrusive { namespace detail {
+#define NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_END   }}}
+#define NDNBOOST_PP_ITERATION_PARAMS_1 (3, (0, 1, <ndnboost/intrusive/detail/has_member_function_callable_with.hpp>))
+#include NDNBOOST_PP_ITERATE()
 
-#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME dynamic_cast_from
-#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEGIN namespace ndnboost { namespace intrusive { namespace detail {
-#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_END   }}}
-#define BOOST_PP_ITERATION_PARAMS_1 (3, (0, 1, <ndnboost/intrusive/detail/has_member_function_callable_with.hpp>))
-#include BOOST_PP_ITERATE()
+#define NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME dynamic_cast_from
+#define NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEGIN namespace ndnboost { namespace intrusive { namespace detail {
+#define NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_END   }}}
+#define NDNBOOST_PP_ITERATION_PARAMS_1 (3, (0, 1, <ndnboost/intrusive/detail/has_member_function_callable_with.hpp>))
+#include NDNBOOST_PP_ITERATE()
 
 namespace ndnboost {
 namespace intrusive {
 namespace detail {
 
-BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(element_type)
-BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(difference_type)
+NDNBOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(element_type)
+NDNBOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(difference_type)
 
 //////////////////////
 //struct first_param
@@ -149,7 +149,7 @@
 template <typename T> struct first_param
 {  typedef void type;   };
 
-#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
+#if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
 
    template <template <typename, typename...> class TemplateClass, typename T, typename... Args>
    struct first_param< TemplateClass<T, Args...> >
@@ -159,21 +159,21 @@
 
 #else //C++03 compilers
 
-   #define BOOST_PP_LOCAL_MACRO(n)                                                  \
+   #define NDNBOOST_PP_LOCAL_MACRO(n)                                                  \
    template < template <typename                                                    \
-               BOOST_PP_ENUM_TRAILING(n, BOOST_INTRUSIVE_PP_IDENTITY, typename) >   \
+               NDNBOOST_PP_ENUM_TRAILING(n, NDNBOOST_INTRUSIVE_PP_IDENTITY, typename) >   \
             class TemplateClass                                                     \
-            , typename T BOOST_PP_ENUM_TRAILING_PARAMS(n, class P)>                 \
+            , typename T NDNBOOST_PP_ENUM_TRAILING_PARAMS(n, class P)>                 \
    struct first_param                                                               \
-      < TemplateClass<T BOOST_PP_ENUM_TRAILING_PARAMS(n, P)> >                      \
+      < TemplateClass<T NDNBOOST_PP_ENUM_TRAILING_PARAMS(n, P)> >                      \
    {                                                                                \
       typedef T type;                                                               \
    };                                                                               \
    //
-   #define BOOST_PP_LOCAL_LIMITS (0, BOOST_INTRUSIVE_MAX_CONSTRUCTOR_PARAMETERS)
-   #include BOOST_PP_LOCAL_ITERATE()
+   #define NDNBOOST_PP_LOCAL_LIMITS (0, NDNBOOST_INTRUSIVE_MAX_CONSTRUCTOR_PARAMETERS)
+   #include NDNBOOST_PP_LOCAL_ITERATE()
 
-#endif   //!defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
+#endif   //!defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
 
 ///////////////////////////
 //struct type_rebind_mode
@@ -245,7 +245,7 @@
 // OtherArgs>, where OtherArgs comprises zero or more type parameters.
 // Many pointers fit this form, hence many pointers will get a
 // reasonable default for rebind.
-#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
+#if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
 
 template <template <class, class...> class Ptr, typename T, class... Tn, class U>
 struct type_rebinder<Ptr<T, Tn...>, U, 0u >
@@ -262,22 +262,22 @@
 
 #else //C++03 compilers
 
-#define BOOST_PP_LOCAL_MACRO(n)                                                  \
+#define NDNBOOST_PP_LOCAL_MACRO(n)                                                  \
 template < template <typename                                                    \
-            BOOST_PP_ENUM_TRAILING(n, BOOST_INTRUSIVE_PP_IDENTITY, typename) >   \
+            NDNBOOST_PP_ENUM_TRAILING(n, NDNBOOST_INTRUSIVE_PP_IDENTITY, typename) >   \
            class Ptr                                                             \
-         , typename T BOOST_PP_ENUM_TRAILING_PARAMS(n, class P)                  \
+         , typename T NDNBOOST_PP_ENUM_TRAILING_PARAMS(n, class P)                  \
          , class U>                                                              \
 struct type_rebinder                                                             \
-   < Ptr<T BOOST_PP_ENUM_TRAILING_PARAMS(n, P)>, U, 0u >                         \
+   < Ptr<T NDNBOOST_PP_ENUM_TRAILING_PARAMS(n, P)>, U, 0u >                         \
 {                                                                                \
-   typedef Ptr<U BOOST_PP_ENUM_TRAILING_PARAMS(n, P)> type;                      \
+   typedef Ptr<U NDNBOOST_PP_ENUM_TRAILING_PARAMS(n, P)> type;                      \
 };                                                                               \
 //
-#define BOOST_PP_LOCAL_LIMITS (0, BOOST_INTRUSIVE_MAX_CONSTRUCTOR_PARAMETERS)
-#include BOOST_PP_LOCAL_ITERATE()
+#define NDNBOOST_PP_LOCAL_LIMITS (0, NDNBOOST_INTRUSIVE_MAX_CONSTRUCTOR_PARAMETERS)
+#include NDNBOOST_PP_LOCAL_ITERATE()
 
-#endif   //!defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
+#endif   //!defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
 
 }  //namespace detail {
 }  //namespace intrusive {
@@ -285,4 +285,4 @@
 
 #include <ndnboost/intrusive/detail/config_end.hpp>
 
-#endif // ! defined(BOOST_INTRUSIVE_ALLOCATOR_MEMORY_UTIL_HPP)
+#endif // ! defined(NDNBOOST_INTRUSIVE_ALLOCATOR_MEMORY_UTIL_HPP)
diff --git a/include/ndnboost/intrusive/detail/mpl.hpp b/include/ndnboost/intrusive/detail/mpl.hpp
index 9dc637d..cfe340c 100644
--- a/include/ndnboost/intrusive/detail/mpl.hpp
+++ b/include/ndnboost/intrusive/detail/mpl.hpp
@@ -10,8 +10,8 @@
 //
 /////////////////////////////////////////////////////////////////////////////
 
-#ifndef BOOST_INTRUSIVE_DETAIL_MPL_HPP
-#define BOOST_INTRUSIVE_DETAIL_MPL_HPP
+#ifndef NDNBOOST_INTRUSIVE_DETAIL_MPL_HPP
+#define NDNBOOST_INTRUSIVE_DETAIL_MPL_HPP
 
 #include <ndnboost/intrusive/detail/config_begin.hpp>
 #include <cstddef>
@@ -124,14 +124,14 @@
    typedef T type;
 };
 
-#if defined(BOOST_MSVC) || defined(__BORLANDC_)
-#define BOOST_INTRUSIVE_TT_DECL __cdecl
+#if defined(NDNBOOST_MSVC) || defined(__BORLANDC_)
+#define NDNBOOST_INTRUSIVE_TT_DECL __cdecl
 #else
-#define BOOST_INTRUSIVE_TT_DECL
+#define NDNBOOST_INTRUSIVE_TT_DECL
 #endif
 
 #if defined(_MSC_EXTENSIONS) && !defined(__BORLAND__) && !defined(_WIN64) && !defined(UNDER_CE)
-#define BOOST_INTRUSIVE_TT_TEST_MSC_FUNC_SIGS
+#define NDNBOOST_INTRUSIVE_TT_TEST_MSC_FUNC_SIGS
 #endif
 
 template <typename T>
@@ -140,7 +140,7 @@
 
 // see boost ticket #4094
 // avoid duplicate definitions of is_unary_or_binary_function_impl
-#ifndef BOOST_INTRUSIVE_TT_TEST_MSC_FUNC_SIGS
+#ifndef NDNBOOST_INTRUSIVE_TT_TEST_MSC_FUNC_SIGS
 
 template <typename R>
 struct is_unary_or_binary_function_impl<R (*)()>
@@ -150,7 +150,7 @@
 struct is_unary_or_binary_function_impl<R (*)(...)>
 {  static const bool value = true;  };
 
-#else // BOOST_INTRUSIVE_TT_TEST_MSC_FUNC_SIGS
+#else // NDNBOOST_INTRUSIVE_TT_TEST_MSC_FUNC_SIGS
 
 template <typename R>
 struct is_unary_or_binary_function_impl<R (__stdcall*)()>
@@ -176,7 +176,7 @@
 
 // see boost ticket #4094
 // avoid duplicate definitions of is_unary_or_binary_function_impl
-#ifndef BOOST_INTRUSIVE_TT_TEST_MSC_FUNC_SIGS
+#ifndef NDNBOOST_INTRUSIVE_TT_TEST_MSC_FUNC_SIGS
 
 template <typename R, class T0>
 struct is_unary_or_binary_function_impl<R (*)(T0)>
@@ -186,7 +186,7 @@
 struct is_unary_or_binary_function_impl<R (*)(T0...)>
 {  static const bool value = true;  };
 
-#else // BOOST_INTRUSIVE_TT_TEST_MSC_FUNC_SIGS
+#else // NDNBOOST_INTRUSIVE_TT_TEST_MSC_FUNC_SIGS
 
 template <typename R, class T0>
 struct is_unary_or_binary_function_impl<R (__stdcall*)(T0)>
@@ -212,7 +212,7 @@
 
 // see boost ticket #4094
 // avoid duplicate definitions of is_unary_or_binary_function_impl
-#ifndef BOOST_INTRUSIVE_TT_TEST_MSC_FUNC_SIGS
+#ifndef NDNBOOST_INTRUSIVE_TT_TEST_MSC_FUNC_SIGS
 
 template <typename R, class T0, class T1>
 struct is_unary_or_binary_function_impl<R (*)(T0, T1)>
@@ -222,7 +222,7 @@
 struct is_unary_or_binary_function_impl<R (*)(T0, T1...)>
 {  static const bool value = true;  };
 
-#else // BOOST_INTRUSIVE_TT_TEST_MSC_FUNC_SIGS
+#else // NDNBOOST_INTRUSIVE_TT_TEST_MSC_FUNC_SIGS
 
 template <typename R, class T0, class T1>
 struct is_unary_or_binary_function_impl<R (__stdcall*)(T0, T1)>
@@ -380,4 +380,4 @@
 
 #include <ndnboost/intrusive/detail/config_end.hpp>
 
-#endif //BOOST_INTRUSIVE_DETAIL_MPL_HPP
+#endif //NDNBOOST_INTRUSIVE_DETAIL_MPL_HPP
diff --git a/include/ndnboost/intrusive/detail/preprocessor.hpp b/include/ndnboost/intrusive/detail/preprocessor.hpp
index b673fac..cdf8a38 100644
--- a/include/ndnboost/intrusive/detail/preprocessor.hpp
+++ b/include/ndnboost/intrusive/detail/preprocessor.hpp
@@ -8,8 +8,8 @@
 //
 //////////////////////////////////////////////////////////////////////////////
 
-#ifndef BOOST_INTRUSIVE_DETAIL_PREPROCESSOR_HPP
-#define BOOST_INTRUSIVE_DETAIL_PREPROCESSOR_HPP
+#ifndef NDNBOOST_INTRUSIVE_DETAIL_PREPROCESSOR_HPP
+#define NDNBOOST_INTRUSIVE_DETAIL_PREPROCESSOR_HPP
 
 #if (defined _MSC_VER) && (_MSC_VER >= 1200)
 #  pragma once
@@ -35,18 +35,18 @@
 #include <ndnboost/preprocessor/arithmetic/add.hpp>
 #include <ndnboost/preprocessor/iteration/iterate.hpp>
 
-#define BOOST_INTRUSIVE_MAX_CONSTRUCTOR_PARAMETERS 10
+#define NDNBOOST_INTRUSIVE_MAX_CONSTRUCTOR_PARAMETERS 10
 
-#define BOOST_INTRUSIVE_PP_IDENTITY(z, n, data) data
+#define NDNBOOST_INTRUSIVE_PP_IDENTITY(z, n, data) data
 
-#define BOOST_INTRUSIVE_PP_DECLVAL(z, n, data) \
-ndnboost::move_detail::declval< BOOST_PP_CAT(P, n) >() \
+#define NDNBOOST_INTRUSIVE_PP_DECLVAL(z, n, data) \
+ndnboost::move_detail::declval< NDNBOOST_PP_CAT(P, n) >() \
 //!
 
-#define BOOST_INTRUSIVE_PP_TEMPLATE_PARAM_VOID_DEFAULT(z, n, data)   \
-  BOOST_PP_CAT(class P, n) = void                                      \
+#define NDNBOOST_INTRUSIVE_PP_TEMPLATE_PARAM_VOID_DEFAULT(z, n, data)   \
+  NDNBOOST_PP_CAT(class P, n) = void                                      \
 //!
 
 #include <ndnboost/intrusive/detail/config_end.hpp>
 
-#endif //#ifndef BOOST_INTRUSIVE_DETAIL_PREPROCESSOR_HPP
+#endif //#ifndef NDNBOOST_INTRUSIVE_DETAIL_PREPROCESSOR_HPP
diff --git a/include/ndnboost/intrusive/detail/workaround.hpp b/include/ndnboost/intrusive/detail/workaround.hpp
index 6da7711..4f73b1c 100644
--- a/include/ndnboost/intrusive/detail/workaround.hpp
+++ b/include/ndnboost/intrusive/detail/workaround.hpp
@@ -8,15 +8,15 @@
 //
 //////////////////////////////////////////////////////////////////////////////
 
-#ifndef BOOST_INTRUSIVE_DETAIL_WRKRND_HPP
-#define BOOST_INTRUSIVE_DETAIL_WRKRND_HPP
+#ifndef NDNBOOST_INTRUSIVE_DETAIL_WRKRND_HPP
+#define NDNBOOST_INTRUSIVE_DETAIL_WRKRND_HPP
 
 #include <ndnboost/intrusive/detail/config_begin.hpp>
 
-#if    !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
-   #define BOOST_INTRUSIVE_PERFECT_FORWARDING
+#if    !defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
+   #define NDNBOOST_INTRUSIVE_PERFECT_FORWARDING
 #endif
 
 #include <ndnboost/intrusive/detail/config_end.hpp>
 
-#endif   //#ifndef BOOST_INTRUSIVE_DETAIL_WRKRND_HPP
+#endif   //#ifndef NDNBOOST_INTRUSIVE_DETAIL_WRKRND_HPP
diff --git a/include/ndnboost/intrusive/pointer_traits.hpp b/include/ndnboost/intrusive/pointer_traits.hpp
index 4a89397..3901ff8 100644
--- a/include/ndnboost/intrusive/pointer_traits.hpp
+++ b/include/ndnboost/intrusive/pointer_traits.hpp
@@ -14,8 +14,8 @@
 //
 //////////////////////////////////////////////////////////////////////////////
 
-#ifndef BOOST_INTRUSIVE_POINTER_TRAITS_HPP
-#define BOOST_INTRUSIVE_POINTER_TRAITS_HPP
+#ifndef NDNBOOST_INTRUSIVE_POINTER_TRAITS_HPP
+#define NDNBOOST_INTRUSIVE_POINTER_TRAITS_HPP
 
 #if (defined _MSC_VER) && (_MSC_VER >= 1200)
 #  pragma once
@@ -37,7 +37,7 @@
 template <typename Ptr>
 struct pointer_traits
 {
-   #ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
+   #ifdef NDNBOOST_INTRUSIVE_DOXYGEN_INVOKED
       //!The pointer type
       //!queried by this pointer_traits instantiation
       typedef Ptr             pointer;
@@ -67,11 +67,11 @@
    #else
       typedef Ptr                                                             pointer;
       //
-      typedef BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_EVAL_DEFAULT
+      typedef NDNBOOST_INTRUSIVE_OBTAIN_TYPE_WITH_EVAL_DEFAULT
          ( ndnboost::intrusive::detail::, Ptr, element_type
          , ndnboost::intrusive::detail::first_param<Ptr>)                        element_type;
       //
-      typedef BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_DEFAULT
+      typedef NDNBOOST_INTRUSIVE_OBTAIN_TYPE_WITH_DEFAULT
          (ndnboost::intrusive::detail::, Ptr, difference_type, std::ptrdiff_t)   difference_type;
       //
       typedef typename ndnboost::intrusive::detail::unvoid<element_type>::type&  reference;
@@ -81,10 +81,10 @@
          typedef typename ndnboost::intrusive::detail::type_rebinder<Ptr, U>::type  type;
       };
 
-      #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES)
+      #if !defined(NDNBOOST_NO_CXX11_TEMPLATE_ALIASES)
          template <class U> using rebind = typename ndnboost::intrusive::detail::type_rebinder<Ptr, U>::type;
       #endif
-   #endif   //#if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES)
+   #endif   //#if !defined(NDNBOOST_NO_CXX11_TEMPLATE_ALIASES)
 
    //! <b>Remark</b>: If element_type is (possibly cv-qualified) void, r type is unspecified; otherwise,
    //!   it is element_type &.
@@ -216,7 +216,7 @@
    typedef T*           pointer;
    typedef std::ptrdiff_t difference_type;
 
-   #ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
+   #ifdef NDNBOOST_INTRUSIVE_DOXYGEN_INVOKED
       typedef T &          reference;
       //!typedef for <pre>U *</pre>
       //!
@@ -225,7 +225,7 @@
       template <class U> using rebind = U*;
    #else
       typedef typename ndnboost::intrusive::detail::unvoid<element_type>::type& reference;
-      #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES)
+      #if !defined(NDNBOOST_NO_CXX11_TEMPLATE_ALIASES)
          template <class U> using rebind = U*;
       #endif
    #endif
@@ -262,4 +262,4 @@
 
 #include <ndnboost/intrusive/detail/config_end.hpp>
 
-#endif // ! defined(BOOST_INTRUSIVE_POINTER_TRAITS_HPP)
+#endif // ! defined(NDNBOOST_INTRUSIVE_POINTER_TRAITS_HPP)
diff --git a/include/ndnboost/io/ios_state.hpp b/include/ndnboost/io/ios_state.hpp
index bee1422..90d802a 100644
--- a/include/ndnboost/io/ios_state.hpp
+++ b/include/ndnboost/io/ios_state.hpp
@@ -6,14 +6,14 @@
 
 //  See <http://www.boost.org/libs/io/> for the library's home page.
 
-#ifndef BOOST_IO_IOS_STATE_HPP
-#define BOOST_IO_IOS_STATE_HPP
+#ifndef NDNBOOST_IO_IOS_STATE_HPP
+#define NDNBOOST_IO_IOS_STATE_HPP
 
 #include <ndnboost/io_fwd.hpp>  // self include
 #include <ndnboost/detail/workaround.hpp>
 
 #include <ios>        // for std::ios_base, std::basic_ios, etc.
-#ifndef BOOST_NO_STD_LOCALE
+#ifndef NDNBOOST_NO_STD_LOCALE
 #include <locale>     // for std::locale
 #endif
 #include <ostream>    // for std::basic_ostream
@@ -141,7 +141,7 @@
     explicit  basic_ios_exception_saver( state_type &s )
         : s_save_( s ), a_save_( s.exceptions() )
         {}
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582))
+#if NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x582))
     basic_ios_exception_saver( state_type &s, aspect_type a )
 #else
     basic_ios_exception_saver( state_type &s, aspect_type const &a )
@@ -235,7 +235,7 @@
     basic_ios_fill_saver& operator=(const basic_ios_fill_saver&);
 };
 
-#ifndef BOOST_NO_STD_LOCALE
+#ifndef NDNBOOST_NO_STD_LOCALE
 template < typename Ch, class Tr >
 class basic_ios_locale_saver
 {
@@ -362,7 +362,7 @@
         , a3_save_( s.width() ), a4_save_( s.rdstate() )
         , a5_save_( s.exceptions() ), a6_save_( s.tie() )
         , a7_save_( s.rdbuf() ), a8_save_( s.fill() )
-        #ifndef BOOST_NO_STD_LOCALE
+        #ifndef NDNBOOST_NO_STD_LOCALE
         , a9_save_( s.getloc() )
         #endif
         {}
@@ -372,7 +372,7 @@
 
     void  restore()
     {
-        #ifndef BOOST_NO_STD_LOCALE
+        #ifndef NDNBOOST_NO_STD_LOCALE
         s_save_.imbue( a9_save_ );
         #endif
         s_save_.fill( a8_save_ );
@@ -395,7 +395,7 @@
     ::std::basic_ostream<Ch, Tr> * const    a6_save_;
     ::std::basic_streambuf<Ch, Tr> * const  a7_save_;
     typename state_type::char_type const    a8_save_;
-    #ifndef BOOST_NO_STD_LOCALE
+    #ifndef NDNBOOST_NO_STD_LOCALE
     ::std::locale const                     a9_save_;
     #endif
 
@@ -436,4 +436,4 @@
 }  // namespace ndnboost
 
 
-#endif  // BOOST_IO_IOS_STATE_HPP
+#endif  // NDNBOOST_IO_IOS_STATE_HPP
diff --git a/include/ndnboost/io_fwd.hpp b/include/ndnboost/io_fwd.hpp
index c58e9e3..755a58a 100644
--- a/include/ndnboost/io_fwd.hpp
+++ b/include/ndnboost/io_fwd.hpp
@@ -6,8 +6,8 @@
 
 //  See <http://www.boost.org/libs/io/> for the library's home page.
 
-#ifndef BOOST_IO_FWD_HPP
-#define BOOST_IO_FWD_HPP
+#ifndef NDNBOOST_IO_FWD_HPP
+#define NDNBOOST_IO_FWD_HPP
 
 #include <iosfwd>  // for std::char_traits (declaration)
 
@@ -64,4 +64,4 @@
 }  // namespace ndnboost
 
 
-#endif  // BOOST_IO_FWD_HPP
+#endif  // NDNBOOST_IO_FWD_HPP
diff --git a/include/ndnboost/is_placeholder.hpp b/include/ndnboost/is_placeholder.hpp
index e358ca6..cc40821 100644
--- a/include/ndnboost/is_placeholder.hpp
+++ b/include/ndnboost/is_placeholder.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_IS_PLACEHOLDER_HPP_INCLUDED
-#define BOOST_IS_PLACEHOLDER_HPP_INCLUDED
+#ifndef NDNBOOST_IS_PLACEHOLDER_HPP_INCLUDED
+#define NDNBOOST_IS_PLACEHOLDER_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -28,4 +28,4 @@
 
 } // namespace ndnboost
 
-#endif // #ifndef BOOST_IS_PLACEHOLDER_HPP_INCLUDED
+#endif // #ifndef NDNBOOST_IS_PLACEHOLDER_HPP_INCLUDED
diff --git a/include/ndnboost/iterator.hpp b/include/ndnboost/iterator.hpp
index bec9260..ded629c 100644
--- a/include/ndnboost/iterator.hpp
+++ b/include/ndnboost/iterator.hpp
@@ -11,8 +11,8 @@
 //  28 Jun 00 Workarounds to deal with known MSVC bugs (David Abrahams)
 //  26 Jun 00 Initial version (Jeremy Siek)
 
-#ifndef BOOST_ITERATOR_HPP
-#define BOOST_ITERATOR_HPP
+#ifndef NDNBOOST_ITERATOR_HPP
+#define NDNBOOST_ITERATOR_HPP
 
 #include <iterator>
 #include <cstddef>           // std::ptrdiff_t
@@ -20,7 +20,7 @@
 
 namespace ndnboost
 {
-# if defined(BOOST_NO_STD_ITERATOR) && !defined(BOOST_MSVC_STD_ITERATOR)
+# if defined(NDNBOOST_NO_STD_ITERATOR) && !defined(NDNBOOST_MSVC_STD_ITERATOR)
   template <class Category, class T,
     class Distance = std::ptrdiff_t,
     class Pointer = T*, class Reference = T&>
@@ -38,7 +38,7 @@
   // prevent derivation from an identically-named class in a different namespace.
   namespace detail {
    template <class Category, class T, class Distance, class Pointer, class Reference>
-#  if !defined(BOOST_MSVC_STD_ITERATOR)
+#  if !defined(NDNBOOST_MSVC_STD_ITERATOR)
    struct iterator_base : std::iterator<Category, T, Distance, Pointer, Reference> {};
 #  else
    struct iterator_base : std::iterator<Category, T, Distance>
@@ -56,4 +56,4 @@
 # endif
 } // namespace ndnboost
 
-#endif // BOOST_ITERATOR_HPP
+#endif // NDNBOOST_ITERATOR_HPP
diff --git a/include/ndnboost/iterator/detail/config_def.hpp b/include/ndnboost/iterator/detail/config_def.hpp
index 861072b..f4af926 100644
--- a/include/ndnboost/iterator/detail/config_def.hpp
+++ b/include/ndnboost/iterator/detail/config_def.hpp
@@ -16,18 +16,18 @@
 #include <ndnboost/config.hpp> // for prior
 #include <ndnboost/detail/workaround.hpp>
 
-#ifdef BOOST_ITERATOR_CONFIG_DEF
+#ifdef NDNBOOST_ITERATOR_CONFIG_DEF
 # error you have nested config_def #inclusion.
 #else 
-# define BOOST_ITERATOR_CONFIG_DEF
+# define NDNBOOST_ITERATOR_CONFIG_DEF
 #endif 
 
 // We enable this always now.  Otherwise, the simple case in
 // libs/iterator/test/constant_iterator_arrow.cpp fails to compile
 // because the operator-> return is improperly deduced as a non-const
 // pointer.
-#if 1 || defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)           \
-    || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x531))
+#if 1 || defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)           \
+    || NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x531))
 
 // Recall that in general, compilers without partial specialization
 // can't strip constness.  Consider counting_iterator, which normally
@@ -42,17 +42,17 @@
 // return the value_type from operator[] directly, but is not
 // strictly necessary.  Not sure how best to resolve this one.
 
-# define BOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY 1
+# define NDNBOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY 1
 
 #endif
 
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)                                       \
-    || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x5A0))                   \
-    || (BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION, <= 700) && defined(_MSC_VER)) \
-    || BOOST_WORKAROUND(__DECCXX_VER, BOOST_TESTED_AT(60590042))                \
-    || BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x590))
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)                                       \
+    || NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x5A0))                   \
+    || (NDNBOOST_WORKAROUND(NDNBOOST_INTEL_CXX_VERSION, <= 700) && defined(_MSC_VER)) \
+    || NDNBOOST_WORKAROUND(__DECCXX_VER, NDNBOOST_TESTED_AT(60590042))                \
+    || NDNBOOST_WORKAROUND(__SUNPRO_CC, NDNBOOST_TESTED_AT(0x590))
     
-# define BOOST_NO_LVALUE_RETURN_DETECTION
+# define NDNBOOST_NO_LVALUE_RETURN_DETECTION
 
 # if 0 // test code
   struct v  {};
@@ -84,14 +84,14 @@
 
 #endif
 
-#if BOOST_WORKAROUND(__MWERKS__, <=0x2407)
-#  define BOOST_NO_IS_CONVERTIBLE // "is_convertible doesn't work for simple types"
+#if NDNBOOST_WORKAROUND(__MWERKS__, <=0x2407)
+#  define NDNBOOST_NO_IS_CONVERTIBLE // "is_convertible doesn't work for simple types"
 #endif
 
-#if BOOST_WORKAROUND(__GNUC__, == 2)                                                                            \
-    || BOOST_WORKAROUND(__GNUC__, == 3) && BOOST_WORKAROUND(__GNUC_MINOR__, < 4) && !defined(__EDG_VERSION__)   \
-    || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551))
-#  define BOOST_NO_IS_CONVERTIBLE_TEMPLATE // The following program fails to compile:
+#if NDNBOOST_WORKAROUND(__GNUC__, == 2)                                                                            \
+    || NDNBOOST_WORKAROUND(__GNUC__, == 3) && NDNBOOST_WORKAROUND(__GNUC_MINOR__, < 4) && !defined(__EDG_VERSION__)   \
+    || NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x551))
+#  define NDNBOOST_NO_IS_CONVERTIBLE_TEMPLATE // The following program fails to compile:
 
 #  if 0 // test code
     #include <ndnboost/type_traits/is_convertible.hpp>
@@ -112,18 +112,18 @@
 #endif
 
 
-#if !defined(BOOST_MSVC) && (defined(BOOST_NO_SFINAE) || defined(BOOST_NO_IS_CONVERTIBLE) || defined(BOOST_NO_IS_CONVERTIBLE_TEMPLATE))
-# define BOOST_NO_STRICT_ITERATOR_INTEROPERABILITY
+#if !defined(NDNBOOST_MSVC) && (defined(NDNBOOST_NO_SFINAE) || defined(NDNBOOST_NO_IS_CONVERTIBLE) || defined(NDNBOOST_NO_IS_CONVERTIBLE_TEMPLATE))
+# define NDNBOOST_NO_STRICT_ITERATOR_INTEROPERABILITY
 #endif 
 
-# if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
-#  define BOOST_ARG_DEPENDENT_TYPENAME typename
+# if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)
+#  define NDNBOOST_ARG_DEPENDENT_TYPENAME typename
 # else
-#  define BOOST_ARG_DEPENDENT_TYPENAME
+#  define NDNBOOST_ARG_DEPENDENT_TYPENAME
 # endif
 
-# if BOOST_WORKAROUND(__GNUC__, == 2) && BOOST_WORKAROUND(__GNUC_MINOR__, BOOST_TESTED_AT(95)) \
-    || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
+# if NDNBOOST_WORKAROUND(__GNUC__, == 2) && NDNBOOST_WORKAROUND(__GNUC_MINOR__, NDNBOOST_TESTED_AT(95)) \
+    || NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564))
 
 // GCC-2.95 eagerly instantiates templated constructors and conversion
 // operators in convertibility checks, causing premature errors.
@@ -131,7 +131,7 @@
 // Borland's problems are harder to diagnose due to lack of an
 // instantiation stack backtrace.  They may be due in part to the fact
 // that it drops cv-qualification willy-nilly in templates.
-#  define BOOST_NO_ONE_WAY_ITERATOR_INTEROP
+#  define NDNBOOST_NO_ONE_WAY_ITERATOR_INTEROP
 # endif 
 
 // no include guard; multiple inclusion intended
diff --git a/include/ndnboost/iterator/detail/config_undef.hpp b/include/ndnboost/iterator/detail/config_undef.hpp
index 9dcd1d5..0e828aa 100644
--- a/include/ndnboost/iterator/detail/config_undef.hpp
+++ b/include/ndnboost/iterator/detail/config_undef.hpp
@@ -11,15 +11,15 @@
 // 23/02/03 thw
 //
 
-#undef BOOST_NO_IS_CONVERTIBLE
-#undef BOOST_NO_IS_CONVERTIBLE_TEMPLATE
-#undef BOOST_NO_STRICT_ITERATOR_INTEROPERABILITY
-#undef BOOST_ARG_DEPENDENT_TYPENAME
-#undef BOOST_NO_LVALUE_RETURN_DETECTION
-#undef BOOST_NO_ONE_WAY_ITERATOR_INTEROP
+#undef NDNBOOST_NO_IS_CONVERTIBLE
+#undef NDNBOOST_NO_IS_CONVERTIBLE_TEMPLATE
+#undef NDNBOOST_NO_STRICT_ITERATOR_INTEROPERABILITY
+#undef NDNBOOST_ARG_DEPENDENT_TYPENAME
+#undef NDNBOOST_NO_LVALUE_RETURN_DETECTION
+#undef NDNBOOST_NO_ONE_WAY_ITERATOR_INTEROP
 
-#ifdef BOOST_ITERATOR_CONFIG_DEF
-# undef BOOST_ITERATOR_CONFIG_DEF
+#ifdef NDNBOOST_ITERATOR_CONFIG_DEF
+# undef NDNBOOST_ITERATOR_CONFIG_DEF
 #else
 # error missing or nested #include config_def
 #endif 
diff --git a/include/ndnboost/iterator/detail/enable_if.hpp b/include/ndnboost/iterator/detail/enable_if.hpp
index 1b26330..2b041ab 100644
--- a/include/ndnboost/iterator/detail/enable_if.hpp
+++ b/include/ndnboost/iterator/detail/enable_if.hpp
@@ -4,8 +4,8 @@
 // Distributed under the Boost Software License, Version 1.0. (See
 // accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
-#ifndef BOOST_ENABLE_IF_23022003THW_HPP
-#define BOOST_ENABLE_IF_23022003THW_HPP
+#ifndef NDNBOOST_ENABLE_IF_23022003THW_HPP
+#define NDNBOOST_ENABLE_IF_23022003THW_HPP
 
 #include <ndnboost/detail/workaround.hpp>
 #include <ndnboost/mpl/identity.hpp>
@@ -47,7 +47,7 @@
       template<typename T>
       struct base
       {
-#ifdef BOOST_NO_SFINAE
+#ifdef NDNBOOST_NO_SFINAE
 
         typedef T type;
 
@@ -66,13 +66,13 @@
     template <class Cond,
               class Return>
     struct enable_if
-# if !defined(BOOST_NO_SFINAE) && !defined(BOOST_NO_IS_CONVERTIBLE)
+# if !defined(NDNBOOST_NO_SFINAE) && !defined(NDNBOOST_NO_IS_CONVERTIBLE)
       : enabled<(Cond::value)>::template base<Return>
 # else
       : mpl::identity<Return>
 # endif 
     {
-# if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+# if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
         typedef Return type;
 # endif 
     };
@@ -83,4 +83,4 @@
 
 #include <ndnboost/iterator/detail/config_undef.hpp>
 
-#endif // BOOST_ENABLE_IF_23022003THW_HPP
+#endif // NDNBOOST_ENABLE_IF_23022003THW_HPP
diff --git a/include/ndnboost/iterator/detail/facade_iterator_category.hpp b/include/ndnboost/iterator/detail/facade_iterator_category.hpp
index fa21f5a..c658c9f 100644
--- a/include/ndnboost/iterator/detail/facade_iterator_category.hpp
+++ b/include/ndnboost/iterator/detail/facade_iterator_category.hpp
@@ -22,7 +22,7 @@
 
 # include <ndnboost/iterator/detail/config_def.hpp> // try to keep this last
 
-# ifdef BOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY
+# ifdef NDNBOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY
 #  include <ndnboost/detail/indirect_traits.hpp>
 # endif
 
@@ -57,7 +57,7 @@
 //
 template <class ValueParam, class Reference>
 struct iterator_writability_disabled
-# ifdef BOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY // Adding Thomas' logic?
+# ifdef NDNBOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY // Adding Thomas' logic?
   : mpl::or_<
         is_const<Reference>
       , ndnboost::detail::indirect_traits::is_reference_to_const<Reference>
@@ -138,21 +138,21 @@
 struct iterator_category_with_traversal
   : Category, Traversal
 {
-# if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
+# if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)
     // Make sure this isn't used to build any categories where
     // convertibility to Traversal is redundant.  Should just use the
     // Category element in that case.
-    BOOST_MPL_ASSERT_NOT((
+    NDNBOOST_MPL_ASSERT_NOT((
         is_convertible<
               typename iterator_category_to_traversal<Category>::type
             , Traversal
           >));
 
-    BOOST_MPL_ASSERT((is_iterator_category<Category>));
-    BOOST_MPL_ASSERT_NOT((is_iterator_category<Traversal>));
-    BOOST_MPL_ASSERT_NOT((is_iterator_traversal<Category>));
-#  if !BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1310))
-    BOOST_MPL_ASSERT((is_iterator_traversal<Traversal>));
+    NDNBOOST_MPL_ASSERT((is_iterator_category<Category>));
+    NDNBOOST_MPL_ASSERT_NOT((is_iterator_category<Traversal>));
+    NDNBOOST_MPL_ASSERT_NOT((is_iterator_traversal<Category>));
+#  if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, NDNBOOST_TESTED_AT(1310))
+    NDNBOOST_MPL_ASSERT((is_iterator_traversal<Traversal>));
 #  endif 
 # endif 
 };
@@ -162,8 +162,8 @@
 template <class Traversal, class ValueParam, class Reference>
 struct facade_iterator_category_impl
 {
-# if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
-    BOOST_MPL_ASSERT_NOT((is_iterator_category<Traversal>));
+# if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)
+    NDNBOOST_MPL_ASSERT_NOT((is_iterator_category<Traversal>));
 # endif 
     
     typedef typename iterator_facade_default_category<
diff --git a/include/ndnboost/iterator/interoperable.hpp b/include/ndnboost/iterator/interoperable.hpp
index daede1c..25b2104 100644
--- a/include/ndnboost/iterator/interoperable.hpp
+++ b/include/ndnboost/iterator/interoperable.hpp
@@ -4,8 +4,8 @@
 // Distributed under the Boost Software License, Version 1.0. (See
 // accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
-#ifndef BOOST_INTEROPERABLE_23022003THW_HPP
-# define BOOST_INTEROPERABLE_23022003THW_HPP
+#ifndef NDNBOOST_INTEROPERABLE_23022003THW_HPP
+# define NDNBOOST_INTEROPERABLE_23022003THW_HPP
 
 # include <ndnboost/mpl/bool.hpp>
 # include <ndnboost/mpl/or.hpp>
@@ -33,7 +33,7 @@
   //
   template <typename A, typename B>
   struct is_interoperable
-# ifdef BOOST_NO_STRICT_ITERATOR_INTEROPERABILITY
+# ifdef NDNBOOST_NO_STRICT_ITERATOR_INTEROPERABILITY
     : mpl::true_
 # else
     : mpl::or_<
@@ -47,4 +47,4 @@
 
 # include <ndnboost/iterator/detail/config_undef.hpp>
 
-#endif // BOOST_INTEROPERABLE_23022003THW_HPP
+#endif // NDNBOOST_INTEROPERABLE_23022003THW_HPP
diff --git a/include/ndnboost/iterator/iterator_adaptor.hpp b/include/ndnboost/iterator/iterator_adaptor.hpp
index 59aafbf..1a9bd54 100644
--- a/include/ndnboost/iterator/iterator_adaptor.hpp
+++ b/include/ndnboost/iterator/iterator_adaptor.hpp
@@ -4,8 +4,8 @@
 // Distributed under the Boost Software License, Version 1.0. (See
 // accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
-#ifndef BOOST_ITERATOR_ADAPTOR_23022003THW_HPP
-#define BOOST_ITERATOR_ADAPTOR_23022003THW_HPP
+#ifndef NDNBOOST_ITERATOR_ADAPTOR_23022003THW_HPP
+#define NDNBOOST_ITERATOR_ADAPTOR_23022003THW_HPP
 
 #include <ndnboost/static_assert.hpp>
 #include <ndnboost/iterator.hpp>
@@ -22,7 +22,7 @@
 #include <ndnboost/type_traits/is_same.hpp>
 #include <ndnboost/type_traits/is_convertible.hpp>
 
-#ifdef BOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY
+#ifdef NDNBOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY
 # include <ndnboost/type_traits/remove_reference.hpp>
 #endif
 
@@ -38,7 +38,7 @@
   // explicitly in order to specify that the default should be used.
   struct use_default;
   
-# ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+# ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
   // the incompleteness of use_default causes massive problems for
   // is_convertible (naturally).  This workaround is fortunately not
   // needed for vc6/vc7.
@@ -99,7 +99,7 @@
   // false positives for user/library defined iterator types. See comments
   // on operator implementation for consequences.
   //
-#  if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
+#  if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)
   
   template<typename From, typename To>
   struct enable_if_convertible
@@ -114,7 +114,7 @@
      >::type type;
   };
   
-#  elif defined(BOOST_NO_IS_CONVERTIBLE) || defined(BOOST_NO_SFINAE)
+#  elif defined(NDNBOOST_NO_IS_CONVERTIBLE) || defined(NDNBOOST_NO_SFINAE)
   
   template <class From, class To>
   struct enable_if_convertible
@@ -122,7 +122,7 @@
       typedef ndnboost::detail::enable_type type;
   };
   
-#  elif BOOST_WORKAROUND(_MSC_FULL_VER, BOOST_TESTED_AT(13102292)) && BOOST_MSVC > 1300
+#  elif NDNBOOST_WORKAROUND(_MSC_FULL_VER, NDNBOOST_TESTED_AT(13102292)) && NDNBOOST_MSVC > 1300
   
   // For some reason vc7.1 needs us to "cut off" instantiation
   // of is_convertible in a few cases.
@@ -181,7 +181,7 @@
         typedef iterator_facade<
             Derived
             
-# ifdef BOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY
+# ifdef NDNBOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY
           , typename ndnboost::detail::ia_dflt_help<
                 Value
               , mpl::eval_if<
@@ -221,7 +221,7 @@
     template <class Tr1, class Tr2>
     inline void iterator_adaptor_assert_traversal ()
     {
-      BOOST_STATIC_ASSERT((is_convertible<Tr1, Tr2>::value));
+      NDNBOOST_STATIC_ASSERT((is_convertible<Tr1, Tr2>::value));
     }
   }
   
@@ -311,7 +311,7 @@
       bool equal(iterator_adaptor<OtherDerived, OtherIterator, V, C, R, D> const& x) const
       {
         // Maybe readd with same_distance
-        //           BOOST_STATIC_ASSERT(
+        //           NDNBOOST_STATIC_ASSERT(
         //               (detail::same_category_and_difference<Derived,OtherDerived>::value)
         //               );
           return m_iterator == x.base();
@@ -321,12 +321,12 @@
           typename super_t::iterator_category
       >::type my_traversal;
 
-# define BOOST_ITERATOR_ADAPTOR_ASSERT_TRAVERSAL(cat) \
+# define NDNBOOST_ITERATOR_ADAPTOR_ASSERT_TRAVERSAL(cat) \
       ndnboost::detail::iterator_adaptor_assert_traversal<my_traversal, cat>();
 
       void advance(typename super_t::difference_type n)
       {
-          BOOST_ITERATOR_ADAPTOR_ASSERT_TRAVERSAL(random_access_traversal_tag)
+          NDNBOOST_ITERATOR_ADAPTOR_ASSERT_TRAVERSAL(random_access_traversal_tag)
           m_iterator += n;
       }
   
@@ -334,7 +334,7 @@
 
       void decrement() 
       {
-          BOOST_ITERATOR_ADAPTOR_ASSERT_TRAVERSAL(bidirectional_traversal_tag)
+          NDNBOOST_ITERATOR_ADAPTOR_ASSERT_TRAVERSAL(bidirectional_traversal_tag)
            --m_iterator;
       }
 
@@ -344,15 +344,15 @@
       typename super_t::difference_type distance_to(
           iterator_adaptor<OtherDerived, OtherIterator, V, C, R, D> const& y) const
       {
-          BOOST_ITERATOR_ADAPTOR_ASSERT_TRAVERSAL(random_access_traversal_tag)
+          NDNBOOST_ITERATOR_ADAPTOR_ASSERT_TRAVERSAL(random_access_traversal_tag)
           // Maybe readd with same_distance
-          //           BOOST_STATIC_ASSERT(
+          //           NDNBOOST_STATIC_ASSERT(
           //               (detail::same_category_and_difference<Derived,OtherDerived>::value)
           //               );
           return y.base() - m_iterator;
       }
 
-# undef BOOST_ITERATOR_ADAPTOR_ASSERT_TRAVERSAL
+# undef NDNBOOST_ITERATOR_ADAPTOR_ASSERT_TRAVERSAL
       
    private: // data members
       Base m_iterator;
@@ -362,4 +362,4 @@
 
 #include <ndnboost/iterator/detail/config_undef.hpp>
 
-#endif // BOOST_ITERATOR_ADAPTOR_23022003THW_HPP
+#endif // NDNBOOST_ITERATOR_ADAPTOR_23022003THW_HPP
diff --git a/include/ndnboost/iterator/iterator_categories.hpp b/include/ndnboost/iterator/iterator_categories.hpp
index 9adc13d..1602e54 100644
--- a/include/ndnboost/iterator/iterator_categories.hpp
+++ b/include/ndnboost/iterator/iterator_categories.hpp
@@ -3,8 +3,8 @@
 // accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_ITERATOR_CATEGORIES_HPP
-# define BOOST_ITERATOR_CATEGORIES_HPP
+#ifndef NDNBOOST_ITERATOR_CATEGORIES_HPP
+# define NDNBOOST_ITERATOR_CATEGORIES_HPP
 
 # include <ndnboost/config.hpp>
 # include <ndnboost/detail/iterator.hpp>
@@ -97,7 +97,7 @@
       >
   {};
 
-# if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+# if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
   template <>
   struct old_category_to_traversal<int>
   {
@@ -131,7 +131,7 @@
   {
   };
   
-# if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+# if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
   template <>
   struct pure_traversal_tag<int>
   {
@@ -162,8 +162,8 @@
     >
 {};
 
-# ifdef BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT
-// Hack because BOOST_MPL_AUX_LAMBDA_SUPPORT doesn't seem to work
+# ifdef NDNBOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT
+// Hack because NDNBOOST_MPL_AUX_LAMBDA_SUPPORT doesn't seem to work
 // out well.  Instantiating the nested apply template also
 // requires instantiating iterator_traits on the
 // placeholder. Instead we just specialize it as a metafunction
@@ -185,4 +185,4 @@
 
 #include <ndnboost/iterator/detail/config_undef.hpp>
 
-#endif // BOOST_ITERATOR_CATEGORIES_HPP
+#endif // NDNBOOST_ITERATOR_CATEGORIES_HPP
diff --git a/include/ndnboost/iterator/iterator_concepts.hpp b/include/ndnboost/iterator/iterator_concepts.hpp
index cbfba5e..58d4589 100644
--- a/include/ndnboost/iterator/iterator_concepts.hpp
+++ b/include/ndnboost/iterator/iterator_concepts.hpp
@@ -3,8 +3,8 @@
 // accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_ITERATOR_CONCEPTS_HPP
-#define BOOST_ITERATOR_CONCEPTS_HPP
+#ifndef NDNBOOST_ITERATOR_CONCEPTS_HPP
+#define NDNBOOST_ITERATOR_CONCEPTS_HPP
 
 #include <ndnboost/concept_check.hpp>
 #include <ndnboost/iterator/iterator_categories.hpp>
@@ -39,15 +39,15 @@
   //===========================================================================
   // Iterator Access Concepts
 
-  BOOST_concept(ReadableIterator,(Iterator))
+  NDNBOOST_concept(ReadableIterator,(Iterator))
     : ndnboost::Assignable<Iterator>
     , ndnboost::CopyConstructible<Iterator>
 
   {
-      typedef BOOST_DEDUCED_TYPENAME ndnboost::detail::iterator_traits<Iterator>::value_type value_type;
-      typedef BOOST_DEDUCED_TYPENAME ndnboost::detail::iterator_traits<Iterator>::reference reference;
+      typedef NDNBOOST_DEDUCED_TYPENAME ndnboost::detail::iterator_traits<Iterator>::value_type value_type;
+      typedef NDNBOOST_DEDUCED_TYPENAME ndnboost::detail::iterator_traits<Iterator>::reference reference;
 
-      BOOST_CONCEPT_USAGE(ReadableIterator)
+      NDNBOOST_CONCEPT_USAGE(ReadableIterator)
       {
 
           value_type v = *i;
@@ -59,12 +59,12 @@
   
   template <
       typename Iterator
-    , typename ValueType = BOOST_DEDUCED_TYPENAME ndnboost::detail::iterator_traits<Iterator>::value_type
+    , typename ValueType = NDNBOOST_DEDUCED_TYPENAME ndnboost::detail::iterator_traits<Iterator>::value_type
   >
   struct WritableIterator
     : ndnboost::CopyConstructible<Iterator>
   {
-      BOOST_CONCEPT_USAGE(WritableIterator)
+      NDNBOOST_CONCEPT_USAGE(WritableIterator)
       {
           *i = v;
       }
@@ -75,13 +75,13 @@
 
   template <
       typename Iterator
-    , typename ValueType = BOOST_DEDUCED_TYPENAME ndnboost::detail::iterator_traits<Iterator>::value_type
+    , typename ValueType = NDNBOOST_DEDUCED_TYPENAME ndnboost::detail::iterator_traits<Iterator>::value_type
   >
   struct WritableIteratorConcept : WritableIterator<Iterator,ValueType> {};
   
-  BOOST_concept(SwappableIterator,(Iterator))
+  NDNBOOST_concept(SwappableIterator,(Iterator))
   {
-      BOOST_CONCEPT_USAGE(SwappableIterator)
+      NDNBOOST_CONCEPT_USAGE(SwappableIterator)
       {
           std::iter_swap(i1, i2);
       }
@@ -90,11 +90,11 @@
       Iterator i2;
   };
 
-  BOOST_concept(LvalueIterator,(Iterator))
+  NDNBOOST_concept(LvalueIterator,(Iterator))
   {
       typedef typename ndnboost::detail::iterator_traits<Iterator>::value_type value_type;
       
-      BOOST_CONCEPT_USAGE(LvalueIterator)
+      NDNBOOST_CONCEPT_USAGE(LvalueIterator)
       {
         value_type& r = const_cast<value_type&>(*i);
         ndnboost::ignore_unused_variable_warning(r);
@@ -107,19 +107,19 @@
   //===========================================================================
   // Iterator Traversal Concepts
 
-  BOOST_concept(IncrementableIterator,(Iterator))
+  NDNBOOST_concept(IncrementableIterator,(Iterator))
     : ndnboost::Assignable<Iterator>
     , ndnboost::CopyConstructible<Iterator>
   {
       typedef typename ndnboost::iterator_traversal<Iterator>::type traversal_category;
 
-      BOOST_CONCEPT_ASSERT((
+      NDNBOOST_CONCEPT_ASSERT((
         ndnboost::Convertible<
             traversal_category
           , ndnboost::incrementable_traversal_tag
         >));
 
-      BOOST_CONCEPT_USAGE(IncrementableIterator)
+      NDNBOOST_CONCEPT_USAGE(IncrementableIterator)
       {
           ++i;
           (void)i++;
@@ -128,44 +128,44 @@
       Iterator i;
   };
 
-  BOOST_concept(SinglePassIterator,(Iterator))
+  NDNBOOST_concept(SinglePassIterator,(Iterator))
     : IncrementableIterator<Iterator>
     , ndnboost::EqualityComparable<Iterator>
 
   {
-      BOOST_CONCEPT_ASSERT((
+      NDNBOOST_CONCEPT_ASSERT((
           ndnboost::Convertible<
-             BOOST_DEDUCED_TYPENAME SinglePassIterator::traversal_category
+             NDNBOOST_DEDUCED_TYPENAME SinglePassIterator::traversal_category
            , ndnboost::single_pass_traversal_tag
           > ));
   };
 
-  BOOST_concept(ForwardTraversal,(Iterator))
+  NDNBOOST_concept(ForwardTraversal,(Iterator))
     : SinglePassIterator<Iterator>
     , ndnboost::DefaultConstructible<Iterator>
   {
       typedef typename ndnboost::detail::iterator_traits<Iterator>::difference_type difference_type;
       
-      BOOST_MPL_ASSERT((ndnboost::is_integral<difference_type>));
-      BOOST_MPL_ASSERT_RELATION(std::numeric_limits<difference_type>::is_signed, ==, true);
+      NDNBOOST_MPL_ASSERT((ndnboost::is_integral<difference_type>));
+      NDNBOOST_MPL_ASSERT_RELATION(std::numeric_limits<difference_type>::is_signed, ==, true);
 
-      BOOST_CONCEPT_ASSERT((
+      NDNBOOST_CONCEPT_ASSERT((
           ndnboost::Convertible<
-             BOOST_DEDUCED_TYPENAME ForwardTraversal::traversal_category
+             NDNBOOST_DEDUCED_TYPENAME ForwardTraversal::traversal_category
            , ndnboost::forward_traversal_tag
           > ));
   };
   
-  BOOST_concept(BidirectionalTraversal,(Iterator))
+  NDNBOOST_concept(BidirectionalTraversal,(Iterator))
     : ForwardTraversal<Iterator>
   {
-      BOOST_CONCEPT_ASSERT((
+      NDNBOOST_CONCEPT_ASSERT((
           ndnboost::Convertible<
-             BOOST_DEDUCED_TYPENAME BidirectionalTraversal::traversal_category
+             NDNBOOST_DEDUCED_TYPENAME BidirectionalTraversal::traversal_category
            , ndnboost::bidirectional_traversal_tag
           > ));
 
-      BOOST_CONCEPT_USAGE(BidirectionalTraversal)
+      NDNBOOST_CONCEPT_USAGE(BidirectionalTraversal)
       {
           --i;
           (void)i--;
@@ -174,16 +174,16 @@
       Iterator i;
   };
 
-  BOOST_concept(RandomAccessTraversal,(Iterator))
+  NDNBOOST_concept(RandomAccessTraversal,(Iterator))
     : BidirectionalTraversal<Iterator>
   {
-      BOOST_CONCEPT_ASSERT((
+      NDNBOOST_CONCEPT_ASSERT((
           ndnboost::Convertible<
-             BOOST_DEDUCED_TYPENAME RandomAccessTraversal::traversal_category
+             NDNBOOST_DEDUCED_TYPENAME RandomAccessTraversal::traversal_category
            , ndnboost::random_access_traversal_tag
           > ));
 
-      BOOST_CONCEPT_USAGE(RandomAccessTraversal)
+      NDNBOOST_CONCEPT_USAGE(RandomAccessTraversal)
       {
           i += n;
           i = i + n;
@@ -245,7 +245,7 @@
 
   } // namespace detail
 
-  BOOST_concept(InteroperableIterator,(Iterator)(ConstIterator))
+  NDNBOOST_concept(InteroperableIterator,(Iterator)(ConstIterator))
   {
    private:
       typedef typename ndnboost::detail::pure_traversal_tag<
@@ -261,10 +261,10 @@
       >::type const_traversal_category;
       
   public:
-      BOOST_CONCEPT_ASSERT((SinglePassIterator<Iterator>));
-      BOOST_CONCEPT_ASSERT((SinglePassIterator<ConstIterator>));
+      NDNBOOST_CONCEPT_ASSERT((SinglePassIterator<Iterator>));
+      NDNBOOST_CONCEPT_ASSERT((SinglePassIterator<ConstIterator>));
 
-      BOOST_CONCEPT_USAGE(InteroperableIterator)
+      NDNBOOST_CONCEPT_USAGE(InteroperableIterator)
       {
           detail::interop_single_pass_constraints(i, ci);
           detail::interop_rand_access_constraints(i, ci, traversal_category(), const_traversal_category());
@@ -281,4 +281,4 @@
 
 #include <ndnboost/concept/detail/concept_undef.hpp>
 
-#endif // BOOST_ITERATOR_CONCEPTS_HPP
+#endif // NDNBOOST_ITERATOR_CONCEPTS_HPP
diff --git a/include/ndnboost/iterator/iterator_facade.hpp b/include/ndnboost/iterator/iterator_facade.hpp
index c61f3ad..eca6466 100644
--- a/include/ndnboost/iterator/iterator_facade.hpp
+++ b/include/ndnboost/iterator/iterator_facade.hpp
@@ -4,8 +4,8 @@
 // Distributed under the Boost Software License, Version 1.0. (See
 // accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
-#ifndef BOOST_ITERATOR_FACADE_23022003THW_HPP
-#define BOOST_ITERATOR_FACADE_23022003THW_HPP
+#ifndef NDNBOOST_ITERATOR_FACADE_23022003THW_HPP
+#define NDNBOOST_ITERATOR_FACADE_23022003THW_HPP
 
 #include <ndnboost/iterator.hpp>
 #include <ndnboost/iterator/interoperable.hpp>
@@ -65,7 +65,7 @@
       , class Return
     >
     struct enable_if_interoperable
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)
     {
         typedef typename mpl::if_<
             mpl::or_<
@@ -112,17 +112,17 @@
           , add_pointer<value_type>
         >::type pointer;
       
-# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)                          \
-    && (BOOST_WORKAROUND(_STLPORT_VERSION, BOOST_TESTED_AT(0x452))              \
-        || BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, BOOST_TESTED_AT(310)))     \
-    || BOOST_WORKAROUND(BOOST_RWSTD_VER, BOOST_TESTED_AT(0x20101))              \
-    || BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, <= 310)
+# if defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)                          \
+    && (NDNBOOST_WORKAROUND(_STLPORT_VERSION, NDNBOOST_TESTED_AT(0x452))              \
+        || NDNBOOST_WORKAROUND(NDNBOOST_DINKUMWARE_STDLIB, NDNBOOST_TESTED_AT(310)))     \
+    || NDNBOOST_WORKAROUND(NDNBOOST_RWSTD_VER, NDNBOOST_TESTED_AT(0x20101))              \
+    || NDNBOOST_WORKAROUND(NDNBOOST_DINKUMWARE_STDLIB, <= 310)
 
         // To interoperate with some broken library/compiler
         // combinations, user-defined iterators must be derived from
         // std::iterator.  It is possible to implement a standard
         // library for broken compilers without this limitation.
-#  define BOOST_ITERATOR_FACADE_NEEDS_ITERATOR_BASE 1
+#  define NDNBOOST_ITERATOR_FACADE_NEEDS_ITERATOR_BASE 1
 
         typedef
            iterator<iterator_category, value_type, Difference, pointer, Reference>
@@ -215,7 +215,7 @@
         Iterator stored_iterator;
     };
 
-# ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+# ifdef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
     template <class Reference, class Value>
     struct is_non_proxy_reference_impl
@@ -232,7 +232,7 @@
           , char[2]
         >::type& helper(R const&);
         
-        BOOST_STATIC_CONSTANT(bool, value = sizeof(helper(r)) == 1);
+        NDNBOOST_STATIC_CONSTANT(bool, value = sizeof(helper(r)) == 1);
     };
         
     template <class Reference, class Value>
@@ -325,7 +325,7 @@
         }
     };
 
-# if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+# if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
     // Deal with ETI
     template<>
     struct operator_arrow_dispatch<int, int>
@@ -406,9 +406,9 @@
         template <class I1, class I2>
         struct apply
           :
-# ifdef BOOST_NO_ONE_WAY_ITERATOR_INTEROP
+# ifdef NDNBOOST_NO_ONE_WAY_ITERATOR_INTEROP
           iterator_difference<I1>
-# elif BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+# elif NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
           mpl::if_<
               is_convertible<I2,I1>
             , typename I1::difference_type
@@ -428,8 +428,8 @@
 
 
   // Macros which describe the declarations of binary operators
-# ifdef BOOST_NO_STRICT_ITERATOR_INTEROPERABILITY
-#  define BOOST_ITERATOR_FACADE_INTEROP_HEAD(prefix, op, result_type)       \
+# ifdef NDNBOOST_NO_STRICT_ITERATOR_INTEROPERABILITY
+#  define NDNBOOST_ITERATOR_FACADE_INTEROP_HEAD(prefix, op, result_type)       \
     template <                                                              \
         class Derived1, class V1, class TC1, class Reference1, class Difference1 \
       , class Derived2, class V2, class TC2, class Reference2, class Difference2 \
@@ -439,7 +439,7 @@
         iterator_facade<Derived1, V1, TC1, Reference1, Difference1> const& lhs   \
       , iterator_facade<Derived2, V2, TC2, Reference2, Difference2> const& rhs)
 # else 
-#  define BOOST_ITERATOR_FACADE_INTEROP_HEAD(prefix, op, result_type)   \
+#  define NDNBOOST_ITERATOR_FACADE_INTEROP_HEAD(prefix, op, result_type)   \
     template <                                                          \
         class Derived1, class V1, class TC1, class Reference1, class Difference1 \
       , class Derived2, class V2, class TC2, class Reference2, class Difference2 \
@@ -453,7 +453,7 @@
       , iterator_facade<Derived2, V2, TC2, Reference2, Difference2> const& rhs)
 # endif 
 
-#  define BOOST_ITERATOR_FACADE_PLUS_HEAD(prefix,args)              \
+#  define NDNBOOST_ITERATOR_FACADE_PLUS_HEAD(prefix,args)              \
     template <class Derived, class V, class TC, class R, class D>   \
     prefix Derived operator+ args
 
@@ -468,7 +468,7 @@
   //
   class iterator_core_access
   {
-# if defined(BOOST_NO_MEMBER_TEMPLATE_FRIENDS)                  
+# if defined(NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS)                  
       // Tasteless as this may seem, making all members public allows member templates
       // to work in the absence of member template friends.
    public:
@@ -476,30 +476,30 @@
       
       template <class I, class V, class TC, class R, class D> friend class iterator_facade;
 
-#  define BOOST_ITERATOR_FACADE_RELATION(op)                                \
-      BOOST_ITERATOR_FACADE_INTEROP_HEAD(friend,op, ndnboost::detail::always_bool2);
+#  define NDNBOOST_ITERATOR_FACADE_RELATION(op)                                \
+      NDNBOOST_ITERATOR_FACADE_INTEROP_HEAD(friend,op, ndnboost::detail::always_bool2);
 
-      BOOST_ITERATOR_FACADE_RELATION(==)
-      BOOST_ITERATOR_FACADE_RELATION(!=)
+      NDNBOOST_ITERATOR_FACADE_RELATION(==)
+      NDNBOOST_ITERATOR_FACADE_RELATION(!=)
 
-      BOOST_ITERATOR_FACADE_RELATION(<)
-      BOOST_ITERATOR_FACADE_RELATION(>)
-      BOOST_ITERATOR_FACADE_RELATION(<=)
-      BOOST_ITERATOR_FACADE_RELATION(>=)
-#  undef BOOST_ITERATOR_FACADE_RELATION
+      NDNBOOST_ITERATOR_FACADE_RELATION(<)
+      NDNBOOST_ITERATOR_FACADE_RELATION(>)
+      NDNBOOST_ITERATOR_FACADE_RELATION(<=)
+      NDNBOOST_ITERATOR_FACADE_RELATION(>=)
+#  undef NDNBOOST_ITERATOR_FACADE_RELATION
 
-      BOOST_ITERATOR_FACADE_INTEROP_HEAD(
+      NDNBOOST_ITERATOR_FACADE_INTEROP_HEAD(
           friend, -, ndnboost::detail::choose_difference_type)
       ;
 
-      BOOST_ITERATOR_FACADE_PLUS_HEAD(
+      NDNBOOST_ITERATOR_FACADE_PLUS_HEAD(
           friend inline
           , (iterator_facade<Derived, V, TC, R, D> const&
            , typename Derived::difference_type)
       )
       ;
 
-      BOOST_ITERATOR_FACADE_PLUS_HEAD(
+      NDNBOOST_ITERATOR_FACADE_PLUS_HEAD(
           friend inline
         , (typename Derived::difference_type
            , iterator_facade<Derived, V, TC, R, D> const&)
@@ -590,11 +590,11 @@
     , class Difference  = std::ptrdiff_t
   >
   class iterator_facade
-# ifdef BOOST_ITERATOR_FACADE_NEEDS_ITERATOR_BASE
+# ifdef NDNBOOST_ITERATOR_FACADE_NEEDS_ITERATOR_BASE
     : public ndnboost::detail::iterator_facade_types<
          Value, CategoryOrTraversal, Reference, Difference
       >::base
-#  undef BOOST_ITERATOR_FACADE_NEEDS_ITERATOR_BASE
+#  undef NDNBOOST_ITERATOR_FACADE_NEEDS_ITERATOR_BASE
 # endif
   {
    private:
@@ -661,7 +661,7 @@
           return this->derived();
       }
 
-# if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+# if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
       typename ndnboost::detail::postfix_increment_result<Derived,Value,Reference,CategoryOrTraversal>::type
       operator++(int)
       {
@@ -703,7 +703,7 @@
           return result -= x;
       }
 
-# if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+# if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
       // There appears to be a bug which trashes the data of classes
       // derived from iterator_facade when they are assigned unless we
       // define this assignment operator.  This bug is only revealed
@@ -716,7 +716,7 @@
 # endif
   };
 
-# if !BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+# if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
   template <class I, class V, class TC, class R, class D>
   inline typename ndnboost::detail::postfix_increment_result<I,V,R,TC>::type
   operator++(
@@ -748,7 +748,7 @@
   // that do not provide them. (Actually it's even worse, they do not provide
   // them for only a few iterators.)
   //
-  // ?? Maybe a BOOST_ITERATOR_NO_FULL_INTEROPERABILITY macro should
+  // ?? Maybe a NDNBOOST_ITERATOR_NO_FULL_INTEROPERABILITY macro should
   //    enable the user to turn off mixed type operators
   //
   // The library takes care to provide only the right operator overloads.
@@ -801,74 +801,74 @@
   // ----------------
   //
 
-# ifdef BOOST_NO_ONE_WAY_ITERATOR_INTEROP
-#  define BOOST_ITERATOR_CONVERTIBLE(a,b) mpl::true_()
+# ifdef NDNBOOST_NO_ONE_WAY_ITERATOR_INTEROP
+#  define NDNBOOST_ITERATOR_CONVERTIBLE(a,b) mpl::true_()
 # else
-#  define BOOST_ITERATOR_CONVERTIBLE(a,b) is_convertible<a,b>()
+#  define NDNBOOST_ITERATOR_CONVERTIBLE(a,b) is_convertible<a,b>()
 # endif
 
-# define BOOST_ITERATOR_FACADE_INTEROP(op, result_type, return_prefix, base_op) \
-  BOOST_ITERATOR_FACADE_INTEROP_HEAD(inline, op, result_type)                   \
+# define NDNBOOST_ITERATOR_FACADE_INTEROP(op, result_type, return_prefix, base_op) \
+  NDNBOOST_ITERATOR_FACADE_INTEROP_HEAD(inline, op, result_type)                   \
   {                                                                             \
       /* For those compilers that do not support enable_if */                   \
-      BOOST_STATIC_ASSERT((                                                     \
+      NDNBOOST_STATIC_ASSERT((                                                     \
           is_interoperable< Derived1, Derived2 >::value                         \
       ));                                                                       \
       return_prefix iterator_core_access::base_op(                              \
           *static_cast<Derived1 const*>(&lhs)                                   \
         , *static_cast<Derived2 const*>(&rhs)                                   \
-        , BOOST_ITERATOR_CONVERTIBLE(Derived2,Derived1)                         \
+        , NDNBOOST_ITERATOR_CONVERTIBLE(Derived2,Derived1)                         \
       );                                                                        \
   }
 
-# define BOOST_ITERATOR_FACADE_RELATION(op, return_prefix, base_op) \
-  BOOST_ITERATOR_FACADE_INTEROP(                                    \
+# define NDNBOOST_ITERATOR_FACADE_RELATION(op, return_prefix, base_op) \
+  NDNBOOST_ITERATOR_FACADE_INTEROP(                                    \
       op                                                            \
     , ndnboost::detail::always_bool2                                   \
     , return_prefix                                                 \
     , base_op                                                       \
   )
 
-  BOOST_ITERATOR_FACADE_RELATION(==, return, equal)
-  BOOST_ITERATOR_FACADE_RELATION(!=, return !, equal)
+  NDNBOOST_ITERATOR_FACADE_RELATION(==, return, equal)
+  NDNBOOST_ITERATOR_FACADE_RELATION(!=, return !, equal)
 
-  BOOST_ITERATOR_FACADE_RELATION(<, return 0 >, distance_from)
-  BOOST_ITERATOR_FACADE_RELATION(>, return 0 <, distance_from)
-  BOOST_ITERATOR_FACADE_RELATION(<=, return 0 >=, distance_from)
-  BOOST_ITERATOR_FACADE_RELATION(>=, return 0 <=, distance_from)
-# undef BOOST_ITERATOR_FACADE_RELATION
+  NDNBOOST_ITERATOR_FACADE_RELATION(<, return 0 >, distance_from)
+  NDNBOOST_ITERATOR_FACADE_RELATION(>, return 0 <, distance_from)
+  NDNBOOST_ITERATOR_FACADE_RELATION(<=, return 0 >=, distance_from)
+  NDNBOOST_ITERATOR_FACADE_RELATION(>=, return 0 <=, distance_from)
+# undef NDNBOOST_ITERATOR_FACADE_RELATION
 
   // operator- requires an additional part in the static assertion
-  BOOST_ITERATOR_FACADE_INTEROP(
+  NDNBOOST_ITERATOR_FACADE_INTEROP(
       -
     , ndnboost::detail::choose_difference_type
     , return
     , distance_from
   )
-# undef BOOST_ITERATOR_FACADE_INTEROP
-# undef BOOST_ITERATOR_FACADE_INTEROP_HEAD
+# undef NDNBOOST_ITERATOR_FACADE_INTEROP
+# undef NDNBOOST_ITERATOR_FACADE_INTEROP_HEAD
 
-# define BOOST_ITERATOR_FACADE_PLUS(args)           \
-  BOOST_ITERATOR_FACADE_PLUS_HEAD(inline, args)     \
+# define NDNBOOST_ITERATOR_FACADE_PLUS(args)           \
+  NDNBOOST_ITERATOR_FACADE_PLUS_HEAD(inline, args)     \
   {                                                 \
       Derived tmp(static_cast<Derived const&>(i));  \
       return tmp += n;                              \
   }
 
-BOOST_ITERATOR_FACADE_PLUS((
+NDNBOOST_ITERATOR_FACADE_PLUS((
   iterator_facade<Derived, V, TC, R, D> const& i
   , typename Derived::difference_type n
 ))
 
-BOOST_ITERATOR_FACADE_PLUS((
+NDNBOOST_ITERATOR_FACADE_PLUS((
     typename Derived::difference_type n
     , iterator_facade<Derived, V, TC, R, D> const& i
 ))
-# undef BOOST_ITERATOR_FACADE_PLUS
-# undef BOOST_ITERATOR_FACADE_PLUS_HEAD
+# undef NDNBOOST_ITERATOR_FACADE_PLUS
+# undef NDNBOOST_ITERATOR_FACADE_PLUS_HEAD
 
 } // namespace ndnboost
 
 #include <ndnboost/iterator/detail/config_undef.hpp>
 
-#endif // BOOST_ITERATOR_FACADE_23022003THW_HPP
+#endif // NDNBOOST_ITERATOR_FACADE_23022003THW_HPP
diff --git a/include/ndnboost/iterator/iterator_traits.hpp b/include/ndnboost/iterator/iterator_traits.hpp
index 78565d3..39735b3 100644
--- a/include/ndnboost/iterator/iterator_traits.hpp
+++ b/include/ndnboost/iterator/iterator_traits.hpp
@@ -14,13 +14,13 @@
 // iterator_category which has the same name as its
 // std::iterator_category() function, probably due in part to the
 // "std:: is visible globally" hack it uses.  Use
-// BOOST_ITERATOR_CATEGORY to write code that's portable to older
+// NDNBOOST_ITERATOR_CATEGORY to write code that's portable to older
 // GCCs.
 
-# if BOOST_WORKAROUND(__GNUC__, <= 2)
-#  define BOOST_ITERATOR_CATEGORY iterator_category_
+# if NDNBOOST_WORKAROUND(__GNUC__, <= 2)
+#  define NDNBOOST_ITERATOR_CATEGORY iterator_category_
 # else
-#  define BOOST_ITERATOR_CATEGORY iterator_category
+#  define NDNBOOST_ITERATOR_CATEGORY iterator_category
 # endif
 
 
@@ -50,12 +50,12 @@
 };
 
 template <class Iterator>
-struct BOOST_ITERATOR_CATEGORY
+struct NDNBOOST_ITERATOR_CATEGORY
 {
     typedef typename ndnboost::detail::iterator_traits<Iterator>::iterator_category type;
 };
 
-# if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+# if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
 template <>
 struct iterator_value<int>
 {
@@ -81,7 +81,7 @@
 };
   
 template <>
-struct BOOST_ITERATOR_CATEGORY<int>
+struct NDNBOOST_ITERATOR_CATEGORY<int>
 {
     typedef void type;
 };
diff --git a/include/ndnboost/iterator/reverse_iterator.hpp b/include/ndnboost/iterator/reverse_iterator.hpp
index 924112f..c9b765d 100644
--- a/include/ndnboost/iterator/reverse_iterator.hpp
+++ b/include/ndnboost/iterator/reverse_iterator.hpp
@@ -4,8 +4,8 @@
 // Distributed under the Boost Software License, Version 1.0. (See
 // accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
-#ifndef BOOST_REVERSE_ITERATOR_23022003THW_HPP
-#define BOOST_REVERSE_ITERATOR_23022003THW_HPP
+#ifndef NDNBOOST_REVERSE_ITERATOR_23022003THW_HPP
+#define NDNBOOST_REVERSE_ITERATOR_23022003THW_HPP
 
 #include <ndnboost/next_prior.hpp>
 #include <ndnboost/iterator.hpp>
@@ -66,4 +66,4 @@
 
 } // namespace ndnboost
 
-#endif // BOOST_REVERSE_ITERATOR_23022003THW_HPP
+#endif // NDNBOOST_REVERSE_ITERATOR_23022003THW_HPP
diff --git a/include/ndnboost/lambda/bind.hpp b/include/ndnboost/lambda/bind.hpp
index 3ec3bab..3b2c814 100644
--- a/include/ndnboost/lambda/bind.hpp
+++ b/include/ndnboost/lambda/bind.hpp
@@ -9,8 +9,8 @@
 //
 // For more information, see http://www.boost.org 
 
-#ifndef BOOST_LAMBDA_BIND_HPP
-#define BOOST_LAMBDA_BIND_HPP
+#ifndef NDNBOOST_LAMBDA_BIND_HPP
+#define NDNBOOST_LAMBDA_BIND_HPP
 
 #include "ndnboost/lambda/core.hpp"
 
diff --git a/include/ndnboost/lambda/core.hpp b/include/ndnboost/lambda/core.hpp
index 1ff8342..301ec43 100644
--- a/include/ndnboost/lambda/core.hpp
+++ b/include/ndnboost/lambda/core.hpp
@@ -19,8 +19,8 @@
 // call operator for placeholder variables.
 // -------------------------------------------------------------------------
 
-#ifndef BOOST_LAMBDA_CORE_HPP
-#define BOOST_LAMBDA_CORE_HPP
+#ifndef NDNBOOST_LAMBDA_CORE_HPP
+#define NDNBOOST_LAMBDA_CORE_HPP
 
 #include "ndnboost/type_traits/transform_traits.hpp"
 #include "ndnboost/type_traits/cv_traits.hpp"
@@ -76,4 +76,4 @@
 } // boost
    
    
-#endif //BOOST_LAMBDA_CORE_HPP
+#endif //NDNBOOST_LAMBDA_CORE_HPP
diff --git a/include/ndnboost/lambda/detail/actions.hpp b/include/ndnboost/lambda/detail/actions.hpp
index 8892bb1..322820b 100644
--- a/include/ndnboost/lambda/detail/actions.hpp
+++ b/include/ndnboost/lambda/detail/actions.hpp
@@ -10,8 +10,8 @@
 
 // ----------------------------------------------------------------
 
-#ifndef BOOST_LAMBDA_ACTIONS_HPP
-#define BOOST_LAMBDA_ACTIONS_HPP
+#ifndef NDNBOOST_LAMBDA_ACTIONS_HPP
+#define NDNBOOST_LAMBDA_ACTIONS_HPP
 
 namespace ndnboost { 
 namespace lambda {
@@ -42,14 +42,14 @@
   // deduction.
 
 template <class Action> struct is_protectable {
-  BOOST_STATIC_CONSTANT(bool, value = false);
+  NDNBOOST_STATIC_CONSTANT(bool, value = false);
 };
 
 // NOTE: comma action is protectable. Other protectable actions
 // are listed in operator_actions.hpp
 
 template<> struct is_protectable<other_action<comma_action> > {
-  BOOST_STATIC_CONSTANT(bool, value = true);
+  NDNBOOST_STATIC_CONSTANT(bool, value = true);
 };
 
 
diff --git a/include/ndnboost/lambda/detail/arity_code.hpp b/include/ndnboost/lambda/detail/arity_code.hpp
index 2b762c3..5735608 100644
--- a/include/ndnboost/lambda/detail/arity_code.hpp
+++ b/include/ndnboost/lambda/detail/arity_code.hpp
@@ -10,8 +10,8 @@
 
 // --------------------------------------------------
 
-#ifndef BOOST_LAMBDA_ARITY_CODE_HPP
-#define BOOST_LAMBDA_ARITY_CODE_HPP
+#ifndef NDNBOOST_LAMBDA_ARITY_CODE_HPP
+#define NDNBOOST_LAMBDA_ARITY_CODE_HPP
 
 #include "ndnboost/type_traits/cv_traits.hpp"
 #include "ndnboost/type_traits/transform_traits.hpp"
@@ -46,7 +46,7 @@
 
 template <class T> struct get_arity {
 
-  BOOST_STATIC_CONSTANT(int, value = detail::get_arity_<typename ndnboost::remove_cv<typename ndnboost::remove_reference<T>::type>::type>::value);
+  NDNBOOST_STATIC_CONSTANT(int, value = detail::get_arity_<typename ndnboost::remove_cv<typename ndnboost::remove_reference<T>::type>::type>::value);
 
 };
 
@@ -54,35 +54,35 @@
 
 template<class T>
 struct get_arity_ {
-  BOOST_STATIC_CONSTANT(int, value = 0);
+  NDNBOOST_STATIC_CONSTANT(int, value = 0);
 };
 
 template<class T>
 struct get_arity_<lambda_functor<T> > {
-  BOOST_STATIC_CONSTANT(int, value = get_arity<T>::value);
+  NDNBOOST_STATIC_CONSTANT(int, value = get_arity<T>::value);
 };
 
 template<class Action, class Args>
 struct get_arity_<lambda_functor_base<Action, Args> > {
-  BOOST_STATIC_CONSTANT(int, value = get_tuple_arity<Args>::value);
+  NDNBOOST_STATIC_CONSTANT(int, value = get_tuple_arity<Args>::value);
 };
 
 template<int I>
 struct get_arity_<placeholder<I> > {
-  BOOST_STATIC_CONSTANT(int, value = I);
+  NDNBOOST_STATIC_CONSTANT(int, value = I);
 };
 
 } // detail 
 
 template<class T>
 struct get_tuple_arity {
-  BOOST_STATIC_CONSTANT(int, value = get_arity<typename T::head_type>::value | get_tuple_arity<typename T::tail_type>::value);
+  NDNBOOST_STATIC_CONSTANT(int, value = get_arity<typename T::head_type>::value | get_tuple_arity<typename T::tail_type>::value);
 };
 
 
 template<>
 struct get_tuple_arity<null_type> {
-  BOOST_STATIC_CONSTANT(int, value = 0);
+  NDNBOOST_STATIC_CONSTANT(int, value = 0);
 };
 
 
@@ -90,17 +90,17 @@
 
 template<class T, int I>
 struct has_placeholder {
-  BOOST_STATIC_CONSTANT(bool, value = (get_arity<T>::value & I) != 0);
+  NDNBOOST_STATIC_CONSTANT(bool, value = (get_arity<T>::value & I) != 0);
 }; 
 
 template<int I, int J>
 struct includes_placeholder {
-  BOOST_STATIC_CONSTANT(bool, value = (J & I) != 0);
+  NDNBOOST_STATIC_CONSTANT(bool, value = (J & I) != 0);
 };
 
 template<int I, int J>
 struct lacks_placeholder {
-  BOOST_STATIC_CONSTANT(bool, value = ((J & I) == 0));
+  NDNBOOST_STATIC_CONSTANT(bool, value = ((J & I) == 0));
 };
 
 
diff --git a/include/ndnboost/lambda/detail/bind_functions.hpp b/include/ndnboost/lambda/detail/bind_functions.hpp
index 4288067..ec7f4e9 100644
--- a/include/ndnboost/lambda/detail/bind_functions.hpp
+++ b/include/ndnboost/lambda/detail/bind_functions.hpp
@@ -10,14 +10,14 @@
 
 // ----------------------------------------------------------------
 
-#ifndef BOOST_LAMBDA_BIND_FUNCTIONS_HPP
-#define BOOST_LAMBDA_BIND_FUNCTIONS_HPP
+#ifndef NDNBOOST_LAMBDA_BIND_FUNCTIONS_HPP
+#define NDNBOOST_LAMBDA_BIND_FUNCTIONS_HPP
 
 
 namespace ndnboost { 
 namespace lambda {
 
-#ifdef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING
+#ifdef NDNBOOST_LAMBDA_INCORRECT_BIND_OVERLOADING
 
   // gcc 2.96 instantiates bind functions it does not even call.
   // These instantiations lead to incorrect types in the return type, 
@@ -36,7 +36,7 @@
 }
 #endif
 // 1-argument bind functions --------------------------
-#ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
+#ifndef NDNBOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
 template <class Result>
 inline const
 lambda_functor<
@@ -58,7 +58,7 @@
 }
 #endif
 
- #ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING 
+ #ifndef NDNBOOST_LAMBDA_INCORRECT_BIND_OVERLOADING 
 template <class Arg1>
 inline const
 lambda_functor<
@@ -177,7 +177,7 @@
 #endif 
 
 // 2-argument bind functions --------------------------
-#ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
+#ifndef NDNBOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
 template <class Result, class Par1, class Arg2>
 inline const
 lambda_functor<
@@ -199,7 +199,7 @@
 }
 #endif
 
-#ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING 
+#ifndef NDNBOOST_LAMBDA_INCORRECT_BIND_OVERLOADING 
 template <class Arg1, class Arg2>
 inline const
 lambda_functor<
@@ -318,7 +318,7 @@
  #endif 
 
 // 3-argument bind functions --------------------------
-#ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
+#ifndef NDNBOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
 template <class Result, class Par1, class Par2, class Arg2, class Arg3>
 inline const
 lambda_functor<
@@ -346,7 +346,7 @@
 }
 #endif
 
- #ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING 
+ #ifndef NDNBOOST_LAMBDA_INCORRECT_BIND_OVERLOADING 
 template <class Arg1, class Arg2, class Arg3>
 inline const
 lambda_functor<
@@ -487,7 +487,7 @@
  #endif 
 
 // 4-argument bind functions --------------------------
-#ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
+#ifndef NDNBOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
 template <class Result, class Par1, class Par2, class Par3, class Arg2,
           class Arg3, class Arg4>
 inline const
@@ -517,7 +517,7 @@
 }
 #endif
 
- #ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING 
+ #ifndef NDNBOOST_LAMBDA_INCORRECT_BIND_OVERLOADING 
 template <class Arg1, class Arg2, class Arg3, class Arg4>
 inline const
 lambda_functor<
@@ -662,7 +662,7 @@
  #endif 
 
 // 5-argument bind functions --------------------------
-#ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
+#ifndef NDNBOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
 template <class Result, class Par1, class Par2, class Par3, class Par4,
           class Arg2, class Arg3, class Arg4, class Arg5>
 inline const
@@ -695,7 +695,7 @@
 }
 #endif
 
- #ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING 
+ #ifndef NDNBOOST_LAMBDA_INCORRECT_BIND_OVERLOADING 
 template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5>
 inline const
 lambda_functor<
@@ -849,7 +849,7 @@
  #endif 
 
 // 6-argument bind functions --------------------------
-#ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
+#ifndef NDNBOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
 template <class Result, class Par1, class Par2, class Par3, class Par4,
           class Par5, class Arg2, class Arg3, class Arg4, class Arg5,
           class Arg6>
@@ -883,7 +883,7 @@
 }
 #endif
 
- #ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING 
+ #ifndef NDNBOOST_LAMBDA_INCORRECT_BIND_OVERLOADING 
 template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5,
           class Arg6>
 inline const
@@ -1040,7 +1040,7 @@
  #endif 
 
 // 7-argument bind functions --------------------------
-#ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
+#ifndef NDNBOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
 template <class Result, class Par1, class Par2, class Par3, class Par4,
           class Par5, class Par6, class Arg2, class Arg3, class Arg4,
           class Arg5, class Arg6, class Arg7>
@@ -1075,7 +1075,7 @@
 }
 #endif
 
- #ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING 
+ #ifndef NDNBOOST_LAMBDA_INCORRECT_BIND_OVERLOADING 
 template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5,
           class Arg6, class Arg7>
 inline const
@@ -1239,7 +1239,7 @@
  #endif 
 
 // 8-argument bind functions --------------------------
-#ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
+#ifndef NDNBOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
 template <class Result, class Par1, class Par2, class Par3, class Par4,
           class Par5, class Par6, class Par7, class Arg2, class Arg3,
           class Arg4, class Arg5, class Arg6, class Arg7, class Arg8>
@@ -1274,7 +1274,7 @@
 }
 #endif
 
- #ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING 
+ #ifndef NDNBOOST_LAMBDA_INCORRECT_BIND_OVERLOADING 
 template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5,
           class Arg6, class Arg7, class Arg8>
 inline const
@@ -1438,7 +1438,7 @@
  #endif 
 
 // 9-argument bind functions --------------------------
-#ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
+#ifndef NDNBOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
 template <class Result, class Par1, class Par2, class Par3, class Par4,
           class Par5, class Par6, class Par7, class Par8, class Arg2,
           class Arg3, class Arg4, class Arg5, class Arg6, class Arg7,
@@ -1477,7 +1477,7 @@
 }
 #endif
 
- #ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING 
+ #ifndef NDNBOOST_LAMBDA_INCORRECT_BIND_OVERLOADING 
 template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5,
           class Arg6, class Arg7, class Arg8, class Arg9>
 inline const
@@ -1653,7 +1653,7 @@
  #endif 
 
 // 10-argument bind functions --------------------------
-#ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
+#ifndef NDNBOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
 template <class Result, class Par1, class Par2, class Par3, class Par4,
           class Par5, class Par6, class Par7, class Par8, class Par9,
           class Arg2, class Arg3, class Arg4, class Arg5, class Arg6,
@@ -1693,7 +1693,7 @@
 }
 #endif
 
- #ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING 
+ #ifndef NDNBOOST_LAMBDA_INCORRECT_BIND_OVERLOADING 
 template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5,
           class Arg6, class Arg7, class Arg8, class Arg9, class Arg10>
 inline const
diff --git a/include/ndnboost/lambda/detail/function_adaptors.hpp b/include/ndnboost/lambda/detail/function_adaptors.hpp
index df5367e..c527354 100644
--- a/include/ndnboost/lambda/detail/function_adaptors.hpp
+++ b/include/ndnboost/lambda/detail/function_adaptors.hpp
@@ -9,8 +9,8 @@
 // For more information, see www.boost.org
 
 
-#ifndef BOOST_LAMBDA_FUNCTION_ADAPTORS_HPP
-#define BOOST_LAMBDA_FUNCTION_ADAPTORS_HPP
+#ifndef NDNBOOST_LAMBDA_FUNCTION_ADAPTORS_HPP
+#define NDNBOOST_LAMBDA_FUNCTION_ADAPTORS_HPP
 
 #include "ndnboost/mpl/has_xxx.hpp"
 #include "ndnboost/tuple/tuple.hpp"
@@ -26,7 +26,7 @@
 
 namespace detail {
 
-BOOST_MPL_HAS_XXX_TEMPLATE_DEF(sig)
+NDNBOOST_MPL_HAS_XXX_TEMPLATE_DEF(sig)
 
 template<class Tuple>
 struct remove_references_from_elements {
@@ -47,7 +47,7 @@
 
   typedef typename detail::remove_reference_and_cv<Func>::type plainF;
 
-#if !defined(BOOST_NO_RESULT_OF)
+#if !defined(NDNBOOST_NO_RESULT_OF)
   // Support functors that use the ndnboost::result_of return type convention.
   template<class Tuple, int Length, bool HasSig>
   struct result_converter;
@@ -166,7 +166,7 @@
       , detail::has_sig<plainF>::value
       >
   {};
-#else // BOOST_NO_RESULT_OF
+#else // NDNBOOST_NO_RESULT_OF
 
   template <class Args> class sig {
     typedef typename detail::remove_reference_and_cv<Func>::type plainF;
diff --git a/include/ndnboost/lambda/detail/is_instance_of.hpp b/include/ndnboost/lambda/detail/is_instance_of.hpp
index 3e91c66..1b03597 100644
--- a/include/ndnboost/lambda/detail/is_instance_of.hpp
+++ b/include/ndnboost/lambda/detail/is_instance_of.hpp
@@ -10,10 +10,10 @@
 
 // ---------------------------------------------------------------
 
-#ifndef BOOST_LAMBDA_IS_INSTANCE_OF
-#define BOOST_LAMBDA_IS_INSTANCE_OF
+#ifndef NDNBOOST_LAMBDA_IS_INSTANCE_OF
+#define NDNBOOST_LAMBDA_IS_INSTANCE_OF
 
-#include "ndnboost/config.hpp" // for BOOST_STATIC_CONSTANT
+#include "ndnboost/config.hpp" // for NDNBOOST_STATIC_CONSTANT
 #include "ndnboost/type_traits/conversion_traits.hpp" // for is_convertible
 #include "ndnboost/preprocessor/enum_shifted_params.hpp"
 #include "ndnboost/preprocessor/repeat_2nd.hpp"
@@ -38,60 +38,60 @@
 // Now we only have one version of is_instance_of templates, which delagate
 // all the nasty compiler tricks to is_convertible. 
 
-#define BOOST_LAMBDA_CLASS(z, N,A) BOOST_PP_COMMA_IF(N) class
-#define BOOST_LAMBDA_CLASS_ARG(z, N,A) BOOST_PP_COMMA_IF(N) class A##N 
-#define BOOST_LAMBDA_ARG(z, N,A) BOOST_PP_COMMA_IF(N) A##N 
+#define NDNBOOST_LAMBDA_CLASS(z, N,A) NDNBOOST_PP_COMMA_IF(N) class
+#define NDNBOOST_LAMBDA_CLASS_ARG(z, N,A) NDNBOOST_PP_COMMA_IF(N) class A##N 
+#define NDNBOOST_LAMBDA_ARG(z, N,A) NDNBOOST_PP_COMMA_IF(N) A##N 
 
-#define BOOST_LAMBDA_CLASS_LIST(n, NAME) BOOST_PP_REPEAT(n, BOOST_LAMBDA_CLASS, NAME)
+#define NDNBOOST_LAMBDA_CLASS_LIST(n, NAME) NDNBOOST_PP_REPEAT(n, NDNBOOST_LAMBDA_CLASS, NAME)
 
-#define BOOST_LAMBDA_CLASS_ARG_LIST(n, NAME) BOOST_PP_REPEAT(n, BOOST_LAMBDA_CLASS_ARG, NAME)
+#define NDNBOOST_LAMBDA_CLASS_ARG_LIST(n, NAME) NDNBOOST_PP_REPEAT(n, NDNBOOST_LAMBDA_CLASS_ARG, NAME)
 
-#define BOOST_LAMBDA_ARG_LIST(n, NAME) BOOST_PP_REPEAT(n, BOOST_LAMBDA_ARG, NAME)
+#define NDNBOOST_LAMBDA_ARG_LIST(n, NAME) NDNBOOST_PP_REPEAT(n, NDNBOOST_LAMBDA_ARG, NAME)
 
 namespace ndnboost {
 namespace lambda {
 
-#define BOOST_LAMBDA_IS_INSTANCE_OF_TEMPLATE(INDEX)                         \
+#define NDNBOOST_LAMBDA_IS_INSTANCE_OF_TEMPLATE(INDEX)                         \
                                                                             \
 namespace detail {                                                          \
                                                                             \
-template <template<BOOST_LAMBDA_CLASS_LIST(INDEX,T)> class F>               \
-struct BOOST_PP_CAT(conversion_tester_,INDEX) {                             \
-  template<BOOST_LAMBDA_CLASS_ARG_LIST(INDEX,A)>                            \
-  BOOST_PP_CAT(conversion_tester_,INDEX)                                    \
-    (const F<BOOST_LAMBDA_ARG_LIST(INDEX,A)>&);                             \
+template <template<NDNBOOST_LAMBDA_CLASS_LIST(INDEX,T)> class F>               \
+struct NDNBOOST_PP_CAT(conversion_tester_,INDEX) {                             \
+  template<NDNBOOST_LAMBDA_CLASS_ARG_LIST(INDEX,A)>                            \
+  NDNBOOST_PP_CAT(conversion_tester_,INDEX)                                    \
+    (const F<NDNBOOST_LAMBDA_ARG_LIST(INDEX,A)>&);                             \
 };                                                                          \
                                                                             \
 } /* end detail */                                                          \
                                                                             \
-template <class From, template <BOOST_LAMBDA_CLASS_LIST(INDEX,T)> class To> \
-struct BOOST_PP_CAT(is_instance_of_,INDEX)                                  \
+template <class From, template <NDNBOOST_LAMBDA_CLASS_LIST(INDEX,T)> class To> \
+struct NDNBOOST_PP_CAT(is_instance_of_,INDEX)                                  \
 {                                                                           \
  private:                                                                   \
    typedef ::ndnboost::is_convertible<                                         \
      From,                                                                  \
-     BOOST_PP_CAT(detail::conversion_tester_,INDEX)<To>                     \
+     NDNBOOST_PP_CAT(detail::conversion_tester_,INDEX)<To>                     \
    > helper_type;                                                           \
                                                                             \
 public:                                                                     \
-  BOOST_STATIC_CONSTANT(bool, value = helper_type::value);                  \
+  NDNBOOST_STATIC_CONSTANT(bool, value = helper_type::value);                  \
 };
 
 
-#define BOOST_LAMBDA_HELPER(z, N, A) BOOST_LAMBDA_IS_INSTANCE_OF_TEMPLATE( BOOST_PP_INC(N) )
+#define NDNBOOST_LAMBDA_HELPER(z, N, A) NDNBOOST_LAMBDA_IS_INSTANCE_OF_TEMPLATE( NDNBOOST_PP_INC(N) )
 
 // Generate the traits for 1-4 argument templates
 
-BOOST_PP_REPEAT_2ND(4,BOOST_LAMBDA_HELPER,FOO)
+NDNBOOST_PP_REPEAT_2ND(4,NDNBOOST_LAMBDA_HELPER,FOO)
 
-#undef BOOST_LAMBDA_HELPER
-#undef BOOST_LAMBDA_IS_INSTANCE_OF_TEMPLATE
-#undef BOOST_LAMBDA_CLASS
-#undef BOOST_LAMBDA_ARG
-#undef BOOST_LAMBDA_CLASS_ARG
-#undef BOOST_LAMBDA_CLASS_LIST
-#undef BOOST_LAMBDA_ARG_LIST
-#undef BOOST_LAMBDA_CLASS_ARG_LIST
+#undef NDNBOOST_LAMBDA_HELPER
+#undef NDNBOOST_LAMBDA_IS_INSTANCE_OF_TEMPLATE
+#undef NDNBOOST_LAMBDA_CLASS
+#undef NDNBOOST_LAMBDA_ARG
+#undef NDNBOOST_LAMBDA_CLASS_ARG
+#undef NDNBOOST_LAMBDA_CLASS_LIST
+#undef NDNBOOST_LAMBDA_ARG_LIST
+#undef NDNBOOST_LAMBDA_CLASS_ARG_LIST
 
 } // lambda
 } // boost
diff --git a/include/ndnboost/lambda/detail/lambda_config.hpp b/include/ndnboost/lambda/detail/lambda_config.hpp
index c994383..ce5dce2 100644
--- a/include/ndnboost/lambda/detail/lambda_config.hpp
+++ b/include/ndnboost/lambda/detail/lambda_config.hpp
@@ -10,8 +10,8 @@
 
 // ---------------------------------------------------------------
 
-#ifndef BOOST_LAMBDA_LAMBDA_CONFIG_HPP
-#define BOOST_LAMBDA_LAMBDA_CONFIG_HPP
+#ifndef NDNBOOST_LAMBDA_LAMBDA_CONFIG_HPP
+#define NDNBOOST_LAMBDA_LAMBDA_CONFIG_HPP
 
 // add to ndnboost/config.hpp
 // for now
@@ -19,22 +19,22 @@
 
 # if defined __GNUC__
 #   if (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) 
-#     define BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
-#     define BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING
+#     define NDNBOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
+#     define NDNBOOST_LAMBDA_INCORRECT_BIND_OVERLOADING
 #   endif
 #   if (__GNUC__ == 2 && __GNUC_MINOR__ <= 97) 
-#     define BOOST_NO_TEMPLATED_STREAMS
-#     define BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING
+#     define NDNBOOST_NO_TEMPLATED_STREAMS
+#     define NDNBOOST_LAMBDA_INCORRECT_BIND_OVERLOADING
 #   endif
 #   if (__GNUC__ == 2 && __GNUC_MINOR__ <= 95) 
-#     define BOOST_LAMBDA_FAILS_IN_TEMPLATE_KEYWORD_AFTER_SCOPE_OPER
+#     define NDNBOOST_LAMBDA_FAILS_IN_TEMPLATE_KEYWORD_AFTER_SCOPE_OPER
 #   endif
 # endif  // __GNUC__
  
 
 #if defined __KCC
 
-#define BOOST_NO_FDECL_TEMPLATES_AS_TEMPLATE_TEMPLATE_PARAMS
+#define NDNBOOST_NO_FDECL_TEMPLATES_AS_TEMPLATE_TEMPLATE_PARAMS
 
 #endif  // __KCC
 
diff --git a/include/ndnboost/lambda/detail/lambda_functor_base.hpp b/include/ndnboost/lambda/detail/lambda_functor_base.hpp
index 2c90f56..bfb012f 100644
--- a/include/ndnboost/lambda/detail/lambda_functor_base.hpp
+++ b/include/ndnboost/lambda/detail/lambda_functor_base.hpp
@@ -10,8 +10,8 @@
 
 // ------------------------------------------------------------
 
-#ifndef BOOST_LAMBDA_LAMBDA_FUNCTOR_BASE_HPP
-#define BOOST_LAMBDA_LAMBDA_FUNCTOR_BASE_HPP
+#ifndef NDNBOOST_LAMBDA_LAMBDA_FUNCTOR_BASE_HPP
+#define NDNBOOST_LAMBDA_LAMBDA_FUNCTOR_BASE_HPP
 
 #include "ndnboost/type_traits/add_reference.hpp"
 #include "ndnboost/type_traits/add_const.hpp"
@@ -22,7 +22,7 @@
 namespace ndnboost { 
 namespace lambda {
 
-#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, >= 1400)
 #pragma warning(push)
 #pragma warning(disable:4512) //assignment operator could not be generated
 #endif
@@ -52,7 +52,7 @@
   RET call(CALL_FORMAL_ARGS) const { CALL_USE_ARGS; return elem; }
 };
 
-#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, >= 1400)
 #pragma warning(pop)
 #endif
 
@@ -156,16 +156,16 @@
   // sig template for nullary case even if the nullary operator() is not
   // called
 template <class T> struct is_null_type 
-{ BOOST_STATIC_CONSTANT(bool, value = false); };
+{ NDNBOOST_STATIC_CONSTANT(bool, value = false); };
 
 template <> struct is_null_type<null_type> 
-{ BOOST_STATIC_CONSTANT(bool, value = true); };
+{ NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template<class Tuple> struct has_null_type {
-  BOOST_STATIC_CONSTANT(bool, value = (is_null_type<typename Tuple::head_type>::value || has_null_type<typename Tuple::tail_type>::value));
+  NDNBOOST_STATIC_CONSTANT(bool, value = (is_null_type<typename Tuple::head_type>::value || has_null_type<typename Tuple::tail_type>::value));
 };
 template<> struct has_null_type<null_type> {
-  BOOST_STATIC_CONSTANT(bool, value = false);
+  NDNBOOST_STATIC_CONSTANT(bool, value = false);
 };
 
 
@@ -367,12 +367,12 @@
 };
 
 
-#if defined BOOST_LAMBDA_LAMBDA_FUNCTOR_BASE_FIRST_PART  
-#error "Multiple defines of BOOST_LAMBDA_LAMBDA_FUNCTOR_BASE_FIRST_PART"  
+#if defined NDNBOOST_LAMBDA_LAMBDA_FUNCTOR_BASE_FIRST_PART  
+#error "Multiple defines of NDNBOOST_LAMBDA_LAMBDA_FUNCTOR_BASE_FIRST_PART"  
 #endif  
   
   
-#define BOOST_LAMBDA_LAMBDA_FUNCTOR_BASE_FIRST_PART(ARITY)             \
+#define NDNBOOST_LAMBDA_LAMBDA_FUNCTOR_BASE_FIRST_PART(ARITY)             \
 template<class Act, class Args>                                        \
 class lambda_functor_base<action<ARITY, Act>, Args>                    \
 {                                                                      \
@@ -398,7 +398,7 @@
     using detail::element_or_null;                                     \
     using detail::deduce_argument_types;                                
 
-BOOST_LAMBDA_LAMBDA_FUNCTOR_BASE_FIRST_PART(1)
+NDNBOOST_LAMBDA_LAMBDA_FUNCTOR_BASE_FIRST_PART(1)
 
   typedef typename
     deduce_argument_types<Args, tuple<CALL_REFERENCE_TYPES> >::type rets_t;
@@ -411,7 +411,7 @@
 };
 
 
-BOOST_LAMBDA_LAMBDA_FUNCTOR_BASE_FIRST_PART(2)
+NDNBOOST_LAMBDA_LAMBDA_FUNCTOR_BASE_FIRST_PART(2)
   
   typedef typename 
     deduce_argument_types<Args, tuple<CALL_REFERENCE_TYPES> >::type rets_t;
@@ -425,7 +425,7 @@
   }
 };
 
-BOOST_LAMBDA_LAMBDA_FUNCTOR_BASE_FIRST_PART(3)
+NDNBOOST_LAMBDA_LAMBDA_FUNCTOR_BASE_FIRST_PART(3)
 
   typedef typename 
     deduce_argument_types<Args, tuple<CALL_REFERENCE_TYPES> >::type rets_t;
@@ -442,7 +442,7 @@
   }
 };
 
-BOOST_LAMBDA_LAMBDA_FUNCTOR_BASE_FIRST_PART(4)
+NDNBOOST_LAMBDA_LAMBDA_FUNCTOR_BASE_FIRST_PART(4)
   typedef typename 
     deduce_argument_types<Args, tuple<CALL_REFERENCE_TYPES> >::type rets_t;
   typedef typename element_or_null<0, rets_t>::type rt0;
@@ -459,7 +459,7 @@
   }
 };
 
-BOOST_LAMBDA_LAMBDA_FUNCTOR_BASE_FIRST_PART(5)
+NDNBOOST_LAMBDA_LAMBDA_FUNCTOR_BASE_FIRST_PART(5)
   typedef typename 
     deduce_argument_types<Args, tuple<CALL_REFERENCE_TYPES> >::type rets_t;
   typedef typename element_or_null<0, rets_t>::type rt0;
@@ -478,7 +478,7 @@
   }
 };
 
-BOOST_LAMBDA_LAMBDA_FUNCTOR_BASE_FIRST_PART(6)
+NDNBOOST_LAMBDA_LAMBDA_FUNCTOR_BASE_FIRST_PART(6)
 
   typedef typename 
     deduce_argument_types<Args, tuple<CALL_REFERENCE_TYPES> >::type rets_t;
@@ -501,7 +501,7 @@
   }
 };
 
-BOOST_LAMBDA_LAMBDA_FUNCTOR_BASE_FIRST_PART(7)
+NDNBOOST_LAMBDA_LAMBDA_FUNCTOR_BASE_FIRST_PART(7)
   typedef typename 
     deduce_argument_types<Args, tuple<CALL_REFERENCE_TYPES> >::type rets_t;
   typedef typename element_or_null<0, rets_t>::type rt0;
@@ -525,7 +525,7 @@
   }
 };
 
-BOOST_LAMBDA_LAMBDA_FUNCTOR_BASE_FIRST_PART(8)
+NDNBOOST_LAMBDA_LAMBDA_FUNCTOR_BASE_FIRST_PART(8)
   typedef typename 
     deduce_argument_types<Args, tuple<CALL_REFERENCE_TYPES> >::type rets_t;
   typedef typename element_or_null<0, rets_t>::type rt0;
@@ -550,7 +550,7 @@
   }
 };
 
-BOOST_LAMBDA_LAMBDA_FUNCTOR_BASE_FIRST_PART(9)
+NDNBOOST_LAMBDA_LAMBDA_FUNCTOR_BASE_FIRST_PART(9)
   typedef typename 
     deduce_argument_types<Args, tuple<CALL_REFERENCE_TYPES> >::type rets_t;
   typedef typename element_or_null<0, rets_t>::type rt0;
@@ -577,7 +577,7 @@
   }
 };
 
-BOOST_LAMBDA_LAMBDA_FUNCTOR_BASE_FIRST_PART(10) 
+NDNBOOST_LAMBDA_LAMBDA_FUNCTOR_BASE_FIRST_PART(10) 
   typedef typename 
     deduce_argument_types<Args, tuple<CALL_REFERENCE_TYPES> >::type rets_t;
   typedef typename element_or_null<0, rets_t>::type rt0;
@@ -606,7 +606,7 @@
   }
 };
 
-#undef BOOST_LAMBDA_LAMBDA_FUNCTOR_BASE_FIRST_PART
+#undef NDNBOOST_LAMBDA_LAMBDA_FUNCTOR_BASE_FIRST_PART
 
 
 } // namespace lambda
diff --git a/include/ndnboost/lambda/detail/lambda_functors.hpp b/include/ndnboost/lambda/detail/lambda_functors.hpp
index a6a9a7c..020e86e 100644
--- a/include/ndnboost/lambda/detail/lambda_functors.hpp
+++ b/include/ndnboost/lambda/detail/lambda_functors.hpp
@@ -10,31 +10,31 @@
 
 // ------------------------------------------------
 
-#ifndef BOOST_LAMBDA_LAMBDA_FUNCTORS_HPP
-#define BOOST_LAMBDA_LAMBDA_FUNCTORS_HPP
+#ifndef NDNBOOST_LAMBDA_LAMBDA_FUNCTORS_HPP
+#define NDNBOOST_LAMBDA_LAMBDA_FUNCTORS_HPP
 
 #include <ndnboost/config.hpp>
 #include <ndnboost/detail/workaround.hpp>
 #include <ndnboost/utility/result_of.hpp>
 
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1310)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1310)
 
 #include <ndnboost/mpl/or.hpp>
 #include <ndnboost/utility/enable_if.hpp>
 #include <ndnboost/type_traits/is_array.hpp>
 
-#define BOOST_LAMBDA_DISABLE_IF_ARRAY1(A1, R1)\
+#define NDNBOOST_LAMBDA_DISABLE_IF_ARRAY1(A1, R1)\
   typename lazy_disable_if<is_array<A1>, typename R1 >::type
-#define BOOST_LAMBDA_DISABLE_IF_ARRAY2(A1, A2, R1, R2) \
+#define NDNBOOST_LAMBDA_DISABLE_IF_ARRAY2(A1, A2, R1, R2) \
   typename lazy_disable_if<mpl::or_<is_array<A1>, is_array<A2> >, typename R1, R2 >::type
-#define BOOST_LAMBDA_DISABLE_IF_ARRAY3(A1, A2, A3, R1, R2, R3) \
+#define NDNBOOST_LAMBDA_DISABLE_IF_ARRAY3(A1, A2, A3, R1, R2, R3) \
   typename lazy_disable_if<mpl::or_<is_array<A1>, is_array<A2>, is_array<A3> >, typename R1, R2, R3 >::type
 
 #else
 
-#define BOOST_LAMBDA_DISABLE_IF_ARRAY1(A1, R1) typename R1::type
-#define BOOST_LAMBDA_DISABLE_IF_ARRAY2(A1, A2, R1, R2) typename R1, R2::type
-#define BOOST_LAMBDA_DISABLE_IF_ARRAY3(A1, A2, A3, R1, R2, R3) typename R1, R2, R3::type
+#define NDNBOOST_LAMBDA_DISABLE_IF_ARRAY1(A1, R1) typename R1::type
+#define NDNBOOST_LAMBDA_DISABLE_IF_ARRAY2(A1, A2, R1, R2) typename R1, R2::type
+#define NDNBOOST_LAMBDA_DISABLE_IF_ARRAY3(A1, A2, A3, R1, R2, R3) typename R1, R2, R3::type
 
 #endif
 
@@ -82,7 +82,7 @@
 
   template<class RET, CALL_TEMPLATE_ARGS> 
   RET call(CALL_FORMAL_ARGS) const { 
-    BOOST_STATIC_ASSERT(ndnboost::is_reference<RET>::value); 
+    NDNBOOST_STATIC_ASSERT(ndnboost::is_reference<RET>::value); 
     CALL_USE_ARGS; // does nothing, prevents warnings for unused args
     return a; 
   }
@@ -130,7 +130,7 @@
 // other lambda_functors.
 // -------------------------------------------------------------------
 
-#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, >= 1400)
 #pragma warning(push)
 #pragma warning(disable:4512) //assignment operator could not be generated
 #endif
@@ -140,7 +140,7 @@
 class lambda_functor : public T 
 {
 
-BOOST_STATIC_CONSTANT(int, arity_bits = get_arity<T>::value);
+NDNBOOST_STATIC_CONSTANT(int, arity_bits = get_arity<T>::value);
  
 public:
   typedef T inherited;
@@ -196,7 +196,7 @@
   }
 
   template<class A>
-  BOOST_LAMBDA_DISABLE_IF_ARRAY1(A, inherited::template sig<tuple<A const&> >)
+  NDNBOOST_LAMBDA_DISABLE_IF_ARRAY1(A, inherited::template sig<tuple<A const&> >)
   operator()(A const& a) const { 
     return inherited::template call<
       typename inherited::template sig<tuple<A const&> >::type
@@ -212,7 +212,7 @@
   }
 
   template<class A, class B>
-  BOOST_LAMBDA_DISABLE_IF_ARRAY2(A, B, inherited::template sig<tuple<A const&, B&> >)
+  NDNBOOST_LAMBDA_DISABLE_IF_ARRAY2(A, B, inherited::template sig<tuple<A const&, B&> >)
   operator()(A const& a, B& b) const { 
     return inherited::template call<
       typename inherited::template sig<tuple<A const&, B&> >::type
@@ -220,7 +220,7 @@
   }
 
   template<class A, class B>
-  BOOST_LAMBDA_DISABLE_IF_ARRAY2(A, B, inherited::template sig<tuple<A&, B const&> >)
+  NDNBOOST_LAMBDA_DISABLE_IF_ARRAY2(A, B, inherited::template sig<tuple<A&, B const&> >)
   operator()(A& a, B const& b) const { 
     return inherited::template call<
       typename inherited::template sig<tuple<A&, B const&> >::type
@@ -228,7 +228,7 @@
   }
 
   template<class A, class B>
-  BOOST_LAMBDA_DISABLE_IF_ARRAY2(A, B, inherited::template sig<tuple<A const&, B const&> >)
+  NDNBOOST_LAMBDA_DISABLE_IF_ARRAY2(A, B, inherited::template sig<tuple<A const&, B const&> >)
   operator()(A const& a, B const& b) const { 
     return inherited::template call<
       typename inherited::template sig<tuple<A const&, B const&> >::type
@@ -245,7 +245,7 @@
   }
 
   template<class A, class B, class C>
-  BOOST_LAMBDA_DISABLE_IF_ARRAY3(A, B, C, inherited::template sig<tuple<A const&, B const&, C const&> >)
+  NDNBOOST_LAMBDA_DISABLE_IF_ARRAY3(A, B, C, inherited::template sig<tuple<A const&, B const&, C const&> >)
   operator()(A const& a, B const& b, C const& c) const
   { 
     return inherited::template call<
@@ -291,7 +291,7 @@
   } 
 };
 
-#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, >= 1400)
 #pragma warning(pop)
 #endif
 
@@ -300,7 +300,7 @@
 
 namespace ndnboost {
 
-#if !defined(BOOST_RESULT_OF_USE_DECLTYPE) || defined(BOOST_NO_DECLTYPE)
+#if !defined(NDNBOOST_RESULT_OF_USE_DECLTYPE) || defined(NDNBOOST_NO_DECLTYPE)
 
 template<class T>
 struct result_of<ndnboost::lambda::lambda_functor<T>()>
diff --git a/include/ndnboost/lambda/detail/lambda_fwd.hpp b/include/ndnboost/lambda/detail/lambda_fwd.hpp
index e0253b7..098cef6 100644
--- a/include/ndnboost/lambda/detail/lambda_fwd.hpp
+++ b/include/ndnboost/lambda/detail/lambda_fwd.hpp
@@ -10,8 +10,8 @@
 
 // -------------------------------------------------------
 
-#ifndef BOOST_LAMBDA_FWD_HPP
-#define BOOST_LAMBDA_FWD_HPP
+#ifndef NDNBOOST_LAMBDA_FWD_HPP
+#define NDNBOOST_LAMBDA_FWD_HPP
 
 namespace ndnboost { 
 namespace lambda { 
diff --git a/include/ndnboost/lambda/detail/lambda_traits.hpp b/include/ndnboost/lambda/detail/lambda_traits.hpp
index aa241b6..0236e09 100644
--- a/include/ndnboost/lambda/detail/lambda_traits.hpp
+++ b/include/ndnboost/lambda/detail/lambda_traits.hpp
@@ -9,8 +9,8 @@
 // For more information, see www.boost.org
 // -------------------------------------------------------------------------
 
-#ifndef BOOST_LAMBDA_LAMBDA_TRAITS_HPP
-#define BOOST_LAMBDA_LAMBDA_TRAITS_HPP
+#ifndef NDNBOOST_LAMBDA_LAMBDA_TRAITS_HPP
+#define NDNBOOST_LAMBDA_LAMBDA_TRAITS_HPP
 
 #include "ndnboost/type_traits/transform_traits.hpp"
 #include "ndnboost/type_traits/cv_traits.hpp"
@@ -65,14 +65,14 @@
 template<class T>
 struct IF_value_
 {
-  BOOST_STATIC_CONSTANT(int, value = T::value);
+  NDNBOOST_STATIC_CONSTANT(int, value = T::value);
 };
 
 
 template<bool C, class T, class E>
 struct IF_value
 {
-  BOOST_STATIC_CONSTANT(int, value = (IF_value_<typename IF<C, T, E>::RET>::value));
+  NDNBOOST_STATIC_CONSTANT(int, value = (IF_value_<typename IF<C, T, E>::RET>::value));
 };
 
 
@@ -120,18 +120,18 @@
 // is_lambda_functor -------------------------------------------------   
 
 template <class T> struct is_lambda_functor_ {
-  BOOST_STATIC_CONSTANT(bool, value = false);
+  NDNBOOST_STATIC_CONSTANT(bool, value = false);
 };
    
 template <class Arg> struct is_lambda_functor_<lambda_functor<Arg> > {
-  BOOST_STATIC_CONSTANT(bool, value = true);
+  NDNBOOST_STATIC_CONSTANT(bool, value = true);
 };
    
 } // end detail
 
    
 template <class T> struct is_lambda_functor {
-  BOOST_STATIC_CONSTANT(bool, 
+  NDNBOOST_STATIC_CONSTANT(bool, 
      value = 
        detail::is_lambda_functor_<
          typename detail::remove_reference_and_cv<T>::type
@@ -544,7 +544,7 @@
     T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
   >::type args_t;
 
-  BOOST_STATIC_CONSTANT(int, nof_elems = ndnboost::tuples::length<args_t>::value);
+  NDNBOOST_STATIC_CONSTANT(int, nof_elems = ndnboost::tuples::length<args_t>::value);
 
   typedef 
     action<
@@ -575,4 +575,4 @@
 
 
    
-#endif // BOOST_LAMBDA_TRAITS_HPP
+#endif // NDNBOOST_LAMBDA_TRAITS_HPP
diff --git a/include/ndnboost/lambda/detail/member_ptr.hpp b/include/ndnboost/lambda/detail/member_ptr.hpp
index 37c10ab..a6abb74 100644
--- a/include/ndnboost/lambda/detail/member_ptr.hpp
+++ b/include/ndnboost/lambda/detail/member_ptr.hpp
@@ -11,8 +11,8 @@
 
 // --------------------------------------------------------------------------
 
-#if !defined(BOOST_LAMBDA_MEMBER_PTR_HPP)
-#define BOOST_LAMBDA_MEMBER_PTR_HPP
+#if !defined(NDNBOOST_LAMBDA_MEMBER_PTR_HPP)
+#define NDNBOOST_LAMBDA_MEMBER_PTR_HPP
 
 namespace ndnboost { 
 namespace lambda {
@@ -30,8 +30,8 @@
   typedef typename ndnboost::add_reference<T>::type type;
   typedef detail::unspecified class_type;
   typedef detail::unspecified qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = false);
 };
 
 template<class T, class U>
@@ -39,8 +39,8 @@
   typedef typename ndnboost::add_reference<T>::type type;
   typedef U class_type;
   typedef U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = true);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = false);
 };
 
 template<class T, class U>
@@ -48,8 +48,8 @@
   typedef typename ndnboost::add_reference<const T>::type type;
   typedef U class_type;
   typedef const U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = true);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = false);
 };
 
 template<class T, class U>
@@ -57,8 +57,8 @@
   typedef typename ndnboost::add_reference<volatile T>::type type;
   typedef U class_type;
   typedef volatile U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = true);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = false);
 };
 
 template<class T, class U>
@@ -66,8 +66,8 @@
   typedef typename ndnboost::add_reference<const volatile T>::type type;
   typedef U class_type;
   typedef const volatile U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = true);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = false);
 };
 
 // -- nonconst member functions --
@@ -76,48 +76,48 @@
   typedef T type;
   typedef U class_type;
   typedef U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
 };
 template<class T, class U, class A1>
 struct member_pointer<T (U::*)(A1)> {
   typedef T type;
   typedef U class_type;
   typedef U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
 };
 template<class T, class U, class A1, class A2>
 struct member_pointer<T (U::*)(A1, A2)> {
   typedef T type;
   typedef U class_type;
   typedef U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
 };
 template<class T, class U, class A1, class A2, class A3>
 struct member_pointer<T (U::*)(A1, A2, A3)> {
   typedef T type;
   typedef U class_type;
   typedef U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
 };
 template<class T, class U, class A1, class A2, class A3, class A4>
 struct member_pointer<T (U::*)(A1, A2, A3, A4)> {
   typedef T type;
   typedef U class_type;
   typedef U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
 };
 template<class T, class U, class A1, class A2, class A3, class A4, class A5>
 struct member_pointer<T (U::*)(A1, A2, A3, A4, A5)> {
   typedef T type;
   typedef U class_type;
   typedef U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
 };
 template<class T, class U, class A1, class A2, class A3, class A4, class A5,
          class A6>
@@ -125,8 +125,8 @@
   typedef T type;
   typedef U class_type;
   typedef U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
 };
 template<class T, class U, class A1, class A2, class A3, class A4, class A5,
          class A6, class A7>
@@ -134,8 +134,8 @@
   typedef T type;
   typedef U class_type;
   typedef U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
 };
 template<class T, class U, class A1, class A2, class A3, class A4, class A5,
          class A6, class A7, class A8>
@@ -143,8 +143,8 @@
   typedef T type;
   typedef U class_type;
   typedef U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
 };
 template<class T, class U, class A1, class A2, class A3, class A4, class A5,
          class A6, class A7, class A8, class A9>
@@ -152,8 +152,8 @@
   typedef T type;
   typedef U class_type;
   typedef U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
 };
 // -- const member functions --
 template<class T, class U>
@@ -161,48 +161,48 @@
   typedef T type;
   typedef U class_type;
   typedef const U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
 };
 template<class T, class U, class A1>
 struct member_pointer<T (U::*)(A1) const> {
   typedef T type;
   typedef U class_type;
   typedef const U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
 };
 template<class T, class U, class A1, class A2>
 struct member_pointer<T (U::*)(A1, A2) const> {
   typedef T type;
   typedef U class_type;
   typedef const U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
 };
 template<class T, class U, class A1, class A2, class A3>
 struct member_pointer<T (U::*)(A1, A2, A3) const> {
   typedef T type;
   typedef U class_type;
   typedef const U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
 };
 template<class T, class U, class A1, class A2, class A3, class A4>
 struct member_pointer<T (U::*)(A1, A2, A3, A4) const> {
   typedef T type;
   typedef U class_type;
   typedef const U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
 };
 template<class T, class U, class A1, class A2, class A3, class A4, class A5>
 struct member_pointer<T (U::*)(A1, A2, A3, A4, A5) const> {
   typedef T type;
   typedef U class_type;
   typedef const U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
 };
 template<class T, class U, class A1, class A2, class A3, class A4, class A5,
          class A6>
@@ -210,8 +210,8 @@
   typedef T type;
   typedef U class_type;
   typedef const U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
 };
 template<class T, class U, class A1, class A2, class A3, class A4, class A5,
          class A6, class A7>
@@ -219,8 +219,8 @@
   typedef T type;
   typedef U class_type;
   typedef const U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
 };
 template<class T, class U, class A1, class A2, class A3, class A4, class A5,
          class A6, class A7, class A8>
@@ -228,8 +228,8 @@
   typedef T type;
   typedef U class_type;
   typedef const U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
 };
 template<class T, class U, class A1, class A2, class A3, class A4, class A5,
          class A6, class A7, class A8, class A9>
@@ -237,8 +237,8 @@
   typedef T type;
   typedef U class_type;
   typedef const U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
 };
   // -- volatile --
 template<class T, class U>
@@ -246,48 +246,48 @@
   typedef T type;
   typedef U class_type;
   typedef volatile U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
 };
 template<class T, class U, class A1>
 struct member_pointer<T (U::*)(A1) volatile> {
   typedef T type;
   typedef U class_type;
   typedef volatile U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
 };
 template<class T, class U, class A1, class A2>
 struct member_pointer<T (U::*)(A1, A2) volatile> {
   typedef T type;
   typedef U class_type;
   typedef volatile U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
 };
 template<class T, class U, class A1, class A2, class A3>
 struct member_pointer<T (U::*)(A1, A2, A3) volatile> {
   typedef T type;
   typedef U class_type;
   typedef volatile U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
 };
 template<class T, class U, class A1, class A2, class A3, class A4>
 struct member_pointer<T (U::*)(A1, A2, A3, A4) volatile> {
   typedef T type;
   typedef U class_type;
   typedef volatile U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
 };
 template<class T, class U, class A1, class A2, class A3, class A4, class A5>
 struct member_pointer<T (U::*)(A1, A2, A3, A4, A5) volatile> {
   typedef T type;
   typedef U class_type;
   typedef volatile U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
 };
 template<class T, class U, class A1, class A2, class A3, class A4, class A5,
          class A6>
@@ -295,8 +295,8 @@
   typedef T type;
   typedef U class_type;
   typedef volatile U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
 };
 template<class T, class U, class A1, class A2, class A3, class A4, class A5,
          class A6, class A7>
@@ -304,8 +304,8 @@
   typedef T type;
   typedef U class_type;
   typedef volatile U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
 };
 template<class T, class U, class A1, class A2, class A3, class A4, class A5,
          class A6, class A7, class A8>
@@ -313,8 +313,8 @@
   typedef T type;
   typedef U class_type;
   typedef volatile U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
 };
 template<class T, class U, class A1, class A2, class A3, class A4, class A5,
          class A6, class A7, class A8, class A9>
@@ -322,8 +322,8 @@
   typedef T type;
   typedef U class_type;
   typedef volatile U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
 };
   // -- const volatile
 template<class T, class U>
@@ -331,32 +331,32 @@
   typedef T type;
   typedef U class_type;
   typedef const volatile U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
 };
 template<class T, class U, class A1>
 struct member_pointer<T (U::*)(A1) const volatile> {
   typedef T type;
   typedef U class_type;
   typedef const volatile U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
 };
 template<class T, class U, class A1, class A2>
 struct member_pointer<T (U::*)(A1, A2) const volatile> {
   typedef T type;
   typedef U class_type;
   typedef const volatile U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
 };
 template<class T, class U, class A1, class A2, class A3>
 struct member_pointer<T (U::*)(A1, A2, A3) const volatile> {
   typedef T type;
   typedef U class_type;
   typedef const volatile U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
 };
 template<class T, class U, class A1, class A2, class A3, class A4>
 struct member_pointer<T (U::*)(A1, A2, A3, A4) const volatile> {
@@ -369,8 +369,8 @@
   typedef T type;
   typedef U class_type;
   typedef const volatile U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
 };
 template<class T, class U, class A1, class A2, class A3, class A4, class A5,
          class A6>
@@ -378,8 +378,8 @@
   typedef T type;
   typedef U class_type;
   typedef const volatile U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
 };
 template<class T, class U, class A1, class A2, class A3, class A4, class A5,
          class A6, class A7>
@@ -387,8 +387,8 @@
   typedef T type;
   typedef U class_type;
   typedef const volatile U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
 };
 template<class T, class U, class A1, class A2, class A3, class A4, class A5,
          class A6, class A7, class A8>
@@ -396,8 +396,8 @@
   typedef T type;
   typedef U class_type;
   typedef const volatile U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
 };
 template<class T, class U, class A1, class A2, class A3, class A4, class A5,
          class A6, class A7, class A8, class A9>
@@ -405,8 +405,8 @@
   typedef T type;
   typedef U class_type;
   typedef const volatile U qualified_class_type;
-  BOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  BOOST_STATIC_CONSTANT(bool, is_function_member = true);
+  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
+  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
 };
 
 } // detail
diff --git a/include/ndnboost/lambda/detail/operator_actions.hpp b/include/ndnboost/lambda/detail/operator_actions.hpp
index 4947792..4d05f9f 100644
--- a/include/ndnboost/lambda/detail/operator_actions.hpp
+++ b/include/ndnboost/lambda/detail/operator_actions.hpp
@@ -8,8 +8,8 @@
 
 // For more information, see http://lambda.cs.utu.fi 
 
-#ifndef BOOST_LAMBDA_OPERATOR_ACTIONS_HPP
-#define BOOST_LAMBDA_OPERATOR_ACTIONS_HPP
+#ifndef NDNBOOST_LAMBDA_OPERATOR_ACTIONS_HPP
+#define NDNBOOST_LAMBDA_OPERATOR_ACTIONS_HPP
 
 namespace ndnboost { 
 namespace lambda {
@@ -78,48 +78,48 @@
   // deduction.
 
 template <class Act> struct is_protectable<arithmetic_action<Act> > {
-  BOOST_STATIC_CONSTANT(bool, value = true);
+  NDNBOOST_STATIC_CONSTANT(bool, value = true);
 };
 template <class Act> struct is_protectable<bitwise_action<Act> > {
-  BOOST_STATIC_CONSTANT(bool, value = true);
+  NDNBOOST_STATIC_CONSTANT(bool, value = true);
 };
 template <class Act> struct is_protectable<logical_action<Act> > {
-  BOOST_STATIC_CONSTANT(bool, value = true);
+  NDNBOOST_STATIC_CONSTANT(bool, value = true);
 };
 template <class Act> struct is_protectable<relational_action<Act> > {
-  BOOST_STATIC_CONSTANT(bool, value = true);
+  NDNBOOST_STATIC_CONSTANT(bool, value = true);
 };
 template <class Act> 
 struct is_protectable<arithmetic_assignment_action<Act> > {
-  BOOST_STATIC_CONSTANT(bool, value = true);
+  NDNBOOST_STATIC_CONSTANT(bool, value = true);
 };
 template <class Act> struct is_protectable<bitwise_assignment_action<Act> > {
-  BOOST_STATIC_CONSTANT(bool, value = true);
+  NDNBOOST_STATIC_CONSTANT(bool, value = true);
 };
 template <class Act> struct is_protectable<unary_arithmetic_action<Act> > {
-  BOOST_STATIC_CONSTANT(bool, value = true);
+  NDNBOOST_STATIC_CONSTANT(bool, value = true);
 };
 template <class Act> 
 struct is_protectable<pre_increment_decrement_action<Act> > {
-  BOOST_STATIC_CONSTANT(bool, value = true);
+  NDNBOOST_STATIC_CONSTANT(bool, value = true);
 };
 template <class Act> struct 
 is_protectable<post_increment_decrement_action<Act> > {
-  BOOST_STATIC_CONSTANT(bool, value = true);
+  NDNBOOST_STATIC_CONSTANT(bool, value = true);
 };
 
 template <> struct is_protectable<other_action<addressof_action> > {
-  BOOST_STATIC_CONSTANT(bool, value = true);
+  NDNBOOST_STATIC_CONSTANT(bool, value = true);
 };
 template <> struct is_protectable<other_action<contentsof_action> > {
-  BOOST_STATIC_CONSTANT(bool, value = true);
+  NDNBOOST_STATIC_CONSTANT(bool, value = true);
 };
 
 template<> struct is_protectable<other_action<subscript_action> > {
-  BOOST_STATIC_CONSTANT(bool, value = true);
+  NDNBOOST_STATIC_CONSTANT(bool, value = true);
 };
 template<> struct is_protectable<other_action<assignment_action> > {
-  BOOST_STATIC_CONSTANT(bool, value = true);
+  NDNBOOST_STATIC_CONSTANT(bool, value = true);
 };
 
 // NOTE: comma action is also protectable, but the specialization is
diff --git a/include/ndnboost/lambda/detail/operator_lambda_func_base.hpp b/include/ndnboost/lambda/detail/operator_lambda_func_base.hpp
index 777726a..20bb45d 100644
--- a/include/ndnboost/lambda/detail/operator_lambda_func_base.hpp
+++ b/include/ndnboost/lambda/detail/operator_lambda_func_base.hpp
@@ -10,8 +10,8 @@
 
 // ------------------------------------------------------------
 
-#ifndef BOOST_LAMBDA_OPERATOR_LAMBDA_FUNC_BASE_HPP
-#define BOOST_LAMBDA_OPERATOR_LAMBDA_FUNC_BASE_HPP
+#ifndef NDNBOOST_LAMBDA_OPERATOR_LAMBDA_FUNC_BASE_HPP
+#define NDNBOOST_LAMBDA_OPERATOR_LAMBDA_FUNC_BASE_HPP
 
 namespace ndnboost { 
 namespace lambda {
@@ -145,7 +145,7 @@
 };  
 
 
-#define BOOST_LAMBDA_BINARY_ACTION(SYMBOL, ACTION_CLASS)  \
+#define NDNBOOST_LAMBDA_BINARY_ACTION(SYMBOL, ACTION_CLASS)  \
 template<class Args>                                                      \
 class lambda_functor_base<ACTION_CLASS, Args> {                           \
 public:                                                                   \
@@ -165,7 +165,7 @@
   };                                                                      \
 };  
 
-#define BOOST_LAMBDA_PREFIX_UNARY_ACTION(SYMBOL, ACTION_CLASS)            \
+#define NDNBOOST_LAMBDA_PREFIX_UNARY_ACTION(SYMBOL, ACTION_CLASS)            \
 template<class Args>                                                      \
 class lambda_functor_base<ACTION_CLASS, Args> {                           \
 public:                                                                   \
@@ -184,7 +184,7 @@
   };                                                                      \
 };  
 
-#define BOOST_LAMBDA_POSTFIX_UNARY_ACTION(SYMBOL, ACTION_CLASS)           \
+#define NDNBOOST_LAMBDA_POSTFIX_UNARY_ACTION(SYMBOL, ACTION_CLASS)           \
 template<class Args>                                                      \
 class lambda_functor_base<ACTION_CLASS, Args> {                           \
 public:                                                                   \
@@ -203,57 +203,57 @@
   };                                                                      \
 };  
 
-BOOST_LAMBDA_BINARY_ACTION(+,arithmetic_action<plus_action>)
-BOOST_LAMBDA_BINARY_ACTION(-,arithmetic_action<minus_action>)
-BOOST_LAMBDA_BINARY_ACTION(*,arithmetic_action<multiply_action>)
-BOOST_LAMBDA_BINARY_ACTION(/,arithmetic_action<divide_action>)
-BOOST_LAMBDA_BINARY_ACTION(%,arithmetic_action<remainder_action>)
+NDNBOOST_LAMBDA_BINARY_ACTION(+,arithmetic_action<plus_action>)
+NDNBOOST_LAMBDA_BINARY_ACTION(-,arithmetic_action<minus_action>)
+NDNBOOST_LAMBDA_BINARY_ACTION(*,arithmetic_action<multiply_action>)
+NDNBOOST_LAMBDA_BINARY_ACTION(/,arithmetic_action<divide_action>)
+NDNBOOST_LAMBDA_BINARY_ACTION(%,arithmetic_action<remainder_action>)
 
-BOOST_LAMBDA_BINARY_ACTION(<<,bitwise_action<leftshift_action>)
-BOOST_LAMBDA_BINARY_ACTION(>>,bitwise_action<rightshift_action>)
-BOOST_LAMBDA_BINARY_ACTION(&,bitwise_action<and_action>)
-BOOST_LAMBDA_BINARY_ACTION(|,bitwise_action<or_action>)
-BOOST_LAMBDA_BINARY_ACTION(^,bitwise_action<xor_action>)
+NDNBOOST_LAMBDA_BINARY_ACTION(<<,bitwise_action<leftshift_action>)
+NDNBOOST_LAMBDA_BINARY_ACTION(>>,bitwise_action<rightshift_action>)
+NDNBOOST_LAMBDA_BINARY_ACTION(&,bitwise_action<and_action>)
+NDNBOOST_LAMBDA_BINARY_ACTION(|,bitwise_action<or_action>)
+NDNBOOST_LAMBDA_BINARY_ACTION(^,bitwise_action<xor_action>)
 
-BOOST_LAMBDA_BINARY_ACTION(<,relational_action<less_action>)
-BOOST_LAMBDA_BINARY_ACTION(>,relational_action<greater_action>)
-BOOST_LAMBDA_BINARY_ACTION(<=,relational_action<lessorequal_action>)
-BOOST_LAMBDA_BINARY_ACTION(>=,relational_action<greaterorequal_action>)
-BOOST_LAMBDA_BINARY_ACTION(==,relational_action<equal_action>)
-BOOST_LAMBDA_BINARY_ACTION(!=,relational_action<notequal_action>)
+NDNBOOST_LAMBDA_BINARY_ACTION(<,relational_action<less_action>)
+NDNBOOST_LAMBDA_BINARY_ACTION(>,relational_action<greater_action>)
+NDNBOOST_LAMBDA_BINARY_ACTION(<=,relational_action<lessorequal_action>)
+NDNBOOST_LAMBDA_BINARY_ACTION(>=,relational_action<greaterorequal_action>)
+NDNBOOST_LAMBDA_BINARY_ACTION(==,relational_action<equal_action>)
+NDNBOOST_LAMBDA_BINARY_ACTION(!=,relational_action<notequal_action>)
 
-BOOST_LAMBDA_BINARY_ACTION(+=,arithmetic_assignment_action<plus_action>)
-BOOST_LAMBDA_BINARY_ACTION(-=,arithmetic_assignment_action<minus_action>)
-BOOST_LAMBDA_BINARY_ACTION(*=,arithmetic_assignment_action<multiply_action>)
-BOOST_LAMBDA_BINARY_ACTION(/=,arithmetic_assignment_action<divide_action>)
-BOOST_LAMBDA_BINARY_ACTION(%=,arithmetic_assignment_action<remainder_action>)
+NDNBOOST_LAMBDA_BINARY_ACTION(+=,arithmetic_assignment_action<plus_action>)
+NDNBOOST_LAMBDA_BINARY_ACTION(-=,arithmetic_assignment_action<minus_action>)
+NDNBOOST_LAMBDA_BINARY_ACTION(*=,arithmetic_assignment_action<multiply_action>)
+NDNBOOST_LAMBDA_BINARY_ACTION(/=,arithmetic_assignment_action<divide_action>)
+NDNBOOST_LAMBDA_BINARY_ACTION(%=,arithmetic_assignment_action<remainder_action>)
 
-BOOST_LAMBDA_BINARY_ACTION(<<=,bitwise_assignment_action<leftshift_action>)
-BOOST_LAMBDA_BINARY_ACTION(>>=,bitwise_assignment_action<rightshift_action>)
-BOOST_LAMBDA_BINARY_ACTION(&=,bitwise_assignment_action<and_action>)
-BOOST_LAMBDA_BINARY_ACTION(|=,bitwise_assignment_action<or_action>)
-BOOST_LAMBDA_BINARY_ACTION(^=,bitwise_assignment_action<xor_action>)
+NDNBOOST_LAMBDA_BINARY_ACTION(<<=,bitwise_assignment_action<leftshift_action>)
+NDNBOOST_LAMBDA_BINARY_ACTION(>>=,bitwise_assignment_action<rightshift_action>)
+NDNBOOST_LAMBDA_BINARY_ACTION(&=,bitwise_assignment_action<and_action>)
+NDNBOOST_LAMBDA_BINARY_ACTION(|=,bitwise_assignment_action<or_action>)
+NDNBOOST_LAMBDA_BINARY_ACTION(^=,bitwise_assignment_action<xor_action>)
 
-BOOST_LAMBDA_BINARY_ACTION(=,other_action< assignment_action>)
+NDNBOOST_LAMBDA_BINARY_ACTION(=,other_action< assignment_action>)
 
 
-BOOST_LAMBDA_PREFIX_UNARY_ACTION(+, unary_arithmetic_action<plus_action>)
-BOOST_LAMBDA_PREFIX_UNARY_ACTION(-, unary_arithmetic_action<minus_action>)
-BOOST_LAMBDA_PREFIX_UNARY_ACTION(~, bitwise_action<not_action>)
-BOOST_LAMBDA_PREFIX_UNARY_ACTION(!, logical_action<not_action>)
-BOOST_LAMBDA_PREFIX_UNARY_ACTION(++, pre_increment_decrement_action<increment_action>)
-BOOST_LAMBDA_PREFIX_UNARY_ACTION(--, pre_increment_decrement_action<decrement_action>)
+NDNBOOST_LAMBDA_PREFIX_UNARY_ACTION(+, unary_arithmetic_action<plus_action>)
+NDNBOOST_LAMBDA_PREFIX_UNARY_ACTION(-, unary_arithmetic_action<minus_action>)
+NDNBOOST_LAMBDA_PREFIX_UNARY_ACTION(~, bitwise_action<not_action>)
+NDNBOOST_LAMBDA_PREFIX_UNARY_ACTION(!, logical_action<not_action>)
+NDNBOOST_LAMBDA_PREFIX_UNARY_ACTION(++, pre_increment_decrement_action<increment_action>)
+NDNBOOST_LAMBDA_PREFIX_UNARY_ACTION(--, pre_increment_decrement_action<decrement_action>)
 
-BOOST_LAMBDA_PREFIX_UNARY_ACTION(&,other_action<addressof_action>)
-BOOST_LAMBDA_PREFIX_UNARY_ACTION(*,other_action<contentsof_action>)
+NDNBOOST_LAMBDA_PREFIX_UNARY_ACTION(&,other_action<addressof_action>)
+NDNBOOST_LAMBDA_PREFIX_UNARY_ACTION(*,other_action<contentsof_action>)
 
-BOOST_LAMBDA_POSTFIX_UNARY_ACTION(++, post_increment_decrement_action<increment_action>)
-BOOST_LAMBDA_POSTFIX_UNARY_ACTION(--, post_increment_decrement_action<decrement_action>)
+NDNBOOST_LAMBDA_POSTFIX_UNARY_ACTION(++, post_increment_decrement_action<increment_action>)
+NDNBOOST_LAMBDA_POSTFIX_UNARY_ACTION(--, post_increment_decrement_action<decrement_action>)
 
 
-#undef BOOST_LAMBDA_POSTFIX_UNARY_ACTION
-#undef BOOST_LAMBDA_PREFIX_UNARY_ACTION
-#undef BOOST_LAMBDA_BINARY_ACTION
+#undef NDNBOOST_LAMBDA_POSTFIX_UNARY_ACTION
+#undef NDNBOOST_LAMBDA_PREFIX_UNARY_ACTION
+#undef NDNBOOST_LAMBDA_BINARY_ACTION
 
 } // namespace lambda
 } // namespace ndnboost
diff --git a/include/ndnboost/lambda/detail/operator_return_type_traits.hpp b/include/ndnboost/lambda/detail/operator_return_type_traits.hpp
index 0ee927b..10b37ca 100644
--- a/include/ndnboost/lambda/detail/operator_return_type_traits.hpp
+++ b/include/ndnboost/lambda/detail/operator_return_type_traits.hpp
@@ -8,8 +8,8 @@
 //
 // For more information, see www.boost.org
 
-#ifndef BOOST_LAMBDA_OPERATOR_RETURN_TYPE_TRAITS_HPP
-#define BOOST_LAMBDA_OPERATOR_RETURN_TYPE_TRAITS_HPP
+#ifndef NDNBOOST_LAMBDA_OPERATOR_RETURN_TYPE_TRAITS_HPP
+#define NDNBOOST_LAMBDA_OPERATOR_RETURN_TYPE_TRAITS_HPP
 
 #include "ndnboost/lambda/detail/is_instance_of.hpp"
 #include "ndnboost/type_traits/same_traits.hpp"
@@ -530,13 +530,13 @@
   // bitwise operators not defined for floating point types
   // these test are not strictly needed here, since the error will be caught in
   // the apply function
-  BOOST_STATIC_ASSERT(!(ndnboost::is_float<plain_A>::value && ndnboost::is_float<plain_B>::value));
+  NDNBOOST_STATIC_ASSERT(!(ndnboost::is_float<plain_A>::value && ndnboost::is_float<plain_B>::value));
 
 };
 
 namespace detail {
 
-#ifdef BOOST_NO_TEMPLATED_STREAMS
+#ifdef NDNBOOST_NO_TEMPLATED_STREAMS
 
 template<class A, class B>
 struct leftshift_type {
diff --git a/include/ndnboost/lambda/detail/operators.hpp b/include/ndnboost/lambda/detail/operators.hpp
index 7c3bc8b..fac9a48 100644
--- a/include/ndnboost/lambda/detail/operators.hpp
+++ b/include/ndnboost/lambda/detail/operators.hpp
@@ -10,16 +10,16 @@
 
 // ---------------------------------------------------------------
 
-#ifndef BOOST_LAMBDA_OPERATORS_HPP
-#define BOOST_LAMBDA_OPERATORS_HPP
+#ifndef NDNBOOST_LAMBDA_OPERATORS_HPP
+#define NDNBOOST_LAMBDA_OPERATORS_HPP
 
 #include "ndnboost/lambda/detail/is_instance_of.hpp"
 
 namespace ndnboost { 
 namespace lambda {
 
-#if defined BOOST_LAMBDA_BE1
-#error "Multiple defines of BOOST_LAMBDA_BE1"
+#if defined NDNBOOST_LAMBDA_BE1
+#error "Multiple defines of NDNBOOST_LAMBDA_BE1"
 #endif
 
   // For all BOOSTA_LAMBDA_BE* macros:
@@ -31,7 +31,7 @@
   // the need to pass in emtpy macro arguments, which gives warnings on some
   // compilers
 
-#define BOOST_LAMBDA_BE1(OPER_NAME, ACTION, CONSTA, CONSTB, CONVERSION)      \
+#define NDNBOOST_LAMBDA_BE1(OPER_NAME, ACTION, CONSTA, CONSTB, CONVERSION)      \
 template<class Arg, class B>                                                 \
 inline const                                                                 \
 lambda_functor<                                                              \
@@ -50,11 +50,11 @@
 }
 
 
-#if defined BOOST_LAMBDA_BE2
-#error "Multiple defines of BOOST_LAMBDA_BE2"
+#if defined NDNBOOST_LAMBDA_BE2
+#error "Multiple defines of NDNBOOST_LAMBDA_BE2"
 #endif
 
-#define BOOST_LAMBDA_BE2(OPER_NAME, ACTION, CONSTA, CONSTB, CONVERSION)      \
+#define NDNBOOST_LAMBDA_BE2(OPER_NAME, ACTION, CONSTA, CONSTB, CONVERSION)      \
 template<class A, class Arg>                                                 \
 inline const                                                                 \
 lambda_functor<                                                              \
@@ -73,11 +73,11 @@
 }
 
 
-#if defined BOOST_LAMBDA_BE3
-#error "Multiple defines of BOOST_LAMBDA_BE3"
+#if defined NDNBOOST_LAMBDA_BE3
+#error "Multiple defines of NDNBOOST_LAMBDA_BE3"
 #endif
 
-#define BOOST_LAMBDA_BE3(OPER_NAME, ACTION, CONSTA, CONSTB, CONVERSION)    \
+#define NDNBOOST_LAMBDA_BE3(OPER_NAME, ACTION, CONSTA, CONSTB, CONVERSION)    \
 template<class ArgA, class ArgB>                                           \
 inline const                                                               \
 lambda_functor<                                                            \
@@ -95,58 +95,58 @@
   (tuple<lambda_functor<ArgA>, lambda_functor<ArgB> >(a, b));              \
 }
 
-#if defined BOOST_LAMBDA_BE
-#error "Multiple defines of BOOST_LAMBDA_BE"
+#if defined NDNBOOST_LAMBDA_BE
+#error "Multiple defines of NDNBOOST_LAMBDA_BE"
 #endif
 
-#define BOOST_LAMBDA_BE(OPER_NAME, ACTION, CONSTA, CONSTB, CONST_CONVERSION) \
-BOOST_LAMBDA_BE1(OPER_NAME, ACTION, CONSTA, CONSTB, CONST_CONVERSION)        \
-BOOST_LAMBDA_BE2(OPER_NAME, ACTION, CONSTA, CONSTB, CONST_CONVERSION)        \
-BOOST_LAMBDA_BE3(OPER_NAME, ACTION, CONSTA, CONSTB, CONST_CONVERSION)
+#define NDNBOOST_LAMBDA_BE(OPER_NAME, ACTION, CONSTA, CONSTB, CONST_CONVERSION) \
+NDNBOOST_LAMBDA_BE1(OPER_NAME, ACTION, CONSTA, CONSTB, CONST_CONVERSION)        \
+NDNBOOST_LAMBDA_BE2(OPER_NAME, ACTION, CONSTA, CONSTB, CONST_CONVERSION)        \
+NDNBOOST_LAMBDA_BE3(OPER_NAME, ACTION, CONSTA, CONSTB, CONST_CONVERSION)
 
-#define BOOST_LAMBDA_EMPTY() 
+#define NDNBOOST_LAMBDA_EMPTY() 
 
-BOOST_LAMBDA_BE(operator+, arithmetic_action<plus_action>, const A, const B, const_copy_argument)
-BOOST_LAMBDA_BE(operator-, arithmetic_action<minus_action>, const A, const B, const_copy_argument)
-BOOST_LAMBDA_BE(operator*, arithmetic_action<multiply_action>, const A, const B, const_copy_argument)
-BOOST_LAMBDA_BE(operator/, arithmetic_action<divide_action>, const A, const B, const_copy_argument)
-BOOST_LAMBDA_BE(operator%, arithmetic_action<remainder_action>, const A, const B, const_copy_argument)
-BOOST_LAMBDA_BE(operator<<, bitwise_action<leftshift_action>, const A, const B, const_copy_argument)
-BOOST_LAMBDA_BE(operator>>, bitwise_action<rightshift_action>, const A, const B, const_copy_argument)
-BOOST_LAMBDA_BE(operator&, bitwise_action<and_action>, const A, const B, const_copy_argument)
-BOOST_LAMBDA_BE(operator|, bitwise_action<or_action>, const A, const B, const_copy_argument)
-BOOST_LAMBDA_BE(operator^, bitwise_action<xor_action>, const A, const B, const_copy_argument)
-BOOST_LAMBDA_BE(operator&&, logical_action<and_action>, const A, const B, const_copy_argument)
-BOOST_LAMBDA_BE(operator||, logical_action<or_action>, const A, const B, const_copy_argument)
-BOOST_LAMBDA_BE(operator<, relational_action<less_action>, const A, const B, const_copy_argument)
-BOOST_LAMBDA_BE(operator>, relational_action<greater_action>, const A, const B, const_copy_argument)
-BOOST_LAMBDA_BE(operator<=, relational_action<lessorequal_action>, const A, const B, const_copy_argument)
-BOOST_LAMBDA_BE(operator>=, relational_action<greaterorequal_action>, const A, const B, const_copy_argument)
-BOOST_LAMBDA_BE(operator==, relational_action<equal_action>, const A, const B, const_copy_argument)
-BOOST_LAMBDA_BE(operator!=, relational_action<notequal_action>, const A, const B, const_copy_argument)
+NDNBOOST_LAMBDA_BE(operator+, arithmetic_action<plus_action>, const A, const B, const_copy_argument)
+NDNBOOST_LAMBDA_BE(operator-, arithmetic_action<minus_action>, const A, const B, const_copy_argument)
+NDNBOOST_LAMBDA_BE(operator*, arithmetic_action<multiply_action>, const A, const B, const_copy_argument)
+NDNBOOST_LAMBDA_BE(operator/, arithmetic_action<divide_action>, const A, const B, const_copy_argument)
+NDNBOOST_LAMBDA_BE(operator%, arithmetic_action<remainder_action>, const A, const B, const_copy_argument)
+NDNBOOST_LAMBDA_BE(operator<<, bitwise_action<leftshift_action>, const A, const B, const_copy_argument)
+NDNBOOST_LAMBDA_BE(operator>>, bitwise_action<rightshift_action>, const A, const B, const_copy_argument)
+NDNBOOST_LAMBDA_BE(operator&, bitwise_action<and_action>, const A, const B, const_copy_argument)
+NDNBOOST_LAMBDA_BE(operator|, bitwise_action<or_action>, const A, const B, const_copy_argument)
+NDNBOOST_LAMBDA_BE(operator^, bitwise_action<xor_action>, const A, const B, const_copy_argument)
+NDNBOOST_LAMBDA_BE(operator&&, logical_action<and_action>, const A, const B, const_copy_argument)
+NDNBOOST_LAMBDA_BE(operator||, logical_action<or_action>, const A, const B, const_copy_argument)
+NDNBOOST_LAMBDA_BE(operator<, relational_action<less_action>, const A, const B, const_copy_argument)
+NDNBOOST_LAMBDA_BE(operator>, relational_action<greater_action>, const A, const B, const_copy_argument)
+NDNBOOST_LAMBDA_BE(operator<=, relational_action<lessorequal_action>, const A, const B, const_copy_argument)
+NDNBOOST_LAMBDA_BE(operator>=, relational_action<greaterorequal_action>, const A, const B, const_copy_argument)
+NDNBOOST_LAMBDA_BE(operator==, relational_action<equal_action>, const A, const B, const_copy_argument)
+NDNBOOST_LAMBDA_BE(operator!=, relational_action<notequal_action>, const A, const B, const_copy_argument)
 
-BOOST_LAMBDA_BE(operator+=, arithmetic_assignment_action<plus_action>, A, const B, reference_argument)
-BOOST_LAMBDA_BE(operator-=, arithmetic_assignment_action<minus_action>, A, const B, reference_argument)
-BOOST_LAMBDA_BE(operator*=, arithmetic_assignment_action<multiply_action>, A, const B, reference_argument)
-BOOST_LAMBDA_BE(operator/=, arithmetic_assignment_action<divide_action>, A, const B, reference_argument)
-BOOST_LAMBDA_BE(operator%=, arithmetic_assignment_action<remainder_action>, A, const B, reference_argument)
-BOOST_LAMBDA_BE(operator<<=, bitwise_assignment_action<leftshift_action>, A, const B, reference_argument)
-BOOST_LAMBDA_BE(operator>>=, bitwise_assignment_action<rightshift_action>, A, const B, reference_argument)
-BOOST_LAMBDA_BE(operator&=, bitwise_assignment_action<and_action>, A, const B, reference_argument)
-BOOST_LAMBDA_BE(operator|=, bitwise_assignment_action<or_action>, A, const B, reference_argument)
-BOOST_LAMBDA_BE(operator^=, bitwise_assignment_action<xor_action>, A, const B, reference_argument)
+NDNBOOST_LAMBDA_BE(operator+=, arithmetic_assignment_action<plus_action>, A, const B, reference_argument)
+NDNBOOST_LAMBDA_BE(operator-=, arithmetic_assignment_action<minus_action>, A, const B, reference_argument)
+NDNBOOST_LAMBDA_BE(operator*=, arithmetic_assignment_action<multiply_action>, A, const B, reference_argument)
+NDNBOOST_LAMBDA_BE(operator/=, arithmetic_assignment_action<divide_action>, A, const B, reference_argument)
+NDNBOOST_LAMBDA_BE(operator%=, arithmetic_assignment_action<remainder_action>, A, const B, reference_argument)
+NDNBOOST_LAMBDA_BE(operator<<=, bitwise_assignment_action<leftshift_action>, A, const B, reference_argument)
+NDNBOOST_LAMBDA_BE(operator>>=, bitwise_assignment_action<rightshift_action>, A, const B, reference_argument)
+NDNBOOST_LAMBDA_BE(operator&=, bitwise_assignment_action<and_action>, A, const B, reference_argument)
+NDNBOOST_LAMBDA_BE(operator|=, bitwise_assignment_action<or_action>, A, const B, reference_argument)
+NDNBOOST_LAMBDA_BE(operator^=, bitwise_assignment_action<xor_action>, A, const B, reference_argument)
 
 
 // A special trick for comma operator for correct preprocessing
-#if defined BOOST_LAMBDA_COMMA_OPERATOR_NAME
-#error "Multiple defines of BOOST_LAMBDA_COMMA_OPERATOR_NAME"
+#if defined NDNBOOST_LAMBDA_COMMA_OPERATOR_NAME
+#error "Multiple defines of NDNBOOST_LAMBDA_COMMA_OPERATOR_NAME"
 #endif
 
-#define BOOST_LAMBDA_COMMA_OPERATOR_NAME operator,
+#define NDNBOOST_LAMBDA_COMMA_OPERATOR_NAME operator,
 
-BOOST_LAMBDA_BE1(BOOST_LAMBDA_COMMA_OPERATOR_NAME, other_action<comma_action>, const A, const B, const_copy_argument)
-BOOST_LAMBDA_BE2(BOOST_LAMBDA_COMMA_OPERATOR_NAME, other_action<comma_action>, const A, const B, const_copy_argument)
-BOOST_LAMBDA_BE3(BOOST_LAMBDA_COMMA_OPERATOR_NAME, other_action<comma_action>, const A, const B, const_copy_argument)
+NDNBOOST_LAMBDA_BE1(NDNBOOST_LAMBDA_COMMA_OPERATOR_NAME, other_action<comma_action>, const A, const B, const_copy_argument)
+NDNBOOST_LAMBDA_BE2(NDNBOOST_LAMBDA_COMMA_OPERATOR_NAME, other_action<comma_action>, const A, const B, const_copy_argument)
+NDNBOOST_LAMBDA_BE3(NDNBOOST_LAMBDA_COMMA_OPERATOR_NAME, other_action<comma_action>, const A, const B, const_copy_argument)
 
 
 
@@ -161,7 +161,7 @@
 
 // Note that the overloading is const vs. non-const first argument
 
-#ifdef BOOST_NO_TEMPLATED_STREAMS
+#ifdef NDNBOOST_NO_TEMPLATED_STREAMS
 template<class T> struct convert_ostream_to_ref_others_to_c_plain_by_default {
   typedef typename detail::IF<
                        ndnboost::is_convertible<T*, std::ostream*>::value,
@@ -202,8 +202,8 @@
 
 } // detail
 
-BOOST_LAMBDA_BE2(operator<<, bitwise_action< leftshift_action>, A, const B, detail::convert_ostream_to_ref_others_to_c_plain_by_default)
-BOOST_LAMBDA_BE2(operator>>, bitwise_action< rightshift_action>, A, const B, detail::convert_istream_to_ref_others_to_c_plain_by_default)      
+NDNBOOST_LAMBDA_BE2(operator<<, bitwise_action< leftshift_action>, A, const B, detail::convert_ostream_to_ref_others_to_c_plain_by_default)
+NDNBOOST_LAMBDA_BE2(operator>>, bitwise_action< rightshift_action>, A, const B, detail::convert_istream_to_ref_others_to_c_plain_by_default)      
 
 
 // special case for io_manipulators.
@@ -254,11 +254,11 @@
 // the result of a+1 would be const
 // To make the latter work too, 
 // non-const arrays are taken as non-const and stored as non-const as well.
-#if defined  BOOST_LAMBDA_PTR_ARITHMETIC_E1
-#error "Multiple defines of  BOOST_LAMBDA_PTR_ARITHMETIC_E1"
+#if defined  NDNBOOST_LAMBDA_PTR_ARITHMETIC_E1
+#error "Multiple defines of  NDNBOOST_LAMBDA_PTR_ARITHMETIC_E1"
 #endif
 
-#define BOOST_LAMBDA_PTR_ARITHMETIC_E1(OPER_NAME, ACTION, CONSTB)           \
+#define NDNBOOST_LAMBDA_PTR_ARITHMETIC_E1(OPER_NAME, ACTION, CONSTB)           \
 template<class Arg, int N, class B>                                         \
 inline const                                                                \
 lambda_functor<                                                             \
@@ -272,11 +272,11 @@
 }
 
 
-#if defined  BOOST_LAMBDA_PTR_ARITHMETIC_E2
-#error "Multiple defines of  BOOST_LAMBDA_PTR_ARITHMETIC_E2"
+#if defined  NDNBOOST_LAMBDA_PTR_ARITHMETIC_E2
+#error "Multiple defines of  NDNBOOST_LAMBDA_PTR_ARITHMETIC_E2"
 #endif
 
-#define BOOST_LAMBDA_PTR_ARITHMETIC_E2(OPER_NAME, ACTION, CONSTA)           \
+#define NDNBOOST_LAMBDA_PTR_ARITHMETIC_E2(OPER_NAME, ACTION, CONSTA)           \
 template<int N, class A, class Arg>                                         \
 inline const                                                                \
 lambda_functor<                                                             \
@@ -290,38 +290,38 @@
 }
 
 
-BOOST_LAMBDA_PTR_ARITHMETIC_E1(operator+, arithmetic_action<plus_action>, B)
-BOOST_LAMBDA_PTR_ARITHMETIC_E2(operator+, arithmetic_action<plus_action>, A)
-BOOST_LAMBDA_PTR_ARITHMETIC_E1(operator+, arithmetic_action<plus_action>,const B)
-BOOST_LAMBDA_PTR_ARITHMETIC_E2(operator+, arithmetic_action<plus_action>,const A)
+NDNBOOST_LAMBDA_PTR_ARITHMETIC_E1(operator+, arithmetic_action<plus_action>, B)
+NDNBOOST_LAMBDA_PTR_ARITHMETIC_E2(operator+, arithmetic_action<plus_action>, A)
+NDNBOOST_LAMBDA_PTR_ARITHMETIC_E1(operator+, arithmetic_action<plus_action>,const B)
+NDNBOOST_LAMBDA_PTR_ARITHMETIC_E2(operator+, arithmetic_action<plus_action>,const A)
 
 
-//BOOST_LAMBDA_PTR_ARITHMETIC_E1(operator-, arithmetic_action<minus_action>)
+//NDNBOOST_LAMBDA_PTR_ARITHMETIC_E1(operator-, arithmetic_action<minus_action>)
 // This is not needed, since the result of ptr-ptr is an rvalue anyway
 
-BOOST_LAMBDA_PTR_ARITHMETIC_E2(operator-, arithmetic_action<minus_action>, A)
-BOOST_LAMBDA_PTR_ARITHMETIC_E2(operator-, arithmetic_action<minus_action>, const A)
+NDNBOOST_LAMBDA_PTR_ARITHMETIC_E2(operator-, arithmetic_action<minus_action>, A)
+NDNBOOST_LAMBDA_PTR_ARITHMETIC_E2(operator-, arithmetic_action<minus_action>, const A)
 
 
-#undef BOOST_LAMBDA_BE1
-#undef BOOST_LAMBDA_BE2
-#undef BOOST_LAMBDA_BE3
-#undef BOOST_LAMBDA_BE
-#undef BOOST_LAMBDA_COMMA_OPERATOR_NAME
+#undef NDNBOOST_LAMBDA_BE1
+#undef NDNBOOST_LAMBDA_BE2
+#undef NDNBOOST_LAMBDA_BE3
+#undef NDNBOOST_LAMBDA_BE
+#undef NDNBOOST_LAMBDA_COMMA_OPERATOR_NAME
 
-#undef BOOST_LAMBDA_PTR_ARITHMETIC_E1
-#undef BOOST_LAMBDA_PTR_ARITHMETIC_E2
+#undef NDNBOOST_LAMBDA_PTR_ARITHMETIC_E1
+#undef NDNBOOST_LAMBDA_PTR_ARITHMETIC_E2
 
 
 // ---------------------------------------------------------------------
 // unary operators -----------------------------------------------------
 // ---------------------------------------------------------------------
 
-#if defined BOOST_LAMBDA_UE
-#error "Multiple defines of BOOST_LAMBDA_UE"
+#if defined NDNBOOST_LAMBDA_UE
+#error "Multiple defines of NDNBOOST_LAMBDA_UE"
 #endif
 
-#define BOOST_LAMBDA_UE(OPER_NAME, ACTION)                                 \
+#define NDNBOOST_LAMBDA_UE(OPER_NAME, ACTION)                                 \
 template<class Arg>                                                        \
 inline const                                                               \
 lambda_functor<lambda_functor_base<ACTION, tuple<lambda_functor<Arg> > > > \
@@ -333,20 +333,20 @@
 }
 
 
-BOOST_LAMBDA_UE(operator+, unary_arithmetic_action<plus_action>)
-BOOST_LAMBDA_UE(operator-, unary_arithmetic_action<minus_action>)
-BOOST_LAMBDA_UE(operator~, bitwise_action<not_action>)
-BOOST_LAMBDA_UE(operator!, logical_action<not_action>)
-BOOST_LAMBDA_UE(operator++, pre_increment_decrement_action<increment_action>)
-BOOST_LAMBDA_UE(operator--, pre_increment_decrement_action<decrement_action>)
-BOOST_LAMBDA_UE(operator*, other_action<contentsof_action>)
-BOOST_LAMBDA_UE(operator&, other_action<addressof_action>)
+NDNBOOST_LAMBDA_UE(operator+, unary_arithmetic_action<plus_action>)
+NDNBOOST_LAMBDA_UE(operator-, unary_arithmetic_action<minus_action>)
+NDNBOOST_LAMBDA_UE(operator~, bitwise_action<not_action>)
+NDNBOOST_LAMBDA_UE(operator!, logical_action<not_action>)
+NDNBOOST_LAMBDA_UE(operator++, pre_increment_decrement_action<increment_action>)
+NDNBOOST_LAMBDA_UE(operator--, pre_increment_decrement_action<decrement_action>)
+NDNBOOST_LAMBDA_UE(operator*, other_action<contentsof_action>)
+NDNBOOST_LAMBDA_UE(operator&, other_action<addressof_action>)
 
-#if defined BOOST_LAMBDA_POSTFIX_UE
-#error "Multiple defines of BOOST_LAMBDA_POSTFIX_UE"
+#if defined NDNBOOST_LAMBDA_POSTFIX_UE
+#error "Multiple defines of NDNBOOST_LAMBDA_POSTFIX_UE"
 #endif
 
-#define BOOST_LAMBDA_POSTFIX_UE(OPER_NAME, ACTION)                         \
+#define NDNBOOST_LAMBDA_POSTFIX_UE(OPER_NAME, ACTION)                         \
 template<class Arg>                                                        \
 inline const                                                               \
 lambda_functor<lambda_functor_base<ACTION, tuple<lambda_functor<Arg> > > > \
@@ -358,11 +358,11 @@
 }
 
 
-BOOST_LAMBDA_POSTFIX_UE(operator++, post_increment_decrement_action<increment_action>)
-BOOST_LAMBDA_POSTFIX_UE(operator--, post_increment_decrement_action<decrement_action>)
+NDNBOOST_LAMBDA_POSTFIX_UE(operator++, post_increment_decrement_action<increment_action>)
+NDNBOOST_LAMBDA_POSTFIX_UE(operator--, post_increment_decrement_action<decrement_action>)
 
-#undef BOOST_LAMBDA_UE
-#undef BOOST_LAMBDA_POSTFIX_UE
+#undef NDNBOOST_LAMBDA_UE
+#undef NDNBOOST_LAMBDA_POSTFIX_UE
 
 } // namespace lambda
 } // namespace ndnboost
diff --git a/include/ndnboost/lambda/detail/ret.hpp b/include/ndnboost/lambda/detail/ret.hpp
index 8261bbd..9145ece 100644
--- a/include/ndnboost/lambda/detail/ret.hpp
+++ b/include/ndnboost/lambda/detail/ret.hpp
@@ -9,8 +9,8 @@
 // For more information, see www.boost.org
 
 
-#ifndef BOOST_LAMBDA_RET_HPP
-#define BOOST_LAMBDA_RET_HPP
+#ifndef NDNBOOST_LAMBDA_RET_HPP
+#define NDNBOOST_LAMBDA_RET_HPP
 
 namespace ndnboost { 
 namespace lambda {
diff --git a/include/ndnboost/lambda/detail/return_type_traits.hpp b/include/ndnboost/lambda/detail/return_type_traits.hpp
index 58771b7..7950a68 100644
--- a/include/ndnboost/lambda/detail/return_type_traits.hpp
+++ b/include/ndnboost/lambda/detail/return_type_traits.hpp
@@ -9,8 +9,8 @@
 // For more information, see www.boost.org
 
 
-#ifndef BOOST_LAMBDA_RETURN_TYPE_TRAITS_HPP
-#define BOOST_LAMBDA_RETURN_TYPE_TRAITS_HPP
+#ifndef NDNBOOST_LAMBDA_RETURN_TYPE_TRAITS_HPP
+#define NDNBOOST_LAMBDA_RETURN_TYPE_TRAITS_HPP
 
 #include "ndnboost/mpl/has_xxx.hpp"
 
@@ -239,7 +239,7 @@
 namespace detail
 {
 
-BOOST_MPL_HAS_XXX_TRAIT_DEF(result_type)
+NDNBOOST_MPL_HAS_XXX_TRAIT_DEF(result_type)
 
 template<class F> struct get_result_type
 {
diff --git a/include/ndnboost/lambda/detail/select_functions.hpp b/include/ndnboost/lambda/detail/select_functions.hpp
index 7b3ef8a..515ce05 100644
--- a/include/ndnboost/lambda/detail/select_functions.hpp
+++ b/include/ndnboost/lambda/detail/select_functions.hpp
@@ -9,8 +9,8 @@
 // For more information, see http://www.boost.org
 
 
-#ifndef BOOST_LAMBDA_SELECT_FUNCTIONS_HPP
-#define BOOST_LAMBDA_SELECT_FUNCTIONS_HPP
+#ifndef NDNBOOST_LAMBDA_SELECT_FUNCTIONS_HPP
+#define NDNBOOST_LAMBDA_SELECT_FUNCTIONS_HPP
 
 namespace ndnboost { 
 namespace lambda {
diff --git a/include/ndnboost/lambda/lambda.hpp b/include/ndnboost/lambda/lambda.hpp
index 593ef70..2434652 100644
--- a/include/ndnboost/lambda/lambda.hpp
+++ b/include/ndnboost/lambda/lambda.hpp
@@ -7,13 +7,13 @@
 //
 // For more information, see http://lambda.cs.utu.fi 
 
-#ifndef BOOST_LAMBDA_LAMBDA_HPP
-#define BOOST_LAMBDA_LAMBDA_HPP
+#ifndef NDNBOOST_LAMBDA_LAMBDA_HPP
+#define NDNBOOST_LAMBDA_LAMBDA_HPP
 
 
 #include "ndnboost/lambda/core.hpp"
 
-#ifdef BOOST_NO_FDECL_TEMPLATES_AS_TEMPLATE_TEMPLATE_PARAMS
+#ifdef NDNBOOST_NO_FDECL_TEMPLATES_AS_TEMPLATE_TEMPLATE_PARAMS
 #include <istream>
 #include <ostream>
 #endif
@@ -25,7 +25,7 @@
 
 #include "ndnboost/lambda/detail/operators.hpp"
 
-#ifndef BOOST_LAMBDA_FAILS_IN_TEMPLATE_KEYWORD_AFTER_SCOPE_OPER
+#ifndef NDNBOOST_LAMBDA_FAILS_IN_TEMPLATE_KEYWORD_AFTER_SCOPE_OPER
 // sorry, member ptr does not work with gcc2.95
 #include "ndnboost/lambda/detail/member_ptr.hpp"
 #endif
diff --git a/include/ndnboost/lexical_cast.hpp b/include/ndnboost/lexical_cast.hpp
index aed41ce..828a1f1 100644
--- a/include/ndnboost/lexical_cast.hpp
+++ b/include/ndnboost/lexical_cast.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_LEXICAL_CAST_INCLUDED
-#define BOOST_LEXICAL_CAST_INCLUDED
+#ifndef NDNBOOST_LEXICAL_CAST_INCLUDED
+#define NDNBOOST_LEXICAL_CAST_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -22,8 +22,8 @@
 // when:  November 2000, March 2003, June 2005, June 2006, March 2011 - 2013
 
 #include <ndnboost/config.hpp>
-#if defined(BOOST_NO_STRINGSTREAM) || defined(BOOST_NO_STD_WSTRING)
-#define BOOST_LCAST_NO_WCHAR_T
+#if defined(NDNBOOST_NO_STRINGSTREAM) || defined(NDNBOOST_NO_STD_WSTRING)
+#define NDNBOOST_LCAST_NO_WCHAR_T
 #endif
 
 #include <climits>
@@ -43,57 +43,57 @@
 #include <ndnboost/detail/workaround.hpp>
 
 
-#ifndef BOOST_NO_STD_LOCALE
+#ifndef NDNBOOST_NO_STD_LOCALE
 #   include <locale>
 #else
-#   ifndef BOOST_LEXICAL_CAST_ASSUME_C_LOCALE
+#   ifndef NDNBOOST_LEXICAL_CAST_ASSUME_C_LOCALE
         // Getting error at this point means, that your STL library is old/lame/misconfigured.
-        // If nothing can be done with STL library, define BOOST_LEXICAL_CAST_ASSUME_C_LOCALE,
+        // If nothing can be done with STL library, define NDNBOOST_LEXICAL_CAST_ASSUME_C_LOCALE,
         // but beware: lexical_cast will understand only 'C' locale delimeters and thousands
         // separators.
-#       error "Unable to use <locale> header. Define BOOST_LEXICAL_CAST_ASSUME_C_LOCALE to force "
+#       error "Unable to use <locale> header. Define NDNBOOST_LEXICAL_CAST_ASSUME_C_LOCALE to force "
 #       error "ndnboost::lexical_cast to use only 'C' locale during conversions."
 #   endif
 #endif
 
-#ifdef BOOST_NO_STRINGSTREAM
+#ifdef NDNBOOST_NO_STRINGSTREAM
 #include <strstream>
 #else
 #include <sstream>
 #endif
 
-#ifdef BOOST_NO_TYPEID
-#define BOOST_LCAST_THROW_BAD_CAST(S, T) throw_exception(bad_lexical_cast())
+#ifdef NDNBOOST_NO_TYPEID
+#define NDNBOOST_LCAST_THROW_BAD_CAST(S, T) throw_exception(bad_lexical_cast())
 #else
-#define BOOST_LCAST_THROW_BAD_CAST(Source, Target) \
+#define NDNBOOST_LCAST_THROW_BAD_CAST(Source, Target) \
     throw_exception(bad_lexical_cast(typeid(Source), typeid(Target)))
 #endif
 
-#if (defined(BOOST_LCAST_HAS_INT128) && !defined(__GNUC__)) || GCC_VERSION > 40700
-#define BOOST_LCAST_HAS_INT128
+#if (defined(NDNBOOST_LCAST_HAS_INT128) && !defined(__GNUC__)) || GCC_VERSION > 40700
+#define NDNBOOST_LCAST_HAS_INT128
 #endif
 
 
 namespace ndnboost
 {
     // exception used to indicate runtime lexical_cast failure
-    class BOOST_SYMBOL_VISIBLE bad_lexical_cast :
+    class NDNBOOST_SYMBOL_VISIBLE bad_lexical_cast :
     // workaround MSVC bug with std::bad_cast when _HAS_EXCEPTIONS == 0 
-#if defined(BOOST_MSVC) && defined(_HAS_EXCEPTIONS) && !_HAS_EXCEPTIONS 
+#if defined(NDNBOOST_MSVC) && defined(_HAS_EXCEPTIONS) && !_HAS_EXCEPTIONS 
         public std::exception 
 #else 
         public std::bad_cast 
 #endif 
 
-#if defined(__BORLANDC__) && BOOST_WORKAROUND( __BORLANDC__, < 0x560 )
+#if defined(__BORLANDC__) && NDNBOOST_WORKAROUND( __BORLANDC__, < 0x560 )
         // under bcc32 5.5.1 bad_cast doesn't derive from exception
         , public std::exception
 #endif
 
     {
     public:
-        bad_lexical_cast() BOOST_NOEXCEPT :
-#ifndef BOOST_NO_TYPEID
+        bad_lexical_cast() NDNBOOST_NOEXCEPT :
+#ifndef NDNBOOST_NO_TYPEID
           source(&typeid(void)), target(&typeid(void))
 #else
           source(0), target(0) // this breaks getters
@@ -103,7 +103,7 @@
 
         bad_lexical_cast(
             const std::type_info &source_type_arg,
-            const std::type_info &target_type_arg) BOOST_NOEXCEPT :
+            const std::type_info &target_type_arg) NDNBOOST_NOEXCEPT :
             source(&source_type_arg), target(&target_type_arg)
         {
         }
@@ -117,7 +117,7 @@
             return *target;
         }
 
-#ifndef BOOST_NO_CXX11_NOEXCEPT
+#ifndef NDNBOOST_NO_CXX11_NOEXCEPT
         virtual const char *what() const noexcept
 #else
         virtual const char *what() const throw()
@@ -127,8 +127,8 @@
                    "source type value could not be interpreted as target";
         }
 
-#ifndef BOOST_NO_CXX11_NOEXCEPT
-        virtual ~bad_lexical_cast() BOOST_NOEXCEPT
+#ifndef NDNBOOST_NO_CXX11_NOEXCEPT
+        virtual ~bad_lexical_cast() NDNBOOST_NOEXCEPT
 #else
         virtual ~bad_lexical_cast() throw()
 #endif
@@ -143,7 +143,7 @@
         template <typename TargetChar, typename SourceChar>
         struct widest_char
         {
-            typedef BOOST_DEDUCED_TYPENAME ndnboost::mpl::if_c<
+            typedef NDNBOOST_DEDUCED_TYPENAME ndnboost::mpl::if_c<
                 (sizeof(TargetChar) > sizeof(SourceChar))
                 , TargetChar
                 , SourceChar >::type type;
@@ -151,12 +151,12 @@
     }
 } // namespace ndnboost
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(__SUNPRO_CC) && !defined(__PGIC__)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(__SUNPRO_CC) && !defined(__PGIC__)
 
 #include <cmath>
 #include <istream>
 
-#ifndef BOOST_NO_CXX11_HDR_ARRAY
+#ifndef NDNBOOST_NO_CXX11_HDR_ARRAY
 #include <array>
 #endif
 
@@ -174,7 +174,7 @@
 #include <ndnboost/range/iterator_range_core.hpp>
 #include <ndnboost/container/container_fwd.hpp>
 #include <ndnboost/integer.hpp>
-#ifndef BOOST_NO_CWCHAR
+#ifndef NDNBOOST_NO_CWCHAR
 #   include <cwchar>
 #endif
 
@@ -188,20 +188,20 @@
         {
             typedef ndnboost::type_traits::ice_or<
                     ndnboost::is_same< T, char >::value,
-                    #ifndef BOOST_LCAST_NO_WCHAR_T
+                    #ifndef NDNBOOST_LCAST_NO_WCHAR_T
                         ndnboost::is_same< T, wchar_t >::value,
                     #endif
-                    #ifndef BOOST_NO_CXX11_CHAR16_T
+                    #ifndef NDNBOOST_NO_CXX11_CHAR16_T
                         ndnboost::is_same< T, char16_t >::value,
                     #endif
-                    #ifndef BOOST_NO_CXX11_CHAR32_T
+                    #ifndef NDNBOOST_NO_CXX11_CHAR32_T
                         ndnboost::is_same< T, char32_t >::value,
                     #endif
                     ndnboost::is_same< T, unsigned char >::value,
                     ndnboost::is_same< T, signed char >::value
             > result_type;
 
-            BOOST_STATIC_CONSTANT(bool, value = (result_type::value) );
+            NDNBOOST_STATIC_CONSTANT(bool, value = (result_type::value) );
         };
     }
 
@@ -300,7 +300,7 @@
             ndnboost::detail::deduce_character_type_later< ndnboost::array< const Char, N > >
         > {};
 
-#ifndef BOOST_NO_CXX11_HDR_ARRAY
+#ifndef NDNBOOST_NO_CXX11_HDR_ARRAY
         template < typename Char, std::size_t N >
         struct stream_char_common< std::array<Char, N > >: public ndnboost::mpl::if_c<
             ndnboost::detail::is_char_or_wchar< Char >::value,
@@ -316,12 +316,12 @@
         > {};
 #endif
 
-#ifdef BOOST_LCAST_HAS_INT128
+#ifdef NDNBOOST_LCAST_HAS_INT128
         template <> struct stream_char_common< ndnboost::int128_type >: public ndnboost::mpl::identity< char > {};
         template <> struct stream_char_common< ndnboost::uint128_type >: public ndnboost::mpl::identity< char > {};
 #endif
 
-#if !defined(BOOST_LCAST_NO_WCHAR_T) && defined(BOOST_NO_INTRINSIC_WCHAR_T)
+#if !defined(NDNBOOST_LCAST_NO_WCHAR_T) && defined(NDNBOOST_NO_INTRINSIC_WCHAR_T)
         template <>
         struct stream_char_common< wchar_t >
         {
@@ -340,7 +340,7 @@
         template < class Char > 
         struct deduce_source_char_impl
         { 
-            typedef BOOST_DEDUCED_TYPENAME ndnboost::detail::normalize_single_byte_char< Char >::type type; 
+            typedef NDNBOOST_DEDUCED_TYPENAME ndnboost::detail::normalize_single_byte_char< Char >::type type; 
         };
         
         template < class T > 
@@ -348,16 +348,16 @@
         {
             typedef ndnboost::has_left_shift< std::basic_ostream< char >, T > result_t;
 
-#if defined(BOOST_LCAST_NO_WCHAR_T)
-            BOOST_STATIC_ASSERT_MSG((result_t::value), 
+#if defined(NDNBOOST_LCAST_NO_WCHAR_T)
+            NDNBOOST_STATIC_ASSERT_MSG((result_t::value), 
                 "Source type is not std::ostream`able and std::wostream`s are not supported by your STL implementation");
             typedef char type;
 #else
-            typedef BOOST_DEDUCED_TYPENAME ndnboost::mpl::if_c<
+            typedef NDNBOOST_DEDUCED_TYPENAME ndnboost::mpl::if_c<
                 result_t::value, char, wchar_t
             >::type type;
 
-            BOOST_STATIC_ASSERT_MSG((result_t::value || ndnboost::has_left_shift< std::basic_ostream< type >, T >::value), 
+            NDNBOOST_STATIC_ASSERT_MSG((result_t::value || ndnboost::has_left_shift< std::basic_ostream< type >, T >::value), 
                 "Source type is neither std::ostream`able nor std::wostream`able");
 #endif
         };
@@ -373,7 +373,7 @@
         template < class Char > 
         struct deduce_target_char_impl 
         { 
-            typedef BOOST_DEDUCED_TYPENAME normalize_single_byte_char< Char >::type type; 
+            typedef NDNBOOST_DEDUCED_TYPENAME normalize_single_byte_char< Char >::type type; 
         };
         
         template < class T > 
@@ -381,16 +381,16 @@
         { 
             typedef ndnboost::has_right_shift<std::basic_istream<char>, T > result_t;
 
-#if defined(BOOST_LCAST_NO_WCHAR_T)
-            BOOST_STATIC_ASSERT_MSG((result_t::value), 
+#if defined(NDNBOOST_LCAST_NO_WCHAR_T)
+            NDNBOOST_STATIC_ASSERT_MSG((result_t::value), 
                 "Target type is not std::istream`able and std::wistream`s are not supported by your STL implementation");
             typedef char type;
 #else
-            typedef BOOST_DEDUCED_TYPENAME ndnboost::mpl::if_c<
+            typedef NDNBOOST_DEDUCED_TYPENAME ndnboost::mpl::if_c<
                 result_t::value, char, wchar_t
             >::type type;
             
-            BOOST_STATIC_ASSERT_MSG((result_t::value || ndnboost::has_right_shift<std::basic_istream<wchar_t>, T >::value), 
+            NDNBOOST_STATIC_ASSERT_MSG((result_t::value || ndnboost::has_right_shift<std::basic_istream<wchar_t>, T >::value), 
                 "Target type is neither std::istream`able nor std::wistream`able");
 #endif
         };
@@ -416,8 +416,8 @@
         template < class T >
         struct deduce_target_char
         {
-            typedef BOOST_DEDUCED_TYPENAME stream_char_common< T >::type stage1_type;
-            typedef BOOST_DEDUCED_TYPENAME deduce_target_char_impl< stage1_type >::type stage2_type;
+            typedef NDNBOOST_DEDUCED_TYPENAME stream_char_common< T >::type stage1_type;
+            typedef NDNBOOST_DEDUCED_TYPENAME deduce_target_char_impl< stage1_type >::type stage2_type;
 
             typedef stage2_type type;
         };
@@ -425,8 +425,8 @@
         template < class T >
         struct deduce_source_char
         {
-            typedef BOOST_DEDUCED_TYPENAME stream_char_common< T >::type stage1_type;
-            typedef BOOST_DEDUCED_TYPENAME deduce_source_char_impl< stage1_type >::type stage2_type;
+            typedef NDNBOOST_DEDUCED_TYPENAME stream_char_common< T >::type stage1_type;
+            typedef NDNBOOST_DEDUCED_TYPENAME deduce_source_char_impl< stage1_type >::type stage2_type;
 
             typedef stage2_type type;
         };
@@ -540,7 +540,7 @@
         {
             typedef ndnboost::type_traits::ice_and<
                 ndnboost::is_float<Float>::value,
-#if !defined(BOOST_LCAST_NO_WCHAR_T) && !defined(BOOST_NO_SWPRINTF) && !defined(__MINGW32__)
+#if !defined(NDNBOOST_LCAST_NO_WCHAR_T) && !defined(NDNBOOST_NO_SWPRINTF) && !defined(__MINGW32__)
                 ndnboost::type_traits::ice_or<
                     ndnboost::type_traits::ice_eq<sizeof(Char), sizeof(char) >::value,
                     ndnboost::is_same<Char, wchar_t>::value
@@ -550,7 +550,7 @@
 #endif
             > result_type;
 
-            BOOST_STATIC_CONSTANT(bool, value = (result_type::value) );
+            NDNBOOST_STATIC_CONSTANT(bool, value = (result_type::value) );
         };
     }
     
@@ -561,7 +561,7 @@
                 >
         struct lcast_src_length
         {
-            BOOST_STATIC_CONSTANT(std::size_t, value = 1);
+            NDNBOOST_STATIC_CONSTANT(std::size_t, value = 1);
             // To check coverage, build the test with
             // bjam --v2 profile optimization=off
             static void check_coverage() {}
@@ -583,44 +583,44 @@
         template<class Source>
         struct lcast_src_length_integral
         {
-#ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-            BOOST_STATIC_CONSTANT(std::size_t, value =
+#ifndef NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+            NDNBOOST_STATIC_CONSTANT(std::size_t, value =
                   std::numeric_limits<Source>::is_signed +
                   std::numeric_limits<Source>::is_specialized + /* == 1 */
                   std::numeric_limits<Source>::digits10 * 2
               );
 #else
-            BOOST_STATIC_CONSTANT(std::size_t, value = 156);
-            BOOST_STATIC_ASSERT(sizeof(Source) * CHAR_BIT <= 256);
+            NDNBOOST_STATIC_CONSTANT(std::size_t, value = 156);
+            NDNBOOST_STATIC_ASSERT(sizeof(Source) * CHAR_BIT <= 256);
 #endif
         };
 
-#define BOOST_LCAST_DEF(T)               \
+#define NDNBOOST_LCAST_DEF(T)               \
     template<> struct lcast_src_length<T> \
         : lcast_src_length_integral<T>           \
     { static void check_coverage() {} };
 
-        BOOST_LCAST_DEF(short)
-        BOOST_LCAST_DEF(unsigned short)
-        BOOST_LCAST_DEF(int)
-        BOOST_LCAST_DEF(unsigned int)
-        BOOST_LCAST_DEF(long)
-        BOOST_LCAST_DEF(unsigned long)
-#if defined(BOOST_HAS_LONG_LONG)
-        BOOST_LCAST_DEF(ndnboost::ulong_long_type)
-        BOOST_LCAST_DEF(ndnboost::long_long_type )
-#elif defined(BOOST_HAS_MS_INT64)
-        BOOST_LCAST_DEF(unsigned __int64)
-        BOOST_LCAST_DEF(         __int64)
+        NDNBOOST_LCAST_DEF(short)
+        NDNBOOST_LCAST_DEF(unsigned short)
+        NDNBOOST_LCAST_DEF(int)
+        NDNBOOST_LCAST_DEF(unsigned int)
+        NDNBOOST_LCAST_DEF(long)
+        NDNBOOST_LCAST_DEF(unsigned long)
+#if defined(NDNBOOST_HAS_LONG_LONG)
+        NDNBOOST_LCAST_DEF(ndnboost::ulong_long_type)
+        NDNBOOST_LCAST_DEF(ndnboost::long_long_type )
+#elif defined(NDNBOOST_HAS_MS_INT64)
+        NDNBOOST_LCAST_DEF(unsigned __int64)
+        NDNBOOST_LCAST_DEF(         __int64)
 #endif
-#ifdef BOOST_LCAST_HAS_INT128
-        BOOST_LCAST_DEF(ndnboost::int128_type)
-        BOOST_LCAST_DEF(ndnboost::uint128_type)
+#ifdef NDNBOOST_LCAST_HAS_INT128
+        NDNBOOST_LCAST_DEF(ndnboost::int128_type)
+        NDNBOOST_LCAST_DEF(ndnboost::uint128_type)
 #endif
 
-#undef BOOST_LCAST_DEF
+#undef NDNBOOST_LCAST_DEF
 
-#ifndef BOOST_LCAST_NO_COMPILE_TIME_PRECISION
+#ifndef NDNBOOST_LCAST_NO_COMPILE_TIME_PRECISION
         // Helper for floating point types.
         // -1.23456789e-123456
         // ^                   sign
@@ -634,11 +634,11 @@
         template<class Source>
         struct lcast_src_length_floating
         {
-            BOOST_STATIC_ASSERT(
+            NDNBOOST_STATIC_ASSERT(
                     std::numeric_limits<Source>::max_exponent10 <=  999999L &&
                     std::numeric_limits<Source>::min_exponent10 >= -999999L
                 );
-            BOOST_STATIC_CONSTANT(std::size_t, value =
+            NDNBOOST_STATIC_CONSTANT(std::size_t, value =
                     5 + lcast_precision<Source>::value + 6
                 );
         };
@@ -664,36 +664,36 @@
             static void check_coverage() {}
         };
 
-#endif // #ifndef BOOST_LCAST_NO_COMPILE_TIME_PRECISION
+#endif // #ifndef NDNBOOST_LCAST_NO_COMPILE_TIME_PRECISION
     }
 
     namespace detail // lexical_cast_stream_traits<Source, Target>
     {
         template <class Source, class Target>
         struct lexical_cast_stream_traits {
-            typedef BOOST_DEDUCED_TYPENAME ndnboost::detail::array_to_pointer_decay<Source>::type src;
-            typedef BOOST_DEDUCED_TYPENAME ndnboost::remove_cv<src>::type            no_cv_src;
+            typedef NDNBOOST_DEDUCED_TYPENAME ndnboost::detail::array_to_pointer_decay<Source>::type src;
+            typedef NDNBOOST_DEDUCED_TYPENAME ndnboost::remove_cv<src>::type            no_cv_src;
                 
             typedef ndnboost::detail::deduce_source_char<no_cv_src>                           deduce_src_char_metafunc;
-            typedef BOOST_DEDUCED_TYPENAME deduce_src_char_metafunc::type           src_char_t;
-            typedef BOOST_DEDUCED_TYPENAME ndnboost::detail::deduce_target_char<Target>::type target_char_t;
+            typedef NDNBOOST_DEDUCED_TYPENAME deduce_src_char_metafunc::type           src_char_t;
+            typedef NDNBOOST_DEDUCED_TYPENAME ndnboost::detail::deduce_target_char<Target>::type target_char_t;
                 
-            typedef BOOST_DEDUCED_TYPENAME ndnboost::detail::widest_char<
+            typedef NDNBOOST_DEDUCED_TYPENAME ndnboost::detail::widest_char<
                 target_char_t, src_char_t
             >::type char_type;
 
-#if !defined(BOOST_NO_CXX11_CHAR16_T) && defined(BOOST_NO_CXX11_UNICODE_LITERALS)
-            BOOST_STATIC_ASSERT_MSG(( !ndnboost::is_same<char16_t, src_char_t>::value
+#if !defined(NDNBOOST_NO_CXX11_CHAR16_T) && defined(NDNBOOST_NO_CXX11_UNICODE_LITERALS)
+            NDNBOOST_STATIC_ASSERT_MSG(( !ndnboost::is_same<char16_t, src_char_t>::value
                                         && !ndnboost::is_same<char16_t, target_char_t>::value),
                 "Your compiler does not have full support for char16_t" );
 #endif
-#if !defined(BOOST_NO_CXX11_CHAR32_T) && defined(BOOST_NO_CXX11_UNICODE_LITERALS)
-            BOOST_STATIC_ASSERT_MSG(( !ndnboost::is_same<char32_t, src_char_t>::value
+#if !defined(NDNBOOST_NO_CXX11_CHAR32_T) && defined(NDNBOOST_NO_CXX11_UNICODE_LITERALS)
+            NDNBOOST_STATIC_ASSERT_MSG(( !ndnboost::is_same<char32_t, src_char_t>::value
                                         && !ndnboost::is_same<char32_t, target_char_t>::value),
                 "Your compiler does not have full support for char32_t" );
 #endif
 
-            typedef BOOST_DEDUCED_TYPENAME ndnboost::detail::deduce_char_traits<
+            typedef NDNBOOST_DEDUCED_TYPENAME ndnboost::detail::deduce_char_traits<
                 char_type, Target, no_cv_src
             >::type traits;
 
@@ -709,13 +709,13 @@
                 ndnboost::is_integral<no_cv_src>::value,
                 ndnboost::detail::is_this_float_conversion_optimized<no_cv_src, char_type >::value,
                 ndnboost::detail::is_char_or_wchar<
-                    BOOST_DEDUCED_TYPENAME deduce_src_char_metafunc::stage1_type          // if we did not get character type at stage1
+                    NDNBOOST_DEDUCED_TYPENAME deduce_src_char_metafunc::stage1_type          // if we did not get character type at stage1
                 >::value                                                                  // then we have no optimization for that type
             >::value >   is_source_input_not_optimized_t;
 
             // If we have an optimized conversion for
             // Source, we do not need to construct stringbuf.
-            BOOST_STATIC_CONSTANT(bool, requires_stringbuf = 
+            NDNBOOST_STATIC_CONSTANT(bool, requires_stringbuf = 
                 (ndnboost::type_traits::ice_or<
                     is_string_widening_required_t::value, is_source_input_not_optimized_t::value
                 >::value)
@@ -732,50 +732,50 @@
         template<>
         struct lcast_char_constants<char>
         {
-            BOOST_STATIC_CONSTANT(char, zero  = '0');
-            BOOST_STATIC_CONSTANT(char, minus = '-');
-            BOOST_STATIC_CONSTANT(char, plus = '+');
-            BOOST_STATIC_CONSTANT(char, lowercase_e = 'e');
-            BOOST_STATIC_CONSTANT(char, capital_e = 'E');
-            BOOST_STATIC_CONSTANT(char, c_decimal_separator = '.');
+            NDNBOOST_STATIC_CONSTANT(char, zero  = '0');
+            NDNBOOST_STATIC_CONSTANT(char, minus = '-');
+            NDNBOOST_STATIC_CONSTANT(char, plus = '+');
+            NDNBOOST_STATIC_CONSTANT(char, lowercase_e = 'e');
+            NDNBOOST_STATIC_CONSTANT(char, capital_e = 'E');
+            NDNBOOST_STATIC_CONSTANT(char, c_decimal_separator = '.');
         };
 
-#ifndef BOOST_LCAST_NO_WCHAR_T
+#ifndef NDNBOOST_LCAST_NO_WCHAR_T
         template<>
         struct lcast_char_constants<wchar_t>
         {
-            BOOST_STATIC_CONSTANT(wchar_t, zero  = L'0');
-            BOOST_STATIC_CONSTANT(wchar_t, minus = L'-');
-            BOOST_STATIC_CONSTANT(wchar_t, plus = L'+');
-            BOOST_STATIC_CONSTANT(wchar_t, lowercase_e = L'e');
-            BOOST_STATIC_CONSTANT(wchar_t, capital_e = L'E');
-            BOOST_STATIC_CONSTANT(wchar_t, c_decimal_separator = L'.');
+            NDNBOOST_STATIC_CONSTANT(wchar_t, zero  = L'0');
+            NDNBOOST_STATIC_CONSTANT(wchar_t, minus = L'-');
+            NDNBOOST_STATIC_CONSTANT(wchar_t, plus = L'+');
+            NDNBOOST_STATIC_CONSTANT(wchar_t, lowercase_e = L'e');
+            NDNBOOST_STATIC_CONSTANT(wchar_t, capital_e = L'E');
+            NDNBOOST_STATIC_CONSTANT(wchar_t, c_decimal_separator = L'.');
         };
 #endif
 
-#if !defined(BOOST_NO_CXX11_CHAR16_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS)
+#if !defined(NDNBOOST_NO_CXX11_CHAR16_T) && !defined(NDNBOOST_NO_CXX11_UNICODE_LITERALS)
         template<>
         struct lcast_char_constants<char16_t>
         {
-            BOOST_STATIC_CONSTANT(char16_t, zero  = u'0');
-            BOOST_STATIC_CONSTANT(char16_t, minus = u'-');
-            BOOST_STATIC_CONSTANT(char16_t, plus = u'+');
-            BOOST_STATIC_CONSTANT(char16_t, lowercase_e = u'e');
-            BOOST_STATIC_CONSTANT(char16_t, capital_e = u'E');
-            BOOST_STATIC_CONSTANT(char16_t, c_decimal_separator = u'.');
+            NDNBOOST_STATIC_CONSTANT(char16_t, zero  = u'0');
+            NDNBOOST_STATIC_CONSTANT(char16_t, minus = u'-');
+            NDNBOOST_STATIC_CONSTANT(char16_t, plus = u'+');
+            NDNBOOST_STATIC_CONSTANT(char16_t, lowercase_e = u'e');
+            NDNBOOST_STATIC_CONSTANT(char16_t, capital_e = u'E');
+            NDNBOOST_STATIC_CONSTANT(char16_t, c_decimal_separator = u'.');
         };
 #endif
 
-#if !defined(BOOST_NO_CXX11_CHAR32_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS)
+#if !defined(NDNBOOST_NO_CXX11_CHAR32_T) && !defined(NDNBOOST_NO_CXX11_UNICODE_LITERALS)
         template<>
         struct lcast_char_constants<char32_t>
         {
-            BOOST_STATIC_CONSTANT(char32_t, zero  = U'0');
-            BOOST_STATIC_CONSTANT(char32_t, minus = U'-');
-            BOOST_STATIC_CONSTANT(char32_t, plus = U'+');
-            BOOST_STATIC_CONSTANT(char32_t, lowercase_e = U'e');
-            BOOST_STATIC_CONSTANT(char32_t, capital_e = U'E');
-            BOOST_STATIC_CONSTANT(char32_t, c_decimal_separator = U'.');
+            NDNBOOST_STATIC_CONSTANT(char32_t, zero  = U'0');
+            NDNBOOST_STATIC_CONSTANT(char32_t, minus = U'-');
+            NDNBOOST_STATIC_CONSTANT(char32_t, plus = U'+');
+            NDNBOOST_STATIC_CONSTANT(char32_t, lowercase_e = U'e');
+            NDNBOOST_STATIC_CONSTANT(char32_t, capital_e = U'E');
+            NDNBOOST_STATIC_CONSTANT(char32_t, c_decimal_separator = U'.');
         };
 #endif
     }
@@ -784,9 +784,9 @@
     {
         template<class T>
         inline
-        BOOST_DEDUCED_TYPENAME make_unsigned<T>::type lcast_to_unsigned(T value) BOOST_NOEXCEPT
+        NDNBOOST_DEDUCED_TYPENAME make_unsigned<T>::type lcast_to_unsigned(T value) NDNBOOST_NOEXCEPT
         {
-            typedef BOOST_DEDUCED_TYPENAME ndnboost::make_unsigned<T>::type result_type;
+            typedef NDNBOOST_DEDUCED_TYPENAME ndnboost::make_unsigned<T>::type result_type;
             return static_cast<result_type>(
                 value < 0 ? 0u - static_cast<result_type>(value) : value
             );
@@ -798,33 +798,33 @@
         template<class Traits, class T, class CharT>
         CharT* lcast_put_unsigned(const T n_param, CharT* finish)
         {
-#ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-            BOOST_STATIC_ASSERT(!std::numeric_limits<T>::is_signed);
+#ifndef NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+            NDNBOOST_STATIC_ASSERT(!std::numeric_limits<T>::is_signed);
 #endif
 
             typedef typename Traits::int_type int_type;
             CharT const czero = lcast_char_constants<CharT>::zero;
             int_type const zero = Traits::to_int_type(czero);
-            BOOST_DEDUCED_TYPENAME ndnboost::mpl::if_c<
+            NDNBOOST_DEDUCED_TYPENAME ndnboost::mpl::if_c<
                     (sizeof(int_type) > sizeof(T))
                     , int_type
                     , T
             >::type n = n_param;
 
-#ifndef BOOST_LEXICAL_CAST_ASSUME_C_LOCALE
+#ifndef NDNBOOST_LEXICAL_CAST_ASSUME_C_LOCALE
             std::locale loc;
             if (loc != std::locale::classic()) {
                 typedef std::numpunct<CharT> numpunct;
-                numpunct const& np = BOOST_USE_FACET(numpunct, loc);
+                numpunct const& np = NDNBOOST_USE_FACET(numpunct, loc);
                 std::string const grouping = np.grouping();
                 std::string::size_type const grouping_size = grouping.size();
 
                 if ( grouping_size && grouping[0] > 0 )
                 {
 
-#ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+#ifndef NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
                 // Check that ulimited group is unreachable:
-                BOOST_STATIC_ASSERT(std::numeric_limits<T>::digits10 < CHAR_MAX);
+                NDNBOOST_STATIC_ASSERT(std::numeric_limits<T>::digits10 < CHAR_MAX);
 #endif
                     CharT thousands_sep = np.thousands_sep();
                     std::string::size_type group = 0; // current group number
@@ -877,8 +877,8 @@
         template<class Traits, class T, class CharT>
         inline bool lcast_ret_unsigned(T& value, const CharT* const begin, const CharT* end)
         {
-#ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-            BOOST_STATIC_ASSERT(!std::numeric_limits<T>::is_signed);
+#ifndef NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+            NDNBOOST_STATIC_ASSERT(!std::numeric_limits<T>::is_signed);
 #endif
             CharT const czero = lcast_char_constants<CharT>::zero;
             --end;
@@ -891,11 +891,11 @@
             T multiplier = 1;
             bool multiplier_overflowed = false;
 
-#ifndef BOOST_LEXICAL_CAST_ASSUME_C_LOCALE
+#ifndef NDNBOOST_LEXICAL_CAST_ASSUME_C_LOCALE
             std::locale loc;
             if (loc != std::locale::classic()) {
                 typedef std::numpunct<CharT> numpunct;
-                numpunct const& np = BOOST_USE_FACET(numpunct, loc);
+                numpunct const& np = NDNBOOST_USE_FACET(numpunct, loc);
                 std::string const& grouping = np.grouping();
                 std::string::size_type const grouping_size = grouping.size();
 
@@ -986,7 +986,7 @@
     namespace detail
     {
         template <class CharT>
-        bool lc_iequal(const CharT* val, const CharT* lcase, const CharT* ucase, unsigned int len) BOOST_NOEXCEPT {
+        bool lc_iequal(const CharT* val, const CharT* lcase, const CharT* ucase, unsigned int len) NDNBOOST_NOEXCEPT {
             for( unsigned int i=0; i < len; ++i ) {
                 if ( val[i] != lcase[i] && val[i] != ucase[i] ) return false;
             }
@@ -999,7 +999,7 @@
         inline bool parse_inf_nan_impl(const CharT* begin, const CharT* end, T& value
             , const CharT* lc_NAN, const CharT* lc_nan
             , const CharT* lc_INFINITY, const CharT* lc_infinity
-            , const CharT opening_brace, const CharT closing_brace) BOOST_NOEXCEPT
+            , const CharT opening_brace, const CharT closing_brace) NDNBOOST_NOEXCEPT
         {
             using namespace std;
             if (begin == end) return false;
@@ -1055,7 +1055,7 @@
         template <class CharT, class T>
         bool put_inf_nan_impl(CharT* begin, CharT*& end, const T& value
                          , const CharT* lc_nan
-                         , const CharT* lc_infinity) BOOST_NOEXCEPT
+                         , const CharT* lc_infinity) NDNBOOST_NOEXCEPT
         {
             using namespace std;
             const CharT minus = lcast_char_constants<CharT>::minus;
@@ -1087,9 +1087,9 @@
         }
 
 
-#ifndef BOOST_LCAST_NO_WCHAR_T
+#ifndef NDNBOOST_LCAST_NO_WCHAR_T
         template <class T>
-        bool parse_inf_nan(const wchar_t* begin, const wchar_t* end, T& value) BOOST_NOEXCEPT
+        bool parse_inf_nan(const wchar_t* begin, const wchar_t* end, T& value) NDNBOOST_NOEXCEPT
         {
             return parse_inf_nan_impl(begin, end, value
                                , L"NAN", L"nan"
@@ -1098,15 +1098,15 @@
         }
 
         template <class T>
-        bool put_inf_nan(wchar_t* begin, wchar_t*& end, const T& value) BOOST_NOEXCEPT
+        bool put_inf_nan(wchar_t* begin, wchar_t*& end, const T& value) NDNBOOST_NOEXCEPT
         {
             return put_inf_nan_impl(begin, end, value, L"nan", L"infinity");
         }
 
 #endif
-#if !defined(BOOST_NO_CXX11_CHAR16_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS)
+#if !defined(NDNBOOST_NO_CXX11_CHAR16_T) && !defined(NDNBOOST_NO_CXX11_UNICODE_LITERALS)
         template <class T>
-        bool parse_inf_nan(const char16_t* begin, const char16_t* end, T& value) BOOST_NOEXCEPT
+        bool parse_inf_nan(const char16_t* begin, const char16_t* end, T& value) NDNBOOST_NOEXCEPT
         {
             return parse_inf_nan_impl(begin, end, value
                                , u"NAN", u"nan"
@@ -1115,14 +1115,14 @@
         }
 
         template <class T>
-        bool put_inf_nan(char16_t* begin, char16_t*& end, const T& value) BOOST_NOEXCEPT
+        bool put_inf_nan(char16_t* begin, char16_t*& end, const T& value) NDNBOOST_NOEXCEPT
         {
             return put_inf_nan_impl(begin, end, value, u"nan", u"infinity");
         }
 #endif
-#if !defined(BOOST_NO_CXX11_CHAR32_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS)
+#if !defined(NDNBOOST_NO_CXX11_CHAR32_T) && !defined(NDNBOOST_NO_CXX11_UNICODE_LITERALS)
         template <class T>
-        bool parse_inf_nan(const char32_t* begin, const char32_t* end, T& value) BOOST_NOEXCEPT
+        bool parse_inf_nan(const char32_t* begin, const char32_t* end, T& value) NDNBOOST_NOEXCEPT
         {
             return parse_inf_nan_impl(begin, end, value
                                , U"NAN", U"nan"
@@ -1131,14 +1131,14 @@
         }
 
         template <class T>
-        bool put_inf_nan(char32_t* begin, char32_t*& end, const T& value) BOOST_NOEXCEPT
+        bool put_inf_nan(char32_t* begin, char32_t*& end, const T& value) NDNBOOST_NOEXCEPT
         {
             return put_inf_nan_impl(begin, end, value, U"nan", U"infinity");
         }
 #endif
 
         template <class CharT, class T>
-        bool parse_inf_nan(const CharT* begin, const CharT* end, T& value) BOOST_NOEXCEPT
+        bool parse_inf_nan(const CharT* begin, const CharT* end, T& value) NDNBOOST_NOEXCEPT
         {
             return parse_inf_nan_impl(begin, end, value
                                , "NAN", "nan"
@@ -1147,7 +1147,7 @@
         }
 
         template <class CharT, class T>
-        bool put_inf_nan(CharT* begin, CharT*& end, const T& value) BOOST_NOEXCEPT
+        bool put_inf_nan(CharT* begin, CharT*& end, const T& value) NDNBOOST_NOEXCEPT
         {
             return put_inf_nan_impl(begin, end, value, "nan", "infinity");
         }
@@ -1178,11 +1178,11 @@
         template <>
         struct mantissa_holder_type<double>
         {
-#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+#ifndef NDNBOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
             typedef long double  wide_result_t;
-#if defined(BOOST_HAS_LONG_LONG)
+#if defined(NDNBOOST_HAS_LONG_LONG)
             typedef ndnboost::ulong_long_type type;
-#elif defined(BOOST_HAS_MS_INT64)
+#elif defined(NDNBOOST_HAS_MS_INT64)
             typedef unsigned __int64 type;
 #endif
 #endif
@@ -1192,10 +1192,10 @@
         inline bool lcast_ret_float(T& value, const CharT* begin, const CharT* end)
         {
 
-#ifndef BOOST_LEXICAL_CAST_ASSUME_C_LOCALE
+#ifndef NDNBOOST_LEXICAL_CAST_ASSUME_C_LOCALE
             std::locale loc;
             typedef std::numpunct<CharT> numpunct;
-            numpunct const& np = BOOST_USE_FACET(numpunct, loc);
+            numpunct const& np = NDNBOOST_USE_FACET(numpunct, loc);
             std::string const grouping(
                     (loc == std::locale::classic())
                     ? std::string()
@@ -1221,8 +1221,8 @@
             if (parse_inf_nan(begin, end, value)) return true;
 
             typedef typename Traits::int_type int_type;
-            typedef BOOST_DEDUCED_TYPENAME mantissa_holder_type<T>::type mantissa_type;
-            typedef BOOST_DEDUCED_TYPENAME mantissa_holder_type<T>::wide_result_t wide_result_t;
+            typedef NDNBOOST_DEDUCED_TYPENAME mantissa_holder_type<T>::type mantissa_type;
+            typedef NDNBOOST_DEDUCED_TYPENAME mantissa_holder_type<T>::wide_result_t wide_result_t;
             int_type const zero = Traits::to_int_type(czero);
             if (begin == end) return false;
 
@@ -1291,7 +1291,7 @@
                         found_number_before_exp = true;
                         ++ length_since_last_delim;
                     } else if (Traits::eq(*begin, decimal_point) || Traits::eq(*begin, lowercase_e) || Traits::eq(*begin, capital_e)) {
-#ifndef BOOST_LEXICAL_CAST_ASSUME_C_LOCALE
+#ifndef NDNBOOST_LEXICAL_CAST_ASSUME_C_LOCALE
                         /* If ( we need to check grouping
                          *      and (   grouping missmatches
                          *              or grouping position is incorrect
@@ -1318,7 +1318,7 @@
                             break;
                         }
                     }
-#ifndef BOOST_LEXICAL_CAST_ASSUME_C_LOCALE
+#ifndef NDNBOOST_LEXICAL_CAST_ASSUME_C_LOCALE
                     else if (grouping_size && Traits::eq(*begin, thousands_sep)){
                         if(found_grouping)
                         {
@@ -1436,7 +1436,7 @@
         public:
            parser_buf() : base_type() { setbuf(0, 0); }
            const charT* getnext() { return this->gptr(); }
-#ifndef BOOST_NO_USING_TEMPLATE
+#ifndef NDNBOOST_NO_USING_TEMPLATE
             using base_type::pptr;
             using base_type::pbase;
 #else
@@ -1493,12 +1493,12 @@
                }
                default: ;
                }
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
 #pragma warning(push)
 #pragma warning(disable:4244)
 #endif
                return static_cast<pos_type>(this->gptr() - this->eback());
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
 #pragma warning(pop)
 #endif
             }
@@ -1523,16 +1523,16 @@
         class lexical_stream_limited_src
         {
 
-#if defined(BOOST_NO_STRINGSTREAM)
+#if defined(NDNBOOST_NO_STRINGSTREAM)
             typedef std::ostrstream                         out_stream_t;
-#elif defined(BOOST_NO_STD_LOCALE)
+#elif defined(NDNBOOST_NO_STD_LOCALE)
             typedef std::ostringstream                      out_stream_t;
             typedef parser_buf<std::streambuf, char>        buffer_t;
 #else
             typedef std::basic_ostringstream<CharT, Traits>                 out_stream_t;
             typedef parser_buf<std::basic_streambuf<CharT, Traits>, CharT>  buffer_t;
 #endif
-            typedef BOOST_DEDUCED_TYPENAME ndnboost::mpl::if_c<
+            typedef NDNBOOST_DEDUCED_TYPENAME ndnboost::mpl::if_c<
                 RequiresStringbuffer,
                 out_stream_t,
                 do_not_construct_out_stream_t
@@ -1544,7 +1544,7 @@
             deduced_out_stream_t out_stream;
 
         public:
-            lexical_stream_limited_src(CharT* sta, CharT* fin) BOOST_NOEXCEPT
+            lexical_stream_limited_src(CharT* sta, CharT* fin) NDNBOOST_NOEXCEPT
               : start(sta)
               , finish(fin)
             {}
@@ -1555,23 +1555,23 @@
             void operator=(lexical_stream_limited_src const&);
 
 /************************************ HELPER FUNCTIONS FOR OPERATORS << ( ... ) ********************************/
-            bool shl_char(CharT ch) BOOST_NOEXCEPT
+            bool shl_char(CharT ch) NDNBOOST_NOEXCEPT
             {
                 Traits::assign(*start, ch);
                 finish = start + 1;
                 return true;
             }
 
-#ifndef BOOST_LCAST_NO_WCHAR_T
+#ifndef NDNBOOST_LCAST_NO_WCHAR_T
             template <class T>
             bool shl_char(T ch)
             {
-                BOOST_STATIC_ASSERT_MSG(( sizeof(T) <= sizeof(CharT)) ,
+                NDNBOOST_STATIC_ASSERT_MSG(( sizeof(T) <= sizeof(CharT)) ,
                     "ndnboost::lexical_cast does not support narrowing of char types."
                     "Use ndnboost::locale instead" );
-#ifndef BOOST_LEXICAL_CAST_ASSUME_C_LOCALE
+#ifndef NDNBOOST_LEXICAL_CAST_ASSUME_C_LOCALE
                 std::locale loc;
-                CharT const w = BOOST_USE_FACET(std::ctype<CharT>, loc).widen(ch);
+                CharT const w = NDNBOOST_USE_FACET(std::ctype<CharT>, loc).widen(ch);
 #else
                 CharT const w = static_cast<CharT>(ch);
 #endif
@@ -1581,7 +1581,7 @@
             }
 #endif
 
-            bool shl_char_array(CharT const* str) BOOST_NOEXCEPT
+            bool shl_char_array(CharT const* str) NDNBOOST_NOEXCEPT
             {
                 start = const_cast<CharT*>(str);
                 finish = start + Traits::length(str);
@@ -1591,13 +1591,13 @@
             template <class T>
             bool shl_char_array(T const* str)
             {
-                BOOST_STATIC_ASSERT_MSG(( sizeof(T) <= sizeof(CharT)),
+                NDNBOOST_STATIC_ASSERT_MSG(( sizeof(T) <= sizeof(CharT)),
                     "ndnboost::lexical_cast does not support narrowing of char types."
                     "Use ndnboost::locale instead" );
                 return shl_input_streamable(str);
             }
             
-            bool shl_char_array_limited(CharT const* str, std::size_t max_size) BOOST_NOEXCEPT
+            bool shl_char_array_limited(CharT const* str, std::size_t max_size) NDNBOOST_NOEXCEPT
             {
                 start = const_cast<CharT*>(str);
                 finish = std::find(start, start + max_size, Traits::to_char_type(0));
@@ -1607,10 +1607,10 @@
             template<typename InputStreamable>
             bool shl_input_streamable(InputStreamable& input)
             {
-#if defined(BOOST_NO_STRINGSTREAM) || defined(BOOST_NO_STD_LOCALE)
+#if defined(NDNBOOST_NO_STRINGSTREAM) || defined(NDNBOOST_NO_STD_LOCALE)
                 // If you have compilation error at this point, than your STL library
                 // does not support such conversions. Try updating it.
-                BOOST_STATIC_ASSERT((ndnboost::is_same<char, CharT>::value));
+                NDNBOOST_STATIC_ASSERT((ndnboost::is_same<char, CharT>::value));
 #endif
                 bool const result = !(out_stream << input).fail();
                 const buffer_t* const p = static_cast<buffer_t*>(
@@ -1685,7 +1685,7 @@
 #endif
 
 
-#if !defined(BOOST_LCAST_NO_WCHAR_T) && !defined(BOOST_NO_SWPRINTF) && !defined(__MINGW32__)
+#if !defined(NDNBOOST_LCAST_NO_WCHAR_T) && !defined(NDNBOOST_NO_SWPRINTF) && !defined(__MINGW32__)
             static bool shl_real_type(float val, wchar_t* begin, wchar_t*& end)
             {   using namespace std;
                 if (put_inf_nan(begin, end, val)) return true;
@@ -1717,7 +1717,7 @@
 /************************************ OPERATORS << ( ... ) ********************************/
         public:
             template<class Alloc>
-            bool operator<<(std::basic_string<CharT,Traits,Alloc> const& str) BOOST_NOEXCEPT
+            bool operator<<(std::basic_string<CharT,Traits,Alloc> const& str) NDNBOOST_NOEXCEPT
             {
                 start = const_cast<CharT*>(str.data());
                 finish = start + str.length();
@@ -1725,14 +1725,14 @@
             }
 
             template<class Alloc>
-            bool operator<<(ndnboost::container::basic_string<CharT,Traits,Alloc> const& str) BOOST_NOEXCEPT
+            bool operator<<(ndnboost::container::basic_string<CharT,Traits,Alloc> const& str) NDNBOOST_NOEXCEPT
             {
                 start = const_cast<CharT*>(str.data());
                 finish = start + str.length();
                 return true;
             }
 
-            bool operator<<(bool value) BOOST_NOEXCEPT
+            bool operator<<(bool value) NDNBOOST_NOEXCEPT
             {
                 CharT const czero = lcast_char_constants<CharT>::zero;
                 Traits::assign(*start, Traits::to_char_type(czero + value));
@@ -1740,21 +1740,21 @@
                 return true;
             }
 
-            bool operator<<(const iterator_range<CharT*>& rng) BOOST_NOEXCEPT
+            bool operator<<(const iterator_range<CharT*>& rng) NDNBOOST_NOEXCEPT
             {
                 start = rng.begin();
                 finish = rng.end();
                 return true; 
             }
             
-            bool operator<<(const iterator_range<const CharT*>& rng) BOOST_NOEXCEPT
+            bool operator<<(const iterator_range<const CharT*>& rng) NDNBOOST_NOEXCEPT
             {
                 start = const_cast<CharT*>(rng.begin());
                 finish = const_cast<CharT*>(rng.end());
                 return true; 
             }
 
-            bool operator<<(const iterator_range<const signed char*>& rng) BOOST_NOEXCEPT
+            bool operator<<(const iterator_range<const signed char*>& rng) NDNBOOST_NOEXCEPT
             {
                 return (*this) << iterator_range<char*>(
                     const_cast<char*>(reinterpret_cast<const char*>(rng.begin())),
@@ -1762,7 +1762,7 @@
                 );
             }
 
-            bool operator<<(const iterator_range<const unsigned char*>& rng) BOOST_NOEXCEPT
+            bool operator<<(const iterator_range<const unsigned char*>& rng) NDNBOOST_NOEXCEPT
             {
                 return (*this) << iterator_range<char*>(
                     const_cast<char*>(reinterpret_cast<const char*>(rng.begin())),
@@ -1770,7 +1770,7 @@
                 );
             }
 
-            bool operator<<(const iterator_range<signed char*>& rng) BOOST_NOEXCEPT
+            bool operator<<(const iterator_range<signed char*>& rng) NDNBOOST_NOEXCEPT
             {
                 return (*this) << iterator_range<char*>(
                     reinterpret_cast<char*>(rng.begin()),
@@ -1778,7 +1778,7 @@
                 );
             }
 
-            bool operator<<(const iterator_range<unsigned char*>& rng) BOOST_NOEXCEPT
+            bool operator<<(const iterator_range<unsigned char*>& rng) NDNBOOST_NOEXCEPT
             {
                 return (*this) << iterator_range<char*>(
                     reinterpret_cast<char*>(rng.begin()),
@@ -1789,19 +1789,19 @@
             bool operator<<(char ch)                    { return shl_char(ch); }
             bool operator<<(unsigned char ch)           { return ((*this) << static_cast<char>(ch)); }
             bool operator<<(signed char ch)             { return ((*this) << static_cast<char>(ch)); }
-#if !defined(BOOST_LCAST_NO_WCHAR_T)
+#if !defined(NDNBOOST_LCAST_NO_WCHAR_T)
             bool operator<<(wchar_t const* str)         { return shl_char_array(str); }
             bool operator<<(wchar_t * str)              { return shl_char_array(str); }
-#ifndef BOOST_NO_INTRINSIC_WCHAR_T
+#ifndef NDNBOOST_NO_INTRINSIC_WCHAR_T
             bool operator<<(wchar_t ch)                 { return shl_char(ch); }
 #endif
 #endif
-#if !defined(BOOST_NO_CXX11_CHAR16_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS)
+#if !defined(NDNBOOST_NO_CXX11_CHAR16_T) && !defined(NDNBOOST_NO_CXX11_UNICODE_LITERALS)
             bool operator<<(char16_t ch)                { return shl_char(ch); }
             bool operator<<(char16_t * str)             { return shl_char_array(str); }
             bool operator<<(char16_t const * str)       { return shl_char_array(str); }
 #endif
-#if !defined(BOOST_NO_CXX11_CHAR32_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS)
+#if !defined(NDNBOOST_NO_CXX11_CHAR32_T) && !defined(NDNBOOST_NO_CXX11_UNICODE_LITERALS)
             bool operator<<(char32_t ch)                { return shl_char(ch); }
             bool operator<<(char32_t * str)             { return shl_char_array(str); }
             bool operator<<(char32_t const * str)       { return shl_char_array(str); }
@@ -1819,15 +1819,15 @@
             bool operator<<(unsigned int n)             { start = lcast_put_unsigned<Traits>(n, finish); return true; }
             bool operator<<(unsigned long n)            { start = lcast_put_unsigned<Traits>(n, finish); return true; }
 
-#if defined(BOOST_HAS_LONG_LONG)
+#if defined(NDNBOOST_HAS_LONG_LONG)
             bool operator<<(ndnboost::ulong_long_type n)   { start = lcast_put_unsigned<Traits>(n, finish); return true; }
             bool operator<<(ndnboost::long_long_type n)    { return shl_signed(n); }
-#elif defined(BOOST_HAS_MS_INT64)
+#elif defined(NDNBOOST_HAS_MS_INT64)
             bool operator<<(unsigned __int64 n)         { start = lcast_put_unsigned<Traits>(n, finish); return true; }
             bool operator<<(         __int64 n)         { return shl_signed(n); }
 #endif
 
-#ifdef BOOST_LCAST_HAS_INT128
+#ifdef NDNBOOST_LCAST_HAS_INT128
         bool operator<<(const ndnboost::uint128_type& n)   { start = lcast_put_unsigned<Traits>(n, finish); return true; }
         bool operator<<(const ndnboost::int128_type& n)    { return shl_signed(n); }
 #endif
@@ -1843,58 +1843,58 @@
             }
             
             template <std::size_t N>
-            bool operator<<(ndnboost::array<CharT, N> const& input) BOOST_NOEXCEPT
+            bool operator<<(ndnboost::array<CharT, N> const& input) NDNBOOST_NOEXCEPT
             { return shl_char_array_limited(input.begin(), N); }
 
             template <std::size_t N>
-            bool operator<<(ndnboost::array<unsigned char, N> const& input) BOOST_NOEXCEPT
+            bool operator<<(ndnboost::array<unsigned char, N> const& input) NDNBOOST_NOEXCEPT
             { return ((*this) << reinterpret_cast<ndnboost::array<char, N> const& >(input)); }
 
             template <std::size_t N>
-            bool operator<<(ndnboost::array<signed char, N> const& input) BOOST_NOEXCEPT
+            bool operator<<(ndnboost::array<signed char, N> const& input) NDNBOOST_NOEXCEPT
             { return ((*this) << reinterpret_cast<ndnboost::array<char, N> const& >(input)); }
 
             template <std::size_t N>
-            bool operator<<(ndnboost::array<const CharT, N> const& input) BOOST_NOEXCEPT
+            bool operator<<(ndnboost::array<const CharT, N> const& input) NDNBOOST_NOEXCEPT
             { return shl_char_array_limited(input.begin(), N); }
 
             template <std::size_t N>
-            bool operator<<(ndnboost::array<const unsigned char, N> const& input) BOOST_NOEXCEPT
+            bool operator<<(ndnboost::array<const unsigned char, N> const& input) NDNBOOST_NOEXCEPT
             { return ((*this) << reinterpret_cast<ndnboost::array<const char, N> const& >(input)); }
 
             template <std::size_t N>
-            bool operator<<(ndnboost::array<const signed char, N> const& input) BOOST_NOEXCEPT
+            bool operator<<(ndnboost::array<const signed char, N> const& input) NDNBOOST_NOEXCEPT
             { return ((*this) << reinterpret_cast<ndnboost::array<const char, N> const& >(input)); }
  
-#ifndef BOOST_NO_CXX11_HDR_ARRAY
+#ifndef NDNBOOST_NO_CXX11_HDR_ARRAY
             template <std::size_t N>
-            bool operator<<(std::array<CharT, N> const& input) BOOST_NOEXCEPT
+            bool operator<<(std::array<CharT, N> const& input) NDNBOOST_NOEXCEPT
             { 
                 if (input.size()) return shl_char_array_limited(&input[0], N);
                 else return true; 
             }
 
             template <std::size_t N>
-            bool operator<<(std::array<unsigned char, N> const& input) BOOST_NOEXCEPT
+            bool operator<<(std::array<unsigned char, N> const& input) NDNBOOST_NOEXCEPT
             { return ((*this) << reinterpret_cast<ndnboost::array<char, N> const& >(input)); }
 
             template <std::size_t N>
-            bool operator<<(std::array<signed char, N> const& input) BOOST_NOEXCEPT
+            bool operator<<(std::array<signed char, N> const& input) NDNBOOST_NOEXCEPT
             { return ((*this) << reinterpret_cast<ndnboost::array<char, N> const& >(input)); }
 
             template <std::size_t N>
-            bool operator<<(std::array<const CharT, N> const& input) BOOST_NOEXCEPT
+            bool operator<<(std::array<const CharT, N> const& input) NDNBOOST_NOEXCEPT
             { 
                 if (input.size()) return shl_char_array_limited(&input[0], N);
                 else return true; 
             }
 
             template <std::size_t N>
-            bool operator<<(std::array<const unsigned char, N> const& input) BOOST_NOEXCEPT
+            bool operator<<(std::array<const unsigned char, N> const& input) NDNBOOST_NOEXCEPT
             { return ((*this) << reinterpret_cast<ndnboost::array<const char, N> const& >(input)); }
 
             template <std::size_t N>
-            bool operator<<(std::array<const signed char, N> const& input) BOOST_NOEXCEPT
+            bool operator<<(std::array<const signed char, N> const& input) NDNBOOST_NOEXCEPT
             { return ((*this) << reinterpret_cast<ndnboost::array<const char, N> const& >(input)); }
 #endif
             
@@ -1937,7 +1937,7 @@
                 if (start == finish) return false;
                 CharT const minus = lcast_char_constants<CharT>::minus;
                 CharT const plus = lcast_char_constants<CharT>::plus;
-                typedef BOOST_DEDUCED_TYPENAME make_unsigned<Type>::type utype;
+                typedef NDNBOOST_DEDUCED_TYPENAME make_unsigned<Type>::type utype;
                 utype out_tmp =0;
                 bool has_minus = false;
 
@@ -1967,39 +1967,39 @@
             template<typename InputStreamable>
             bool shr_using_base_class(InputStreamable& output)
             {
-                BOOST_STATIC_ASSERT_MSG(
+                NDNBOOST_STATIC_ASSERT_MSG(
                     (!ndnboost::is_pointer<InputStreamable>::value),
                     "ndnboost::lexical_cast can not convert to pointers"
                 );
 
-#if defined(BOOST_NO_STRINGSTREAM) || defined(BOOST_NO_STD_LOCALE)
-                BOOST_STATIC_ASSERT_MSG((ndnboost::is_same<char, CharT>::value),
+#if defined(NDNBOOST_NO_STRINGSTREAM) || defined(NDNBOOST_NO_STD_LOCALE)
+                NDNBOOST_STATIC_ASSERT_MSG((ndnboost::is_same<char, CharT>::value),
                     "ndnboost::lexical_cast can not convert, because your STL library does not "
                     "support such conversions. Try updating it."
                 );
 #endif
 
-#if defined(BOOST_NO_STRINGSTREAM)
+#if defined(NDNBOOST_NO_STRINGSTREAM)
                 std::istrstream stream(start, finish - start);
 #else
 
                 buffer_t buf;
                 buf.setbuf(start, finish - start);
-#if defined(BOOST_NO_STD_LOCALE)
+#if defined(NDNBOOST_NO_STD_LOCALE)
                 std::istream stream(&buf);
 #else
                 std::basic_istream<CharT, Traits> stream(&buf);
-#endif // BOOST_NO_STD_LOCALE
-#endif // BOOST_NO_STRINGSTREAM
+#endif // NDNBOOST_NO_STD_LOCALE
+#endif // NDNBOOST_NO_STRINGSTREAM
 
                 stream.unsetf(std::ios::skipws);
                 lcast_set_precision(stream, static_cast<InputStreamable*>(0));
 
                 return stream >> output &&
                     stream.get() ==
-#if defined(__GNUC__) && (__GNUC__<3) && defined(BOOST_NO_STD_WSTRING)
+#if defined(__GNUC__) && (__GNUC__<3) && defined(NDNBOOST_NO_STD_WSTRING)
         // GCC 2.9x lacks std::char_traits<>::eof().
-        // We use BOOST_NO_STD_WSTRING to filter out STLport and libstdc++-v3
+        // We use NDNBOOST_NO_STD_WSTRING to filter out STLport and libstdc++-v3
         // configurations, which do provide std::char_traits<>::eof().
 
                     EOF;
@@ -2011,7 +2011,7 @@
             template<class T>
             inline bool shr_xchar(T& output)
             {
-                BOOST_STATIC_ASSERT_MSG(( sizeof(CharT) == sizeof(T) ),
+                NDNBOOST_STATIC_ASSERT_MSG(( sizeof(CharT) == sizeof(T) ),
                     "ndnboost::lexical_cast does not support narrowing of character types."
                     "Use ndnboost::locale instead" );
                 bool const ok = (finish - start == 1);
@@ -2031,15 +2031,15 @@
             bool operator>>(short& output)                      { return shr_signed(output); }
             bool operator>>(int& output)                        { return shr_signed(output); }
             bool operator>>(long int& output)                   { return shr_signed(output); }
-#if defined(BOOST_HAS_LONG_LONG)
+#if defined(NDNBOOST_HAS_LONG_LONG)
             bool operator>>(ndnboost::ulong_long_type& output)     { return shr_unsigned(output); }
             bool operator>>(ndnboost::long_long_type& output)      { return shr_signed(output); }
-#elif defined(BOOST_HAS_MS_INT64)
+#elif defined(NDNBOOST_HAS_MS_INT64)
             bool operator>>(unsigned __int64& output)           { return shr_unsigned(output); }
             bool operator>>(__int64& output)                    { return shr_signed(output); }
 #endif
 
-#ifdef BOOST_LCAST_HAS_INT128
+#ifdef NDNBOOST_LCAST_HAS_INT128
             bool operator>>(ndnboost::uint128_type& output)        { return shr_unsigned(output); }
             bool operator>>(ndnboost::int128_type& output)         { return shr_signed(output); }
 #endif
@@ -2047,13 +2047,13 @@
             bool operator>>(char& output)                       { return shr_xchar(output); }
             bool operator>>(unsigned char& output)              { return shr_xchar(output); }
             bool operator>>(signed char& output)                { return shr_xchar(output); }
-#if !defined(BOOST_LCAST_NO_WCHAR_T) && !defined(BOOST_NO_INTRINSIC_WCHAR_T)
+#if !defined(NDNBOOST_LCAST_NO_WCHAR_T) && !defined(NDNBOOST_NO_INTRINSIC_WCHAR_T)
             bool operator>>(wchar_t& output)                    { return shr_xchar(output); }
 #endif
-#if !defined(BOOST_NO_CXX11_CHAR16_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS)
+#if !defined(NDNBOOST_NO_CXX11_CHAR16_T) && !defined(NDNBOOST_NO_CXX11_UNICODE_LITERALS)
             bool operator>>(char16_t& output)                   { return shr_xchar(output); }
 #endif
-#if !defined(BOOST_NO_CXX11_CHAR32_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS)
+#if !defined(NDNBOOST_NO_CXX11_CHAR32_T) && !defined(NDNBOOST_NO_CXX11_UNICODE_LITERALS)
             bool operator>>(char32_t& output)                   { return shr_xchar(output); }
 #endif
             template<class Alloc>
@@ -2065,7 +2065,7 @@
             
     private:
             template <std::size_t N, class ArrayT>
-            bool shr_std_array(ArrayT& output) BOOST_NOEXCEPT
+            bool shr_std_array(ArrayT& output) NDNBOOST_NOEXCEPT
             {
                 using namespace std;
                 const std::size_t size = finish - start;
@@ -2081,7 +2081,7 @@
     public:
 
             template <std::size_t N>
-            bool operator>>(ndnboost::array<CharT, N>& output) BOOST_NOEXCEPT
+            bool operator>>(ndnboost::array<CharT, N>& output) NDNBOOST_NOEXCEPT
             { 
                 return shr_std_array<N>(output); 
             }
@@ -2098,9 +2098,9 @@
                 return ((*this) >> reinterpret_cast<ndnboost::array<char, N>& >(output)); 
             }
  
-#ifndef BOOST_NO_CXX11_HDR_ARRAY
+#ifndef NDNBOOST_NO_CXX11_HDR_ARRAY
             template <std::size_t N>
-            bool operator>>(std::array<CharT, N>& output) BOOST_NOEXCEPT
+            bool operator>>(std::array<CharT, N>& output) NDNBOOST_NOEXCEPT
             { 
                 return shr_std_array<N>(output); 
             }
@@ -2124,7 +2124,7 @@
              * case "1" || "+1":            output = true;  return true;
              * default:                     return false;
              */
-            bool operator>>(bool& output) BOOST_NOEXCEPT
+            bool operator>>(bool& output) NDNBOOST_NOEXCEPT
             {
                 CharT const zero = lcast_char_constants<CharT>::zero;
                 CharT const plus = lcast_char_constants<CharT>::plus;
@@ -2199,7 +2199,7 @@
                  * double, because it will give a big precision loss.
                  * */
                 ndnboost::mpl::if_c<
-#if (defined(BOOST_HAS_LONG_LONG) || defined(BOOST_HAS_MS_INT64)) && !defined(BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS)
+#if (defined(NDNBOOST_HAS_LONG_LONG) || defined(NDNBOOST_HAS_MS_INT64)) && !defined(NDNBOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS)
                     ndnboost::type_traits::ice_eq< sizeof(double), sizeof(long double) >::value,
 #else
                      1,
@@ -2229,25 +2229,25 @@
         template<typename T>
         struct is_stdstring
         {
-            BOOST_STATIC_CONSTANT(bool, value = false );
+            NDNBOOST_STATIC_CONSTANT(bool, value = false );
         };
 
         template<typename CharT, typename Traits, typename Alloc>
         struct is_stdstring< std::basic_string<CharT, Traits, Alloc> >
         {
-            BOOST_STATIC_CONSTANT(bool, value = true );
+            NDNBOOST_STATIC_CONSTANT(bool, value = true );
         };
 
         template<typename CharT, typename Traits, typename Alloc>
         struct is_stdstring< ndnboost::container::basic_string<CharT, Traits, Alloc> >
         {
-            BOOST_STATIC_CONSTANT(bool, value = true );
+            NDNBOOST_STATIC_CONSTANT(bool, value = true );
         };
 
         template<typename Target, typename Source>
         struct is_arithmetic_and_not_xchars
         {
-            BOOST_STATIC_CONSTANT(bool, value =
+            NDNBOOST_STATIC_CONSTANT(bool, value =
                (
                    ndnboost::type_traits::ice_and<
                            ndnboost::is_arithmetic<Source>::value,
@@ -2271,7 +2271,7 @@
         template<typename Target, typename Source>
         struct is_xchar_to_xchar
         {
-            BOOST_STATIC_CONSTANT(bool, value =
+            NDNBOOST_STATIC_CONSTANT(bool, value =
                 (
                     ndnboost::type_traits::ice_or<
                         ndnboost::type_traits::ice_and<
@@ -2292,31 +2292,31 @@
         template<typename Target, typename Source>
         struct is_char_array_to_stdstring
         {
-            BOOST_STATIC_CONSTANT(bool, value = false );
+            NDNBOOST_STATIC_CONSTANT(bool, value = false );
         };
 
         template<typename CharT, typename Traits, typename Alloc>
         struct is_char_array_to_stdstring< std::basic_string<CharT, Traits, Alloc>, CharT* >
         {
-            BOOST_STATIC_CONSTANT(bool, value = true );
+            NDNBOOST_STATIC_CONSTANT(bool, value = true );
         };
 
         template<typename CharT, typename Traits, typename Alloc>
         struct is_char_array_to_stdstring< std::basic_string<CharT, Traits, Alloc>, const CharT* >
         {
-            BOOST_STATIC_CONSTANT(bool, value = true );
+            NDNBOOST_STATIC_CONSTANT(bool, value = true );
         };
 
         template<typename CharT, typename Traits, typename Alloc>
         struct is_char_array_to_stdstring< ndnboost::container::basic_string<CharT, Traits, Alloc>, CharT* >
         {
-            BOOST_STATIC_CONSTANT(bool, value = true );
+            NDNBOOST_STATIC_CONSTANT(bool, value = true );
         };
 
         template<typename CharT, typename Traits, typename Alloc>
         struct is_char_array_to_stdstring< ndnboost::container::basic_string<CharT, Traits, Alloc>, const CharT* >
         {
-            BOOST_STATIC_CONSTANT(bool, value = true );
+            NDNBOOST_STATIC_CONSTANT(bool, value = true );
         };
 
 #if (defined _MSC_VER)
@@ -2333,22 +2333,22 @@
                 typedef lexical_cast_stream_traits<Source, Target>  stream_trait;
                 
                 typedef detail::lexical_stream_limited_src<
-                    BOOST_DEDUCED_TYPENAME stream_trait::char_type, 
-                    BOOST_DEDUCED_TYPENAME stream_trait::traits, 
+                    NDNBOOST_DEDUCED_TYPENAME stream_trait::char_type, 
+                    NDNBOOST_DEDUCED_TYPENAME stream_trait::traits, 
                     stream_trait::requires_stringbuf 
                 > interpreter_type;
 
                 // Target type must be default constructible
                 Target result;               
 
-                BOOST_DEDUCED_TYPENAME stream_trait::char_type buf[stream_trait::len_t::value + 1];
+                NDNBOOST_DEDUCED_TYPENAME stream_trait::char_type buf[stream_trait::len_t::value + 1];
                 stream_trait::len_t::check_coverage();
 
                 interpreter_type interpreter(buf, buf + stream_trait::len_t::value + 1);
 
                 // Disabling ADL, by directly specifying operators.
                 if(!(interpreter.operator <<(arg) && interpreter.operator >>(result)))
-                  BOOST_LCAST_THROW_BAD_CAST(Source, Target);
+                  NDNBOOST_LCAST_THROW_BAD_CAST(Source, Target);
 
                 return result;
             }
@@ -2360,7 +2360,7 @@
         template <typename Source>
         struct lexical_cast_copy
         {
-            static inline const Source& lexical_cast_impl(const Source &arg) BOOST_NOEXCEPT
+            static inline const Source& lexical_cast_impl(const Source &arg) NDNBOOST_NOEXCEPT
             {
                 return arg;
             }
@@ -2372,7 +2372,7 @@
          typedef ndnboost::numeric::Trunc<Source> Rounder;
          typedef Source source_type ;
 
-         typedef BOOST_DEDUCED_TYPENAME mpl::if_<
+         typedef NDNBOOST_DEDUCED_TYPENAME mpl::if_<
             ndnboost::is_arithmetic<Source>, Source, Source const&
           >::type argument_type ;
 
@@ -2384,7 +2384,7 @@
                 const source_type eps = std::numeric_limits<source_type>::epsilon();
 
                 if ((orig_div_round > 1 ? orig_div_round - 1 : 1 - orig_div_round) > eps)
-                    BOOST_LCAST_THROW_BAD_CAST(Source, Target);
+                    NDNBOOST_LCAST_THROW_BAD_CAST(Source, Target);
             }
 
             return s ;
@@ -2399,7 +2399,7 @@
           void operator() ( ndnboost::numeric::range_check_result r )
           {
             if (r != ndnboost::numeric::cInRange)
-                BOOST_LCAST_THROW_BAD_CAST(Source, Target);
+                NDNBOOST_LCAST_THROW_BAD_CAST(Source, Target);
           }
         } ;
 
@@ -2423,7 +2423,7 @@
         {
             static inline Target lexical_cast_impl(const Source &arg)
             {
-                typedef BOOST_DEDUCED_TYPENAME ndnboost::mpl::eval_if_c<
+                typedef NDNBOOST_DEDUCED_TYPENAME ndnboost::mpl::eval_if_c<
                         ndnboost::is_float<Source>::value,
                         ndnboost::mpl::identity<Source>,
                         ndnboost::make_unsigned<Source>
@@ -2466,7 +2466,7 @@
         {
             static inline Target lexical_cast_impl(const Source &arg)
             {
-                typedef BOOST_DEDUCED_TYPENAME ndnboost::mpl::if_c<
+                typedef NDNBOOST_DEDUCED_TYPENAME ndnboost::mpl::if_c<
                     ndnboost::type_traits::ice_and<
                         ndnboost::type_traits::ice_or<
                             ndnboost::is_signed<Source>::value,
@@ -2492,9 +2492,9 @@
     template <typename Target, typename Source>
     inline Target lexical_cast(const Source &arg)
     {
-        typedef BOOST_DEDUCED_TYPENAME ndnboost::detail::array_to_pointer_decay<Source>::type src;
+        typedef NDNBOOST_DEDUCED_TYPENAME ndnboost::detail::array_to_pointer_decay<Source>::type src;
 
-        typedef BOOST_DEDUCED_TYPENAME ndnboost::type_traits::ice_or<
+        typedef NDNBOOST_DEDUCED_TYPENAME ndnboost::type_traits::ice_or<
                 ndnboost::detail::is_xchar_to_xchar<Target, src >::value,
                 ndnboost::detail::is_char_array_to_stdstring<Target, src >::value,
                 ndnboost::type_traits::ice_and<
@@ -2503,13 +2503,13 @@
                 >::value
         > shall_we_copy_t;
 
-        typedef BOOST_DEDUCED_TYPENAME
+        typedef NDNBOOST_DEDUCED_TYPENAME
                 ndnboost::detail::is_arithmetic_and_not_xchars<Target, src > shall_we_copy_with_dynamic_check_t;
 
-        typedef BOOST_DEDUCED_TYPENAME ndnboost::mpl::if_c<
+        typedef NDNBOOST_DEDUCED_TYPENAME ndnboost::mpl::if_c<
             shall_we_copy_t::value,
             ndnboost::detail::lexical_cast_copy<src >,
-            BOOST_DEDUCED_TYPENAME ndnboost::mpl::if_c<
+            NDNBOOST_DEDUCED_TYPENAME ndnboost::mpl::if_c<
                  shall_we_copy_with_dynamic_check_t::value,
                  ndnboost::detail::lexical_cast_dynamic_num<Target, src >,
                  ndnboost::detail::lexical_cast_do_cast<Target, src >
@@ -2544,7 +2544,7 @@
         );
     }
 
-#ifndef BOOST_LCAST_NO_WCHAR_T
+#ifndef NDNBOOST_LCAST_NO_WCHAR_T
     template <typename Target>
     inline Target lexical_cast(const wchar_t* chars, std::size_t count)
     {
@@ -2553,7 +2553,7 @@
         );
     }
 #endif
-#ifndef BOOST_NO_CHAR16_T
+#ifndef NDNBOOST_NO_CHAR16_T
     template <typename Target>
     inline Target lexical_cast(const char16_t* chars, std::size_t count)
     {
@@ -2562,7 +2562,7 @@
         );
     }
 #endif
-#ifndef BOOST_NO_CHAR32_T
+#ifndef NDNBOOST_NO_CHAR32_T
     template <typename Target>
     inline Target lexical_cast(const char32_t* chars, std::size_t count)
     {
@@ -2574,7 +2574,7 @@
 
 } // namespace ndnboost
 
-#else // #ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#else // #ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 namespace ndnboost {
     namespace detail
@@ -2587,8 +2587,8 @@
             typedef char type;
         };
 
-#ifndef BOOST_LCAST_NO_WCHAR_T
-#ifndef BOOST_NO_INTRINSIC_WCHAR_T
+#ifndef NDNBOOST_LCAST_NO_WCHAR_T
+#ifndef NDNBOOST_NO_INTRINSIC_WCHAR_T
         template<>
         struct stream_char<wchar_t>
         {
@@ -2634,7 +2634,7 @@
             }
             ~lexical_stream()
             {
-                #if defined(BOOST_NO_STRINGSTREAM)
+                #if defined(NDNBOOST_NO_STRINGSTREAM)
                 stream.freeze(false);
                 #endif
             }
@@ -2648,9 +2648,9 @@
                 return !is_pointer<InputStreamable>::value &&
                        stream >> output &&
                        stream.get() ==
-#if defined(__GNUC__) && (__GNUC__<3) && defined(BOOST_NO_STD_WSTRING)
+#if defined(__GNUC__) && (__GNUC__<3) && defined(NDNBOOST_NO_STD_WSTRING)
 // GCC 2.9x lacks std::char_traits<>::eof().
-// We use BOOST_NO_STD_WSTRING to filter out STLport and libstdc++-v3
+// We use NDNBOOST_NO_STD_WSTRING to filter out STLport and libstdc++-v3
 // configurations, which do provide std::char_traits<>::eof().
 
                            EOF;
@@ -2661,13 +2661,13 @@
 
             bool operator>>(std::string &output)
             {
-                #if defined(BOOST_NO_STRINGSTREAM)
+                #if defined(NDNBOOST_NO_STRINGSTREAM)
                 stream << '\0';
                 #endif
                 stream.str().swap(output);
                 return true;
             }
-            #ifndef BOOST_LCAST_NO_WCHAR_T
+            #ifndef NDNBOOST_LCAST_NO_WCHAR_T
             bool operator>>(std::wstring &output)
             {
                 stream.str().swap(output);
@@ -2676,9 +2676,9 @@
             #endif
 
         private:
-            #if defined(BOOST_NO_STRINGSTREAM)
+            #if defined(NDNBOOST_NO_STRINGSTREAM)
             std::strstream stream;
-            #elif defined(BOOST_NO_STD_LOCALE)
+            #elif defined(NDNBOOST_NO_STD_LOCALE)
             std::stringstream stream;
             #else
             std::basic_stringstream<char_type,traits_type> stream;
@@ -2692,8 +2692,8 @@
     Target lexical_cast(Source arg)
     {
         typedef typename detail::widest_char< 
-            BOOST_DEDUCED_TYPENAME detail::stream_char<Target>::type 
-          , BOOST_DEDUCED_TYPENAME detail::stream_char<Source>::type 
+            NDNBOOST_DEDUCED_TYPENAME detail::stream_char<Target>::type 
+          , NDNBOOST_DEDUCED_TYPENAME detail::stream_char<Source>::type 
         >::type char_type; 
 
         typedef std::char_traits<char_type> traits;
@@ -2701,7 +2701,7 @@
         Target result;
 
         if(!(interpreter << arg && interpreter >> result))
-          BOOST_LCAST_THROW_BAD_CAST(Source, Target);
+          NDNBOOST_LCAST_THROW_BAD_CAST(Source, Target);
         return result;
     }
 
@@ -2717,9 +2717,9 @@
 // accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
 
-#undef BOOST_LCAST_THROW_BAD_CAST
-#undef BOOST_LCAST_NO_WCHAR_T
-#undef BOOST_LCAST_HAS_INT128
+#undef NDNBOOST_LCAST_THROW_BAD_CAST
+#undef NDNBOOST_LCAST_NO_WCHAR_T
+#undef NDNBOOST_LCAST_HAS_INT128
 
-#endif // BOOST_LEXICAL_CAST_INCLUDED
+#endif // NDNBOOST_LEXICAL_CAST_INCLUDED
 
diff --git a/include/ndnboost/limits.hpp b/include/ndnboost/limits.hpp
index d3fddb7..cd55d9b 100644
--- a/include/ndnboost/limits.hpp
+++ b/include/ndnboost/limits.hpp
@@ -8,26 +8,26 @@
 
 //  See http://www.boost.org/libs/compatibility/index.html for documentation.
 
-#ifndef BOOST_LIMITS
-#define BOOST_LIMITS
+#ifndef NDNBOOST_LIMITS
+#define NDNBOOST_LIMITS
 
 #include <ndnboost/config.hpp>
 
-#ifdef BOOST_NO_LIMITS
+#ifdef NDNBOOST_NO_LIMITS
 #  error "There is no std::numeric_limits suppport available."
 #else
 # include <limits>
 #endif
 
-#if (defined(BOOST_HAS_LONG_LONG) && defined(BOOST_NO_LONG_LONG_NUMERIC_LIMITS)) \
-      || (defined(BOOST_HAS_MS_INT64) && defined(BOOST_NO_MS_INT64_NUMERIC_LIMITS))
+#if (defined(NDNBOOST_HAS_LONG_LONG) && defined(NDNBOOST_NO_LONG_LONG_NUMERIC_LIMITS)) \
+      || (defined(NDNBOOST_HAS_MS_INT64) && defined(NDNBOOST_NO_MS_INT64_NUMERIC_LIMITS))
 // Add missing specializations for numeric_limits:
-#ifdef BOOST_HAS_MS_INT64
-#  define BOOST_LLT __int64
-#  define BOOST_ULLT unsigned __int64
+#ifdef NDNBOOST_HAS_MS_INT64
+#  define NDNBOOST_LLT __int64
+#  define NDNBOOST_ULLT unsigned __int64
 #else
-#  define BOOST_LLT  ::ndnboost::long_long_type
-#  define BOOST_ULLT  ::ndnboost::ulong_long_type
+#  define NDNBOOST_LLT  ::ndnboost::long_long_type
+#  define NDNBOOST_ULLT  ::ndnboost::ulong_long_type
 #endif
 
 #include <climits>  // for CHAR_BIT
@@ -35,108 +35,108 @@
 namespace std
 {
   template<>
-  class numeric_limits<BOOST_LLT> 
+  class numeric_limits<NDNBOOST_LLT> 
   {
    public:
 
-      BOOST_STATIC_CONSTANT(bool, is_specialized = true);
-#ifdef BOOST_HAS_MS_INT64
-      static BOOST_LLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0x8000000000000000i64; }
-      static BOOST_LLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0x7FFFFFFFFFFFFFFFi64; }
+      NDNBOOST_STATIC_CONSTANT(bool, is_specialized = true);
+#ifdef NDNBOOST_HAS_MS_INT64
+      static NDNBOOST_LLT min NDNBOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0x8000000000000000i64; }
+      static NDNBOOST_LLT max NDNBOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0x7FFFFFFFFFFFFFFFi64; }
 #elif defined(LLONG_MAX)
-      static BOOST_LLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return LLONG_MIN; }
-      static BOOST_LLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return LLONG_MAX; }
+      static NDNBOOST_LLT min NDNBOOST_PREVENT_MACRO_SUBSTITUTION (){ return LLONG_MIN; }
+      static NDNBOOST_LLT max NDNBOOST_PREVENT_MACRO_SUBSTITUTION (){ return LLONG_MAX; }
 #elif defined(LONGLONG_MAX)
-      static BOOST_LLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return LONGLONG_MIN; }
-      static BOOST_LLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return LONGLONG_MAX; }
+      static NDNBOOST_LLT min NDNBOOST_PREVENT_MACRO_SUBSTITUTION (){ return LONGLONG_MIN; }
+      static NDNBOOST_LLT max NDNBOOST_PREVENT_MACRO_SUBSTITUTION (){ return LONGLONG_MAX; }
 #else
-      static BOOST_LLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 1LL << (sizeof(BOOST_LLT) * CHAR_BIT - 1); }
-      static BOOST_LLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ~(min)(); }
+      static NDNBOOST_LLT min NDNBOOST_PREVENT_MACRO_SUBSTITUTION (){ return 1LL << (sizeof(NDNBOOST_LLT) * CHAR_BIT - 1); }
+      static NDNBOOST_LLT max NDNBOOST_PREVENT_MACRO_SUBSTITUTION (){ return ~(min)(); }
 #endif
-      BOOST_STATIC_CONSTANT(int, digits = sizeof(BOOST_LLT) * CHAR_BIT -1);
-      BOOST_STATIC_CONSTANT(int, digits10 = (CHAR_BIT * sizeof (BOOST_LLT) - 1) * 301L / 1000);
-      BOOST_STATIC_CONSTANT(bool, is_signed = true);
-      BOOST_STATIC_CONSTANT(bool, is_integer = true);
-      BOOST_STATIC_CONSTANT(bool, is_exact = true);
-      BOOST_STATIC_CONSTANT(int, radix = 2);
-      static BOOST_LLT epsilon() throw() { return 0; };
-      static BOOST_LLT round_error() throw() { return 0; };
+      NDNBOOST_STATIC_CONSTANT(int, digits = sizeof(NDNBOOST_LLT) * CHAR_BIT -1);
+      NDNBOOST_STATIC_CONSTANT(int, digits10 = (CHAR_BIT * sizeof (NDNBOOST_LLT) - 1) * 301L / 1000);
+      NDNBOOST_STATIC_CONSTANT(bool, is_signed = true);
+      NDNBOOST_STATIC_CONSTANT(bool, is_integer = true);
+      NDNBOOST_STATIC_CONSTANT(bool, is_exact = true);
+      NDNBOOST_STATIC_CONSTANT(int, radix = 2);
+      static NDNBOOST_LLT epsilon() throw() { return 0; };
+      static NDNBOOST_LLT round_error() throw() { return 0; };
 
-      BOOST_STATIC_CONSTANT(int, min_exponent = 0);
-      BOOST_STATIC_CONSTANT(int, min_exponent10 = 0);
-      BOOST_STATIC_CONSTANT(int, max_exponent = 0);
-      BOOST_STATIC_CONSTANT(int, max_exponent10 = 0);
+      NDNBOOST_STATIC_CONSTANT(int, min_exponent = 0);
+      NDNBOOST_STATIC_CONSTANT(int, min_exponent10 = 0);
+      NDNBOOST_STATIC_CONSTANT(int, max_exponent = 0);
+      NDNBOOST_STATIC_CONSTANT(int, max_exponent10 = 0);
 
-      BOOST_STATIC_CONSTANT(bool, has_infinity = false);
-      BOOST_STATIC_CONSTANT(bool, has_quiet_NaN = false);
-      BOOST_STATIC_CONSTANT(bool, has_signaling_NaN = false);
-      BOOST_STATIC_CONSTANT(bool, has_denorm = false);
-      BOOST_STATIC_CONSTANT(bool, has_denorm_loss = false);
-      static BOOST_LLT infinity() throw() { return 0; };
-      static BOOST_LLT quiet_NaN() throw() { return 0; };
-      static BOOST_LLT signaling_NaN() throw() { return 0; };
-      static BOOST_LLT denorm_min() throw() { return 0; };
+      NDNBOOST_STATIC_CONSTANT(bool, has_infinity = false);
+      NDNBOOST_STATIC_CONSTANT(bool, has_quiet_NaN = false);
+      NDNBOOST_STATIC_CONSTANT(bool, has_signaling_NaN = false);
+      NDNBOOST_STATIC_CONSTANT(bool, has_denorm = false);
+      NDNBOOST_STATIC_CONSTANT(bool, has_denorm_loss = false);
+      static NDNBOOST_LLT infinity() throw() { return 0; };
+      static NDNBOOST_LLT quiet_NaN() throw() { return 0; };
+      static NDNBOOST_LLT signaling_NaN() throw() { return 0; };
+      static NDNBOOST_LLT denorm_min() throw() { return 0; };
 
-      BOOST_STATIC_CONSTANT(bool, is_iec559 = false);
-      BOOST_STATIC_CONSTANT(bool, is_bounded = true);
-      BOOST_STATIC_CONSTANT(bool, is_modulo = true);
+      NDNBOOST_STATIC_CONSTANT(bool, is_iec559 = false);
+      NDNBOOST_STATIC_CONSTANT(bool, is_bounded = true);
+      NDNBOOST_STATIC_CONSTANT(bool, is_modulo = true);
 
-      BOOST_STATIC_CONSTANT(bool, traps = false);
-      BOOST_STATIC_CONSTANT(bool, tinyness_before = false);
-      BOOST_STATIC_CONSTANT(float_round_style, round_style = round_toward_zero);
+      NDNBOOST_STATIC_CONSTANT(bool, traps = false);
+      NDNBOOST_STATIC_CONSTANT(bool, tinyness_before = false);
+      NDNBOOST_STATIC_CONSTANT(float_round_style, round_style = round_toward_zero);
       
   };
 
   template<>
-  class numeric_limits<BOOST_ULLT> 
+  class numeric_limits<NDNBOOST_ULLT> 
   {
    public:
 
-      BOOST_STATIC_CONSTANT(bool, is_specialized = true);
-#ifdef BOOST_HAS_MS_INT64
-      static BOOST_ULLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0ui64; }
-      static BOOST_ULLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0xFFFFFFFFFFFFFFFFui64; }
+      NDNBOOST_STATIC_CONSTANT(bool, is_specialized = true);
+#ifdef NDNBOOST_HAS_MS_INT64
+      static NDNBOOST_ULLT min NDNBOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0ui64; }
+      static NDNBOOST_ULLT max NDNBOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0xFFFFFFFFFFFFFFFFui64; }
 #elif defined(ULLONG_MAX) && defined(ULLONG_MIN)
-      static BOOST_ULLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ULLONG_MIN; }
-      static BOOST_ULLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ULLONG_MAX; }
+      static NDNBOOST_ULLT min NDNBOOST_PREVENT_MACRO_SUBSTITUTION (){ return ULLONG_MIN; }
+      static NDNBOOST_ULLT max NDNBOOST_PREVENT_MACRO_SUBSTITUTION (){ return ULLONG_MAX; }
 #elif defined(ULONGLONG_MAX) && defined(ULONGLONG_MIN)
-      static BOOST_ULLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ULONGLONG_MIN; }
-      static BOOST_ULLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ULONGLONG_MAX; }
+      static NDNBOOST_ULLT min NDNBOOST_PREVENT_MACRO_SUBSTITUTION (){ return ULONGLONG_MIN; }
+      static NDNBOOST_ULLT max NDNBOOST_PREVENT_MACRO_SUBSTITUTION (){ return ULONGLONG_MAX; }
 #else
-      static BOOST_ULLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0uLL; }
-      static BOOST_ULLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ~0uLL; }
+      static NDNBOOST_ULLT min NDNBOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0uLL; }
+      static NDNBOOST_ULLT max NDNBOOST_PREVENT_MACRO_SUBSTITUTION (){ return ~0uLL; }
 #endif
-      BOOST_STATIC_CONSTANT(int, digits = sizeof(BOOST_LLT) * CHAR_BIT);
-      BOOST_STATIC_CONSTANT(int, digits10 = (CHAR_BIT * sizeof (BOOST_LLT)) * 301L / 1000);
-      BOOST_STATIC_CONSTANT(bool, is_signed = false);
-      BOOST_STATIC_CONSTANT(bool, is_integer = true);
-      BOOST_STATIC_CONSTANT(bool, is_exact = true);
-      BOOST_STATIC_CONSTANT(int, radix = 2);
-      static BOOST_ULLT epsilon() throw() { return 0; };
-      static BOOST_ULLT round_error() throw() { return 0; };
+      NDNBOOST_STATIC_CONSTANT(int, digits = sizeof(NDNBOOST_LLT) * CHAR_BIT);
+      NDNBOOST_STATIC_CONSTANT(int, digits10 = (CHAR_BIT * sizeof (NDNBOOST_LLT)) * 301L / 1000);
+      NDNBOOST_STATIC_CONSTANT(bool, is_signed = false);
+      NDNBOOST_STATIC_CONSTANT(bool, is_integer = true);
+      NDNBOOST_STATIC_CONSTANT(bool, is_exact = true);
+      NDNBOOST_STATIC_CONSTANT(int, radix = 2);
+      static NDNBOOST_ULLT epsilon() throw() { return 0; };
+      static NDNBOOST_ULLT round_error() throw() { return 0; };
 
-      BOOST_STATIC_CONSTANT(int, min_exponent = 0);
-      BOOST_STATIC_CONSTANT(int, min_exponent10 = 0);
-      BOOST_STATIC_CONSTANT(int, max_exponent = 0);
-      BOOST_STATIC_CONSTANT(int, max_exponent10 = 0);
+      NDNBOOST_STATIC_CONSTANT(int, min_exponent = 0);
+      NDNBOOST_STATIC_CONSTANT(int, min_exponent10 = 0);
+      NDNBOOST_STATIC_CONSTANT(int, max_exponent = 0);
+      NDNBOOST_STATIC_CONSTANT(int, max_exponent10 = 0);
 
-      BOOST_STATIC_CONSTANT(bool, has_infinity = false);
-      BOOST_STATIC_CONSTANT(bool, has_quiet_NaN = false);
-      BOOST_STATIC_CONSTANT(bool, has_signaling_NaN = false);
-      BOOST_STATIC_CONSTANT(bool, has_denorm = false);
-      BOOST_STATIC_CONSTANT(bool, has_denorm_loss = false);
-      static BOOST_ULLT infinity() throw() { return 0; };
-      static BOOST_ULLT quiet_NaN() throw() { return 0; };
-      static BOOST_ULLT signaling_NaN() throw() { return 0; };
-      static BOOST_ULLT denorm_min() throw() { return 0; };
+      NDNBOOST_STATIC_CONSTANT(bool, has_infinity = false);
+      NDNBOOST_STATIC_CONSTANT(bool, has_quiet_NaN = false);
+      NDNBOOST_STATIC_CONSTANT(bool, has_signaling_NaN = false);
+      NDNBOOST_STATIC_CONSTANT(bool, has_denorm = false);
+      NDNBOOST_STATIC_CONSTANT(bool, has_denorm_loss = false);
+      static NDNBOOST_ULLT infinity() throw() { return 0; };
+      static NDNBOOST_ULLT quiet_NaN() throw() { return 0; };
+      static NDNBOOST_ULLT signaling_NaN() throw() { return 0; };
+      static NDNBOOST_ULLT denorm_min() throw() { return 0; };
 
-      BOOST_STATIC_CONSTANT(bool, is_iec559 = false);
-      BOOST_STATIC_CONSTANT(bool, is_bounded = true);
-      BOOST_STATIC_CONSTANT(bool, is_modulo = true);
+      NDNBOOST_STATIC_CONSTANT(bool, is_iec559 = false);
+      NDNBOOST_STATIC_CONSTANT(bool, is_bounded = true);
+      NDNBOOST_STATIC_CONSTANT(bool, is_modulo = true);
 
-      BOOST_STATIC_CONSTANT(bool, traps = false);
-      BOOST_STATIC_CONSTANT(bool, tinyness_before = false);
-      BOOST_STATIC_CONSTANT(float_round_style, round_style = round_toward_zero);
+      NDNBOOST_STATIC_CONSTANT(bool, traps = false);
+      NDNBOOST_STATIC_CONSTANT(bool, tinyness_before = false);
+      NDNBOOST_STATIC_CONSTANT(float_round_style, round_style = round_toward_zero);
       
   };
 }
diff --git a/include/ndnboost/make_shared.hpp b/include/ndnboost/make_shared.hpp
index 8a2b188..b28bee2 100644
--- a/include/ndnboost/make_shared.hpp
+++ b/include/ndnboost/make_shared.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_MAKE_SHARED_HPP_INCLUDED
-#define BOOST_MAKE_SHARED_HPP_INCLUDED
+#ifndef NDNBOOST_MAKE_SHARED_HPP_INCLUDED
+#define NDNBOOST_MAKE_SHARED_HPP_INCLUDED
 
 //  make_shared.hpp
 //
@@ -14,4 +14,4 @@
 
 #include <ndnboost/smart_ptr/make_shared.hpp>
 
-#endif // #ifndef BOOST_MAKE_SHARED_HPP_INCLUDED
+#endif // #ifndef NDNBOOST_MAKE_SHARED_HPP_INCLUDED
diff --git a/include/ndnboost/math/policies/policy.hpp b/include/ndnboost/math/policies/policy.hpp
index 1a4bb16..66a35d9 100644
--- a/include/ndnboost/math/policies/policy.hpp
+++ b/include/ndnboost/math/policies/policy.hpp
@@ -3,8 +3,8 @@
 //  Boost Software License, Version 1.0. (See accompanying file
 //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_MATH_POLICY_HPP
-#define BOOST_MATH_POLICY_HPP
+#ifndef NDNBOOST_MATH_POLICY_HPP
+#define NDNBOOST_MATH_POLICY_HPP
 
 #include <ndnboost/mpl/list.hpp>
 #include <ndnboost/mpl/contains.hpp>
@@ -33,9 +33,9 @@
 namespace tools{
 
 template <class T>
-int digits(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE(T));
+int digits(NDNBOOST_MATH_EXPLICIT_TEMPLATE_TYPE(T));
 template <class T>
-T epsilon(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE(T));
+T epsilon(NDNBOOST_MATH_EXPLICIT_TEMPLATE_TYPE(T));
 
 }
 
@@ -44,59 +44,59 @@
 //
 // Define macros for our default policies, if they're not defined already:
 //
-#ifndef BOOST_MATH_DOMAIN_ERROR_POLICY
-#define BOOST_MATH_DOMAIN_ERROR_POLICY throw_on_error
+#ifndef NDNBOOST_MATH_DOMAIN_ERROR_POLICY
+#define NDNBOOST_MATH_DOMAIN_ERROR_POLICY throw_on_error
 #endif
-#ifndef BOOST_MATH_POLE_ERROR_POLICY
-#define BOOST_MATH_POLE_ERROR_POLICY throw_on_error
+#ifndef NDNBOOST_MATH_POLE_ERROR_POLICY
+#define NDNBOOST_MATH_POLE_ERROR_POLICY throw_on_error
 #endif
-#ifndef BOOST_MATH_OVERFLOW_ERROR_POLICY
-#define BOOST_MATH_OVERFLOW_ERROR_POLICY throw_on_error
+#ifndef NDNBOOST_MATH_OVERFLOW_ERROR_POLICY
+#define NDNBOOST_MATH_OVERFLOW_ERROR_POLICY throw_on_error
 #endif
-#ifndef BOOST_MATH_EVALUATION_ERROR_POLICY
-#define BOOST_MATH_EVALUATION_ERROR_POLICY throw_on_error
+#ifndef NDNBOOST_MATH_EVALUATION_ERROR_POLICY
+#define NDNBOOST_MATH_EVALUATION_ERROR_POLICY throw_on_error
 #endif
-#ifndef BOOST_MATH_ROUNDING_ERROR_POLICY
-#define BOOST_MATH_ROUNDING_ERROR_POLICY throw_on_error
+#ifndef NDNBOOST_MATH_ROUNDING_ERROR_POLICY
+#define NDNBOOST_MATH_ROUNDING_ERROR_POLICY throw_on_error
 #endif
-#ifndef BOOST_MATH_UNDERFLOW_ERROR_POLICY
-#define BOOST_MATH_UNDERFLOW_ERROR_POLICY ignore_error
+#ifndef NDNBOOST_MATH_UNDERFLOW_ERROR_POLICY
+#define NDNBOOST_MATH_UNDERFLOW_ERROR_POLICY ignore_error
 #endif
-#ifndef BOOST_MATH_DENORM_ERROR_POLICY
-#define BOOST_MATH_DENORM_ERROR_POLICY ignore_error
+#ifndef NDNBOOST_MATH_DENORM_ERROR_POLICY
+#define NDNBOOST_MATH_DENORM_ERROR_POLICY ignore_error
 #endif
-#ifndef BOOST_MATH_INDETERMINATE_RESULT_ERROR_POLICY
-#define BOOST_MATH_INDETERMINATE_RESULT_ERROR_POLICY ignore_error
+#ifndef NDNBOOST_MATH_INDETERMINATE_RESULT_ERROR_POLICY
+#define NDNBOOST_MATH_INDETERMINATE_RESULT_ERROR_POLICY ignore_error
 #endif
-#ifndef BOOST_MATH_DIGITS10_POLICY
-#define BOOST_MATH_DIGITS10_POLICY 0
+#ifndef NDNBOOST_MATH_DIGITS10_POLICY
+#define NDNBOOST_MATH_DIGITS10_POLICY 0
 #endif
-#ifndef BOOST_MATH_PROMOTE_FLOAT_POLICY
-#define BOOST_MATH_PROMOTE_FLOAT_POLICY true
+#ifndef NDNBOOST_MATH_PROMOTE_FLOAT_POLICY
+#define NDNBOOST_MATH_PROMOTE_FLOAT_POLICY true
 #endif
-#ifndef BOOST_MATH_PROMOTE_DOUBLE_POLICY
-#ifdef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
-#define BOOST_MATH_PROMOTE_DOUBLE_POLICY false
+#ifndef NDNBOOST_MATH_PROMOTE_DOUBLE_POLICY
+#ifdef NDNBOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+#define NDNBOOST_MATH_PROMOTE_DOUBLE_POLICY false
 #else
-#define BOOST_MATH_PROMOTE_DOUBLE_POLICY true
+#define NDNBOOST_MATH_PROMOTE_DOUBLE_POLICY true
 #endif
 #endif
-#ifndef BOOST_MATH_DISCRETE_QUANTILE_POLICY
-#define BOOST_MATH_DISCRETE_QUANTILE_POLICY integer_round_outwards
+#ifndef NDNBOOST_MATH_DISCRETE_QUANTILE_POLICY
+#define NDNBOOST_MATH_DISCRETE_QUANTILE_POLICY integer_round_outwards
 #endif
-#ifndef BOOST_MATH_ASSERT_UNDEFINED_POLICY
-#define BOOST_MATH_ASSERT_UNDEFINED_POLICY true
+#ifndef NDNBOOST_MATH_ASSERT_UNDEFINED_POLICY
+#define NDNBOOST_MATH_ASSERT_UNDEFINED_POLICY true
 #endif
-#ifndef BOOST_MATH_MAX_SERIES_ITERATION_POLICY
-#define BOOST_MATH_MAX_SERIES_ITERATION_POLICY 1000000
+#ifndef NDNBOOST_MATH_MAX_SERIES_ITERATION_POLICY
+#define NDNBOOST_MATH_MAX_SERIES_ITERATION_POLICY 1000000
 #endif
-#ifndef BOOST_MATH_MAX_ROOT_ITERATION_POLICY
-#define BOOST_MATH_MAX_ROOT_ITERATION_POLICY 200
+#ifndef NDNBOOST_MATH_MAX_ROOT_ITERATION_POLICY
+#define NDNBOOST_MATH_MAX_ROOT_ITERATION_POLICY 200
 #endif
 
 #if !defined(__BORLANDC__) \
    && !(defined(__GNUC__) && (__GNUC__ == 3) && (__GNUC_MINOR__ <= 2))
-#define BOOST_MATH_META_INT(type, name, Default)\
+#define NDNBOOST_MATH_META_INT(type, name, Default)\
    template <type N = Default> struct name : public ndnboost::mpl::int_<N>{};\
    namespace detail{\
    template <type N>\
@@ -106,12 +106,12 @@
    {\
       template <type N> static char test(const name<N>*);\
       static double test(...);\
-      BOOST_STATIC_CONSTANT(bool, value = sizeof(test(static_cast<T*>(0))) == 1);\
+      NDNBOOST_STATIC_CONSTANT(bool, value = sizeof(test(static_cast<T*>(0))) == 1);\
    };\
    }\
    template <class T> struct is_##name : public ndnboost::mpl::bool_< ::ndnboost::math::policies::detail::is_##name##_imp<T>::value>{};
 
-#define BOOST_MATH_META_BOOL(name, Default)\
+#define NDNBOOST_MATH_META_BOOL(name, Default)\
    template <bool N = Default> struct name : public ndnboost::mpl::bool_<N>{};\
    namespace detail{\
    template <bool N>\
@@ -121,12 +121,12 @@
    {\
       template <bool N> static char test(const name<N>*);\
       static double test(...);\
-      BOOST_STATIC_CONSTANT(bool, value = sizeof(test(static_cast<T*>(0))) == 1);\
+      NDNBOOST_STATIC_CONSTANT(bool, value = sizeof(test(static_cast<T*>(0))) == 1);\
    };\
    }\
    template <class T> struct is_##name : public ndnboost::mpl::bool_< ::ndnboost::math::policies::detail::is_##name##_imp<T>::value>{};
 #else
-#define BOOST_MATH_META_INT(Type, name, Default)\
+#define NDNBOOST_MATH_META_INT(Type, name, Default)\
    template <Type N = Default> struct name : public ndnboost::mpl::int_<N>{};\
    namespace detail{\
    template <Type N>\
@@ -140,7 +140,7 @@
    template <class T> struct is_##name##_imp\
    {\
       static T inst;\
-      BOOST_STATIC_CONSTANT(bool, value = sizeof( ::ndnboost::math::policies::detail::is_##name##_tester<T>::test(inst)) == 1);\
+      NDNBOOST_STATIC_CONSTANT(bool, value = sizeof( ::ndnboost::math::policies::detail::is_##name##_tester<T>::test(inst)) == 1);\
    };\
    }\
    template <class T> struct is_##name : public ndnboost::mpl::bool_< ::ndnboost::math::policies::detail::is_##name##_imp<T>::value>\
@@ -148,7 +148,7 @@
       template <class U> struct apply{ typedef is_##name<U> type; };\
    };
 
-#define BOOST_MATH_META_BOOL(name, Default)\
+#define NDNBOOST_MATH_META_BOOL(name, Default)\
    template <bool N = Default> struct name : public ndnboost::mpl::bool_<N>{};\
    namespace detail{\
    template <bool N>\
@@ -162,7 +162,7 @@
    template <class T> struct is_##name##_imp\
    {\
       static T inst;\
-      BOOST_STATIC_CONSTANT(bool, value = sizeof( ::ndnboost::math::policies::detail::is_##name##_tester<T>::test(inst)) == 1);\
+      NDNBOOST_STATIC_CONSTANT(bool, value = sizeof( ::ndnboost::math::policies::detail::is_##name##_tester<T>::test(inst)) == 1);\
    };\
    }\
    template <class T> struct is_##name : public ndnboost::mpl::bool_< ::ndnboost::math::policies::detail::is_##name##_imp<T>::value>\
@@ -181,21 +181,21 @@
    user_error = 3
 };
 
-BOOST_MATH_META_INT(error_policy_type, domain_error, BOOST_MATH_DOMAIN_ERROR_POLICY)
-BOOST_MATH_META_INT(error_policy_type, pole_error, BOOST_MATH_POLE_ERROR_POLICY)
-BOOST_MATH_META_INT(error_policy_type, overflow_error, BOOST_MATH_OVERFLOW_ERROR_POLICY)
-BOOST_MATH_META_INT(error_policy_type, underflow_error, BOOST_MATH_UNDERFLOW_ERROR_POLICY)
-BOOST_MATH_META_INT(error_policy_type, denorm_error, BOOST_MATH_DENORM_ERROR_POLICY)
-BOOST_MATH_META_INT(error_policy_type, evaluation_error, BOOST_MATH_EVALUATION_ERROR_POLICY)
-BOOST_MATH_META_INT(error_policy_type, rounding_error, BOOST_MATH_ROUNDING_ERROR_POLICY)
-BOOST_MATH_META_INT(error_policy_type, indeterminate_result_error, BOOST_MATH_INDETERMINATE_RESULT_ERROR_POLICY)
+NDNBOOST_MATH_META_INT(error_policy_type, domain_error, NDNBOOST_MATH_DOMAIN_ERROR_POLICY)
+NDNBOOST_MATH_META_INT(error_policy_type, pole_error, NDNBOOST_MATH_POLE_ERROR_POLICY)
+NDNBOOST_MATH_META_INT(error_policy_type, overflow_error, NDNBOOST_MATH_OVERFLOW_ERROR_POLICY)
+NDNBOOST_MATH_META_INT(error_policy_type, underflow_error, NDNBOOST_MATH_UNDERFLOW_ERROR_POLICY)
+NDNBOOST_MATH_META_INT(error_policy_type, denorm_error, NDNBOOST_MATH_DENORM_ERROR_POLICY)
+NDNBOOST_MATH_META_INT(error_policy_type, evaluation_error, NDNBOOST_MATH_EVALUATION_ERROR_POLICY)
+NDNBOOST_MATH_META_INT(error_policy_type, rounding_error, NDNBOOST_MATH_ROUNDING_ERROR_POLICY)
+NDNBOOST_MATH_META_INT(error_policy_type, indeterminate_result_error, NDNBOOST_MATH_INDETERMINATE_RESULT_ERROR_POLICY)
 
 //
 // Policy types for internal promotion:
 //
-BOOST_MATH_META_BOOL(promote_float, BOOST_MATH_PROMOTE_FLOAT_POLICY)
-BOOST_MATH_META_BOOL(promote_double, BOOST_MATH_PROMOTE_DOUBLE_POLICY)
-BOOST_MATH_META_BOOL(assert_undefined, BOOST_MATH_ASSERT_UNDEFINED_POLICY)
+NDNBOOST_MATH_META_BOOL(promote_float, NDNBOOST_MATH_PROMOTE_FLOAT_POLICY)
+NDNBOOST_MATH_META_BOOL(promote_double, NDNBOOST_MATH_PROMOTE_DOUBLE_POLICY)
+NDNBOOST_MATH_META_BOOL(assert_undefined, NDNBOOST_MATH_ASSERT_UNDEFINED_POLICY)
 //
 // Policy types for discrete quantiles:
 //
@@ -209,23 +209,23 @@
    integer_round_nearest
 };
 
-BOOST_MATH_META_INT(discrete_quantile_policy_type, discrete_quantile, BOOST_MATH_DISCRETE_QUANTILE_POLICY)
+NDNBOOST_MATH_META_INT(discrete_quantile_policy_type, discrete_quantile, NDNBOOST_MATH_DISCRETE_QUANTILE_POLICY)
 //
 // Precision:
 //
-BOOST_MATH_META_INT(int, digits10, BOOST_MATH_DIGITS10_POLICY)
-BOOST_MATH_META_INT(int, digits2, 0)
+NDNBOOST_MATH_META_INT(int, digits10, NDNBOOST_MATH_DIGITS10_POLICY)
+NDNBOOST_MATH_META_INT(int, digits2, 0)
 //
 // Iterations:
 //
-BOOST_MATH_META_INT(unsigned long, max_series_iterations, BOOST_MATH_MAX_SERIES_ITERATION_POLICY)
-BOOST_MATH_META_INT(unsigned long, max_root_iterations, BOOST_MATH_MAX_ROOT_ITERATION_POLICY)
+NDNBOOST_MATH_META_INT(unsigned long, max_series_iterations, NDNBOOST_MATH_MAX_SERIES_ITERATION_POLICY)
+NDNBOOST_MATH_META_INT(unsigned long, max_root_iterations, NDNBOOST_MATH_MAX_ROOT_ITERATION_POLICY)
 //
 // Define the names for each possible policy:
 //
-#define BOOST_MATH_PARAMETER(name)\
-   BOOST_PARAMETER_TEMPLATE_KEYWORD(name##_name)\
-   BOOST_PARAMETER_NAME(name##_name)
+#define NDNBOOST_MATH_PARAMETER(name)\
+   NDNBOOST_PARAMETER_TEMPLATE_KEYWORD(name##_name)\
+   NDNBOOST_PARAMETER_NAME(name##_name)
 
 struct default_policy{};
 
@@ -287,13 +287,13 @@
 template <class T>
 struct is_valid_policy_imp 
 {
-   BOOST_STATIC_CONSTANT(bool, value = sizeof(::ndnboost::math::policies::detail::test_is_valid_arg(static_cast<T*>(0))) == 1);
+   NDNBOOST_STATIC_CONSTANT(bool, value = sizeof(::ndnboost::math::policies::detail::test_is_valid_arg(static_cast<T*>(0))) == 1);
 };
 
 template <class T>
 struct is_default_policy_imp
 {
-   BOOST_STATIC_CONSTANT(bool, value = sizeof(::ndnboost::math::policies::detail::test_is_default_arg(static_cast<T*>(0))) == 1);
+   NDNBOOST_STATIC_CONSTANT(bool, value = sizeof(::ndnboost::math::policies::detail::test_is_default_arg(static_cast<T*>(0))) == 1);
 };
 
 template <class T> struct is_valid_policy 
@@ -357,8 +357,8 @@
    typedef default_policy arg2;
 };
 
-typedef default_args<BOOST_MATH_PROMOTE_FLOAT_POLICY, BOOST_MATH_PROMOTE_DOUBLE_POLICY>::arg1 forwarding_arg1;
-typedef default_args<BOOST_MATH_PROMOTE_FLOAT_POLICY, BOOST_MATH_PROMOTE_DOUBLE_POLICY>::arg2 forwarding_arg2;
+typedef default_args<NDNBOOST_MATH_PROMOTE_FLOAT_POLICY, NDNBOOST_MATH_PROMOTE_DOUBLE_POLICY>::arg1 forwarding_arg1;
+typedef default_args<NDNBOOST_MATH_PROMOTE_FLOAT_POLICY, NDNBOOST_MATH_PROMOTE_DOUBLE_POLICY>::arg2 forwarding_arg2;
 
 } // detail
 //
@@ -384,19 +384,19 @@
    //
    // Validate all our arguments:
    //
-   BOOST_STATIC_ASSERT(::ndnboost::math::policies::detail::is_valid_policy<A1>::value);
-   BOOST_STATIC_ASSERT(::ndnboost::math::policies::detail::is_valid_policy<A2>::value);
-   BOOST_STATIC_ASSERT(::ndnboost::math::policies::detail::is_valid_policy<A3>::value);
-   BOOST_STATIC_ASSERT(::ndnboost::math::policies::detail::is_valid_policy<A4>::value);
-   BOOST_STATIC_ASSERT(::ndnboost::math::policies::detail::is_valid_policy<A5>::value);
-   BOOST_STATIC_ASSERT(::ndnboost::math::policies::detail::is_valid_policy<A6>::value);
-   BOOST_STATIC_ASSERT(::ndnboost::math::policies::detail::is_valid_policy<A7>::value);
-   BOOST_STATIC_ASSERT(::ndnboost::math::policies::detail::is_valid_policy<A8>::value);
-   BOOST_STATIC_ASSERT(::ndnboost::math::policies::detail::is_valid_policy<A9>::value);
-   BOOST_STATIC_ASSERT(::ndnboost::math::policies::detail::is_valid_policy<A10>::value);
-   BOOST_STATIC_ASSERT(::ndnboost::math::policies::detail::is_valid_policy<A11>::value);
-   BOOST_STATIC_ASSERT(::ndnboost::math::policies::detail::is_valid_policy<A12>::value);
-   BOOST_STATIC_ASSERT(::ndnboost::math::policies::detail::is_valid_policy<A13>::value);
+   NDNBOOST_STATIC_ASSERT(::ndnboost::math::policies::detail::is_valid_policy<A1>::value);
+   NDNBOOST_STATIC_ASSERT(::ndnboost::math::policies::detail::is_valid_policy<A2>::value);
+   NDNBOOST_STATIC_ASSERT(::ndnboost::math::policies::detail::is_valid_policy<A3>::value);
+   NDNBOOST_STATIC_ASSERT(::ndnboost::math::policies::detail::is_valid_policy<A4>::value);
+   NDNBOOST_STATIC_ASSERT(::ndnboost::math::policies::detail::is_valid_policy<A5>::value);
+   NDNBOOST_STATIC_ASSERT(::ndnboost::math::policies::detail::is_valid_policy<A6>::value);
+   NDNBOOST_STATIC_ASSERT(::ndnboost::math::policies::detail::is_valid_policy<A7>::value);
+   NDNBOOST_STATIC_ASSERT(::ndnboost::math::policies::detail::is_valid_policy<A8>::value);
+   NDNBOOST_STATIC_ASSERT(::ndnboost::math::policies::detail::is_valid_policy<A9>::value);
+   NDNBOOST_STATIC_ASSERT(::ndnboost::math::policies::detail::is_valid_policy<A10>::value);
+   NDNBOOST_STATIC_ASSERT(::ndnboost::math::policies::detail::is_valid_policy<A11>::value);
+   NDNBOOST_STATIC_ASSERT(::ndnboost::math::policies::detail::is_valid_policy<A12>::value);
+   NDNBOOST_STATIC_ASSERT(::ndnboost::math::policies::detail::is_valid_policy<A13>::value);
    //
    // Typelist of the arguments:
    //
@@ -455,7 +455,7 @@
    typedef evaluation_error<> evaluation_error_type;
    typedef rounding_error<> rounding_error_type;
    typedef indeterminate_result_error<> indeterminate_result_error_type;
-#if BOOST_MATH_DIGITS10_POLICY == 0
+#if NDNBOOST_MATH_DIGITS10_POLICY == 0
    typedef digits2<> precision_type;
 #else
    typedef detail::precision<digits10<>, digits2<> >::type precision_type;
@@ -480,7 +480,7 @@
    typedef evaluation_error<> evaluation_error_type;
    typedef rounding_error<> rounding_error_type;
    typedef indeterminate_result_error<> indeterminate_result_error_type;
-#if BOOST_MATH_DIGITS10_POLICY == 0
+#if NDNBOOST_MATH_DIGITS10_POLICY == 0
    typedef digits2<> precision_type;
 #else
    typedef detail::precision<digits10<>, digits2<> >::type precision_type;
@@ -724,7 +724,7 @@
    typedef typename mpl::if_<typename Policy::promote_double_type, long double, double>::type type;
 };
 
-#ifdef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+#ifdef NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
 
 template <class Real>
 struct basic_digits : public mpl::int_<0>{ };
@@ -738,7 +738,7 @@
 template <class Real, class Policy>
 struct precision
 {
-   BOOST_STATIC_ASSERT( ::std::numeric_limits<Real>::radix == 2);
+   NDNBOOST_STATIC_ASSERT( ::std::numeric_limits<Real>::radix == 2);
    typedef typename Policy::precision_type precision_type;
    typedef basic_digits<Real> digits_t;
    typedef typename mpl::if_<
@@ -776,7 +776,7 @@
 template <class Real, class Policy>
 struct precision
 {
-   BOOST_STATIC_ASSERT((::std::numeric_limits<Real>::radix == 2) || ((::std::numeric_limits<Real>::is_specialized == 0) || (::std::numeric_limits<Real>::digits == 0)));
+   NDNBOOST_STATIC_ASSERT((::std::numeric_limits<Real>::radix == 2) || ((::std::numeric_limits<Real>::is_specialized == 0) || (::std::numeric_limits<Real>::digits == 0)));
 #ifndef __BORLANDC__
    typedef typename Policy::precision_type precision_type;
    typedef typename mpl::if_c<
@@ -813,7 +813,7 @@
 
 #endif
 
-#ifdef BOOST_MATH_USE_FLOAT128
+#ifdef NDNBOOST_MATH_USE_FLOAT128
 
 template <class Policy>
 struct precision<__float128, Policy>
@@ -828,10 +828,10 @@
 template <class T, class Policy>
 inline int digits_imp(mpl::true_ const&)
 {
-#ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-   BOOST_STATIC_ASSERT( ::std::numeric_limits<T>::is_specialized);
+#ifndef NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+   NDNBOOST_STATIC_ASSERT( ::std::numeric_limits<T>::is_specialized);
 #else
-   BOOST_ASSERT(::std::numeric_limits<T>::is_specialized);
+   NDNBOOST_ASSERT(::std::numeric_limits<T>::is_specialized);
 #endif
    typedef typename ndnboost::math::policies::precision<T, Policy>::type p_t;
    return p_t::value;
@@ -846,7 +846,7 @@
 } // namespace detail
 
 template <class T, class Policy>
-inline int digits(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE(T))
+inline int digits(NDNBOOST_MATH_EXPLICIT_TEMPLATE_TYPE(T))
 {
    typedef mpl::bool_< std::numeric_limits<T>::is_specialized > tag_type;
    return detail::digits_imp<T, Policy>(tag_type());
@@ -906,12 +906,12 @@
 template <class T, class Policy>
 inline T get_epsilon_imp(mpl::true_ const&)
 {
-#ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-   BOOST_STATIC_ASSERT( ::std::numeric_limits<T>::is_specialized);
-   BOOST_STATIC_ASSERT( ::std::numeric_limits<T>::radix == 2);
+#ifndef NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+   NDNBOOST_STATIC_ASSERT( ::std::numeric_limits<T>::is_specialized);
+   NDNBOOST_STATIC_ASSERT( ::std::numeric_limits<T>::radix == 2);
 #else
-   BOOST_ASSERT(::std::numeric_limits<T>::is_specialized);
-   BOOST_ASSERT(::std::numeric_limits<T>::radix == 2);
+   NDNBOOST_ASSERT(::std::numeric_limits<T>::is_specialized);
+   NDNBOOST_ASSERT(::std::numeric_limits<T>::radix == 2);
 #endif
    typedef typename ndnboost::math::policies::precision<T, Policy>::type p_t;
    typedef mpl::bool_<p_t::value <= std::numeric_limits<ndnboost::uintmax_t>::digits> is_small_int;
@@ -928,7 +928,7 @@
 } // namespace detail
 
 template <class T, class Policy>
-inline T get_epsilon(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE(T))
+inline T get_epsilon(NDNBOOST_MATH_EXPLICIT_TEMPLATE_TYPE(T))
 {
    typedef mpl::bool_< (std::numeric_limits<T>::is_specialized && (std::numeric_limits<T>::radix == 2)) > tag_type;
    return detail::get_epsilon_imp<T, Policy>(tag_type());
@@ -953,7 +953,7 @@
 template <class P>
 struct is_policy_imp
 {
-   BOOST_STATIC_CONSTANT(bool, value = (sizeof(::ndnboost::math::policies::detail::test_is_policy(static_cast<P*>(0))) == 1));
+   NDNBOOST_STATIC_CONSTANT(bool, value = (sizeof(::ndnboost::math::policies::detail::test_is_policy(static_cast<P*>(0))) == 1));
 };
 
 }
@@ -986,7 +986,7 @@
 
 }}} // namespaces
 
-#endif // BOOST_MATH_POLICY_HPP
+#endif // NDNBOOST_MATH_POLICY_HPP
 
 
 
diff --git a/include/ndnboost/math/special_functions/detail/fp_traits.hpp b/include/ndnboost/math/special_functions/detail/fp_traits.hpp
index e1c8d78..eff178a 100644
--- a/include/ndnboost/math/special_functions/detail/fp_traits.hpp
+++ b/include/ndnboost/math/special_functions/detail/fp_traits.hpp
@@ -1,7 +1,7 @@
 // fp_traits.hpp
 
-#ifndef BOOST_MATH_FP_TRAITS_HPP
-#define BOOST_MATH_FP_TRAITS_HPP
+#ifndef NDNBOOST_MATH_FP_TRAITS_HPP
+#define NDNBOOST_MATH_FP_TRAITS_HPP
 
 // Copyright (c) 2006 Johan Rade
 
@@ -17,7 +17,7 @@
 
 #if defined(__vms) && defined(__DECCXX) && !__IEEE_FLOAT
 // The VAX floating point formats are used (for float and double)
-#   define BOOST_FPCLASSIFY_VAX_FORMAT
+#   define NDNBOOST_FPCLASSIFY_VAX_FORMAT
 #endif
 
 #include <cstring>
@@ -28,7 +28,7 @@
 #include <ndnboost/static_assert.hpp>
 #include <ndnboost/type_traits/is_floating_point.hpp>
 
-#ifdef BOOST_NO_STDC_NAMESPACE
+#ifdef NDNBOOST_NO_STDC_NAMESPACE
   namespace std{ using ::memcpy; }
 #endif
 
@@ -42,7 +42,7 @@
 
 #else
 
-#define BOOST_HAS_FPCLASSIFY
+#define NDNBOOST_HAS_FPCLASSIFY
 
 #ifndef fpclassify
 #  if (defined(__GLIBCPP__) || defined(__GLIBCXX__)) \
@@ -51,26 +51,26 @@
          && (_GLIBCXX_USE_C99_FP_MACROS_DYNAMIC != 0))
 #     ifdef _STLP_VENDOR_CSTD
 #        if _STLPORT_VERSION >= 0x520
-#           define BOOST_FPCLASSIFY_PREFIX ::__std_alias:: 
+#           define NDNBOOST_FPCLASSIFY_PREFIX ::__std_alias:: 
 #        else
-#           define BOOST_FPCLASSIFY_PREFIX ::_STLP_VENDOR_CSTD:: 
+#           define NDNBOOST_FPCLASSIFY_PREFIX ::_STLP_VENDOR_CSTD:: 
 #        endif
 #     else
-#        define BOOST_FPCLASSIFY_PREFIX ::std::
+#        define NDNBOOST_FPCLASSIFY_PREFIX ::std::
 #     endif
 #  else
-#     undef BOOST_HAS_FPCLASSIFY
-#     define BOOST_FPCLASSIFY_PREFIX
+#     undef NDNBOOST_HAS_FPCLASSIFY
+#     define NDNBOOST_FPCLASSIFY_PREFIX
 #  endif
 #elif (defined(__HP_aCC) && !defined(__hppa))
 // aCC 6 appears to do "#define fpclassify fpclassify" which messes us up a bit!
-#  define BOOST_FPCLASSIFY_PREFIX ::
+#  define NDNBOOST_FPCLASSIFY_PREFIX ::
 #else
-#  define BOOST_FPCLASSIFY_PREFIX
+#  define NDNBOOST_FPCLASSIFY_PREFIX
 #endif
 
 #ifdef __MINGW32__
-#  undef BOOST_HAS_FPCLASSIFY
+#  undef NDNBOOST_HAS_FPCLASSIFY
 #endif
 
 #endif
@@ -96,7 +96,7 @@
 struct ieee_copy_all_bits_tag : public ieee_tag {};
 struct ieee_copy_leading_bits_tag : public ieee_tag {};
 
-#ifdef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+#ifdef NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
 //
 // These helper functions are used only when numeric_limits<>
 // members are not compile time constants:
@@ -138,7 +138,7 @@
 
 template<class T, class U> struct fp_traits_non_native
 {
-#ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+#ifndef NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
    typedef generic_tag<std::numeric_limits<T>::is_specialized> method;
 #else
    typedef generic_tag<false> method;
@@ -172,16 +172,16 @@
 
 // ieee_tag version, float (32 bits) -----------------------------------------------
 
-#ifndef BOOST_FPCLASSIFY_VAX_FORMAT
+#ifndef NDNBOOST_FPCLASSIFY_VAX_FORMAT
 
 template<> struct fp_traits_non_native<float, single_precision>
 {
     typedef ieee_copy_all_bits_tag method;
 
-    BOOST_STATIC_CONSTANT(uint32_t, sign        = 0x80000000u);
-    BOOST_STATIC_CONSTANT(uint32_t, exponent    = 0x7f800000);
-    BOOST_STATIC_CONSTANT(uint32_t, flag        = 0x00000000);
-    BOOST_STATIC_CONSTANT(uint32_t, significand = 0x007fffff);
+    NDNBOOST_STATIC_CONSTANT(uint32_t, sign        = 0x80000000u);
+    NDNBOOST_STATIC_CONSTANT(uint32_t, exponent    = 0x7f800000);
+    NDNBOOST_STATIC_CONSTANT(uint32_t, flag        = 0x00000000);
+    NDNBOOST_STATIC_CONSTANT(uint32_t, significand = 0x007fffff);
 
     typedef uint32_t bits;
     static void get_bits(float x, uint32_t& a) { std::memcpy(&a, &x, 4); }
@@ -190,17 +190,17 @@
 
 // ieee_tag version, double (64 bits) ----------------------------------------------
 
-#if defined(BOOST_NO_INT64_T) || defined(BOOST_NO_INCLASS_MEMBER_INITIALIZATION) \
+#if defined(NDNBOOST_NO_INT64_T) || defined(NDNBOOST_NO_INCLASS_MEMBER_INITIALIZATION) \
    || defined(__BORLANDC__) || defined(__CODEGEAR__)
 
 template<> struct fp_traits_non_native<double, double_precision>
 {
     typedef ieee_copy_leading_bits_tag method;
 
-    BOOST_STATIC_CONSTANT(uint32_t, sign        = 0x80000000u);
-    BOOST_STATIC_CONSTANT(uint32_t, exponent    = 0x7ff00000);
-    BOOST_STATIC_CONSTANT(uint32_t, flag        = 0);
-    BOOST_STATIC_CONSTANT(uint32_t, significand = 0x000fffff);
+    NDNBOOST_STATIC_CONSTANT(uint32_t, sign        = 0x80000000u);
+    NDNBOOST_STATIC_CONSTANT(uint32_t, exponent    = 0x7ff00000);
+    NDNBOOST_STATIC_CONSTANT(uint32_t, flag        = 0);
+    NDNBOOST_STATIC_CONSTANT(uint32_t, significand = 0x000fffff);
 
     typedef uint32_t bits;
 
@@ -216,12 +216,12 @@
 
 private:
 
-#if defined(BOOST_BIG_ENDIAN)
-    BOOST_STATIC_CONSTANT(int, offset_ = 0);
-#elif defined(BOOST_LITTLE_ENDIAN)
-    BOOST_STATIC_CONSTANT(int, offset_ = 4);
+#if defined(NDNBOOST_BIG_ENDIAN)
+    NDNBOOST_STATIC_CONSTANT(int, offset_ = 0);
+#elif defined(NDNBOOST_LITTLE_ENDIAN)
+    NDNBOOST_STATIC_CONSTANT(int, offset_ = 4);
 #else
-    BOOST_STATIC_ASSERT(false);
+    NDNBOOST_STATIC_ASSERT(false);
 #endif
 };
 
@@ -246,21 +246,21 @@
 
 #endif
 
-#endif  // #ifndef BOOST_FPCLASSIFY_VAX_FORMAT
+#endif  // #ifndef NDNBOOST_FPCLASSIFY_VAX_FORMAT
 
 // long double (64 bits) -------------------------------------------------------
 
-#if defined(BOOST_NO_INT64_T) || defined(BOOST_NO_INCLASS_MEMBER_INITIALIZATION)\
+#if defined(NDNBOOST_NO_INT64_T) || defined(NDNBOOST_NO_INCLASS_MEMBER_INITIALIZATION)\
    || defined(__BORLANDC__) || defined(__CODEGEAR__)
 
 template<> struct fp_traits_non_native<long double, double_precision>
 {
     typedef ieee_copy_leading_bits_tag method;
 
-    BOOST_STATIC_CONSTANT(uint32_t, sign        = 0x80000000u);
-    BOOST_STATIC_CONSTANT(uint32_t, exponent    = 0x7ff00000);
-    BOOST_STATIC_CONSTANT(uint32_t, flag        = 0);
-    BOOST_STATIC_CONSTANT(uint32_t, significand = 0x000fffff);
+    NDNBOOST_STATIC_CONSTANT(uint32_t, sign        = 0x80000000u);
+    NDNBOOST_STATIC_CONSTANT(uint32_t, exponent    = 0x7ff00000);
+    NDNBOOST_STATIC_CONSTANT(uint32_t, flag        = 0);
+    NDNBOOST_STATIC_CONSTANT(uint32_t, significand = 0x000fffff);
 
     typedef uint32_t bits;
 
@@ -276,12 +276,12 @@
 
 private:
 
-#if defined(BOOST_BIG_ENDIAN)
-    BOOST_STATIC_CONSTANT(int, offset_ = 0);
-#elif defined(BOOST_LITTLE_ENDIAN)
-    BOOST_STATIC_CONSTANT(int, offset_ = 4);
+#if defined(NDNBOOST_BIG_ENDIAN)
+    NDNBOOST_STATIC_CONSTANT(int, offset_ = 0);
+#elif defined(NDNBOOST_LITTLE_ENDIAN)
+    NDNBOOST_STATIC_CONSTANT(int, offset_ = 4);
 #else
-    BOOST_STATIC_ASSERT(false);
+    NDNBOOST_STATIC_ASSERT(false);
 #endif
 };
 
@@ -320,10 +320,10 @@
 {
     typedef ieee_copy_leading_bits_tag method;
 
-    BOOST_STATIC_CONSTANT(uint32_t, sign        = 0x80000000u);
-    BOOST_STATIC_CONSTANT(uint32_t, exponent    = 0x7fff0000);
-    BOOST_STATIC_CONSTANT(uint32_t, flag        = 0x00008000);
-    BOOST_STATIC_CONSTANT(uint32_t, significand = 0x00007fff);
+    NDNBOOST_STATIC_CONSTANT(uint32_t, sign        = 0x80000000u);
+    NDNBOOST_STATIC_CONSTANT(uint32_t, exponent    = 0x7fff0000);
+    NDNBOOST_STATIC_CONSTANT(uint32_t, flag        = 0x00008000);
+    NDNBOOST_STATIC_CONSTANT(uint32_t, significand = 0x00007fff);
 
     typedef uint32_t bits;
 
@@ -364,10 +364,10 @@
 {
     typedef ieee_copy_leading_bits_tag method;
 
-    BOOST_STATIC_CONSTANT(uint32_t, sign        = 0x80000000u);
-    BOOST_STATIC_CONSTANT(uint32_t, exponent    = 0x7ff00000);
-    BOOST_STATIC_CONSTANT(uint32_t, flag        = 0x00000000);
-    BOOST_STATIC_CONSTANT(uint32_t, significand = 0x000fffff);
+    NDNBOOST_STATIC_CONSTANT(uint32_t, sign        = 0x80000000u);
+    NDNBOOST_STATIC_CONSTANT(uint32_t, exponent    = 0x7ff00000);
+    NDNBOOST_STATIC_CONSTANT(uint32_t, flag        = 0x00000000);
+    NDNBOOST_STATIC_CONSTANT(uint32_t, significand = 0x000fffff);
 
     typedef uint32_t bits;
 
@@ -383,12 +383,12 @@
 
 private:
 
-#if defined(BOOST_BIG_ENDIAN)
-    BOOST_STATIC_CONSTANT(int, offset_ = 0);
-#elif defined(BOOST_LITTLE_ENDIAN)
-    BOOST_STATIC_CONSTANT(int, offset_ = 12);
+#if defined(NDNBOOST_BIG_ENDIAN)
+    NDNBOOST_STATIC_CONSTANT(int, offset_ = 0);
+#elif defined(NDNBOOST_LITTLE_ENDIAN)
+    NDNBOOST_STATIC_CONSTANT(int, offset_ = 12);
 #else
-    BOOST_STATIC_ASSERT(false);
+    NDNBOOST_STATIC_ASSERT(false);
 #endif
 };
 
@@ -409,10 +409,10 @@
 {
     typedef ieee_copy_leading_bits_tag method;
 
-    BOOST_STATIC_CONSTANT(uint32_t, sign        = 0x80000000u);
-    BOOST_STATIC_CONSTANT(uint32_t, exponent    = 0x7fff0000);
-    BOOST_STATIC_CONSTANT(uint32_t, flag        = 0x00008000);
-    BOOST_STATIC_CONSTANT(uint32_t, significand = 0x00007fff);
+    NDNBOOST_STATIC_CONSTANT(uint32_t, sign        = 0x80000000u);
+    NDNBOOST_STATIC_CONSTANT(uint32_t, exponent    = 0x7fff0000);
+    NDNBOOST_STATIC_CONSTANT(uint32_t, flag        = 0x00008000);
+    NDNBOOST_STATIC_CONSTANT(uint32_t, significand = 0x00007fff);
 
     // copy 1st, 2nd, 5th and 6th byte. 3rd and 4th byte are padding.
 
@@ -445,10 +445,10 @@
 {
     typedef ieee_copy_leading_bits_tag method;
 
-    BOOST_STATIC_CONSTANT(uint32_t, sign        = 0x80000000u);
-    BOOST_STATIC_CONSTANT(uint32_t, exponent    = 0x7fff0000);
-    BOOST_STATIC_CONSTANT(uint32_t, flag        = 0x00000000);
-    BOOST_STATIC_CONSTANT(uint32_t, significand = 0x0000ffff);
+    NDNBOOST_STATIC_CONSTANT(uint32_t, sign        = 0x80000000u);
+    NDNBOOST_STATIC_CONSTANT(uint32_t, exponent    = 0x7fff0000);
+    NDNBOOST_STATIC_CONSTANT(uint32_t, flag        = 0x00000000);
+    NDNBOOST_STATIC_CONSTANT(uint32_t, significand = 0x0000ffff);
 
     typedef uint32_t bits;
 
@@ -464,12 +464,12 @@
 
 private:
 
-#if defined(BOOST_BIG_ENDIAN)
-    BOOST_STATIC_CONSTANT(int, offset_ = 0);
-#elif defined(BOOST_LITTLE_ENDIAN)
-    BOOST_STATIC_CONSTANT(int, offset_ = 12);
+#if defined(NDNBOOST_BIG_ENDIAN)
+    NDNBOOST_STATIC_CONSTANT(int, offset_ = 0);
+#elif defined(NDNBOOST_LITTLE_ENDIAN)
+    NDNBOOST_STATIC_CONSTANT(int, offset_ = 12);
 #else
-    BOOST_STATIC_ASSERT(false);
+    NDNBOOST_STATIC_ASSERT(false);
 #endif
 };
 
@@ -518,7 +518,7 @@
 template <class T>
 struct select_native
 {
-    typedef BOOST_DEDUCED_TYPENAME size_to_precision<sizeof(T), ::ndnboost::is_floating_point<T>::value>::type precision;
+    typedef NDNBOOST_DEDUCED_TYPENAME size_to_precision<sizeof(T), ::ndnboost::is_floating_point<T>::value>::type precision;
     typedef fp_traits_non_native<T, precision> type;
 };
 template<>
@@ -541,19 +541,19 @@
 
 // fp_traits is a type switch that selects the right fp_traits_non_native
 
-#if (defined(BOOST_MATH_USE_C99) && !(defined(__GNUC__) && (__GNUC__ < 4))) \
+#if (defined(NDNBOOST_MATH_USE_C99) && !(defined(__GNUC__) && (__GNUC__ < 4))) \
    && !defined(__hpux) \
    && !defined(__DECCXX)\
    && !defined(__osf__) \
    && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)\
-   && !defined(BOOST_MATH_DISABLE_STD_FPCLASSIFY)
-#  define BOOST_MATH_USE_STD_FPCLASSIFY
+   && !defined(NDNBOOST_MATH_DISABLE_STD_FPCLASSIFY)
+#  define NDNBOOST_MATH_USE_STD_FPCLASSIFY
 #endif
 
 template<class T> struct fp_traits
 {
-    typedef BOOST_DEDUCED_TYPENAME size_to_precision<sizeof(T), ::ndnboost::is_floating_point<T>::value>::type precision;
-#if defined(BOOST_MATH_USE_STD_FPCLASSIFY) && !defined(BOOST_MATH_DISABLE_STD_FPCLASSIFY)
+    typedef NDNBOOST_DEDUCED_TYPENAME size_to_precision<sizeof(T), ::ndnboost::is_floating_point<T>::value>::type precision;
+#if defined(NDNBOOST_MATH_USE_STD_FPCLASSIFY) && !defined(NDNBOOST_MATH_DISABLE_STD_FPCLASSIFY)
     typedef typename select_native<T>::type type;
 #else
     typedef fp_traits_non_native<T, precision> type;
diff --git a/include/ndnboost/math/special_functions/detail/round_fwd.hpp b/include/ndnboost/math/special_functions/detail/round_fwd.hpp
index 62d9390..80518c7 100644
--- a/include/ndnboost/math/special_functions/detail/round_fwd.hpp
+++ b/include/ndnboost/math/special_functions/detail/round_fwd.hpp
@@ -5,8 +5,8 @@
 // (See accompanying file LICENSE_1_0.txt
 // or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_MATH_SPECIAL_ROUND_FWD_HPP
-#define BOOST_MATH_SPECIAL_ROUND_FWD_HPP
+#ifndef NDNBOOST_MATH_SPECIAL_ROUND_FWD_HPP
+#define NDNBOOST_MATH_SPECIAL_ROUND_FWD_HPP
 
 #include <ndnboost/config.hpp>
 #include <ndnboost/math/tools/promotion.hpp>
@@ -32,7 +32,7 @@
    long ltrunc(const T& v, const Policy& pol);
    template <class T>
    long ltrunc(const T& v);
-#ifdef BOOST_HAS_LONG_LONG
+#ifdef NDNBOOST_HAS_LONG_LONG
    template <class T, class Policy>
    ndnboost::long_long_type lltrunc(const T& v, const Policy& pol);
    template <class T>
@@ -50,7 +50,7 @@
    long lround(const T& v, const Policy& pol);
    template <class T>
    long lround(const T& v);
-#ifdef BOOST_HAS_LONG_LONG
+#ifdef NDNBOOST_HAS_LONG_LONG
    template <class T, class Policy>
    ndnboost::long_long_type llround(const T& v, const Policy& pol);
    template <class T>
@@ -68,7 +68,7 @@
    T modf(const T& v, long* ipart, const Policy& pol);
    template <class T>
    T modf(const T& v, long* ipart);
-#ifdef BOOST_HAS_LONG_LONG
+#ifdef NDNBOOST_HAS_LONG_LONG
    template <class T, class Policy>
    T modf(const T& v, ndnboost::long_long_type* ipart, const Policy& pol);
    template <class T>
@@ -78,8 +78,8 @@
    }
 }
 
-#undef BOOST_MATH_STD_USING
-#define BOOST_MATH_STD_USING BOOST_MATH_STD_USING_CORE\
+#undef NDNBOOST_MATH_STD_USING
+#define NDNBOOST_MATH_STD_USING NDNBOOST_MATH_STD_USING_CORE\
    using ndnboost::math::round;\
    using ndnboost::math::iround;\
    using ndnboost::math::lround;\
@@ -89,5 +89,5 @@
    using ndnboost::math::modf;
 
 
-#endif // BOOST_MATH_SPECIAL_ROUND_FWD_HPP
+#endif // NDNBOOST_MATH_SPECIAL_ROUND_FWD_HPP
 
diff --git a/include/ndnboost/math/special_functions/fpclassify.hpp b/include/ndnboost/math/special_functions/fpclassify.hpp
index 0eeea57..7b4b193 100644
--- a/include/ndnboost/math/special_functions/fpclassify.hpp
+++ b/include/ndnboost/math/special_functions/fpclassify.hpp
@@ -4,8 +4,8 @@
 //  Boost Software License, Version 1.0. (See accompanying file
 //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_MATH_FPCLASSIFY_HPP
-#define BOOST_MATH_FPCLASSIFY_HPP
+#ifndef NDNBOOST_MATH_FPCLASSIFY_HPP
+#define NDNBOOST_MATH_FPCLASSIFY_HPP
 
 #ifdef _MSC_VER
 #pragma once
@@ -81,7 +81,7 @@
 #include <float.h>
 #endif
 
-#ifdef BOOST_NO_STDC_NAMESPACE
+#ifdef NDNBOOST_NO_STDC_NAMESPACE
   namespace std{ using ::abs; using ::fabs; }
 #endif
 
@@ -94,7 +94,7 @@
 //
 namespace math_detail{
 
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
 #pragma warning(push)
 #pragma warning(disable:4800)
 #endif
@@ -104,15 +104,15 @@
 {
 #ifdef isnan
    return isnan(t);
-#elif defined(BOOST_MATH_DISABLE_STD_FPCLASSIFY) || !defined(BOOST_HAS_FPCLASSIFY)
+#elif defined(NDNBOOST_MATH_DISABLE_STD_FPCLASSIFY) || !defined(NDNBOOST_HAS_FPCLASSIFY)
    (void)t;
    return false;
-#else // BOOST_HAS_FPCLASSIFY
-   return (BOOST_FPCLASSIFY_PREFIX fpclassify(t) == (int)FP_NAN);
+#else // NDNBOOST_HAS_FPCLASSIFY
+   return (NDNBOOST_FPCLASSIFY_PREFIX fpclassify(t) == (int)FP_NAN);
 #endif
 }
 
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
 #pragma warning(pop)
 #endif
 
@@ -128,21 +128,21 @@
 
 namespace detail{
 
-#ifdef BOOST_MATH_USE_STD_FPCLASSIFY
+#ifdef NDNBOOST_MATH_USE_STD_FPCLASSIFY
 template <class T>
-inline int fpclassify_imp BOOST_NO_MACRO_EXPAND(T t, const native_tag&)
+inline int fpclassify_imp NDNBOOST_NO_MACRO_EXPAND(T t, const native_tag&)
 {
    return (std::fpclassify)(t);
 }
 #endif
 
 template <class T>
-inline int fpclassify_imp BOOST_NO_MACRO_EXPAND(T t, const generic_tag<true>&)
+inline int fpclassify_imp NDNBOOST_NO_MACRO_EXPAND(T t, const generic_tag<true>&)
 {
-   BOOST_MATH_INSTRUMENT_VARIABLE(t);
+   NDNBOOST_MATH_INSTRUMENT_VARIABLE(t);
 
    // whenever possible check for Nan's first:
-#if defined(BOOST_HAS_FPCLASSIFY)  && !defined(BOOST_MATH_DISABLE_STD_FPCLASSIFY)
+#if defined(NDNBOOST_HAS_FPCLASSIFY)  && !defined(NDNBOOST_MATH_DISABLE_STD_FPCLASSIFY)
    if(::ndnboost::math_detail::is_nan_helper(t, ::ndnboost::is_floating_point<T>()))
       return FP_NAN;
 #elif defined(isnan)
@@ -173,9 +173,9 @@
 }
 
 template <class T>
-inline int fpclassify_imp BOOST_NO_MACRO_EXPAND(T t, const generic_tag<false>&)
+inline int fpclassify_imp NDNBOOST_NO_MACRO_EXPAND(T t, const generic_tag<false>&)
 {
-#ifdef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+#ifdef NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
    if(std::numeric_limits<T>::is_specialized)
       return fpclassify_imp(t, generic_tag<true>());
 #endif
@@ -183,24 +183,24 @@
    // An unknown type with no numeric_limits support,
    // so what are we supposed to do we do here?
    //
-   BOOST_MATH_INSTRUMENT_VARIABLE(t);
+   NDNBOOST_MATH_INSTRUMENT_VARIABLE(t);
 
    return t == 0 ? FP_ZERO : FP_NORMAL;
 }
 
 template<class T>
-int fpclassify_imp BOOST_NO_MACRO_EXPAND(T x, ieee_copy_all_bits_tag)
+int fpclassify_imp NDNBOOST_NO_MACRO_EXPAND(T x, ieee_copy_all_bits_tag)
 {
-   typedef BOOST_DEDUCED_TYPENAME fp_traits<T>::type traits;
+   typedef NDNBOOST_DEDUCED_TYPENAME fp_traits<T>::type traits;
 
-   BOOST_MATH_INSTRUMENT_VARIABLE(x);
+   NDNBOOST_MATH_INSTRUMENT_VARIABLE(x);
 
-   BOOST_DEDUCED_TYPENAME traits::bits a;
+   NDNBOOST_DEDUCED_TYPENAME traits::bits a;
    traits::get_bits(x,a);
-   BOOST_MATH_INSTRUMENT_VARIABLE(a);
+   NDNBOOST_MATH_INSTRUMENT_VARIABLE(a);
    a &= traits::exponent | traits::flag | traits::significand;
-   BOOST_MATH_INSTRUMENT_VARIABLE((traits::exponent | traits::flag | traits::significand));
-   BOOST_MATH_INSTRUMENT_VARIABLE(a);
+   NDNBOOST_MATH_INSTRUMENT_VARIABLE((traits::exponent | traits::flag | traits::significand));
+   NDNBOOST_MATH_INSTRUMENT_VARIABLE(a);
 
    if(a <= traits::significand) {
       if(a == 0)
@@ -218,13 +218,13 @@
 }
 
 template<class T>
-int fpclassify_imp BOOST_NO_MACRO_EXPAND(T x, ieee_copy_leading_bits_tag)
+int fpclassify_imp NDNBOOST_NO_MACRO_EXPAND(T x, ieee_copy_leading_bits_tag)
 {
-   typedef BOOST_DEDUCED_TYPENAME fp_traits<T>::type traits;
+   typedef NDNBOOST_DEDUCED_TYPENAME fp_traits<T>::type traits;
 
-   BOOST_MATH_INSTRUMENT_VARIABLE(x);
+   NDNBOOST_MATH_INSTRUMENT_VARIABLE(x);
 
-   BOOST_DEDUCED_TYPENAME traits::bits a;
+   NDNBOOST_DEDUCED_TYPENAME traits::bits a;
    traits::get_bits(x,a);
    a &= traits::exponent | traits::flag | traits::significand;
 
@@ -244,8 +244,8 @@
    return FP_NAN;
 }
 
-#if defined(BOOST_MATH_USE_STD_FPCLASSIFY) && (defined(BOOST_MATH_NO_NATIVE_LONG_DOUBLE_FP_CLASSIFY) || defined(BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS))
-inline int fpclassify_imp BOOST_NO_MACRO_EXPAND(long double t, const native_tag&)
+#if defined(NDNBOOST_MATH_USE_STD_FPCLASSIFY) && (defined(NDNBOOST_MATH_NO_NATIVE_LONG_DOUBLE_FP_CLASSIFY) || defined(NDNBOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS))
+inline int fpclassify_imp NDNBOOST_NO_MACRO_EXPAND(long double t, const native_tag&)
 {
    return ndnboost::math::detail::fpclassify_imp(t, generic_tag<true>());
 }
@@ -254,12 +254,12 @@
 }  // namespace detail
 
 template <class T>
-inline int fpclassify BOOST_NO_MACRO_EXPAND(T t)
+inline int fpclassify NDNBOOST_NO_MACRO_EXPAND(T t)
 {
    typedef typename detail::fp_traits<T>::type traits;
    typedef typename traits::method method;
    typedef typename tools::promote_args<T>::type value_type;
-#ifdef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+#ifdef NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
    if(std::numeric_limits<T>::is_specialized && detail::is_generic_tag_false(static_cast<method*>(0)))
       return detail::fpclassify_imp(static_cast<value_type>(t), detail::generic_tag<true>());
    return detail::fpclassify_imp(static_cast<value_type>(t), method());
@@ -268,14 +268,14 @@
 #endif
 }
 
-#ifdef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+#ifdef NDNBOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
 template <>
-inline int fpclassify<long double> BOOST_NO_MACRO_EXPAND(long double t)
+inline int fpclassify<long double> NDNBOOST_NO_MACRO_EXPAND(long double t)
 {
    typedef detail::fp_traits<long double>::type traits;
    typedef traits::method method;
    typedef long double value_type;
-#ifdef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+#ifdef NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
    if(std::numeric_limits<long double>::is_specialized && detail::is_generic_tag_false(static_cast<method*>(0)))
       return detail::fpclassify_imp(static_cast<value_type>(t), detail::generic_tag<true>());
    return detail::fpclassify_imp(static_cast<value_type>(t), method());
@@ -287,7 +287,7 @@
 
 namespace detail {
 
-#ifdef BOOST_MATH_USE_STD_FPCLASSIFY
+#ifdef NDNBOOST_MATH_USE_STD_FPCLASSIFY
     template<class T>
     inline bool isfinite_impl(T x, native_tag const&)
     {
@@ -305,7 +305,7 @@
     template<class T>
     inline bool isfinite_impl(T x, generic_tag<false> const&)
     {
-#ifdef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+#ifdef NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
       if(std::numeric_limits<T>::is_specialized)
          return isfinite_impl(x, generic_tag<true>());
 #endif
@@ -316,15 +316,15 @@
     template<class T>
     inline bool isfinite_impl(T x, ieee_tag const&)
     {
-        typedef BOOST_DEDUCED_TYPENAME detail::fp_traits<T>::type traits;
-        BOOST_DEDUCED_TYPENAME traits::bits a;
+        typedef NDNBOOST_DEDUCED_TYPENAME detail::fp_traits<T>::type traits;
+        NDNBOOST_DEDUCED_TYPENAME traits::bits a;
         traits::get_bits(x,a);
         a &= traits::exponent;
         return a != traits::exponent;
     }
 
-#if defined(BOOST_MATH_USE_STD_FPCLASSIFY) && defined(BOOST_MATH_NO_NATIVE_LONG_DOUBLE_FP_CLASSIFY)
-inline bool isfinite_impl BOOST_NO_MACRO_EXPAND(long double t, const native_tag&)
+#if defined(NDNBOOST_MATH_USE_STD_FPCLASSIFY) && defined(NDNBOOST_MATH_NO_NATIVE_LONG_DOUBLE_FP_CLASSIFY)
+inline bool isfinite_impl NDNBOOST_NO_MACRO_EXPAND(long double t, const native_tag&)
 {
    return ndnboost::math::detail::isfinite_impl(t, generic_tag<true>());
 }
@@ -342,7 +342,7 @@
    return detail::isfinite_impl(static_cast<value_type>(x), method());
 }
 
-#ifdef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+#ifdef NDNBOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
 template<>
 inline bool (isfinite)(long double x)
 { //!< \brief return true if floating-point type t is finite.
@@ -358,7 +358,7 @@
 
 namespace detail {
 
-#ifdef BOOST_MATH_USE_STD_FPCLASSIFY
+#ifdef NDNBOOST_MATH_USE_STD_FPCLASSIFY
     template<class T>
     inline bool isnormal_impl(T x, native_tag const&)
     {
@@ -377,7 +377,7 @@
     template<class T>
     inline bool isnormal_impl(T x, generic_tag<false> const&)
     {
-#ifdef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+#ifdef NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
       if(std::numeric_limits<T>::is_specialized)
          return isnormal_impl(x, generic_tag<true>());
 #endif
@@ -387,15 +387,15 @@
     template<class T>
     inline bool isnormal_impl(T x, ieee_tag const&)
     {
-        typedef BOOST_DEDUCED_TYPENAME detail::fp_traits<T>::type traits;
-        BOOST_DEDUCED_TYPENAME traits::bits a;
+        typedef NDNBOOST_DEDUCED_TYPENAME detail::fp_traits<T>::type traits;
+        NDNBOOST_DEDUCED_TYPENAME traits::bits a;
         traits::get_bits(x,a);
         a &= traits::exponent | traits::flag;
         return (a != 0) && (a < traits::exponent);
     }
 
-#if defined(BOOST_MATH_USE_STD_FPCLASSIFY) && defined(BOOST_MATH_NO_NATIVE_LONG_DOUBLE_FP_CLASSIFY)
-inline bool isnormal_impl BOOST_NO_MACRO_EXPAND(long double t, const native_tag&)
+#if defined(NDNBOOST_MATH_USE_STD_FPCLASSIFY) && defined(NDNBOOST_MATH_NO_NATIVE_LONG_DOUBLE_FP_CLASSIFY)
+inline bool isnormal_impl NDNBOOST_NO_MACRO_EXPAND(long double t, const native_tag&)
 {
    return ndnboost::math::detail::isnormal_impl(t, generic_tag<true>());
 }
@@ -413,7 +413,7 @@
    return detail::isnormal_impl(static_cast<value_type>(x), method());
 }
 
-#ifdef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+#ifdef NDNBOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
 template<>
 inline bool (isnormal)(long double x)
 {
@@ -429,7 +429,7 @@
 
 namespace detail {
 
-#ifdef BOOST_MATH_USE_STD_FPCLASSIFY
+#ifdef NDNBOOST_MATH_USE_STD_FPCLASSIFY
     template<class T>
     inline bool isinf_impl(T x, native_tag const&)
     {
@@ -449,7 +449,7 @@
     template<class T>
     inline bool isinf_impl(T x, generic_tag<false> const&)
     {
-#ifdef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+#ifdef NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
       if(std::numeric_limits<T>::is_specialized)
          return isinf_impl(x, generic_tag<true>());
 #endif
@@ -460,9 +460,9 @@
     template<class T>
     inline bool isinf_impl(T x, ieee_copy_all_bits_tag const&)
     {
-        typedef BOOST_DEDUCED_TYPENAME fp_traits<T>::type traits;
+        typedef NDNBOOST_DEDUCED_TYPENAME fp_traits<T>::type traits;
 
-        BOOST_DEDUCED_TYPENAME traits::bits a;
+        NDNBOOST_DEDUCED_TYPENAME traits::bits a;
         traits::get_bits(x,a);
         a &= traits::exponent | traits::significand;
         return a == traits::exponent;
@@ -471,9 +471,9 @@
     template<class T>
     inline bool isinf_impl(T x, ieee_copy_leading_bits_tag const&)
     {
-        typedef BOOST_DEDUCED_TYPENAME fp_traits<T>::type traits;
+        typedef NDNBOOST_DEDUCED_TYPENAME fp_traits<T>::type traits;
 
-        BOOST_DEDUCED_TYPENAME traits::bits a;
+        NDNBOOST_DEDUCED_TYPENAME traits::bits a;
         traits::get_bits(x,a);
         a &= traits::exponent | traits::significand;
         if(a != traits::exponent)
@@ -483,8 +483,8 @@
         return x == 0;
     }
 
-#if defined(BOOST_MATH_USE_STD_FPCLASSIFY) && defined(BOOST_MATH_NO_NATIVE_LONG_DOUBLE_FP_CLASSIFY)
-inline bool isinf_impl BOOST_NO_MACRO_EXPAND(long double t, const native_tag&)
+#if defined(NDNBOOST_MATH_USE_STD_FPCLASSIFY) && defined(NDNBOOST_MATH_NO_NATIVE_LONG_DOUBLE_FP_CLASSIFY)
+inline bool isinf_impl NDNBOOST_NO_MACRO_EXPAND(long double t, const native_tag&)
 {
    return ndnboost::math::detail::isinf_impl(t, generic_tag<true>());
 }
@@ -502,7 +502,7 @@
    return detail::isinf_impl(static_cast<value_type>(x), method());
 }
 
-#ifdef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+#ifdef NDNBOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
 template<>
 inline bool (isinf)(long double x)
 {
@@ -518,7 +518,7 @@
 
 namespace detail {
 
-#ifdef BOOST_MATH_USE_STD_FPCLASSIFY
+#ifdef NDNBOOST_MATH_USE_STD_FPCLASSIFY
     template<class T>
     inline bool isnan_impl(T x, native_tag const&)
     {
@@ -537,7 +537,7 @@
     template<class T>
     inline bool isnan_impl(T x, generic_tag<false> const&)
     {
-#ifdef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+#ifdef NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
       if(std::numeric_limits<T>::is_specialized)
          return isnan_impl(x, generic_tag<true>());
 #endif
@@ -548,9 +548,9 @@
     template<class T>
     inline bool isnan_impl(T x, ieee_copy_all_bits_tag const&)
     {
-        typedef BOOST_DEDUCED_TYPENAME fp_traits<T>::type traits;
+        typedef NDNBOOST_DEDUCED_TYPENAME fp_traits<T>::type traits;
 
-        BOOST_DEDUCED_TYPENAME traits::bits a;
+        NDNBOOST_DEDUCED_TYPENAME traits::bits a;
         traits::get_bits(x,a);
         a &= traits::exponent | traits::significand;
         return a > traits::exponent;
@@ -559,9 +559,9 @@
     template<class T>
     inline bool isnan_impl(T x, ieee_copy_leading_bits_tag const&)
     {
-        typedef BOOST_DEDUCED_TYPENAME fp_traits<T>::type traits;
+        typedef NDNBOOST_DEDUCED_TYPENAME fp_traits<T>::type traits;
 
-        BOOST_DEDUCED_TYPENAME traits::bits a;
+        NDNBOOST_DEDUCED_TYPENAME traits::bits a;
         traits::get_bits(x,a);
 
         a &= traits::exponent | traits::significand;
@@ -585,10 +585,10 @@
 }
 
 #ifdef isnan
-template <> inline bool isnan BOOST_NO_MACRO_EXPAND<float>(float t){ return ::ndnboost::math_detail::is_nan_helper(t, ndnboost::true_type()); }
-template <> inline bool isnan BOOST_NO_MACRO_EXPAND<double>(double t){ return ::ndnboost::math_detail::is_nan_helper(t, ndnboost::true_type()); }
-template <> inline bool isnan BOOST_NO_MACRO_EXPAND<long double>(long double t){ return ::ndnboost::math_detail::is_nan_helper(t, ndnboost::true_type()); }
-#elif defined(BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS)
+template <> inline bool isnan NDNBOOST_NO_MACRO_EXPAND<float>(float t){ return ::ndnboost::math_detail::is_nan_helper(t, ndnboost::true_type()); }
+template <> inline bool isnan NDNBOOST_NO_MACRO_EXPAND<double>(double t){ return ::ndnboost::math_detail::is_nan_helper(t, ndnboost::true_type()); }
+template <> inline bool isnan NDNBOOST_NO_MACRO_EXPAND<long double>(long double t){ return ::ndnboost::math_detail::is_nan_helper(t, ndnboost::true_type()); }
+#elif defined(NDNBOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS)
 template<>
 inline bool (isnan)(long double x)
 { //!< \brief return true if floating-point type t is NaN (Not A Number).
@@ -602,5 +602,5 @@
 } // namespace math
 } // namespace ndnboost
 
-#endif // BOOST_MATH_FPCLASSIFY_HPP
+#endif // NDNBOOST_MATH_FPCLASSIFY_HPP
 
diff --git a/include/ndnboost/math/special_functions/math_fwd.hpp b/include/ndnboost/math/special_functions/math_fwd.hpp
index aeb7b4c..d4e1867 100644
--- a/include/ndnboost/math/special_functions/math_fwd.hpp
+++ b/include/ndnboost/math/special_functions/math_fwd.hpp
@@ -16,8 +16,8 @@
 // RT = Real type (built-in floating-point types, float, double, long double) & User Defined Types
 // AT = Integer or Real type
 
-#ifndef BOOST_MATH_SPECIAL_MATH_FWD_HPP
-#define BOOST_MATH_SPECIAL_MATH_FWD_HPP
+#ifndef NDNBOOST_MATH_SPECIAL_MATH_FWD_HPP
+#define NDNBOOST_MATH_SPECIAL_MATH_FWD_HPP
 
 #ifdef _MSC_VER
 #pragma once
@@ -29,7 +29,7 @@
 #include <ndnboost/mpl/comparison.hpp>
 #include <ndnboost/config/no_tr1/complex.hpp>
 
-#define BOOST_NO_MACRO_EXPAND /**/
+#define NDNBOOST_NO_MACRO_EXPAND /**/
 
 namespace ndnboost
 {
@@ -349,7 +349,7 @@
    template <class RT, class Policy>
    RT factorial(unsigned int, const Policy& pol);
    template <class RT>
-   RT unchecked_factorial(unsigned int BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_TYPE(RT));
+   RT unchecked_factorial(unsigned int NDNBOOST_MATH_APPEND_EXPLICIT_TEMPLATE_TYPE(RT));
    template <class RT>
    RT double_factorial(unsigned i);
    template <class RT, class Policy>
@@ -747,31 +747,31 @@
    typename tools::promote_args<T>::type cos_pi(T x);
 
    template <class T>
-   int fpclassify BOOST_NO_MACRO_EXPAND(T t);
+   int fpclassify NDNBOOST_NO_MACRO_EXPAND(T t);
 
    template <class T>
-   bool isfinite BOOST_NO_MACRO_EXPAND(T z);
+   bool isfinite NDNBOOST_NO_MACRO_EXPAND(T z);
 
    template <class T>
-   bool isinf BOOST_NO_MACRO_EXPAND(T t);
+   bool isinf NDNBOOST_NO_MACRO_EXPAND(T t);
 
    template <class T>
-   bool isnan BOOST_NO_MACRO_EXPAND(T t);
+   bool isnan NDNBOOST_NO_MACRO_EXPAND(T t);
 
    template <class T>
-   bool isnormal BOOST_NO_MACRO_EXPAND(T t);
+   bool isnormal NDNBOOST_NO_MACRO_EXPAND(T t);
 
    template<class T>
-   int signbit BOOST_NO_MACRO_EXPAND(T x);
+   int signbit NDNBOOST_NO_MACRO_EXPAND(T x);
 
    template <class T>
-   int sign BOOST_NO_MACRO_EXPAND(const T& z);
+   int sign NDNBOOST_NO_MACRO_EXPAND(const T& z);
 
    template <class T, class U>
-   typename tools::promote_args<T, U>::type copysign BOOST_NO_MACRO_EXPAND(const T& x, const U& y);
+   typename tools::promote_args<T, U>::type copysign NDNBOOST_NO_MACRO_EXPAND(const T& x, const U& y);
 
    template <class T>
-   typename tools::promote_args<T>::type changesign BOOST_NO_MACRO_EXPAND(const T& z);
+   typename tools::promote_args<T>::type changesign NDNBOOST_NO_MACRO_EXPAND(const T& z);
 
    // Exponential integrals:
    namespace detail{
@@ -923,8 +923,8 @@
     } // namespace math
 } // namespace ndnboost
 
-#ifdef BOOST_HAS_LONG_LONG
-#define BOOST_MATH_DETAIL_LL_FUNC(Policy)\
+#ifdef NDNBOOST_HAS_LONG_LONG
+#define NDNBOOST_MATH_DETAIL_LL_FUNC(Policy)\
    \
    template <class T>\
    inline T modf(const T& v, ndnboost::long_long_type* ipart){ using ndnboost::math::modf; return modf(v, ipart, Policy()); }\
@@ -936,12 +936,12 @@
    inline ndnboost::long_long_type llround(const T& v){ using ndnboost::math::llround; return llround(v, Policy()); }\
 
 #else
-#define BOOST_MATH_DETAIL_LL_FUNC(Policy)
+#define NDNBOOST_MATH_DETAIL_LL_FUNC(Policy)
 #endif
 
-#define BOOST_MATH_DECLARE_SPECIAL_FUNCTIONS(Policy)\
+#define NDNBOOST_MATH_DECLARE_SPECIAL_FUNCTIONS(Policy)\
    \
-   BOOST_MATH_DETAIL_LL_FUNC(Policy)\
+   NDNBOOST_MATH_DETAIL_LL_FUNC(Policy)\
    \
    template <class RT1, class RT2>\
    inline typename ndnboost::math::tools::promote_args<RT1, RT2>::type \
@@ -1403,6 +1403,6 @@
 
 
 
-#endif // BOOST_MATH_SPECIAL_MATH_FWD_HPP
+#endif // NDNBOOST_MATH_SPECIAL_MATH_FWD_HPP
 
 
diff --git a/include/ndnboost/math/special_functions/sign.hpp b/include/ndnboost/math/special_functions/sign.hpp
index fecacfb..e0fbd9e 100644
--- a/include/ndnboost/math/special_functions/sign.hpp
+++ b/include/ndnboost/math/special_functions/sign.hpp
@@ -6,8 +6,8 @@
 //  Boost Software License, Version 1.0. (See accompanying file
 //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_MATH_TOOLS_SIGN_HPP
-#define BOOST_MATH_TOOLS_SIGN_HPP
+#ifndef NDNBOOST_MATH_TOOLS_SIGN_HPP
+#define NDNBOOST_MATH_TOOLS_SIGN_HPP
 
 #ifdef _MSC_VER
 #pragma once
@@ -23,7 +23,7 @@
 
   // signbit
 
-#ifdef BOOST_MATH_USE_STD_FPCLASSIFY
+#ifdef NDNBOOST_MATH_USE_STD_FPCLASSIFY
     template<class T> 
     inline int signbit_impl(T x, native_tag const&)
     {
@@ -46,9 +46,9 @@
     template<class T> 
     inline int signbit_impl(T x, ieee_copy_all_bits_tag const&)
     {
-        typedef BOOST_DEDUCED_TYPENAME fp_traits<T>::type traits;
+        typedef NDNBOOST_DEDUCED_TYPENAME fp_traits<T>::type traits;
 
-        BOOST_DEDUCED_TYPENAME traits::bits a;
+        NDNBOOST_DEDUCED_TYPENAME traits::bits a;
         traits::get_bits(x,a);
         return a & traits::sign ? 1 : 0;
     }
@@ -56,9 +56,9 @@
     template<class T> 
     inline int signbit_impl(T x, ieee_copy_leading_bits_tag const&)
     {
-        typedef BOOST_DEDUCED_TYPENAME fp_traits<T>::type traits;
+        typedef NDNBOOST_DEDUCED_TYPENAME fp_traits<T>::type traits;
 
-        BOOST_DEDUCED_TYPENAME traits::bits a;
+        NDNBOOST_DEDUCED_TYPENAME traits::bits a;
         traits::get_bits(x,a);
 
         return a & traits::sign ? 1 : 0;
@@ -82,9 +82,9 @@
     template<class T>
     inline T changesign_impl(T x, ieee_copy_all_bits_tag const&)
     {
-        typedef BOOST_DEDUCED_TYPENAME fp_traits<T>::sign_change_type traits;
+        typedef NDNBOOST_DEDUCED_TYPENAME fp_traits<T>::sign_change_type traits;
 
-        BOOST_DEDUCED_TYPENAME traits::bits a;
+        NDNBOOST_DEDUCED_TYPENAME traits::bits a;
         traits::get_bits(x,a);
         a ^= traits::sign;
         traits::set_bits(x,a);
@@ -94,9 +94,9 @@
     template<class T>
     inline T (changesign_impl)(T x, ieee_copy_leading_bits_tag const&)
     {
-        typedef BOOST_DEDUCED_TYPENAME fp_traits<T>::sign_change_type traits;
+        typedef NDNBOOST_DEDUCED_TYPENAME fp_traits<T>::sign_change_type traits;
 
-        BOOST_DEDUCED_TYPENAME traits::bits a;
+        NDNBOOST_DEDUCED_TYPENAME traits::bits a;
         traits::get_bits(x,a);
         a ^= traits::sign;
         traits::set_bits(x,a);
@@ -116,7 +116,7 @@
 }
 
 template <class T>
-inline int sign BOOST_NO_MACRO_EXPAND(const T& z)
+inline int sign NDNBOOST_NO_MACRO_EXPAND(const T& z)
 {
    return (z == 0) ? 0 : (ndnboost::math::signbit)(z) ? -1 : 1;
 }
@@ -133,9 +133,9 @@
 
 template <class T, class U>
 inline typename tools::promote_args<T, U>::type 
-   copysign BOOST_NO_MACRO_EXPAND(const T& x, const U& y)
+   copysign NDNBOOST_NO_MACRO_EXPAND(const T& x, const U& y)
 {
-   BOOST_MATH_STD_USING
+   NDNBOOST_MATH_STD_USING
    typedef typename tools::promote_args<T, U>::type result_type;
    return (ndnboost::math::signbit)(static_cast<result_type>(x)) != (ndnboost::math::signbit)(static_cast<result_type>(y)) 
       ? (ndnboost::math::changesign)(static_cast<result_type>(x)) : static_cast<result_type>(x);
@@ -145,6 +145,6 @@
 } // namespace ndnboost
 
 
-#endif // BOOST_MATH_TOOLS_SIGN_HPP
+#endif // NDNBOOST_MATH_TOOLS_SIGN_HPP
 
 
diff --git a/include/ndnboost/math/tools/config.hpp b/include/ndnboost/math/tools/config.hpp
index 8a2178c..77f03a5 100644
--- a/include/ndnboost/math/tools/config.hpp
+++ b/include/ndnboost/math/tools/config.hpp
@@ -3,8 +3,8 @@
 //  Boost Software License, Version 1.0. (See accompanying file
 //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_MATH_TOOLS_CONFIG_HPP
-#define BOOST_MATH_TOOLS_CONFIG_HPP
+#ifndef NDNBOOST_MATH_TOOLS_CONFIG_HPP
+#define NDNBOOST_MATH_TOOLS_CONFIG_HPP
 
 #ifdef _MSC_VER
 #pragma once
@@ -25,18 +25,18 @@
 
 #if (defined(__CYGWIN__) || defined(__FreeBSD__) || defined(__NetBSD__) \
    || (defined(__hppa) && !defined(__OpenBSD__)) || (defined(__NO_LONG_DOUBLE_MATH) && (DBL_MANT_DIG != LDBL_MANT_DIG))) \
-   && !defined(BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS)
-#  define BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+   && !defined(NDNBOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS)
+#  define NDNBOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
 #endif
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582))
+#if NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x582))
 //
 // Borland post 5.8.2 uses Dinkumware's std C lib which
 // doesn't have true long double precision.  Earlier
 // versions are problematic too:
 //
-#  define BOOST_MATH_NO_REAL_CONCEPT_TESTS
-#  define BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
-#  define BOOST_MATH_CONTROL_FP _control87(MCW_EM,MCW_EM)
+#  define NDNBOOST_MATH_NO_REAL_CONCEPT_TESTS
+#  define NDNBOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+#  define NDNBOOST_MATH_CONTROL_FP _control87(MCW_EM,MCW_EM)
 #  include <float.h>
 #endif
 #ifdef __IBMCPP__
@@ -44,16 +44,16 @@
 // For reasons I don't unserstand, the tests with IMB's compiler all
 // pass at long double precision, but fail with real_concept, those tests
 // are disabled for now.  (JM 2012).
-#  define BOOST_MATH_NO_REAL_CONCEPT_TESTS
+#  define NDNBOOST_MATH_NO_REAL_CONCEPT_TESTS
 #endif
-#if (defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__)) && ((LDBL_MANT_DIG == 106) || (__LDBL_MANT_DIG__ == 106)) && !defined(BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS)
+#if (defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__)) && ((LDBL_MANT_DIG == 106) || (__LDBL_MANT_DIG__ == 106)) && !defined(NDNBOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS)
 //
 // Darwin's rather strange "double double" is rather hard to
 // support, it should be possible given enough effort though...
 //
-#  define BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+#  define NDNBOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
 #endif
-#if defined(unix) && defined(__INTEL_COMPILER) && (__INTEL_COMPILER <= 1000) && !defined(BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS)
+#if defined(unix) && defined(__INTEL_COMPILER) && (__INTEL_COMPILER <= 1000) && !defined(NDNBOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS)
 //
 // Intel compiler prior to version 10 has sporadic problems
 // calling the long double overloads of the std lib math functions:
@@ -66,7 +66,7 @@
 // Comment out this #define and try building the tests to determine whether
 // your Intel compiler version has this issue or not.
 //
-#  define BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+#  define NDNBOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
 #endif
 #if defined(unix) && defined(__INTEL_COMPILER)
 //
@@ -74,166 +74,166 @@
 // the exact OS version used.  Use our own code for this as we know it works
 // well on Intel processors:
 //
-#define BOOST_MATH_DISABLE_STD_FPCLASSIFY
+#define NDNBOOST_MATH_DISABLE_STD_FPCLASSIFY
 #endif
 
-#if defined(BOOST_MSVC) && !defined(_WIN32_WCE)
+#if defined(NDNBOOST_MSVC) && !defined(_WIN32_WCE)
    // Better safe than sorry, our tests don't support hardware exceptions:
-#  define BOOST_MATH_CONTROL_FP _control87(MCW_EM,MCW_EM)
+#  define NDNBOOST_MATH_CONTROL_FP _control87(MCW_EM,MCW_EM)
 #endif
 
 #ifdef __IBMCPP__
-#  define BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS
+#  define NDNBOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS
 #endif
 
 #if (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901))
-#  define BOOST_MATH_USE_C99
+#  define NDNBOOST_MATH_USE_C99
 #endif
 
 #if (defined(__hpux) && !defined(__hppa))
-#  define BOOST_MATH_USE_C99
+#  define NDNBOOST_MATH_USE_C99
 #endif
 
 #if defined(__GNUC__) && defined(_GLIBCXX_USE_C99)
-#  define BOOST_MATH_USE_C99
+#  define NDNBOOST_MATH_USE_C99
 #endif
 
 #if defined(_LIBCPP_VERSION) && !defined(_MSC_VER)
-#  define BOOST_MATH_USE_C99
+#  define NDNBOOST_MATH_USE_C99
 #endif
 
-#if defined(__CYGWIN__) || defined(__HP_aCC) || defined(BOOST_INTEL) \
-  || defined(BOOST_NO_NATIVE_LONG_DOUBLE_FP_CLASSIFY) \
-  || (defined(__GNUC__) && !defined(BOOST_MATH_USE_C99))\
-  || defined(BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS)
-#  define BOOST_MATH_NO_NATIVE_LONG_DOUBLE_FP_CLASSIFY
+#if defined(__CYGWIN__) || defined(__HP_aCC) || defined(NDNBOOST_INTEL) \
+  || defined(NDNBOOST_NO_NATIVE_LONG_DOUBLE_FP_CLASSIFY) \
+  || (defined(__GNUC__) && !defined(NDNBOOST_MATH_USE_C99))\
+  || defined(NDNBOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS)
+#  define NDNBOOST_MATH_NO_NATIVE_LONG_DOUBLE_FP_CLASSIFY
 #endif
 
-#if defined(BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS) || BOOST_WORKAROUND(__SUNPRO_CC, <= 0x590)
+#if defined(NDNBOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS) || NDNBOOST_WORKAROUND(__SUNPRO_CC, <= 0x590)
 
 #  include "ndnboost/type.hpp"
 #  include "ndnboost/non_type.hpp"
 
-#  define BOOST_MATH_EXPLICIT_TEMPLATE_TYPE(t)         ndnboost::type<t>* = 0
-#  define BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(t)    ndnboost::type<t>*
-#  define BOOST_MATH_EXPLICIT_TEMPLATE_NON_TYPE(t, v)  ndnboost::non_type<t, v>* = 0
-#  define BOOST_MATH_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)  ndnboost::non_type<t, v>*
+#  define NDNBOOST_MATH_EXPLICIT_TEMPLATE_TYPE(t)         ndnboost::type<t>* = 0
+#  define NDNBOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(t)    ndnboost::type<t>*
+#  define NDNBOOST_MATH_EXPLICIT_TEMPLATE_NON_TYPE(t, v)  ndnboost::non_type<t, v>* = 0
+#  define NDNBOOST_MATH_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)  ndnboost::non_type<t, v>*
 
-#  define BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_TYPE(t)         \
-             , BOOST_MATH_EXPLICIT_TEMPLATE_TYPE(t)
-#  define BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(t)    \
-             , BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
-#  define BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t, v)  \
-             , BOOST_MATH_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
-#  define BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)  \
-             , BOOST_MATH_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
+#  define NDNBOOST_MATH_APPEND_EXPLICIT_TEMPLATE_TYPE(t)         \
+             , NDNBOOST_MATH_EXPLICIT_TEMPLATE_TYPE(t)
+#  define NDNBOOST_MATH_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(t)    \
+             , NDNBOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
+#  define NDNBOOST_MATH_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t, v)  \
+             , NDNBOOST_MATH_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
+#  define NDNBOOST_MATH_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)  \
+             , NDNBOOST_MATH_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
 
 #else
 
 // no workaround needed: expand to nothing
 
-#  define BOOST_MATH_EXPLICIT_TEMPLATE_TYPE(t)
-#  define BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
-#  define BOOST_MATH_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
-#  define BOOST_MATH_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
+#  define NDNBOOST_MATH_EXPLICIT_TEMPLATE_TYPE(t)
+#  define NDNBOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
+#  define NDNBOOST_MATH_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
+#  define NDNBOOST_MATH_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
 
-#  define BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_TYPE(t)
-#  define BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
-#  define BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
-#  define BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
+#  define NDNBOOST_MATH_APPEND_EXPLICIT_TEMPLATE_TYPE(t)
+#  define NDNBOOST_MATH_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
+#  define NDNBOOST_MATH_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
+#  define NDNBOOST_MATH_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
 
 
-#endif // defined BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
+#endif // defined NDNBOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
 
-#if (defined(__SUNPRO_CC) || defined(__hppa) || defined(__GNUC__)) && !defined(BOOST_MATH_SMALL_CONSTANT)
+#if (defined(__SUNPRO_CC) || defined(__hppa) || defined(__GNUC__)) && !defined(NDNBOOST_MATH_SMALL_CONSTANT)
 // Sun's compiler emits a hard error if a constant underflows,
 // as does aCC on PA-RISC, while gcc issues a large number of warnings:
-#  define BOOST_MATH_SMALL_CONSTANT(x) 0
+#  define NDNBOOST_MATH_SMALL_CONSTANT(x) 0
 #else
-#  define BOOST_MATH_SMALL_CONSTANT(x) x
+#  define NDNBOOST_MATH_SMALL_CONSTANT(x) x
 #endif
 
 
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1400)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1400)
 //
 // Define if constants too large for a float cause "bad"
 // values to be stored in the data, rather than infinity
 // or a suitably large value.
 //
-#  define BOOST_MATH_BUGGY_LARGE_FLOAT_CONSTANTS
+#  define NDNBOOST_MATH_BUGGY_LARGE_FLOAT_CONSTANTS
 #endif
 //
 // Tune performance options for specific compilers:
 //
-#ifdef BOOST_MSVC
-#  define BOOST_MATH_POLY_METHOD 2
-#elif defined(BOOST_INTEL)
-#  define BOOST_MATH_POLY_METHOD 2
-#  define BOOST_MATH_RATIONAL_METHOD 2
+#ifdef NDNBOOST_MSVC
+#  define NDNBOOST_MATH_POLY_METHOD 2
+#elif defined(NDNBOOST_INTEL)
+#  define NDNBOOST_MATH_POLY_METHOD 2
+#  define NDNBOOST_MATH_RATIONAL_METHOD 2
 #elif defined(__GNUC__)
-#  define BOOST_MATH_POLY_METHOD 3
-#  define BOOST_MATH_RATIONAL_METHOD 3
-#  define BOOST_MATH_INT_TABLE_TYPE(RT, IT) RT
-#  define BOOST_MATH_INT_VALUE_SUFFIX(RV, SUF) RV##.0L
+#  define NDNBOOST_MATH_POLY_METHOD 3
+#  define NDNBOOST_MATH_RATIONAL_METHOD 3
+#  define NDNBOOST_MATH_INT_TABLE_TYPE(RT, IT) RT
+#  define NDNBOOST_MATH_INT_VALUE_SUFFIX(RV, SUF) RV##.0L
 #endif
 
-#if defined(BOOST_NO_LONG_LONG) && !defined(BOOST_MATH_INT_TABLE_TYPE)
-#  define BOOST_MATH_INT_TABLE_TYPE(RT, IT) RT
-#  define BOOST_MATH_INT_VALUE_SUFFIX(RV, SUF) RV##.0L
+#if defined(NDNBOOST_NO_LONG_LONG) && !defined(NDNBOOST_MATH_INT_TABLE_TYPE)
+#  define NDNBOOST_MATH_INT_TABLE_TYPE(RT, IT) RT
+#  define NDNBOOST_MATH_INT_VALUE_SUFFIX(RV, SUF) RV##.0L
 #endif
 
 //
 // The maximum order of polynomial that will be evaluated 
 // via an unrolled specialisation:
 //
-#ifndef BOOST_MATH_MAX_POLY_ORDER
-#  define BOOST_MATH_MAX_POLY_ORDER 17
+#ifndef NDNBOOST_MATH_MAX_POLY_ORDER
+#  define NDNBOOST_MATH_MAX_POLY_ORDER 17
 #endif 
 //
 // Set the method used to evaluate polynomials and rationals:
 //
-#ifndef BOOST_MATH_POLY_METHOD
-#  define BOOST_MATH_POLY_METHOD 1
+#ifndef NDNBOOST_MATH_POLY_METHOD
+#  define NDNBOOST_MATH_POLY_METHOD 1
 #endif 
-#ifndef BOOST_MATH_RATIONAL_METHOD
-#  define BOOST_MATH_RATIONAL_METHOD 0
+#ifndef NDNBOOST_MATH_RATIONAL_METHOD
+#  define NDNBOOST_MATH_RATIONAL_METHOD 0
 #endif 
 //
 // decide whether to store constants as integers or reals:
 //
-#ifndef BOOST_MATH_INT_TABLE_TYPE
-#  define BOOST_MATH_INT_TABLE_TYPE(RT, IT) IT
+#ifndef NDNBOOST_MATH_INT_TABLE_TYPE
+#  define NDNBOOST_MATH_INT_TABLE_TYPE(RT, IT) IT
 #endif
-#ifndef BOOST_MATH_INT_VALUE_SUFFIX
-#  define BOOST_MATH_INT_VALUE_SUFFIX(RV, SUF) RV##SUF
+#ifndef NDNBOOST_MATH_INT_VALUE_SUFFIX
+#  define NDNBOOST_MATH_INT_VALUE_SUFFIX(RV, SUF) RV##SUF
 #endif
 //
 // Test whether to support __float128:
 //
-#if defined(_GLIBCXX_USE_FLOAT128) && defined(BOOST_GCC) && !defined(__STRICT_ANSI__)
+#if defined(_GLIBCXX_USE_FLOAT128) && defined(NDNBOOST_GCC) && !defined(__STRICT_ANSI__)
 //
 // Only enable this when the compiler really is GCC as clang and probably 
 // intel too don't support __float128 yet :-(
 //
-#  define BOOST_MATH_USE_FLOAT128
+#  define NDNBOOST_MATH_USE_FLOAT128
 #endif
 //
 // Check for WinCE with no iostream support:
 //
 #if defined(_WIN32_WCE) && !defined(__SGI_STL_PORT)
-#  define BOOST_MATH_NO_LEXICAL_CAST
+#  define NDNBOOST_MATH_NO_LEXICAL_CAST
 #endif
 
 //
 // Helper macro for controlling the FP behaviour:
 //
-#ifndef BOOST_MATH_CONTROL_FP
-#  define BOOST_MATH_CONTROL_FP
+#ifndef NDNBOOST_MATH_CONTROL_FP
+#  define NDNBOOST_MATH_CONTROL_FP
 #endif
 //
 // Helper macro for using statements:
 //
-#define BOOST_MATH_STD_USING_CORE \
+#define NDNBOOST_MATH_STD_USING_CORE \
    using std::abs;\
    using std::acos;\
    using std::cos;\
@@ -258,20 +258,20 @@
    using std::log10;\
    using std::sqrt;
 
-#define BOOST_MATH_STD_USING BOOST_MATH_STD_USING_CORE
+#define NDNBOOST_MATH_STD_USING NDNBOOST_MATH_STD_USING_CORE
 
 namespace ndnboost{ namespace math{
 namespace tools
 {
 
 template <class T>
-inline T max BOOST_PREVENT_MACRO_SUBSTITUTION(T a, T b, T c)
+inline T max NDNBOOST_PREVENT_MACRO_SUBSTITUTION(T a, T b, T c)
 {
    return (std::max)((std::max)(a, b), c);
 }
 
 template <class T>
-inline T max BOOST_PREVENT_MACRO_SUBSTITUTION(T a, T b, T c, T d)
+inline T max NDNBOOST_PREVENT_MACRO_SUBSTITUTION(T a, T b, T c, T d)
 {
    return (std::max)((std::max)(a, b), (std::max)(c, d));
 }
@@ -285,7 +285,7 @@
 
 }} // namespace ndnboost namespace math
 
-#if ((defined(__linux__) && !defined(__UCLIBC__)) || defined(__QNX__) || defined(__IBMCPP__)) && !defined(BOOST_NO_FENV_H)
+#if ((defined(__linux__) && !defined(__UCLIBC__)) || defined(__QNX__) || defined(__IBMCPP__)) && !defined(NDNBOOST_NO_FENV_H)
 
    #include <ndnboost/detail/fenv.hpp>
 
@@ -312,39 +312,39 @@
    } // namespace detail
    }} // namespaces
 
-#    define BOOST_FPU_EXCEPTION_GUARD ndnboost::math::detail::fpu_guard local_guard_object;
-#    define BOOST_MATH_INSTRUMENT_FPU do{ fexcept_t cpu_flags; fegetexceptflag(&cpu_flags, FE_ALL_EXCEPT); BOOST_MATH_INSTRUMENT_VARIABLE(cpu_flags); } while(0); 
+#    define NDNBOOST_FPU_EXCEPTION_GUARD ndnboost::math::detail::fpu_guard local_guard_object;
+#    define NDNBOOST_MATH_INSTRUMENT_FPU do{ fexcept_t cpu_flags; fegetexceptflag(&cpu_flags, FE_ALL_EXCEPT); NDNBOOST_MATH_INSTRUMENT_VARIABLE(cpu_flags); } while(0); 
 
 #  else
 
-#    define BOOST_FPU_EXCEPTION_GUARD
-#    define BOOST_MATH_INSTRUMENT_FPU
+#    define NDNBOOST_FPU_EXCEPTION_GUARD
+#    define NDNBOOST_MATH_INSTRUMENT_FPU
 
 #  endif
 
 #else // All other platforms.
-#  define BOOST_FPU_EXCEPTION_GUARD
-#  define BOOST_MATH_INSTRUMENT_FPU
+#  define NDNBOOST_FPU_EXCEPTION_GUARD
+#  define NDNBOOST_MATH_INSTRUMENT_FPU
 #endif
 
-#ifdef BOOST_MATH_INSTRUMENT
+#ifdef NDNBOOST_MATH_INSTRUMENT
 
 #  include <iostream>
 #  include <iomanip>
 #  include <typeinfo>
 
-#  define BOOST_MATH_INSTRUMENT_CODE(x) \
+#  define NDNBOOST_MATH_INSTRUMENT_CODE(x) \
       std::cout << std::setprecision(35) << __FILE__ << ":" << __LINE__ << " " << x << std::endl;
-#  define BOOST_MATH_INSTRUMENT_VARIABLE(name) BOOST_MATH_INSTRUMENT_CODE(BOOST_STRINGIZE(name) << " = " << name)
+#  define NDNBOOST_MATH_INSTRUMENT_VARIABLE(name) NDNBOOST_MATH_INSTRUMENT_CODE(NDNBOOST_STRINGIZE(name) << " = " << name)
 
 #else
 
-#  define BOOST_MATH_INSTRUMENT_CODE(x)
-#  define BOOST_MATH_INSTRUMENT_VARIABLE(name)
+#  define NDNBOOST_MATH_INSTRUMENT_CODE(x)
+#  define NDNBOOST_MATH_INSTRUMENT_VARIABLE(name)
 
 #endif
 
-#endif // BOOST_MATH_TOOLS_CONFIG_HPP
+#endif // NDNBOOST_MATH_TOOLS_CONFIG_HPP
 
 
 
diff --git a/include/ndnboost/math/tools/promotion.hpp b/include/ndnboost/math/tools/promotion.hpp
index aab6d34..d71fea9 100644
--- a/include/ndnboost/math/tools/promotion.hpp
+++ b/include/ndnboost/math/tools/promotion.hpp
@@ -15,8 +15,8 @@
 // Allows creation of an inline wrapper that forwards to a foo(RT, RT) function,
 // so you never get to instantiate any mixed foo(RT, IT) functions.
 
-#ifndef BOOST_MATH_PROMOTION_HPP
-#define BOOST_MATH_PROMOTION_HPP
+#ifndef NDNBOOST_MATH_PROMOTION_HPP
+#define NDNBOOST_MATH_PROMOTION_HPP
 
 #ifdef _MSC_VER
 #pragma once
@@ -35,7 +35,7 @@
 #include <ndnboost/mpl/or.hpp> // for ndnboost::mpl::if_c.
 #include <ndnboost/mpl/not.hpp> // for ndnboost::mpl::if_c.
 
-#ifdef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+#ifdef NDNBOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
 #include <ndnboost/static_assert.hpp>
 #endif
 
@@ -134,11 +134,11 @@
             >::type
          >::type type;
 
-#ifdef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+#ifdef NDNBOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
          //
          // Guard against use of long double if it's not supported:
          //
-         BOOST_STATIC_ASSERT((0 == ::ndnboost::is_same<type, long double>::value));
+         NDNBOOST_STATIC_ASSERT((0 == ::ndnboost::is_same<type, long double>::value));
 #endif
       };
 
@@ -146,5 +146,5 @@
   } // namespace math
 } // namespace ndnboost
 
-#endif // BOOST_MATH_PROMOTION_HPP
+#endif // NDNBOOST_MATH_PROMOTION_HPP
 
diff --git a/include/ndnboost/math/tools/real_cast.hpp b/include/ndnboost/math/tools/real_cast.hpp
index 108dcbf..0a14612 100644
--- a/include/ndnboost/math/tools/real_cast.hpp
+++ b/include/ndnboost/math/tools/real_cast.hpp
@@ -3,8 +3,8 @@
 //  Boost Software License, Version 1.0. (See accompanying file
 //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_MATH_TOOLS_REAL_CAST_HPP
-#define BOOST_MATH_TOOLS_REAL_CAST_HPP
+#ifndef NDNBOOST_MATH_TOOLS_REAL_CAST_HPP
+#define NDNBOOST_MATH_TOOLS_REAL_CAST_HPP
 
 #ifdef _MSC_VER
 #pragma once
@@ -23,7 +23,7 @@
 } // namespace math
 } // namespace ndnboost
 
-#endif // BOOST_MATH_TOOLS_REAL_CAST_HPP
+#endif // NDNBOOST_MATH_TOOLS_REAL_CAST_HPP
 
 
 
diff --git a/include/ndnboost/math/tools/user.hpp b/include/ndnboost/math/tools/user.hpp
index c1bdaf7..b822459 100644
--- a/include/ndnboost/math/tools/user.hpp
+++ b/include/ndnboost/math/tools/user.hpp
@@ -6,8 +6,8 @@
 // (See accompanying file LICENSE_1_0.txt
 // or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_MATH_TOOLS_USER_HPP
-#define BOOST_MATH_TOOLS_USER_HPP
+#ifndef NDNBOOST_MATH_TOOLS_USER_HPP
+#define NDNBOOST_MATH_TOOLS_USER_HPP
 
 #ifdef _MSC_VER
 #pragma once
@@ -19,79 +19,79 @@
 // define this if the platform has no long double functions,
 // or if the long double versions have only double precision:
 //
-// #define BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+// #define NDNBOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
 //
 // Performance tuning options:
 //
-// #define BOOST_MATH_POLY_METHOD 3
-// #define BOOST_MATH_RATIONAL_METHOD 3
+// #define NDNBOOST_MATH_POLY_METHOD 3
+// #define NDNBOOST_MATH_RATIONAL_METHOD 3
 //
 // The maximum order of polynomial that will be evaluated
 // via an unrolled specialisation:
 //
-// #define BOOST_MATH_MAX_POLY_ORDER 17
+// #define NDNBOOST_MATH_MAX_POLY_ORDER 17
 //
 // decide whether to store constants as integers or reals:
 //
-// #define BOOST_MATH_INT_TABLE_TYPE(RT, IT) IT
+// #define NDNBOOST_MATH_INT_TABLE_TYPE(RT, IT) IT
 
 //
 // Default policies follow:
 //
 // Domain errors:
 //
-// #define BOOST_MATH_DOMAIN_ERROR_POLICY throw_on_error
+// #define NDNBOOST_MATH_DOMAIN_ERROR_POLICY throw_on_error
 //
 // Pole errors:
 //
-// #define BOOST_MATH_POLE_ERROR_POLICY throw_on_error
+// #define NDNBOOST_MATH_POLE_ERROR_POLICY throw_on_error
 //
 // Overflow Errors:
 //
-// #define BOOST_MATH_OVERFLOW_ERROR_POLICY throw_on_error
+// #define NDNBOOST_MATH_OVERFLOW_ERROR_POLICY throw_on_error
 //
 // Internal Evaluation Errors:
 //
-// #define BOOST_MATH_EVALUATION_ERROR_POLICY throw_on_error
+// #define NDNBOOST_MATH_EVALUATION_ERROR_POLICY throw_on_error
 //
 // Underfow:
 //
-// #define BOOST_MATH_UNDERFLOW_ERROR_POLICY ignore_error
+// #define NDNBOOST_MATH_UNDERFLOW_ERROR_POLICY ignore_error
 //
 // Denorms:
 //
-// #define BOOST_MATH_DENORM_ERROR_POLICY ignore_error
+// #define NDNBOOST_MATH_DENORM_ERROR_POLICY ignore_error
 //
 // Max digits to use for internal calculations:
 //
-// #define BOOST_MATH_DIGITS10_POLICY 0
+// #define NDNBOOST_MATH_DIGITS10_POLICY 0
 //
 // Promote floats to doubles internally?
 //
-// #define BOOST_MATH_PROMOTE_FLOAT_POLICY true
+// #define NDNBOOST_MATH_PROMOTE_FLOAT_POLICY true
 //
 // Promote doubles to long double internally:
 //
-// #define BOOST_MATH_PROMOTE_DOUBLE_POLICY true
+// #define NDNBOOST_MATH_PROMOTE_DOUBLE_POLICY true
 //
 // What do discrete quantiles return?
 //
-// #define BOOST_MATH_DISCRETE_QUANTILE_POLICY integer_round_outwards
+// #define NDNBOOST_MATH_DISCRETE_QUANTILE_POLICY integer_round_outwards
 //
 // If a function is mathematically undefined
 // (for example the Cauchy distribution has no mean),
 // then do we stop the code from compiling?
 //
-// #define BOOST_MATH_ASSERT_UNDEFINED_POLICY true
+// #define NDNBOOST_MATH_ASSERT_UNDEFINED_POLICY true
 //
 // Maximum series iterstions permitted:
 //
-// #define BOOST_MATH_MAX_SERIES_ITERATION_POLICY 1000000
+// #define NDNBOOST_MATH_MAX_SERIES_ITERATION_POLICY 1000000
 //
 // Maximum root finding steps permitted:
 //
-// define BOOST_MATH_MAX_ROOT_ITERATION_POLICY 200
+// define NDNBOOST_MATH_MAX_ROOT_ITERATION_POLICY 200
 
-#endif // BOOST_MATH_TOOLS_USER_HPP
+#endif // NDNBOOST_MATH_TOOLS_USER_HPP
 
 
diff --git a/include/ndnboost/mem_fn.hpp b/include/ndnboost/mem_fn.hpp
index 3f2b9b1..acd6415 100644
--- a/include/ndnboost/mem_fn.hpp
+++ b/include/ndnboost/mem_fn.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_MEM_FN_HPP_INCLUDED
-#define BOOST_MEM_FN_HPP_INCLUDED
+#ifndef NDNBOOST_MEM_FN_HPP_INCLUDED
+#define NDNBOOST_MEM_FN_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -21,4 +21,4 @@
 
 #include <ndnboost/bind/mem_fn.hpp>
 
-#endif // #ifndef BOOST_MEM_FN_HPP_INCLUDED
+#endif // #ifndef NDNBOOST_MEM_FN_HPP_INCLUDED
diff --git a/include/ndnboost/memory_order.hpp b/include/ndnboost/memory_order.hpp
index 14d9162..dc8f852 100644
--- a/include/ndnboost/memory_order.hpp
+++ b/include/ndnboost/memory_order.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_MEMORY_ORDER_HPP_INCLUDED
-#define BOOST_MEMORY_ORDER_HPP_INCLUDED
+#ifndef NDNBOOST_MEMORY_ORDER_HPP_INCLUDED
+#define NDNBOOST_MEMORY_ORDER_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -50,4 +50,4 @@
 
 } // namespace ndnboost
 
-#endif // #ifndef BOOST_MEMORY_ORDER_HPP_INCLUDED
+#endif // #ifndef NDNBOOST_MEMORY_ORDER_HPP_INCLUDED
diff --git a/include/ndnboost/move/algorithm.hpp b/include/ndnboost/move/algorithm.hpp
index 0feaef3..efd1918 100644
--- a/include/ndnboost/move/algorithm.hpp
+++ b/include/ndnboost/move/algorithm.hpp
@@ -11,8 +11,8 @@
 
 //! \file
 
-#ifndef BOOST_MOVE_ALGORITHM_HPP
-#define BOOST_MOVE_ALGORITHM_HPP
+#ifndef NDNBOOST_MOVE_ALGORITHM_HPP
+#define NDNBOOST_MOVE_ALGORITHM_HPP
 
 #include <ndnboost/move/detail/config_begin.hpp>
 
@@ -32,7 +32,7 @@
 //
 //////////////////////////////////////////////////////////////////////////////
 
-#if !defined(BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE)
+#if !defined(NDNBOOST_MOVE_USE_STANDARD_LIBRARY_MOVE)
 
    //! <b>Effects</b>: Moves elements in the range [first,last) into the range [result,result + (last -
    //!   first)) starting from first and proceeding to last. For each non-negative integer n < (last-first),
@@ -85,7 +85,7 @@
 
    using ::std::move_backward;
 
-#endif   //!defined(BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE)
+#endif   //!defined(NDNBOOST_MOVE_USE_STANDARD_LIBRARY_MOVE)
 
 //////////////////////////////////////////////////////////////////////////////
 //
@@ -113,20 +113,20 @@
    typedef typename std::iterator_traits<I>::value_type input_value_type;
 
    F back = r;
-   BOOST_TRY{
+   NDNBOOST_TRY{
       while (f != l) {
          void * const addr = static_cast<void*>(::ndnboost::move_detail::addressof(*r));
          ::new(addr) input_value_type(::ndnboost::move(*f));
          ++f; ++r;
       }
    }
-   BOOST_CATCH(...){
+   NDNBOOST_CATCH(...){
 	   for (; back != r; ++back){
          back->~input_value_type();
       }
-	   BOOST_RETHROW;
+	   NDNBOOST_RETHROW;
    }
-   BOOST_CATCH_END
+   NDNBOOST_CATCH_END
    return r;
 }
 
@@ -272,4 +272,4 @@
 
 #include <ndnboost/move/detail/config_end.hpp>
 
-#endif //#ifndef BOOST_MOVE_MOVE_HPP
+#endif //#ifndef NDNBOOST_MOVE_MOVE_HPP
diff --git a/include/ndnboost/move/core.hpp b/include/ndnboost/move/core.hpp
index 92e47ec..1037178 100644
--- a/include/ndnboost/move/core.hpp
+++ b/include/ndnboost/move/core.hpp
@@ -13,35 +13,35 @@
 //! This header implements macros to define movable classes and
 //! move-aware functions
 
-#ifndef BOOST_MOVE_CORE_HPP
-#define BOOST_MOVE_CORE_HPP
+#ifndef NDNBOOST_MOVE_CORE_HPP
+#define NDNBOOST_MOVE_CORE_HPP
 
 #include <ndnboost/move/detail/config_begin.hpp>
 
-#ifdef BOOST_NO_CXX11_DELETED_FUNCTIONS
-   #define BOOST_MOVE_IMPL_NO_COPY_CTOR_OR_ASSIGN(TYPE) \
+#ifdef NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
+   #define NDNBOOST_MOVE_IMPL_NO_COPY_CTOR_OR_ASSIGN(TYPE) \
       private:\
       TYPE(TYPE &);\
       TYPE& operator=(TYPE &);\
    //
 #else
-   #define BOOST_MOVE_IMPL_NO_COPY_CTOR_OR_ASSIGN(TYPE) \
+   #define NDNBOOST_MOVE_IMPL_NO_COPY_CTOR_OR_ASSIGN(TYPE) \
       public:\
       TYPE(TYPE const &) = delete;\
       TYPE& operator=(TYPE const &) = delete;\
       private:\
    //
-#endif   //BOOST_NO_CXX11_DELETED_FUNCTIONS
+#endif   //NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
 
-#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_MOVE_DOXYGEN_INVOKED)
+#if defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(NDNBOOST_MOVE_DOXYGEN_INVOKED)
 
    #include <ndnboost/move/detail/meta_utils.hpp>
 
    //Move emulation rv breaks standard aliasing rules so add workarounds for some compilers
    #if defined(__GNUC__) && (__GNUC__ >= 4)
-      #define BOOST_MOVE_ATTRIBUTE_MAY_ALIAS __attribute__((__may_alias__))
+      #define NDNBOOST_MOVE_ATTRIBUTE_MAY_ALIAS __attribute__((__may_alias__))
    #else
-      #define BOOST_MOVE_ATTRIBUTE_MAY_ALIAS
+      #define NDNBOOST_MOVE_ATTRIBUTE_MAY_ALIAS
    #endif
 
    namespace ndnboost {
@@ -63,7 +63,7 @@
       ~rv();
       rv(rv const&);
       void operator=(rv const&);
-   } BOOST_MOVE_ATTRIBUTE_MAY_ALIAS;
+   } NDNBOOST_MOVE_ATTRIBUTE_MAY_ALIAS;
 
 
    //////////////////////////////////////////////////////////////////////////////
@@ -113,61 +113,61 @@
 
    }  //namespace ndnboost {
 
-   #define BOOST_RV_REF(TYPE)\
+   #define NDNBOOST_RV_REF(TYPE)\
       ::ndnboost::rv< TYPE >& \
    //
 
-   #define BOOST_RV_REF_2_TEMPL_ARGS(TYPE, ARG1, ARG2)\
+   #define NDNBOOST_RV_REF_2_TEMPL_ARGS(TYPE, ARG1, ARG2)\
       ::ndnboost::rv< TYPE<ARG1, ARG2> >& \
    //
 
-   #define BOOST_RV_REF_3_TEMPL_ARGS(TYPE, ARG1, ARG2, ARG3)\
+   #define NDNBOOST_RV_REF_3_TEMPL_ARGS(TYPE, ARG1, ARG2, ARG3)\
       ::ndnboost::rv< TYPE<ARG1, ARG2, ARG3> >& \
    //
 
-   #define BOOST_RV_REF_BEG\
+   #define NDNBOOST_RV_REF_BEG\
       ::ndnboost::rv<   \
    //
 
-   #define BOOST_RV_REF_END\
+   #define NDNBOOST_RV_REF_END\
       >& \
    //
 
-   #define BOOST_FWD_REF(TYPE)\
+   #define NDNBOOST_FWD_REF(TYPE)\
       const TYPE & \
    //
 
-   #define BOOST_COPY_ASSIGN_REF(TYPE)\
+   #define NDNBOOST_COPY_ASSIGN_REF(TYPE)\
       const ::ndnboost::rv< TYPE >& \
    //
 
-   #define BOOST_COPY_ASSIGN_REF_BEG \
+   #define NDNBOOST_COPY_ASSIGN_REF_BEG \
       const ::ndnboost::rv<  \
    //
 
-   #define BOOST_COPY_ASSIGN_REF_END \
+   #define NDNBOOST_COPY_ASSIGN_REF_END \
       >& \
    //
 
-   #define BOOST_COPY_ASSIGN_REF_2_TEMPL_ARGS(TYPE, ARG1, ARG2)\
+   #define NDNBOOST_COPY_ASSIGN_REF_2_TEMPL_ARGS(TYPE, ARG1, ARG2)\
       const ::ndnboost::rv< TYPE<ARG1, ARG2> >& \
    //
 
-   #define BOOST_COPY_ASSIGN_REF_3_TEMPL_ARGS(TYPE, ARG1, ARG2, ARG3)\
+   #define NDNBOOST_COPY_ASSIGN_REF_3_TEMPL_ARGS(TYPE, ARG1, ARG2, ARG3)\
       const ::ndnboost::rv< TYPE<ARG1, ARG2, ARG3> >& \
    //
 
-   #define BOOST_CATCH_CONST_RLVALUE(TYPE)\
+   #define NDNBOOST_CATCH_CONST_RLVALUE(TYPE)\
       const ::ndnboost::rv< TYPE >& \
    //
 
    //////////////////////////////////////////////////////////////////////////////
    //
-   //                         BOOST_MOVABLE_BUT_NOT_COPYABLE
+   //                         NDNBOOST_MOVABLE_BUT_NOT_COPYABLE
    //
    //////////////////////////////////////////////////////////////////////////////
-   #define BOOST_MOVABLE_BUT_NOT_COPYABLE(TYPE)\
-      BOOST_MOVE_IMPL_NO_COPY_CTOR_OR_ASSIGN(TYPE)\
+   #define NDNBOOST_MOVABLE_BUT_NOT_COPYABLE(TYPE)\
+      NDNBOOST_MOVE_IMPL_NO_COPY_CTOR_OR_ASSIGN(TYPE)\
       public:\
       operator ::ndnboost::rv<TYPE>&() \
       {  return *static_cast< ::ndnboost::rv<TYPE>* >(this);  }\
@@ -178,11 +178,11 @@
 
    //////////////////////////////////////////////////////////////////////////////
    //
-   //                         BOOST_COPYABLE_AND_MOVABLE
+   //                         NDNBOOST_COPYABLE_AND_MOVABLE
    //
    //////////////////////////////////////////////////////////////////////////////
 
-   #define BOOST_COPYABLE_AND_MOVABLE(TYPE)\
+   #define NDNBOOST_COPYABLE_AND_MOVABLE(TYPE)\
       public:\
       TYPE& operator=(TYPE &t)\
       {  this->operator=(static_cast<const ::ndnboost::rv<TYPE> &>(const_cast<const TYPE &>(t))); return *this;}\
@@ -194,7 +194,7 @@
       private:\
    //
 
-   #define BOOST_COPYABLE_AND_MOVABLE_ALT(TYPE)\
+   #define NDNBOOST_COPYABLE_AND_MOVABLE_ALT(TYPE)\
       public:\
       operator ::ndnboost::rv<TYPE>&() \
       {  return *static_cast< ::ndnboost::rv<TYPE>* >(this);  }\
@@ -203,27 +203,27 @@
       private:\
    //
 
-#else    //BOOST_NO_CXX11_RVALUE_REFERENCES
+#else    //NDNBOOST_NO_CXX11_RVALUE_REFERENCES
 
    //Compiler workaround detection
-   #if !defined(BOOST_MOVE_DOXYGEN_INVOKED)
+   #if !defined(NDNBOOST_MOVE_DOXYGEN_INVOKED)
       #if defined(__GNUC__) && (__GNUC__ == 4) && (__GNUC_MINOR__ < 5) && !defined(__clang__)
          //Pre-standard rvalue binding rules
-         #define BOOST_MOVE_OLD_RVALUE_REF_BINDING_RULES
+         #define NDNBOOST_MOVE_OLD_RVALUE_REF_BINDING_RULES
       #elif defined(_MSC_VER) && (_MSC_VER == 1600)
          //Standard rvalue binding rules but with some bugs
-         #define BOOST_MOVE_MSVC_10_MEMBER_RVALUE_REF_BUG
+         #define NDNBOOST_MOVE_MSVC_10_MEMBER_RVALUE_REF_BUG
          //Use standard library for MSVC to avoid namespace issues as
          //some move calls in the STL are not fully qualified.
-         //#define BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE
+         //#define NDNBOOST_MOVE_USE_STANDARD_LIBRARY_MOVE
       #endif
    #endif
 
    //! This macro marks a type as movable but not copyable, disabling copy construction
    //! and assignment. The user will need to write a move constructor/assignment as explained
    //! in the documentation to fully write a movable but not copyable class.
-   #define BOOST_MOVABLE_BUT_NOT_COPYABLE(TYPE)\
-      BOOST_MOVE_IMPL_NO_COPY_CTOR_OR_ASSIGN(TYPE)\
+   #define NDNBOOST_MOVABLE_BUT_NOT_COPYABLE(TYPE)\
+      NDNBOOST_MOVE_IMPL_NO_COPY_CTOR_OR_ASSIGN(TYPE)\
       public:\
       typedef int boost_move_emulation_t;\
    //
@@ -231,18 +231,18 @@
    //! This macro marks a type as copyable and movable.
    //! The user will need to write a move constructor/assignment and a copy assignment
    //! as explained in the documentation to fully write a copyable and movable class.
-   #define BOOST_COPYABLE_AND_MOVABLE(TYPE)\
+   #define NDNBOOST_COPYABLE_AND_MOVABLE(TYPE)\
    //
 
-   #if !defined(BOOST_MOVE_DOXYGEN_INVOKED)
-   #define BOOST_COPYABLE_AND_MOVABLE_ALT(TYPE)\
+   #if !defined(NDNBOOST_MOVE_DOXYGEN_INVOKED)
+   #define NDNBOOST_COPYABLE_AND_MOVABLE_ALT(TYPE)\
    //
-   #endif   //#if !defined(BOOST_MOVE_DOXYGEN_INVOKED)
+   #endif   //#if !defined(NDNBOOST_MOVE_DOXYGEN_INVOKED)
 
    namespace ndnboost {
 
    //!This trait yields to a compile-time true boolean if T was marked as
-   //!BOOST_MOVABLE_BUT_NOT_COPYABLE or BOOST_COPYABLE_AND_MOVABLE and
+   //!NDNBOOST_MOVABLE_BUT_NOT_COPYABLE or NDNBOOST_COPYABLE_AND_MOVABLE and
    //!rvalue references are not available on the platform. False otherwise.
    template<class T>
    struct has_move_emulation_enabled
@@ -254,79 +254,79 @@
 
    //!This macro is used to achieve portable syntax in move
    //!constructors and assignments for classes marked as
-   //!BOOST_COPYABLE_AND_MOVABLE or BOOST_MOVABLE_BUT_NOT_COPYABLE
-   #define BOOST_RV_REF(TYPE)\
+   //!NDNBOOST_COPYABLE_AND_MOVABLE or NDNBOOST_MOVABLE_BUT_NOT_COPYABLE
+   #define NDNBOOST_RV_REF(TYPE)\
       TYPE && \
    //
 
    //!This macro is used to achieve portable syntax in move
    //!constructors and assignments for template classes marked as
-   //!BOOST_COPYABLE_AND_MOVABLE or BOOST_MOVABLE_BUT_NOT_COPYABLE.
+   //!NDNBOOST_COPYABLE_AND_MOVABLE or NDNBOOST_MOVABLE_BUT_NOT_COPYABLE.
    //!As macros have problems with comma-separatd template arguments,
-   //!the template argument must be preceded with BOOST_RV_REF_START
-   //!and ended with BOOST_RV_REF_END
-   #define BOOST_RV_REF_BEG\
+   //!the template argument must be preceded with NDNBOOST_RV_REF_START
+   //!and ended with NDNBOOST_RV_REF_END
+   #define NDNBOOST_RV_REF_BEG\
          \
    //
 
    //!This macro is used to achieve portable syntax in move
    //!constructors and assignments for template classes marked as
-   //!BOOST_COPYABLE_AND_MOVABLE or BOOST_MOVABLE_BUT_NOT_COPYABLE.
+   //!NDNBOOST_COPYABLE_AND_MOVABLE or NDNBOOST_MOVABLE_BUT_NOT_COPYABLE.
    //!As macros have problems with comma-separatd template arguments,
-   //!the template argument must be preceded with BOOST_RV_REF_START
-   //!and ended with BOOST_RV_REF_END
-   #define BOOST_RV_REF_END\
+   //!the template argument must be preceded with NDNBOOST_RV_REF_START
+   //!and ended with NDNBOOST_RV_REF_END
+   #define NDNBOOST_RV_REF_END\
       && \
 
    //!This macro is used to achieve portable syntax in copy
-   //!assignment for classes marked as BOOST_COPYABLE_AND_MOVABLE.
-   #define BOOST_COPY_ASSIGN_REF(TYPE)\
+   //!assignment for classes marked as NDNBOOST_COPYABLE_AND_MOVABLE.
+   #define NDNBOOST_COPY_ASSIGN_REF(TYPE)\
       const TYPE & \
    //
 
    //! This macro is used to implement portable perfect forwarding
    //! as explained in the documentation.
-   #define BOOST_FWD_REF(TYPE)\
+   #define NDNBOOST_FWD_REF(TYPE)\
       TYPE && \
    //
 
-   #if !defined(BOOST_MOVE_DOXYGEN_INVOKED)
+   #if !defined(NDNBOOST_MOVE_DOXYGEN_INVOKED)
    /// @cond
 
-   #define BOOST_RV_REF_2_TEMPL_ARGS(TYPE, ARG1, ARG2)\
+   #define NDNBOOST_RV_REF_2_TEMPL_ARGS(TYPE, ARG1, ARG2)\
       TYPE<ARG1, ARG2> && \
    //
 
-   #define BOOST_RV_REF_3_TEMPL_ARGS(TYPE, ARG1, ARG2, ARG3)\
+   #define NDNBOOST_RV_REF_3_TEMPL_ARGS(TYPE, ARG1, ARG2, ARG3)\
       TYPE<ARG1, ARG2, ARG3> && \
    //
 
-   #define BOOST_COPY_ASSIGN_REF_BEG \
+   #define NDNBOOST_COPY_ASSIGN_REF_BEG \
       const \
    //
 
-   #define BOOST_COPY_ASSIGN_REF_END \
+   #define NDNBOOST_COPY_ASSIGN_REF_END \
       & \
    //
 
-   #define BOOST_COPY_ASSIGN_REF_2_TEMPL_ARGS(TYPE, ARG1, ARG2)\
+   #define NDNBOOST_COPY_ASSIGN_REF_2_TEMPL_ARGS(TYPE, ARG1, ARG2)\
       const TYPE<ARG1, ARG2> & \
    //
 
-   #define BOOST_COPY_ASSIGN_REF_3_TEMPL_ARGS(TYPE, ARG1, ARG2, ARG3)\
+   #define NDNBOOST_COPY_ASSIGN_REF_3_TEMPL_ARGS(TYPE, ARG1, ARG2, ARG3)\
       const TYPE<ARG1, ARG2, ARG3>& \
    //
 
-   #define BOOST_CATCH_CONST_RLVALUE(TYPE)\
+   #define NDNBOOST_CATCH_CONST_RLVALUE(TYPE)\
       const TYPE & \
    //
 
    /// @endcond
 
-   #endif   //#if !defined(BOOST_MOVE_DOXYGEN_INVOKED)
+   #endif   //#if !defined(NDNBOOST_MOVE_DOXYGEN_INVOKED)
 
-#endif   //BOOST_NO_CXX11_RVALUE_REFERENCES
+#endif   //NDNBOOST_NO_CXX11_RVALUE_REFERENCES
 
 #include <ndnboost/move/detail/config_end.hpp>
 
-#endif //#ifndef BOOST_MOVE_CORE_HPP
+#endif //#ifndef NDNBOOST_MOVE_CORE_HPP
diff --git a/include/ndnboost/move/detail/config_begin.hpp b/include/ndnboost/move/detail/config_begin.hpp
index 4368aeb..f898dd4 100644
--- a/include/ndnboost/move/detail/config_begin.hpp
+++ b/include/ndnboost/move/detail/config_begin.hpp
@@ -9,13 +9,13 @@
 //////////////////////////////////////////////////////////////////////////////
 #include <ndnboost/config.hpp>
 
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
    #ifndef _CRT_SECURE_NO_DEPRECATE
-      #define  BOOST_MOVE_CRT_SECURE_NO_DEPRECATE
+      #define  NDNBOOST_MOVE_CRT_SECURE_NO_DEPRECATE
       #define _CRT_SECURE_NO_DEPRECATE
    #endif
    #ifndef _SCL_SECURE_NO_WARNINGS
-      #define  BOOST_MOVE_SCL_SECURE_NO_WARNINGS
+      #define  NDNBOOST_MOVE_SCL_SECURE_NO_WARNINGS
       #define _SCL_SECURE_NO_WARNINGS
    #endif
    #pragma warning (push)
diff --git a/include/ndnboost/move/detail/config_end.hpp b/include/ndnboost/move/detail/config_end.hpp
index c43bce0..bfba733 100644
--- a/include/ndnboost/move/detail/config_end.hpp
+++ b/include/ndnboost/move/detail/config_end.hpp
@@ -7,14 +7,14 @@
 // See http://www.boost.org/libs/container for documentation.
 //
 //////////////////////////////////////////////////////////////////////////////
-#if defined BOOST_MSVC
+#if defined NDNBOOST_MSVC
    #pragma warning (pop)
-   #ifdef BOOST_MOVE_DETAIL_CRT_SECURE_NO_DEPRECATE
-      #undef BOOST_MOVE_DETAIL_CRT_SECURE_NO_DEPRECATE
+   #ifdef NDNBOOST_MOVE_DETAIL_CRT_SECURE_NO_DEPRECATE
+      #undef NDNBOOST_MOVE_DETAIL_CRT_SECURE_NO_DEPRECATE
       #undef _CRT_SECURE_NO_DEPRECATE
    #endif
-   #ifndef BOOST_MOVE_SCL_SECURE_NO_WARNINGS
-      #undef  BOOST_MOVE_SCL_SECURE_NO_WARNINGS
+   #ifndef NDNBOOST_MOVE_SCL_SECURE_NO_WARNINGS
+      #undef  NDNBOOST_MOVE_SCL_SECURE_NO_WARNINGS
       #undef _SCL_SECURE_NO_WARNINGS
    #endif
 #endif
diff --git a/include/ndnboost/move/detail/meta_utils.hpp b/include/ndnboost/move/detail/meta_utils.hpp
index 1f68fb2..9823c20 100644
--- a/include/ndnboost/move/detail/meta_utils.hpp
+++ b/include/ndnboost/move/detail/meta_utils.hpp
@@ -11,8 +11,8 @@
 
 //! \file
 
-#ifndef BOOST_MOVE_DETAIL_META_UTILS_HPP
-#define BOOST_MOVE_DETAIL_META_UTILS_HPP
+#ifndef NDNBOOST_MOVE_DETAIL_META_UTILS_HPP
+#define NDNBOOST_MOVE_DETAIL_META_UTILS_HPP
 
 #include <ndnboost/move/detail/config_begin.hpp>
 
@@ -155,4 +155,4 @@
 
 #include <ndnboost/move/detail/config_end.hpp>
 
-#endif //#ifndef BOOST_MOVE_DETAIL_META_UTILS_HPP
+#endif //#ifndef NDNBOOST_MOVE_DETAIL_META_UTILS_HPP
diff --git a/include/ndnboost/move/iterator.hpp b/include/ndnboost/move/iterator.hpp
index 12339b0..59d1a84 100644
--- a/include/ndnboost/move/iterator.hpp
+++ b/include/ndnboost/move/iterator.hpp
@@ -11,8 +11,8 @@
 
 //! \file
 
-#ifndef BOOST_MOVE_ITERATOR_HPP
-#define BOOST_MOVE_ITERATOR_HPP
+#ifndef NDNBOOST_MOVE_ITERATOR_HPP
+#define NDNBOOST_MOVE_ITERATOR_HPP
 
 #include <ndnboost/move/detail/config_begin.hpp>
 #include <ndnboost/move/utility.hpp>
@@ -37,7 +37,7 @@
    public:
    typedef It                                                              iterator_type;
    typedef typename std::iterator_traits<iterator_type>::value_type        value_type;
-   #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || defined(BOOST_MOVE_DOXYGEN_INVOKED)
+   #if !defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES) || defined(NDNBOOST_MOVE_DOXYGEN_INVOKED)
    typedef value_type &&                                                   reference;
    #else
    typedef typename ::ndnboost::move_detail::if_
@@ -66,7 +66,7 @@
 
    reference operator*() const
    {
-      #if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || defined(BOOST_MOVE_OLD_RVALUE_REF_BINDING_RULES)
+      #if defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES) || defined(NDNBOOST_MOVE_OLD_RVALUE_REF_BINDING_RULES)
       return *m_it;
       #else
       return ::ndnboost::move(*m_it);
@@ -102,7 +102,7 @@
 
    reference operator[](difference_type n) const
    {
-      #if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || defined(BOOST_MOVE_OLD_RVALUE_REF_BINDING_RULES)
+      #if defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES) || defined(NDNBOOST_MOVE_OLD_RVALUE_REF_BINDING_RULES)
       return m_it[n];
       #else
       return ::ndnboost::move(m_it[n]);
@@ -191,7 +191,7 @@
    back_move_insert_iterator& operator=(reference x)
    { container_m->push_back(ndnboost::move(x)); return *this; }
 
-   back_move_insert_iterator& operator=(BOOST_RV_REF(value_type) x)
+   back_move_insert_iterator& operator=(NDNBOOST_RV_REF(value_type) x)
    {  reference rx = x; return this->operator=(rx);  }
 
    back_move_insert_iterator& operator*()     { return *this; }
@@ -231,7 +231,7 @@
    front_move_insert_iterator& operator=(reference x)
    { container_m->push_front(ndnboost::move(x)); return *this; }
 
-   front_move_insert_iterator& operator=(BOOST_RV_REF(value_type) x)
+   front_move_insert_iterator& operator=(NDNBOOST_RV_REF(value_type) x)
    {  reference rx = x; return this->operator=(rx);  }
 
    front_move_insert_iterator& operator*()     { return *this; }
@@ -275,7 +275,7 @@
       return *this;
    }
 
-   move_insert_iterator& operator=(BOOST_RV_REF(value_type) x)
+   move_insert_iterator& operator=(NDNBOOST_RV_REF(value_type) x)
    {  reference rx = x; return this->operator=(rx);  }
 
    move_insert_iterator& operator*()     { return *this; }
@@ -295,4 +295,4 @@
 
 #include <ndnboost/move/detail/config_end.hpp>
 
-#endif //#ifndef BOOST_MOVE_ITERATOR_HPP
+#endif //#ifndef NDNBOOST_MOVE_ITERATOR_HPP
diff --git a/include/ndnboost/move/move.hpp b/include/ndnboost/move/move.hpp
index 822ffb5..c27b6d9 100644
--- a/include/ndnboost/move/move.hpp
+++ b/include/ndnboost/move/move.hpp
@@ -14,8 +14,8 @@
 //! A general library header that includes
 //! the rest of top-level headers.
 
-#ifndef BOOST_MOVE_MOVE_HPP
-#define BOOST_MOVE_MOVE_HPP
+#ifndef NDNBOOST_MOVE_MOVE_HPP
+#define NDNBOOST_MOVE_MOVE_HPP
 
 #include <ndnboost/move/detail/config_begin.hpp>
 #include <ndnboost/move/utility.hpp>
@@ -24,4 +24,4 @@
 #include <ndnboost/move/algorithm.hpp>
 #include <ndnboost/move/detail/config_end.hpp>
 
-#endif //#ifndef BOOST_MOVE_MOVE_HPP
+#endif //#ifndef NDNBOOST_MOVE_MOVE_HPP
diff --git a/include/ndnboost/move/traits.hpp b/include/ndnboost/move/traits.hpp
index 47d585d..6b25fd5 100644
--- a/include/ndnboost/move/traits.hpp
+++ b/include/ndnboost/move/traits.hpp
@@ -11,14 +11,14 @@
 
 //! \file
 
-#ifndef BOOST_MOVE_MOVE_TRAITS_HPP
-#define BOOST_MOVE_MOVE_TRAITS_HPP
+#ifndef NDNBOOST_MOVE_MOVE_TRAITS_HPP
+#define NDNBOOST_MOVE_MOVE_TRAITS_HPP
 
 #include <ndnboost/move/detail/config_begin.hpp>
 #include <ndnboost/type_traits/has_trivial_destructor.hpp>
 #include <ndnboost/move/detail/meta_utils.hpp>
 
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
+#ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
 #include <ndnboost/move/core.hpp>
 #endif
 
@@ -49,9 +49,9 @@
 
 // Code from Jeffrey Lee Hellrung, many thanks
 
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
+#ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
    template< class T> struct forward_type { typedef T type; };
-#else // #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
+#else // #ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
    template< class T>
    struct forward_type
    { typedef const T &type; };
@@ -59,12 +59,12 @@
    template< class T>
    struct forward_type< ndnboost::rv<T> >
    { typedef T type; };
-#endif // #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
+#endif // #ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
 
 template< class T > struct is_rvalue_reference : ::ndnboost::move_detail::integral_constant<bool, false> { };
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
+#ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
    template< class T > struct is_rvalue_reference< T&& > : ::ndnboost::move_detail::integral_constant<bool, true> { };
-#else // #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
+#else // #ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
    template< class T > struct is_rvalue_reference< ndnboost::rv<T>& >
       :  ::ndnboost::move_detail::integral_constant<bool, true>
    {};
@@ -72,11 +72,11 @@
    template< class T > struct is_rvalue_reference< const ndnboost::rv<T>& >
       : ::ndnboost::move_detail::integral_constant<bool, true>
    {};
-#endif // #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
+#endif // #ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
 
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
+#ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
    template< class T > struct add_rvalue_reference { typedef T&& type; };
-#else // #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
+#else // #ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
    namespace detail_add_rvalue_reference
    {
       template< class T
@@ -100,13 +100,13 @@
    struct add_rvalue_reference<T &>
    {  typedef T & type; };
 
-#endif // #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
+#endif // #ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
 
 template< class T > struct remove_rvalue_reference { typedef T type; };
 
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
+#ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
    template< class T > struct remove_rvalue_reference< T&& >                  { typedef T type; };
-#else // #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
+#else // #ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
    template< class T > struct remove_rvalue_reference< rv<T> >                { typedef T type; };
    template< class T > struct remove_rvalue_reference< const rv<T> >          { typedef T type; };
    template< class T > struct remove_rvalue_reference< volatile rv<T> >       { typedef T type; };
@@ -115,7 +115,7 @@
    template< class T > struct remove_rvalue_reference< const rv<T>& >         { typedef T type; };
    template< class T > struct remove_rvalue_reference< volatile rv<T>& >      { typedef T type; };
    template< class T > struct remove_rvalue_reference< const volatile rv<T>& >{ typedef T type; };
-#endif // #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
+#endif // #ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
 
 template <typename T>
 typename ndnboost::move_detail::add_rvalue_reference<T>::type declval();
@@ -139,4 +139,4 @@
 
 #include <ndnboost/move/detail/config_end.hpp>
 
-#endif //#ifndef BOOST_MOVE_MOVE_TRAITS_HPP
+#endif //#ifndef NDNBOOST_MOVE_MOVE_TRAITS_HPP
diff --git a/include/ndnboost/move/utility.hpp b/include/ndnboost/move/utility.hpp
index 2b82879..cbc919d 100644
--- a/include/ndnboost/move/utility.hpp
+++ b/include/ndnboost/move/utility.hpp
@@ -11,14 +11,14 @@
 
 //! \file
 
-#ifndef BOOST_MOVE_MOVE_UTILITY_HPP
-#define BOOST_MOVE_MOVE_UTILITY_HPP
+#ifndef NDNBOOST_MOVE_MOVE_UTILITY_HPP
+#define NDNBOOST_MOVE_MOVE_UTILITY_HPP
 
 #include <ndnboost/move/detail/config_begin.hpp>
 #include <ndnboost/move/core.hpp>
 #include <ndnboost/move/detail/meta_utils.hpp>
 
-#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_MOVE_DOXYGEN_INVOKED)
+#if defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(NDNBOOST_MOVE_DOXYGEN_INVOKED)
 
    namespace ndnboost {
 
@@ -82,9 +82,9 @@
 
    }  //namespace ndnboost
 
-#else    //#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_MOVE_DOXYGEN_INVOKED)
+#else    //#if defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(NDNBOOST_MOVE_DOXYGEN_INVOKED)
 
-   #if defined(BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE)
+   #if defined(NDNBOOST_MOVE_USE_STANDARD_LIBRARY_MOVE)
       #include <utility>
 
       namespace ndnboost{
@@ -94,7 +94,7 @@
 
       }  //namespace ndnboost
 
-   #else //!BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE
+   #else //!NDNBOOST_MOVE_USE_STANDARD_LIBRARY_MOVE
 
       #include <ndnboost/type_traits/remove_reference.hpp>
 
@@ -118,27 +118,27 @@
       //
       //////////////////////////////////////////////////////////////////////////////
 
-      #if defined(BOOST_MOVE_DOXYGEN_INVOKED)
+      #if defined(NDNBOOST_MOVE_DOXYGEN_INVOKED)
          //! This function provides a way to convert a reference into a rvalue reference
          //! in compilers with rvalue references. For other compilers converts T & into
          //! <i>::ndnboost::rv<T> &</i> so that move emulation is activated.
          template <class T>
          rvalue_reference move (input_reference);
 
-      #elif defined(BOOST_MOVE_OLD_RVALUE_REF_BINDING_RULES)
+      #elif defined(NDNBOOST_MOVE_OLD_RVALUE_REF_BINDING_RULES)
 
          //Old move approach, lvalues could bind to rvalue references
          template <class T>
          inline typename remove_reference<T>::type && move(T&& t)
          {  return t;   }
 
-      #else //BOOST_MOVE_OLD_RVALUE_REF_BINDING_RULES
+      #else //NDNBOOST_MOVE_OLD_RVALUE_REF_BINDING_RULES
 
          template <class T>
          inline typename remove_reference<T>::type && move(T&& t)
          { return static_cast<typename remove_reference<T>::type &&>(t); }
 
-      #endif   //BOOST_MOVE_OLD_RVALUE_REF_BINDING_RULES
+      #endif   //NDNBOOST_MOVE_OLD_RVALUE_REF_BINDING_RULES
 
       //////////////////////////////////////////////////////////////////////////////
       //
@@ -147,7 +147,7 @@
       //////////////////////////////////////////////////////////////////////////////
 
 
-      #if defined(BOOST_MOVE_DOXYGEN_INVOKED)
+      #if defined(NDNBOOST_MOVE_DOXYGEN_INVOKED)
          //! This function provides limited form of forwarding that is usually enough for
          //! in-place construction and avoids the exponential overloading for
          //! achieve the limited forwarding in C++03.
@@ -160,7 +160,7 @@
          //!
          //! * Else, output_reference is equal to input_reference.
          template <class T> output_reference forward(input_reference);
-      #elif defined(BOOST_MOVE_OLD_RVALUE_REF_BINDING_RULES)
+      #elif defined(NDNBOOST_MOVE_OLD_RVALUE_REF_BINDING_RULES)
 
          //Old move approach, lvalues could bind to rvalue references
 
@@ -181,14 +181,14 @@
                   <typename remove_reference<U>::type*, typename remove_reference<T>::type*>::value>::type * = 0*/)
          { return static_cast<T&&>(t);   }
 
-      #endif   //BOOST_MOVE_DOXYGEN_INVOKED
+      #endif   //NDNBOOST_MOVE_DOXYGEN_INVOKED
 
       }  //namespace ndnboost {
 
-   #endif   //#if defined(BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE)
+   #endif   //#if defined(NDNBOOST_MOVE_USE_STANDARD_LIBRARY_MOVE)
 
-#endif   //BOOST_NO_CXX11_RVALUE_REFERENCES
+#endif   //NDNBOOST_NO_CXX11_RVALUE_REFERENCES
 
 #include <ndnboost/move/detail/config_end.hpp>
 
-#endif //#ifndef BOOST_MOVE_MOVE_UTILITY_HPP
+#endif //#ifndef NDNBOOST_MOVE_MOVE_UTILITY_HPP
diff --git a/include/ndnboost/mpl/O1_size.hpp b/include/ndnboost/mpl/O1_size.hpp
index 675b05f..d6a4633 100644
--- a/include/ndnboost/mpl/O1_size.hpp
+++ b/include/ndnboost/mpl/O1_size.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_O1_SIZE_HPP_INCLUDED
-#define BOOST_MPL_O1_SIZE_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_O1_SIZE_HPP_INCLUDED
+#define NDNBOOST_MPL_O1_SIZE_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -24,17 +24,17 @@
 
 // returns sequence size if it's an O(1) operation; otherwise returns -1
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(Sequence)
     >
 struct O1_size
     : O1_size_impl< typename sequence_tag<Sequence>::type >
         ::template apply< Sequence >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1, O1_size, (Sequence))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1, O1_size, (Sequence))
 };
 
-BOOST_MPL_AUX_NA_SPEC(1, O1_size)
+NDNBOOST_MPL_AUX_NA_SPEC(1, O1_size)
 
 }}
 
-#endif // BOOST_MPL_O1_SIZE_HPP_INCLUDED
+#endif // NDNBOOST_MPL_O1_SIZE_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/O1_size_fwd.hpp b/include/ndnboost/mpl/O1_size_fwd.hpp
index 23542c6..4a97863 100644
--- a/include/ndnboost/mpl/O1_size_fwd.hpp
+++ b/include/ndnboost/mpl/O1_size_fwd.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_O1_SIZE_FWD_HPP_INCLUDED
-#define BOOST_MPL_O1_SIZE_FWD_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_O1_SIZE_FWD_HPP_INCLUDED
+#define NDNBOOST_MPL_O1_SIZE_FWD_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -21,4 +21,4 @@
 
 }}
 
-#endif // BOOST_MPL_O1_SIZE_FWD_HPP_INCLUDED
+#endif // NDNBOOST_MPL_O1_SIZE_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/advance.hpp b/include/ndnboost/mpl/advance.hpp
index 6cfd7ac..6d00835 100644
--- a/include/ndnboost/mpl/advance.hpp
+++ b/include/ndnboost/mpl/advance.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_ADVANCE_HPP_INCLUDED
-#define BOOST_MPL_ADVANCE_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_ADVANCE_HPP_INCLUDED
+#define NDNBOOST_MPL_ADVANCE_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -40,8 +40,8 @@
 
         typedef typename if_<
               backward_
-            , aux::advance_backward< BOOST_MPL_AUX_VALUE_WKND(offset_)::value >
-            , aux::advance_forward< BOOST_MPL_AUX_VALUE_WKND(offset_)::value >
+            , aux::advance_backward< NDNBOOST_MPL_AUX_VALUE_WKND(offset_)::value >
+            , aux::advance_forward< NDNBOOST_MPL_AUX_VALUE_WKND(offset_)::value >
             >::type f_;
 
         typedef typename apply_wrap1<f_,Iterator>::type type;
@@ -50,8 +50,8 @@
 
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(Iterator)
-    , typename BOOST_MPL_AUX_NA_PARAM(N)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(Iterator)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N)
     >
 struct advance
     : advance_impl< typename tag<Iterator>::type >
@@ -61,7 +61,7 @@
 
 template<
       typename Iterator
-    , BOOST_MPL_AUX_NTTP_DECL(long, N)
+    , NDNBOOST_MPL_AUX_NTTP_DECL(long, N)
     >
 struct advance_c
     : advance_impl< typename tag<Iterator>::type >
@@ -69,8 +69,8 @@
 {
 };
 
-BOOST_MPL_AUX_NA_SPEC(2, advance)
+NDNBOOST_MPL_AUX_NA_SPEC(2, advance)
 
 }}
 
-#endif // BOOST_MPL_ADVANCE_HPP_INCLUDED
+#endif // NDNBOOST_MPL_ADVANCE_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/advance_fwd.hpp b/include/ndnboost/mpl/advance_fwd.hpp
index 0f6864d..1d25862 100644
--- a/include/ndnboost/mpl/advance_fwd.hpp
+++ b/include/ndnboost/mpl/advance_fwd.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_ADVANCE_FWD_HPP_INCLUDED
-#define BOOST_MPL_ADVANCE_FWD_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_ADVANCE_FWD_HPP_INCLUDED
+#define NDNBOOST_MPL_ADVANCE_FWD_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -18,11 +18,11 @@
 
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_COMMON_NAME_WKND(advance)
+NDNBOOST_MPL_AUX_COMMON_NAME_WKND(advance)
 
 template< typename Tag > struct advance_impl;
 template< typename Iterator, typename N > struct advance;
 
 }}
 
-#endif // BOOST_MPL_ADVANCE_FWD_HPP_INCLUDED
+#endif // NDNBOOST_MPL_ADVANCE_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/always.hpp b/include/ndnboost/mpl/always.hpp
index 7c37f0d..eeba646 100644
--- a/include/ndnboost/mpl/always.hpp
+++ b/include/ndnboost/mpl/always.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_ALWAYS_HPP_INCLUDED
-#define BOOST_MPL_ALWAYS_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_ALWAYS_HPP_INCLUDED
+#define NDNBOOST_MPL_ALWAYS_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2001-2004
 //
@@ -24,7 +24,7 @@
 {
     template<
           typename T
-        BOOST_MPL_PP_NESTED_DEF_PARAMS_TAIL(1, typename T, na)
+        NDNBOOST_MPL_PP_NESTED_DEF_PARAMS_TAIL(1, typename T, na)
         >
     struct apply
     {
@@ -32,8 +32,8 @@
     };
 };
 
-BOOST_MPL_AUX_ARITY_SPEC(1, always)
+NDNBOOST_MPL_AUX_ARITY_SPEC(1, always)
 
 }}
 
-#endif // BOOST_MPL_ALWAYS_HPP_INCLUDED
+#endif // NDNBOOST_MPL_ALWAYS_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/and.hpp b/include/ndnboost/mpl/and.hpp
index c23a6b7..3bc9d48 100644
--- a/include/ndnboost/mpl/and.hpp
+++ b/include/ndnboost/mpl/and.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AND_HPP_INCLUDED
-#define BOOST_MPL_AND_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AND_HPP_INCLUDED
+#define NDNBOOST_MPL_AND_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -16,8 +16,8 @@
 
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
 #   include <ndnboost/mpl/bool.hpp>
 #   include <ndnboost/mpl/aux_/nested_type_wknd.hpp>
@@ -38,7 +38,7 @@
 #endif
 #endif
 
-#   define BOOST_MPL_PREPROCESSED_HEADER and.hpp
+#   define NDNBOOST_MPL_PREPROCESSED_HEADER and.hpp
 #   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
 
 #if defined(_MSC_VER)
@@ -56,5 +56,5 @@
 #   define AUX778076_OP_VALUE2 true
 #   include <ndnboost/mpl/aux_/logical_op.hpp>
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_AND_HPP_INCLUDED
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_AND_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/apply.hpp b/include/ndnboost/mpl/apply.hpp
index fa18a98..0fd6612 100644
--- a/include/ndnboost/mpl/apply.hpp
+++ b/include/ndnboost/mpl/apply.hpp
@@ -1,10 +1,10 @@
 
-#if !defined(BOOST_PP_IS_ITERATING)
+#if !defined(NDNBOOST_PP_IS_ITERATING)
 
 ///// header body
 
-#ifndef BOOST_MPL_APPLY_HPP_INCLUDED
-#define BOOST_MPL_APPLY_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_APPLY_HPP_INCLUDED
+#define NDNBOOST_MPL_APPLY_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -18,7 +18,7 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/apply_fwd.hpp>
 #   include <ndnboost/mpl/apply_wrap.hpp>
 #   include <ndnboost/mpl/placeholders.hpp>
@@ -29,10 +29,10 @@
 
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
-#   define BOOST_MPL_PREPROCESSED_HEADER apply.hpp
+#   define NDNBOOST_MPL_PREPROCESSED_HEADER apply.hpp
 #   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
 
 #else
@@ -58,52 +58,52 @@
 
 // local macros, #undef-ined at the end of the header
 #   define AUX778076_APPLY_PARAMS(param) \
-    BOOST_MPL_PP_PARAMS( \
-          BOOST_MPL_LIMIT_METAFUNCTION_ARITY \
+    NDNBOOST_MPL_PP_PARAMS( \
+          NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY \
         , param \
         ) \
     /**/
 
 #   define AUX778076_APPLY_DEF_PARAMS(param, value) \
-    BOOST_MPL_PP_DEFAULT_PARAMS( \
-          BOOST_MPL_LIMIT_METAFUNCTION_ARITY \
+    NDNBOOST_MPL_PP_DEFAULT_PARAMS( \
+          NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY \
         , param \
         , value \
         ) \
     /**/
 
 #   define AUX778076_APPLY_N_PARAMS(n, param) \
-    BOOST_MPL_PP_PARAMS(n, param) \
+    NDNBOOST_MPL_PP_PARAMS(n, param) \
     /**/
 
 #   define AUX778076_APPLY_N_COMMA_PARAMS(n, param) \
-    BOOST_PP_COMMA_IF(n) \
-    BOOST_MPL_PP_PARAMS(n, param) \
+    NDNBOOST_PP_COMMA_IF(n) \
+    NDNBOOST_MPL_PP_PARAMS(n, param) \
     /**/
 
 #   define AUX778076_APPLY_N_PARTIAL_SPEC_PARAMS(n, param, def) \
-    BOOST_PP_COMMA_IF(n) \
-    BOOST_MPL_PP_PARTIAL_SPEC_PARAMS(n, param, def) \
+    NDNBOOST_PP_COMMA_IF(n) \
+    NDNBOOST_MPL_PP_PARTIAL_SPEC_PARAMS(n, param, def) \
     /**/
     
 #   define AUX778076_APPLY_N_SPEC_PARAMS(n, param) \
-    BOOST_MPL_PP_ENUM(BOOST_PP_INC(n), param) \
+    NDNBOOST_MPL_PP_ENUM(NDNBOOST_PP_INC(n), param) \
     /**/
 
 
-#define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, <ndnboost/mpl/apply.hpp>))
-#include BOOST_PP_ITERATE()
+#define NDNBOOST_PP_ITERATION_PARAMS_1 \
+    (3,(0, NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY, <ndnboost/mpl/apply.hpp>))
+#include NDNBOOST_PP_ITERATE()
 
-#   if !defined(BOOST_MPL_CFG_NO_APPLY_TEMPLATE)
+#   if !defined(NDNBOOST_MPL_CFG_NO_APPLY_TEMPLATE)
 // real C++ version is already taken care of
-#   if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#   if defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 namespace aux {
 // apply_count_args
 #define AUX778076_COUNT_ARGS_PREFIX apply
 #define AUX778076_COUNT_ARGS_DEFAULT na
-#define AUX778076_COUNT_ARGS_ARITY BOOST_MPL_LIMIT_METAFUNCTION_ARITY
+#define AUX778076_COUNT_ARGS_ARITY NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY
 #include <ndnboost/mpl/aux_/count_args.hpp>
 }
 
@@ -118,8 +118,8 @@
 {
 };
 
-#   endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#   endif // BOOST_MPL_CFG_NO_APPLY_TEMPLATE
+#   endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#   endif // NDNBOOST_MPL_CFG_NO_APPLY_TEMPLATE
 
 #   undef AUX778076_APPLY_N_SPEC_PARAMS
 #   undef AUX778076_APPLY_N_PARTIAL_SPEC_PARAMS
@@ -130,62 +130,62 @@
 
 }}
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_APPLY_HPP_INCLUDED
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_APPLY_HPP_INCLUDED
 
 ///// iteration, depth == 1
 
 // For gcc 4.4 compatability, we must include the
-// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
-#else // BOOST_PP_IS_ITERATING
-#if BOOST_PP_ITERATION_DEPTH() == 1
+// NDNBOOST_PP_ITERATION_DEPTH test inside an #else clause.
+#else // NDNBOOST_PP_IS_ITERATING
+#if NDNBOOST_PP_ITERATION_DEPTH() == 1
 
-#   define i_ BOOST_PP_FRAME_ITERATION(1)
+#   define i_ NDNBOOST_PP_FRAME_ITERATION(1)
 
 template<
       typename F AUX778076_APPLY_N_COMMA_PARAMS(i_, typename T)
     >
-struct BOOST_PP_CAT(apply,i_)
-#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-    : BOOST_PP_CAT(apply_wrap,i_)< 
+struct NDNBOOST_PP_CAT(apply,i_)
+#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
+    : NDNBOOST_PP_CAT(apply_wrap,i_)< 
           typename lambda<F>::type
         AUX778076_APPLY_N_COMMA_PARAMS(i_, T)
         >
 {
 #else
 {
-    typedef typename BOOST_PP_CAT(apply_wrap,i_)< 
+    typedef typename NDNBOOST_PP_CAT(apply_wrap,i_)< 
           typename lambda<F>::type
         AUX778076_APPLY_N_COMMA_PARAMS(i_, T)
         >::type type;
 #endif
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          BOOST_PP_INC(i_)
-        , BOOST_PP_CAT(apply,i_)
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
+          NDNBOOST_PP_INC(i_)
+        , NDNBOOST_PP_CAT(apply,i_)
         , (F AUX778076_APPLY_N_COMMA_PARAMS(i_,T))
         )
 };
 
 
-#if defined(BOOST_MPL_CFG_MSVC_ETI_BUG)
+#if defined(NDNBOOST_MPL_CFG_MSVC_ETI_BUG)
 /// workaround for ETI bug
 template<>
-struct BOOST_PP_CAT(apply,i_)<AUX778076_APPLY_N_SPEC_PARAMS(i_, int)>
+struct NDNBOOST_PP_CAT(apply,i_)<AUX778076_APPLY_N_SPEC_PARAMS(i_, int)>
 {
     typedef int type;
 };
 #endif
 
-#   if !defined(BOOST_MPL_CFG_NO_APPLY_TEMPLATE)
-#   if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#   if !defined(NDNBOOST_MPL_CFG_NO_APPLY_TEMPLATE)
+#   if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
-#if i_ == BOOST_MPL_LIMIT_METAFUNCTION_ARITY
+#if i_ == NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY
 /// primary template (not a specialization!)
 template<
       typename F AUX778076_APPLY_N_COMMA_PARAMS(i_, typename T)
     >
 struct apply
-    : BOOST_PP_CAT(apply,i_)< F AUX778076_APPLY_N_COMMA_PARAMS(i_, T) >
+    : NDNBOOST_PP_CAT(apply,i_)< F AUX778076_APPLY_N_COMMA_PARAMS(i_, T) >
 {
 };
 #else
@@ -193,14 +193,14 @@
       typename F AUX778076_APPLY_N_COMMA_PARAMS(i_, typename T)
     >
 struct apply< F AUX778076_APPLY_N_PARTIAL_SPEC_PARAMS(i_, T, na) >
-    : BOOST_PP_CAT(apply,i_)< F AUX778076_APPLY_N_COMMA_PARAMS(i_, T) >
+    : NDNBOOST_PP_CAT(apply,i_)< F AUX778076_APPLY_N_COMMA_PARAMS(i_, T) >
 {
 };
 #endif
 
-#   else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#   else // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
-#if !defined(BOOST_MPL_CFG_NO_APPLY_TEMPLATE)
+#if !defined(NDNBOOST_MPL_CFG_NO_APPLY_TEMPLATE)
 namespace aux {
 
 template<>
@@ -211,7 +211,7 @@
         >
     struct result_
     {
-        typedef BOOST_PP_CAT(apply,i_)<
+        typedef NDNBOOST_PP_CAT(apply,i_)<
               F AUX778076_APPLY_N_COMMA_PARAMS(i_, T)
             > type;
     };
@@ -220,10 +220,10 @@
 } // namespace aux
 #endif
 
-#   endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#   endif // BOOST_MPL_CFG_NO_APPLY_TEMPLATE
+#   endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#   endif // NDNBOOST_MPL_CFG_NO_APPLY_TEMPLATE
 
 #   undef i_
 
-#endif // BOOST_PP_ITERATION_DEPTH()
-#endif // BOOST_PP_IS_ITERATING
+#endif // NDNBOOST_PP_ITERATION_DEPTH()
+#endif // NDNBOOST_PP_IS_ITERATING
diff --git a/include/ndnboost/mpl/apply_fwd.hpp b/include/ndnboost/mpl/apply_fwd.hpp
index fa53006..0477e06 100644
--- a/include/ndnboost/mpl/apply_fwd.hpp
+++ b/include/ndnboost/mpl/apply_fwd.hpp
@@ -1,10 +1,10 @@
 
-#if !defined(BOOST_PP_IS_ITERATING)
+#if !defined(NDNBOOST_PP_IS_ITERATING)
 
 ///// header body
 
-#ifndef BOOST_MPL_APPLY_FWD_HPP_INCLUDED
-#define BOOST_MPL_APPLY_FWD_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_APPLY_FWD_HPP_INCLUDED
+#define NDNBOOST_MPL_APPLY_FWD_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -18,16 +18,16 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/aux_/na.hpp>
 #endif
 
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
-#   define BOOST_MPL_PREPROCESSED_HEADER apply_fwd.hpp
+#   define NDNBOOST_MPL_PREPROCESSED_HEADER apply_fwd.hpp
 #   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
 
 #else
@@ -44,29 +44,29 @@
 
 // agurt, 15/jan/02: top-level 'apply' template gives an ICE on MSVC
 // (for known reasons)
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-#   define BOOST_MPL_CFG_NO_APPLY_TEMPLATE
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
+#   define NDNBOOST_MPL_CFG_NO_APPLY_TEMPLATE
 #endif
 
 namespace ndnboost { namespace mpl {
 
 // local macro, #undef-ined at the end of the header
 #   define AUX778076_APPLY_DEF_PARAMS(param, value) \
-    BOOST_MPL_PP_DEFAULT_PARAMS( \
-          BOOST_MPL_LIMIT_METAFUNCTION_ARITY \
+    NDNBOOST_MPL_PP_DEFAULT_PARAMS( \
+          NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY \
         , param \
         , value \
         ) \
     /**/
 
 #   define AUX778076_APPLY_N_COMMA_PARAMS(n, param) \
-    BOOST_PP_COMMA_IF(n) \
-    BOOST_MPL_PP_PARAMS(n, param) \
+    NDNBOOST_PP_COMMA_IF(n) \
+    NDNBOOST_MPL_PP_PARAMS(n, param) \
     /**/
 
-#   if !defined(BOOST_MPL_CFG_NO_APPLY_TEMPLATE)
+#   if !defined(NDNBOOST_MPL_CFG_NO_APPLY_TEMPLATE)
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 // forward declaration
 template<
       typename F, AUX778076_APPLY_DEF_PARAMS(typename T, na)
@@ -74,15 +74,15 @@
 struct apply;
 #else
 namespace aux {
-template< BOOST_AUX_NTTP_DECL(int, arity_) > struct apply_chooser;
+template< NDNBOOST_AUX_NTTP_DECL(int, arity_) > struct apply_chooser;
 }
 #endif
 
-#   endif // BOOST_MPL_CFG_NO_APPLY_TEMPLATE
+#   endif // NDNBOOST_MPL_CFG_NO_APPLY_TEMPLATE
 
-#define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, <ndnboost/mpl/apply_fwd.hpp>))
-#include BOOST_PP_ITERATE()
+#define NDNBOOST_PP_ITERATION_PARAMS_1 \
+    (3,(0, NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY, <ndnboost/mpl/apply_fwd.hpp>))
+#include NDNBOOST_PP_ITERATE()
 
 
 #   undef AUX778076_APPLY_N_COMMA_PARAMS
@@ -90,18 +90,18 @@
 
 }}
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_APPLY_FWD_HPP_INCLUDED
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_APPLY_FWD_HPP_INCLUDED
 
 ///// iteration
 
 #else
-#define i_ BOOST_PP_FRAME_ITERATION(1)
+#define i_ NDNBOOST_PP_FRAME_ITERATION(1)
 
 template<
       typename F AUX778076_APPLY_N_COMMA_PARAMS(i_, typename T)
     >
-struct BOOST_PP_CAT(apply,i_);
+struct NDNBOOST_PP_CAT(apply,i_);
 
 #undef i_
-#endif // BOOST_PP_IS_ITERATING
+#endif // NDNBOOST_PP_IS_ITERATING
diff --git a/include/ndnboost/mpl/apply_wrap.hpp b/include/ndnboost/mpl/apply_wrap.hpp
index 1f17eb0..5e7c042 100644
--- a/include/ndnboost/mpl/apply_wrap.hpp
+++ b/include/ndnboost/mpl/apply_wrap.hpp
@@ -1,10 +1,10 @@
 
-#if !defined(BOOST_PP_IS_ITERATING)
+#if !defined(NDNBOOST_PP_IS_ITERATING)
 
 ///// header body
 
-#ifndef BOOST_MPL_APPLY_WRAP_HPP_INCLUDED
-#define BOOST_MPL_APPLY_WRAP_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_APPLY_WRAP_HPP_INCLUDED
+#define NDNBOOST_MPL_APPLY_WRAP_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2008
 //
@@ -18,7 +18,7 @@
 // $Date: 2008-10-10 23:50:46 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49272 $
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/aux_/arity.hpp>
 #   include <ndnboost/mpl/aux_/has_apply.hpp>
 #   include <ndnboost/mpl/aux_/na.hpp>
@@ -27,10 +27,10 @@
 
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
-#   define BOOST_MPL_PREPROCESSED_HEADER apply_wrap.hpp
+#   define NDNBOOST_MPL_PREPROCESSED_HEADER apply_wrap.hpp
 #   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
 
 #else
@@ -56,17 +56,17 @@
 
 // local macros, #undef-ined at the end of the header
 #   define AUX778076_APPLY_WRAP_PARAMS(n, param) \
-    BOOST_MPL_PP_PARAMS(n, param) \
+    NDNBOOST_MPL_PP_PARAMS(n, param) \
     /**/
 
 #   define AUX778076_APPLY_WRAP_SPEC_PARAMS(n, param) \
-    BOOST_MPL_PP_ENUM(BOOST_PP_INC(n), param) \
+    NDNBOOST_MPL_PP_ENUM(NDNBOOST_PP_INC(n), param) \
     /**/
 
 
-#define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, <ndnboost/mpl/apply_wrap.hpp>))
-#include BOOST_PP_ITERATE()
+#define NDNBOOST_PP_ITERATION_PARAMS_1 \
+    (3,(0, NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY, <ndnboost/mpl/apply_wrap.hpp>))
+#include NDNBOOST_PP_ITERATE()
 
 
 #   undef AUX778076_APPLY_WRAP_SPEC_PARAMS
@@ -74,57 +74,57 @@
 
 }}
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_APPLY_WRAP_HPP_INCLUDED
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_APPLY_WRAP_HPP_INCLUDED
 
 ///// iteration, depth == 1
 
 // For gcc 4.4 compatability, we must include the
-// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
-#else // BOOST_PP_IS_ITERATING
-#if BOOST_PP_ITERATION_DEPTH() == 1
+// NDNBOOST_PP_ITERATION_DEPTH test inside an #else clause.
+#else // NDNBOOST_PP_IS_ITERATING
+#if NDNBOOST_PP_ITERATION_DEPTH() == 1
 
-#   define i_ BOOST_PP_FRAME_ITERATION(1)
+#   define i_ NDNBOOST_PP_FRAME_ITERATION(1)
 
-#   if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+#   if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
 // MSVC version
 
-#define AUX778076_MSVC_DTW_NAME BOOST_PP_CAT(msvc_apply,i_)
+#define AUX778076_MSVC_DTW_NAME NDNBOOST_PP_CAT(msvc_apply,i_)
 #define AUX778076_MSVC_DTW_ORIGINAL_NAME apply
 #define AUX778076_MSVC_DTW_ARITY i_
 #include <ndnboost/mpl/aux_/msvc_dtw.hpp>
 
 template<
-      typename F BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T)
+      typename F NDNBOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T)
     >
-struct BOOST_PP_CAT(apply_wrap,i_)
+struct NDNBOOST_PP_CAT(apply_wrap,i_)
 {
     // Metafunction forwarding confuses vc6
-    typedef typename BOOST_PP_CAT(msvc_apply,i_)<F>::template result_<
+    typedef typename NDNBOOST_PP_CAT(msvc_apply,i_)<F>::template result_<
           AUX778076_APPLY_WRAP_PARAMS(i_, T)
         >::type type;
 };
 
-#   elif defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
+#   elif defined(NDNBOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
 // MWCW/Borland version
 
 template<
-      int N, typename F BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T)
+      int N, typename F NDNBOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T)
     >
-struct BOOST_PP_CAT(apply_wrap_impl,i_);
+struct NDNBOOST_PP_CAT(apply_wrap_impl,i_);
 
-#define BOOST_PP_ITERATION_PARAMS_2 \
-    (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY - i_, <ndnboost/mpl/apply_wrap.hpp>))
-#include BOOST_PP_ITERATE()
+#define NDNBOOST_PP_ITERATION_PARAMS_2 \
+    (3,(0, NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY - i_, <ndnboost/mpl/apply_wrap.hpp>))
+#include NDNBOOST_PP_ITERATE()
 
 template<
-      typename F BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T)
+      typename F NDNBOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T)
     >
-struct BOOST_PP_CAT(apply_wrap,i_)
-    : BOOST_PP_CAT(apply_wrap_impl,i_)<
+struct NDNBOOST_PP_CAT(apply_wrap,i_)
+    : NDNBOOST_PP_CAT(apply_wrap_impl,i_)<
           ::ndnboost::mpl::aux::arity<F,i_>::value
         , F
-        BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, T)
+        NDNBOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, T)
         >::type
 {
 };
@@ -133,14 +133,14 @@
 // ISO98 C++, with minor concession to vc7
 
 template<
-      typename F BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T)
+      typename F NDNBOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T)
 #if i_ == 0
     , typename has_apply_ = typename aux::has_apply<F>::type
 #endif
     >
-struct BOOST_PP_CAT(apply_wrap,i_)
+struct NDNBOOST_PP_CAT(apply_wrap,i_)
 // metafunction forwarding confuses MSVC 7.0
-#if !BOOST_WORKAROUND(BOOST_MSVC, == 1300)
+#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1300)
     : F::template apply< AUX778076_APPLY_WRAP_PARAMS(i_, T) >
 {
 #else
@@ -151,9 +151,9 @@
 #endif
 };
 
-#if i_ == 0 && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#if i_ == 0 && !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 template< typename F >
-struct BOOST_PP_CAT(apply_wrap,i_)<F,true_>
+struct NDNBOOST_PP_CAT(apply_wrap,i_)<F,true_>
     : F::apply
 {
 };
@@ -161,10 +161,10 @@
 
 #   endif // workarounds
 
-#if defined(BOOST_MPL_CFG_MSVC_ETI_BUG)
+#if defined(NDNBOOST_MPL_CFG_MSVC_ETI_BUG)
 /// workaround for ETI bug
 template<>
-struct BOOST_PP_CAT(apply_wrap,i_)<AUX778076_APPLY_WRAP_SPEC_PARAMS(i_, int)>
+struct NDNBOOST_PP_CAT(apply_wrap,i_)<AUX778076_APPLY_WRAP_SPEC_PARAMS(i_, int)>
 {
     typedef int type;
 };
@@ -174,13 +174,13 @@
 
 ///// iteration, depth == 2
 
-#elif BOOST_PP_ITERATION_DEPTH() == 2
+#elif NDNBOOST_PP_ITERATION_DEPTH() == 2
 
-#   define j_ BOOST_PP_FRAME_ITERATION(2)
+#   define j_ NDNBOOST_PP_FRAME_ITERATION(2)
 
 #if i_ == 0 && j_ == 0 \
-    && defined(BOOST_MPL_CFG_BCC590_WORKAROUNDS) \
-    && !defined(BOOST_MPL_CFG_NO_HAS_APPLY)
+    && defined(NDNBOOST_MPL_CFG_BCC590_WORKAROUNDS) \
+    && !defined(NDNBOOST_MPL_CFG_NO_HAS_APPLY)
 
 template< typename F, bool F_has_apply >
 struct apply_wrap_impl0_bcb {
@@ -193,12 +193,12 @@
 };
 
 template<
-      typename F BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T)
+      typename F NDNBOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T)
     >
-struct BOOST_PP_CAT(apply_wrap_impl,i_)<
-          BOOST_MPL_PP_ADD(i_, j_)
+struct NDNBOOST_PP_CAT(apply_wrap_impl,i_)<
+          NDNBOOST_MPL_PP_ADD(i_, j_)
         , F
-        BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, T)
+        NDNBOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, T)
         >
 {
     typedef apply_wrap_impl0_bcb< F, aux::has_apply< F >::value >::type type;
@@ -206,12 +206,12 @@
 #else
 
 template<
-      typename F BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T)
+      typename F NDNBOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T)
     >
-struct BOOST_PP_CAT(apply_wrap_impl,i_)<
-          BOOST_MPL_PP_ADD(i_, j_)
+struct NDNBOOST_PP_CAT(apply_wrap_impl,i_)<
+          NDNBOOST_MPL_PP_ADD(i_, j_)
         , F
-        BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, T)
+        NDNBOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, T)
         >
 {
     typedef typename F::template apply<
@@ -221,7 +221,7 @@
 /// metafunction classes
         na
 #else
-        BOOST_PP_COMMA_IF(BOOST_PP_AND(i_, j_)) BOOST_MPL_PP_ENUM(j_, na)
+        NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_AND(i_, j_)) NDNBOOST_MPL_PP_ENUM(j_, na)
 #endif
         > type;
 };
@@ -230,5 +230,5 @@
 
 #   undef j_
 
-#endif // BOOST_PP_ITERATION_DEPTH()
-#endif // BOOST_PP_IS_ITERATING
+#endif // NDNBOOST_PP_ITERATION_DEPTH()
+#endif // NDNBOOST_PP_IS_ITERATING
diff --git a/include/ndnboost/mpl/arg.hpp b/include/ndnboost/mpl/arg.hpp
index e3bc249..440164a 100644
--- a/include/ndnboost/mpl/arg.hpp
+++ b/include/ndnboost/mpl/arg.hpp
@@ -1,10 +1,10 @@
 
-#if !defined(BOOST_PP_IS_ITERATING)
+#if !defined(NDNBOOST_PP_IS_ITERATING)
 
 ///// header body
 
-#ifndef BOOST_MPL_ARG_HPP_INCLUDED
-#define BOOST_MPL_ARG_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_ARG_HPP_INCLUDED
+#define NDNBOOST_MPL_ARG_HPP_INCLUDED
 
 // Copyright Peter Dimov 2001-2002
 // Copyright Aleksey Gurtovoy 2001-2004
@@ -19,7 +19,7 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/arg_fwd.hpp>
 #   include <ndnboost/mpl/aux_/na.hpp>
 #   include <ndnboost/mpl/aux_/na_assert.hpp>
@@ -30,10 +30,10 @@
 #include <ndnboost/mpl/aux_/config/static_constant.hpp>
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
-#   define BOOST_MPL_PREPROCESSED_HEADER arg.hpp
+#   define NDNBOOST_MPL_PREPROCESSED_HEADER arg.hpp
 #   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
 
 #else
@@ -49,61 +49,61 @@
 #   include <ndnboost/preprocessor/inc.hpp>
 #   include <ndnboost/preprocessor/cat.hpp>
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 
 // local macro, #undef-ined at the end of the header
-#if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
+#if !defined(NDNBOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
 #   define AUX778076_ARG_N_DEFAULT_PARAMS(param,value) \
-    BOOST_MPL_PP_DEFAULT_PARAMS( \
-          BOOST_MPL_LIMIT_METAFUNCTION_ARITY \
+    NDNBOOST_MPL_PP_DEFAULT_PARAMS( \
+          NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY \
         , param \
         , value \
         ) \
     /**/
 #else
 #   define AUX778076_ARG_N_DEFAULT_PARAMS(param,value) \
-    BOOST_MPL_PP_PARAMS( \
-          BOOST_MPL_LIMIT_METAFUNCTION_ARITY \
+    NDNBOOST_MPL_PP_PARAMS( \
+          NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY \
         , param \
         ) \
     /**/
 #endif
 
-#define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, <ndnboost/mpl/arg.hpp>))
-#include BOOST_PP_ITERATE()
+#define NDNBOOST_PP_ITERATION_PARAMS_1 \
+    (3,(0, NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY, <ndnboost/mpl/arg.hpp>))
+#include NDNBOOST_PP_ITERATE()
 
 
 #   undef AUX778076_ARG_N_DEFAULT_PARAMS
 
-BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int,arg)
+NDNBOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int,arg)
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_ARG_HPP_INCLUDED
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_ARG_HPP_INCLUDED
 
 ///// iteration
 
 #else
-#define i_ BOOST_PP_FRAME_ITERATION(1)
+#define i_ NDNBOOST_PP_FRAME_ITERATION(1)
 
 #if i_ > 0
 
 template<> struct arg<i_>
 {
-    BOOST_STATIC_CONSTANT(int, value = i_);
-    typedef arg<BOOST_PP_INC(i_)> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_STATIC_CONSTANT(int, value = i_);
+    typedef arg<NDNBOOST_PP_INC(i_)> next;
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           AUX778076_ARG_N_DEFAULT_PARAMS(typename U, na)
         >
     struct apply
     {
-        typedef BOOST_PP_CAT(U,i_) type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        typedef NDNBOOST_PP_CAT(U,i_) type;
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
@@ -111,9 +111,9 @@
 
 template<> struct arg<-1>
 {
-    BOOST_STATIC_CONSTANT(int, value = -1);
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_STATIC_CONSTANT(int, value = -1);
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           AUX778076_ARG_N_DEFAULT_PARAMS(typename U, na)
@@ -121,11 +121,11 @@
     struct apply
     {
         typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 #endif // i_ > 0
 
 #undef i_
-#endif // BOOST_PP_IS_ITERATING
+#endif // NDNBOOST_PP_IS_ITERATING
diff --git a/include/ndnboost/mpl/arg_fwd.hpp b/include/ndnboost/mpl/arg_fwd.hpp
index 9aec30d..adc8ee3 100644
--- a/include/ndnboost/mpl/arg_fwd.hpp
+++ b/include/ndnboost/mpl/arg_fwd.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_ARG_FWD_HPP_INCLUDED
-#define BOOST_MPL_ARG_FWD_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_ARG_FWD_HPP_INCLUDED
+#define NDNBOOST_MPL_ARG_FWD_HPP_INCLUDED
 
 // Copyright Peter Dimov 2001-2002
 // Copyright Aleksey Gurtovoy 2001-2004
@@ -18,11 +18,11 @@
 #include <ndnboost/mpl/aux_/adl_barrier.hpp>
 #include <ndnboost/mpl/aux_/nttp_decl.hpp>
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 
-template< BOOST_MPL_AUX_NTTP_DECL(int, N) > struct arg;
+template< NDNBOOST_MPL_AUX_NTTP_DECL(int, N) > struct arg;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-BOOST_MPL_AUX_ADL_BARRIER_DECL(arg)
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_DECL(arg)
 
-#endif // BOOST_MPL_ARG_FWD_HPP_INCLUDED
+#endif // NDNBOOST_MPL_ARG_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/assert.hpp b/include/ndnboost/mpl/assert.hpp
index 6d14b2f..b3d5deb 100644
--- a/include/ndnboost/mpl/assert.hpp
+++ b/include/ndnboost/mpl/assert.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_ASSERT_HPP_INCLUDED
-#define BOOST_MPL_ASSERT_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_ASSERT_HPP_INCLUDED
+#define NDNBOOST_MPL_ASSERT_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2006
 //
@@ -34,42 +34,42 @@
 #include <ndnboost/config.hpp> // make sure 'size_t' is placed into 'std'
 #include <cstddef>
 
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1700)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1700)
 #include <ndnboost/mpl/if.hpp>
 #endif
 
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
-    || (BOOST_MPL_CFG_GCC != 0) \
-    || BOOST_WORKAROUND(__IBMCPP__, <= 600)
-#   define BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES
+#if NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x610)) \
+    || (NDNBOOST_MPL_CFG_GCC != 0) \
+    || NDNBOOST_WORKAROUND(__IBMCPP__, <= 600)
+#   define NDNBOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES
 #endif
 
-#if BOOST_WORKAROUND(__MWERKS__, < 0x3202) \
-    || BOOST_WORKAROUND(__EDG_VERSION__, <= 238) \
-    || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
-    || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
-#   define BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER
+#if NDNBOOST_WORKAROUND(__MWERKS__, < 0x3202) \
+    || NDNBOOST_WORKAROUND(__EDG_VERSION__, <= 238) \
+    || NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x610)) \
+    || NDNBOOST_WORKAROUND(__DMC__, NDNBOOST_TESTED_AT(0x840))
+#   define NDNBOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER
 #endif
 
 // agurt, 10/nov/06: use enums for Borland (which cannot cope with static constants) 
 // and GCC (which issues "unused variable" warnings when static constants are used 
 // at a function scope)
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
-    || (BOOST_MPL_CFG_GCC != 0)
-#   define BOOST_MPL_AUX_ASSERT_CONSTANT(T, expr) enum { expr }
+#if NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x610)) \
+    || (NDNBOOST_MPL_CFG_GCC != 0)
+#   define NDNBOOST_MPL_AUX_ASSERT_CONSTANT(T, expr) enum { expr }
 #else
-#   define BOOST_MPL_AUX_ASSERT_CONSTANT(T, expr) BOOST_STATIC_CONSTANT(T, expr)
+#   define NDNBOOST_MPL_AUX_ASSERT_CONSTANT(T, expr) NDNBOOST_STATIC_CONSTANT(T, expr)
 #endif
 
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 
 struct failed {};
 
 // agurt, 24/aug/04: MSVC 7.1 workaround here and below: return/accept 
 // 'assert<false>' by reference; can't apply it unconditionally -- apparently it
 // degrades the quality of GCC diagnostics
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1310)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1310)
 #   define AUX778076_ASSERT_ARG(x) x&
 #else
 #   define AUX778076_ASSERT_ARG(x) x
@@ -95,7 +95,7 @@
 
 struct assert_
 {
-#if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
+#if !defined(NDNBOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
     template< typename T1, typename T2 = na, typename T3 = na, typename T4 = na > struct types {};
 #endif
     static assert_ const arg;
@@ -103,7 +103,7 @@
 };
 
 
-#if !defined(BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES)
+#if !defined(NDNBOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES)
 
 bool operator==( failed, failed );
 bool operator!=( failed, failed );
@@ -114,14 +114,14 @@
 
 #if defined(__EDG_VERSION__)
 template< bool (*)(failed, failed), long x, long y > struct assert_relation {};
-#   define BOOST_MPL_AUX_ASSERT_RELATION(x, y, r) assert_relation<r,x,y>
+#   define NDNBOOST_MPL_AUX_ASSERT_RELATION(x, y, r) assert_relation<r,x,y>
 #else
-template< BOOST_MPL_AUX_NTTP_DECL(long, x), BOOST_MPL_AUX_NTTP_DECL(long, y), bool (*)(failed, failed) > 
+template< NDNBOOST_MPL_AUX_NTTP_DECL(long, x), NDNBOOST_MPL_AUX_NTTP_DECL(long, y), bool (*)(failed, failed) > 
 struct assert_relation {};
-#   define BOOST_MPL_AUX_ASSERT_RELATION(x, y, r) assert_relation<x,y,r>
+#   define NDNBOOST_MPL_AUX_ASSERT_RELATION(x, y, r) assert_relation<x,y,r>
 #endif
 
-#else // BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES
+#else // NDNBOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES
 
 ndnboost::mpl::aux::weighted_tag<1>::type operator==( assert_, assert_ );
 ndnboost::mpl::aux::weighted_tag<2>::type operator!=( assert_, assert_ );
@@ -134,7 +134,7 @@
 
 #endif 
 
-#if BOOST_WORKAROUND(BOOST_MSVC, >= 1700)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, >= 1700)
 
 template<class Pred>
 struct extract_assert_pred;
@@ -165,7 +165,7 @@
 template< typename T >
 T make_assert_arg();
 
-#elif !defined(BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER)
+#elif !defined(NDNBOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER)
 
 template< bool > struct assert_arg_pred_impl { typedef int type; };
 template<> struct assert_arg_pred_impl<true> { typedef void* type; };
@@ -179,7 +179,7 @@
 template< typename P > struct assert_arg_pred_not
 {
     typedef typename P::type p_type;
-    BOOST_MPL_AUX_ASSERT_CONSTANT( bool, p = !p_type::value );
+    NDNBOOST_MPL_AUX_ASSERT_CONSTANT( bool, p = !p_type::value );
     typedef typename assert_arg_pred_impl<p>::type type;
 };
 
@@ -202,7 +202,7 @@
 assert_not_arg( void (*)(Pred), typename assert_arg_pred<Pred>::type );
 
 
-#else // BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER
+#else // NDNBOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER
         
 template< bool c, typename Pred > struct assert_arg_type_impl
 {
@@ -216,7 +216,7 @@
 };
 
 template< typename Pred > struct assert_arg_type
-    : assert_arg_type_impl< BOOST_MPL_AUX_VALUE_WKND(BOOST_MPL_AUX_NESTED_TYPE_WKND(Pred))::value, Pred >
+    : assert_arg_type_impl< NDNBOOST_MPL_AUX_VALUE_WKND(NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(Pred))::value, Pred >
 {
 };
 
@@ -228,30 +228,30 @@
 typename assert_arg_type< ndnboost::mpl::not_<Pred> >::type 
 assert_not_arg(void (*)(Pred), int);
 
-#   if !defined(BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES)
+#   if !defined(NDNBOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES)
 template< long x, long y, bool (*r)(failed, failed) >
-typename assert_arg_type_impl< false,BOOST_MPL_AUX_ASSERT_RELATION(x,y,r) >::type
-assert_rel_arg( BOOST_MPL_AUX_ASSERT_RELATION(x,y,r) );
+typename assert_arg_type_impl< false,NDNBOOST_MPL_AUX_ASSERT_RELATION(x,y,r) >::type
+assert_rel_arg( NDNBOOST_MPL_AUX_ASSERT_RELATION(x,y,r) );
 #   else
 template< assert_::relations r, long x, long y >
 typename assert_arg_type_impl< false,assert_relation<r,x,y> >::type
 assert_rel_arg( assert_relation<r,x,y> );
 #   endif
 
-#endif // BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER
+#endif // NDNBOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER
 
 #undef AUX778076_ASSERT_ARG
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1700)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1700)
 
-// BOOST_MPL_ASSERT((pred<x,...>))
+// NDNBOOST_MPL_ASSERT((pred<x,...>))
 
-#define BOOST_MPL_ASSERT(pred) \
-BOOST_MPL_AUX_ASSERT_CONSTANT( \
+#define NDNBOOST_MPL_ASSERT(pred) \
+NDNBOOST_MPL_AUX_ASSERT_CONSTANT( \
       std::size_t \
-    , BOOST_PP_CAT(mpl_assertion_in_line_,BOOST_MPL_AUX_PP_COUNTER()) = sizeof( \
+    , NDNBOOST_PP_CAT(mpl_assertion_in_line_,NDNBOOST_MPL_AUX_PP_COUNTER()) = sizeof( \
           ndnboost::mpl::assertion_failed<false>( \
               ndnboost::mpl::make_assert_arg< \
                   typename ndnboost::mpl::eval_assert<void pred>::type \
@@ -261,12 +261,12 @@
     ) \
 /**/
 
-// BOOST_MPL_ASSERT_NOT((pred<x,...>))
+// NDNBOOST_MPL_ASSERT_NOT((pred<x,...>))
 
-#define BOOST_MPL_ASSERT_NOT(pred) \
-BOOST_MPL_AUX_ASSERT_CONSTANT( \
+#define NDNBOOST_MPL_ASSERT_NOT(pred) \
+NDNBOOST_MPL_AUX_ASSERT_CONSTANT( \
       std::size_t \
-    , BOOST_PP_CAT(mpl_assertion_in_line_,BOOST_MPL_AUX_PP_COUNTER()) = sizeof( \
+    , NDNBOOST_PP_CAT(mpl_assertion_in_line_,NDNBOOST_MPL_AUX_PP_COUNTER()) = sizeof( \
           ndnboost::mpl::assertion_failed<false>( \
               ndnboost::mpl::make_assert_arg< \
                   typename ndnboost::mpl::eval_assert_not<void pred>::type \
@@ -278,12 +278,12 @@
 
 #else
 
-// BOOST_MPL_ASSERT((pred<x,...>))
+// NDNBOOST_MPL_ASSERT((pred<x,...>))
 
-#define BOOST_MPL_ASSERT(pred) \
-BOOST_MPL_AUX_ASSERT_CONSTANT( \
+#define NDNBOOST_MPL_ASSERT(pred) \
+NDNBOOST_MPL_AUX_ASSERT_CONSTANT( \
       std::size_t \
-    , BOOST_PP_CAT(mpl_assertion_in_line_,BOOST_MPL_AUX_PP_COUNTER()) = sizeof( \
+    , NDNBOOST_PP_CAT(mpl_assertion_in_line_,NDNBOOST_MPL_AUX_PP_COUNTER()) = sizeof( \
           ndnboost::mpl::assertion_failed<false>( \
               ndnboost::mpl::assert_arg( (void (*) pred)0, 1 ) \
             ) \
@@ -291,12 +291,12 @@
     ) \
 /**/
 
-// BOOST_MPL_ASSERT_NOT((pred<x,...>))
+// NDNBOOST_MPL_ASSERT_NOT((pred<x,...>))
 
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
-#   define BOOST_MPL_ASSERT_NOT(pred) \
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)
+#   define NDNBOOST_MPL_ASSERT_NOT(pred) \
 enum { \
-      BOOST_PP_CAT(mpl_assertion_in_line_,BOOST_MPL_AUX_PP_COUNTER()) = sizeof( \
+      NDNBOOST_PP_CAT(mpl_assertion_in_line_,NDNBOOST_MPL_AUX_PP_COUNTER()) = sizeof( \
           ndnboost::mpl::assertion<false>::failed( \
               ndnboost::mpl::assert_not_arg( (void (*) pred)0, 1 ) \
             ) \
@@ -304,10 +304,10 @@
 }\
 /**/
 #else
-#   define BOOST_MPL_ASSERT_NOT(pred) \
-BOOST_MPL_AUX_ASSERT_CONSTANT( \
+#   define NDNBOOST_MPL_ASSERT_NOT(pred) \
+NDNBOOST_MPL_AUX_ASSERT_CONSTANT( \
       std::size_t \
-    , BOOST_PP_CAT(mpl_assertion_in_line_,BOOST_MPL_AUX_PP_COUNTER()) = sizeof( \
+    , NDNBOOST_PP_CAT(mpl_assertion_in_line_,NDNBOOST_MPL_AUX_PP_COUNTER()) = sizeof( \
           ndnboost::mpl::assertion_failed<false>( \
               ndnboost::mpl::assert_not_arg( (void (*) pred)0, 1 ) \
             ) \
@@ -318,18 +318,18 @@
 
 #endif
 
-// BOOST_MPL_ASSERT_RELATION(x, ==|!=|<=|<|>=|>, y)
+// NDNBOOST_MPL_ASSERT_RELATION(x, ==|!=|<=|<|>=|>, y)
 
-#if defined(BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES)
+#if defined(NDNBOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES)
 
-#   if !defined(BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER)
+#   if !defined(NDNBOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER)
 // agurt, 9/nov/06: 'enum' below is a workaround for gcc 4.0.4/4.1.1 bugs #29522 and #29518
-#   define BOOST_MPL_ASSERT_RELATION_IMPL(counter, x, rel, y)      \
-enum { BOOST_PP_CAT(mpl_assert_rel_value,counter) = (x rel y) }; \
-BOOST_MPL_AUX_ASSERT_CONSTANT( \
+#   define NDNBOOST_MPL_ASSERT_RELATION_IMPL(counter, x, rel, y)      \
+enum { NDNBOOST_PP_CAT(mpl_assert_rel_value,counter) = (x rel y) }; \
+NDNBOOST_MPL_AUX_ASSERT_CONSTANT( \
       std::size_t \
-    , BOOST_PP_CAT(mpl_assertion_in_line_,counter) = sizeof( \
-        ndnboost::mpl::assertion_failed<BOOST_PP_CAT(mpl_assert_rel_value,counter)>( \
+    , NDNBOOST_PP_CAT(mpl_assertion_in_line_,counter) = sizeof( \
+        ndnboost::mpl::assertion_failed<NDNBOOST_PP_CAT(mpl_assert_rel_value,counter)>( \
             (ndnboost::mpl::failed ************ ( ndnboost::mpl::assert_relation< \
                   ndnboost::mpl::assert_::relations( sizeof( \
                       ndnboost::mpl::assert_::arg rel ndnboost::mpl::assert_::arg \
@@ -341,20 +341,20 @@
     ) \
 /**/
 #   else
-#   define BOOST_MPL_ASSERT_RELATION_IMPL(counter, x, rel, y)    \
-BOOST_MPL_AUX_ASSERT_CONSTANT( \
+#   define NDNBOOST_MPL_ASSERT_RELATION_IMPL(counter, x, rel, y)    \
+NDNBOOST_MPL_AUX_ASSERT_CONSTANT( \
       std::size_t \
-    , BOOST_PP_CAT(mpl_assert_rel,counter) = sizeof( \
+    , NDNBOOST_PP_CAT(mpl_assert_rel,counter) = sizeof( \
           ndnboost::mpl::assert_::arg rel ndnboost::mpl::assert_::arg \
         ) \
     ); \
-BOOST_MPL_AUX_ASSERT_CONSTANT( bool, BOOST_PP_CAT(mpl_assert_rel_value,counter) = (x rel y) ); \
-BOOST_MPL_AUX_ASSERT_CONSTANT( \
+NDNBOOST_MPL_AUX_ASSERT_CONSTANT( bool, NDNBOOST_PP_CAT(mpl_assert_rel_value,counter) = (x rel y) ); \
+NDNBOOST_MPL_AUX_ASSERT_CONSTANT( \
       std::size_t \
-    , BOOST_PP_CAT(mpl_assertion_in_line_,counter) = sizeof( \
-        ndnboost::mpl::assertion_failed<BOOST_PP_CAT(mpl_assert_rel_value,counter)>( \
+    , NDNBOOST_PP_CAT(mpl_assertion_in_line_,counter) = sizeof( \
+        ndnboost::mpl::assertion_failed<NDNBOOST_PP_CAT(mpl_assert_rel_value,counter)>( \
               ndnboost::mpl::assert_rel_arg( ndnboost::mpl::assert_relation< \
-                  ndnboost::mpl::assert_::relations(BOOST_PP_CAT(mpl_assert_rel,counter)) \
+                  ndnboost::mpl::assert_::relations(NDNBOOST_PP_CAT(mpl_assert_rel,counter)) \
                 , x \
                 , y \
                 >() ) \
@@ -364,30 +364,30 @@
 /**/
 #   endif
 
-#   define BOOST_MPL_ASSERT_RELATION(x, rel, y) \
-BOOST_MPL_ASSERT_RELATION_IMPL(BOOST_MPL_AUX_PP_COUNTER(), x, rel, y) \
+#   define NDNBOOST_MPL_ASSERT_RELATION(x, rel, y) \
+NDNBOOST_MPL_ASSERT_RELATION_IMPL(NDNBOOST_MPL_AUX_PP_COUNTER(), x, rel, y) \
 /**/
 
-#else // !BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES
+#else // !NDNBOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES
 
-#   if defined(BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER)
-#   define BOOST_MPL_ASSERT_RELATION(x, rel, y) \
-BOOST_MPL_AUX_ASSERT_CONSTANT( \
+#   if defined(NDNBOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER)
+#   define NDNBOOST_MPL_ASSERT_RELATION(x, rel, y) \
+NDNBOOST_MPL_AUX_ASSERT_CONSTANT( \
       std::size_t \
-    , BOOST_PP_CAT(mpl_assertion_in_line_,BOOST_MPL_AUX_PP_COUNTER()) = sizeof( \
+    , NDNBOOST_PP_CAT(mpl_assertion_in_line_,NDNBOOST_MPL_AUX_PP_COUNTER()) = sizeof( \
         ndnboost::mpl::assertion_failed<(x rel y)>( ndnboost::mpl::assert_rel_arg( \
-              ndnboost::mpl::BOOST_MPL_AUX_ASSERT_RELATION(x,y,(&ndnboost::mpl::operator rel))() \
+              ndnboost::mpl::NDNBOOST_MPL_AUX_ASSERT_RELATION(x,y,(&ndnboost::mpl::operator rel))() \
             ) ) \
         ) \
     ) \
 /**/
 #   else
-#   define BOOST_MPL_ASSERT_RELATION(x, rel, y) \
-BOOST_MPL_AUX_ASSERT_CONSTANT( \
+#   define NDNBOOST_MPL_ASSERT_RELATION(x, rel, y) \
+NDNBOOST_MPL_AUX_ASSERT_CONSTANT( \
       std::size_t \
-    , BOOST_PP_CAT(mpl_assertion_in_line_,BOOST_MPL_AUX_PP_COUNTER()) = sizeof( \
+    , NDNBOOST_PP_CAT(mpl_assertion_in_line_,NDNBOOST_MPL_AUX_PP_COUNTER()) = sizeof( \
         ndnboost::mpl::assertion_failed<(x rel y)>( (ndnboost::mpl::failed ************ ( \
-            ndnboost::mpl::BOOST_MPL_AUX_ASSERT_RELATION(x,y,(&ndnboost::mpl::operator rel))::************))0 ) \
+            ndnboost::mpl::NDNBOOST_MPL_AUX_ASSERT_RELATION(x,y,(&ndnboost::mpl::operator rel))::************))0 ) \
         ) \
     ) \
 /**/
@@ -396,43 +396,43 @@
 #endif
 
 
-// BOOST_MPL_ASSERT_MSG( (pred<x,...>::value), USER_PROVIDED_MESSAGE, (types<x,...>) ) 
+// NDNBOOST_MPL_ASSERT_MSG( (pred<x,...>::value), USER_PROVIDED_MESSAGE, (types<x,...>) ) 
 
-#if BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3202))
-#   define BOOST_MPL_ASSERT_MSG_IMPL( counter, c, msg, types_ ) \
+#if NDNBOOST_WORKAROUND(__MWERKS__, NDNBOOST_TESTED_AT(0x3202))
+#   define NDNBOOST_MPL_ASSERT_MSG_IMPL( counter, c, msg, types_ ) \
 struct msg; \
-typedef struct BOOST_PP_CAT(msg,counter) : ndnboost::mpl::assert_ \
+typedef struct NDNBOOST_PP_CAT(msg,counter) : ndnboost::mpl::assert_ \
 { \
     using ndnboost::mpl::assert_::types; \
     static ndnboost::mpl::failed ************ (msg::************ assert_arg()) types_ \
     { return 0; } \
-} BOOST_PP_CAT(mpl_assert_arg,counter); \
-BOOST_MPL_AUX_ASSERT_CONSTANT( \
+} NDNBOOST_PP_CAT(mpl_assert_arg,counter); \
+NDNBOOST_MPL_AUX_ASSERT_CONSTANT( \
       std::size_t \
-    , BOOST_PP_CAT(mpl_assertion_in_line_,counter) = sizeof( \
-        ndnboost::mpl::assertion<(c)>::failed( BOOST_PP_CAT(mpl_assert_arg,counter)::assert_arg() ) \
+    , NDNBOOST_PP_CAT(mpl_assertion_in_line_,counter) = sizeof( \
+        ndnboost::mpl::assertion<(c)>::failed( NDNBOOST_PP_CAT(mpl_assert_arg,counter)::assert_arg() ) \
         ) \
     ) \
 /**/
 #else
-#   define BOOST_MPL_ASSERT_MSG_IMPL( counter, c, msg, types_ )  \
+#   define NDNBOOST_MPL_ASSERT_MSG_IMPL( counter, c, msg, types_ )  \
 struct msg; \
-typedef struct BOOST_PP_CAT(msg,counter) : ndnboost::mpl::assert_ \
+typedef struct NDNBOOST_PP_CAT(msg,counter) : ndnboost::mpl::assert_ \
 { \
     static ndnboost::mpl::failed ************ (msg::************ assert_arg()) types_ \
     { return 0; } \
-} BOOST_PP_CAT(mpl_assert_arg,counter); \
-BOOST_MPL_AUX_ASSERT_CONSTANT( \
+} NDNBOOST_PP_CAT(mpl_assert_arg,counter); \
+NDNBOOST_MPL_AUX_ASSERT_CONSTANT( \
       std::size_t \
-    , BOOST_PP_CAT(mpl_assertion_in_line_,counter) = sizeof( \
-        ndnboost::mpl::assertion_failed<(c)>( BOOST_PP_CAT(mpl_assert_arg,counter)::assert_arg() ) \
+    , NDNBOOST_PP_CAT(mpl_assertion_in_line_,counter) = sizeof( \
+        ndnboost::mpl::assertion_failed<(c)>( NDNBOOST_PP_CAT(mpl_assert_arg,counter)::assert_arg() ) \
         ) \
     ) \
 /**/
 #endif
 
-#define BOOST_MPL_ASSERT_MSG( c, msg, types_ ) \
-BOOST_MPL_ASSERT_MSG_IMPL( BOOST_MPL_AUX_PP_COUNTER(), c, msg, types_ ) \
+#define NDNBOOST_MPL_ASSERT_MSG( c, msg, types_ ) \
+NDNBOOST_MPL_ASSERT_MSG_IMPL( NDNBOOST_MPL_AUX_PP_COUNTER(), c, msg, types_ ) \
 /**/
 
-#endif // BOOST_MPL_ASSERT_HPP_INCLUDED
+#endif // NDNBOOST_MPL_ASSERT_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/at.hpp b/include/ndnboost/mpl/at.hpp
index e875e9d..c3d8968 100644
--- a/include/ndnboost/mpl/at.hpp
+++ b/include/ndnboost/mpl/at.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AT_HPP_INCLUDED
-#define BOOST_MPL_AT_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AT_HPP_INCLUDED
+#define NDNBOOST_MPL_AT_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -25,19 +25,19 @@
 namespace ndnboost { namespace mpl {
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
-    , typename BOOST_MPL_AUX_NA_PARAM(N)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(Sequence)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N)
     >
 struct at
     : at_impl< typename sequence_tag<Sequence>::type >
         ::template apply< Sequence,N >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2,at,(Sequence,N))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2,at,(Sequence,N))
 };
 
 template<
       typename Sequence
-    , BOOST_MPL_AUX_NTTP_DECL(long, N)
+    , NDNBOOST_MPL_AUX_NTTP_DECL(long, N)
     >
 struct at_c
     : at_impl< typename sequence_tag<Sequence>::type >
@@ -45,8 +45,8 @@
 {
 };
 
-BOOST_MPL_AUX_NA_SPEC(2, at)
+NDNBOOST_MPL_AUX_NA_SPEC(2, at)
 
 }}
 
-#endif // BOOST_MPL_AT_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AT_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/at_fwd.hpp b/include/ndnboost/mpl/at_fwd.hpp
index d391547..4a802e2 100644
--- a/include/ndnboost/mpl/at_fwd.hpp
+++ b/include/ndnboost/mpl/at_fwd.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AT_FWD_HPP_INCLUDED
-#define BOOST_MPL_AT_FWD_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AT_FWD_HPP_INCLUDED
+#define NDNBOOST_MPL_AT_FWD_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -21,4 +21,4 @@
 
 }}
 
-#endif // BOOST_MPL_AT_FWD_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AT_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/O1_size_impl.hpp b/include/ndnboost/mpl/aux_/O1_size_impl.hpp
index 2b2cf08..75da92c 100644
--- a/include/ndnboost/mpl/aux_/O1_size_impl.hpp
+++ b/include/ndnboost/mpl/aux_/O1_size_impl.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_O1_SIZE_IMPL_HPP_INCLUDED
-#define BOOST_MPL_O1_SIZE_IMPL_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_O1_SIZE_IMPL_HPP_INCLUDED
+#define NDNBOOST_MPL_O1_SIZE_IMPL_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -29,8 +29,8 @@
 // member, and -1 otherwise; conrete sequences might override it by 
 // specializing either the 'O1_size_impl' or the primary 'O1_size' template
 
-#   if !BOOST_WORKAROUND(BOOST_MSVC, < 1300) \
-    && !BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003))
+#   if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300) \
+    && !NDNBOOST_WORKAROUND(__MWERKS__, NDNBOOST_TESTED_AT(0x3003))
 
 namespace aux {
 template< typename Sequence > struct O1_size_impl
@@ -43,7 +43,7 @@
 struct O1_size_impl
 {
     template< typename Sequence > struct apply
-#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
+#if !defined(NDNBOOST_MPL_CFG_NO_NESTED_FORWARDING)
         : if_<
               aux::has_size<Sequence>
             , aux::O1_size_impl<Sequence>
@@ -58,7 +58,7 @@
             , long_<-1>
             >::type type;
 
-        BOOST_STATIC_CONSTANT(long, value =
+        NDNBOOST_STATIC_CONSTANT(long, value =
               (if_<
                   aux::has_size<Sequence>
                 , aux::O1_size_impl<Sequence>
@@ -69,7 +69,7 @@
     };
 };
 
-#   else // BOOST_MSVC
+#   else // NDNBOOST_MSVC
 
 template< typename Tag >
 struct O1_size_impl
@@ -84,4 +84,4 @@
 
 }}
 
-#endif // BOOST_MPL_O1_SIZE_IMPL_HPP_INCLUDED
+#endif // NDNBOOST_MPL_O1_SIZE_IMPL_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/adl_barrier.hpp b/include/ndnboost/mpl/aux_/adl_barrier.hpp
index cb25ebc..70ad2f7 100644
--- a/include/ndnboost/mpl/aux_/adl_barrier.hpp
+++ b/include/ndnboost/mpl/aux_/adl_barrier.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_ADL_BARRIER_HPP_INCLUDED
-#define BOOST_MPL_AUX_ADL_BARRIER_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_ADL_BARRIER_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_ADL_BARRIER_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2002-2004
 //
@@ -18,31 +18,31 @@
 #include <ndnboost/mpl/aux_/config/gcc.hpp>
 #include <ndnboost/mpl/aux_/config/workaround.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE)
+#if !defined(NDNBOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE)
 
-#   define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE mpl_
-#   define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN namespace mpl_ {
-#   define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE }
-#   define BOOST_MPL_AUX_ADL_BARRIER_DECL(type) \
+#   define NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE mpl_
+#   define NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN namespace mpl_ {
+#   define NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE }
+#   define NDNBOOST_MPL_AUX_ADL_BARRIER_DECL(type) \
     namespace ndnboost { namespace mpl { \
-    using ::BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::type; \
+    using ::NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::type; \
     } } \
 /**/
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-namespace BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE { namespace aux {} }
-namespace ndnboost { namespace mpl { using namespace BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE; 
-namespace aux { using namespace BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::aux; }
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
+namespace NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE { namespace aux {} }
+namespace ndnboost { namespace mpl { using namespace NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE; 
+namespace aux { using namespace NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::aux; }
 }}
 #endif
 
-#else // BOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE
+#else // NDNBOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE
 
-#   define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE ndnboost::mpl
-#   define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN namespace ndnboost { namespace mpl {
-#   define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE }}
-#   define BOOST_MPL_AUX_ADL_BARRIER_DECL(type) /**/
+#   define NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE ndnboost::mpl
+#   define NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN namespace ndnboost { namespace mpl {
+#   define NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE }}
+#   define NDNBOOST_MPL_AUX_ADL_BARRIER_DECL(type) /**/
 
 #endif
 
-#endif // BOOST_MPL_AUX_ADL_BARRIER_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_ADL_BARRIER_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/advance_backward.hpp b/include/ndnboost/mpl/aux_/advance_backward.hpp
index 123df81..9e629f0 100644
--- a/include/ndnboost/mpl/aux_/advance_backward.hpp
+++ b/include/ndnboost/mpl/aux_/advance_backward.hpp
@@ -1,10 +1,10 @@
 
-#if !defined(BOOST_PP_IS_ITERATING)
+#if !defined(NDNBOOST_PP_IS_ITERATING)
 
 ///// header body
 
-#ifndef BOOST_MPL_AUX778076_ADVANCE_BACKWARD_HPP_INCLUDED
-#define BOOST_MPL_AUX778076_ADVANCE_BACKWARD_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX778076_ADVANCE_BACKWARD_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX778076_ADVANCE_BACKWARD_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -18,17 +18,17 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/prior.hpp>
 #   include <ndnboost/mpl/apply_wrap.hpp>
 #endif
 
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if    !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if    !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
-#   define BOOST_MPL_PREPROCESSED_HEADER advance_backward.hpp
+#   define NDNBOOST_MPL_PREPROCESSED_HEADER advance_backward.hpp
 #   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
 
 #else
@@ -44,28 +44,28 @@
 namespace ndnboost { namespace mpl { namespace aux {
 
 // forward declaration
-template< BOOST_MPL_AUX_NTTP_DECL(long, N) > struct advance_backward;
+template< NDNBOOST_MPL_AUX_NTTP_DECL(long, N) > struct advance_backward;
 
-#   define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(0, BOOST_MPL_LIMIT_UNROLLING, <ndnboost/mpl/aux_/advance_backward.hpp>))
-#   include BOOST_PP_ITERATE()
+#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
+    (3,(0, NDNBOOST_MPL_LIMIT_UNROLLING, <ndnboost/mpl/aux_/advance_backward.hpp>))
+#   include NDNBOOST_PP_ITERATE()
 
-// implementation for N that exceeds BOOST_MPL_LIMIT_UNROLLING
-template< BOOST_MPL_AUX_NTTP_DECL(long, N) >
+// implementation for N that exceeds NDNBOOST_MPL_LIMIT_UNROLLING
+template< NDNBOOST_MPL_AUX_NTTP_DECL(long, N) >
 struct advance_backward
 {
     template< typename Iterator > struct apply
     {
         typedef typename apply_wrap1<
-              advance_backward<BOOST_MPL_LIMIT_UNROLLING>
+              advance_backward<NDNBOOST_MPL_LIMIT_UNROLLING>
             , Iterator
             >::type chunk_result_;
 
         typedef typename apply_wrap1<
               advance_backward<(
-                (N - BOOST_MPL_LIMIT_UNROLLING) < 0
+                (N - NDNBOOST_MPL_LIMIT_UNROLLING) < 0
                     ? 0
-                    : N - BOOST_MPL_LIMIT_UNROLLING
+                    : N - NDNBOOST_MPL_LIMIT_UNROLLING
                     )>
             , chunk_result_
             >::type type;
@@ -74,34 +74,34 @@
 
 }}}
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_AUX778076_ADVANCE_BACKWARD_HPP_INCLUDED
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_AUX778076_ADVANCE_BACKWARD_HPP_INCLUDED
 
 ///// iteration, depth == 1
 
 // For gcc 4.4 compatability, we must include the
-// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
-#else // BOOST_PP_IS_ITERATING
-#if BOOST_PP_ITERATION_DEPTH() == 1
-#define i_ BOOST_PP_FRAME_ITERATION(1)
+// NDNBOOST_PP_ITERATION_DEPTH test inside an #else clause.
+#else // NDNBOOST_PP_IS_ITERATING
+#if NDNBOOST_PP_ITERATION_DEPTH() == 1
+#define i_ NDNBOOST_PP_FRAME_ITERATION(1)
 
 template<>
-struct advance_backward< BOOST_PP_FRAME_ITERATION(1) >
+struct advance_backward< NDNBOOST_PP_FRAME_ITERATION(1) >
 {
     template< typename Iterator > struct apply
     {
         typedef Iterator iter0;
 
 #if i_ > 0
-#   define BOOST_PP_ITERATION_PARAMS_2 \
-    (3,(1, BOOST_PP_FRAME_ITERATION(1), <ndnboost/mpl/aux_/advance_backward.hpp>))
-#   include BOOST_PP_ITERATE()
+#   define NDNBOOST_PP_ITERATION_PARAMS_2 \
+    (3,(1, NDNBOOST_PP_FRAME_ITERATION(1), <ndnboost/mpl/aux_/advance_backward.hpp>))
+#   include NDNBOOST_PP_ITERATE()
 #endif
 
-        typedef BOOST_PP_CAT(iter,BOOST_PP_FRAME_ITERATION(1)) type;
+        typedef NDNBOOST_PP_CAT(iter,NDNBOOST_PP_FRAME_ITERATION(1)) type;
     };
 
-#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG)
+#if defined(NDNBOOST_MPL_CFG_MSVC_60_ETI_BUG)
     /// ETI workaround
     template<> struct apply<int>
     {
@@ -114,15 +114,15 @@
 
 ///// iteration, depth == 2
 
-#elif BOOST_PP_ITERATION_DEPTH() == 2
+#elif NDNBOOST_PP_ITERATION_DEPTH() == 2
 
-#   define AUX778076_ITER_0 BOOST_PP_CAT(iter,BOOST_PP_DEC(BOOST_PP_FRAME_ITERATION(2)))
-#   define AUX778076_ITER_1 BOOST_PP_CAT(iter,BOOST_PP_FRAME_ITERATION(2))
+#   define AUX778076_ITER_0 NDNBOOST_PP_CAT(iter,NDNBOOST_PP_DEC(NDNBOOST_PP_FRAME_ITERATION(2)))
+#   define AUX778076_ITER_1 NDNBOOST_PP_CAT(iter,NDNBOOST_PP_FRAME_ITERATION(2))
 
         typedef typename prior<AUX778076_ITER_0>::type AUX778076_ITER_1;
         
 #   undef AUX778076_ITER_1
 #   undef AUX778076_ITER_0
 
-#endif // BOOST_PP_ITERATION_DEPTH()
-#endif // BOOST_PP_IS_ITERATING
+#endif // NDNBOOST_PP_ITERATION_DEPTH()
+#endif // NDNBOOST_PP_IS_ITERATING
diff --git a/include/ndnboost/mpl/aux_/advance_forward.hpp b/include/ndnboost/mpl/aux_/advance_forward.hpp
index 5561c26..a91a26a 100644
--- a/include/ndnboost/mpl/aux_/advance_forward.hpp
+++ b/include/ndnboost/mpl/aux_/advance_forward.hpp
@@ -1,10 +1,10 @@
 
-#if !defined(BOOST_PP_IS_ITERATING)
+#if !defined(NDNBOOST_PP_IS_ITERATING)
 
 ///// header body
 
-#ifndef BOOST_MPL_AUX_ADVANCE_FORWARD_HPP_INCLUDED
-#define BOOST_MPL_AUX_ADVANCE_FORWARD_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_ADVANCE_FORWARD_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_ADVANCE_FORWARD_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -18,17 +18,17 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/next.hpp>
 #   include <ndnboost/mpl/apply_wrap.hpp>
 #endif
 
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if    !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if    !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
-#   define BOOST_MPL_PREPROCESSED_HEADER advance_forward.hpp
+#   define NDNBOOST_MPL_PREPROCESSED_HEADER advance_forward.hpp
 #   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
 
 #else
@@ -44,28 +44,28 @@
 namespace ndnboost { namespace mpl { namespace aux {
 
 // forward declaration
-template< BOOST_MPL_AUX_NTTP_DECL(long, N) > struct advance_forward;
+template< NDNBOOST_MPL_AUX_NTTP_DECL(long, N) > struct advance_forward;
 
-#   define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(0, BOOST_MPL_LIMIT_UNROLLING, <ndnboost/mpl/aux_/advance_forward.hpp>))
-#   include BOOST_PP_ITERATE()
+#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
+    (3,(0, NDNBOOST_MPL_LIMIT_UNROLLING, <ndnboost/mpl/aux_/advance_forward.hpp>))
+#   include NDNBOOST_PP_ITERATE()
 
-// implementation for N that exceeds BOOST_MPL_LIMIT_UNROLLING
-template< BOOST_MPL_AUX_NTTP_DECL(long, N) > 
+// implementation for N that exceeds NDNBOOST_MPL_LIMIT_UNROLLING
+template< NDNBOOST_MPL_AUX_NTTP_DECL(long, N) > 
 struct advance_forward
 {
     template< typename Iterator > struct apply
     {
         typedef typename apply_wrap1<
-              advance_forward<BOOST_MPL_LIMIT_UNROLLING>
+              advance_forward<NDNBOOST_MPL_LIMIT_UNROLLING>
             , Iterator
             >::type chunk_result_;
 
         typedef typename apply_wrap1<
               advance_forward<(
-                (N - BOOST_MPL_LIMIT_UNROLLING) < 0
+                (N - NDNBOOST_MPL_LIMIT_UNROLLING) < 0
                     ? 0
-                    : N - BOOST_MPL_LIMIT_UNROLLING
+                    : N - NDNBOOST_MPL_LIMIT_UNROLLING
                     )>
             , chunk_result_
             >::type type;
@@ -74,33 +74,33 @@
 
 }}}
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_AUX_ADVANCE_FORWARD_HPP_INCLUDED
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_AUX_ADVANCE_FORWARD_HPP_INCLUDED
 
 ///// iteration, depth == 1
 
 // For gcc 4.4 compatability, we must include the
-// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
-#else // BOOST_PP_IS_ITERATING
-#if BOOST_PP_ITERATION_DEPTH() == 1
-#define i_ BOOST_PP_FRAME_ITERATION(1)
+// NDNBOOST_PP_ITERATION_DEPTH test inside an #else clause.
+#else // NDNBOOST_PP_IS_ITERATING
+#if NDNBOOST_PP_ITERATION_DEPTH() == 1
+#define i_ NDNBOOST_PP_FRAME_ITERATION(1)
 
 template<>
-struct advance_forward< BOOST_PP_FRAME_ITERATION(1) >
+struct advance_forward< NDNBOOST_PP_FRAME_ITERATION(1) >
 {
     template< typename Iterator > struct apply
     {
         typedef Iterator iter0;
 
 #if i_ > 0
-#   define BOOST_PP_ITERATION_PARAMS_2 \
+#   define NDNBOOST_PP_ITERATION_PARAMS_2 \
     (3,(1, i_, <ndnboost/mpl/aux_/advance_forward.hpp>))
-#   include BOOST_PP_ITERATE()
+#   include NDNBOOST_PP_ITERATE()
 #endif
-        typedef BOOST_PP_CAT(iter,i_) type;
+        typedef NDNBOOST_PP_CAT(iter,i_) type;
     };
 
-#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG)
+#if defined(NDNBOOST_MPL_CFG_MSVC_60_ETI_BUG)
     /// ETI workaround
     template<> struct apply<int>
     {
@@ -113,15 +113,15 @@
 
 ///// iteration, depth == 2
 
-#elif BOOST_PP_ITERATION_DEPTH() == 2
+#elif NDNBOOST_PP_ITERATION_DEPTH() == 2
 
-#   define AUX778076_ITER_0 BOOST_PP_CAT(iter,BOOST_PP_DEC(BOOST_PP_FRAME_ITERATION(2)))
-#   define AUX778076_ITER_1 BOOST_PP_CAT(iter,BOOST_PP_FRAME_ITERATION(2))
+#   define AUX778076_ITER_0 NDNBOOST_PP_CAT(iter,NDNBOOST_PP_DEC(NDNBOOST_PP_FRAME_ITERATION(2)))
+#   define AUX778076_ITER_1 NDNBOOST_PP_CAT(iter,NDNBOOST_PP_FRAME_ITERATION(2))
 
         typedef typename next<AUX778076_ITER_0>::type AUX778076_ITER_1;
         
 #   undef AUX778076_ITER_1
 #   undef AUX778076_ITER_0
 
-#endif // BOOST_PP_ITERATION_DEPTH()
-#endif // BOOST_PP_IS_ITERATING
+#endif // NDNBOOST_PP_ITERATION_DEPTH()
+#endif // NDNBOOST_PP_IS_ITERATING
diff --git a/include/ndnboost/mpl/aux_/arg_typedef.hpp b/include/ndnboost/mpl/aux_/arg_typedef.hpp
index 797842e..9d9a94d 100644
--- a/include/ndnboost/mpl/aux_/arg_typedef.hpp
+++ b/include/ndnboost/mpl/aux_/arg_typedef.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_ARG_TYPEDEF_HPP_INCLUDED
-#define BOOST_MPL_AUX_ARG_TYPEDEF_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_ARG_TYPEDEF_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_ARG_TYPEDEF_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2001-2004
 //
@@ -17,15 +17,15 @@
 #include <ndnboost/mpl/aux_/config/lambda.hpp>
 #include <ndnboost/mpl/aux_/config/workaround.hpp>
 
-#if defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) \
-    || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
+#if defined(NDNBOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) \
+    || NDNBOOST_WORKAROUND(__DMC__, NDNBOOST_TESTED_AT(0x840))
     
-#   define BOOST_MPL_AUX_ARG_TYPEDEF(T, name) typedef T name;
+#   define NDNBOOST_MPL_AUX_ARG_TYPEDEF(T, name) typedef T name;
 
 #else
 
-#   define BOOST_MPL_AUX_ARG_TYPEDEF(T, name) /**/
+#   define NDNBOOST_MPL_AUX_ARG_TYPEDEF(T, name) /**/
 
 #endif
 
-#endif // BOOST_MPL_AUX_ARG_TYPEDEF_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_ARG_TYPEDEF_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/arithmetic_op.hpp b/include/ndnboost/mpl/aux_/arithmetic_op.hpp
index 58f2568..117d3ab 100644
--- a/include/ndnboost/mpl/aux_/arithmetic_op.hpp
+++ b/include/ndnboost/mpl/aux_/arithmetic_op.hpp
@@ -13,7 +13,7 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/integral_c.hpp>
 #   include <ndnboost/mpl/aux_/largest_int.hpp>
 #   include <ndnboost/mpl/aux_/value_wknd.hpp>
@@ -27,10 +27,10 @@
 #include <ndnboost/mpl/aux_/config/static_constant.hpp>
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
-#   define BOOST_MPL_PREPROCESSED_HEADER AUX778076_OP_PREFIX.hpp
+#   define NDNBOOST_MPL_PREPROCESSED_HEADER AUX778076_OP_PREFIX.hpp
 #   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
 
 #else
@@ -41,12 +41,12 @@
 
 namespace ndnboost { namespace mpl {
 
-#if defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC)
+#if defined(NDNBOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC)
 namespace aux {
 template< typename T, T n1, T n2 >
-struct BOOST_PP_CAT(AUX778076_OP_PREFIX,_wknd)
+struct NDNBOOST_PP_CAT(AUX778076_OP_PREFIX,_wknd)
 {
-    BOOST_STATIC_CONSTANT(T, value = (n1 AUX778076_OP_TOKEN n2));
+    NDNBOOST_STATIC_CONSTANT(T, value = (n1 AUX778076_OP_TOKEN n2));
     typedef integral_c<T,value> type;
 };
 }
@@ -56,18 +56,18 @@
 struct AUX778076_OP_IMPL_NAME<integral_c_tag,integral_c_tag>
 {
     template< typename N1, typename N2 > struct apply
-#if !defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC)
+#if !defined(NDNBOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC)
         : integral_c<
               typename aux::largest_int<
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  AUX778076_OP_TOKEN BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  AUX778076_OP_TOKEN NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
 #else
-        : aux::BOOST_PP_CAT(AUX778076_OP_PREFIX,_wknd)<
+        : aux::NDNBOOST_PP_CAT(AUX778076_OP_PREFIX,_wknd)<
               typename aux::largest_int<
                   typename N1::value_type
                 , typename N2::value_type
@@ -82,7 +82,7 @@
 
 }}
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
 
 #undef AUX778076_OP_TAG_NAME
 #undef AUX778076_OP_IMPL_NAME
diff --git a/include/ndnboost/mpl/aux_/arity.hpp b/include/ndnboost/mpl/aux_/arity.hpp
index 68c708e..a28f564 100644
--- a/include/ndnboost/mpl/aux_/arity.hpp
+++ b/include/ndnboost/mpl/aux_/arity.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_ARITY_HPP_INCLUDED
-#define BOOST_MPL_AUX_ARITY_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_ARITY_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_ARITY_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2001-2004
 //
@@ -16,7 +16,7 @@
 
 #include <ndnboost/mpl/aux_/config/dtp.hpp>
 
-#if defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
+#if defined(NDNBOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
 
 #   include <ndnboost/mpl/aux_/nttp_decl.hpp>
 #   include <ndnboost/mpl/aux_/config/static_constant.hpp>
@@ -26,14 +26,14 @@
 // agurt, 15/mar/02: it's possible to implement the template so that it will 
 // "just work" and do not require any specialization, but not on the compilers
 // that require the arity workaround in the first place
-template< typename F, BOOST_MPL_AUX_NTTP_DECL(int, N) >
+template< typename F, NDNBOOST_MPL_AUX_NTTP_DECL(int, N) >
 struct arity
 {
-    BOOST_STATIC_CONSTANT(int, value = N);
+    NDNBOOST_STATIC_CONSTANT(int, value = N);
 };
 
 }}}
 
-#endif // BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES
+#endif // NDNBOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES
 
-#endif // BOOST_MPL_AUX_ARITY_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_ARITY_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/arity_spec.hpp b/include/ndnboost/mpl/aux_/arity_spec.hpp
index 29c10ba..f10ee11 100644
--- a/include/ndnboost/mpl/aux_/arity_spec.hpp
+++ b/include/ndnboost/mpl/aux_/arity_spec.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_ARITY_SPEC_HPP_INCLUDED
-#define BOOST_MPL_AUX_ARITY_SPEC_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_ARITY_SPEC_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_ARITY_SPEC_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2001-2004
 //
@@ -24,44 +24,44 @@
 #include <ndnboost/mpl/aux_/config/lambda.hpp>
 #include <ndnboost/mpl/aux_/config/static_constant.hpp>
 
-#if defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
-#   define BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(i,type,name) \
+#if defined(NDNBOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
+#   define NDNBOOST_MPL_AUX_NONTYPE_ARITY_SPEC(i,type,name) \
 namespace aux { \
-template< BOOST_MPL_AUX_NTTP_DECL(int, N), BOOST_MPL_PP_PARAMS(i,type T) > \
+template< NDNBOOST_MPL_AUX_NTTP_DECL(int, N), NDNBOOST_MPL_PP_PARAMS(i,type T) > \
 struct arity< \
-      name< BOOST_MPL_PP_PARAMS(i,T) > \
+      name< NDNBOOST_MPL_PP_PARAMS(i,T) > \
     , N \
     > \
 { \
-    BOOST_STATIC_CONSTANT(int \
-        , value = BOOST_MPL_LIMIT_METAFUNCTION_ARITY \
+    NDNBOOST_STATIC_CONSTANT(int \
+        , value = NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY \
         ); \
 }; \
 } \
 /**/
 #else
-#   define BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(i,type,name) /**/
+#   define NDNBOOST_MPL_AUX_NONTYPE_ARITY_SPEC(i,type,name) /**/
 #endif
 
-#   define BOOST_MPL_AUX_ARITY_SPEC(i,name) \
-    BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(i,typename,name) \
+#   define NDNBOOST_MPL_AUX_ARITY_SPEC(i,name) \
+    NDNBOOST_MPL_AUX_NONTYPE_ARITY_SPEC(i,typename,name) \
 /**/
 
 
-#if defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) \
-    && !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
-#   define BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(i, name) \
+#if defined(NDNBOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) \
+    && !defined(NDNBOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
+#   define NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(i, name) \
 namespace aux { \
-template< BOOST_MPL_PP_PARAMS(i,typename T) > \
-struct template_arity< name<BOOST_MPL_PP_PARAMS(i,T)> > \
+template< NDNBOOST_MPL_PP_PARAMS(i,typename T) > \
+struct template_arity< name<NDNBOOST_MPL_PP_PARAMS(i,T)> > \
     : int_<i> \
 { \
 }; \
 } \
 /**/
 #else
-#   define BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(i, name) /**/
+#   define NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(i, name) /**/
 #endif
 
 
-#endif // BOOST_MPL_AUX_ARITY_SPEC_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_ARITY_SPEC_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/at_impl.hpp b/include/ndnboost/mpl/aux_/at_impl.hpp
index 5d2f235..2028731 100644
--- a/include/ndnboost/mpl/aux_/at_impl.hpp
+++ b/include/ndnboost/mpl/aux_/at_impl.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_AT_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_AT_IMPL_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_AT_IMPL_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_AT_IMPL_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -38,8 +38,8 @@
     };
 };
 
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(2, at_impl)
+NDNBOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(2, at_impl)
 
 }}
 
-#endif // BOOST_MPL_AUX_AT_IMPL_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_AT_IMPL_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/begin_end_impl.hpp b/include/ndnboost/mpl/aux_/begin_end_impl.hpp
index e57ef71..ee567ac 100644
--- a/include/ndnboost/mpl/aux_/begin_end_impl.hpp
+++ b/include/ndnboost/mpl/aux_/begin_end_impl.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_BEGIN_END_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_BEGIN_END_IMPL_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_BEGIN_END_IMPL_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_BEGIN_END_IMPL_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -93,9 +93,9 @@
 #   undef AUX778076_IMPL_SPEC
 
 
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC_IMPL(1,begin_impl)
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC_IMPL(1,end_impl)
+NDNBOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC_IMPL(1,begin_impl)
+NDNBOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC_IMPL(1,end_impl)
 
 }}
 
-#endif // BOOST_MPL_AUX_BEGIN_END_IMPL_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_BEGIN_END_IMPL_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/clear_impl.hpp b/include/ndnboost/mpl/aux_/clear_impl.hpp
index f55dfa3..0ae5568 100644
--- a/include/ndnboost/mpl/aux_/clear_impl.hpp
+++ b/include/ndnboost/mpl/aux_/clear_impl.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_CLEAR_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_CLEAR_IMPL_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_CLEAR_IMPL_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_CLEAR_IMPL_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -28,8 +28,8 @@
     template< typename Sequence > struct apply;
 };
 
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1, clear_impl)
+NDNBOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1, clear_impl)
 
 }}
 
-#endif // BOOST_MPL_AUX_CLEAR_IMPL_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_CLEAR_IMPL_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/common_name_wknd.hpp b/include/ndnboost/mpl/aux_/common_name_wknd.hpp
index 4d7c128..454a71a 100644
--- a/include/ndnboost/mpl/aux_/common_name_wknd.hpp
+++ b/include/ndnboost/mpl/aux_/common_name_wknd.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_COMMON_NAME_WKND_HPP_INCLUDED
-#define BOOST_MPL_AUX_COMMON_NAME_WKND_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_COMMON_NAME_WKND_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_COMMON_NAME_WKND_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2002-2004
 //
@@ -16,10 +16,10 @@
 
 #include <ndnboost/mpl/aux_/config/workaround.hpp>
 
-#if BOOST_WORKAROUND(__BORLANDC__, < 0x561)
+#if NDNBOOST_WORKAROUND(__BORLANDC__, < 0x561)
 // agurt, 12/nov/02: to suppress the bogus "Cannot have both a template class 
 // and function named 'xxx'" diagnostic
-#   define BOOST_MPL_AUX_COMMON_NAME_WKND(name) \
+#   define NDNBOOST_MPL_AUX_COMMON_NAME_WKND(name) \
 namespace name_##wknd { \
 template< typename > void name(); \
 } \
@@ -27,8 +27,8 @@
 
 #else
 
-#   define BOOST_MPL_AUX_COMMON_NAME_WKND(name) /**/
+#   define NDNBOOST_MPL_AUX_COMMON_NAME_WKND(name) /**/
 
 #endif // __BORLANDC__
 
-#endif // BOOST_MPL_AUX_COMMON_NAME_WKND_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_COMMON_NAME_WKND_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/comparison_op.hpp b/include/ndnboost/mpl/aux_/comparison_op.hpp
index 3082724..3bed6a4 100644
--- a/include/ndnboost/mpl/aux_/comparison_op.hpp
+++ b/include/ndnboost/mpl/aux_/comparison_op.hpp
@@ -13,7 +13,7 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/bool.hpp>
 #   include <ndnboost/mpl/aux_/value_wknd.hpp>
 #endif
@@ -28,10 +28,10 @@
 #include <ndnboost/mpl/aux_/config/static_constant.hpp>
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
-#   define BOOST_MPL_PREPROCESSED_HEADER AUX778076_OP_PREFIX.hpp
+#   define NDNBOOST_MPL_PREPROCESSED_HEADER AUX778076_OP_PREFIX.hpp
 #   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
 
 #else
@@ -44,12 +44,12 @@
 // MSVC workaround: implement less in terms of greater
 #if 0 AUX778076_OP_TOKEN 1 && !(1 AUX778076_OP_TOKEN 0) && !(0 AUX778076_OP_TOKEN 0)
 #   define AUX778076_OP(N1, N2) \
-    ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) \
+    ( NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value > NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value ) \
 /**/
 #else
 #   define AUX778076_OP(N1, N2) \
-    ( BOOST_MPL_AUX_VALUE_WKND(N1)::value \
-          AUX778076_OP_TOKEN BOOST_MPL_AUX_VALUE_WKND(N2)::value \
+    ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value \
+          AUX778076_OP_TOKEN NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value \
         ) \
 /**/
 #endif
@@ -58,12 +58,12 @@
 struct AUX778076_OP_IMPL_NAME<integral_c_tag,integral_c_tag>
 {
     template< typename N1, typename N2 > struct apply
-#if !defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC)
+#if !defined(NDNBOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC)
         : bool_< AUX778076_OP(N1, N2) >
     {
 #else
     {
-        BOOST_STATIC_CONSTANT(bool, value = AUX778076_OP(N1, N2));
+        NDNBOOST_STATIC_CONSTANT(bool, value = AUX778076_OP(N1, N2));
         typedef bool_<value> type;
 #endif
     };
@@ -73,7 +73,7 @@
 
 }}
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
 
 #undef AUX778076_OP_TAG_NAME
 #undef AUX778076_OP_IMPL_NAME
diff --git a/include/ndnboost/mpl/aux_/config/adl.hpp b/include/ndnboost/mpl/aux_/config/adl.hpp
index 5257305..b5794d4 100644
--- a/include/ndnboost/mpl/aux_/config/adl.hpp
+++ b/include/ndnboost/mpl/aux_/config/adl.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_CONFIG_ADL_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_ADL_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_CONFIG_ADL_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_CONFIG_ADL_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2002-2004
 //
@@ -25,16 +25,16 @@
 // of template instantiation symbols, so we apply the workaround on all 
 // platforms that can handle it
 
-#if !defined(BOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE) \
-    && (   BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1400)) \
-        || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
-        || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) \
-        || BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3202)) \
-        || BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION, BOOST_TESTED_AT(810)) \
+#if !defined(NDNBOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE) \
+    && (   NDNBOOST_WORKAROUND(NDNBOOST_MSVC, NDNBOOST_TESTED_AT(1400)) \
+        || NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x610)) \
+        || NDNBOOST_WORKAROUND(__DMC__, NDNBOOST_TESTED_AT(0x840)) \
+        || NDNBOOST_WORKAROUND(__MWERKS__, NDNBOOST_TESTED_AT(0x3202)) \
+        || NDNBOOST_WORKAROUND(NDNBOOST_INTEL_CXX_VERSION, NDNBOOST_TESTED_AT(810)) \
         )
 
-#   define BOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE
+#   define NDNBOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE
 
 #endif
 
-#endif // BOOST_MPL_AUX_CONFIG_ADL_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_CONFIG_ADL_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/config/arrays.hpp b/include/ndnboost/mpl/aux_/config/arrays.hpp
index 673631d..c71af34 100644
--- a/include/ndnboost/mpl/aux_/config/arrays.hpp
+++ b/include/ndnboost/mpl/aux_/config/arrays.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_CONFIG_ARRAYS_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_ARRAYS_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_CONFIG_ARRAYS_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_CONFIG_ARRAYS_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2003-2004
 //
@@ -17,14 +17,14 @@
 #include <ndnboost/mpl/aux_/config/msvc.hpp>
 #include <ndnboost/mpl/aux_/config/workaround.hpp>
 
-#if    !defined(BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
-    && ( BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
-        || BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \
+#if    !defined(NDNBOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE) \
+    && ( NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x610)) \
+        || NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) \
         )
 
-#   define BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES
+#   define NDNBOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES
 
 #endif
 
-#endif // BOOST_MPL_AUX_CONFIG_ARRAYS_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_CONFIG_ARRAYS_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/config/bcc.hpp b/include/ndnboost/mpl/aux_/config/bcc.hpp
index b742125..c035570 100644
--- a/include/ndnboost/mpl/aux_/config/bcc.hpp
+++ b/include/ndnboost/mpl/aux_/config/bcc.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_CONFIG_BCC_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_BCC_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_CONFIG_BCC_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_CONFIG_BCC_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2008
 //
@@ -16,13 +16,13 @@
 
 #include <ndnboost/mpl/aux_/config/workaround.hpp>
 
-#if    !defined(BOOST_MPL_CFG_BCC590_WORKAROUNDS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
-    && BOOST_WORKAROUND(__BORLANDC__, >= 0x590) \
-    && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
+#if    !defined(NDNBOOST_MPL_CFG_BCC590_WORKAROUNDS) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE) \
+    && NDNBOOST_WORKAROUND(__BORLANDC__, >= 0x590) \
+    && NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x610))
 
-#   define BOOST_MPL_CFG_BCC590_WORKAROUNDS
+#   define NDNBOOST_MPL_CFG_BCC590_WORKAROUNDS
 
 #endif
 
-#endif // BOOST_MPL_AUX_CONFIG_BCC_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_CONFIG_BCC_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/config/bind.hpp b/include/ndnboost/mpl/aux_/config/bind.hpp
index bf6c05e..168d582 100644
--- a/include/ndnboost/mpl/aux_/config/bind.hpp
+++ b/include/ndnboost/mpl/aux_/config/bind.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_CONFIG_BIND_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_BIND_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_CONFIG_BIND_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_CONFIG_BIND_HPP_INCLUDED
 
 // Copyright David Abrahams 2002
 // Copyright Aleksey Gurtovoy 2002-2004
@@ -18,16 +18,16 @@
 #include <ndnboost/mpl/aux_/config/msvc.hpp>
 #include <ndnboost/mpl/aux_/config/workaround.hpp>
 
-#if    !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
-    && (   BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \
-        || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
+#if    !defined(NDNBOOST_MPL_CFG_NO_BIND_TEMPLATE) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE) \
+    && (   NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) \
+        || NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x610)) \
         )
 
-#   define BOOST_MPL_CFG_NO_BIND_TEMPLATE
+#   define NDNBOOST_MPL_CFG_NO_BIND_TEMPLATE
 
 #endif
 
-//#define BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT
+//#define NDNBOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT
 
-#endif // BOOST_MPL_AUX_CONFIG_BIND_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_CONFIG_BIND_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/config/compiler.hpp b/include/ndnboost/mpl/aux_/config/compiler.hpp
index 8a52441..646e73b 100644
--- a/include/ndnboost/mpl/aux_/config/compiler.hpp
+++ b/include/ndnboost/mpl/aux_/config/compiler.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_CONFIG_COMPILER_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_COMPILER_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_CONFIG_COMPILER_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_CONFIG_COMPILER_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2001-2008
 //
@@ -14,7 +14,7 @@
 // $Date: 2009-05-22 13:07:55 -0700 (Fri, 22 May 2009) $
 // $Revision: 53189 $
 
-#if !defined(BOOST_MPL_CFG_COMPILER_DIR)
+#if !defined(NDNBOOST_MPL_CFG_COMPILER_DIR)
 
 #   include <ndnboost/mpl/aux_/config/dtp.hpp>
 #   include <ndnboost/mpl/aux_/config/ttp.hpp>
@@ -23,44 +23,44 @@
 #   include <ndnboost/mpl/aux_/config/gcc.hpp>
 #   include <ndnboost/mpl/aux_/config/workaround.hpp>
 
-#   if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-#       define BOOST_MPL_CFG_COMPILER_DIR msvc60
+#   if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
+#       define NDNBOOST_MPL_CFG_COMPILER_DIR msvc60
 
-#   elif BOOST_WORKAROUND(BOOST_MSVC, == 1300)
-#       define BOOST_MPL_CFG_COMPILER_DIR msvc70
+#   elif NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1300)
+#       define NDNBOOST_MPL_CFG_COMPILER_DIR msvc70
 
-#   elif BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0304))
-#       define BOOST_MPL_CFG_COMPILER_DIR gcc
+#   elif NDNBOOST_WORKAROUND(NDNBOOST_MPL_CFG_GCC, NDNBOOST_TESTED_AT(0x0304))
+#       define NDNBOOST_MPL_CFG_COMPILER_DIR gcc
 
-#   elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
-#       if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
-#           define BOOST_MPL_CFG_COMPILER_DIR bcc551
-#       elif BOOST_WORKAROUND(__BORLANDC__, >= 0x590)
-#           define BOOST_MPL_CFG_COMPILER_DIR bcc
+#   elif NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x610))
+#       if !defined(NDNBOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
+#           define NDNBOOST_MPL_CFG_COMPILER_DIR bcc551
+#       elif NDNBOOST_WORKAROUND(__BORLANDC__, >= 0x590)
+#           define NDNBOOST_MPL_CFG_COMPILER_DIR bcc
 #       else
-#           define BOOST_MPL_CFG_COMPILER_DIR bcc_pre590
+#           define NDNBOOST_MPL_CFG_COMPILER_DIR bcc_pre590
 #       endif
 
-#   elif BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
-#       define BOOST_MPL_CFG_COMPILER_DIR dmc
+#   elif NDNBOOST_WORKAROUND(__DMC__, NDNBOOST_TESTED_AT(0x840))
+#       define NDNBOOST_MPL_CFG_COMPILER_DIR dmc
 
 #   elif defined(__MWERKS__)
-#       if defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
-#           define BOOST_MPL_CFG_COMPILER_DIR mwcw
+#       if defined(NDNBOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
+#           define NDNBOOST_MPL_CFG_COMPILER_DIR mwcw
 #       else
-#           define BOOST_MPL_CFG_COMPILER_DIR plain
+#           define NDNBOOST_MPL_CFG_COMPILER_DIR plain
 #       endif
 
-#   elif defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-#       define BOOST_MPL_CFG_COMPILER_DIR no_ctps
+#   elif defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#       define NDNBOOST_MPL_CFG_COMPILER_DIR no_ctps
 
-#   elif defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS)
-#       define BOOST_MPL_CFG_COMPILER_DIR no_ttp
+#   elif defined(NDNBOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS)
+#       define NDNBOOST_MPL_CFG_COMPILER_DIR no_ttp
 
 #   else
-#       define BOOST_MPL_CFG_COMPILER_DIR plain
+#       define NDNBOOST_MPL_CFG_COMPILER_DIR plain
 #   endif
 
-#endif // BOOST_MPL_CFG_COMPILER_DIR
+#endif // NDNBOOST_MPL_CFG_COMPILER_DIR
 
-#endif // BOOST_MPL_AUX_CONFIG_COMPILER_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_CONFIG_COMPILER_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/config/ctps.hpp b/include/ndnboost/mpl/aux_/config/ctps.hpp
index 908a311..c6a50a3 100644
--- a/include/ndnboost/mpl/aux_/config/ctps.hpp
+++ b/include/ndnboost/mpl/aux_/config/ctps.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_CONFIG_CTPS_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_CTPS_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_CONFIG_CTPS_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_CONFIG_CTPS_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -17,14 +17,14 @@
 #include <ndnboost/mpl/aux_/config/workaround.hpp>
 #include <ndnboost/config.hpp>
 
-#if    !defined(BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
-    && BOOST_WORKAROUND(__BORLANDC__, < 0x582)
+#if    !defined(NDNBOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE) \
+    && NDNBOOST_WORKAROUND(__BORLANDC__, < 0x582)
 
-#   define BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC
+#   define NDNBOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC
 
 #endif
 
-// BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION is defined in <ndnboost/config.hpp>
+// NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION is defined in <ndnboost/config.hpp>
 
-#endif // BOOST_MPL_AUX_CONFIG_CTPS_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_CONFIG_CTPS_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/config/dmc_ambiguous_ctps.hpp b/include/ndnboost/mpl/aux_/config/dmc_ambiguous_ctps.hpp
index 1f54ae6..919626f 100644
--- a/include/ndnboost/mpl/aux_/config/dmc_ambiguous_ctps.hpp
+++ b/include/ndnboost/mpl/aux_/config/dmc_ambiguous_ctps.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_CONFIG_DMC_AMBIGUOUS_CTPS_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_DMC_AMBIGUOUS_CTPS_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_CONFIG_DMC_AMBIGUOUS_CTPS_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_CONFIG_DMC_AMBIGUOUS_CTPS_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2004
 //
@@ -16,12 +16,12 @@
 
 #include <ndnboost/mpl/aux_/config/workaround.hpp>
 
-#if    !defined(BOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
-    && BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
+#if    !defined(NDNBOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE) \
+    && NDNBOOST_WORKAROUND(__DMC__, NDNBOOST_TESTED_AT(0x840))
 
-#   define BOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS
+#   define NDNBOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS
 
 #endif
 
-#endif // BOOST_MPL_AUX_CONFIG_DMC_AMBIGUOUS_CTPS_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_CONFIG_DMC_AMBIGUOUS_CTPS_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/config/dtp.hpp b/include/ndnboost/mpl/aux_/config/dtp.hpp
index 4796289..9f75a9c 100644
--- a/include/ndnboost/mpl/aux_/config/dtp.hpp
+++ b/include/ndnboost/mpl/aux_/config/dtp.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_CONFIG_DTP_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_DTP_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_CONFIG_DTP_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_CONFIG_DTP_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2001-2004
 //
@@ -22,25 +22,25 @@
 // the owner class is a class template), and Borland 5.6 isn't even
 // able to compile a definition of nested class template with DTP
 
-#if    !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
-    && BOOST_WORKAROUND(__BORLANDC__, >= 0x560) \
-    && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
+#if    !defined(NDNBOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE) \
+    && NDNBOOST_WORKAROUND(__BORLANDC__, >= 0x560) \
+    && NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x610))
 
-#   define BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES
+#   define NDNBOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES
 
 #endif
 
 
-#if    !defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
-    && (   BOOST_WORKAROUND(__MWERKS__, <= 0x3001) \
-        || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
-        || defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) \
+#if    !defined(NDNBOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE) \
+    && (   NDNBOOST_WORKAROUND(__MWERKS__, <= 0x3001) \
+        || NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x610)) \
+        || defined(NDNBOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) \
         )
         
-#   define BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES
+#   define NDNBOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES
 
 #endif
 
-#endif // BOOST_MPL_AUX_CONFIG_DTP_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_CONFIG_DTP_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/config/eti.hpp b/include/ndnboost/mpl/aux_/config/eti.hpp
index 9f2f29c..ce89016 100644
--- a/include/ndnboost/mpl/aux_/config/eti.hpp
+++ b/include/ndnboost/mpl/aux_/config/eti.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_CONFIG_ETI_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_ETI_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_CONFIG_ETI_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_CONFIG_ETI_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2001-2004
 //
@@ -18,30 +18,30 @@
 #include <ndnboost/mpl/aux_/config/workaround.hpp>
 
 // flags for MSVC 6.5's so-called "early template instantiation bug"
-#if    !defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
-    && BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+#if    !defined(NDNBOOST_MPL_CFG_MSVC_60_ETI_BUG) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE) \
+    && NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
 
-#   define BOOST_MPL_CFG_MSVC_60_ETI_BUG
+#   define NDNBOOST_MPL_CFG_MSVC_60_ETI_BUG
 
 #endif
 
-#if    !defined(BOOST_MPL_CFG_MSVC_70_ETI_BUG) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
-    && BOOST_WORKAROUND(BOOST_MSVC, == 1300)
+#if    !defined(NDNBOOST_MPL_CFG_MSVC_70_ETI_BUG) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE) \
+    && NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1300)
 
-#   define BOOST_MPL_CFG_MSVC_70_ETI_BUG
+#   define NDNBOOST_MPL_CFG_MSVC_70_ETI_BUG
 
 #endif
 
-#if    !defined(BOOST_MPL_CFG_MSVC_ETI_BUG) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
-    && ( defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG) \
-        || defined(BOOST_MPL_CFG_MSVC_70_ETI_BUG) \
+#if    !defined(NDNBOOST_MPL_CFG_MSVC_ETI_BUG) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE) \
+    && ( defined(NDNBOOST_MPL_CFG_MSVC_60_ETI_BUG) \
+        || defined(NDNBOOST_MPL_CFG_MSVC_70_ETI_BUG) \
         )
 
-#   define BOOST_MPL_CFG_MSVC_ETI_BUG
+#   define NDNBOOST_MPL_CFG_MSVC_ETI_BUG
 
 #endif
 
-#endif // BOOST_MPL_AUX_CONFIG_ETI_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_CONFIG_ETI_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/config/forwarding.hpp b/include/ndnboost/mpl/aux_/config/forwarding.hpp
index 167e832..057e5ec 100644
--- a/include/ndnboost/mpl/aux_/config/forwarding.hpp
+++ b/include/ndnboost/mpl/aux_/config/forwarding.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_CONFIG_FORWARDING_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_FORWARDING_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_CONFIG_FORWARDING_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_CONFIG_FORWARDING_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2004
 //
@@ -16,12 +16,12 @@
 
 #include <ndnboost/mpl/aux_/config/workaround.hpp>
 
-#if    !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
-    && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
+#if    !defined(NDNBOOST_MPL_CFG_NO_NESTED_FORWARDING) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE) \
+    && NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x610))
 
-#   define BOOST_MPL_CFG_NO_NESTED_FORWARDING
+#   define NDNBOOST_MPL_CFG_NO_NESTED_FORWARDING
 
 #endif
 
-#endif // BOOST_MPL_AUX_CONFIG_FORWARDING_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_CONFIG_FORWARDING_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/config/gcc.hpp b/include/ndnboost/mpl/aux_/config/gcc.hpp
index b9d8f7d..09644c1 100644
--- a/include/ndnboost/mpl/aux_/config/gcc.hpp
+++ b/include/ndnboost/mpl/aux_/config/gcc.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_CONFIG_GCC_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_GCC_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_CONFIG_GCC_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_CONFIG_GCC_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2004
 //
@@ -15,9 +15,9 @@
 // $Revision: 49267 $
 
 #if defined(__GNUC__) && !defined(__EDG_VERSION__)
-#   define BOOST_MPL_CFG_GCC ((__GNUC__ << 8) | __GNUC_MINOR__)
+#   define NDNBOOST_MPL_CFG_GCC ((__GNUC__ << 8) | __GNUC_MINOR__)
 #else
-#   define BOOST_MPL_CFG_GCC 0
+#   define NDNBOOST_MPL_CFG_GCC 0
 #endif
 
-#endif // BOOST_MPL_AUX_CONFIG_GCC_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_CONFIG_GCC_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/config/has_apply.hpp b/include/ndnboost/mpl/aux_/config/has_apply.hpp
index 0daed5a..08dd160 100644
--- a/include/ndnboost/mpl/aux_/config/has_apply.hpp
+++ b/include/ndnboost/mpl/aux_/config/has_apply.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_CONFIG_HAS_APPLY_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_HAS_APPLY_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_CONFIG_HAS_APPLY_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_CONFIG_HAS_APPLY_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2004
 //
@@ -18,15 +18,15 @@
 #include <ndnboost/mpl/aux_/config/msvc.hpp>
 #include <ndnboost/mpl/aux_/config/workaround.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_HAS_APPLY) \
-    && (   defined(BOOST_MPL_CFG_NO_HAS_XXX) \
-        || BOOST_WORKAROUND(__EDG_VERSION__, < 300) \
-        || BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \
-        || BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3202)) \
+#if !defined(NDNBOOST_MPL_CFG_NO_HAS_APPLY) \
+    && (   defined(NDNBOOST_MPL_CFG_NO_HAS_XXX) \
+        || NDNBOOST_WORKAROUND(__EDG_VERSION__, < 300) \
+        || NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) \
+        || NDNBOOST_WORKAROUND(__MWERKS__, NDNBOOST_TESTED_AT(0x3202)) \
         )
 
-#   define BOOST_MPL_CFG_NO_HAS_APPLY
+#   define NDNBOOST_MPL_CFG_NO_HAS_APPLY
 
 #endif
 
-#endif // BOOST_MPL_AUX_CONFIG_HAS_APPLY_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_CONFIG_HAS_APPLY_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/config/has_xxx.hpp b/include/ndnboost/mpl/aux_/config/has_xxx.hpp
index 1cff8af..cf9a112 100644
--- a/include/ndnboost/mpl/aux_/config/has_xxx.hpp
+++ b/include/ndnboost/mpl/aux_/config/has_xxx.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_CONFIG_HAS_XXX_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_HAS_XXX_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_CONFIG_HAS_XXX_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_CONFIG_HAS_XXX_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2002-2004
 // Copyright David Abrahams 2002-2003
@@ -20,15 +20,15 @@
 
 // agurt, 11/jan/03: signals a stub-only 'has_xxx' implementation
 
-#if !defined(BOOST_MPL_CFG_NO_HAS_XXX) \
-    && (   defined(BOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION) \
-        || BOOST_WORKAROUND(__GNUC__, <= 2) \
-        || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) \
+#if !defined(NDNBOOST_MPL_CFG_NO_HAS_XXX) \
+    && (   defined(NDNBOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION) \
+        || NDNBOOST_WORKAROUND(__GNUC__, <= 2) \
+        || NDNBOOST_WORKAROUND(__DMC__, NDNBOOST_TESTED_AT(0x840)) \
         )
 
-#   define BOOST_MPL_CFG_NO_HAS_XXX
-#   define BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE
+#   define NDNBOOST_MPL_CFG_NO_HAS_XXX
+#   define NDNBOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE
 
 #endif
 
-#endif // BOOST_MPL_AUX_CONFIG_HAS_XXX_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_CONFIG_HAS_XXX_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/config/integral.hpp b/include/ndnboost/mpl/aux_/config/integral.hpp
index a8cbd7d..c25bf09 100644
--- a/include/ndnboost/mpl/aux_/config/integral.hpp
+++ b/include/ndnboost/mpl/aux_/config/integral.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_CONFIG_INTEGRAL_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_INTEGRAL_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_CONFIG_INTEGRAL_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_CONFIG_INTEGRAL_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2004
 //
@@ -17,22 +17,22 @@
 #include <ndnboost/mpl/aux_/config/msvc.hpp>
 #include <ndnboost/mpl/aux_/config/workaround.hpp>
 
-#if    !defined(BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
-    && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
+#if    !defined(NDNBOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE) \
+    && NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x610))
 
-#   define BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS
+#   define NDNBOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS
 
 #endif
 
-#if    !defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
-    && ( BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \
-        || BOOST_WORKAROUND(__EDG_VERSION__, <= 238) \
+#if    !defined(NDNBOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE) \
+    && ( NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) \
+        || NDNBOOST_WORKAROUND(__EDG_VERSION__, <= 238) \
         )
 
-#   define BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC
+#   define NDNBOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC
 
 #endif
 
-#endif // BOOST_MPL_AUX_CONFIG_INTEGRAL_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_CONFIG_INTEGRAL_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/config/intel.hpp b/include/ndnboost/mpl/aux_/config/intel.hpp
index e14dc9e..d97ab6d 100644
--- a/include/ndnboost/mpl/aux_/config/intel.hpp
+++ b/include/ndnboost/mpl/aux_/config/intel.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_CONFIG_INTEL_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_INTEL_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_CONFIG_INTEL_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_CONFIG_INTEL_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2004
 //
@@ -15,7 +15,7 @@
 // $Revision: 49267 $
 
 
-// BOOST_INTEL_CXX_VERSION is defined here:
+// NDNBOOST_INTEL_CXX_VERSION is defined here:
 #include <ndnboost/config.hpp>
 
-#endif // BOOST_MPL_AUX_CONFIG_INTEL_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_CONFIG_INTEL_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/config/lambda.hpp b/include/ndnboost/mpl/aux_/config/lambda.hpp
index 808385a..66e1bba 100644
--- a/include/ndnboost/mpl/aux_/config/lambda.hpp
+++ b/include/ndnboost/mpl/aux_/config/lambda.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_CONFIG_LAMBDA_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_LAMBDA_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_CONFIG_LAMBDA_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_CONFIG_LAMBDA_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2002-2004
 //
@@ -20,13 +20,13 @@
 // agurt, 15/jan/02: full-fledged implementation requires both 
 // template template parameters _and_ partial specialization
 
-#if    !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) \
-    && (   defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS) \
-        || defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
+#if    !defined(NDNBOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) \
+    && (   defined(NDNBOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS) \
+        || defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
         )
 
-#   define BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT
+#   define NDNBOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT
 
 #endif
 
-#endif // BOOST_MPL_AUX_CONFIG_LAMBDA_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_CONFIG_LAMBDA_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/config/msvc.hpp b/include/ndnboost/mpl/aux_/config/msvc.hpp
index 32a69ec..ef7fcac 100644
--- a/include/ndnboost/mpl/aux_/config/msvc.hpp
+++ b/include/ndnboost/mpl/aux_/config/msvc.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_CONFIG_MSVC_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_MSVC_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_CONFIG_MSVC_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_CONFIG_MSVC_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2002-2004
 //
@@ -15,7 +15,7 @@
 // $Revision: 49267 $
 
 
-// BOOST_MSVC is defined here:
+// NDNBOOST_MSVC is defined here:
 #include <ndnboost/config.hpp>
 
-#endif // BOOST_MPL_AUX_CONFIG_MSVC_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_CONFIG_MSVC_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/config/msvc_typename.hpp b/include/ndnboost/mpl/aux_/config/msvc_typename.hpp
index d5fab00..d706a97 100644
--- a/include/ndnboost/mpl/aux_/config/msvc_typename.hpp
+++ b/include/ndnboost/mpl/aux_/config/msvc_typename.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_CONFIG_MSVC_TYPENAME_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_MSVC_TYPENAME_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_CONFIG_MSVC_TYPENAME_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_CONFIG_MSVC_TYPENAME_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -17,10 +17,10 @@
 #include <ndnboost/mpl/aux_/config/msvc.hpp>
 #include <ndnboost/mpl/aux_/config/workaround.hpp>
 
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
-#   define BOOST_MSVC_TYPENAME
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)
+#   define NDNBOOST_MSVC_TYPENAME
 #else
-#   define BOOST_MSVC_TYPENAME typename
+#   define NDNBOOST_MSVC_TYPENAME typename
 #endif
 
-#endif // BOOST_MPL_AUX_CONFIG_MSVC_TYPENAME_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_CONFIG_MSVC_TYPENAME_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/config/nttp.hpp b/include/ndnboost/mpl/aux_/config/nttp.hpp
index 6c17d43..9c74018 100644
--- a/include/ndnboost/mpl/aux_/config/nttp.hpp
+++ b/include/ndnboost/mpl/aux_/config/nttp.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_CONFIG_NTTP_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_NTTP_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_CONFIG_NTTP_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_CONFIG_NTTP_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2001-2004
 //
@@ -30,12 +30,12 @@
 //    template< int > struct arg;
 //    }}
 
-#if    !defined(BOOST_MPL_CFG_NTTP_BUG) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
-    && BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+#if    !defined(NDNBOOST_MPL_CFG_NTTP_BUG) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE) \
+    && NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
 
-#   define BOOST_MPL_CFG_NTTP_BUG
+#   define NDNBOOST_MPL_CFG_NTTP_BUG
 
 #endif
 
-#endif // BOOST_MPL_AUX_CONFIG_NTTP_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_CONFIG_NTTP_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/config/overload_resolution.hpp b/include/ndnboost/mpl/aux_/config/overload_resolution.hpp
index a3a7932..78ab5f0 100644
--- a/include/ndnboost/mpl/aux_/config/overload_resolution.hpp
+++ b/include/ndnboost/mpl/aux_/config/overload_resolution.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_CONFIG_OVERLOAD_RESOLUTION_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_OVERLOAD_RESOLUTION_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_CONFIG_OVERLOAD_RESOLUTION_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_CONFIG_OVERLOAD_RESOLUTION_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2002-2004
 //
@@ -16,14 +16,14 @@
 
 #include <ndnboost/mpl/aux_/config/workaround.hpp>
 
-#if    !defined(BOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
-    && (   BOOST_WORKAROUND(__BORLANDC__, < 0x590) \
-        || BOOST_WORKAROUND(__MWERKS__, < 0x3001) \
+#if    !defined(NDNBOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE) \
+    && (   NDNBOOST_WORKAROUND(__BORLANDC__, < 0x590) \
+        || NDNBOOST_WORKAROUND(__MWERKS__, < 0x3001) \
         )
 
-#   define BOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION
+#   define NDNBOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION
 
 #endif
 
-#endif // BOOST_MPL_AUX_CONFIG_OVERLOAD_RESOLUTION_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_CONFIG_OVERLOAD_RESOLUTION_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/config/pp_counter.hpp b/include/ndnboost/mpl/aux_/config/pp_counter.hpp
index 52c4319..c5f3ac7 100644
--- a/include/ndnboost/mpl/aux_/config/pp_counter.hpp
+++ b/include/ndnboost/mpl/aux_/config/pp_counter.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_CONFIG_PP_COUNTER_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_PP_COUNTER_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_CONFIG_PP_COUNTER_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_CONFIG_PP_COUNTER_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2006
 //
@@ -14,13 +14,13 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_AUX_PP_COUNTER)
+#if !defined(NDNBOOST_MPL_AUX_PP_COUNTER)
 #   include <ndnboost/mpl/aux_/config/msvc.hpp>
-#   if BOOST_WORKAROUND(BOOST_MSVC, >= 1300)
-#       define BOOST_MPL_AUX_PP_COUNTER() __COUNTER__
+#   if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, >= 1300)
+#       define NDNBOOST_MPL_AUX_PP_COUNTER() __COUNTER__
 #   else
-#       define BOOST_MPL_AUX_PP_COUNTER() __LINE__
+#       define NDNBOOST_MPL_AUX_PP_COUNTER() __LINE__
 #   endif
 #endif
 
-#endif // BOOST_MPL_AUX_CONFIG_PP_COUNTER_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_CONFIG_PP_COUNTER_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/config/preprocessor.hpp b/include/ndnboost/mpl/aux_/config/preprocessor.hpp
index 342088e..625e6bb 100644
--- a/include/ndnboost/mpl/aux_/config/preprocessor.hpp
+++ b/include/ndnboost/mpl/aux_/config/preprocessor.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_CONFIG_PREPROCESSOR_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_PREPROCESSOR_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_CONFIG_PREPROCESSOR_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_CONFIG_PREPROCESSOR_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -16,24 +16,24 @@
 
 #include <ndnboost/mpl/aux_/config/workaround.hpp>
 
-#if !defined(BOOST_MPL_CFG_BROKEN_PP_MACRO_EXPANSION) \
-    && (   BOOST_WORKAROUND(__MWERKS__, <= 0x3003) \
-        || BOOST_WORKAROUND(__BORLANDC__, < 0x582) \
-        || BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(502)) \
+#if !defined(NDNBOOST_MPL_CFG_BROKEN_PP_MACRO_EXPANSION) \
+    && (   NDNBOOST_WORKAROUND(__MWERKS__, <= 0x3003) \
+        || NDNBOOST_WORKAROUND(__BORLANDC__, < 0x582) \
+        || NDNBOOST_WORKAROUND(__IBMCPP__, NDNBOOST_TESTED_AT(502)) \
         )
 
-#   define BOOST_MPL_CFG_BROKEN_PP_MACRO_EXPANSION
+#   define NDNBOOST_MPL_CFG_BROKEN_PP_MACRO_EXPANSION
 
 #endif
 
-#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
-#   define BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES
+#if !defined(NDNBOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
+#   define NDNBOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES
 #endif
 
-#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING) \
-    && BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
-#   define BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING
+#if !defined(NDNBOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING) \
+    && NDNBOOST_WORKAROUND(__DMC__, NDNBOOST_TESTED_AT(0x840))
+#   define NDNBOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING
 #endif
 
 
-#endif // BOOST_MPL_AUX_CONFIG_PREPROCESSOR_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_CONFIG_PREPROCESSOR_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/config/static_constant.hpp b/include/ndnboost/mpl/aux_/config/static_constant.hpp
index 749397e..8421b89 100644
--- a/include/ndnboost/mpl/aux_/config/static_constant.hpp
+++ b/include/ndnboost/mpl/aux_/config/static_constant.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_CONFIG_STATIC_CONSTANT_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_STATIC_CONSTANT_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_CONFIG_STATIC_CONSTANT_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_CONFIG_STATIC_CONSTANT_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -14,12 +14,12 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-// BOOST_STATIC_CONSTANT is defined here:
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
+// NDNBOOST_STATIC_CONSTANT is defined here:
 #   include <ndnboost/config.hpp>
 #else
 // undef the macro for the preprocessing mode
-#   undef BOOST_STATIC_CONSTANT
+#   undef NDNBOOST_STATIC_CONSTANT
 #endif
 
-#endif // BOOST_MPL_AUX_CONFIG_STATIC_CONSTANT_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_CONFIG_STATIC_CONSTANT_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/config/ttp.hpp b/include/ndnboost/mpl/aux_/config/ttp.hpp
index 485c82f..cda9560 100644
--- a/include/ndnboost/mpl/aux_/config/ttp.hpp
+++ b/include/ndnboost/mpl/aux_/config/ttp.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_CONFIG_TTP_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_TTP_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_CONFIG_TTP_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_CONFIG_TTP_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -18,24 +18,24 @@
 #include <ndnboost/mpl/aux_/config/gcc.hpp>
 #include <ndnboost/mpl/aux_/config/workaround.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS) \
-    && ( defined(BOOST_NO_TEMPLATE_TEMPLATES) \
-      || BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT( 0x590) ) \
+#if !defined(NDNBOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS) \
+    && ( defined(NDNBOOST_NO_TEMPLATE_TEMPLATES) \
+      || NDNBOOST_WORKAROUND( __BORLANDC__, NDNBOOST_TESTED_AT( 0x590) ) \
        )
 
-#   define BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS
+#   define NDNBOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS
 
 #endif
 
 
-#if    !defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
-    && (   BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0302)) \
-        || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
+#if    !defined(NDNBOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE) \
+    && (   NDNBOOST_WORKAROUND(NDNBOOST_MPL_CFG_GCC, NDNBOOST_TESTED_AT(0x0302)) \
+        || NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x610)) \
         )
 
-#   define BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING
+#   define NDNBOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING
 
 #endif
 
-#endif // BOOST_MPL_AUX_CONFIG_TTP_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_CONFIG_TTP_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/config/typeof.hpp b/include/ndnboost/mpl/aux_/config/typeof.hpp
index b9425f9..ec2b715 100644
--- a/include/ndnboost/mpl/aux_/config/typeof.hpp
+++ b/include/ndnboost/mpl/aux_/config/typeof.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_CONFIG_TYPEOF_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_TYPEOF_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_CONFIG_TYPEOF_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_CONFIG_TYPEOF_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2003-2004
 //
@@ -16,23 +16,23 @@
 
 #include <ndnboost/mpl/aux_/config/gcc.hpp>
 
-#if !defined(BOOST_MPL_CFG_HAS_TYPEOF) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
-    && (   defined(BOOST_MPL_CFG_GCC) && BOOST_MPL_CFG_GCC >= 0x0302 \
+#if !defined(NDNBOOST_MPL_CFG_HAS_TYPEOF) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE) \
+    && (   defined(NDNBOOST_MPL_CFG_GCC) && NDNBOOST_MPL_CFG_GCC >= 0x0302 \
         || defined(__MWERKS__) && __MWERKS__ >= 0x3000 \
         )
 
-#   define BOOST_MPL_CFG_HAS_TYPEOF
+#   define NDNBOOST_MPL_CFG_HAS_TYPEOF
 
 #endif
 
 
-#if !defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
-    && defined(BOOST_MPL_CFG_HAS_TYPEOF)
+#if !defined(NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE) \
+    && defined(NDNBOOST_MPL_CFG_HAS_TYPEOF)
 
-#   define BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
+#   define NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
 
 #endif
 
-#endif // BOOST_MPL_AUX_CONFIG_TYPEOF_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_CONFIG_TYPEOF_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/config/use_preprocessed.hpp b/include/ndnboost/mpl/aux_/config/use_preprocessed.hpp
index 4494366..df810e5 100644
--- a/include/ndnboost/mpl/aux_/config/use_preprocessed.hpp
+++ b/include/ndnboost/mpl/aux_/config/use_preprocessed.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_CONFIG_USE_PREPROCESSED_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_USE_PREPROCESSED_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_CONFIG_USE_PREPROCESSED_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_CONFIG_USE_PREPROCESSED_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -14,6 +14,6 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-// #define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+// #define NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
 
-#endif // BOOST_MPL_AUX_CONFIG_USE_PREPROCESSED_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_CONFIG_USE_PREPROCESSED_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/config/workaround.hpp b/include/ndnboost/mpl/aux_/config/workaround.hpp
index 3e2da98..880eaba 100644
--- a/include/ndnboost/mpl/aux_/config/workaround.hpp
+++ b/include/ndnboost/mpl/aux_/config/workaround.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_CONFIG_WORKAROUND_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_WORKAROUND_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_CONFIG_WORKAROUND_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_CONFIG_WORKAROUND_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2002-2004
 //
@@ -16,4 +16,4 @@
 
 #include <ndnboost/detail/workaround.hpp>
 
-#endif // BOOST_MPL_AUX_CONFIG_WORKAROUND_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_CONFIG_WORKAROUND_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/contains_impl.hpp b/include/ndnboost/mpl/aux_/contains_impl.hpp
index 53ec122..cb5ed0c 100644
--- a/include/ndnboost/mpl/aux_/contains_impl.hpp
+++ b/include/ndnboost/mpl/aux_/contains_impl.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_CONTAINS_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONTAINS_IMPL_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_CONTAINS_IMPL_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_CONTAINS_IMPL_HPP_INCLUDED
 
 // Copyright Eric Friedman 2002
 // Copyright Aleksey Gurtovoy 2004
@@ -31,7 +31,7 @@
 struct contains_impl
 {
     template< typename Sequence, typename T > struct apply
-#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
+#if !defined(NDNBOOST_MPL_CFG_NO_NESTED_FORWARDING)
         : not_< is_same<
               typename find<Sequence,T>::type
             , typename end<Sequence>::type
@@ -44,7 +44,7 @@
             , typename end<Sequence>::type
             > > type;
 
-        BOOST_STATIC_CONSTANT(bool, value = 
+        NDNBOOST_STATIC_CONSTANT(bool, value = 
               (not_< is_same<
                   typename find<Sequence,T>::type
                 , typename end<Sequence>::type
@@ -54,8 +54,8 @@
     };
 };
 
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(2,contains_impl)
+NDNBOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(2,contains_impl)
 
 }}
 
-#endif // BOOST_MPL_AUX_CONTAINS_IMPL_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_CONTAINS_IMPL_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/count_args.hpp b/include/ndnboost/mpl/aux_/count_args.hpp
index 59852b0..28e6374 100644
--- a/include/ndnboost/mpl/aux_/count_args.hpp
+++ b/include/ndnboost/mpl/aux_/count_args.hpp
@@ -32,9 +32,9 @@
 #   include <ndnboost/mpl/aux_/preprocessor/repeat.hpp>
 #   include <ndnboost/mpl/aux_/preprocessor/params.hpp>
 
-#   define AUX778076_COUNT_ARGS_REPEAT BOOST_MPL_PP_REPEAT
+#   define AUX778076_COUNT_ARGS_REPEAT NDNBOOST_MPL_PP_REPEAT
 #   define AUX778076_COUNT_ARGS_PARAMS(param) \
-    BOOST_MPL_PP_PARAMS( \
+    NDNBOOST_MPL_PP_PARAMS( \
           AUX778076_COUNT_ARGS_ARITY \
         , param \
         ) \
@@ -46,10 +46,10 @@
 #   include <ndnboost/preprocessor/repeat.hpp>
 #   include <ndnboost/preprocessor/inc.hpp>
 
-#   define AUX778076_COUNT_ARGS_REPEAT BOOST_PP_REPEAT
+#   define AUX778076_COUNT_ARGS_REPEAT NDNBOOST_PP_REPEAT
 #   define AUX778076_COUNT_ARGS_PARAMS(param) \
-    BOOST_PP_ENUM_SHIFTED_PARAMS( \
-          BOOST_PP_INC(AUX778076_COUNT_ARGS_ARITY) \
+    NDNBOOST_PP_ENUM_SHIFTED_PARAMS( \
+          NDNBOOST_PP_INC(AUX778076_COUNT_ARGS_ARITY) \
         , param \
         ) \
     /**/
@@ -58,34 +58,34 @@
 
 
 #define AUX778076_IS_ARG_TEMPLATE_NAME \
-    BOOST_PP_CAT(is_,BOOST_PP_CAT(AUX778076_COUNT_ARGS_PREFIX,_arg)) \
+    NDNBOOST_PP_CAT(is_,NDNBOOST_PP_CAT(AUX778076_COUNT_ARGS_PREFIX,_arg)) \
 /**/
 
 #define AUX778076_COUNT_ARGS_FUNC(unused, i, param) \
-    BOOST_PP_EXPR_IF(i, +) \
-    AUX778076_IS_ARG_TEMPLATE_NAME<BOOST_PP_CAT(param,BOOST_PP_INC(i))>::value \
+    NDNBOOST_PP_EXPR_IF(i, +) \
+    AUX778076_IS_ARG_TEMPLATE_NAME<NDNBOOST_PP_CAT(param,NDNBOOST_PP_INC(i))>::value \
 /**/
 
 // is_<xxx>_arg
 template< AUX778076_COUNT_ARGS_TEMPLATE_PARAM >
 struct AUX778076_IS_ARG_TEMPLATE_NAME
 {
-    BOOST_STATIC_CONSTANT(bool, value = true);
+    NDNBOOST_STATIC_CONSTANT(bool, value = true);
 };
 
 template<>
 struct AUX778076_IS_ARG_TEMPLATE_NAME<AUX778076_COUNT_ARGS_DEFAULT>
 {
-    BOOST_STATIC_CONSTANT(bool, value = false);
+    NDNBOOST_STATIC_CONSTANT(bool, value = false);
 };
 
 // <xxx>_count_args
 template<
       AUX778076_COUNT_ARGS_PARAMS(AUX778076_COUNT_ARGS_TEMPLATE_PARAM)
     >
-struct BOOST_PP_CAT(AUX778076_COUNT_ARGS_PREFIX,_count_args)
+struct NDNBOOST_PP_CAT(AUX778076_COUNT_ARGS_PREFIX,_count_args)
 {
-    BOOST_STATIC_CONSTANT(int, value = AUX778076_COUNT_ARGS_REPEAT(
+    NDNBOOST_STATIC_CONSTANT(int, value = AUX778076_COUNT_ARGS_REPEAT(
           AUX778076_COUNT_ARGS_ARITY
         , AUX778076_COUNT_ARGS_FUNC
         , AUX778076_COUNT_ARGS_PARAM_NAME
diff --git a/include/ndnboost/mpl/aux_/find_if_pred.hpp b/include/ndnboost/mpl/aux_/find_if_pred.hpp
index 65c8786..cf2b3c3 100644
--- a/include/ndnboost/mpl/aux_/find_if_pred.hpp
+++ b/include/ndnboost/mpl/aux_/find_if_pred.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_FIND_IF_PRED_HPP_INCLUDED
-#define BOOST_MPL_AUX_FIND_IF_PRED_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_FIND_IF_PRED_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_FIND_IF_PRED_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 // Copyright Eric Friedman 2002
@@ -28,4 +28,4 @@
 
 }}}
 
-#endif // BOOST_MPL_AUX_FIND_IF_PRED_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_FIND_IF_PRED_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/fold_impl.hpp b/include/ndnboost/mpl/aux_/fold_impl.hpp
index 339e296..9e7d34d 100644
--- a/include/ndnboost/mpl/aux_/fold_impl.hpp
+++ b/include/ndnboost/mpl/aux_/fold_impl.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_FOLD_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_FOLD_IMPL_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_FOLD_IMPL_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_FOLD_IMPL_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -14,12 +14,12 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/next_prior.hpp>
 #   include <ndnboost/mpl/apply.hpp>
 #   include <ndnboost/mpl/deref.hpp>
 #   include <ndnboost/mpl/aux_/config/ctps.hpp>
-#   if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#   if defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 #       include <ndnboost/mpl/if.hpp>
 #       include <ndnboost/type_traits/is_same.hpp>
 #   endif
@@ -27,10 +27,10 @@
 
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
-#   define BOOST_MPL_PREPROCESSED_HEADER fold_impl.hpp
+#   define NDNBOOST_MPL_PREPROCESSED_HEADER fold_impl.hpp
 #   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
 
 #else
@@ -39,5 +39,5 @@
 #   define AUX778076_FOLD_IMPL_NAME_PREFIX fold
 #   include <ndnboost/mpl/aux_/fold_impl_body.hpp>
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_AUX_FOLD_IMPL_HPP_INCLUDED
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_AUX_FOLD_IMPL_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/fold_impl_body.hpp b/include/ndnboost/mpl/aux_/fold_impl_body.hpp
index b698dbe..67c4b9a 100644
--- a/include/ndnboost/mpl/aux_/fold_impl_body.hpp
+++ b/include/ndnboost/mpl/aux_/fold_impl_body.hpp
@@ -1,7 +1,7 @@
 
 // NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
 
-#if !defined(BOOST_PP_IS_ITERATING)
+#if !defined(NDNBOOST_PP_IS_ITERATING)
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -31,26 +31,26 @@
 #   define AUX778076_ITER_FOLD_STEP(unused, i, unused2) \
     typedef typename apply2< \
           ForwardOp \
-        , BOOST_PP_CAT(state,i) \
-        , AUX778076_FOLD_IMPL_OP(BOOST_PP_CAT(iter,i)) \
-        >::type BOOST_PP_CAT(state,BOOST_PP_INC(i)); \
-    typedef typename mpl::next<BOOST_PP_CAT(iter,i)>::type \
-        BOOST_PP_CAT(iter,BOOST_PP_INC(i)); \
+        , NDNBOOST_PP_CAT(state,i) \
+        , AUX778076_FOLD_IMPL_OP(NDNBOOST_PP_CAT(iter,i)) \
+        >::type NDNBOOST_PP_CAT(state,NDNBOOST_PP_INC(i)); \
+    typedef typename mpl::next<NDNBOOST_PP_CAT(iter,i)>::type \
+        NDNBOOST_PP_CAT(iter,NDNBOOST_PP_INC(i)); \
     /**/
 
 #   define AUX778076_FOLD_IMPL_NAME \
-    BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_impl) \
+    NDNBOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_impl) \
     /**/
 
 #   define AUX778076_FOLD_CHUNK_NAME \
-    BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_chunk) \
+    NDNBOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_chunk) \
     /**/
 
 namespace ndnboost { namespace mpl { namespace aux {
 
 /// forward declaration
 template<
-      BOOST_MPL_AUX_NTTP_DECL(int, N)
+      NDNBOOST_MPL_AUX_NTTP_DECL(int, N)
     , typename First
     , typename Last
     , typename State
@@ -58,17 +58,17 @@
     > 
 struct AUX778076_FOLD_IMPL_NAME;
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
-#   if !BOOST_WORKAROUND(__BORLANDC__, < 0x600)
+#   if !NDNBOOST_WORKAROUND(__BORLANDC__, < 0x600)
 
-#   define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(0, BOOST_MPL_LIMIT_UNROLLING, <ndnboost/mpl/aux_/fold_impl_body.hpp>))
-#   include BOOST_PP_ITERATE()
+#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
+    (3,(0, NDNBOOST_MPL_LIMIT_UNROLLING, <ndnboost/mpl/aux_/fold_impl_body.hpp>))
+#   include NDNBOOST_PP_ITERATE()
 
-// implementation for N that exceeds BOOST_MPL_LIMIT_UNROLLING
+// implementation for N that exceeds NDNBOOST_MPL_LIMIT_UNROLLING
 template<
-      BOOST_MPL_AUX_NTTP_DECL(int, N)
+      NDNBOOST_MPL_AUX_NTTP_DECL(int, N)
     , typename First
     , typename Last
     , typename State
@@ -77,7 +77,7 @@
 struct AUX778076_FOLD_IMPL_NAME
 {
     typedef AUX778076_FOLD_IMPL_NAME<
-          BOOST_MPL_LIMIT_UNROLLING
+          NDNBOOST_MPL_LIMIT_UNROLLING
         , First
         , Last
         , State
@@ -85,7 +85,7 @@
         > chunk_;
 
     typedef AUX778076_FOLD_IMPL_NAME<
-          ( (N - BOOST_MPL_LIMIT_UNROLLING) < 0 ? 0 : N - BOOST_MPL_LIMIT_UNROLLING )
+          ( (N - NDNBOOST_MPL_LIMIT_UNROLLING) < 0 ? 0 : N - NDNBOOST_MPL_LIMIT_UNROLLING )
         , typename chunk_::iterator
         , Last
         , typename chunk_::state
@@ -125,12 +125,12 @@
     typedef Last iterator;
 };
 
-#   else // BOOST_WORKAROUND(__BORLANDC__, < 0x600)
+#   else // NDNBOOST_WORKAROUND(__BORLANDC__, < 0x600)
 
 // Borland have some serious problems with the unrolled version, so
 // we always use a basic implementation
 template<
-      BOOST_MPL_AUX_NTTP_DECL(int, N)
+      NDNBOOST_MPL_AUX_NTTP_DECL(int, N)
     , typename First
     , typename Last
     , typename State
@@ -152,7 +152,7 @@
 };
 
 template<
-      BOOST_MPL_AUX_NTTP_DECL(int, N)
+      NDNBOOST_MPL_AUX_NTTP_DECL(int, N)
      , typename Last
     , typename State
     , typename ForwardOp
@@ -164,19 +164,19 @@
     typedef state type;
 };
 
-#   endif // BOOST_WORKAROUND(__BORLANDC__, < 0x600)
+#   endif // NDNBOOST_WORKAROUND(__BORLANDC__, < 0x600)
  
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#else // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
-template< BOOST_MPL_AUX_NTTP_DECL(int, N) >
+template< NDNBOOST_MPL_AUX_NTTP_DECL(int, N) >
 struct AUX778076_FOLD_CHUNK_NAME;
 
-#   define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(0, BOOST_MPL_LIMIT_UNROLLING, <ndnboost/mpl/aux_/fold_impl_body.hpp>))
-#   include BOOST_PP_ITERATE()
+#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
+    (3,(0, NDNBOOST_MPL_LIMIT_UNROLLING, <ndnboost/mpl/aux_/fold_impl_body.hpp>))
+#   include NDNBOOST_PP_ITERATE()
 
-// implementation for N that exceeds BOOST_MPL_LIMIT_UNROLLING
-template< BOOST_MPL_AUX_NTTP_DECL(int, N) > 
+// implementation for N that exceeds NDNBOOST_MPL_LIMIT_UNROLLING
+template< NDNBOOST_MPL_AUX_NTTP_DECL(int, N) > 
 struct AUX778076_FOLD_CHUNK_NAME
 {
     template<
@@ -188,7 +188,7 @@
     struct result_
     {
         typedef AUX778076_FOLD_IMPL_NAME<
-              BOOST_MPL_LIMIT_UNROLLING
+              NDNBOOST_MPL_LIMIT_UNROLLING
             , First
             , Last
             , State
@@ -196,7 +196,7 @@
             > chunk_;
 
         typedef AUX778076_FOLD_IMPL_NAME<
-              ( (N - BOOST_MPL_LIMIT_UNROLLING) < 0 ? 0 : N - BOOST_MPL_LIMIT_UNROLLING )
+              ( (N - NDNBOOST_MPL_LIMIT_UNROLLING) < 0 ? 0 : N - NDNBOOST_MPL_LIMIT_UNROLLING )
             , typename chunk_::iterator
             , Last
             , typename chunk_::state
@@ -215,13 +215,13 @@
     , typename State
     , typename ForwardOp
     > 
-struct BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_step);
+struct NDNBOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_step);
 
 template<
       typename Last
     , typename State
     >
-struct BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_null_step)
+struct NDNBOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_null_step)
 {
     typedef Last iterator;
     typedef State state;
@@ -240,15 +240,15 @@
     {
         typedef typename if_<
               typename is_same<First,Last>::type
-            , BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_null_step)<Last,State>
-            , BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_step)<First,Last,State,ForwardOp>
+            , NDNBOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_null_step)<Last,State>
+            , NDNBOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_step)<First,Last,State,ForwardOp>
             >::type res_;
 
         typedef typename res_::state state;
         typedef typename res_::iterator iterator;
     };
 
-#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG)
+#if defined(NDNBOOST_MPL_CFG_MSVC_60_ETI_BUG)
     /// ETI workaround
     template<> struct result_<int,int,int,int>
     {
@@ -264,7 +264,7 @@
     , typename State
     , typename ForwardOp
     > 
-struct BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_step)
+struct NDNBOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_step)
 {
     // can't inherit here - it breaks MSVC 7.0
     typedef AUX778076_FOLD_CHUNK_NAME<-1>::template result_<
@@ -279,7 +279,7 @@
 };
 
 template<
-      BOOST_MPL_AUX_NTTP_DECL(int, N)
+      NDNBOOST_MPL_AUX_NTTP_DECL(int, N)
     , typename First
     , typename Last
     , typename State
@@ -291,7 +291,7 @@
 {
 };
 
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 }}}
 
@@ -306,9 +306,9 @@
 
 #else
 
-#   define n_ BOOST_PP_FRAME_ITERATION(1)
+#   define n_ NDNBOOST_PP_FRAME_ITERATION(1)
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template<
       typename First
@@ -321,10 +321,10 @@
     typedef First iter0;
     typedef State state0;
 
-    BOOST_MPL_PP_REPEAT(n_, AUX778076_ITER_FOLD_STEP, unused)
+    NDNBOOST_MPL_PP_REPEAT(n_, AUX778076_ITER_FOLD_STEP, unused)
 
-    typedef BOOST_PP_CAT(state,n_) state;
-    typedef BOOST_PP_CAT(iter,n_) iterator;
+    typedef NDNBOOST_PP_CAT(state,n_) state;
+    typedef NDNBOOST_PP_CAT(iter,n_) iterator;
 };
 
 #else
@@ -342,13 +342,13 @@
         typedef First iter0;
         typedef State state0;
 
-        BOOST_MPL_PP_REPEAT(n_, AUX778076_ITER_FOLD_STEP, unused)
+        NDNBOOST_MPL_PP_REPEAT(n_, AUX778076_ITER_FOLD_STEP, unused)
 
-        typedef BOOST_PP_CAT(state,n_) state;
-        typedef BOOST_PP_CAT(iter,n_) iterator;
+        typedef NDNBOOST_PP_CAT(state,n_) state;
+        typedef NDNBOOST_PP_CAT(iter,n_) iterator;
     };
 
-#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG)
+#if defined(NDNBOOST_MPL_CFG_MSVC_60_ETI_BUG)
     /// ETI workaround
     template<> struct result_<int,int,int,int>
     {
@@ -358,8 +358,8 @@
 #endif
 };
 
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 #   undef n_
 
-#endif // BOOST_PP_IS_ITERATING
+#endif // NDNBOOST_PP_IS_ITERATING
diff --git a/include/ndnboost/mpl/aux_/full_lambda.hpp b/include/ndnboost/mpl/aux_/full_lambda.hpp
index 5a1ba5f..0a3284d 100644
--- a/include/ndnboost/mpl/aux_/full_lambda.hpp
+++ b/include/ndnboost/mpl/aux_/full_lambda.hpp
@@ -1,10 +1,10 @@
 
-#if !defined(BOOST_PP_IS_ITERATING)
+#if !defined(NDNBOOST_PP_IS_ITERATING)
 
 ///// header body
 
-#ifndef BOOST_MPL_AUX_FULL_LAMBDA_HPP_INCLUDED
-#define BOOST_MPL_AUX_FULL_LAMBDA_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_FULL_LAMBDA_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_FULL_LAMBDA_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2001-2004
 //
@@ -18,7 +18,7 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/lambda_fwd.hpp>
 #   include <ndnboost/mpl/bind_fwd.hpp>
 #   include <ndnboost/mpl/protect.hpp>
@@ -29,7 +29,7 @@
 #   include <ndnboost/mpl/aux_/template_arity.hpp>
 #   include <ndnboost/mpl/aux_/na_spec.hpp>
 #   include <ndnboost/mpl/aux_/config/ttp.hpp>
-#   if defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING)
+#   if defined(NDNBOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING)
 #       include <ndnboost/mpl/if.hpp>
 #   endif
 #endif
@@ -37,10 +37,10 @@
 #include <ndnboost/mpl/aux_/lambda_arity_param.hpp>
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
-#   define BOOST_MPL_PREPROCESSED_HEADER full_lambda.hpp
+#   define NDNBOOST_MPL_PREPROCESSED_HEADER full_lambda.hpp
 #   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
 
 #else
@@ -61,31 +61,31 @@
 
 // local macros, #undef-ined at the end of the header
 #   define AUX778076_LAMBDA_PARAMS(i_, param) \
-    BOOST_MPL_PP_PARAMS(i_, param) \
+    NDNBOOST_MPL_PP_PARAMS(i_, param) \
     /**/
 
 #   define AUX778076_BIND_PARAMS(param) \
-    BOOST_MPL_PP_PARAMS( \
-          BOOST_MPL_LIMIT_METAFUNCTION_ARITY \
+    NDNBOOST_MPL_PP_PARAMS( \
+          NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY \
         , param \
         ) \
     /**/
 
 #   define AUX778076_BIND_N_PARAMS(i_, param) \
-    BOOST_PP_COMMA_IF(i_) \
-    BOOST_MPL_PP_PARAMS(i_, param) \
+    NDNBOOST_PP_COMMA_IF(i_) \
+    NDNBOOST_MPL_PP_PARAMS(i_, param) \
     /**/
 
 #   define AUX778076_ARITY_PARAM(param) \
-    BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(param) \
+    NDNBOOST_MPL_AUX_LAMBDA_ARITY_PARAM(param) \
     /**/
 
 
-#define n_ BOOST_MPL_LIMIT_METAFUNCTION_ARITY
+#define n_ NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY
 namespace aux {
 
 template<
-      BOOST_MPL_PP_DEFAULT_PARAMS(n_,bool C,false)
+      NDNBOOST_MPL_PP_DEFAULT_PARAMS(n_,bool C,false)
     >
 struct lambda_or
     : true_
@@ -93,7 +93,7 @@
 };
 
 template<>
-struct lambda_or< BOOST_MPL_PP_ENUM(n_,false) >
+struct lambda_or< NDNBOOST_MPL_PP_ENUM(n_,false) >
     : false_
 {
 };
@@ -131,9 +131,9 @@
 };
 
 
-#define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, <ndnboost/mpl/aux_/full_lambda.hpp>))
-#include BOOST_PP_ITERATE()
+#define NDNBOOST_PP_ITERATION_PARAMS_1 \
+    (3,(0, NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY, <ndnboost/mpl/aux_/full_lambda.hpp>))
+#include NDNBOOST_PP_ITERATE()
 
 /// special case for 'protect'
 template< typename T, typename Tag >
@@ -152,7 +152,7 @@
 struct lambda<
           bind<F,AUX778076_BIND_PARAMS(T)>
         , Tag
-        AUX778076_ARITY_PARAM(int_<BOOST_PP_INC(BOOST_MPL_LIMIT_METAFUNCTION_ARITY)>)
+        AUX778076_ARITY_PARAM(int_<NDNBOOST_PP_INC(NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY)>)
         >
 {
     typedef false_ is_le;
@@ -161,7 +161,7 @@
 };
 
 
-#if defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING)
+#if defined(NDNBOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING)
 
 template<
       typename F
@@ -187,7 +187,7 @@
     typedef typename le_result_::type type;
 };
 
-#elif !defined(BOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS)
+#elif !defined(NDNBOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS)
 
 /// workaround for MWCW 8.3+/EDG < 303, leads to ambiguity on Digital Mars
 template<
@@ -214,37 +214,37 @@
 #   undef AUX778076_BIND_PARAMS
 #   undef AUX778076_LAMBDA_PARAMS
 
-#if !defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING)
-BOOST_MPL_AUX_NA_SPEC(2, lambda)
+#if !defined(NDNBOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING)
+NDNBOOST_MPL_AUX_NA_SPEC(2, lambda)
 #else
-BOOST_MPL_AUX_NA_SPEC2(2, 3, lambda)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 3, lambda)
 #endif
 
 }}
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_AUX_FULL_LAMBDA_HPP_INCLUDED
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_AUX_FULL_LAMBDA_HPP_INCLUDED
 
 ///// iteration, depth == 1
 
 // For gcc 4.4 compatability, we must include the
-// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
-#else // BOOST_PP_IS_ITERATING
-#if BOOST_PP_ITERATION_DEPTH() == 1
-#define i_ BOOST_PP_FRAME_ITERATION(1)
+// NDNBOOST_PP_ITERATION_DEPTH test inside an #else clause.
+#else // NDNBOOST_PP_IS_ITERATING
+#if NDNBOOST_PP_ITERATION_DEPTH() == 1
+#define i_ NDNBOOST_PP_FRAME_ITERATION(1)
 
 #if i_ > 0
 
 namespace aux {
 
 #   define AUX778076_RESULT(unused, i_, T) \
-    BOOST_PP_COMMA_IF(i_) \
-    typename BOOST_PP_CAT(T, BOOST_PP_INC(i_))::result_ \
+    NDNBOOST_PP_COMMA_IF(i_) \
+    typename NDNBOOST_PP_CAT(T, NDNBOOST_PP_INC(i_))::result_ \
     /**/
 
 #   define AUX778076_TYPE(unused, i_, T) \
-    BOOST_PP_COMMA_IF(i_) \
-    typename BOOST_PP_CAT(T, BOOST_PP_INC(i_))::type \
+    NDNBOOST_PP_COMMA_IF(i_) \
+    typename NDNBOOST_PP_CAT(T, NDNBOOST_PP_INC(i_))::type \
     /**/
 
 template<
@@ -252,10 +252,10 @@
     , template< AUX778076_LAMBDA_PARAMS(i_, typename P) > class F
     , AUX778076_LAMBDA_PARAMS(i_, typename L)
     >
-struct BOOST_PP_CAT(le_result,i_)
+struct NDNBOOST_PP_CAT(le_result,i_)
 {
     typedef F<
-          BOOST_MPL_PP_REPEAT(i_, AUX778076_TYPE, L)
+          NDNBOOST_MPL_PP_REPEAT(i_, AUX778076_TYPE, L)
         > result_;
     
     typedef result_ type;
@@ -266,11 +266,11 @@
     , template< AUX778076_LAMBDA_PARAMS(i_, typename P) > class F
     , AUX778076_LAMBDA_PARAMS(i_, typename L)
     >
-struct BOOST_PP_CAT(le_result,i_)< true_,Tag,F,AUX778076_LAMBDA_PARAMS(i_, L) >
+struct NDNBOOST_PP_CAT(le_result,i_)< true_,Tag,F,AUX778076_LAMBDA_PARAMS(i_, L) >
 {
-    typedef BOOST_PP_CAT(bind,i_)<
-          BOOST_PP_CAT(quote,i_)<F,Tag>
-        , BOOST_MPL_PP_REPEAT(i_, AUX778076_RESULT, L)
+    typedef NDNBOOST_PP_CAT(bind,i_)<
+          NDNBOOST_PP_CAT(quote,i_)<F,Tag>
+        , NDNBOOST_MPL_PP_REPEAT(i_, AUX778076_RESULT, L)
         > result_;
 
     typedef mpl::protect<result_> type;
@@ -283,18 +283,18 @@
 
 
 #   define AUX778076_LAMBDA_TYPEDEF(unused, i_, T) \
-    typedef lambda< BOOST_PP_CAT(T, BOOST_PP_INC(i_)), Tag > \
-        BOOST_PP_CAT(l,BOOST_PP_INC(i_)); \
+    typedef lambda< NDNBOOST_PP_CAT(T, NDNBOOST_PP_INC(i_)), Tag > \
+        NDNBOOST_PP_CAT(l,NDNBOOST_PP_INC(i_)); \
 /**/
 
 #   define AUX778076_IS_LE_TYPEDEF(unused, i_, unused2) \
-    typedef typename BOOST_PP_CAT(l,BOOST_PP_INC(i_))::is_le \
-        BOOST_PP_CAT(is_le,BOOST_PP_INC(i_)); \
+    typedef typename NDNBOOST_PP_CAT(l,NDNBOOST_PP_INC(i_))::is_le \
+        NDNBOOST_PP_CAT(is_le,NDNBOOST_PP_INC(i_)); \
 /**/
 
 #   define AUX778076_IS_LAMBDA_EXPR(unused, i_, unused2) \
-    BOOST_PP_COMMA_IF(i_) \
-    BOOST_PP_CAT(is_le,BOOST_PP_INC(i_))::value \
+    NDNBOOST_PP_COMMA_IF(i_) \
+    NDNBOOST_PP_CAT(is_le,NDNBOOST_PP_INC(i_))::value \
 /**/
 
 template<
@@ -308,14 +308,14 @@
         AUX778076_ARITY_PARAM(int_<i_>)
         >
 {
-    BOOST_MPL_PP_REPEAT(i_, AUX778076_LAMBDA_TYPEDEF, T)
-    BOOST_MPL_PP_REPEAT(i_, AUX778076_IS_LE_TYPEDEF, unused)
+    NDNBOOST_MPL_PP_REPEAT(i_, AUX778076_LAMBDA_TYPEDEF, T)
+    NDNBOOST_MPL_PP_REPEAT(i_, AUX778076_IS_LE_TYPEDEF, unused)
 
     typedef typename aux::lambda_or<
-          BOOST_MPL_PP_REPEAT(i_, AUX778076_IS_LAMBDA_EXPR, unused)
+          NDNBOOST_MPL_PP_REPEAT(i_, AUX778076_IS_LAMBDA_EXPR, unused)
         >::type is_le;
 
-    typedef aux::BOOST_PP_CAT(le_result,i_)<
+    typedef aux::NDNBOOST_PP_CAT(le_result,i_)<
           is_le, Tag, F, AUX778076_LAMBDA_PARAMS(i_, l)
         > le_result_;
     
@@ -335,13 +335,13 @@
     , typename Tag
     >
 struct lambda<
-          BOOST_PP_CAT(bind,i_)<F AUX778076_BIND_N_PARAMS(i_, T)>
+          NDNBOOST_PP_CAT(bind,i_)<F AUX778076_BIND_N_PARAMS(i_, T)>
         , Tag
-        AUX778076_ARITY_PARAM(int_<BOOST_PP_INC(i_)>)
+        AUX778076_ARITY_PARAM(int_<NDNBOOST_PP_INC(i_)>)
         >
 {
     typedef false_ is_le;
-    typedef BOOST_PP_CAT(bind,i_)<
+    typedef NDNBOOST_PP_CAT(bind,i_)<
           F
         AUX778076_BIND_N_PARAMS(i_, T)
         > result_;
@@ -350,5 +350,5 @@
 };
 
 #undef i_
-#endif // BOOST_PP_ITERATION_DEPTH()
-#endif // BOOST_PP_IS_ITERATING
+#endif // NDNBOOST_PP_ITERATION_DEPTH()
+#endif // NDNBOOST_PP_IS_ITERATING
diff --git a/include/ndnboost/mpl/aux_/has_apply.hpp b/include/ndnboost/mpl/aux_/has_apply.hpp
index d86ce53..329011e 100644
--- a/include/ndnboost/mpl/aux_/has_apply.hpp
+++ b/include/ndnboost/mpl/aux_/has_apply.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_HAS_APPLY_HPP_INCLUDED
-#define BOOST_MPL_AUX_HAS_APPLY_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_HAS_APPLY_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_HAS_APPLY_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2004
 //
@@ -18,8 +18,8 @@
 #include <ndnboost/mpl/aux_/config/has_apply.hpp>
 
 namespace ndnboost { namespace mpl { namespace aux {
-#if !defined(BOOST_MPL_CFG_NO_HAS_APPLY)
-BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_apply, apply, false)
+#if !defined(NDNBOOST_MPL_CFG_NO_HAS_APPLY)
+NDNBOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_apply, apply, false)
 #else
 template< typename T, typename fallback_ = false_ >
 struct has_apply
@@ -29,4 +29,4 @@
 #endif
 }}}
 
-#endif // BOOST_MPL_AUX_HAS_APPLY_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_HAS_APPLY_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/has_begin.hpp b/include/ndnboost/mpl/aux_/has_begin.hpp
index fca5610..62c173e 100644
--- a/include/ndnboost/mpl/aux_/has_begin.hpp
+++ b/include/ndnboost/mpl/aux_/has_begin.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_HAS_BEGIN_HPP_INCLUDED
-#define BOOST_MPL_AUX_HAS_BEGIN_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_HAS_BEGIN_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_HAS_BEGIN_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2002-2004
 //
@@ -17,7 +17,7 @@
 #include <ndnboost/mpl/has_xxx.hpp>
 
 namespace ndnboost { namespace mpl { namespace aux {
-BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_begin, begin, true)
+NDNBOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_begin, begin, true)
 }}}
 
-#endif // BOOST_MPL_AUX_HAS_BEGIN_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_HAS_BEGIN_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/has_rebind.hpp b/include/ndnboost/mpl/aux_/has_rebind.hpp
index 043e252..90b66e7 100644
--- a/include/ndnboost/mpl/aux_/has_rebind.hpp
+++ b/include/ndnboost/mpl/aux_/has_rebind.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_HAS_REBIND_HPP_INCLUDED
-#define BOOST_MPL_AUX_HAS_REBIND_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_HAS_REBIND_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_HAS_REBIND_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2002-2004
 //
@@ -18,14 +18,14 @@
 #include <ndnboost/mpl/aux_/config/intel.hpp>
 #include <ndnboost/mpl/aux_/config/workaround.hpp>
 
-#if BOOST_WORKAROUND(__EDG_VERSION__, <= 244) && !defined(BOOST_INTEL_CXX_VERSION)
+#if NDNBOOST_WORKAROUND(__EDG_VERSION__, <= 244) && !defined(NDNBOOST_INTEL_CXX_VERSION)
 #   include <ndnboost/mpl/has_xxx.hpp>
-#elif BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+#elif NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
 #   include <ndnboost/mpl/has_xxx.hpp>
 #   include <ndnboost/mpl/if.hpp>
 #   include <ndnboost/mpl/bool.hpp>
 #   include <ndnboost/mpl/aux_/msvc_is_class.hpp>
-#elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
+#elif NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x610))
 #   include <ndnboost/mpl/if.hpp>
 #   include <ndnboost/mpl/bool.hpp>
 #   include <ndnboost/mpl/aux_/yes_no.hpp>
@@ -39,13 +39,13 @@
 
 namespace ndnboost { namespace mpl { namespace aux {
 
-#if BOOST_WORKAROUND(__EDG_VERSION__, <= 244) && !defined(BOOST_INTEL_CXX_VERSION)
+#if NDNBOOST_WORKAROUND(__EDG_VERSION__, <= 244) && !defined(NDNBOOST_INTEL_CXX_VERSION)
 
-BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_rebind, rebind, false)
+NDNBOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_rebind, rebind, false)
 
-#elif BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+#elif NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
 
-BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_rebind_impl, rebind, false)
+NDNBOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_rebind_impl, rebind, false)
 
 template< typename T >
 struct has_rebind
@@ -62,12 +62,12 @@
 template< typename T > struct has_rebind_tag {};
 no_tag operator|(has_rebind_tag<int>, void const volatile*);
 
-#   if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
+#   if !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x610))
 template< typename T >
 struct has_rebind
 {
     static has_rebind_tag<T>* get();
-    BOOST_STATIC_CONSTANT(bool, value = 
+    NDNBOOST_STATIC_CONSTANT(bool, value = 
           sizeof(has_rebind_tag<int>() | get()) == sizeof(yes_tag)
         );
 };
@@ -76,7 +76,7 @@
 struct has_rebind_impl
 {
     static T* get();
-    BOOST_STATIC_CONSTANT(bool, value = 
+    NDNBOOST_STATIC_CONSTANT(bool, value = 
           sizeof(has_rebind_tag<int>() | get()) == sizeof(yes_tag)
         );
 };
@@ -96,4 +96,4 @@
 
 }}}
 
-#endif // BOOST_MPL_AUX_HAS_REBIND_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_HAS_REBIND_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/has_size.hpp b/include/ndnboost/mpl/aux_/has_size.hpp
index 5bb77f6..915e932 100644
--- a/include/ndnboost/mpl/aux_/has_size.hpp
+++ b/include/ndnboost/mpl/aux_/has_size.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_HAS_SIZE_HPP_INCLUDED
-#define BOOST_MPL_AUX_HAS_SIZE_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_HAS_SIZE_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_HAS_SIZE_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2002-2004
 //
@@ -17,7 +17,7 @@
 #include <ndnboost/mpl/has_xxx.hpp>
 
 namespace ndnboost { namespace mpl { namespace aux {
-BOOST_MPL_HAS_XXX_TRAIT_DEF(size)
+NDNBOOST_MPL_HAS_XXX_TRAIT_DEF(size)
 }}}
 
-#endif // BOOST_MPL_AUX_HAS_SIZE_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_HAS_SIZE_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/has_tag.hpp b/include/ndnboost/mpl/aux_/has_tag.hpp
index 620923f..ec60867 100644
--- a/include/ndnboost/mpl/aux_/has_tag.hpp
+++ b/include/ndnboost/mpl/aux_/has_tag.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_HAS_TAG_HPP_INCLUDED
-#define BOOST_MPL_AUX_HAS_TAG_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_HAS_TAG_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_HAS_TAG_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2002-2004
 //
@@ -17,7 +17,7 @@
 #include <ndnboost/mpl/has_xxx.hpp>
 
 namespace ndnboost { namespace mpl { namespace aux {
-BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_tag, tag, false)
+NDNBOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_tag, tag, false)
 }}}
 
-#endif // BOOST_MPL_AUX_HAS_TAG_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_HAS_TAG_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/has_type.hpp b/include/ndnboost/mpl/aux_/has_type.hpp
index d99fef3..fa5fe23 100644
--- a/include/ndnboost/mpl/aux_/has_type.hpp
+++ b/include/ndnboost/mpl/aux_/has_type.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_HAS_TYPE_HPP_INCLUDED
-#define BOOST_MPL_AUX_HAS_TYPE_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_HAS_TYPE_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_HAS_TYPE_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2002-2004
 //
@@ -17,7 +17,7 @@
 #include <ndnboost/mpl/has_xxx.hpp>
 
 namespace ndnboost { namespace mpl { namespace aux {
-BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_type, type, true)
+NDNBOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_type, type, true)
 }}}
 
-#endif // BOOST_MPL_AUX_HAS_TYPE_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_HAS_TYPE_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/include_preprocessed.hpp b/include/ndnboost/mpl/aux_/include_preprocessed.hpp
index ca47e08..0357031 100644
--- a/include/ndnboost/mpl/aux_/include_preprocessed.hpp
+++ b/include/ndnboost/mpl/aux_/include_preprocessed.hpp
@@ -19,24 +19,24 @@
 #include <ndnboost/preprocessor/cat.hpp>
 #include <ndnboost/preprocessor/stringize.hpp>
 
-#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING)
+#if !defined(NDNBOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING)
 #   define AUX778076_PREPROCESSED_HEADER \
-    BOOST_MPL_CFG_COMPILER_DIR/BOOST_MPL_PREPROCESSED_HEADER \
+    NDNBOOST_MPL_CFG_COMPILER_DIR/NDNBOOST_MPL_PREPROCESSED_HEADER \
 /**/
 #else
 #   define AUX778076_PREPROCESSED_HEADER \
-    BOOST_PP_CAT(BOOST_MPL_CFG_COMPILER_DIR,/)##BOOST_MPL_PREPROCESSED_HEADER \
+    NDNBOOST_PP_CAT(NDNBOOST_MPL_CFG_COMPILER_DIR,/)##NDNBOOST_MPL_PREPROCESSED_HEADER \
 /**/
 #endif
 
-#if BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(700))
-#   define AUX778076_INCLUDE_STRING BOOST_PP_STRINGIZE(ndnboost/mpl/aux_/preprocessed/AUX778076_PREPROCESSED_HEADER)
+#if NDNBOOST_WORKAROUND(__IBMCPP__, NDNBOOST_TESTED_AT(700))
+#   define AUX778076_INCLUDE_STRING NDNBOOST_PP_STRINGIZE(ndnboost/mpl/aux_/preprocessed/AUX778076_PREPROCESSED_HEADER)
 #   include AUX778076_INCLUDE_STRING
 #   undef AUX778076_INCLUDE_STRING
 #else
-#   include BOOST_PP_STRINGIZE(ndnboost/mpl/aux_/preprocessed/AUX778076_PREPROCESSED_HEADER)
+#   include NDNBOOST_PP_STRINGIZE(ndnboost/mpl/aux_/preprocessed/AUX778076_PREPROCESSED_HEADER)
 #endif
 
 #   undef AUX778076_PREPROCESSED_HEADER
 
-#undef BOOST_MPL_PREPROCESSED_HEADER
+#undef NDNBOOST_MPL_PREPROCESSED_HEADER
diff --git a/include/ndnboost/mpl/aux_/inserter_algorithm.hpp b/include/ndnboost/mpl/aux_/inserter_algorithm.hpp
index cfbe84e..3a75978 100644
--- a/include/ndnboost/mpl/aux_/inserter_algorithm.hpp
+++ b/include/ndnboost/mpl/aux_/inserter_algorithm.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_INSERTER_ALGORITHM_HPP_INCLUDED
-#define BOOST_MPL_AUX_INSERTER_ALGORITHM_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_INSERTER_ALGORITHM_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_INSERTER_ALGORITHM_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2003-2004
 // Copyright David Abrahams 2003-2004
@@ -33,29 +33,29 @@
 
 #include <ndnboost/preprocessor/arithmetic/dec.hpp>
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
-#   define BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(arity, name) \
-BOOST_MPL_AUX_COMMON_NAME_WKND(name) \
+#   define NDNBOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(arity, name) \
+NDNBOOST_MPL_AUX_COMMON_NAME_WKND(name) \
 template< \
-      BOOST_MPL_PP_DEFAULT_PARAMS(arity, typename P, na) \
+      NDNBOOST_MPL_PP_DEFAULT_PARAMS(arity, typename P, na) \
     > \
 struct name \
-    : aux::name##_impl<BOOST_MPL_PP_PARAMS(arity, P)> \
+    : aux::name##_impl<NDNBOOST_MPL_PP_PARAMS(arity, P)> \
 { \
 }; \
 \
 template< \
-      BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), typename P) \
+      NDNBOOST_MPL_PP_PARAMS(NDNBOOST_PP_DEC(arity), typename P) \
     > \
-struct name< BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P),na > \
+struct name< NDNBOOST_MPL_PP_PARAMS(NDNBOOST_PP_DEC(arity), P),na > \
     : if_< has_push_back< typename clear<P1>::type> \
         , aux::name##_impl< \
-              BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P) \
+              NDNBOOST_MPL_PP_PARAMS(NDNBOOST_PP_DEC(arity), P) \
             , back_inserter< typename clear<P1>::type > \
             > \
         , aux::reverse_##name##_impl< \
-              BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P) \
+              NDNBOOST_MPL_PP_PARAMS(NDNBOOST_PP_DEC(arity), P) \
             , front_inserter< typename clear<P1>::type > \
             > \
         >::type \
@@ -63,48 +63,48 @@
 }; \
 \
 template< \
-      BOOST_MPL_PP_DEFAULT_PARAMS(arity, typename P, na) \
+      NDNBOOST_MPL_PP_DEFAULT_PARAMS(arity, typename P, na) \
     > \
 struct reverse_##name \
-    : aux::reverse_##name##_impl<BOOST_MPL_PP_PARAMS(arity, P)> \
+    : aux::reverse_##name##_impl<NDNBOOST_MPL_PP_PARAMS(arity, P)> \
 { \
 }; \
 \
 template< \
-      BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), typename P) \
+      NDNBOOST_MPL_PP_PARAMS(NDNBOOST_PP_DEC(arity), typename P) \
     > \
-struct reverse_##name< BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P),na > \
+struct reverse_##name< NDNBOOST_MPL_PP_PARAMS(NDNBOOST_PP_DEC(arity), P),na > \
     : if_< has_push_back<P1> \
         , aux::reverse_##name##_impl< \
-              BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P) \
+              NDNBOOST_MPL_PP_PARAMS(NDNBOOST_PP_DEC(arity), P) \
             , back_inserter< typename clear<P1>::type > \
             > \
         , aux::name##_impl< \
-              BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P) \
+              NDNBOOST_MPL_PP_PARAMS(NDNBOOST_PP_DEC(arity), P) \
             , front_inserter< typename clear<P1>::type > \
             > \
         >::type \
 { \
 }; \
-BOOST_MPL_AUX_NA_SPEC(arity, name) \
-BOOST_MPL_AUX_NA_SPEC(arity, reverse_##name) \
+NDNBOOST_MPL_AUX_NA_SPEC(arity, name) \
+NDNBOOST_MPL_AUX_NA_SPEC(arity, reverse_##name) \
 /**/
 
 #else
 
-#   define BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(arity, name) \
-BOOST_MPL_AUX_COMMON_NAME_WKND(name) \
+#   define NDNBOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(arity, name) \
+NDNBOOST_MPL_AUX_COMMON_NAME_WKND(name) \
 template< \
-      BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), typename P) \
+      NDNBOOST_MPL_PP_PARAMS(NDNBOOST_PP_DEC(arity), typename P) \
     > \
 struct def_##name##_impl \
     : if_< has_push_back<P1> \
         , aux::name##_impl< \
-              BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P) \
+              NDNBOOST_MPL_PP_PARAMS(NDNBOOST_PP_DEC(arity), P) \
             , back_inserter< typename clear<P1>::type > \
             > \
         , aux::reverse_##name##_impl< \
-              BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P) \
+              NDNBOOST_MPL_PP_PARAMS(NDNBOOST_PP_DEC(arity), P) \
             , front_inserter< typename clear<P1>::type > \
             > \
         >::type \
@@ -112,48 +112,48 @@
 }; \
 \
 template< \
-      BOOST_MPL_PP_DEFAULT_PARAMS(arity, typename P, na) \
+      NDNBOOST_MPL_PP_DEFAULT_PARAMS(arity, typename P, na) \
     > \
 struct name \
 { \
     typedef typename eval_if< \
-          is_na<BOOST_PP_CAT(P, arity)> \
-        , def_##name##_impl<BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P)> \
-        , aux::name##_impl<BOOST_MPL_PP_PARAMS(arity, P)> \
+          is_na<NDNBOOST_PP_CAT(P, arity)> \
+        , def_##name##_impl<NDNBOOST_MPL_PP_PARAMS(NDNBOOST_PP_DEC(arity), P)> \
+        , aux::name##_impl<NDNBOOST_MPL_PP_PARAMS(arity, P)> \
         >::type type; \
 }; \
 \
 template< \
-      BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), typename P) \
+      NDNBOOST_MPL_PP_PARAMS(NDNBOOST_PP_DEC(arity), typename P) \
     > \
 struct def_reverse_##name##_impl \
     : if_< has_push_back<P1> \
         , aux::reverse_##name##_impl< \
-              BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P) \
+              NDNBOOST_MPL_PP_PARAMS(NDNBOOST_PP_DEC(arity), P) \
             , back_inserter< typename clear<P1>::type > \
             > \
         , aux::name##_impl< \
-              BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P) \
+              NDNBOOST_MPL_PP_PARAMS(NDNBOOST_PP_DEC(arity), P) \
             , front_inserter< typename clear<P1>::type > \
             > \
         >::type \
 { \
 }; \
 template< \
-      BOOST_MPL_PP_DEFAULT_PARAMS(arity, typename P, na) \
+      NDNBOOST_MPL_PP_DEFAULT_PARAMS(arity, typename P, na) \
     > \
 struct reverse_##name \
 { \
     typedef typename eval_if< \
-          is_na<BOOST_PP_CAT(P, arity)> \
-        , def_reverse_##name##_impl<BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P)> \
-        , aux::reverse_##name##_impl<BOOST_MPL_PP_PARAMS(arity, P)> \
+          is_na<NDNBOOST_PP_CAT(P, arity)> \
+        , def_reverse_##name##_impl<NDNBOOST_MPL_PP_PARAMS(NDNBOOST_PP_DEC(arity), P)> \
+        , aux::reverse_##name##_impl<NDNBOOST_MPL_PP_PARAMS(arity, P)> \
         >::type type; \
 }; \
-BOOST_MPL_AUX_NA_SPEC(arity, name) \
-BOOST_MPL_AUX_NA_SPEC(arity, reverse_##name) \
+NDNBOOST_MPL_AUX_NA_SPEC(arity, name) \
+NDNBOOST_MPL_AUX_NA_SPEC(arity, reverse_##name) \
 /**/
 
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
-#endif // BOOST_MPL_AUX_INSERTER_ALGORITHM_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_INSERTER_ALGORITHM_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/integral_wrapper.hpp b/include/ndnboost/mpl/aux_/integral_wrapper.hpp
index 3ff7d82..462834a 100644
--- a/include/ndnboost/mpl/aux_/integral_wrapper.hpp
+++ b/include/ndnboost/mpl/aux_/integral_wrapper.hpp
@@ -22,30 +22,30 @@
 #include <ndnboost/preprocessor/cat.hpp>
 
 #if !defined(AUX_WRAPPER_NAME)
-#   define AUX_WRAPPER_NAME BOOST_PP_CAT(AUX_WRAPPER_VALUE_TYPE,_)
+#   define AUX_WRAPPER_NAME NDNBOOST_PP_CAT(AUX_WRAPPER_VALUE_TYPE,_)
 #endif
 
 #if !defined(AUX_WRAPPER_PARAMS)
-#   define AUX_WRAPPER_PARAMS(N) BOOST_MPL_AUX_NTTP_DECL(AUX_WRAPPER_VALUE_TYPE, N)
+#   define AUX_WRAPPER_PARAMS(N) NDNBOOST_MPL_AUX_NTTP_DECL(AUX_WRAPPER_VALUE_TYPE, N)
 #endif
 
 #if !defined(AUX_WRAPPER_INST)
-#   if BOOST_WORKAROUND(__MWERKS__, <= 0x2407)
+#   if NDNBOOST_WORKAROUND(__MWERKS__, <= 0x2407)
 #       define AUX_WRAPPER_INST(value) AUX_WRAPPER_NAME< value >
 #   else 
-#       define AUX_WRAPPER_INST(value) BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::AUX_WRAPPER_NAME< value >
+#       define AUX_WRAPPER_INST(value) NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::AUX_WRAPPER_NAME< value >
 #   endif
 #endif
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 
 template< AUX_WRAPPER_PARAMS(N) >
 struct AUX_WRAPPER_NAME
 {
-    BOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, value = N);
+    NDNBOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, value = N);
 // agurt, 08/mar/03: SGI MIPSpro C++ workaround, have to #ifdef because some 
 // other compilers (e.g. MSVC) are not particulary happy about it
-#if BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
+#if NDNBOOST_WORKAROUND(__EDG_VERSION__, <= 238)
     typedef struct AUX_WRAPPER_NAME type;
 #else
     typedef AUX_WRAPPER_NAME type;
@@ -56,21 +56,21 @@
 // have to #ifdef here: some compilers don't like the 'N + 1' form (MSVC),
 // while some other don't like 'value + 1' (Borland), and some don't like
 // either
-#if BOOST_WORKAROUND(__EDG_VERSION__, <= 243)
+#if NDNBOOST_WORKAROUND(__EDG_VERSION__, <= 243)
  private:
-    BOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, next_value = BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N + 1)));
-    BOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, prior_value = BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N - 1)));
+    NDNBOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, next_value = NDNBOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N + 1)));
+    NDNBOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, prior_value = NDNBOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N - 1)));
  public:
     typedef AUX_WRAPPER_INST(next_value) next;
     typedef AUX_WRAPPER_INST(prior_value) prior;
-#elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x561)) \
-    || BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(502)) \
-    || (BOOST_WORKAROUND(__HP_aCC, <= 53800) && (BOOST_WORKAROUND(__hpxstd98, != 1)))
-    typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N + 1)) ) next;
-    typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N - 1)) ) prior;
+#elif NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x561)) \
+    || NDNBOOST_WORKAROUND(__IBMCPP__, NDNBOOST_TESTED_AT(502)) \
+    || (NDNBOOST_WORKAROUND(__HP_aCC, <= 53800) && (NDNBOOST_WORKAROUND(__hpxstd98, != 1)))
+    typedef AUX_WRAPPER_INST( NDNBOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N + 1)) ) next;
+    typedef AUX_WRAPPER_INST( NDNBOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N - 1)) ) prior;
 #else
-    typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (value + 1)) ) next;
-    typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (value - 1)) ) prior;
+    typedef AUX_WRAPPER_INST( NDNBOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (value + 1)) ) next;
+    typedef AUX_WRAPPER_INST( NDNBOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (value - 1)) ) prior;
 #endif
 
     // enables uniform function call syntax for families of overloaded 
@@ -80,12 +80,12 @@
     operator AUX_WRAPPER_VALUE_TYPE() const { return static_cast<AUX_WRAPPER_VALUE_TYPE>(this->value); } 
 };
 
-#if !defined(BOOST_NO_INCLASS_MEMBER_INITIALIZATION)
+#if !defined(NDNBOOST_NO_INCLASS_MEMBER_INITIALIZATION)
 template< AUX_WRAPPER_PARAMS(N) >
 AUX_WRAPPER_VALUE_TYPE const AUX_WRAPPER_INST(N)::value;
 #endif
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 
 #undef AUX_WRAPPER_NAME
 #undef AUX_WRAPPER_PARAMS
diff --git a/include/ndnboost/mpl/aux_/is_msvc_eti_arg.hpp b/include/ndnboost/mpl/aux_/is_msvc_eti_arg.hpp
index 9ec0bcc..54a93eb 100644
--- a/include/ndnboost/mpl/aux_/is_msvc_eti_arg.hpp
+++ b/include/ndnboost/mpl/aux_/is_msvc_eti_arg.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_IS_MSVC_ETI_ARG_HPP_INCLUDED
-#define BOOST_MPL_AUX_IS_MSVC_ETI_ARG_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_IS_MSVC_ETI_ARG_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_IS_MSVC_ETI_ARG_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2001-2004
 //
@@ -20,17 +20,17 @@
 
 namespace ndnboost { namespace mpl { namespace aux {
 
-#if defined(BOOST_MPL_CFG_MSVC_ETI_BUG)
+#if defined(NDNBOOST_MPL_CFG_MSVC_ETI_BUG)
 
-#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG)
+#if defined(NDNBOOST_MPL_CFG_MSVC_60_ETI_BUG)
 
 template< typename T >
 struct is_msvc_eti_arg
 { 
-    BOOST_STATIC_CONSTANT(bool, value = false);
+    NDNBOOST_STATIC_CONSTANT(bool, value = false);
 };
 
-#else // BOOST_MPL_CFG_MSVC_60_ETI_BUG
+#else // NDNBOOST_MPL_CFG_MSVC_60_ETI_BUG
 
 struct eti_int_convertible
 {
@@ -44,7 +44,7 @@
     static yes_tag test(eti_int_convertible);
     static T& get();
 
-    BOOST_STATIC_CONSTANT(bool, value = 
+    NDNBOOST_STATIC_CONSTANT(bool, value = 
           sizeof(test(get())) == sizeof(yes_tag)
         );
 };
@@ -54,11 +54,11 @@
 template<>
 struct is_msvc_eti_arg<int>
 { 
-    BOOST_STATIC_CONSTANT(bool, value = true);
+    NDNBOOST_STATIC_CONSTANT(bool, value = true);
 };
 
-#endif // BOOST_MPL_CFG_MSVC_ETI_BUG
+#endif // NDNBOOST_MPL_CFG_MSVC_ETI_BUG
 
 }}}
 
-#endif // BOOST_MPL_AUX_IS_MSVC_ETI_ARG_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_IS_MSVC_ETI_ARG_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/iter_apply.hpp b/include/ndnboost/mpl/aux_/iter_apply.hpp
index c5a62a5..6b3b7fe 100644
--- a/include/ndnboost/mpl/aux_/iter_apply.hpp
+++ b/include/ndnboost/mpl/aux_/iter_apply.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_ITER_APPLY_HPP_INCLUDED
-#define BOOST_MPL_ITER_APPLY_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_ITER_APPLY_HPP_INCLUDED
+#define NDNBOOST_MPL_ITER_APPLY_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2002-2004
 //
@@ -44,4 +44,4 @@
 
 }}}
 
-#endif // BOOST_MPL_ITER_APPLY_HPP_INCLUDED
+#endif // NDNBOOST_MPL_ITER_APPLY_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/iter_fold_if_impl.hpp b/include/ndnboost/mpl/aux_/iter_fold_if_impl.hpp
index ee90eb2..b3d93be 100644
--- a/include/ndnboost/mpl/aux_/iter_fold_if_impl.hpp
+++ b/include/ndnboost/mpl/aux_/iter_fold_if_impl.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_ITER_FOLD_IF_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_ITER_FOLD_IF_IMPL_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_ITER_FOLD_IF_IMPL_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_ITER_FOLD_IF_IMPL_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2001-2004
 // Copyright David Abrahams 2001-2002
@@ -15,7 +15,7 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/identity.hpp>
 #   include <ndnboost/mpl/next.hpp>
 #   include <ndnboost/mpl/if.hpp>
@@ -25,10 +25,10 @@
 
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
-#   define BOOST_MPL_PREPROCESSED_HEADER iter_fold_if_impl.hpp
+#   define NDNBOOST_MPL_PREPROCESSED_HEADER iter_fold_if_impl.hpp
 #   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
 
 #else
@@ -94,7 +94,7 @@
 {
     typedef typename apply2<Predicate,State,Iterator>::type not_last;
     typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
+          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
         >::template result_< Iterator,State,ForwardOp,mpl::next<Iterator> > impl_;
 
     typedef typename impl_::state state;
@@ -111,7 +111,7 @@
 {
     typedef typename apply2<Predicate,State,Iterator>::type not_last;
     typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
+          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
         >::template result_< Iterator,State,BackwardOp,identity<Iterator> > impl_;
 
     typedef typename impl_::state state;
@@ -123,34 +123,34 @@
 
 #   define AUX_ITER_FOLD_FORWARD_STEP(unused, i, unused2) \
     typedef iter_fold_if_forward_step< \
-          typename BOOST_PP_CAT(forward_step,i)::iterator \
-        , typename BOOST_PP_CAT(forward_step,i)::state \
+          typename NDNBOOST_PP_CAT(forward_step,i)::iterator \
+        , typename NDNBOOST_PP_CAT(forward_step,i)::state \
         , ForwardOp \
         , ForwardPredicate \
-        > BOOST_PP_CAT(forward_step, BOOST_PP_INC(i)); \
+        > NDNBOOST_PP_CAT(forward_step, NDNBOOST_PP_INC(i)); \
     /**/
 
 #   define AUX_ITER_FOLD_BACKWARD_STEP_FUNC(i) \
     typedef iter_fold_if_backward_step< \
-          typename BOOST_PP_CAT(forward_step,BOOST_PP_DEC(i))::iterator \
-        , typename BOOST_PP_CAT(backward_step,i)::state \
+          typename NDNBOOST_PP_CAT(forward_step,NDNBOOST_PP_DEC(i))::iterator \
+        , typename NDNBOOST_PP_CAT(backward_step,i)::state \
         , BackwardOp \
         , BackwardPredicate \
-        > BOOST_PP_CAT(backward_step,BOOST_PP_DEC(i)); \
+        > NDNBOOST_PP_CAT(backward_step,NDNBOOST_PP_DEC(i)); \
     /**/
 
 #   define AUX_ITER_FOLD_BACKWARD_STEP(unused, i, unused2) \
     AUX_ITER_FOLD_BACKWARD_STEP_FUNC( \
-        BOOST_PP_SUB_D(1,BOOST_MPL_LIMIT_UNROLLING,i) \
+        NDNBOOST_PP_SUB_D(1,NDNBOOST_MPL_LIMIT_UNROLLING,i) \
         ) \
     /**/
 
 #   define AUX_LAST_FORWARD_STEP \
-    BOOST_PP_CAT(forward_step, BOOST_MPL_LIMIT_UNROLLING) \
+    NDNBOOST_PP_CAT(forward_step, NDNBOOST_MPL_LIMIT_UNROLLING) \
     /**/
 
 #   define AUX_LAST_BACKWARD_STEP \
-    BOOST_PP_CAT(backward_step, BOOST_MPL_LIMIT_UNROLLING) \
+    NDNBOOST_PP_CAT(backward_step, NDNBOOST_MPL_LIMIT_UNROLLING) \
     /**/
 
 template<
@@ -165,8 +165,8 @@
 {
  private:
     typedef iter_fold_if_null_step<Iterator,State> forward_step0;
-    BOOST_PP_REPEAT(
-          BOOST_MPL_LIMIT_UNROLLING
+    NDNBOOST_PP_REPEAT(
+          NDNBOOST_MPL_LIMIT_UNROLLING
         , AUX_ITER_FOLD_FORWARD_STEP
         , unused
         )
@@ -187,8 +187,8 @@
             >
         >::type AUX_LAST_BACKWARD_STEP;
 
-    BOOST_PP_REPEAT(
-          BOOST_MPL_LIMIT_UNROLLING
+    NDNBOOST_PP_REPEAT(
+          NDNBOOST_MPL_LIMIT_UNROLLING
         , AUX_ITER_FOLD_BACKWARD_STEP
         , unused
         )
@@ -206,5 +206,5 @@
 
 }}}
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_AUX_ITER_FOLD_IF_IMPL_HPP_INCLUDED
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_AUX_ITER_FOLD_IF_IMPL_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/iter_fold_impl.hpp b/include/ndnboost/mpl/aux_/iter_fold_impl.hpp
index c67b1e7..6154127 100644
--- a/include/ndnboost/mpl/aux_/iter_fold_impl.hpp
+++ b/include/ndnboost/mpl/aux_/iter_fold_impl.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_ITER_FOLD_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_ITER_FOLD_IMPL_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_ITER_FOLD_IMPL_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_ITER_FOLD_IMPL_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -14,11 +14,11 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/next_prior.hpp>
 #   include <ndnboost/mpl/apply.hpp>
 #   include <ndnboost/mpl/aux_/config/ctps.hpp>
-#   if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#   if defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 #       include <ndnboost/mpl/if.hpp>
 #       include <ndnboost/type_traits/is_same.hpp>
 #   endif
@@ -26,10 +26,10 @@
 
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
-#   define BOOST_MPL_PREPROCESSED_HEADER iter_fold_impl.hpp
+#   define NDNBOOST_MPL_PREPROCESSED_HEADER iter_fold_impl.hpp
 #   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
 
 #else
@@ -38,5 +38,5 @@
 #   define AUX778076_FOLD_IMPL_NAME_PREFIX iter_fold
 #   include <ndnboost/mpl/aux_/fold_impl_body.hpp>
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_AUX_ITER_FOLD_IMPL_HPP_INCLUDED
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_AUX_ITER_FOLD_IMPL_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/lambda_arity_param.hpp b/include/ndnboost/mpl/aux_/lambda_arity_param.hpp
index b4d0e44..369425e 100644
--- a/include/ndnboost/mpl/aux_/lambda_arity_param.hpp
+++ b/include/ndnboost/mpl/aux_/lambda_arity_param.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_LAMBDA_ARITY_PARAM_HPP_INCLUDED
-#define BOOST_MPL_AUX_LAMBDA_ARITY_PARAM_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_LAMBDA_ARITY_PARAM_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_LAMBDA_ARITY_PARAM_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2001-2004
 //
@@ -16,10 +16,10 @@
 
 #include <ndnboost/mpl/aux_/config/ttp.hpp>
 
-#if !defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING)
-#   define BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(param)    
+#if !defined(NDNBOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING)
+#   define NDNBOOST_MPL_AUX_LAMBDA_ARITY_PARAM(param)    
 #else
-#   define BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(param) , param
+#   define NDNBOOST_MPL_AUX_LAMBDA_ARITY_PARAM(param) , param
 #endif
 
-#endif // BOOST_MPL_AUX_LAMBDA_ARITY_PARAM_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_LAMBDA_ARITY_PARAM_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/lambda_no_ctps.hpp b/include/ndnboost/mpl/aux_/lambda_no_ctps.hpp
index 0966052..8da4714 100644
--- a/include/ndnboost/mpl/aux_/lambda_no_ctps.hpp
+++ b/include/ndnboost/mpl/aux_/lambda_no_ctps.hpp
@@ -1,10 +1,10 @@
 
-#if !defined(BOOST_PP_IS_ITERATING)
+#if !defined(NDNBOOST_PP_IS_ITERATING)
 
 ///// header body
 
-#ifndef BOOST_MPL_AUX_LAMBDA_NO_CTPS_HPP_INCLUDED
-#define BOOST_MPL_AUX_LAMBDA_NO_CTPS_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_LAMBDA_NO_CTPS_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_LAMBDA_NO_CTPS_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -18,7 +18,7 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/lambda_fwd.hpp>
 #   include <ndnboost/mpl/bind_fwd.hpp>
 #   include <ndnboost/mpl/protect.hpp>
@@ -34,10 +34,10 @@
 
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if    !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if    !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
-#   define BOOST_MPL_PREPROCESSED_HEADER lambda_no_ctps.hpp
+#   define NDNBOOST_MPL_PREPROCESSED_HEADER lambda_no_ctps.hpp
 #   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
 
 #else
@@ -58,14 +58,14 @@
 namespace ndnboost { namespace mpl {
 
 #   define AUX778076_LAMBDA_PARAMS(i_, param) \
-    BOOST_MPL_PP_PARAMS(i_, param) \
+    NDNBOOST_MPL_PP_PARAMS(i_, param) \
     /**/
 
 namespace aux {
 
-#define n_ BOOST_MPL_LIMIT_METAFUNCTION_ARITY
+#define n_ NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY
 template<
-      BOOST_MPL_PP_DEFAULT_PARAMS(n_,bool C,false)
+      NDNBOOST_MPL_PP_DEFAULT_PARAMS(n_,bool C,false)
     >
 struct lambda_or
     : true_
@@ -73,7 +73,7 @@
 };
 
 template<>
-struct lambda_or< BOOST_MPL_PP_ENUM(n_,false) >
+struct lambda_or< NDNBOOST_MPL_PP_ENUM(n_,false) >
     : false_
 {
 };
@@ -88,9 +88,9 @@
     };
 };
 
-#define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(1, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, <ndnboost/mpl/aux_/lambda_no_ctps.hpp>))
-#include BOOST_PP_ITERATE()
+#define NDNBOOST_PP_ITERATION_PARAMS_1 \
+    (3,(1, NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY, <ndnboost/mpl/aux_/lambda_no_ctps.hpp>))
+#include NDNBOOST_PP_ITERATE()
 
 } // namespace aux
 
@@ -109,10 +109,10 @@
     typedef typename l_::type type;
     typedef typename l_::is_le is_le;
     
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
 };
 
-BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
+NDNBOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
 
 template<
       typename T
@@ -126,51 +126,51 @@
 
 }}
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_AUX_LAMBDA_NO_CTPS_HPP_INCLUDED
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_AUX_LAMBDA_NO_CTPS_HPP_INCLUDED
 
 ///// iteration, depth == 1
 
 #else
 
-#define i_ BOOST_PP_FRAME_ITERATION(1)
+#define i_ NDNBOOST_PP_FRAME_ITERATION(1)
 
 #   define AUX778076_LAMBDA_TYPEDEF(unused, i_, F) \
     typedef lambda< \
-          typename F::BOOST_PP_CAT(arg,BOOST_PP_INC(i_)) \
+          typename F::NDNBOOST_PP_CAT(arg,NDNBOOST_PP_INC(i_)) \
         , Tag \
         , false_ \
-        > BOOST_PP_CAT(l,BOOST_PP_INC(i_)); \
+        > NDNBOOST_PP_CAT(l,NDNBOOST_PP_INC(i_)); \
     /**/
 
 #   define AUX778076_IS_LE_TYPEDEF(unused, i_, unused2) \
-    typedef typename BOOST_PP_CAT(l,BOOST_PP_INC(i_))::is_le \
-        BOOST_PP_CAT(is_le,BOOST_PP_INC(i_)); \
+    typedef typename NDNBOOST_PP_CAT(l,NDNBOOST_PP_INC(i_))::is_le \
+        NDNBOOST_PP_CAT(is_le,NDNBOOST_PP_INC(i_)); \
     /**/
 
 #   define AUX778076_IS_LAMBDA_EXPR(unused, i_, unused2) \
-    BOOST_PP_COMMA_IF(i_) \
-    BOOST_MPL_AUX_MSVC_VALUE_WKND(BOOST_PP_CAT(is_le,BOOST_PP_INC(i_)))::value \
+    NDNBOOST_PP_COMMA_IF(i_) \
+    NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(NDNBOOST_PP_CAT(is_le,NDNBOOST_PP_INC(i_)))::value \
     /**/
 
 #   define AUX778076_LAMBDA_RESULT(unused, i_, unused2) \
-    , typename BOOST_PP_CAT(l,BOOST_PP_INC(i_))::type \
+    , typename NDNBOOST_PP_CAT(l,NDNBOOST_PP_INC(i_))::type \
     /**/
 
 template<> struct lambda_impl< int_<i_> >
 {
     template< typename F, typename Tag, typename Protect > struct result_
     {
-        BOOST_MPL_PP_REPEAT(i_, AUX778076_LAMBDA_TYPEDEF, F)
-        BOOST_MPL_PP_REPEAT(i_, AUX778076_IS_LE_TYPEDEF, unused)
+        NDNBOOST_MPL_PP_REPEAT(i_, AUX778076_LAMBDA_TYPEDEF, F)
+        NDNBOOST_MPL_PP_REPEAT(i_, AUX778076_IS_LE_TYPEDEF, unused)
 
         typedef aux::lambda_or<
-              BOOST_MPL_PP_REPEAT(i_, AUX778076_IS_LAMBDA_EXPR, unused)
+              NDNBOOST_MPL_PP_REPEAT(i_, AUX778076_IS_LAMBDA_EXPR, unused)
             > is_le;
 
-        typedef BOOST_PP_CAT(bind,i_)<
+        typedef NDNBOOST_PP_CAT(bind,i_)<
               typename F::rebind
-            BOOST_MPL_PP_REPEAT(i_, AUX778076_LAMBDA_RESULT, unused)
+            NDNBOOST_MPL_PP_REPEAT(i_, AUX778076_LAMBDA_RESULT, unused)
             > bind_;
 
         typedef typename if_<
@@ -190,4 +190,4 @@
 
 #undef i_
 
-#endif // BOOST_PP_IS_ITERATING
+#endif // NDNBOOST_PP_IS_ITERATING
diff --git a/include/ndnboost/mpl/aux_/lambda_spec.hpp b/include/ndnboost/mpl/aux_/lambda_spec.hpp
index f3e6137..6d25a35 100644
--- a/include/ndnboost/mpl/aux_/lambda_spec.hpp
+++ b/include/ndnboost/mpl/aux_/lambda_spec.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_LAMBDA_SPEC_HPP_INCLUDED
-#define BOOST_MPL_AUX_LAMBDA_SPEC_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_LAMBDA_SPEC_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_LAMBDA_SPEC_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2001-2007
 //
@@ -21,29 +21,29 @@
 #include <ndnboost/mpl/aux_/lambda_arity_param.hpp>
 #include <ndnboost/mpl/aux_/config/lambda.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
+#if !defined(NDNBOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
 
-#   define BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(i, name) \
+#   define NDNBOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(i, name) \
 template< \
-      BOOST_MPL_PP_PARAMS(i, typename T) \
+      NDNBOOST_MPL_PP_PARAMS(i, typename T) \
     , typename Tag \
     > \
 struct lambda< \
-      name< BOOST_MPL_PP_PARAMS(i, T) > \
+      name< NDNBOOST_MPL_PP_PARAMS(i, T) > \
     , Tag \
-    BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(int_<i>) \
+    NDNBOOST_MPL_AUX_LAMBDA_ARITY_PARAM(int_<i>) \
     > \
 { \
     typedef false_ is_le; \
-    typedef name< BOOST_MPL_PP_PARAMS(i, T) > result_; \
+    typedef name< NDNBOOST_MPL_PP_PARAMS(i, T) > result_; \
     typedef result_ type; \
 }; \
 /**/
 
 #else
 
-#   define BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(i, name) /**/
+#   define NDNBOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(i, name) /**/
 
 #endif
 
-#endif // BOOST_MPL_AUX_LAMBDA_SPEC_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_LAMBDA_SPEC_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/lambda_support.hpp b/include/ndnboost/mpl/aux_/lambda_support.hpp
index 955b155..aa08f98 100644
--- a/include/ndnboost/mpl/aux_/lambda_support.hpp
+++ b/include/ndnboost/mpl/aux_/lambda_support.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_LAMBDA_SUPPORT_HPP_INCLUDED
-#define BOOST_MPL_AUX_LAMBDA_SUPPORT_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2001-2004
 //
@@ -16,10 +16,10 @@
 
 #include <ndnboost/mpl/aux_/config/lambda.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
+#if !defined(NDNBOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
 
-#   define BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) /**/
-#   define BOOST_MPL_AUX_LAMBDA_SUPPORT(i,name,params) /**/
+#   define NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) /**/
+#   define NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(i,name,params) /**/
 
 #else
 
@@ -36,58 +36,58 @@
 #   include <ndnboost/preprocessor/inc.hpp>
 #   include <ndnboost/preprocessor/cat.hpp>
 
-#   define BOOST_MPL_AUX_LAMBDA_SUPPORT_ARG_TYPEDEF_FUNC(R,typedef_,i,param) \
-    typedef_ param BOOST_PP_CAT(arg,BOOST_PP_INC(i)); \
+#   define NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_ARG_TYPEDEF_FUNC(R,typedef_,i,param) \
+    typedef_ param NDNBOOST_PP_CAT(arg,NDNBOOST_PP_INC(i)); \
     /**/
 
 // agurt, 07/mar/03: restore an old revision for the sake of SGI MIPSpro C++
-#if BOOST_WORKAROUND(__EDG_VERSION__, <= 238) 
+#if NDNBOOST_WORKAROUND(__EDG_VERSION__, <= 238) 
 
-#   define BOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \
-    typedef BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::int_<i> arity; \
-    BOOST_PP_LIST_FOR_EACH_I_R( \
+#   define NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \
+    typedef NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::int_<i> arity; \
+    NDNBOOST_PP_LIST_FOR_EACH_I_R( \
           1 \
-        , BOOST_MPL_AUX_LAMBDA_SUPPORT_ARG_TYPEDEF_FUNC \
+        , NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_ARG_TYPEDEF_FUNC \
         , typedef \
-        , BOOST_PP_TUPLE_TO_LIST(i,params) \
+        , NDNBOOST_PP_TUPLE_TO_LIST(i,params) \
         ) \
     struct rebind \
     { \
-        template< BOOST_MPL_PP_PARAMS(i,typename U) > struct apply \
-            : name< BOOST_MPL_PP_PARAMS(i,U) > \
+        template< NDNBOOST_MPL_PP_PARAMS(i,typename U) > struct apply \
+            : name< NDNBOOST_MPL_PP_PARAMS(i,U) > \
         { \
         }; \
     }; \
     /**/
 
-#   define BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \
+#   define NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \
     /**/
 
-#elif BOOST_WORKAROUND(__EDG_VERSION__, <= 244) && !defined(BOOST_INTEL_CXX_VERSION)
+#elif NDNBOOST_WORKAROUND(__EDG_VERSION__, <= 244) && !defined(NDNBOOST_INTEL_CXX_VERSION)
 // agurt, 18/jan/03: old EDG-based compilers actually enforce 11.4 para 9
 // (in strict mode), so we have to provide an alternative to the 
 // MSVC-optimized implementation
 
-#   define BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \
-    typedef BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::int_<i> arity; \
-    BOOST_PP_LIST_FOR_EACH_I_R( \
+#   define NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \
+    typedef NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::int_<i> arity; \
+    NDNBOOST_PP_LIST_FOR_EACH_I_R( \
           1 \
-        , BOOST_MPL_AUX_LAMBDA_SUPPORT_ARG_TYPEDEF_FUNC \
+        , NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_ARG_TYPEDEF_FUNC \
         , typedef \
-        , BOOST_PP_TUPLE_TO_LIST(i,params) \
+        , NDNBOOST_PP_TUPLE_TO_LIST(i,params) \
         ) \
     struct rebind; \
 /**/
 
-#   define BOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \
+#   define NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \
 }; \
-template< BOOST_MPL_PP_PARAMS(i,typename T) > \
-struct name<BOOST_MPL_PP_PARAMS(i,T)>::rebind \
+template< NDNBOOST_MPL_PP_PARAMS(i,typename T) > \
+struct name<NDNBOOST_MPL_PP_PARAMS(i,T)>::rebind \
 { \
-    template< BOOST_MPL_PP_PARAMS(i,typename U) > struct apply \
-        : name< BOOST_MPL_PP_PARAMS(i,U) > \
+    template< NDNBOOST_MPL_PP_PARAMS(i,typename U) > struct apply \
+        : name< NDNBOOST_MPL_PP_PARAMS(i,U) > \
     { \
     }; \
 /**/
@@ -98,72 +98,72 @@
 template< typename T > struct has_rebind_tag;
 }}}
 
-#   define BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \
-    typedef BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::int_<i> arity; \
-    BOOST_PP_LIST_FOR_EACH_I_R( \
+#   define NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \
+    typedef NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::int_<i> arity; \
+    NDNBOOST_PP_LIST_FOR_EACH_I_R( \
           1 \
-        , BOOST_MPL_AUX_LAMBDA_SUPPORT_ARG_TYPEDEF_FUNC \
+        , NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_ARG_TYPEDEF_FUNC \
         , typedef \
-        , BOOST_PP_TUPLE_TO_LIST(i,params) \
+        , NDNBOOST_PP_TUPLE_TO_LIST(i,params) \
         ) \
-    friend class BOOST_PP_CAT(name,_rebind); \
-    typedef BOOST_PP_CAT(name,_rebind) rebind; \
+    friend class NDNBOOST_PP_CAT(name,_rebind); \
+    typedef NDNBOOST_PP_CAT(name,_rebind) rebind; \
 /**/
 
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
-#   define BOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) \
-template< BOOST_MPL_PP_PARAMS(i,typename T) > \
+#if NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x610))
+#   define NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) \
+template< NDNBOOST_MPL_PP_PARAMS(i,typename T) > \
 ::ndnboost::mpl::aux::yes_tag operator|( \
       ::ndnboost::mpl::aux::has_rebind_tag<int> \
-    , name<BOOST_MPL_PP_PARAMS(i,T)>* \
+    , name<NDNBOOST_MPL_PP_PARAMS(i,T)>* \
     ); \
 ::ndnboost::mpl::aux::no_tag operator|( \
       ::ndnboost::mpl::aux::has_rebind_tag<int> \
-    , name< BOOST_MPL_PP_ENUM(i,::ndnboost::mpl::na) >* \
+    , name< NDNBOOST_MPL_PP_ENUM(i,::ndnboost::mpl::na) >* \
     ); \
 /**/
-#elif !BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-#   define BOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) \
-template< BOOST_MPL_PP_PARAMS(i,typename T) > \
+#elif !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
+#   define NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) \
+template< NDNBOOST_MPL_PP_PARAMS(i,typename T) > \
 ::ndnboost::mpl::aux::yes_tag operator|( \
       ::ndnboost::mpl::aux::has_rebind_tag<int> \
-    , ::ndnboost::mpl::aux::has_rebind_tag< name<BOOST_MPL_PP_PARAMS(i,T)> >* \
+    , ::ndnboost::mpl::aux::has_rebind_tag< name<NDNBOOST_MPL_PP_PARAMS(i,T)> >* \
     ); \
 /**/
 #else
-#   define BOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) /**/
+#   define NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) /**/
 #endif
 
 #   if !defined(__BORLANDC__)
-#   define BOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \
+#   define NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \
 }; \
-BOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) \
-class BOOST_PP_CAT(name,_rebind) \
+NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) \
+class NDNBOOST_PP_CAT(name,_rebind) \
 { \
  public: \
-    template< BOOST_MPL_PP_PARAMS(i,typename U) > struct apply \
-        : name< BOOST_MPL_PP_PARAMS(i,U) > \
+    template< NDNBOOST_MPL_PP_PARAMS(i,typename U) > struct apply \
+        : name< NDNBOOST_MPL_PP_PARAMS(i,U) > \
     { \
     }; \
 /**/
 #   else
-#   define BOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \
+#   define NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \
 }; \
-BOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) \
-class BOOST_PP_CAT(name,_rebind) \
+NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) \
+class NDNBOOST_PP_CAT(name,_rebind) \
 { \
  public: \
-    template< BOOST_MPL_PP_PARAMS(i,typename U) > struct apply \
+    template< NDNBOOST_MPL_PP_PARAMS(i,typename U) > struct apply \
     { \
-        typedef typename name< BOOST_MPL_PP_PARAMS(i,U) >::type type; \
+        typedef typename name< NDNBOOST_MPL_PP_PARAMS(i,U) >::type type; \
     }; \
 /**/
 #   endif // __BORLANDC__
 
 #endif // __EDG_VERSION__
 
-#endif // BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT
+#endif // NDNBOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT
 
-#endif // BOOST_MPL_AUX_LAMBDA_SUPPORT_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/largest_int.hpp b/include/ndnboost/mpl/aux_/largest_int.hpp
index f88ad94..6d668cc 100644
--- a/include/ndnboost/mpl/aux_/largest_int.hpp
+++ b/include/ndnboost/mpl/aux_/largest_int.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_LARGEST_INT_HPP_INCLUDED
-#define BOOST_MPL_AUX_LARGEST_INT_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_LARGEST_INT_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_LARGEST_INT_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -27,7 +27,7 @@
 template<> struct integral_rank<signed char>    : int_<2> {};
 template<> struct integral_rank<char>           : int_<3> {};
 template<> struct integral_rank<unsigned char>  : int_<4> {};
-#if !defined(BOOST_NO_INTRINSIC_WCHAR_T)
+#if !defined(NDNBOOST_NO_INTRINSIC_WCHAR_T)
 template<> struct integral_rank<wchar_t>        : int_<5> {};
 #endif
 template<> struct integral_rank<short>          : int_<6> {};
@@ -37,13 +37,13 @@
 template<> struct integral_rank<long>           : int_<10> {};
 template<> struct integral_rank<unsigned long>  : int_<11> {};
 
-#if defined(BOOST_HAS_LONG_LONG)
+#if defined(NDNBOOST_HAS_LONG_LONG)
 template<> struct integral_rank<long_long_type> : int_<12> {};
 template<> struct integral_rank<ulong_long_type>: int_<13> {};
 #endif
 
 template< typename T1, typename T2 > struct largest_int
-#if !defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC)
+#if !defined(NDNBOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC)
     : if_c< 
           ( integral_rank<T1>::value >= integral_rank<T2>::value )
         , T1
@@ -60,4 +60,4 @@
 
 }}}
 
-#endif // BOOST_MPL_AUX_LARGEST_INT_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_LARGEST_INT_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/logical_op.hpp b/include/ndnboost/mpl/aux_/logical_op.hpp
index e378e1f..4d06cc5 100644
--- a/include/ndnboost/mpl/aux_/logical_op.hpp
+++ b/include/ndnboost/mpl/aux_/logical_op.hpp
@@ -13,7 +13,7 @@
 
 // NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION!
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/bool.hpp>
 #   include <ndnboost/mpl/aux_/nested_type_wknd.hpp>
 #   include <ndnboost/mpl/aux_/na_spec.hpp>
@@ -36,77 +36,77 @@
 namespace ndnboost { namespace mpl {
 
 #   define AUX778076_PARAMS(param, sub) \
-    BOOST_MPL_PP_PARAMS( \
-          BOOST_MPL_PP_SUB(BOOST_MPL_LIMIT_METAFUNCTION_ARITY, sub) \
+    NDNBOOST_MPL_PP_PARAMS( \
+          NDNBOOST_MPL_PP_SUB(NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY, sub) \
         , param \
         ) \
     /**/
 
 #   define AUX778076_SHIFTED_PARAMS(param, sub) \
-    BOOST_MPL_PP_EXT_PARAMS( \
-          2, BOOST_MPL_PP_SUB(BOOST_PP_INC(BOOST_MPL_LIMIT_METAFUNCTION_ARITY), sub) \
+    NDNBOOST_MPL_PP_EXT_PARAMS( \
+          2, NDNBOOST_MPL_PP_SUB(NDNBOOST_PP_INC(NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY), sub) \
         , param \
         ) \
     /**/
 
 #   define AUX778076_SPEC_PARAMS(param) \
-    BOOST_MPL_PP_ENUM( \
-          BOOST_PP_DEC(BOOST_MPL_LIMIT_METAFUNCTION_ARITY) \
+    NDNBOOST_MPL_PP_ENUM( \
+          NDNBOOST_PP_DEC(NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY) \
         , param \
         ) \
     /**/
 
 namespace aux {
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template< bool C_, AUX778076_PARAMS(typename T, 1) >
-struct BOOST_PP_CAT(AUX778076_OP_NAME,impl)
-    : BOOST_PP_CAT(AUX778076_OP_VALUE1,_)
+struct NDNBOOST_PP_CAT(AUX778076_OP_NAME,impl)
+    : NDNBOOST_PP_CAT(AUX778076_OP_VALUE1,_)
 {
 };
 
 template< AUX778076_PARAMS(typename T, 1) >
-struct BOOST_PP_CAT(AUX778076_OP_NAME,impl)< AUX778076_OP_VALUE2,AUX778076_PARAMS(T, 1) >
-    : BOOST_PP_CAT(AUX778076_OP_NAME,impl)<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+struct NDNBOOST_PP_CAT(AUX778076_OP_NAME,impl)< AUX778076_OP_VALUE2,AUX778076_PARAMS(T, 1) >
+    : NDNBOOST_PP_CAT(AUX778076_OP_NAME,impl)<
+          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
         , AUX778076_SHIFTED_PARAMS(T, 1)
-        , BOOST_PP_CAT(AUX778076_OP_VALUE2,_)
+        , NDNBOOST_PP_CAT(AUX778076_OP_VALUE2,_)
         >
 {
 };
 
 template<>
-struct BOOST_PP_CAT(AUX778076_OP_NAME,impl)<
+struct NDNBOOST_PP_CAT(AUX778076_OP_NAME,impl)<
           AUX778076_OP_VALUE2
-        , AUX778076_SPEC_PARAMS(BOOST_PP_CAT(AUX778076_OP_VALUE2,_))
+        , AUX778076_SPEC_PARAMS(NDNBOOST_PP_CAT(AUX778076_OP_VALUE2,_))
         >
-    : BOOST_PP_CAT(AUX778076_OP_VALUE2,_)
+    : NDNBOOST_PP_CAT(AUX778076_OP_VALUE2,_)
 {
 };
 
 #else
 
-template< bool C_ > struct BOOST_PP_CAT(AUX778076_OP_NAME,impl)
+template< bool C_ > struct NDNBOOST_PP_CAT(AUX778076_OP_NAME,impl)
 {
     template< AUX778076_PARAMS(typename T, 1) > struct result_
-        : BOOST_PP_CAT(AUX778076_OP_VALUE1,_)
+        : NDNBOOST_PP_CAT(AUX778076_OP_VALUE1,_)
     {
     };
 };
 
-template<> struct BOOST_PP_CAT(AUX778076_OP_NAME,impl)<AUX778076_OP_VALUE2>
+template<> struct NDNBOOST_PP_CAT(AUX778076_OP_NAME,impl)<AUX778076_OP_VALUE2>
 {
     template< AUX778076_PARAMS(typename T, 1) > struct result_
-        : BOOST_PP_CAT(AUX778076_OP_NAME,impl)< 
-              BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-            >::template result_< AUX778076_SHIFTED_PARAMS(T,1),BOOST_PP_CAT(AUX778076_OP_VALUE2,_) >
+        : NDNBOOST_PP_CAT(AUX778076_OP_NAME,impl)< 
+              NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+            >::template result_< AUX778076_SHIFTED_PARAMS(T,1),NDNBOOST_PP_CAT(AUX778076_OP_VALUE2,_) >
     {
     };
 
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1300)
-    template<> struct result_<AUX778076_SPEC_PARAMS(BOOST_PP_CAT(AUX778076_OP_VALUE2,_))>
-        : BOOST_PP_CAT(AUX778076_OP_VALUE2,_)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1300)
+    template<> struct result_<AUX778076_SPEC_PARAMS(NDNBOOST_PP_CAT(AUX778076_OP_VALUE2,_))>
+        : NDNBOOST_PP_CAT(AUX778076_OP_VALUE2,_)
     {
     };
 };
@@ -114,44 +114,44 @@
 };
 
 template<>
-struct BOOST_PP_CAT(AUX778076_OP_NAME,impl)<AUX778076_OP_VALUE2>
-    ::result_< AUX778076_SPEC_PARAMS(BOOST_PP_CAT(AUX778076_OP_VALUE2,_)) >
-        : BOOST_PP_CAT(AUX778076_OP_VALUE2,_)
+struct NDNBOOST_PP_CAT(AUX778076_OP_NAME,impl)<AUX778076_OP_VALUE2>
+    ::result_< AUX778076_SPEC_PARAMS(NDNBOOST_PP_CAT(AUX778076_OP_VALUE2,_)) >
+        : NDNBOOST_PP_CAT(AUX778076_OP_VALUE2,_)
 {
 };
-#endif // BOOST_MSVC == 1300
+#endif // NDNBOOST_MSVC == 1300
 
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 } // namespace aux
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
-    BOOST_MPL_PP_DEF_PARAMS_TAIL(2, typename T, BOOST_PP_CAT(AUX778076_OP_VALUE2,_))
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
+    NDNBOOST_MPL_PP_DEF_PARAMS_TAIL(2, typename T, NDNBOOST_PP_CAT(AUX778076_OP_VALUE2,_))
     >
 struct AUX778076_OP_NAME
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-    : aux::BOOST_PP_CAT(AUX778076_OP_NAME,impl)<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+    : aux::NDNBOOST_PP_CAT(AUX778076_OP_NAME,impl)<
+          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
         , AUX778076_SHIFTED_PARAMS(T,0)
         >
 #else
-    : aux::BOOST_PP_CAT(AUX778076_OP_NAME,impl)< 
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+    : aux::NDNBOOST_PP_CAT(AUX778076_OP_NAME,impl)< 
+          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
         >::template result_< AUX778076_SHIFTED_PARAMS(T,0) >
 #endif
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          BOOST_MPL_LIMIT_METAFUNCTION_ARITY
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
+          NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY
         , AUX778076_OP_NAME
         , (AUX778076_PARAMS(T, 0))
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC2(
+NDNBOOST_MPL_AUX_NA_SPEC2(
       2
-    , BOOST_MPL_LIMIT_METAFUNCTION_ARITY
+    , NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY
     , AUX778076_OP_NAME
     )
 
diff --git a/include/ndnboost/mpl/aux_/msvc_dtw.hpp b/include/ndnboost/mpl/aux_/msvc_dtw.hpp
index 90ef28d..99cd062 100644
--- a/include/ndnboost/mpl/aux_/msvc_dtw.hpp
+++ b/include/ndnboost/mpl/aux_/msvc_dtw.hpp
@@ -17,7 +17,7 @@
 
 // local macros, #undef-ined at the end of the header
 #define AUX778076_DTW_PARAMS(param) \
-    BOOST_MPL_PP_PARAMS(AUX778076_MSVC_DTW_ARITY, param) \
+    NDNBOOST_MPL_PP_PARAMS(AUX778076_MSVC_DTW_ARITY, param) \
 /**/
 
 #define AUX778076_DTW_ORIGINAL_NAME \
diff --git a/include/ndnboost/mpl/aux_/msvc_eti_base.hpp b/include/ndnboost/mpl/aux_/msvc_eti_base.hpp
index e7a1c4a..af5313b 100644
--- a/include/ndnboost/mpl/aux_/msvc_eti_base.hpp
+++ b/include/ndnboost/mpl/aux_/msvc_eti_base.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_MSVC_ETI_BASE_HPP_INCLUDED
-#define BOOST_MPL_AUX_MSVC_ETI_BASE_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_MSVC_ETI_BASE_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_MSVC_ETI_BASE_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2001-2004
 //
@@ -21,7 +21,7 @@
 
 namespace ndnboost { namespace mpl { namespace aux {
 
-#if defined(BOOST_MPL_CFG_MSVC_70_ETI_BUG)
+#if defined(NDNBOOST_MPL_CFG_MSVC_70_ETI_BUG)
 
 template< bool > struct msvc_eti_base_impl
 {
@@ -50,12 +50,12 @@
 {
 };
 
-#else // !BOOST_MPL_CFG_MSVC_70_ETI_BUG
+#else // !NDNBOOST_MPL_CFG_MSVC_70_ETI_BUG
 
 template< typename T > struct msvc_eti_base
     : T
 {
-#if BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0304))
+#if NDNBOOST_WORKAROUND(NDNBOOST_MPL_CFG_GCC, NDNBOOST_TESTED_AT(0x0304))
     msvc_eti_base();
 #endif
     typedef T type;
@@ -74,4 +74,4 @@
 
 }}}
 
-#endif // BOOST_MPL_AUX_MSVC_ETI_BASE_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_MSVC_ETI_BASE_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/msvc_is_class.hpp b/include/ndnboost/mpl/aux_/msvc_is_class.hpp
index edcb8b9..b47f7d6 100644
--- a/include/ndnboost/mpl/aux_/msvc_is_class.hpp
+++ b/include/ndnboost/mpl/aux_/msvc_is_class.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_MSVC_IS_CLASS_HPP_INCLUDED
-#define BOOST_MPL_AUX_MSVC_IS_CLASS_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_MSVC_IS_CLASS_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_MSVC_IS_CLASS_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2002-2004
 //
@@ -55,4 +55,4 @@
 
 }}}
 
-#endif // BOOST_MPL_AUX_MSVC_IS_CLASS_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_MSVC_IS_CLASS_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/msvc_never_true.hpp b/include/ndnboost/mpl/aux_/msvc_never_true.hpp
index fed531e..b9e2e02 100644
--- a/include/ndnboost/mpl/aux_/msvc_never_true.hpp
+++ b/include/ndnboost/mpl/aux_/msvc_never_true.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_MSVC_NEVER_TRUE_HPP_INCLUDED
-#define BOOST_MPL_AUX_MSVC_NEVER_TRUE_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_MSVC_NEVER_TRUE_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_MSVC_NEVER_TRUE_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -17,7 +17,7 @@
 #include <ndnboost/mpl/aux_/config/msvc.hpp>
 #include <ndnboost/mpl/aux_/config/workaround.hpp>
 
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)
 
 namespace ndnboost { namespace mpl { namespace aux {
 
@@ -29,6 +29,6 @@
 
 }}}
 
-#endif // BOOST_MSVC
+#endif // NDNBOOST_MSVC
 
-#endif // BOOST_MPL_AUX_MSVC_NEVER_TRUE_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_MSVC_NEVER_TRUE_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/msvc_type.hpp b/include/ndnboost/mpl/aux_/msvc_type.hpp
index c652ed2..b2e8fc5 100644
--- a/include/ndnboost/mpl/aux_/msvc_type.hpp
+++ b/include/ndnboost/mpl/aux_/msvc_type.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_MSVC_TYPE_HPP_INCLUDED
-#define BOOST_MPL_AUX_MSVC_TYPE_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_MSVC_TYPE_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_MSVC_TYPE_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2001-2004
 //
@@ -19,7 +19,7 @@
 
 namespace ndnboost { namespace mpl { namespace aux {
 
-#if defined(BOOST_MPL_CFG_MSVC_70_ETI_BUG)
+#if defined(NDNBOOST_MPL_CFG_MSVC_70_ETI_BUG)
 
 template< bool > struct msvc_type_impl
 {
@@ -43,7 +43,7 @@
 {
 };
 
-#else // BOOST_MPL_CFG_MSVC_70_ETI_BUG
+#else // NDNBOOST_MPL_CFG_MSVC_70_ETI_BUG
 
 template< typename T > struct msvc_type 
 {
@@ -59,4 +59,4 @@
 
 }}}
 
-#endif // BOOST_MPL_AUX_MSVC_TYPE_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_MSVC_TYPE_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/na.hpp b/include/ndnboost/mpl/aux_/na.hpp
index 2ab6449..eb9f81e 100644
--- a/include/ndnboost/mpl/aux_/na.hpp
+++ b/include/ndnboost/mpl/aux_/na.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_NA_HPP_INCLUDED
-#define BOOST_MPL_AUX_NA_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_NA_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_NA_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2001-2004
 //
@@ -25,7 +25,7 @@
 struct is_na
     : false_
 {
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
     using false_::value;
 #endif
 };
@@ -34,7 +34,7 @@
 struct is_na<na>
     : true_
 {
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
     using true_::value;
 #endif
 };
@@ -43,7 +43,7 @@
 struct is_not_na
     : true_
 {
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
     using true_::value;
 #endif
 };
@@ -52,12 +52,12 @@
 struct is_not_na<na>
     : false_
 {
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
     using false_::value;
 #endif
 };
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 template< typename T, typename U > struct if_na
 {
     typedef T type;
@@ -92,4 +92,4 @@
 
 }}
 
-#endif // BOOST_MPL_AUX_NA_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_NA_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/na_assert.hpp b/include/ndnboost/mpl/aux_/na_assert.hpp
index e0c947c..0075c4e 100644
--- a/include/ndnboost/mpl/aux_/na_assert.hpp
+++ b/include/ndnboost/mpl/aux_/na_assert.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_NA_ASSERT_HPP_INCLUDED
-#define BOOST_MPL_AUX_NA_ASSERT_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_NA_ASSERT_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_NA_ASSERT_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2001-2004
 //
@@ -18,17 +18,17 @@
 #include <ndnboost/mpl/aux_/config/msvc.hpp>
 #include <ndnboost/mpl/aux_/config/workaround.hpp>
 
-#if !BOOST_WORKAROUND(_MSC_FULL_VER, <= 140050601)    \
-    && !BOOST_WORKAROUND(__EDG_VERSION__, <= 243)
+#if !NDNBOOST_WORKAROUND(_MSC_FULL_VER, <= 140050601)    \
+    && !NDNBOOST_WORKAROUND(__EDG_VERSION__, <= 243)
 #   include <ndnboost/mpl/assert.hpp>
-#   define BOOST_MPL_AUX_ASSERT_NOT_NA(x) \
-    BOOST_MPL_ASSERT_NOT((ndnboost::mpl::is_na<type>)) \
+#   define NDNBOOST_MPL_AUX_ASSERT_NOT_NA(x) \
+    NDNBOOST_MPL_ASSERT_NOT((ndnboost::mpl::is_na<type>)) \
 /**/
 #else
 #   include <ndnboost/static_assert.hpp>
-#   define BOOST_MPL_AUX_ASSERT_NOT_NA(x) \
-    BOOST_STATIC_ASSERT(!ndnboost::mpl::is_na<x>::value) \
+#   define NDNBOOST_MPL_AUX_ASSERT_NOT_NA(x) \
+    NDNBOOST_STATIC_ASSERT(!ndnboost::mpl::is_na<x>::value) \
 /**/
 #endif
 
-#endif // BOOST_MPL_AUX_NA_ASSERT_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_NA_ASSERT_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/na_fwd.hpp b/include/ndnboost/mpl/aux_/na_fwd.hpp
index 7ad343b..c4de430 100644
--- a/include/ndnboost/mpl/aux_/na_fwd.hpp
+++ b/include/ndnboost/mpl/aux_/na_fwd.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_NA_FWD_HPP_INCLUDED
-#define BOOST_MPL_AUX_NA_FWD_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_NA_FWD_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_NA_FWD_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2001-2004
 //
@@ -16,7 +16,7 @@
 
 #include <ndnboost/mpl/aux_/adl_barrier.hpp>
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 
 // n.a. == not available
 struct na
@@ -25,7 +25,7 @@
     enum { value = 0 };
 };
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-BOOST_MPL_AUX_ADL_BARRIER_DECL(na)
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_DECL(na)
 
-#endif // BOOST_MPL_AUX_NA_FWD_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_NA_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/na_spec.hpp b/include/ndnboost/mpl/aux_/na_spec.hpp
index 04e2328..ed03f4c 100644
--- a/include/ndnboost/mpl/aux_/na_spec.hpp
+++ b/include/ndnboost/mpl/aux_/na_spec.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_NA_SPEC_HPP_INCLUDED
-#define BOOST_MPL_AUX_NA_SPEC_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_NA_SPEC_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_NA_SPEC_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2001-2004
 //
@@ -14,7 +14,7 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/lambda_fwd.hpp>
 #   include <ndnboost/mpl/int.hpp>
 #   include <ndnboost/mpl/bool.hpp>
@@ -35,89 +35,89 @@
 #include <ndnboost/mpl/aux_/config/overload_resolution.hpp>
 
 
-#define BOOST_MPL_AUX_NA_PARAMS(i) \
-    BOOST_MPL_PP_ENUM(i, na) \
+#define NDNBOOST_MPL_AUX_NA_PARAMS(i) \
+    NDNBOOST_MPL_PP_ENUM(i, na) \
 /**/
 
-#if defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
-#   define BOOST_MPL_AUX_NA_SPEC_ARITY(i, name) \
+#if defined(NDNBOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
+#   define NDNBOOST_MPL_AUX_NA_SPEC_ARITY(i, name) \
 namespace aux { \
-template< BOOST_MPL_AUX_NTTP_DECL(int, N) > \
+template< NDNBOOST_MPL_AUX_NTTP_DECL(int, N) > \
 struct arity< \
-          name< BOOST_MPL_AUX_NA_PARAMS(i) > \
+          name< NDNBOOST_MPL_AUX_NA_PARAMS(i) > \
         , N \
         > \
-    : int_< BOOST_MPL_LIMIT_METAFUNCTION_ARITY > \
+    : int_< NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY > \
 { \
 }; \
 } \
 /**/
 #else
-#   define BOOST_MPL_AUX_NA_SPEC_ARITY(i, name) /**/
+#   define NDNBOOST_MPL_AUX_NA_SPEC_ARITY(i, name) /**/
 #endif
 
-#define BOOST_MPL_AUX_NA_SPEC_MAIN(i, name) \
+#define NDNBOOST_MPL_AUX_NA_SPEC_MAIN(i, name) \
 template<> \
-struct name< BOOST_MPL_AUX_NA_PARAMS(i) > \
+struct name< NDNBOOST_MPL_AUX_NA_PARAMS(i) > \
 { \
     template< \
-          BOOST_MPL_PP_PARAMS(i, typename T) \
-        BOOST_MPL_PP_NESTED_DEF_PARAMS_TAIL(i, typename T, na) \
+          NDNBOOST_MPL_PP_PARAMS(i, typename T) \
+        NDNBOOST_MPL_PP_NESTED_DEF_PARAMS_TAIL(i, typename T, na) \
         > \
     struct apply \
-        : name< BOOST_MPL_PP_PARAMS(i, T) > \
+        : name< NDNBOOST_MPL_PP_PARAMS(i, T) > \
     { \
     }; \
 }; \
 /**/
 
-#if defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
-#   define BOOST_MPL_AUX_NA_SPEC_LAMBDA(i, name) \
+#if defined(NDNBOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
+#   define NDNBOOST_MPL_AUX_NA_SPEC_LAMBDA(i, name) \
 template<> \
 struct lambda< \
-      name< BOOST_MPL_AUX_NA_PARAMS(i) > \
+      name< NDNBOOST_MPL_AUX_NA_PARAMS(i) > \
     , void_ \
     , true_ \
     > \
 { \
     typedef false_ is_le; \
-    typedef name< BOOST_MPL_AUX_NA_PARAMS(i) > type; \
+    typedef name< NDNBOOST_MPL_AUX_NA_PARAMS(i) > type; \
 }; \
 template<> \
 struct lambda< \
-      name< BOOST_MPL_AUX_NA_PARAMS(i) > \
+      name< NDNBOOST_MPL_AUX_NA_PARAMS(i) > \
     , void_ \
     , false_ \
     > \
 { \
     typedef false_ is_le; \
-    typedef name< BOOST_MPL_AUX_NA_PARAMS(i) > type; \
+    typedef name< NDNBOOST_MPL_AUX_NA_PARAMS(i) > type; \
 }; \
 /**/
 #else
-#   define BOOST_MPL_AUX_NA_SPEC_LAMBDA(i, name) \
+#   define NDNBOOST_MPL_AUX_NA_SPEC_LAMBDA(i, name) \
 template< typename Tag > \
 struct lambda< \
-      name< BOOST_MPL_AUX_NA_PARAMS(i) > \
+      name< NDNBOOST_MPL_AUX_NA_PARAMS(i) > \
     , Tag \
-    BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(int_<-1>) \
+    NDNBOOST_MPL_AUX_LAMBDA_ARITY_PARAM(int_<-1>) \
     > \
 { \
     typedef false_ is_le; \
-    typedef name< BOOST_MPL_AUX_NA_PARAMS(i) > result_; \
-    typedef name< BOOST_MPL_AUX_NA_PARAMS(i) > type; \
+    typedef name< NDNBOOST_MPL_AUX_NA_PARAMS(i) > result_; \
+    typedef name< NDNBOOST_MPL_AUX_NA_PARAMS(i) > type; \
 }; \
 /**/
 #endif
 
-#if defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) \
-    || defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) \
-        && defined(BOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION)
-#   define BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(i, j, name) \
+#if defined(NDNBOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) \
+    || defined(NDNBOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) \
+        && defined(NDNBOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION)
+#   define NDNBOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(i, j, name) \
 namespace aux { \
-template< BOOST_MPL_PP_PARAMS(j, typename T) > \
+template< NDNBOOST_MPL_PP_PARAMS(j, typename T) > \
 struct template_arity< \
-          name< BOOST_MPL_PP_PARAMS(j, T) > \
+          name< NDNBOOST_MPL_PP_PARAMS(j, T) > \
         > \
     : int_<j> \
 { \
@@ -125,7 +125,7 @@
 \
 template<> \
 struct template_arity< \
-          name< BOOST_MPL_PP_ENUM(i, na) > \
+          name< NDNBOOST_MPL_PP_ENUM(i, na) > \
         > \
     : int_<-1> \
 { \
@@ -133,43 +133,43 @@
 } \
 /**/
 #else
-#   define BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(i, j, name) /**/
+#   define NDNBOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(i, j, name) /**/
 #endif
 
-#if defined(BOOST_MPL_CFG_MSVC_ETI_BUG)
-#   define BOOST_MPL_AUX_NA_SPEC_ETI(i, name) \
+#if defined(NDNBOOST_MPL_CFG_MSVC_ETI_BUG)
+#   define NDNBOOST_MPL_AUX_NA_SPEC_ETI(i, name) \
 template<> \
-struct name< BOOST_MPL_PP_ENUM(i, int) > \
+struct name< NDNBOOST_MPL_PP_ENUM(i, int) > \
 { \
     typedef int type; \
     enum { value = 0 }; \
 }; \
 /**/
 #else
-#   define BOOST_MPL_AUX_NA_SPEC_ETI(i, name) /**/
+#   define NDNBOOST_MPL_AUX_NA_SPEC_ETI(i, name) /**/
 #endif
 
-#define BOOST_MPL_AUX_NA_PARAM(param) param = na
+#define NDNBOOST_MPL_AUX_NA_PARAM(param) param = na
 
-#define BOOST_MPL_AUX_NA_SPEC_NO_ETI(i, name) \
-BOOST_MPL_AUX_NA_SPEC_MAIN(i, name) \
-BOOST_MPL_AUX_NA_SPEC_LAMBDA(i, name) \
-BOOST_MPL_AUX_NA_SPEC_ARITY(i, name) \
-BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(i, i, name) \
+#define NDNBOOST_MPL_AUX_NA_SPEC_NO_ETI(i, name) \
+NDNBOOST_MPL_AUX_NA_SPEC_MAIN(i, name) \
+NDNBOOST_MPL_AUX_NA_SPEC_LAMBDA(i, name) \
+NDNBOOST_MPL_AUX_NA_SPEC_ARITY(i, name) \
+NDNBOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(i, i, name) \
 /**/
 
-#define BOOST_MPL_AUX_NA_SPEC(i, name) \
-BOOST_MPL_AUX_NA_SPEC_NO_ETI(i, name) \
-BOOST_MPL_AUX_NA_SPEC_ETI(i, name) \
+#define NDNBOOST_MPL_AUX_NA_SPEC(i, name) \
+NDNBOOST_MPL_AUX_NA_SPEC_NO_ETI(i, name) \
+NDNBOOST_MPL_AUX_NA_SPEC_ETI(i, name) \
 /**/
 
-#define BOOST_MPL_AUX_NA_SPEC2(i, j, name) \
-BOOST_MPL_AUX_NA_SPEC_MAIN(i, name) \
-BOOST_MPL_AUX_NA_SPEC_ETI(i, name) \
-BOOST_MPL_AUX_NA_SPEC_LAMBDA(i, name) \
-BOOST_MPL_AUX_NA_SPEC_ARITY(i, name) \
-BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(i, j, name) \
+#define NDNBOOST_MPL_AUX_NA_SPEC2(i, j, name) \
+NDNBOOST_MPL_AUX_NA_SPEC_MAIN(i, name) \
+NDNBOOST_MPL_AUX_NA_SPEC_ETI(i, name) \
+NDNBOOST_MPL_AUX_NA_SPEC_LAMBDA(i, name) \
+NDNBOOST_MPL_AUX_NA_SPEC_ARITY(i, name) \
+NDNBOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(i, j, name) \
 /**/
 
 
-#endif // BOOST_MPL_AUX_NA_SPEC_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_NA_SPEC_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/nested_type_wknd.hpp b/include/ndnboost/mpl/aux_/nested_type_wknd.hpp
index e00c76d..f366a87 100644
--- a/include/ndnboost/mpl/aux_/nested_type_wknd.hpp
+++ b/include/ndnboost/mpl/aux_/nested_type_wknd.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_NESTED_TYPE_WKND_HPP_INCLUDED
-#define BOOST_MPL_AUX_NESTED_TYPE_WKND_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_NESTED_TYPE_WKND_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_NESTED_TYPE_WKND_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -17,10 +17,10 @@
 #include <ndnboost/mpl/aux_/config/gcc.hpp>
 #include <ndnboost/mpl/aux_/config/workaround.hpp>
 
-#if BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0302)) \
-    || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x561)) \
-    || BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x530)) \
-    || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
+#if NDNBOOST_WORKAROUND(NDNBOOST_MPL_CFG_GCC, NDNBOOST_TESTED_AT(0x0302)) \
+    || NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x561)) \
+    || NDNBOOST_WORKAROUND(__SUNPRO_CC, NDNBOOST_TESTED_AT(0x530)) \
+    || NDNBOOST_WORKAROUND(__DMC__, NDNBOOST_TESTED_AT(0x840))
 
 namespace ndnboost { namespace mpl { namespace aux {
 template< typename T > struct nested_type_wknd
@@ -29,20 +29,20 @@
 };
 }}}
 
-#if BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
-#   define BOOST_MPL_AUX_NESTED_TYPE_WKND(T) \
+#if NDNBOOST_WORKAROUND(__DMC__, NDNBOOST_TESTED_AT(0x840))
+#   define NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T) \
     aux::nested_type_wknd<T> \
 /**/
 #else
-#   define BOOST_MPL_AUX_NESTED_TYPE_WKND(T) \
+#   define NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T) \
     ::ndnboost::mpl::aux::nested_type_wknd<T> \
 /**/
 #endif
 
-#else // !BOOST_MPL_CFG_GCC et al.
+#else // !NDNBOOST_MPL_CFG_GCC et al.
 
-#   define BOOST_MPL_AUX_NESTED_TYPE_WKND(T) T::type
+#   define NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T) T::type
 
 #endif 
 
-#endif // BOOST_MPL_AUX_NESTED_TYPE_WKND_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_NESTED_TYPE_WKND_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/nttp_decl.hpp b/include/ndnboost/mpl/aux_/nttp_decl.hpp
index ebfe6a1..05b64ae 100644
--- a/include/ndnboost/mpl/aux_/nttp_decl.hpp
+++ b/include/ndnboost/mpl/aux_/nttp_decl.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_NTTP_DECL_HPP_INCLUDED
-#define BOOST_MPL_AUX_NTTP_DECL_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_NTTP_DECL_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_NTTP_DECL_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2001-2004
 //
@@ -16,7 +16,7 @@
 
 #include <ndnboost/mpl/aux_/config/nttp.hpp>
 
-#if defined(BOOST_MPL_CFG_NTTP_BUG)
+#if defined(NDNBOOST_MPL_CFG_NTTP_BUG)
 
 typedef bool        _mpl_nttp_bool;
 typedef int         _mpl_nttp_int;
@@ -24,12 +24,12 @@
 typedef long        _mpl_nttp_long;
 
 #   include <ndnboost/preprocessor/cat.hpp>
-#   define BOOST_MPL_AUX_NTTP_DECL(T, x) BOOST_PP_CAT(_mpl_nttp_,T) x /**/
+#   define NDNBOOST_MPL_AUX_NTTP_DECL(T, x) NDNBOOST_PP_CAT(_mpl_nttp_,T) x /**/
 
 #else
 
-#   define BOOST_MPL_AUX_NTTP_DECL(T, x) T x /**/
+#   define NDNBOOST_MPL_AUX_NTTP_DECL(T, x) T x /**/
 
 #endif
 
-#endif // BOOST_MPL_AUX_NTTP_DECL_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_NTTP_DECL_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/numeric_cast_utils.hpp b/include/ndnboost/mpl/aux_/numeric_cast_utils.hpp
index 8f0ce0c..6021fef 100644
--- a/include/ndnboost/mpl/aux_/numeric_cast_utils.hpp
+++ b/include/ndnboost/mpl/aux_/numeric_cast_utils.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_NUMERIC_CAST_HPP_INCLUDED
-#define BOOST_MPL_AUX_NUMERIC_CAST_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_NUMERIC_CAST_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_NUMERIC_CAST_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2003-2004
 //
@@ -28,10 +28,10 @@
 struct cast1st_impl
 {
     template< typename N1, typename N2 > struct apply
-#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
+#if !defined(NDNBOOST_MPL_CFG_NO_NESTED_FORWARDING)
         : apply_wrap2< 
               F
-            , typename apply_wrap1< BOOST_MPL_AUX_NUMERIC_CAST<Tag1,Tag2>,N1 >::type
+            , typename apply_wrap1< NDNBOOST_MPL_AUX_NUMERIC_CAST<Tag1,Tag2>,N1 >::type
             , N2
             >
     {
@@ -39,7 +39,7 @@
     {
     typedef typename apply_wrap2< 
               F
-            , typename apply_wrap1< BOOST_MPL_AUX_NUMERIC_CAST<Tag1,Tag2>,N1 >::type
+            , typename apply_wrap1< NDNBOOST_MPL_AUX_NUMERIC_CAST<Tag1,Tag2>,N1 >::type
             , N2
             >::type type;
 #endif
@@ -54,11 +54,11 @@
 struct cast2nd_impl
 {
     template< typename N1, typename N2 > struct apply
-#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
+#if !defined(NDNBOOST_MPL_CFG_NO_NESTED_FORWARDING)
         : apply_wrap2< 
               F
             , N1
-            , typename apply_wrap1< BOOST_MPL_AUX_NUMERIC_CAST<Tag2,Tag1>,N2 >::type
+            , typename apply_wrap1< NDNBOOST_MPL_AUX_NUMERIC_CAST<Tag2,Tag1>,N2 >::type
             >
     {
 #else
@@ -66,7 +66,7 @@
         typedef typename apply_wrap2< 
               F
             , N1
-            , typename apply_wrap1< BOOST_MPL_AUX_NUMERIC_CAST<Tag2,Tag1>,N2 >::type
+            , typename apply_wrap1< NDNBOOST_MPL_AUX_NUMERIC_CAST<Tag2,Tag1>,N2 >::type
             >::type type;
 #endif
     };
@@ -74,4 +74,4 @@
 
 }}}
 
-#endif // BOOST_MPL_AUX_NUMERIC_CAST_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_NUMERIC_CAST_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/numeric_op.hpp b/include/ndnboost/mpl/aux_/numeric_op.hpp
index 1acf439..07bf564 100644
--- a/include/ndnboost/mpl/aux_/numeric_op.hpp
+++ b/include/ndnboost/mpl/aux_/numeric_op.hpp
@@ -1,5 +1,5 @@
 
-#if !defined(BOOST_PP_IS_ITERATING)
+#if !defined(NDNBOOST_PP_IS_ITERATING)
 
 ///// header body
 
@@ -17,7 +17,7 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/numeric_cast.hpp>
 #   include <ndnboost/mpl/apply_wrap.hpp>
 #   include <ndnboost/mpl/if.hpp>
@@ -34,8 +34,8 @@
 
 #include <ndnboost/mpl/aux_/config/static_constant.hpp>
 
-#if defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    || defined(BOOST_MPL_PREPROCESSING_MODE)
+#if defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+    || defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
 #   include <ndnboost/mpl/limits/arity.hpp>
 #   include <ndnboost/mpl/aux_/preprocessor/partial_spec_params.hpp>
@@ -58,15 +58,15 @@
 
 
 #if !defined(AUX778076_OP_ARITY)
-#   define AUX778076_OP_ARITY BOOST_MPL_LIMIT_METAFUNCTION_ARITY
+#   define AUX778076_OP_ARITY NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY
 #endif
 
 #if !defined(AUX778076_OP_IMPL_NAME)
-#   define AUX778076_OP_IMPL_NAME BOOST_PP_CAT(AUX778076_OP_PREFIX,_impl)
+#   define AUX778076_OP_IMPL_NAME NDNBOOST_PP_CAT(AUX778076_OP_PREFIX,_impl)
 #endif
 
 #if !defined(AUX778076_OP_TAG_NAME)
-#   define AUX778076_OP_TAG_NAME BOOST_PP_CAT(AUX778076_OP_PREFIX,_tag)
+#   define AUX778076_OP_TAG_NAME NDNBOOST_PP_CAT(AUX778076_OP_PREFIX,_tag)
 #endif
 
 namespace ndnboost { namespace mpl {
@@ -74,9 +74,9 @@
 template< 
       typename Tag1
     , typename Tag2
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value 
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value 
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag1_) = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value 
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag2_) = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value 
     >
 struct AUX778076_OP_IMPL_NAME
     : if_c<
@@ -85,8 +85,8 @@
     >
 struct AUX778076_OP_IMPL_NAME
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 #endif
         , aux::cast2nd_impl< AUX778076_OP_IMPL_NAME<Tag1,Tag1>,Tag1,Tag2 >
@@ -101,17 +101,17 @@
     template< typename U1, typename U2 > struct apply 
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value = 0);
     };
 };
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 template< typename Tag > struct AUX778076_OP_IMPL_NAME<na,Tag>
 {
     template< typename U1, typename U2 > struct apply 
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value = 0);
     };
 };
 
@@ -120,7 +120,7 @@
     template< typename U1, typename U2 > struct apply 
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value = 0);
     };
 };
 #else
@@ -129,7 +129,7 @@
     template< typename U1, typename U2 > struct apply 
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value = 0);
     };
 };
 
@@ -138,14 +138,14 @@
     template< typename U1, typename U2 > struct apply 
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value = 0);
     };
 };
 #endif
 
 
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-    && BOOST_WORKAROUND(BOOST_MSVC, >= 1300)
+#if defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
+    && NDNBOOST_WORKAROUND(NDNBOOST_MSVC, >= 1300)
 template< typename T > struct AUX778076_OP_TAG_NAME
     : tag<T,na>
 {
@@ -160,71 +160,71 @@
 
 #if AUX778076_OP_ARITY != 2
 
-#   if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#   if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
-#   define AUX778076_OP_RIGHT_OPERAND(unused, i, N) , BOOST_PP_CAT(N, BOOST_MPL_PP_ADD(i, 2))>
+#   define AUX778076_OP_RIGHT_OPERAND(unused, i, N) , NDNBOOST_PP_CAT(N, NDNBOOST_MPL_PP_ADD(i, 2))>
 #   define AUX778076_OP_N_CALLS(i, N) \
-    BOOST_MPL_PP_REPEAT( BOOST_PP_DEC(i), BOOST_MPL_PP_REPEAT_IDENTITY_FUNC, AUX778076_OP_NAME< ) \
-    N1 BOOST_MPL_PP_REPEAT( BOOST_MPL_PP_SUB(i, 1), AUX778076_OP_RIGHT_OPERAND, N ) \
+    NDNBOOST_MPL_PP_REPEAT( NDNBOOST_PP_DEC(i), NDNBOOST_MPL_PP_REPEAT_IDENTITY_FUNC, AUX778076_OP_NAME< ) \
+    N1 NDNBOOST_MPL_PP_REPEAT( NDNBOOST_MPL_PP_SUB(i, 1), AUX778076_OP_RIGHT_OPERAND, N ) \
 /**/
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    BOOST_MPL_PP_DEF_PARAMS_TAIL(2, typename N, na)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
+    NDNBOOST_MPL_PP_DEF_PARAMS_TAIL(2, typename N, na)
     >
 struct AUX778076_OP_NAME
     : AUX778076_OP_N_CALLS(AUX778076_OP_ARITY, N)
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           AUX778076_OP_ARITY
         , AUX778076_OP_NAME
-        , ( BOOST_MPL_PP_PARAMS(AUX778076_OP_ARITY, N) )
+        , ( NDNBOOST_MPL_PP_PARAMS(AUX778076_OP_ARITY, N) )
         )
 };
 
-#define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,( BOOST_PP_DEC(AUX778076_OP_ARITY), 2, <ndnboost/mpl/aux_/numeric_op.hpp> ))
-#include BOOST_PP_ITERATE()
+#define NDNBOOST_PP_ITERATION_PARAMS_1 \
+    (3,( NDNBOOST_PP_DEC(AUX778076_OP_ARITY), 2, <ndnboost/mpl/aux_/numeric_op.hpp> ))
+#include NDNBOOST_PP_ITERATE()
 
 #   undef AUX778076_OP_N_CALLS
 #   undef AUX778076_OP_RIGHT_OPERAND
 
-#   else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#   else // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 /// forward declaration
 template< 
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
-struct BOOST_PP_CAT(AUX778076_OP_NAME,2);
+struct NDNBOOST_PP_CAT(AUX778076_OP_NAME,2);
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    BOOST_MPL_PP_DEF_PARAMS_TAIL(2, typename N, na)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
+    NDNBOOST_MPL_PP_DEF_PARAMS_TAIL(2, typename N, na)
     >
 struct AUX778076_OP_NAME
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1300)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1300)
     : aux::msvc_eti_base< typename if_<
 #else
     : if_<
 #endif
           is_na<N3>
-        , BOOST_PP_CAT(AUX778076_OP_NAME,2)<N1,N2>
+        , NDNBOOST_PP_CAT(AUX778076_OP_NAME,2)<N1,N2>
         , AUX778076_OP_NAME<
-              BOOST_PP_CAT(AUX778076_OP_NAME,2)<N1,N2>
-            , BOOST_MPL_PP_EXT_PARAMS(3, BOOST_PP_INC(AUX778076_OP_ARITY), N)
+              NDNBOOST_PP_CAT(AUX778076_OP_NAME,2)<N1,N2>
+            , NDNBOOST_MPL_PP_EXT_PARAMS(3, NDNBOOST_PP_INC(AUX778076_OP_ARITY), N)
             >
         >::type
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1300)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1300)
     >
 #endif
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           AUX778076_OP_ARITY
         , AUX778076_OP_NAME
-        , ( BOOST_MPL_PP_PARAMS(AUX778076_OP_ARITY, N) )
+        , ( NDNBOOST_MPL_PP_PARAMS(AUX778076_OP_ARITY, N) )
         )
 };
 
@@ -232,21 +232,21 @@
       typename N1
     , typename N2
     >
-struct BOOST_PP_CAT(AUX778076_OP_NAME,2)
+struct NDNBOOST_PP_CAT(AUX778076_OP_NAME,2)
 
 #endif
 
 #else // AUX778076_OP_ARITY == 2
 
 template< 
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct AUX778076_OP_NAME
 
 #endif
 
-#if !defined(BOOST_MPL_CFG_MSVC_ETI_BUG)
+#if !defined(NDNBOOST_MPL_CFG_MSVC_ETI_BUG)
     : AUX778076_OP_IMPL_NAME<
           typename AUX778076_OP_TAG_NAME<N1>::type
         , typename AUX778076_OP_TAG_NAME<N2>::type
@@ -264,52 +264,52 @@
 {
 #if AUX778076_OP_ARITY != 2
 
-#   if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+#   if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           AUX778076_OP_ARITY
         , AUX778076_OP_NAME
-        , ( BOOST_MPL_PP_PARTIAL_SPEC_PARAMS(2, N, na) )
+        , ( NDNBOOST_MPL_PP_PARTIAL_SPEC_PARAMS(2, N, na) )
         )
 #   else
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, BOOST_PP_CAT(AUX778076_OP_NAME,2), (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, NDNBOOST_PP_CAT(AUX778076_OP_NAME,2), (N1, N2))
 #   endif
 
 #else
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, AUX778076_OP_NAME, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, AUX778076_OP_NAME, (N1, N2))
 #endif
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, AUX778076_OP_ARITY, AUX778076_OP_NAME)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, AUX778076_OP_ARITY, AUX778076_OP_NAME)
 
 }}
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
 
 ///// iteration, depth == 1
 
 // For gcc 4.4 compatability, we must include the
-// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
-#else // BOOST_PP_IS_ITERATING
-#if BOOST_PP_ITERATION_DEPTH() == 1
+// NDNBOOST_PP_ITERATION_DEPTH test inside an #else clause.
+#else // NDNBOOST_PP_IS_ITERATING
+#if NDNBOOST_PP_ITERATION_DEPTH() == 1
 
-#   define i_ BOOST_PP_FRAME_ITERATION(1)
+#   define i_ NDNBOOST_PP_FRAME_ITERATION(1)
 
 template<
-      BOOST_MPL_PP_PARAMS(i_, typename N)
+      NDNBOOST_MPL_PP_PARAMS(i_, typename N)
     >
-struct AUX778076_OP_NAME<BOOST_MPL_PP_PARTIAL_SPEC_PARAMS(i_, N, na)>
+struct AUX778076_OP_NAME<NDNBOOST_MPL_PP_PARTIAL_SPEC_PARAMS(i_, N, na)>
 #if i_ != 2
     : AUX778076_OP_N_CALLS(i_, N)
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           AUX778076_OP_ARITY
         , AUX778076_OP_NAME
-        , ( BOOST_MPL_PP_PARTIAL_SPEC_PARAMS(i_, N, na) )
+        , ( NDNBOOST_MPL_PP_PARTIAL_SPEC_PARAMS(i_, N, na) )
         )
 };
 #endif
 
 #   undef i_
 
-#endif // BOOST_PP_ITERATION_DEPTH()
-#endif // BOOST_PP_IS_ITERATING
+#endif // NDNBOOST_PP_ITERATION_DEPTH()
+#endif // NDNBOOST_PP_IS_ITERATING
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/and.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/and.hpp
index 119fa2d..6ecd7fd 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/and.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc/and.hpp
@@ -22,7 +22,7 @@
 template< typename T1, typename T2, typename T3, typename T4 >
 struct and_impl< true,T1,T2,T3,T4 >
     : and_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
         , T2, T3, T4
         , true_
         >
@@ -41,26 +41,26 @@
 } // namespace aux
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
     , typename T3 = true_, typename T4 = true_, typename T5 = true_
     >
 struct and_
 
     : aux::and_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
         , T2, T3, T4, T5
         >
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , and_
         , ( T1, T2, T3, T4, T5)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC2(
+NDNBOOST_MPL_AUX_NA_SPEC2(
       2
     , 5
     , and_
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/apply.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/apply.hpp
index 9d372f1..495377c 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/apply.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc/apply.hpp
@@ -21,7 +21,7 @@
        
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           1
         , apply0
         , (F )
@@ -46,7 +46,7 @@
         , T1
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           2
         , apply1
         , (F, T1)
@@ -71,7 +71,7 @@
         , T1, T2
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           3
         , apply2
         , (F, T1, T2)
@@ -96,7 +96,7 @@
         , T1, T2, T3
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           4
         , apply3
         , (F, T1, T2, T3)
@@ -121,7 +121,7 @@
         , T1, T2, T3, T4
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , apply4
         , (F, T1, T2, T3, T4)
@@ -147,7 +147,7 @@
         , T1, T2, T3, T4, T5
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           6
         , apply5
         , (F, T1, T2, T3, T4, T5)
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/arg.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/arg.hpp
index 3ac4340..29c017a 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/arg.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc/arg.hpp
@@ -10,12 +10,12 @@
 // *Preprocessed* version of the main "arg.hpp" header
 // -- DO NOT modify by hand!
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 template<> struct arg< -1 >
 {
-    BOOST_STATIC_CONSTANT(int, value  = -1);
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_STATIC_CONSTANT(int, value  = -1);
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1, typename U2, typename U3, typename U4, typename U5
@@ -23,16 +23,16 @@
     struct apply
     {
         typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<1>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 1);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 1);
     typedef arg<2> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1, typename U2, typename U3, typename U4, typename U5
@@ -40,16 +40,16 @@
     struct apply
     {
         typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<2>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 2);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 2);
     typedef arg<3> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1, typename U2, typename U3, typename U4, typename U5
@@ -57,16 +57,16 @@
     struct apply
     {
         typedef U2 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<3>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 3);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 3);
     typedef arg<4> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1, typename U2, typename U3, typename U4, typename U5
@@ -74,16 +74,16 @@
     struct apply
     {
         typedef U3 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<4>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 4);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 4);
     typedef arg<5> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1, typename U2, typename U3, typename U4, typename U5
@@ -91,16 +91,16 @@
     struct apply
     {
         typedef U4 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<5>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 5);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 5);
     typedef arg<6> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1, typename U2, typename U3, typename U4, typename U5
@@ -108,10 +108,10 @@
     struct apply
     {
         typedef U5 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
-BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
+NDNBOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/basic_bind.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/basic_bind.hpp
index acd054b..0ba4ca5 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/basic_bind.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc/basic_bind.hpp
@@ -70,8 +70,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
 
 template<
       typename F, typename T1
@@ -112,8 +112,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
 
 template<
       typename F, typename T1, typename T2
@@ -155,8 +155,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
 
 template<
       typename F, typename T1, typename T2, typename T3
@@ -199,8 +199,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
 
 template<
       typename F, typename T1, typename T2, typename T3, typename T4
@@ -245,8 +245,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
 
 template<
       typename F, typename T1, typename T2, typename T3, typename T4
@@ -294,7 +294,7 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/bind.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/bind.hpp
index 35ee492..3a5754b 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/bind.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc/bind.hpp
@@ -92,8 +92,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
 
 template<
       typename F, typename T1
@@ -141,8 +141,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
 
 template<
       typename F, typename T1, typename T2
@@ -195,8 +195,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
 
 template<
       typename F, typename T1, typename T2, typename T3
@@ -254,8 +254,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
 
 template<
       typename F, typename T1, typename T2, typename T3, typename T4
@@ -319,8 +319,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
 
 template<
       typename F, typename T1, typename T2, typename T3, typename T4
@@ -391,7 +391,7 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/bitand.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/bitand.hpp
index 1a2ac8d..6a3f847 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/bitand.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc/bitand.hpp
@@ -18,8 +18,8 @@
     >
 struct bitand_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,14 +62,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct bitand_
     : bitand_< bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , bitand_
         , ( N1, N2, N3, N4, N5 )
@@ -83,7 +83,7 @@
 
     : bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitand_
         , ( N1, N2, N3, N4, na )
@@ -97,7 +97,7 @@
 
     : bitand_< bitand_< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitand_
         , ( N1, N2, N3, na, na )
@@ -113,7 +113,7 @@
         , typename bitand_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitand_
         , ( N1, N2, na, na, na )
@@ -121,7 +121,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
 
 }}
 
@@ -136,8 +136,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  & BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  & NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/bitor.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/bitor.hpp
index 536f350..8082890 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/bitor.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc/bitor.hpp
@@ -18,8 +18,8 @@
     >
 struct bitor_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,14 +62,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct bitor_
     : bitor_< bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , bitor_
         , ( N1, N2, N3, N4, N5 )
@@ -83,7 +83,7 @@
 
     : bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitor_
         , ( N1, N2, N3, N4, na )
@@ -97,7 +97,7 @@
 
     : bitor_< bitor_< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitor_
         , ( N1, N2, N3, na, na )
@@ -113,7 +113,7 @@
         , typename bitor_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitor_
         , ( N1, N2, na, na, na )
@@ -121,7 +121,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
 
 }}
 
@@ -136,8 +136,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  | BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  | NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/bitxor.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/bitxor.hpp
index 0869fba..78cdd23 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/bitxor.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc/bitxor.hpp
@@ -18,8 +18,8 @@
     >
 struct bitxor_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,14 +62,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct bitxor_
     : bitxor_< bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , bitxor_
         , ( N1, N2, N3, N4, N5 )
@@ -83,7 +83,7 @@
 
     : bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitxor_
         , ( N1, N2, N3, N4, na )
@@ -97,7 +97,7 @@
 
     : bitxor_< bitxor_< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitxor_
         , ( N1, N2, N3, na, na )
@@ -113,7 +113,7 @@
         , typename bitxor_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitxor_
         , ( N1, N2, na, na, na )
@@ -121,7 +121,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
 
 }}
 
@@ -136,8 +136,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  ^ BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  ^ NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/divides.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/divides.hpp
index 5922aff..9ec580d 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/divides.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc/divides.hpp
@@ -17,8 +17,8 @@
     >
 struct divides_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,14 +61,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct divides
     : divides< divides< divides< divides< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , divides
         , ( N1, N2, N3, N4, N5 )
@@ -82,7 +82,7 @@
 
     : divides< divides< divides< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , divides
         , ( N1, N2, N3, N4, na )
@@ -96,7 +96,7 @@
 
     : divides< divides< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , divides
         , ( N1, N2, N3, na, na )
@@ -112,7 +112,7 @@
         , typename divides_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , divides
         , ( N1, N2, na, na, na )
@@ -120,7 +120,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
 
 }}
 
@@ -135,8 +135,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  / BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  / NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/equal_to.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/equal_to.hpp
index b47c51e..71159c2 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/equal_to.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc/equal_to.hpp
@@ -17,8 +17,8 @@
     >
 struct equal_to_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct equal_to
 
@@ -71,11 +71,11 @@
         , typename equal_to_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
 
 }}
 
@@ -86,7 +86,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value  == BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value  == NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/full_lambda.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/full_lambda.hpp
index 9a7edf5..3471f18 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/full_lambda.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc/full_lambda.hpp
@@ -552,7 +552,7 @@
     typedef typename le_result_::type type;
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 3, lambda)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 3, lambda)
 
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/greater.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/greater.hpp
index 7bd1c1f..b608850 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/greater.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc/greater.hpp
@@ -17,8 +17,8 @@
     >
 struct greater_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct greater
 
@@ -71,11 +71,11 @@
         , typename greater_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
 
 }}
 
@@ -86,7 +86,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value > NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/greater_equal.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/greater_equal.hpp
index b9f165e..f758629 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/greater_equal.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc/greater_equal.hpp
@@ -17,8 +17,8 @@
     >
 struct greater_equal_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct greater_equal
 
@@ -71,11 +71,11 @@
         , typename greater_equal_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
 
 }}
 
@@ -86,7 +86,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value >= NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/inherit.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/inherit.hpp
index 5621cd9..ace1894 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/inherit.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc/inherit.hpp
@@ -12,38 +12,38 @@
 namespace ndnboost { namespace mpl {
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
     >
 struct inherit2
     : T1, T2
 {
     typedef inherit2 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
 };
 
 template< typename T1 >
 struct inherit2< T1,empty_base >
 {
     typedef T1 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base))
 };
 
 template< typename T2 >
 struct inherit2< empty_base,T2 >
 {
     typedef T2 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2))
 };
 
 template<>
 struct inherit2< empty_base,empty_base >
 {
     typedef empty_base type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base))
 };
 
-BOOST_MPL_AUX_NA_SPEC(2, inherit2)
+NDNBOOST_MPL_AUX_NA_SPEC(2, inherit2)
 
 template<
       typename T1 = na, typename T2 = na, typename T3 = na
@@ -56,14 +56,14 @@
         , T3
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           3
         , inherit3
         , ( T1, T2, T3)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC(3, inherit3)
+NDNBOOST_MPL_AUX_NA_SPEC(3, inherit3)
 
 template<
       typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
@@ -76,14 +76,14 @@
         , T4
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           4
         , inherit4
         , ( T1, T2, T3, T4)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC(4, inherit4)
+NDNBOOST_MPL_AUX_NA_SPEC(4, inherit4)
 
 template<
       typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
@@ -97,14 +97,14 @@
         , T5
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , inherit5
         , ( T1, T2, T3, T4, T5)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC(5, inherit5)
+NDNBOOST_MPL_AUX_NA_SPEC(5, inherit5)
 
 /// primary template
 
@@ -132,8 +132,8 @@
     };
 };
 
-BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit)
+NDNBOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit)
+NDNBOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit)
+NDNBOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit)
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/iter_fold_if_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/iter_fold_if_impl.hpp
index 7553efd..949e316 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/iter_fold_if_impl.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc/iter_fold_if_impl.hpp
@@ -61,7 +61,7 @@
 {
     typedef typename apply2< Predicate,State,Iterator >::type not_last;
     typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
+          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
         >::template result_< Iterator,State,ForwardOp, mpl::next<Iterator> > impl_;
 
     typedef typename impl_::state state;
@@ -78,7 +78,7 @@
 {
     typedef typename apply2< Predicate,State,Iterator >::type not_last;
     typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
+          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
         >::template result_< Iterator,State,BackwardOp, identity<Iterator> > impl_;
 
     typedef typename impl_::state state;
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/lambda_no_ctps.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/lambda_no_ctps.hpp
index 213475d..5287a1f 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/lambda_no_ctps.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc/lambda_no_ctps.hpp
@@ -44,7 +44,7 @@
         typedef lambda< typename F::arg1, Tag, false_ > l1;
         typedef typename l1::is_le is_le1;
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
             > is_le;
 
         typedef bind1<
@@ -74,7 +74,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
             > is_le;
 
         typedef bind2<
@@ -106,7 +106,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value
             > is_le;
 
         typedef bind3<
@@ -140,7 +140,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value
             > is_le;
 
         typedef bind4<
@@ -177,7 +177,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value
             > is_le;
 
         typedef bind5<
@@ -212,10 +212,10 @@
 
     typedef typename l_::type type;
     typedef typename l_::is_le is_le;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
 };
 
-BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
+NDNBOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
 
 template<
       typename T
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/less.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/less.hpp
index 6bee1e6..df9a10b 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/less.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc/less.hpp
@@ -17,8 +17,8 @@
     >
 struct less_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct less
 
@@ -71,11 +71,11 @@
         , typename less_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less)
 
 }}
 
@@ -86,7 +86,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value > NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/less_equal.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/less_equal.hpp
index cd08075..1e4726f 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/less_equal.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc/less_equal.hpp
@@ -17,8 +17,8 @@
     >
 struct less_equal_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct less_equal
 
@@ -71,11 +71,11 @@
         , typename less_equal_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
 
 }}
 
@@ -86,7 +86,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value <= NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/minus.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/minus.hpp
index 8e39d0d..6006e26 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/minus.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc/minus.hpp
@@ -17,8 +17,8 @@
     >
 struct minus_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,14 +61,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct minus
     : minus< minus< minus< minus< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , minus
         , ( N1, N2, N3, N4, N5 )
@@ -82,7 +82,7 @@
 
     : minus< minus< minus< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , minus
         , ( N1, N2, N3, N4, na )
@@ -96,7 +96,7 @@
 
     : minus< minus< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , minus
         , ( N1, N2, N3, na, na )
@@ -112,7 +112,7 @@
         , typename minus_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , minus
         , ( N1, N2, na, na, na )
@@ -120,7 +120,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
 
 }}
 
@@ -135,8 +135,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  - BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  - NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/modulus.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/modulus.hpp
index 65509f2..2009f89 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/modulus.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc/modulus.hpp
@@ -17,8 +17,8 @@
     >
 struct modulus_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct modulus
 
@@ -71,11 +71,11 @@
         , typename modulus_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
 
 }}
 
@@ -90,8 +90,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  % BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  % NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/not_equal_to.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/not_equal_to.hpp
index d14e535..5406a42 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/not_equal_to.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc/not_equal_to.hpp
@@ -17,8 +17,8 @@
     >
 struct not_equal_to_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct not_equal_to
 
@@ -71,11 +71,11 @@
         , typename not_equal_to_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
 
 }}
 
@@ -86,7 +86,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value != NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/or.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/or.hpp
index 9427d08..6bc19d0 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/or.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc/or.hpp
@@ -22,7 +22,7 @@
 template< typename T1, typename T2, typename T3, typename T4 >
 struct or_impl< false,T1,T2,T3,T4 >
     : or_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
         , T2, T3, T4
         , false_
         >
@@ -41,26 +41,26 @@
 } // namespace aux
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
     , typename T3 = false_, typename T4 = false_, typename T5 = false_
     >
 struct or_
 
     : aux::or_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
         , T2, T3, T4, T5
         >
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , or_
         , ( T1, T2, T3, T4, T5)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC2(
+NDNBOOST_MPL_AUX_NA_SPEC2(
       2
     , 5
     , or_
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/placeholders.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/placeholders.hpp
index 330e40f..c31761d 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/placeholders.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc/placeholders.hpp
@@ -10,96 +10,96 @@
 // *Preprocessed* version of the main "placeholders.hpp" header
 // -- DO NOT modify by hand!
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg< -1 > _;
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
 }
 
 }}
 
 /// agurt, 17/mar/02: one more placeholder for the last 'apply#' 
 /// specialization
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<1> _1;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<2> _2;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<3> _3;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<4> _4;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<5> _5;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<6> _6;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6;
 }
 
 }}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/plus.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/plus.hpp
index 19c04d3..94bd633 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/plus.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc/plus.hpp
@@ -17,8 +17,8 @@
     >
 struct plus_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,14 +61,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct plus
     : plus< plus< plus< plus< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , plus
         , ( N1, N2, N3, N4, N5 )
@@ -82,7 +82,7 @@
 
     : plus< plus< plus< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , plus
         , ( N1, N2, N3, N4, na )
@@ -96,7 +96,7 @@
 
     : plus< plus< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , plus
         , ( N1, N2, N3, na, na )
@@ -112,7 +112,7 @@
         , typename plus_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , plus
         , ( N1, N2, na, na, na )
@@ -120,7 +120,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
 
 }}
 
@@ -135,8 +135,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  + BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  + NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/shift_left.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/shift_left.hpp
index c5acfdd..ec50521 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/shift_left.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc/shift_left.hpp
@@ -18,8 +18,8 @@
     >
 struct shift_left_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< shift_left_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,8 +62,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct shift_left
 
@@ -72,11 +72,11 @@
         , typename shift_left_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
 
 }}
 
@@ -88,8 +88,8 @@
 
         : integral_c<
               typename N::value_type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N)::value
-                  << BOOST_MPL_AUX_VALUE_WKND(S)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N)::value
+                  << NDNBOOST_MPL_AUX_VALUE_WKND(S)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/shift_right.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/shift_right.hpp
index b86b242..88db931 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/shift_right.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc/shift_right.hpp
@@ -18,8 +18,8 @@
     >
 struct shift_right_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< shift_right_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,8 +62,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct shift_right
 
@@ -72,11 +72,11 @@
         , typename shift_right_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
 
 }}
 
@@ -88,8 +88,8 @@
 
         : integral_c<
               typename N::value_type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N)::value
-                  >> BOOST_MPL_AUX_VALUE_WKND(S)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N)::value
+                  >> NDNBOOST_MPL_AUX_VALUE_WKND(S)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/times.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/times.hpp
index ee61972..640c083 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/times.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc/times.hpp
@@ -17,8 +17,8 @@
     >
 struct times_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,14 +61,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct times
     : times< times< times< times< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , times
         , ( N1, N2, N3, N4, N5 )
@@ -82,7 +82,7 @@
 
     : times< times< times< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , times
         , ( N1, N2, N3, N4, na )
@@ -96,7 +96,7 @@
 
     : times< times< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , times
         , ( N1, N2, N3, na, na )
@@ -112,7 +112,7 @@
         , typename times_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , times
         , ( N1, N2, na, na, na )
@@ -120,7 +120,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, times)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, times)
 
 }}
 
@@ -135,8 +135,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  * BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  * NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/unpack_args.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/unpack_args.hpp
index c924f2a..bd0c328 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/unpack_args.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc/unpack_args.hpp
@@ -91,7 +91,7 @@
     };
 };
 
-BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
+NDNBOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
 
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/and.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/and.hpp
index 24b88d8..5c1b95a 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/and.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc551/and.hpp
@@ -22,7 +22,7 @@
 template< typename T1, typename T2, typename T3, typename T4 >
 struct and_impl< true,T1,T2,T3,T4 >
     : and_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
         , T2, T3, T4
         , true_
         >
@@ -41,26 +41,26 @@
 } // namespace aux
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
     , typename T3 = true_, typename T4 = true_, typename T5 = true_
     >
 struct and_
 
     : aux::and_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
         , T2, T3, T4, T5
         >
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , and_
         , ( T1, T2, T3, T4, T5)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC2(
+NDNBOOST_MPL_AUX_NA_SPEC2(
       2
     , 5
     , and_
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/apply.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/apply.hpp
index e4b1cd2..80f72b0 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/apply.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc551/apply.hpp
@@ -21,7 +21,7 @@
        
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           1
         , apply0
         , (F )
@@ -46,7 +46,7 @@
         , T1
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           2
         , apply1
         , (F, T1)
@@ -71,7 +71,7 @@
         , T1, T2
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           3
         , apply2
         , (F, T1, T2)
@@ -96,7 +96,7 @@
         , T1, T2, T3
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           4
         , apply3
         , (F, T1, T2, T3)
@@ -121,7 +121,7 @@
         , T1, T2, T3, T4
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , apply4
         , (F, T1, T2, T3, T4)
@@ -147,7 +147,7 @@
         , T1, T2, T3, T4, T5
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           6
         , apply5
         , (F, T1, T2, T3, T4, T5)
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/arg.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/arg.hpp
index 9a157c2..154476a 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/arg.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc551/arg.hpp
@@ -10,12 +10,12 @@
 // Preprocessed version of "ndnboost/mpl/arg.hpp" header
 // -- DO NOT modify by hand!
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 template<> struct arg< -1 >
 {
-    BOOST_STATIC_CONSTANT(int, value  = -1);
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_STATIC_CONSTANT(int, value  = -1);
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -24,16 +24,16 @@
     struct apply
     {
         typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<1>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 1);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 1);
     typedef arg<2> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -42,16 +42,16 @@
     struct apply
     {
         typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<2>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 2);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 2);
     typedef arg<3> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -60,16 +60,16 @@
     struct apply
     {
         typedef U2 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<3>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 3);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 3);
     typedef arg<4> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -78,16 +78,16 @@
     struct apply
     {
         typedef U3 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<4>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 4);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 4);
     typedef arg<5> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -96,16 +96,16 @@
     struct apply
     {
         typedef U4 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<5>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 5);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 5);
     typedef arg<6> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -114,10 +114,10 @@
     struct apply
     {
         typedef U5 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
-BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
+NDNBOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/basic_bind.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/basic_bind.hpp
index 4083ade..8519929 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/basic_bind.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc551/basic_bind.hpp
@@ -71,8 +71,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
 
 template<
       typename F, typename T1
@@ -114,8 +114,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
 
 template<
       typename F, typename T1, typename T2
@@ -158,8 +158,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
 
 template<
       typename F, typename T1, typename T2, typename T3
@@ -203,8 +203,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
 
 template<
       typename F, typename T1, typename T2, typename T3, typename T4
@@ -250,8 +250,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
 
 template<
       typename F, typename T1, typename T2, typename T3, typename T4
@@ -300,7 +300,7 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/bind.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/bind.hpp
index ed6a853..c5396db 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/bind.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc551/bind.hpp
@@ -93,8 +93,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
 
 template<
       typename F, typename T1
@@ -143,8 +143,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
 
 template<
       typename F, typename T1, typename T2
@@ -198,8 +198,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
 
 template<
       typename F, typename T1, typename T2, typename T3
@@ -258,8 +258,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
 
 template<
       typename F, typename T1, typename T2, typename T3, typename T4
@@ -324,8 +324,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
 
 template<
       typename F, typename T1, typename T2, typename T3, typename T4
@@ -397,7 +397,7 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/bitand.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/bitand.hpp
index 90e8593..cd8cc5c 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/bitand.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc551/bitand.hpp
@@ -18,8 +18,8 @@
     >
 struct bitand_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,14 +62,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct bitand_
     : bitand_< bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , bitand_
         , ( N1, N2, N3, N4, N5 )
@@ -83,7 +83,7 @@
 
     : bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitand_
         , ( N1, N2, N3, N4, na )
@@ -97,7 +97,7 @@
 
     : bitand_< bitand_< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitand_
         , ( N1, N2, N3, na, na )
@@ -113,7 +113,7 @@
         , typename bitand_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitand_
         , ( N1, N2, na, na, na )
@@ -121,7 +121,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
 
 }}
 
@@ -136,8 +136,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  & BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  & NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/bitor.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/bitor.hpp
index c71a8f4..e98247b 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/bitor.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc551/bitor.hpp
@@ -18,8 +18,8 @@
     >
 struct bitor_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,14 +62,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct bitor_
     : bitor_< bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , bitor_
         , ( N1, N2, N3, N4, N5 )
@@ -83,7 +83,7 @@
 
     : bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitor_
         , ( N1, N2, N3, N4, na )
@@ -97,7 +97,7 @@
 
     : bitor_< bitor_< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitor_
         , ( N1, N2, N3, na, na )
@@ -113,7 +113,7 @@
         , typename bitor_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitor_
         , ( N1, N2, na, na, na )
@@ -121,7 +121,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
 
 }}
 
@@ -136,8 +136,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  | BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  | NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/bitxor.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/bitxor.hpp
index b7f0ce7..1f276b7 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/bitxor.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc551/bitxor.hpp
@@ -18,8 +18,8 @@
     >
 struct bitxor_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,14 +62,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct bitxor_
     : bitxor_< bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , bitxor_
         , ( N1, N2, N3, N4, N5 )
@@ -83,7 +83,7 @@
 
     : bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitxor_
         , ( N1, N2, N3, N4, na )
@@ -97,7 +97,7 @@
 
     : bitxor_< bitxor_< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitxor_
         , ( N1, N2, N3, na, na )
@@ -113,7 +113,7 @@
         , typename bitxor_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitxor_
         , ( N1, N2, na, na, na )
@@ -121,7 +121,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
 
 }}
 
@@ -136,8 +136,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  ^ BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  ^ NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/divides.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/divides.hpp
index 0f5415c..1bc4433 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/divides.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc551/divides.hpp
@@ -17,8 +17,8 @@
     >
 struct divides_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,14 +61,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct divides
     : divides< divides< divides< divides< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , divides
         , ( N1, N2, N3, N4, N5 )
@@ -82,7 +82,7 @@
 
     : divides< divides< divides< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , divides
         , ( N1, N2, N3, N4, na )
@@ -96,7 +96,7 @@
 
     : divides< divides< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , divides
         , ( N1, N2, N3, na, na )
@@ -112,7 +112,7 @@
         , typename divides_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , divides
         , ( N1, N2, na, na, na )
@@ -120,7 +120,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
 
 }}
 
@@ -135,8 +135,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  / BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  / NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/equal_to.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/equal_to.hpp
index 0d02da4..6455885 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/equal_to.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc551/equal_to.hpp
@@ -17,8 +17,8 @@
     >
 struct equal_to_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct equal_to
 
@@ -71,11 +71,11 @@
         , typename equal_to_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
 
 }}
 
@@ -86,7 +86,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value  == BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value  == NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/full_lambda.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/full_lambda.hpp
index dcea342..3acbd9f 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/full_lambda.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc551/full_lambda.hpp
@@ -552,7 +552,7 @@
     typedef typename le_result_::type type;
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 3, lambda)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 3, lambda)
 
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/greater.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/greater.hpp
index e05fa3c..a7eb4a4 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/greater.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc551/greater.hpp
@@ -17,8 +17,8 @@
     >
 struct greater_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct greater
 
@@ -71,11 +71,11 @@
         , typename greater_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
 
 }}
 
@@ -86,7 +86,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value > NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/greater_equal.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/greater_equal.hpp
index f89a587..35bd413 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/greater_equal.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc551/greater_equal.hpp
@@ -17,8 +17,8 @@
     >
 struct greater_equal_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct greater_equal
 
@@ -71,11 +71,11 @@
         , typename greater_equal_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
 
 }}
 
@@ -86,7 +86,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value >= NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/inherit.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/inherit.hpp
index 41f387f..a97f313 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/inherit.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc551/inherit.hpp
@@ -12,38 +12,38 @@
 namespace ndnboost { namespace mpl {
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
     >
 struct inherit2
     : T1, T2
 {
     typedef inherit2 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
 };
 
 template< typename T1 >
 struct inherit2< T1,empty_base >
 {
     typedef T1 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base))
 };
 
 template< typename T2 >
 struct inherit2< empty_base,T2 >
 {
     typedef T2 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2))
 };
 
 template<>
 struct inherit2< empty_base,empty_base >
 {
     typedef empty_base type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base))
 };
 
-BOOST_MPL_AUX_NA_SPEC(2, inherit2)
+NDNBOOST_MPL_AUX_NA_SPEC(2, inherit2)
 
 template<
       typename T1 = na, typename T2 = na, typename T3 = na
@@ -56,14 +56,14 @@
         , T3
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           3
         , inherit3
         , ( T1, T2, T3)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC(3, inherit3)
+NDNBOOST_MPL_AUX_NA_SPEC(3, inherit3)
 
 template<
       typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
@@ -76,14 +76,14 @@
         , T4
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           4
         , inherit4
         , ( T1, T2, T3, T4)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC(4, inherit4)
+NDNBOOST_MPL_AUX_NA_SPEC(4, inherit4)
 
 template<
       typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
@@ -97,14 +97,14 @@
         , T5
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , inherit5
         , ( T1, T2, T3, T4, T5)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC(5, inherit5)
+NDNBOOST_MPL_AUX_NA_SPEC(5, inherit5)
 
 /// primary template
 
@@ -134,8 +134,8 @@
     };
 };
 
-BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit)
+NDNBOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit)
+NDNBOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit)
+NDNBOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit)
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/iter_fold_if_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/iter_fold_if_impl.hpp
index b0a2864..a74bd83 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/iter_fold_if_impl.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc551/iter_fold_if_impl.hpp
@@ -61,7 +61,7 @@
 {
     typedef typename apply2< Predicate,State,Iterator >::type not_last;
     typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
+          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
         >::template result_< Iterator,State,ForwardOp, mpl::next<Iterator> > impl_;
 
     typedef typename impl_::state state;
@@ -78,7 +78,7 @@
 {
     typedef typename apply2< Predicate,State,Iterator >::type not_last;
     typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
+          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
         >::template result_< Iterator,State,BackwardOp, identity<Iterator> > impl_;
 
     typedef typename impl_::state state;
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/lambda_no_ctps.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/lambda_no_ctps.hpp
index 5bfc661..45f5f6b 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/lambda_no_ctps.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc551/lambda_no_ctps.hpp
@@ -44,7 +44,7 @@
         typedef lambda< typename F::arg1, Tag, false_ > l1;
         typedef typename l1::is_le is_le1;
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
             > is_le;
 
         typedef bind1<
@@ -74,7 +74,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
             > is_le;
 
         typedef bind2<
@@ -106,7 +106,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value
             > is_le;
 
         typedef bind3<
@@ -140,7 +140,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value
             > is_le;
 
         typedef bind4<
@@ -177,7 +177,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value
             > is_le;
 
         typedef bind5<
@@ -212,10 +212,10 @@
 
     typedef typename l_::type type;
     typedef typename l_::is_le is_le;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
 };
 
-BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
+NDNBOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
 
 template<
       typename T
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/less.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/less.hpp
index 7139b79..a4b8eeb 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/less.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc551/less.hpp
@@ -17,8 +17,8 @@
     >
 struct less_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct less
 
@@ -71,11 +71,11 @@
         , typename less_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less)
 
 }}
 
@@ -86,7 +86,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value > NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/less_equal.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/less_equal.hpp
index f7c3491..5cd141b 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/less_equal.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc551/less_equal.hpp
@@ -17,8 +17,8 @@
     >
 struct less_equal_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct less_equal
 
@@ -71,11 +71,11 @@
         , typename less_equal_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
 
 }}
 
@@ -86,7 +86,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value <= NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/minus.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/minus.hpp
index ae6b592..454fda8 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/minus.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc551/minus.hpp
@@ -17,8 +17,8 @@
     >
 struct minus_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,14 +61,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct minus
     : minus< minus< minus< minus< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , minus
         , ( N1, N2, N3, N4, N5 )
@@ -82,7 +82,7 @@
 
     : minus< minus< minus< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , minus
         , ( N1, N2, N3, N4, na )
@@ -96,7 +96,7 @@
 
     : minus< minus< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , minus
         , ( N1, N2, N3, na, na )
@@ -112,7 +112,7 @@
         , typename minus_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , minus
         , ( N1, N2, na, na, na )
@@ -120,7 +120,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
 
 }}
 
@@ -135,8 +135,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  - BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  - NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/modulus.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/modulus.hpp
index 89c6172..3e89691 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/modulus.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc551/modulus.hpp
@@ -17,8 +17,8 @@
     >
 struct modulus_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct modulus
 
@@ -71,11 +71,11 @@
         , typename modulus_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
 
 }}
 
@@ -90,8 +90,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  % BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  % NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/not_equal_to.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/not_equal_to.hpp
index b28e100..6de1e16 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/not_equal_to.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc551/not_equal_to.hpp
@@ -17,8 +17,8 @@
     >
 struct not_equal_to_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct not_equal_to
 
@@ -71,11 +71,11 @@
         , typename not_equal_to_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
 
 }}
 
@@ -86,7 +86,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value != NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/or.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/or.hpp
index e929602..cae8edf 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/or.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc551/or.hpp
@@ -22,7 +22,7 @@
 template< typename T1, typename T2, typename T3, typename T4 >
 struct or_impl< false,T1,T2,T3,T4 >
     : or_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
         , T2, T3, T4
         , false_
         >
@@ -41,26 +41,26 @@
 } // namespace aux
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
     , typename T3 = false_, typename T4 = false_, typename T5 = false_
     >
 struct or_
 
     : aux::or_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
         , T2, T3, T4, T5
         >
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , or_
         , ( T1, T2, T3, T4, T5)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC2(
+NDNBOOST_MPL_AUX_NA_SPEC2(
       2
     , 5
     , or_
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/placeholders.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/placeholders.hpp
index ecd4514..3a28c09 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/placeholders.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc551/placeholders.hpp
@@ -10,96 +10,96 @@
 // Preprocessed version of "ndnboost/mpl/placeholders.hpp" header
 // -- DO NOT modify by hand!
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg< -1 > _;
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
 }
 
 }}
 
 /// agurt, 17/mar/02: one more placeholder for the last 'apply#' 
 /// specialization
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<1> _1;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<2> _2;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<3> _3;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<4> _4;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<5> _5;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<6> _6;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6;
 }
 
 }}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/plus.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/plus.hpp
index de03e3e..5d8b2cd 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/plus.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc551/plus.hpp
@@ -17,8 +17,8 @@
     >
 struct plus_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,14 +61,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct plus
     : plus< plus< plus< plus< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , plus
         , ( N1, N2, N3, N4, N5 )
@@ -82,7 +82,7 @@
 
     : plus< plus< plus< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , plus
         , ( N1, N2, N3, N4, na )
@@ -96,7 +96,7 @@
 
     : plus< plus< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , plus
         , ( N1, N2, N3, na, na )
@@ -112,7 +112,7 @@
         , typename plus_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , plus
         , ( N1, N2, na, na, na )
@@ -120,7 +120,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
 
 }}
 
@@ -135,8 +135,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  + BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  + NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/shift_left.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/shift_left.hpp
index c8df29c..2964fb8 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/shift_left.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc551/shift_left.hpp
@@ -18,8 +18,8 @@
     >
 struct shift_left_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< shift_left_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,8 +62,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct shift_left
 
@@ -72,11 +72,11 @@
         , typename shift_left_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
 
 }}
 
@@ -88,8 +88,8 @@
 
         : integral_c<
               typename N::value_type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N)::value
-                  << BOOST_MPL_AUX_VALUE_WKND(S)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N)::value
+                  << NDNBOOST_MPL_AUX_VALUE_WKND(S)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/shift_right.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/shift_right.hpp
index a726ff1..57a5fe0 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/shift_right.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc551/shift_right.hpp
@@ -18,8 +18,8 @@
     >
 struct shift_right_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< shift_right_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,8 +62,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct shift_right
 
@@ -72,11 +72,11 @@
         , typename shift_right_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
 
 }}
 
@@ -88,8 +88,8 @@
 
         : integral_c<
               typename N::value_type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N)::value
-                  >> BOOST_MPL_AUX_VALUE_WKND(S)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N)::value
+                  >> NDNBOOST_MPL_AUX_VALUE_WKND(S)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/times.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/times.hpp
index f4514e5..9a55fed 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/times.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc551/times.hpp
@@ -17,8 +17,8 @@
     >
 struct times_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,14 +61,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct times
     : times< times< times< times< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , times
         , ( N1, N2, N3, N4, N5 )
@@ -82,7 +82,7 @@
 
     : times< times< times< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , times
         , ( N1, N2, N3, N4, na )
@@ -96,7 +96,7 @@
 
     : times< times< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , times
         , ( N1, N2, N3, na, na )
@@ -112,7 +112,7 @@
         , typename times_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , times
         , ( N1, N2, na, na, na )
@@ -120,7 +120,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, times)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, times)
 
 }}
 
@@ -135,8 +135,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  * BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  * NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/unpack_args.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/unpack_args.hpp
index 3098efe..19049ea 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/unpack_args.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc551/unpack_args.hpp
@@ -91,7 +91,7 @@
     };
 };
 
-BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
+NDNBOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
 
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/and.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/and.hpp
index 119fa2d..6ecd7fd 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/and.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/and.hpp
@@ -22,7 +22,7 @@
 template< typename T1, typename T2, typename T3, typename T4 >
 struct and_impl< true,T1,T2,T3,T4 >
     : and_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
         , T2, T3, T4
         , true_
         >
@@ -41,26 +41,26 @@
 } // namespace aux
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
     , typename T3 = true_, typename T4 = true_, typename T5 = true_
     >
 struct and_
 
     : aux::and_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
         , T2, T3, T4, T5
         >
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , and_
         , ( T1, T2, T3, T4, T5)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC2(
+NDNBOOST_MPL_AUX_NA_SPEC2(
       2
     , 5
     , and_
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/apply.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/apply.hpp
index 9d372f1..495377c 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/apply.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/apply.hpp
@@ -21,7 +21,7 @@
        
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           1
         , apply0
         , (F )
@@ -46,7 +46,7 @@
         , T1
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           2
         , apply1
         , (F, T1)
@@ -71,7 +71,7 @@
         , T1, T2
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           3
         , apply2
         , (F, T1, T2)
@@ -96,7 +96,7 @@
         , T1, T2, T3
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           4
         , apply3
         , (F, T1, T2, T3)
@@ -121,7 +121,7 @@
         , T1, T2, T3, T4
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , apply4
         , (F, T1, T2, T3, T4)
@@ -147,7 +147,7 @@
         , T1, T2, T3, T4, T5
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           6
         , apply5
         , (F, T1, T2, T3, T4, T5)
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/arg.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/arg.hpp
index 3ac4340..29c017a 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/arg.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/arg.hpp
@@ -10,12 +10,12 @@
 // *Preprocessed* version of the main "arg.hpp" header
 // -- DO NOT modify by hand!
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 template<> struct arg< -1 >
 {
-    BOOST_STATIC_CONSTANT(int, value  = -1);
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_STATIC_CONSTANT(int, value  = -1);
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1, typename U2, typename U3, typename U4, typename U5
@@ -23,16 +23,16 @@
     struct apply
     {
         typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<1>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 1);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 1);
     typedef arg<2> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1, typename U2, typename U3, typename U4, typename U5
@@ -40,16 +40,16 @@
     struct apply
     {
         typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<2>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 2);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 2);
     typedef arg<3> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1, typename U2, typename U3, typename U4, typename U5
@@ -57,16 +57,16 @@
     struct apply
     {
         typedef U2 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<3>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 3);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 3);
     typedef arg<4> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1, typename U2, typename U3, typename U4, typename U5
@@ -74,16 +74,16 @@
     struct apply
     {
         typedef U3 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<4>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 4);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 4);
     typedef arg<5> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1, typename U2, typename U3, typename U4, typename U5
@@ -91,16 +91,16 @@
     struct apply
     {
         typedef U4 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<5>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 5);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 5);
     typedef arg<6> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1, typename U2, typename U3, typename U4, typename U5
@@ -108,10 +108,10 @@
     struct apply
     {
         typedef U5 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
-BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
+NDNBOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/basic_bind.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/basic_bind.hpp
index acd054b..0ba4ca5 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/basic_bind.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/basic_bind.hpp
@@ -70,8 +70,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
 
 template<
       typename F, typename T1
@@ -112,8 +112,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
 
 template<
       typename F, typename T1, typename T2
@@ -155,8 +155,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
 
 template<
       typename F, typename T1, typename T2, typename T3
@@ -199,8 +199,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
 
 template<
       typename F, typename T1, typename T2, typename T3, typename T4
@@ -245,8 +245,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
 
 template<
       typename F, typename T1, typename T2, typename T3, typename T4
@@ -294,7 +294,7 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/bind.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/bind.hpp
index 35ee492..3a5754b 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/bind.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/bind.hpp
@@ -92,8 +92,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
 
 template<
       typename F, typename T1
@@ -141,8 +141,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
 
 template<
       typename F, typename T1, typename T2
@@ -195,8 +195,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
 
 template<
       typename F, typename T1, typename T2, typename T3
@@ -254,8 +254,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
 
 template<
       typename F, typename T1, typename T2, typename T3, typename T4
@@ -319,8 +319,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
 
 template<
       typename F, typename T1, typename T2, typename T3, typename T4
@@ -391,7 +391,7 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/bitand.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/bitand.hpp
index 1a2ac8d..6a3f847 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/bitand.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/bitand.hpp
@@ -18,8 +18,8 @@
     >
 struct bitand_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,14 +62,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct bitand_
     : bitand_< bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , bitand_
         , ( N1, N2, N3, N4, N5 )
@@ -83,7 +83,7 @@
 
     : bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitand_
         , ( N1, N2, N3, N4, na )
@@ -97,7 +97,7 @@
 
     : bitand_< bitand_< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitand_
         , ( N1, N2, N3, na, na )
@@ -113,7 +113,7 @@
         , typename bitand_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitand_
         , ( N1, N2, na, na, na )
@@ -121,7 +121,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
 
 }}
 
@@ -136,8 +136,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  & BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  & NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/bitor.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/bitor.hpp
index 536f350..8082890 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/bitor.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/bitor.hpp
@@ -18,8 +18,8 @@
     >
 struct bitor_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,14 +62,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct bitor_
     : bitor_< bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , bitor_
         , ( N1, N2, N3, N4, N5 )
@@ -83,7 +83,7 @@
 
     : bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitor_
         , ( N1, N2, N3, N4, na )
@@ -97,7 +97,7 @@
 
     : bitor_< bitor_< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitor_
         , ( N1, N2, N3, na, na )
@@ -113,7 +113,7 @@
         , typename bitor_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitor_
         , ( N1, N2, na, na, na )
@@ -121,7 +121,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
 
 }}
 
@@ -136,8 +136,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  | BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  | NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/bitxor.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/bitxor.hpp
index 0869fba..78cdd23 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/bitxor.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/bitxor.hpp
@@ -18,8 +18,8 @@
     >
 struct bitxor_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,14 +62,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct bitxor_
     : bitxor_< bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , bitxor_
         , ( N1, N2, N3, N4, N5 )
@@ -83,7 +83,7 @@
 
     : bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitxor_
         , ( N1, N2, N3, N4, na )
@@ -97,7 +97,7 @@
 
     : bitxor_< bitxor_< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitxor_
         , ( N1, N2, N3, na, na )
@@ -113,7 +113,7 @@
         , typename bitxor_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitxor_
         , ( N1, N2, na, na, na )
@@ -121,7 +121,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
 
 }}
 
@@ -136,8 +136,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  ^ BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  ^ NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/divides.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/divides.hpp
index 5922aff..9ec580d 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/divides.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/divides.hpp
@@ -17,8 +17,8 @@
     >
 struct divides_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,14 +61,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct divides
     : divides< divides< divides< divides< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , divides
         , ( N1, N2, N3, N4, N5 )
@@ -82,7 +82,7 @@
 
     : divides< divides< divides< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , divides
         , ( N1, N2, N3, N4, na )
@@ -96,7 +96,7 @@
 
     : divides< divides< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , divides
         , ( N1, N2, N3, na, na )
@@ -112,7 +112,7 @@
         , typename divides_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , divides
         , ( N1, N2, na, na, na )
@@ -120,7 +120,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
 
 }}
 
@@ -135,8 +135,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  / BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  / NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/equal_to.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/equal_to.hpp
index b47c51e..71159c2 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/equal_to.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/equal_to.hpp
@@ -17,8 +17,8 @@
     >
 struct equal_to_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct equal_to
 
@@ -71,11 +71,11 @@
         , typename equal_to_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
 
 }}
 
@@ -86,7 +86,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value  == BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value  == NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/full_lambda.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/full_lambda.hpp
index 9a7edf5..3471f18 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/full_lambda.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/full_lambda.hpp
@@ -552,7 +552,7 @@
     typedef typename le_result_::type type;
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 3, lambda)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 3, lambda)
 
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/greater.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/greater.hpp
index 7bd1c1f..b608850 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/greater.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/greater.hpp
@@ -17,8 +17,8 @@
     >
 struct greater_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct greater
 
@@ -71,11 +71,11 @@
         , typename greater_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
 
 }}
 
@@ -86,7 +86,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value > NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/greater_equal.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/greater_equal.hpp
index b9f165e..f758629 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/greater_equal.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/greater_equal.hpp
@@ -17,8 +17,8 @@
     >
 struct greater_equal_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct greater_equal
 
@@ -71,11 +71,11 @@
         , typename greater_equal_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
 
 }}
 
@@ -86,7 +86,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value >= NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/inherit.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/inherit.hpp
index 5621cd9..ace1894 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/inherit.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/inherit.hpp
@@ -12,38 +12,38 @@
 namespace ndnboost { namespace mpl {
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
     >
 struct inherit2
     : T1, T2
 {
     typedef inherit2 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
 };
 
 template< typename T1 >
 struct inherit2< T1,empty_base >
 {
     typedef T1 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base))
 };
 
 template< typename T2 >
 struct inherit2< empty_base,T2 >
 {
     typedef T2 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2))
 };
 
 template<>
 struct inherit2< empty_base,empty_base >
 {
     typedef empty_base type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base))
 };
 
-BOOST_MPL_AUX_NA_SPEC(2, inherit2)
+NDNBOOST_MPL_AUX_NA_SPEC(2, inherit2)
 
 template<
       typename T1 = na, typename T2 = na, typename T3 = na
@@ -56,14 +56,14 @@
         , T3
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           3
         , inherit3
         , ( T1, T2, T3)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC(3, inherit3)
+NDNBOOST_MPL_AUX_NA_SPEC(3, inherit3)
 
 template<
       typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
@@ -76,14 +76,14 @@
         , T4
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           4
         , inherit4
         , ( T1, T2, T3, T4)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC(4, inherit4)
+NDNBOOST_MPL_AUX_NA_SPEC(4, inherit4)
 
 template<
       typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
@@ -97,14 +97,14 @@
         , T5
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , inherit5
         , ( T1, T2, T3, T4, T5)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC(5, inherit5)
+NDNBOOST_MPL_AUX_NA_SPEC(5, inherit5)
 
 /// primary template
 
@@ -132,8 +132,8 @@
     };
 };
 
-BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit)
+NDNBOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit)
+NDNBOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit)
+NDNBOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit)
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_if_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_if_impl.hpp
index 7553efd..949e316 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_if_impl.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_if_impl.hpp
@@ -61,7 +61,7 @@
 {
     typedef typename apply2< Predicate,State,Iterator >::type not_last;
     typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
+          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
         >::template result_< Iterator,State,ForwardOp, mpl::next<Iterator> > impl_;
 
     typedef typename impl_::state state;
@@ -78,7 +78,7 @@
 {
     typedef typename apply2< Predicate,State,Iterator >::type not_last;
     typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
+          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
         >::template result_< Iterator,State,BackwardOp, identity<Iterator> > impl_;
 
     typedef typename impl_::state state;
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/lambda_no_ctps.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/lambda_no_ctps.hpp
index 213475d..5287a1f 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/lambda_no_ctps.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/lambda_no_ctps.hpp
@@ -44,7 +44,7 @@
         typedef lambda< typename F::arg1, Tag, false_ > l1;
         typedef typename l1::is_le is_le1;
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
             > is_le;
 
         typedef bind1<
@@ -74,7 +74,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
             > is_le;
 
         typedef bind2<
@@ -106,7 +106,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value
             > is_le;
 
         typedef bind3<
@@ -140,7 +140,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value
             > is_le;
 
         typedef bind4<
@@ -177,7 +177,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value
             > is_le;
 
         typedef bind5<
@@ -212,10 +212,10 @@
 
     typedef typename l_::type type;
     typedef typename l_::is_le is_le;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
 };
 
-BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
+NDNBOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
 
 template<
       typename T
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/less.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/less.hpp
index 6bee1e6..df9a10b 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/less.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/less.hpp
@@ -17,8 +17,8 @@
     >
 struct less_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct less
 
@@ -71,11 +71,11 @@
         , typename less_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less)
 
 }}
 
@@ -86,7 +86,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value > NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/less_equal.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/less_equal.hpp
index cd08075..1e4726f 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/less_equal.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/less_equal.hpp
@@ -17,8 +17,8 @@
     >
 struct less_equal_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct less_equal
 
@@ -71,11 +71,11 @@
         , typename less_equal_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
 
 }}
 
@@ -86,7 +86,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value <= NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/minus.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/minus.hpp
index 8e39d0d..6006e26 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/minus.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/minus.hpp
@@ -17,8 +17,8 @@
     >
 struct minus_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,14 +61,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct minus
     : minus< minus< minus< minus< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , minus
         , ( N1, N2, N3, N4, N5 )
@@ -82,7 +82,7 @@
 
     : minus< minus< minus< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , minus
         , ( N1, N2, N3, N4, na )
@@ -96,7 +96,7 @@
 
     : minus< minus< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , minus
         , ( N1, N2, N3, na, na )
@@ -112,7 +112,7 @@
         , typename minus_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , minus
         , ( N1, N2, na, na, na )
@@ -120,7 +120,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
 
 }}
 
@@ -135,8 +135,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  - BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  - NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/modulus.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/modulus.hpp
index 65509f2..2009f89 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/modulus.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/modulus.hpp
@@ -17,8 +17,8 @@
     >
 struct modulus_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct modulus
 
@@ -71,11 +71,11 @@
         , typename modulus_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
 
 }}
 
@@ -90,8 +90,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  % BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  % NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/not_equal_to.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/not_equal_to.hpp
index d14e535..5406a42 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/not_equal_to.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/not_equal_to.hpp
@@ -17,8 +17,8 @@
     >
 struct not_equal_to_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct not_equal_to
 
@@ -71,11 +71,11 @@
         , typename not_equal_to_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
 
 }}
 
@@ -86,7 +86,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value != NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/or.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/or.hpp
index 9427d08..6bc19d0 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/or.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/or.hpp
@@ -22,7 +22,7 @@
 template< typename T1, typename T2, typename T3, typename T4 >
 struct or_impl< false,T1,T2,T3,T4 >
     : or_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
         , T2, T3, T4
         , false_
         >
@@ -41,26 +41,26 @@
 } // namespace aux
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
     , typename T3 = false_, typename T4 = false_, typename T5 = false_
     >
 struct or_
 
     : aux::or_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
         , T2, T3, T4, T5
         >
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , or_
         , ( T1, T2, T3, T4, T5)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC2(
+NDNBOOST_MPL_AUX_NA_SPEC2(
       2
     , 5
     , or_
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/placeholders.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/placeholders.hpp
index 330e40f..c31761d 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/placeholders.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/placeholders.hpp
@@ -10,96 +10,96 @@
 // *Preprocessed* version of the main "placeholders.hpp" header
 // -- DO NOT modify by hand!
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg< -1 > _;
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
 }
 
 }}
 
 /// agurt, 17/mar/02: one more placeholder for the last 'apply#' 
 /// specialization
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<1> _1;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<2> _2;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<3> _3;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<4> _4;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<5> _5;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<6> _6;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6;
 }
 
 }}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/plus.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/plus.hpp
index 19c04d3..94bd633 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/plus.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/plus.hpp
@@ -17,8 +17,8 @@
     >
 struct plus_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,14 +61,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct plus
     : plus< plus< plus< plus< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , plus
         , ( N1, N2, N3, N4, N5 )
@@ -82,7 +82,7 @@
 
     : plus< plus< plus< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , plus
         , ( N1, N2, N3, N4, na )
@@ -96,7 +96,7 @@
 
     : plus< plus< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , plus
         , ( N1, N2, N3, na, na )
@@ -112,7 +112,7 @@
         , typename plus_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , plus
         , ( N1, N2, na, na, na )
@@ -120,7 +120,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
 
 }}
 
@@ -135,8 +135,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  + BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  + NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/shift_left.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/shift_left.hpp
index c5acfdd..ec50521 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/shift_left.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/shift_left.hpp
@@ -18,8 +18,8 @@
     >
 struct shift_left_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< shift_left_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,8 +62,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct shift_left
 
@@ -72,11 +72,11 @@
         , typename shift_left_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
 
 }}
 
@@ -88,8 +88,8 @@
 
         : integral_c<
               typename N::value_type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N)::value
-                  << BOOST_MPL_AUX_VALUE_WKND(S)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N)::value
+                  << NDNBOOST_MPL_AUX_VALUE_WKND(S)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/shift_right.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/shift_right.hpp
index b86b242..88db931 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/shift_right.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/shift_right.hpp
@@ -18,8 +18,8 @@
     >
 struct shift_right_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< shift_right_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,8 +62,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct shift_right
 
@@ -72,11 +72,11 @@
         , typename shift_right_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
 
 }}
 
@@ -88,8 +88,8 @@
 
         : integral_c<
               typename N::value_type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N)::value
-                  >> BOOST_MPL_AUX_VALUE_WKND(S)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N)::value
+                  >> NDNBOOST_MPL_AUX_VALUE_WKND(S)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/times.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/times.hpp
index ee61972..640c083 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/times.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/times.hpp
@@ -17,8 +17,8 @@
     >
 struct times_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,14 +61,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct times
     : times< times< times< times< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , times
         , ( N1, N2, N3, N4, N5 )
@@ -82,7 +82,7 @@
 
     : times< times< times< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , times
         , ( N1, N2, N3, N4, na )
@@ -96,7 +96,7 @@
 
     : times< times< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , times
         , ( N1, N2, N3, na, na )
@@ -112,7 +112,7 @@
         , typename times_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , times
         , ( N1, N2, na, na, na )
@@ -120,7 +120,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, times)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, times)
 
 }}
 
@@ -135,8 +135,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  * BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  * NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/unpack_args.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/unpack_args.hpp
index c924f2a..bd0c328 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/unpack_args.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/unpack_args.hpp
@@ -91,7 +91,7 @@
     };
 };
 
-BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
+NDNBOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
 
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/and.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/and.hpp
index 24b88d8..5c1b95a 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/and.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/dmc/and.hpp
@@ -22,7 +22,7 @@
 template< typename T1, typename T2, typename T3, typename T4 >
 struct and_impl< true,T1,T2,T3,T4 >
     : and_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
         , T2, T3, T4
         , true_
         >
@@ -41,26 +41,26 @@
 } // namespace aux
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
     , typename T3 = true_, typename T4 = true_, typename T5 = true_
     >
 struct and_
 
     : aux::and_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
         , T2, T3, T4, T5
         >
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , and_
         , ( T1, T2, T3, T4, T5)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC2(
+NDNBOOST_MPL_AUX_NA_SPEC2(
       2
     , 5
     , and_
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/apply.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/apply.hpp
index e4b1cd2..80f72b0 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/apply.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/dmc/apply.hpp
@@ -21,7 +21,7 @@
        
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           1
         , apply0
         , (F )
@@ -46,7 +46,7 @@
         , T1
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           2
         , apply1
         , (F, T1)
@@ -71,7 +71,7 @@
         , T1, T2
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           3
         , apply2
         , (F, T1, T2)
@@ -96,7 +96,7 @@
         , T1, T2, T3
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           4
         , apply3
         , (F, T1, T2, T3)
@@ -121,7 +121,7 @@
         , T1, T2, T3, T4
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , apply4
         , (F, T1, T2, T3, T4)
@@ -147,7 +147,7 @@
         , T1, T2, T3, T4, T5
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           6
         , apply5
         , (F, T1, T2, T3, T4, T5)
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/arg.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/arg.hpp
index 9a157c2..154476a 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/arg.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/dmc/arg.hpp
@@ -10,12 +10,12 @@
 // Preprocessed version of "ndnboost/mpl/arg.hpp" header
 // -- DO NOT modify by hand!
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 template<> struct arg< -1 >
 {
-    BOOST_STATIC_CONSTANT(int, value  = -1);
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_STATIC_CONSTANT(int, value  = -1);
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -24,16 +24,16 @@
     struct apply
     {
         typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<1>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 1);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 1);
     typedef arg<2> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -42,16 +42,16 @@
     struct apply
     {
         typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<2>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 2);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 2);
     typedef arg<3> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -60,16 +60,16 @@
     struct apply
     {
         typedef U2 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<3>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 3);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 3);
     typedef arg<4> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -78,16 +78,16 @@
     struct apply
     {
         typedef U3 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<4>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 4);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 4);
     typedef arg<5> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -96,16 +96,16 @@
     struct apply
     {
         typedef U4 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<5>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 5);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 5);
     typedef arg<6> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -114,10 +114,10 @@
     struct apply
     {
         typedef U5 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
-BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
+NDNBOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/basic_bind.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/basic_bind.hpp
index 8895825..17ef3ff 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/basic_bind.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/dmc/basic_bind.hpp
@@ -82,8 +82,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
 
 template<
       typename F, int dummy_
@@ -133,8 +133,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
 
 template<
       typename F, typename T1, int dummy_
@@ -185,8 +185,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
 
 template<
       typename F, typename T1, typename T2, int dummy_
@@ -238,8 +238,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
 
 template<
       typename F, typename T1, typename T2, typename T3, int dummy_
@@ -294,8 +294,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
 
 template<
       typename F, typename T1, typename T2, typename T3, typename T4
@@ -353,8 +353,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
 
 /// primary template (not a specialization!)
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/bind.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/bind.hpp
index 18db350..c56f63d 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/bind.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/dmc/bind.hpp
@@ -104,8 +104,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
 
 template<
       typename F, int dummy_
@@ -162,8 +162,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
 
 template<
       typename F, typename T1, int dummy_
@@ -225,8 +225,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
 
 template<
       typename F, typename T1, typename T2, int dummy_
@@ -293,8 +293,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
 
 template<
       typename F, typename T1, typename T2, typename T3, int dummy_
@@ -368,8 +368,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
 
 template<
       typename F, typename T1, typename T2, typename T3, typename T4
@@ -450,8 +450,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
 
 /// primary template (not a specialization!)
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/bitand.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/bitand.hpp
index 90e8593..cd8cc5c 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/bitand.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/dmc/bitand.hpp
@@ -18,8 +18,8 @@
     >
 struct bitand_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,14 +62,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct bitand_
     : bitand_< bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , bitand_
         , ( N1, N2, N3, N4, N5 )
@@ -83,7 +83,7 @@
 
     : bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitand_
         , ( N1, N2, N3, N4, na )
@@ -97,7 +97,7 @@
 
     : bitand_< bitand_< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitand_
         , ( N1, N2, N3, na, na )
@@ -113,7 +113,7 @@
         , typename bitand_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitand_
         , ( N1, N2, na, na, na )
@@ -121,7 +121,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
 
 }}
 
@@ -136,8 +136,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  & BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  & NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/bitor.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/bitor.hpp
index c71a8f4..e98247b 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/bitor.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/dmc/bitor.hpp
@@ -18,8 +18,8 @@
     >
 struct bitor_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,14 +62,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct bitor_
     : bitor_< bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , bitor_
         , ( N1, N2, N3, N4, N5 )
@@ -83,7 +83,7 @@
 
     : bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitor_
         , ( N1, N2, N3, N4, na )
@@ -97,7 +97,7 @@
 
     : bitor_< bitor_< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitor_
         , ( N1, N2, N3, na, na )
@@ -113,7 +113,7 @@
         , typename bitor_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitor_
         , ( N1, N2, na, na, na )
@@ -121,7 +121,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
 
 }}
 
@@ -136,8 +136,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  | BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  | NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/bitxor.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/bitxor.hpp
index b7f0ce7..1f276b7 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/bitxor.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/dmc/bitxor.hpp
@@ -18,8 +18,8 @@
     >
 struct bitxor_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,14 +62,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct bitxor_
     : bitxor_< bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , bitxor_
         , ( N1, N2, N3, N4, N5 )
@@ -83,7 +83,7 @@
 
     : bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitxor_
         , ( N1, N2, N3, N4, na )
@@ -97,7 +97,7 @@
 
     : bitxor_< bitxor_< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitxor_
         , ( N1, N2, N3, na, na )
@@ -113,7 +113,7 @@
         , typename bitxor_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitxor_
         , ( N1, N2, na, na, na )
@@ -121,7 +121,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
 
 }}
 
@@ -136,8 +136,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  ^ BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  ^ NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/divides.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/divides.hpp
index 0f5415c..1bc4433 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/divides.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/dmc/divides.hpp
@@ -17,8 +17,8 @@
     >
 struct divides_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,14 +61,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct divides
     : divides< divides< divides< divides< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , divides
         , ( N1, N2, N3, N4, N5 )
@@ -82,7 +82,7 @@
 
     : divides< divides< divides< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , divides
         , ( N1, N2, N3, N4, na )
@@ -96,7 +96,7 @@
 
     : divides< divides< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , divides
         , ( N1, N2, N3, na, na )
@@ -112,7 +112,7 @@
         , typename divides_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , divides
         , ( N1, N2, na, na, na )
@@ -120,7 +120,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
 
 }}
 
@@ -135,8 +135,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  / BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  / NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/equal_to.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/equal_to.hpp
index 0d02da4..6455885 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/equal_to.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/dmc/equal_to.hpp
@@ -17,8 +17,8 @@
     >
 struct equal_to_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct equal_to
 
@@ -71,11 +71,11 @@
         , typename equal_to_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
 
 }}
 
@@ -86,7 +86,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value  == BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value  == NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/full_lambda.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/full_lambda.hpp
index 4d09c10..ef1eb54 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/full_lambda.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/dmc/full_lambda.hpp
@@ -530,7 +530,7 @@
     typedef result_ type;
 };
 
-BOOST_MPL_AUX_NA_SPEC(2, lambda)
+NDNBOOST_MPL_AUX_NA_SPEC(2, lambda)
 
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/greater.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/greater.hpp
index e05fa3c..a7eb4a4 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/greater.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/dmc/greater.hpp
@@ -17,8 +17,8 @@
     >
 struct greater_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct greater
 
@@ -71,11 +71,11 @@
         , typename greater_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
 
 }}
 
@@ -86,7 +86,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value > NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/greater_equal.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/greater_equal.hpp
index f89a587..35bd413 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/greater_equal.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/dmc/greater_equal.hpp
@@ -17,8 +17,8 @@
     >
 struct greater_equal_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct greater_equal
 
@@ -71,11 +71,11 @@
         , typename greater_equal_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
 
 }}
 
@@ -86,7 +86,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value >= NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/inherit.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/inherit.hpp
index 41f387f..a97f313 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/inherit.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/dmc/inherit.hpp
@@ -12,38 +12,38 @@
 namespace ndnboost { namespace mpl {
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
     >
 struct inherit2
     : T1, T2
 {
     typedef inherit2 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
 };
 
 template< typename T1 >
 struct inherit2< T1,empty_base >
 {
     typedef T1 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base))
 };
 
 template< typename T2 >
 struct inherit2< empty_base,T2 >
 {
     typedef T2 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2))
 };
 
 template<>
 struct inherit2< empty_base,empty_base >
 {
     typedef empty_base type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base))
 };
 
-BOOST_MPL_AUX_NA_SPEC(2, inherit2)
+NDNBOOST_MPL_AUX_NA_SPEC(2, inherit2)
 
 template<
       typename T1 = na, typename T2 = na, typename T3 = na
@@ -56,14 +56,14 @@
         , T3
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           3
         , inherit3
         , ( T1, T2, T3)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC(3, inherit3)
+NDNBOOST_MPL_AUX_NA_SPEC(3, inherit3)
 
 template<
       typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
@@ -76,14 +76,14 @@
         , T4
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           4
         , inherit4
         , ( T1, T2, T3, T4)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC(4, inherit4)
+NDNBOOST_MPL_AUX_NA_SPEC(4, inherit4)
 
 template<
       typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
@@ -97,14 +97,14 @@
         , T5
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , inherit5
         , ( T1, T2, T3, T4, T5)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC(5, inherit5)
+NDNBOOST_MPL_AUX_NA_SPEC(5, inherit5)
 
 /// primary template
 
@@ -134,8 +134,8 @@
     };
 };
 
-BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit)
+NDNBOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit)
+NDNBOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit)
+NDNBOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit)
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/iter_fold_if_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/iter_fold_if_impl.hpp
index b0a2864..a74bd83 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/iter_fold_if_impl.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/dmc/iter_fold_if_impl.hpp
@@ -61,7 +61,7 @@
 {
     typedef typename apply2< Predicate,State,Iterator >::type not_last;
     typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
+          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
         >::template result_< Iterator,State,ForwardOp, mpl::next<Iterator> > impl_;
 
     typedef typename impl_::state state;
@@ -78,7 +78,7 @@
 {
     typedef typename apply2< Predicate,State,Iterator >::type not_last;
     typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
+          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
         >::template result_< Iterator,State,BackwardOp, identity<Iterator> > impl_;
 
     typedef typename impl_::state state;
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/lambda_no_ctps.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/lambda_no_ctps.hpp
index 5bfc661..45f5f6b 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/lambda_no_ctps.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/dmc/lambda_no_ctps.hpp
@@ -44,7 +44,7 @@
         typedef lambda< typename F::arg1, Tag, false_ > l1;
         typedef typename l1::is_le is_le1;
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
             > is_le;
 
         typedef bind1<
@@ -74,7 +74,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
             > is_le;
 
         typedef bind2<
@@ -106,7 +106,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value
             > is_le;
 
         typedef bind3<
@@ -140,7 +140,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value
             > is_le;
 
         typedef bind4<
@@ -177,7 +177,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value
             > is_le;
 
         typedef bind5<
@@ -212,10 +212,10 @@
 
     typedef typename l_::type type;
     typedef typename l_::is_le is_le;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
 };
 
-BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
+NDNBOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
 
 template<
       typename T
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/less.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/less.hpp
index 7139b79..a4b8eeb 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/less.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/dmc/less.hpp
@@ -17,8 +17,8 @@
     >
 struct less_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct less
 
@@ -71,11 +71,11 @@
         , typename less_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less)
 
 }}
 
@@ -86,7 +86,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value > NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/less_equal.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/less_equal.hpp
index f7c3491..5cd141b 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/less_equal.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/dmc/less_equal.hpp
@@ -17,8 +17,8 @@
     >
 struct less_equal_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct less_equal
 
@@ -71,11 +71,11 @@
         , typename less_equal_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
 
 }}
 
@@ -86,7 +86,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value <= NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/minus.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/minus.hpp
index ae6b592..454fda8 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/minus.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/dmc/minus.hpp
@@ -17,8 +17,8 @@
     >
 struct minus_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,14 +61,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct minus
     : minus< minus< minus< minus< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , minus
         , ( N1, N2, N3, N4, N5 )
@@ -82,7 +82,7 @@
 
     : minus< minus< minus< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , minus
         , ( N1, N2, N3, N4, na )
@@ -96,7 +96,7 @@
 
     : minus< minus< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , minus
         , ( N1, N2, N3, na, na )
@@ -112,7 +112,7 @@
         , typename minus_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , minus
         , ( N1, N2, na, na, na )
@@ -120,7 +120,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
 
 }}
 
@@ -135,8 +135,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  - BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  - NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/modulus.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/modulus.hpp
index 89c6172..3e89691 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/modulus.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/dmc/modulus.hpp
@@ -17,8 +17,8 @@
     >
 struct modulus_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct modulus
 
@@ -71,11 +71,11 @@
         , typename modulus_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
 
 }}
 
@@ -90,8 +90,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  % BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  % NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/not_equal_to.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/not_equal_to.hpp
index b28e100..6de1e16 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/not_equal_to.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/dmc/not_equal_to.hpp
@@ -17,8 +17,8 @@
     >
 struct not_equal_to_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct not_equal_to
 
@@ -71,11 +71,11 @@
         , typename not_equal_to_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
 
 }}
 
@@ -86,7 +86,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value != NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/or.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/or.hpp
index e929602..cae8edf 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/or.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/dmc/or.hpp
@@ -22,7 +22,7 @@
 template< typename T1, typename T2, typename T3, typename T4 >
 struct or_impl< false,T1,T2,T3,T4 >
     : or_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
         , T2, T3, T4
         , false_
         >
@@ -41,26 +41,26 @@
 } // namespace aux
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
     , typename T3 = false_, typename T4 = false_, typename T5 = false_
     >
 struct or_
 
     : aux::or_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
         , T2, T3, T4, T5
         >
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , or_
         , ( T1, T2, T3, T4, T5)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC2(
+NDNBOOST_MPL_AUX_NA_SPEC2(
       2
     , 5
     , or_
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/placeholders.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/placeholders.hpp
index ecd4514..3a28c09 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/placeholders.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/dmc/placeholders.hpp
@@ -10,96 +10,96 @@
 // Preprocessed version of "ndnboost/mpl/placeholders.hpp" header
 // -- DO NOT modify by hand!
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg< -1 > _;
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
 }
 
 }}
 
 /// agurt, 17/mar/02: one more placeholder for the last 'apply#' 
 /// specialization
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<1> _1;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<2> _2;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<3> _3;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<4> _4;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<5> _5;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<6> _6;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6;
 }
 
 }}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/plus.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/plus.hpp
index de03e3e..5d8b2cd 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/plus.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/dmc/plus.hpp
@@ -17,8 +17,8 @@
     >
 struct plus_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,14 +61,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct plus
     : plus< plus< plus< plus< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , plus
         , ( N1, N2, N3, N4, N5 )
@@ -82,7 +82,7 @@
 
     : plus< plus< plus< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , plus
         , ( N1, N2, N3, N4, na )
@@ -96,7 +96,7 @@
 
     : plus< plus< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , plus
         , ( N1, N2, N3, na, na )
@@ -112,7 +112,7 @@
         , typename plus_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , plus
         , ( N1, N2, na, na, na )
@@ -120,7 +120,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
 
 }}
 
@@ -135,8 +135,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  + BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  + NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/shift_left.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/shift_left.hpp
index c8df29c..2964fb8 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/shift_left.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/dmc/shift_left.hpp
@@ -18,8 +18,8 @@
     >
 struct shift_left_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< shift_left_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,8 +62,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct shift_left
 
@@ -72,11 +72,11 @@
         , typename shift_left_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
 
 }}
 
@@ -88,8 +88,8 @@
 
         : integral_c<
               typename N::value_type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N)::value
-                  << BOOST_MPL_AUX_VALUE_WKND(S)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N)::value
+                  << NDNBOOST_MPL_AUX_VALUE_WKND(S)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/shift_right.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/shift_right.hpp
index a726ff1..57a5fe0 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/shift_right.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/dmc/shift_right.hpp
@@ -18,8 +18,8 @@
     >
 struct shift_right_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< shift_right_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,8 +62,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct shift_right
 
@@ -72,11 +72,11 @@
         , typename shift_right_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
 
 }}
 
@@ -88,8 +88,8 @@
 
         : integral_c<
               typename N::value_type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N)::value
-                  >> BOOST_MPL_AUX_VALUE_WKND(S)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N)::value
+                  >> NDNBOOST_MPL_AUX_VALUE_WKND(S)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/times.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/times.hpp
index f4514e5..9a55fed 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/times.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/dmc/times.hpp
@@ -17,8 +17,8 @@
     >
 struct times_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,14 +61,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct times
     : times< times< times< times< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , times
         , ( N1, N2, N3, N4, N5 )
@@ -82,7 +82,7 @@
 
     : times< times< times< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , times
         , ( N1, N2, N3, N4, na )
@@ -96,7 +96,7 @@
 
     : times< times< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , times
         , ( N1, N2, N3, na, na )
@@ -112,7 +112,7 @@
         , typename times_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , times
         , ( N1, N2, na, na, na )
@@ -120,7 +120,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, times)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, times)
 
 }}
 
@@ -135,8 +135,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  * BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  * NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/unpack_args.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/unpack_args.hpp
index 9c9204f..aec31af 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/unpack_args.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/dmc/unpack_args.hpp
@@ -88,7 +88,7 @@
     };
 };
 
-BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
+NDNBOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
 
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/and.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/and.hpp
index 24b88d8..5c1b95a 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/and.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/gcc/and.hpp
@@ -22,7 +22,7 @@
 template< typename T1, typename T2, typename T3, typename T4 >
 struct and_impl< true,T1,T2,T3,T4 >
     : and_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
         , T2, T3, T4
         , true_
         >
@@ -41,26 +41,26 @@
 } // namespace aux
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
     , typename T3 = true_, typename T4 = true_, typename T5 = true_
     >
 struct and_
 
     : aux::and_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
         , T2, T3, T4, T5
         >
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , and_
         , ( T1, T2, T3, T4, T5)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC2(
+NDNBOOST_MPL_AUX_NA_SPEC2(
       2
     , 5
     , and_
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/apply.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/apply.hpp
index e4b1cd2..80f72b0 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/apply.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/gcc/apply.hpp
@@ -21,7 +21,7 @@
        
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           1
         , apply0
         , (F )
@@ -46,7 +46,7 @@
         , T1
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           2
         , apply1
         , (F, T1)
@@ -71,7 +71,7 @@
         , T1, T2
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           3
         , apply2
         , (F, T1, T2)
@@ -96,7 +96,7 @@
         , T1, T2, T3
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           4
         , apply3
         , (F, T1, T2, T3)
@@ -121,7 +121,7 @@
         , T1, T2, T3, T4
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , apply4
         , (F, T1, T2, T3, T4)
@@ -147,7 +147,7 @@
         , T1, T2, T3, T4, T5
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           6
         , apply5
         , (F, T1, T2, T3, T4, T5)
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/arg.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/arg.hpp
index 9a157c2..154476a 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/arg.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/gcc/arg.hpp
@@ -10,12 +10,12 @@
 // Preprocessed version of "ndnboost/mpl/arg.hpp" header
 // -- DO NOT modify by hand!
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 template<> struct arg< -1 >
 {
-    BOOST_STATIC_CONSTANT(int, value  = -1);
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_STATIC_CONSTANT(int, value  = -1);
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -24,16 +24,16 @@
     struct apply
     {
         typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<1>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 1);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 1);
     typedef arg<2> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -42,16 +42,16 @@
     struct apply
     {
         typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<2>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 2);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 2);
     typedef arg<3> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -60,16 +60,16 @@
     struct apply
     {
         typedef U2 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<3>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 3);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 3);
     typedef arg<4> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -78,16 +78,16 @@
     struct apply
     {
         typedef U3 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<4>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 4);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 4);
     typedef arg<5> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -96,16 +96,16 @@
     struct apply
     {
         typedef U4 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<5>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 5);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 5);
     typedef arg<6> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -114,10 +114,10 @@
     struct apply
     {
         typedef U5 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
-BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
+NDNBOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/basic_bind.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/basic_bind.hpp
index a2a565e..8e0bf73 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/basic_bind.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/gcc/basic_bind.hpp
@@ -82,8 +82,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
 
 template<
       typename F
@@ -133,8 +133,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
 
 template<
       typename F, typename T1
@@ -185,8 +185,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
 
 template<
       typename F, typename T1, typename T2
@@ -238,8 +238,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
 
 template<
       typename F, typename T1, typename T2, typename T3
@@ -293,8 +293,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
 
 template<
       typename F, typename T1, typename T2, typename T3, typename T4
@@ -351,8 +351,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
 
 /// primary template (not a specialization!)
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/bind.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/bind.hpp
index f2cde5a..45cfc67 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/bind.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/gcc/bind.hpp
@@ -104,8 +104,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
 
 template<
       typename F
@@ -162,8 +162,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
 
 template<
       typename F, typename T1
@@ -225,8 +225,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
 
 template<
       typename F, typename T1, typename T2
@@ -293,8 +293,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
 
 template<
       typename F, typename T1, typename T2, typename T3
@@ -367,8 +367,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
 
 template<
       typename F, typename T1, typename T2, typename T3, typename T4
@@ -448,8 +448,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
 
 /// primary template (not a specialization!)
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/bitand.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/bitand.hpp
index 90e8593..cd8cc5c 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/bitand.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/gcc/bitand.hpp
@@ -18,8 +18,8 @@
     >
 struct bitand_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,14 +62,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct bitand_
     : bitand_< bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , bitand_
         , ( N1, N2, N3, N4, N5 )
@@ -83,7 +83,7 @@
 
     : bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitand_
         , ( N1, N2, N3, N4, na )
@@ -97,7 +97,7 @@
 
     : bitand_< bitand_< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitand_
         , ( N1, N2, N3, na, na )
@@ -113,7 +113,7 @@
         , typename bitand_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitand_
         , ( N1, N2, na, na, na )
@@ -121,7 +121,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
 
 }}
 
@@ -136,8 +136,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  & BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  & NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/bitor.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/bitor.hpp
index c71a8f4..e98247b 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/bitor.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/gcc/bitor.hpp
@@ -18,8 +18,8 @@
     >
 struct bitor_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,14 +62,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct bitor_
     : bitor_< bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , bitor_
         , ( N1, N2, N3, N4, N5 )
@@ -83,7 +83,7 @@
 
     : bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitor_
         , ( N1, N2, N3, N4, na )
@@ -97,7 +97,7 @@
 
     : bitor_< bitor_< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitor_
         , ( N1, N2, N3, na, na )
@@ -113,7 +113,7 @@
         , typename bitor_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitor_
         , ( N1, N2, na, na, na )
@@ -121,7 +121,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
 
 }}
 
@@ -136,8 +136,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  | BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  | NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/bitxor.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/bitxor.hpp
index b7f0ce7..1f276b7 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/bitxor.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/gcc/bitxor.hpp
@@ -18,8 +18,8 @@
     >
 struct bitxor_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,14 +62,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct bitxor_
     : bitxor_< bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , bitxor_
         , ( N1, N2, N3, N4, N5 )
@@ -83,7 +83,7 @@
 
     : bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitxor_
         , ( N1, N2, N3, N4, na )
@@ -97,7 +97,7 @@
 
     : bitxor_< bitxor_< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitxor_
         , ( N1, N2, N3, na, na )
@@ -113,7 +113,7 @@
         , typename bitxor_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitxor_
         , ( N1, N2, na, na, na )
@@ -121,7 +121,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
 
 }}
 
@@ -136,8 +136,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  ^ BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  ^ NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/divides.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/divides.hpp
index 0f5415c..1bc4433 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/divides.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/gcc/divides.hpp
@@ -17,8 +17,8 @@
     >
 struct divides_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,14 +61,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct divides
     : divides< divides< divides< divides< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , divides
         , ( N1, N2, N3, N4, N5 )
@@ -82,7 +82,7 @@
 
     : divides< divides< divides< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , divides
         , ( N1, N2, N3, N4, na )
@@ -96,7 +96,7 @@
 
     : divides< divides< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , divides
         , ( N1, N2, N3, na, na )
@@ -112,7 +112,7 @@
         , typename divides_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , divides
         , ( N1, N2, na, na, na )
@@ -120,7 +120,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
 
 }}
 
@@ -135,8 +135,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  / BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  / NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/equal_to.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/equal_to.hpp
index 0d02da4..6455885 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/equal_to.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/gcc/equal_to.hpp
@@ -17,8 +17,8 @@
     >
 struct equal_to_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct equal_to
 
@@ -71,11 +71,11 @@
         , typename equal_to_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
 
 }}
 
@@ -86,7 +86,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value  == BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value  == NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/full_lambda.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/full_lambda.hpp
index dcea342..3acbd9f 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/full_lambda.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/gcc/full_lambda.hpp
@@ -552,7 +552,7 @@
     typedef typename le_result_::type type;
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 3, lambda)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 3, lambda)
 
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/greater.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/greater.hpp
index e05fa3c..a7eb4a4 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/greater.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/gcc/greater.hpp
@@ -17,8 +17,8 @@
     >
 struct greater_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct greater
 
@@ -71,11 +71,11 @@
         , typename greater_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
 
 }}
 
@@ -86,7 +86,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value > NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/greater_equal.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/greater_equal.hpp
index f89a587..35bd413 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/greater_equal.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/gcc/greater_equal.hpp
@@ -17,8 +17,8 @@
     >
 struct greater_equal_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct greater_equal
 
@@ -71,11 +71,11 @@
         , typename greater_equal_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
 
 }}
 
@@ -86,7 +86,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value >= NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/inherit.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/inherit.hpp
index 41f387f..a97f313 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/inherit.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/gcc/inherit.hpp
@@ -12,38 +12,38 @@
 namespace ndnboost { namespace mpl {
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
     >
 struct inherit2
     : T1, T2
 {
     typedef inherit2 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
 };
 
 template< typename T1 >
 struct inherit2< T1,empty_base >
 {
     typedef T1 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base))
 };
 
 template< typename T2 >
 struct inherit2< empty_base,T2 >
 {
     typedef T2 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2))
 };
 
 template<>
 struct inherit2< empty_base,empty_base >
 {
     typedef empty_base type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base))
 };
 
-BOOST_MPL_AUX_NA_SPEC(2, inherit2)
+NDNBOOST_MPL_AUX_NA_SPEC(2, inherit2)
 
 template<
       typename T1 = na, typename T2 = na, typename T3 = na
@@ -56,14 +56,14 @@
         , T3
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           3
         , inherit3
         , ( T1, T2, T3)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC(3, inherit3)
+NDNBOOST_MPL_AUX_NA_SPEC(3, inherit3)
 
 template<
       typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
@@ -76,14 +76,14 @@
         , T4
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           4
         , inherit4
         , ( T1, T2, T3, T4)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC(4, inherit4)
+NDNBOOST_MPL_AUX_NA_SPEC(4, inherit4)
 
 template<
       typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
@@ -97,14 +97,14 @@
         , T5
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , inherit5
         , ( T1, T2, T3, T4, T5)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC(5, inherit5)
+NDNBOOST_MPL_AUX_NA_SPEC(5, inherit5)
 
 /// primary template
 
@@ -134,8 +134,8 @@
     };
 };
 
-BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit)
+NDNBOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit)
+NDNBOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit)
+NDNBOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit)
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp
index b0a2864..a74bd83 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp
@@ -61,7 +61,7 @@
 {
     typedef typename apply2< Predicate,State,Iterator >::type not_last;
     typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
+          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
         >::template result_< Iterator,State,ForwardOp, mpl::next<Iterator> > impl_;
 
     typedef typename impl_::state state;
@@ -78,7 +78,7 @@
 {
     typedef typename apply2< Predicate,State,Iterator >::type not_last;
     typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
+          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
         >::template result_< Iterator,State,BackwardOp, identity<Iterator> > impl_;
 
     typedef typename impl_::state state;
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/lambda_no_ctps.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/lambda_no_ctps.hpp
index 5bfc661..45f5f6b 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/lambda_no_ctps.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/gcc/lambda_no_ctps.hpp
@@ -44,7 +44,7 @@
         typedef lambda< typename F::arg1, Tag, false_ > l1;
         typedef typename l1::is_le is_le1;
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
             > is_le;
 
         typedef bind1<
@@ -74,7 +74,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
             > is_le;
 
         typedef bind2<
@@ -106,7 +106,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value
             > is_le;
 
         typedef bind3<
@@ -140,7 +140,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value
             > is_le;
 
         typedef bind4<
@@ -177,7 +177,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value
             > is_le;
 
         typedef bind5<
@@ -212,10 +212,10 @@
 
     typedef typename l_::type type;
     typedef typename l_::is_le is_le;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
 };
 
-BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
+NDNBOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
 
 template<
       typename T
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/less.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/less.hpp
index 7139b79..a4b8eeb 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/less.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/gcc/less.hpp
@@ -17,8 +17,8 @@
     >
 struct less_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct less
 
@@ -71,11 +71,11 @@
         , typename less_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less)
 
 }}
 
@@ -86,7 +86,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value > NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/less_equal.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/less_equal.hpp
index f7c3491..5cd141b 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/less_equal.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/gcc/less_equal.hpp
@@ -17,8 +17,8 @@
     >
 struct less_equal_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct less_equal
 
@@ -71,11 +71,11 @@
         , typename less_equal_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
 
 }}
 
@@ -86,7 +86,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value <= NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/minus.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/minus.hpp
index ae6b592..454fda8 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/minus.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/gcc/minus.hpp
@@ -17,8 +17,8 @@
     >
 struct minus_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,14 +61,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct minus
     : minus< minus< minus< minus< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , minus
         , ( N1, N2, N3, N4, N5 )
@@ -82,7 +82,7 @@
 
     : minus< minus< minus< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , minus
         , ( N1, N2, N3, N4, na )
@@ -96,7 +96,7 @@
 
     : minus< minus< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , minus
         , ( N1, N2, N3, na, na )
@@ -112,7 +112,7 @@
         , typename minus_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , minus
         , ( N1, N2, na, na, na )
@@ -120,7 +120,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
 
 }}
 
@@ -135,8 +135,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  - BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  - NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/modulus.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/modulus.hpp
index 89c6172..3e89691 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/modulus.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/gcc/modulus.hpp
@@ -17,8 +17,8 @@
     >
 struct modulus_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct modulus
 
@@ -71,11 +71,11 @@
         , typename modulus_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
 
 }}
 
@@ -90,8 +90,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  % BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  % NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/not_equal_to.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/not_equal_to.hpp
index b28e100..6de1e16 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/not_equal_to.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/gcc/not_equal_to.hpp
@@ -17,8 +17,8 @@
     >
 struct not_equal_to_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct not_equal_to
 
@@ -71,11 +71,11 @@
         , typename not_equal_to_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
 
 }}
 
@@ -86,7 +86,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value != NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/or.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/or.hpp
index e929602..cae8edf 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/or.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/gcc/or.hpp
@@ -22,7 +22,7 @@
 template< typename T1, typename T2, typename T3, typename T4 >
 struct or_impl< false,T1,T2,T3,T4 >
     : or_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
         , T2, T3, T4
         , false_
         >
@@ -41,26 +41,26 @@
 } // namespace aux
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
     , typename T3 = false_, typename T4 = false_, typename T5 = false_
     >
 struct or_
 
     : aux::or_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
         , T2, T3, T4, T5
         >
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , or_
         , ( T1, T2, T3, T4, T5)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC2(
+NDNBOOST_MPL_AUX_NA_SPEC2(
       2
     , 5
     , or_
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/placeholders.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/placeholders.hpp
index ecd4514..3a28c09 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/placeholders.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/gcc/placeholders.hpp
@@ -10,96 +10,96 @@
 // Preprocessed version of "ndnboost/mpl/placeholders.hpp" header
 // -- DO NOT modify by hand!
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg< -1 > _;
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
 }
 
 }}
 
 /// agurt, 17/mar/02: one more placeholder for the last 'apply#' 
 /// specialization
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<1> _1;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<2> _2;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<3> _3;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<4> _4;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<5> _5;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<6> _6;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6;
 }
 
 }}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/plus.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/plus.hpp
index de03e3e..5d8b2cd 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/plus.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/gcc/plus.hpp
@@ -17,8 +17,8 @@
     >
 struct plus_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,14 +61,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct plus
     : plus< plus< plus< plus< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , plus
         , ( N1, N2, N3, N4, N5 )
@@ -82,7 +82,7 @@
 
     : plus< plus< plus< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , plus
         , ( N1, N2, N3, N4, na )
@@ -96,7 +96,7 @@
 
     : plus< plus< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , plus
         , ( N1, N2, N3, na, na )
@@ -112,7 +112,7 @@
         , typename plus_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , plus
         , ( N1, N2, na, na, na )
@@ -120,7 +120,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
 
 }}
 
@@ -135,8 +135,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  + BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  + NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/shift_left.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/shift_left.hpp
index c8df29c..2964fb8 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/shift_left.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/gcc/shift_left.hpp
@@ -18,8 +18,8 @@
     >
 struct shift_left_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< shift_left_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,8 +62,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct shift_left
 
@@ -72,11 +72,11 @@
         , typename shift_left_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
 
 }}
 
@@ -88,8 +88,8 @@
 
         : integral_c<
               typename N::value_type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N)::value
-                  << BOOST_MPL_AUX_VALUE_WKND(S)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N)::value
+                  << NDNBOOST_MPL_AUX_VALUE_WKND(S)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/shift_right.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/shift_right.hpp
index a726ff1..57a5fe0 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/shift_right.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/gcc/shift_right.hpp
@@ -18,8 +18,8 @@
     >
 struct shift_right_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< shift_right_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,8 +62,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct shift_right
 
@@ -72,11 +72,11 @@
         , typename shift_right_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
 
 }}
 
@@ -88,8 +88,8 @@
 
         : integral_c<
               typename N::value_type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N)::value
-                  >> BOOST_MPL_AUX_VALUE_WKND(S)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N)::value
+                  >> NDNBOOST_MPL_AUX_VALUE_WKND(S)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/template_arity.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/template_arity.hpp
index d929799..32ba0ac 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/template_arity.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/gcc/template_arity.hpp
@@ -20,7 +20,7 @@
     >
 struct max_arity
 {
-    BOOST_STATIC_CONSTANT(int, value =
+    NDNBOOST_STATIC_CONSTANT(int, value =
           ( C6 > 0 ? C6 : ( C5 > 0 ? C5 : ( C4 > 0 ? C4 : ( C3 > 0 ? C3 : ( C2 > 0 ? C2 : ( C1 > 0 ? C1 : -1 ) ) ) ) ) )
         );
 };
@@ -80,7 +80,7 @@
 template< typename F, int N >
 struct template_arity_impl
 {
-    BOOST_STATIC_CONSTANT(int, value =
+    NDNBOOST_STATIC_CONSTANT(int, value =
           sizeof(::ndnboost::mpl::aux::arity_helper(type_wrapper<F>(), arity_tag<N>())) - 1
         );
 };
@@ -88,7 +88,7 @@
 template< typename F >
 struct template_arity
 {
-    BOOST_STATIC_CONSTANT(int, value  = (
+    NDNBOOST_STATIC_CONSTANT(int, value  = (
           max_arity< template_arity_impl< F,1 >::value, template_arity_impl< F,2 >::value, template_arity_impl< F,3 >::value, template_arity_impl< F,4 >::value, template_arity_impl< F,5 >::value, template_arity_impl< F,6 >::value >::value
         ));
     typedef mpl::int_<value> type;
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/times.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/times.hpp
index f4514e5..9a55fed 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/times.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/gcc/times.hpp
@@ -17,8 +17,8 @@
     >
 struct times_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,14 +61,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct times
     : times< times< times< times< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , times
         , ( N1, N2, N3, N4, N5 )
@@ -82,7 +82,7 @@
 
     : times< times< times< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , times
         , ( N1, N2, N3, N4, na )
@@ -96,7 +96,7 @@
 
     : times< times< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , times
         , ( N1, N2, N3, na, na )
@@ -112,7 +112,7 @@
         , typename times_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , times
         , ( N1, N2, na, na, na )
@@ -120,7 +120,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, times)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, times)
 
 }}
 
@@ -135,8 +135,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  * BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  * NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/unpack_args.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/unpack_args.hpp
index 9c9204f..aec31af 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/unpack_args.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/gcc/unpack_args.hpp
@@ -88,7 +88,7 @@
     };
 };
 
-BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
+NDNBOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
 
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/and.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/and.hpp
index 2ae4e3b..d69b940 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/and.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc60/and.hpp
@@ -30,7 +30,7 @@
         >
     struct result_
         : and_impl<
-              BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+              NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
             >::template result_< T2,T3,T4,true_ >
     {
     };
@@ -46,25 +46,25 @@
 } // namespace aux
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
     , typename T3 = true_, typename T4 = true_, typename T5 = true_
     >
 struct and_
 
     : aux::and_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
         >::template result_< T2,T3,T4,T5 >
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , and_
         , ( T1, T2, T3, T4, T5)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC2(
+NDNBOOST_MPL_AUX_NA_SPEC2(
       2
     , 5
     , and_
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/apply.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/apply.hpp
index 75fb383..ed5c472 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/apply.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc60/apply.hpp
@@ -22,7 +22,7 @@
        
         >::type type;
 
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           1
         , apply0
         , (F )
@@ -47,7 +47,7 @@
         , T1
         >::type type;
 
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           2
         , apply1
         , (F, T1)
@@ -72,7 +72,7 @@
         , T1, T2
         >::type type;
 
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           3
         , apply2
         , (F, T1, T2)
@@ -97,7 +97,7 @@
         , T1, T2, T3
         >::type type;
 
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           4
         , apply3
         , (F, T1, T2, T3)
@@ -122,7 +122,7 @@
         , T1, T2, T3, T4
         >::type type;
 
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , apply4
         , (F, T1, T2, T3, T4)
@@ -148,7 +148,7 @@
         , T1, T2, T3, T4, T5
         >::type type;
 
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           6
         , apply5
         , (F, T1, T2, T3, T4, T5)
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/arg.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/arg.hpp
index 9a157c2..154476a 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/arg.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc60/arg.hpp
@@ -10,12 +10,12 @@
 // Preprocessed version of "ndnboost/mpl/arg.hpp" header
 // -- DO NOT modify by hand!
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 template<> struct arg< -1 >
 {
-    BOOST_STATIC_CONSTANT(int, value  = -1);
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_STATIC_CONSTANT(int, value  = -1);
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -24,16 +24,16 @@
     struct apply
     {
         typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<1>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 1);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 1);
     typedef arg<2> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -42,16 +42,16 @@
     struct apply
     {
         typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<2>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 2);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 2);
     typedef arg<3> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -60,16 +60,16 @@
     struct apply
     {
         typedef U2 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<3>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 3);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 3);
     typedef arg<4> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -78,16 +78,16 @@
     struct apply
     {
         typedef U3 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<4>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 4);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 4);
     typedef arg<5> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -96,16 +96,16 @@
     struct apply
     {
         typedef U4 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<5>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 5);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 5);
     typedef arg<6> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -114,10 +114,10 @@
     struct apply
     {
         typedef U5 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
-BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
+NDNBOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/basic_bind.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/basic_bind.hpp
index 9b68023..8494a26 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/basic_bind.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc60/basic_bind.hpp
@@ -67,7 +67,7 @@
 {
     template< typename T > struct result_
     {
-        BOOST_STATIC_CONSTANT(bool, value  = false);
+        NDNBOOST_STATIC_CONSTANT(bool, value  = false);
     };
 };
 
@@ -76,7 +76,7 @@
 {
     template< typename T > struct result_
     {
-        BOOST_STATIC_CONSTANT(bool, value =
+        NDNBOOST_STATIC_CONSTANT(bool, value =
               sizeof(aux::is_bind_helper(static_cast<T*>(0)))
                 == sizeof(aux::yes_tag)
             );
@@ -123,8 +123,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
 
 template<
       typename F, typename T1
@@ -160,8 +160,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
 
 template<
       typename F, typename T1, typename T2
@@ -198,8 +198,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
 
 template<
       typename F, typename T1, typename T2, typename T3
@@ -237,8 +237,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
 
 template<
       typename F, typename T1, typename T2, typename T3, typename T4
@@ -278,8 +278,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
 
 template<
       typename F, typename T1, typename T2, typename T3, typename T4
@@ -322,7 +322,7 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/bind.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/bind.hpp
index 1c3b8d8..92a2b27 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/bind.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc60/bind.hpp
@@ -93,7 +93,7 @@
 {
     template< typename T > struct result_
     {
-        BOOST_STATIC_CONSTANT(bool, value  = false);
+        NDNBOOST_STATIC_CONSTANT(bool, value  = false);
     };
 };
 
@@ -102,7 +102,7 @@
 {
     template< typename T > struct result_
     {
-        BOOST_STATIC_CONSTANT(bool, value =
+        NDNBOOST_STATIC_CONSTANT(bool, value =
               sizeof(aux::is_bind_helper(static_cast<T*>(0)))
                 == sizeof(aux::yes_tag)
             );
@@ -152,8 +152,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
 
 template<
       typename F, typename T1
@@ -196,8 +196,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
 
 template<
       typename F, typename T1, typename T2
@@ -245,8 +245,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
 
 template<
       typename F, typename T1, typename T2, typename T3
@@ -299,8 +299,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
 
 template<
       typename F, typename T1, typename T2, typename T3, typename T4
@@ -359,8 +359,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
 
 template<
       typename F, typename T1, typename T2, typename T3, typename T4
@@ -426,7 +426,7 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/bitand.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/bitand.hpp
index b4517bc..f3eb147 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/bitand.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc60/bitand.hpp
@@ -16,8 +16,8 @@
       typename Tag1
     , typename Tag2
 
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
     >
 struct bitand_impl
     : if_c<
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -64,14 +64,14 @@
 /// forward declaration
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct bitand_2;
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct bitand_
@@ -87,7 +87,7 @@
         >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , bitand_
         , ( N1, N2, N3, N4, N5 )
@@ -109,11 +109,11 @@
         >::type >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitand_2, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitand_2, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
 
 }}
 
@@ -123,7 +123,7 @@
 template< typename T, T n1, T n2 >
 struct bitand_wknd
 {
-    BOOST_STATIC_CONSTANT(T, value  = (n1 & n2));
+    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 & n2));
     typedef integral_c< T,value > type;
 };
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/bitor.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/bitor.hpp
index a496f89..63f5a00 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/bitor.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc60/bitor.hpp
@@ -16,8 +16,8 @@
       typename Tag1
     , typename Tag2
 
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
     >
 struct bitor_impl
     : if_c<
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -64,14 +64,14 @@
 /// forward declaration
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct bitor_2;
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct bitor_
@@ -87,7 +87,7 @@
         >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , bitor_
         , ( N1, N2, N3, N4, N5 )
@@ -109,11 +109,11 @@
         >::type >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitor_2, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitor_2, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
 
 }}
 
@@ -123,7 +123,7 @@
 template< typename T, T n1, T n2 >
 struct bitor_wknd
 {
-    BOOST_STATIC_CONSTANT(T, value  = (n1 | n2));
+    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 | n2));
     typedef integral_c< T,value > type;
 };
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/bitxor.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/bitxor.hpp
index b4bf4a0..08cf7c5 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/bitxor.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc60/bitxor.hpp
@@ -16,8 +16,8 @@
       typename Tag1
     , typename Tag2
 
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
     >
 struct bitxor_impl
     : if_c<
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -64,14 +64,14 @@
 /// forward declaration
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct bitxor_2;
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct bitxor_
@@ -87,7 +87,7 @@
         >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , bitxor_
         , ( N1, N2, N3, N4, N5 )
@@ -109,11 +109,11 @@
         >::type >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitxor_2, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitxor_2, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
 
 }}
 
@@ -123,7 +123,7 @@
 template< typename T, T n1, T n2 >
 struct bitxor_wknd
 {
-    BOOST_STATIC_CONSTANT(T, value  = (n1 ^ n2));
+    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 ^ n2));
     typedef integral_c< T,value > type;
 };
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/deque.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/deque.hpp
index 8a7e2c3..ed97d82 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/deque.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc60/deque.hpp
@@ -484,13 +484,13 @@
 template< typename T >
 struct is_deque_arg
 {
-    BOOST_STATIC_CONSTANT(bool, value  = true);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
 };
 
 template<>
 struct is_deque_arg<na>
 {
-    BOOST_STATIC_CONSTANT(bool, value  = false);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
 };
 
 template<
@@ -501,7 +501,7 @@
     >
 struct deque_count_args
 {
-    BOOST_STATIC_CONSTANT(int, value =
+    NDNBOOST_STATIC_CONSTANT(int, value =
           is_deque_arg<T1>::value + is_deque_arg<T2>::value 
         + is_deque_arg<T3>::value + is_deque_arg<T4>::value 
         + is_deque_arg<T5>::value + is_deque_arg<T6>::value 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/divides.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/divides.hpp
index b5f7fdd..b6631ad 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/divides.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc60/divides.hpp
@@ -15,8 +15,8 @@
       typename Tag1
     , typename Tag2
 
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
     >
 struct divides_impl
     : if_c<
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -63,14 +63,14 @@
 /// forward declaration
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct divides2;
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct divides
@@ -86,7 +86,7 @@
         >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , divides
         , ( N1, N2, N3, N4, N5 )
@@ -108,11 +108,11 @@
         >::type >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, divides2, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, divides2, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
 
 }}
 
@@ -122,7 +122,7 @@
 template< typename T, T n1, T n2 >
 struct divides_wknd
 {
-    BOOST_STATIC_CONSTANT(T, value  = (n1 / n2));
+    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 / n2));
     typedef integral_c< T,value > type;
 };
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/equal_to.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/equal_to.hpp
index 6a72eec..2fa2cae 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/equal_to.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc60/equal_to.hpp
@@ -15,8 +15,8 @@
       typename Tag1
     , typename Tag2
 
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
     >
 struct equal_to_impl
     : if_c<
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct equal_to
     : aux::msvc_eti_base< typename apply_wrap2<
@@ -75,11 +75,11 @@
         >::type >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
 
 }}
 
@@ -91,9 +91,9 @@
     template< typename N1, typename N2 > struct apply
 
     {
-        BOOST_STATIC_CONSTANT(bool, value =
-             ( BOOST_MPL_AUX_VALUE_WKND(N1)::value ==
-             BOOST_MPL_AUX_VALUE_WKND(N2)::value )
+        NDNBOOST_STATIC_CONSTANT(bool, value =
+             ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value ==
+             NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value )
             );
         typedef bool_<value> type;
     };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/full_lambda.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/full_lambda.hpp
index de658d8..7da971e 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/full_lambda.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc60/full_lambda.hpp
@@ -548,7 +548,7 @@
     typedef typename le_result_::type type;
 };
 
-BOOST_MPL_AUX_NA_SPEC(2, lambda)
+NDNBOOST_MPL_AUX_NA_SPEC(2, lambda)
 
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/greater.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/greater.hpp
index 38ddec9..90834cf 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/greater.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc60/greater.hpp
@@ -15,8 +15,8 @@
       typename Tag1
     , typename Tag2
 
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
     >
 struct greater_impl
     : if_c<
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct greater
     : aux::msvc_eti_base< typename apply_wrap2<
@@ -75,11 +75,11 @@
         >::type >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
 
 }}
 
@@ -91,9 +91,9 @@
     template< typename N1, typename N2 > struct apply
 
     {
-        BOOST_STATIC_CONSTANT(bool, value =
-             ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >
-             BOOST_MPL_AUX_VALUE_WKND(N2)::value )
+        NDNBOOST_STATIC_CONSTANT(bool, value =
+             ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value >
+             NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value )
             );
         typedef bool_<value> type;
     };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/greater_equal.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/greater_equal.hpp
index 578e3cb..b7ca0c0 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/greater_equal.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc60/greater_equal.hpp
@@ -15,8 +15,8 @@
       typename Tag1
     , typename Tag2
 
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
     >
 struct greater_equal_impl
     : if_c<
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct greater_equal
     : aux::msvc_eti_base< typename apply_wrap2<
@@ -75,11 +75,11 @@
         >::type >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
 
 }}
 
@@ -91,9 +91,9 @@
     template< typename N1, typename N2 > struct apply
 
     {
-        BOOST_STATIC_CONSTANT(bool, value =
-             ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >=
-             BOOST_MPL_AUX_VALUE_WKND(N2)::value )
+        NDNBOOST_STATIC_CONSTANT(bool, value =
+             ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value >=
+             NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value )
             );
         typedef bool_<value> type;
     };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/inherit.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/inherit.hpp
index 12328f7..7cb0a48 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/inherit.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc60/inherit.hpp
@@ -55,8 +55,8 @@
 } // namespace aux
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
     >
 struct inherit2
     : aux::inherit2_impl<
@@ -65,10 +65,10 @@
         >::template result_< inherit2< T1,T2 >,T1, T2 >
 {
     typedef typename inherit2::type_ type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
 };
 
-BOOST_MPL_AUX_NA_SPEC(2, inherit2)
+NDNBOOST_MPL_AUX_NA_SPEC(2, inherit2)
 
 template<
       typename T1 = na, typename T2 = na, typename T3 = na
@@ -81,14 +81,14 @@
         , T3
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           3
         , inherit3
         , ( T1, T2, T3)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC(3, inherit3)
+NDNBOOST_MPL_AUX_NA_SPEC(3, inherit3)
 
 template<
       typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
@@ -101,14 +101,14 @@
         , T4
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           4
         , inherit4
         , ( T1, T2, T3, T4)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC(4, inherit4)
+NDNBOOST_MPL_AUX_NA_SPEC(4, inherit4)
 
 template<
       typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
@@ -122,14 +122,14 @@
         , T5
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , inherit5
         , ( T1, T2, T3, T4, T5)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC(5, inherit5)
+NDNBOOST_MPL_AUX_NA_SPEC(5, inherit5)
 
 /// primary template
 
@@ -159,8 +159,8 @@
     };
 };
 
-BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit)
+NDNBOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit)
+NDNBOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit)
+NDNBOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit)
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/iter_fold_if_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/iter_fold_if_impl.hpp
index b0a2864..a74bd83 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/iter_fold_if_impl.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc60/iter_fold_if_impl.hpp
@@ -61,7 +61,7 @@
 {
     typedef typename apply2< Predicate,State,Iterator >::type not_last;
     typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
+          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
         >::template result_< Iterator,State,ForwardOp, mpl::next<Iterator> > impl_;
 
     typedef typename impl_::state state;
@@ -78,7 +78,7 @@
 {
     typedef typename apply2< Predicate,State,Iterator >::type not_last;
     typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
+          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
         >::template result_< Iterator,State,BackwardOp, identity<Iterator> > impl_;
 
     typedef typename impl_::state state;
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/lambda_no_ctps.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/lambda_no_ctps.hpp
index 5bfc661..45f5f6b 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/lambda_no_ctps.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc60/lambda_no_ctps.hpp
@@ -44,7 +44,7 @@
         typedef lambda< typename F::arg1, Tag, false_ > l1;
         typedef typename l1::is_le is_le1;
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
             > is_le;
 
         typedef bind1<
@@ -74,7 +74,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
             > is_le;
 
         typedef bind2<
@@ -106,7 +106,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value
             > is_le;
 
         typedef bind3<
@@ -140,7 +140,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value
             > is_le;
 
         typedef bind4<
@@ -177,7 +177,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value
             > is_le;
 
         typedef bind5<
@@ -212,10 +212,10 @@
 
     typedef typename l_::type type;
     typedef typename l_::is_le is_le;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
 };
 
-BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
+NDNBOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
 
 template<
       typename T
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/less.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/less.hpp
index d9f73a4..05b6d10 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/less.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc60/less.hpp
@@ -15,8 +15,8 @@
       typename Tag1
     , typename Tag2
 
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
     >
 struct less_impl
     : if_c<
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct less
     : aux::msvc_eti_base< typename apply_wrap2<
@@ -75,11 +75,11 @@
         >::type >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less)
 
 }}
 
@@ -91,9 +91,9 @@
     template< typename N1, typename N2 > struct apply
 
     {
-        BOOST_STATIC_CONSTANT(bool, value =
-             ( BOOST_MPL_AUX_VALUE_WKND(N2)::value >
-             BOOST_MPL_AUX_VALUE_WKND(N1)::value )
+        NDNBOOST_STATIC_CONSTANT(bool, value =
+             ( NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value >
+             NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value )
             );
         typedef bool_<value> type;
     };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/less_equal.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/less_equal.hpp
index f203fbe..5ac2a3a 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/less_equal.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc60/less_equal.hpp
@@ -15,8 +15,8 @@
       typename Tag1
     , typename Tag2
 
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
     >
 struct less_equal_impl
     : if_c<
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct less_equal
     : aux::msvc_eti_base< typename apply_wrap2<
@@ -75,11 +75,11 @@
         >::type >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
 
 }}
 
@@ -91,9 +91,9 @@
     template< typename N1, typename N2 > struct apply
 
     {
-        BOOST_STATIC_CONSTANT(bool, value =
-             ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <=
-             BOOST_MPL_AUX_VALUE_WKND(N2)::value )
+        NDNBOOST_STATIC_CONSTANT(bool, value =
+             ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value <=
+             NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value )
             );
         typedef bool_<value> type;
     };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/list.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/list.hpp
index 63062d2..2b19e60 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/list.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc60/list.hpp
@@ -484,13 +484,13 @@
 template< typename T >
 struct is_list_arg
 {
-    BOOST_STATIC_CONSTANT(bool, value  = true);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
 };
 
 template<>
 struct is_list_arg<na>
 {
-    BOOST_STATIC_CONSTANT(bool, value  = false);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
 };
 
 template<
@@ -501,7 +501,7 @@
     >
 struct list_count_args
 {
-    BOOST_STATIC_CONSTANT(int, value =
+    NDNBOOST_STATIC_CONSTANT(int, value =
           is_list_arg<T1>::value + is_list_arg<T2>::value 
         + is_list_arg<T3>::value + is_list_arg<T4>::value 
         + is_list_arg<T5>::value + is_list_arg<T6>::value 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/list_c.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/list_c.hpp
index 010f92e..0ed7f7e 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/list_c.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc60/list_c.hpp
@@ -463,13 +463,13 @@
 template< long C >
 struct is_list_c_arg
 {
-    BOOST_STATIC_CONSTANT(bool, value  = true);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
 };
 
 template<>
 struct is_list_c_arg<LONG_MAX>
 {
-    BOOST_STATIC_CONSTANT(bool, value  = false);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
 };
 
 template<
@@ -479,7 +479,7 @@
     >
 struct list_c_count_args
 {
-    BOOST_STATIC_CONSTANT(int, value =
+    NDNBOOST_STATIC_CONSTANT(int, value =
           is_list_c_arg<C1>::value + is_list_c_arg<C2>::value 
         + is_list_c_arg<C3>::value + is_list_c_arg<C4>::value 
         + is_list_c_arg<C5>::value + is_list_c_arg<C6>::value 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/map.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/map.hpp
index 3066603..75174c8 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/map.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc60/map.hpp
@@ -484,13 +484,13 @@
 template< typename T >
 struct is_map_arg
 {
-    BOOST_STATIC_CONSTANT(bool, value  = true);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
 };
 
 template<>
 struct is_map_arg<na>
 {
-    BOOST_STATIC_CONSTANT(bool, value  = false);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
 };
 
 template<
@@ -501,7 +501,7 @@
     >
 struct map_count_args
 {
-    BOOST_STATIC_CONSTANT(int, value =
+    NDNBOOST_STATIC_CONSTANT(int, value =
           is_map_arg<T1>::value + is_map_arg<T2>::value 
         + is_map_arg<T3>::value + is_map_arg<T4>::value 
         + is_map_arg<T5>::value + is_map_arg<T6>::value 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/minus.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/minus.hpp
index dc70c44..9e3a907 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/minus.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc60/minus.hpp
@@ -15,8 +15,8 @@
       typename Tag1
     , typename Tag2
 
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
     >
 struct minus_impl
     : if_c<
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -63,14 +63,14 @@
 /// forward declaration
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct minus2;
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct minus
@@ -86,7 +86,7 @@
         >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , minus
         , ( N1, N2, N3, N4, N5 )
@@ -108,11 +108,11 @@
         >::type >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, minus2, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, minus2, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
 
 }}
 
@@ -122,7 +122,7 @@
 template< typename T, T n1, T n2 >
 struct minus_wknd
 {
-    BOOST_STATIC_CONSTANT(T, value  = (n1 - n2));
+    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 - n2));
     typedef integral_c< T,value > type;
 };
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/modulus.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/modulus.hpp
index be8eef6..0185ebf 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/modulus.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc60/modulus.hpp
@@ -15,8 +15,8 @@
       typename Tag1
     , typename Tag2
 
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
     >
 struct modulus_impl
     : if_c<
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct modulus
     : aux::msvc_eti_base< typename apply_wrap2<
@@ -75,11 +75,11 @@
         >::type >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
 
 }}
 
@@ -89,7 +89,7 @@
 template< typename T, T n1, T n2 >
 struct modulus_wknd
 {
-    BOOST_STATIC_CONSTANT(T, value  = (n1 % n2));
+    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 % n2));
     typedef integral_c< T,value > type;
 };
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/not_equal_to.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/not_equal_to.hpp
index 6a8bb75..77b0a13 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/not_equal_to.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc60/not_equal_to.hpp
@@ -15,8 +15,8 @@
       typename Tag1
     , typename Tag2
 
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
     >
 struct not_equal_to_impl
     : if_c<
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct not_equal_to
     : aux::msvc_eti_base< typename apply_wrap2<
@@ -75,11 +75,11 @@
         >::type >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
 
 }}
 
@@ -91,9 +91,9 @@
     template< typename N1, typename N2 > struct apply
 
     {
-        BOOST_STATIC_CONSTANT(bool, value =
-             ( BOOST_MPL_AUX_VALUE_WKND(N1)::value !=
-             BOOST_MPL_AUX_VALUE_WKND(N2)::value )
+        NDNBOOST_STATIC_CONSTANT(bool, value =
+             ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value !=
+             NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value )
             );
         typedef bool_<value> type;
     };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/or.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/or.hpp
index b0b3a7f..7123b8d 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/or.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc60/or.hpp
@@ -30,7 +30,7 @@
         >
     struct result_
         : or_impl<
-              BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+              NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
             >::template result_< T2,T3,T4,false_ >
     {
     };
@@ -46,25 +46,25 @@
 } // namespace aux
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
     , typename T3 = false_, typename T4 = false_, typename T5 = false_
     >
 struct or_
 
     : aux::or_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
         >::template result_< T2,T3,T4,T5 >
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , or_
         , ( T1, T2, T3, T4, T5)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC2(
+NDNBOOST_MPL_AUX_NA_SPEC2(
       2
     , 5
     , or_
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/placeholders.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/placeholders.hpp
index ecd4514..3a28c09 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/placeholders.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc60/placeholders.hpp
@@ -10,96 +10,96 @@
 // Preprocessed version of "ndnboost/mpl/placeholders.hpp" header
 // -- DO NOT modify by hand!
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg< -1 > _;
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
 }
 
 }}
 
 /// agurt, 17/mar/02: one more placeholder for the last 'apply#' 
 /// specialization
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<1> _1;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<2> _2;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<3> _3;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<4> _4;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<5> _5;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<6> _6;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6;
 }
 
 }}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/plus.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/plus.hpp
index fc8884e..697794a 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/plus.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc60/plus.hpp
@@ -15,8 +15,8 @@
       typename Tag1
     , typename Tag2
 
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
     >
 struct plus_impl
     : if_c<
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -63,14 +63,14 @@
 /// forward declaration
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct plus2;
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct plus
@@ -86,7 +86,7 @@
         >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , plus
         , ( N1, N2, N3, N4, N5 )
@@ -108,11 +108,11 @@
         >::type >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, plus2, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, plus2, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
 
 }}
 
@@ -122,7 +122,7 @@
 template< typename T, T n1, T n2 >
 struct plus_wknd
 {
-    BOOST_STATIC_CONSTANT(T, value  = (n1 + n2));
+    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 + n2));
     typedef integral_c< T,value > type;
 };
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/set.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/set.hpp
index e964879..484d53e 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/set.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc60/set.hpp
@@ -484,13 +484,13 @@
 template< typename T >
 struct is_set_arg
 {
-    BOOST_STATIC_CONSTANT(bool, value  = true);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
 };
 
 template<>
 struct is_set_arg<na>
 {
-    BOOST_STATIC_CONSTANT(bool, value  = false);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
 };
 
 template<
@@ -501,7 +501,7 @@
     >
 struct set_count_args
 {
-    BOOST_STATIC_CONSTANT(int, value =
+    NDNBOOST_STATIC_CONSTANT(int, value =
           is_set_arg<T1>::value + is_set_arg<T2>::value 
         + is_set_arg<T3>::value + is_set_arg<T4>::value 
         + is_set_arg<T5>::value + is_set_arg<T6>::value 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/set_c.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/set_c.hpp
index a9a9b18..3b5f2ab 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/set_c.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc60/set_c.hpp
@@ -463,13 +463,13 @@
 template< long C >
 struct is_set_c_arg
 {
-    BOOST_STATIC_CONSTANT(bool, value  = true);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
 };
 
 template<>
 struct is_set_c_arg<LONG_MAX>
 {
-    BOOST_STATIC_CONSTANT(bool, value  = false);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
 };
 
 template<
@@ -479,7 +479,7 @@
     >
 struct set_c_count_args
 {
-    BOOST_STATIC_CONSTANT(int, value =
+    NDNBOOST_STATIC_CONSTANT(int, value =
           is_set_c_arg<C1>::value + is_set_c_arg<C2>::value 
         + is_set_c_arg<C3>::value + is_set_c_arg<C4>::value 
         + is_set_c_arg<C5>::value + is_set_c_arg<C6>::value 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/shift_left.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/shift_left.hpp
index cc05688..e81999a 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/shift_left.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc60/shift_left.hpp
@@ -16,8 +16,8 @@
       typename Tag1
     , typename Tag2
 
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
     >
 struct shift_left_impl
     : if_c<
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,8 +62,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct shift_left
     : aux::msvc_eti_base< typename apply_wrap2<
@@ -76,11 +76,11 @@
         >::type >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
 
 }}
 
@@ -90,7 +90,7 @@
 template< typename T, typename Shift, T n, Shift s >
 struct shift_left_wknd
 {
-    BOOST_STATIC_CONSTANT(T, value  = (n << s));
+    NDNBOOST_STATIC_CONSTANT(T, value  = (n << s));
     typedef integral_c< T,value > type;
 };
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/shift_right.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/shift_right.hpp
index d663d51..3db60a6 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/shift_right.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc60/shift_right.hpp
@@ -16,8 +16,8 @@
       typename Tag1
     , typename Tag2
 
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
     >
 struct shift_right_impl
     : if_c<
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,8 +62,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct shift_right
     : aux::msvc_eti_base< typename apply_wrap2<
@@ -76,11 +76,11 @@
         >::type >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
 
 }}
 
@@ -90,7 +90,7 @@
 template< typename T, typename Shift, T n, Shift s >
 struct shift_right_wknd
 {
-    BOOST_STATIC_CONSTANT(T, value  = (n >> s));
+    NDNBOOST_STATIC_CONSTANT(T, value  = (n >> s));
     typedef integral_c< T,value > type;
 };
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/times.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/times.hpp
index ade26a2..dbecb60 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/times.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc60/times.hpp
@@ -15,8 +15,8 @@
       typename Tag1
     , typename Tag2
 
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
     >
 struct times_impl
     : if_c<
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -63,14 +63,14 @@
 /// forward declaration
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct times2;
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct times
@@ -86,7 +86,7 @@
         >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , times
         , ( N1, N2, N3, N4, N5 )
@@ -108,11 +108,11 @@
         >::type >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, times2, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, times2, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, times)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, times)
 
 }}
 
@@ -122,7 +122,7 @@
 template< typename T, T n1, T n2 >
 struct times_wknd
 {
-    BOOST_STATIC_CONSTANT(T, value  = (n1 * n2));
+    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 * n2));
     typedef integral_c< T,value > type;
 };
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/unpack_args.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/unpack_args.hpp
index bee7472..dcdb46e 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/unpack_args.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc60/unpack_args.hpp
@@ -13,7 +13,7 @@
 
 namespace aux {
 
-template< BOOST_MPL_AUX_NTTP_DECL(int, size) > struct unpack_args_impl
+template< NDNBOOST_MPL_AUX_NTTP_DECL(int, size) > struct unpack_args_impl
 {
     template< typename F, typename Args > struct apply;
 };
@@ -103,7 +103,7 @@
     };
 };
 
-BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
+NDNBOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
 
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/vector.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/vector.hpp
index bdee923..acb6704 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/vector.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc60/vector.hpp
@@ -484,13 +484,13 @@
 template< typename T >
 struct is_vector_arg
 {
-    BOOST_STATIC_CONSTANT(bool, value  = true);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
 };
 
 template<>
 struct is_vector_arg<na>
 {
-    BOOST_STATIC_CONSTANT(bool, value  = false);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
 };
 
 template<
@@ -501,7 +501,7 @@
     >
 struct vector_count_args
 {
-    BOOST_STATIC_CONSTANT(int, value =
+    NDNBOOST_STATIC_CONSTANT(int, value =
           is_vector_arg<T1>::value + is_vector_arg<T2>::value 
         + is_vector_arg<T3>::value + is_vector_arg<T4>::value 
         + is_vector_arg<T5>::value + is_vector_arg<T6>::value 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/vector_c.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/vector_c.hpp
index 7e645b9..c654c6f 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/vector_c.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc60/vector_c.hpp
@@ -463,13 +463,13 @@
 template< long C >
 struct is_vector_c_arg
 {
-    BOOST_STATIC_CONSTANT(bool, value  = true);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
 };
 
 template<>
 struct is_vector_c_arg<LONG_MAX>
 {
-    BOOST_STATIC_CONSTANT(bool, value  = false);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
 };
 
 template<
@@ -479,7 +479,7 @@
     >
 struct vector_c_count_args
 {
-    BOOST_STATIC_CONSTANT(int, value =
+    NDNBOOST_STATIC_CONSTANT(int, value =
           is_vector_c_arg<C1>::value + is_vector_c_arg<C2>::value 
         + is_vector_c_arg<C3>::value + is_vector_c_arg<C4>::value 
         + is_vector_c_arg<C5>::value + is_vector_c_arg<C6>::value 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/and.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/and.hpp
index 618f074..5da6f33 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/and.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc70/and.hpp
@@ -30,7 +30,7 @@
         >
     struct result_
         : and_impl<
-              BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+              NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
             >::template result_< T2,T3,T4,true_ >
     {
     };
@@ -44,25 +44,25 @@
 } // namespace aux
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
     , typename T3 = true_, typename T4 = true_, typename T5 = true_
     >
 struct and_
 
     : aux::and_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
         >::template result_< T2,T3,T4,T5 >
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , and_
         , ( T1, T2, T3, T4, T5)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC2(
+NDNBOOST_MPL_AUX_NA_SPEC2(
       2
     , 5
     , and_
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/apply.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/apply.hpp
index 99f1c71..b81fddc 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/apply.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc70/apply.hpp
@@ -21,7 +21,7 @@
        
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           1
         , apply0
         , (F )
@@ -45,7 +45,7 @@
         , T1
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           2
         , apply1
         , (F, T1)
@@ -69,7 +69,7 @@
         , T1, T2
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           3
         , apply2
         , (F, T1, T2)
@@ -93,7 +93,7 @@
         , T1, T2, T3
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           4
         , apply3
         , (F, T1, T2, T3)
@@ -117,7 +117,7 @@
         , T1, T2, T3, T4
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , apply4
         , (F, T1, T2, T3, T4)
@@ -142,7 +142,7 @@
         , T1, T2, T3, T4, T5
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           6
         , apply5
         , (F, T1, T2, T3, T4, T5)
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/arg.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/arg.hpp
index 9a157c2..154476a 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/arg.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc70/arg.hpp
@@ -10,12 +10,12 @@
 // Preprocessed version of "ndnboost/mpl/arg.hpp" header
 // -- DO NOT modify by hand!
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 template<> struct arg< -1 >
 {
-    BOOST_STATIC_CONSTANT(int, value  = -1);
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_STATIC_CONSTANT(int, value  = -1);
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -24,16 +24,16 @@
     struct apply
     {
         typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<1>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 1);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 1);
     typedef arg<2> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -42,16 +42,16 @@
     struct apply
     {
         typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<2>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 2);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 2);
     typedef arg<3> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -60,16 +60,16 @@
     struct apply
     {
         typedef U2 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<3>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 3);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 3);
     typedef arg<4> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -78,16 +78,16 @@
     struct apply
     {
         typedef U3 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<4>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 4);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 4);
     typedef arg<5> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -96,16 +96,16 @@
     struct apply
     {
         typedef U4 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<5>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 5);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 5);
     typedef arg<6> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -114,10 +114,10 @@
     struct apply
     {
         typedef U5 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
-BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
+NDNBOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/basic_bind.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/basic_bind.hpp
index 9b68023..8494a26 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/basic_bind.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc70/basic_bind.hpp
@@ -67,7 +67,7 @@
 {
     template< typename T > struct result_
     {
-        BOOST_STATIC_CONSTANT(bool, value  = false);
+        NDNBOOST_STATIC_CONSTANT(bool, value  = false);
     };
 };
 
@@ -76,7 +76,7 @@
 {
     template< typename T > struct result_
     {
-        BOOST_STATIC_CONSTANT(bool, value =
+        NDNBOOST_STATIC_CONSTANT(bool, value =
               sizeof(aux::is_bind_helper(static_cast<T*>(0)))
                 == sizeof(aux::yes_tag)
             );
@@ -123,8 +123,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
 
 template<
       typename F, typename T1
@@ -160,8 +160,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
 
 template<
       typename F, typename T1, typename T2
@@ -198,8 +198,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
 
 template<
       typename F, typename T1, typename T2, typename T3
@@ -237,8 +237,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
 
 template<
       typename F, typename T1, typename T2, typename T3, typename T4
@@ -278,8 +278,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
 
 template<
       typename F, typename T1, typename T2, typename T3, typename T4
@@ -322,7 +322,7 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/bind.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/bind.hpp
index 1c3b8d8..92a2b27 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/bind.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc70/bind.hpp
@@ -93,7 +93,7 @@
 {
     template< typename T > struct result_
     {
-        BOOST_STATIC_CONSTANT(bool, value  = false);
+        NDNBOOST_STATIC_CONSTANT(bool, value  = false);
     };
 };
 
@@ -102,7 +102,7 @@
 {
     template< typename T > struct result_
     {
-        BOOST_STATIC_CONSTANT(bool, value =
+        NDNBOOST_STATIC_CONSTANT(bool, value =
               sizeof(aux::is_bind_helper(static_cast<T*>(0)))
                 == sizeof(aux::yes_tag)
             );
@@ -152,8 +152,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
 
 template<
       typename F, typename T1
@@ -196,8 +196,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
 
 template<
       typename F, typename T1, typename T2
@@ -245,8 +245,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
 
 template<
       typename F, typename T1, typename T2, typename T3
@@ -299,8 +299,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
 
 template<
       typename F, typename T1, typename T2, typename T3, typename T4
@@ -359,8 +359,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
 
 template<
       typename F, typename T1, typename T2, typename T3, typename T4
@@ -426,7 +426,7 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/bitand.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/bitand.hpp
index 2a14c25..5cdfac9 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/bitand.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc70/bitand.hpp
@@ -16,8 +16,8 @@
       typename Tag1
     , typename Tag2
 
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
     >
 struct bitand_impl
     : if_c<
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -64,14 +64,14 @@
 /// forward declaration
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct bitand_2;
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct bitand_
@@ -89,7 +89,7 @@
     >
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , bitand_
         , ( N1, N2, N3, N4, N5 )
@@ -111,11 +111,11 @@
         >::type >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitand_2, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitand_2, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
 
 }}
 
@@ -125,7 +125,7 @@
 template< typename T, T n1, T n2 >
 struct bitand_wknd
 {
-    BOOST_STATIC_CONSTANT(T, value  = (n1 & n2));
+    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 & n2));
     typedef integral_c< T,value > type;
 };
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/bitor.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/bitor.hpp
index 22500fd..b5eb6bd 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/bitor.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc70/bitor.hpp
@@ -16,8 +16,8 @@
       typename Tag1
     , typename Tag2
 
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
     >
 struct bitor_impl
     : if_c<
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -64,14 +64,14 @@
 /// forward declaration
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct bitor_2;
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct bitor_
@@ -89,7 +89,7 @@
     >
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , bitor_
         , ( N1, N2, N3, N4, N5 )
@@ -111,11 +111,11 @@
         >::type >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitor_2, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitor_2, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
 
 }}
 
@@ -125,7 +125,7 @@
 template< typename T, T n1, T n2 >
 struct bitor_wknd
 {
-    BOOST_STATIC_CONSTANT(T, value  = (n1 | n2));
+    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 | n2));
     typedef integral_c< T,value > type;
 };
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/bitxor.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/bitxor.hpp
index 49eb45c..0e089a4 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/bitxor.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc70/bitxor.hpp
@@ -16,8 +16,8 @@
       typename Tag1
     , typename Tag2
 
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
     >
 struct bitxor_impl
     : if_c<
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -64,14 +64,14 @@
 /// forward declaration
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct bitxor_2;
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct bitxor_
@@ -89,7 +89,7 @@
     >
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , bitxor_
         , ( N1, N2, N3, N4, N5 )
@@ -111,11 +111,11 @@
         >::type >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitxor_2, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitxor_2, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
 
 }}
 
@@ -125,7 +125,7 @@
 template< typename T, T n1, T n2 >
 struct bitxor_wknd
 {
-    BOOST_STATIC_CONSTANT(T, value  = (n1 ^ n2));
+    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 ^ n2));
     typedef integral_c< T,value > type;
 };
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/deque.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/deque.hpp
index 8a7e2c3..ed97d82 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/deque.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc70/deque.hpp
@@ -484,13 +484,13 @@
 template< typename T >
 struct is_deque_arg
 {
-    BOOST_STATIC_CONSTANT(bool, value  = true);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
 };
 
 template<>
 struct is_deque_arg<na>
 {
-    BOOST_STATIC_CONSTANT(bool, value  = false);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
 };
 
 template<
@@ -501,7 +501,7 @@
     >
 struct deque_count_args
 {
-    BOOST_STATIC_CONSTANT(int, value =
+    NDNBOOST_STATIC_CONSTANT(int, value =
           is_deque_arg<T1>::value + is_deque_arg<T2>::value 
         + is_deque_arg<T3>::value + is_deque_arg<T4>::value 
         + is_deque_arg<T5>::value + is_deque_arg<T6>::value 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/divides.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/divides.hpp
index 118cda5..64f49c6 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/divides.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc70/divides.hpp
@@ -15,8 +15,8 @@
       typename Tag1
     , typename Tag2
 
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
     >
 struct divides_impl
     : if_c<
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -63,14 +63,14 @@
 /// forward declaration
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct divides2;
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct divides
@@ -88,7 +88,7 @@
     >
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , divides
         , ( N1, N2, N3, N4, N5 )
@@ -110,11 +110,11 @@
         >::type >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, divides2, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, divides2, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
 
 }}
 
@@ -124,7 +124,7 @@
 template< typename T, T n1, T n2 >
 struct divides_wknd
 {
-    BOOST_STATIC_CONSTANT(T, value  = (n1 / n2));
+    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 / n2));
     typedef integral_c< T,value > type;
 };
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/equal_to.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/equal_to.hpp
index 06c62ea..339f47d 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/equal_to.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc70/equal_to.hpp
@@ -15,8 +15,8 @@
       typename Tag1
     , typename Tag2
 
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
     >
 struct equal_to_impl
     : if_c<
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct equal_to
     : aux::msvc_eti_base< typename apply_wrap2<
@@ -75,11 +75,11 @@
         >::type >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
 
 }}
 
@@ -91,9 +91,9 @@
     template< typename N1, typename N2 > struct apply
 
     {
-        BOOST_STATIC_CONSTANT(bool, value =
-             ( BOOST_MPL_AUX_VALUE_WKND(N1)::value ==
-             BOOST_MPL_AUX_VALUE_WKND(N2)::value )
+        NDNBOOST_STATIC_CONSTANT(bool, value =
+             ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value ==
+             NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value )
             );
         typedef bool_<value> type;
     };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/full_lambda.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/full_lambda.hpp
index de658d8..7da971e 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/full_lambda.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc70/full_lambda.hpp
@@ -548,7 +548,7 @@
     typedef typename le_result_::type type;
 };
 
-BOOST_MPL_AUX_NA_SPEC(2, lambda)
+NDNBOOST_MPL_AUX_NA_SPEC(2, lambda)
 
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/greater.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/greater.hpp
index 6145d2b..95cc307 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/greater.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc70/greater.hpp
@@ -15,8 +15,8 @@
       typename Tag1
     , typename Tag2
 
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
     >
 struct greater_impl
     : if_c<
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct greater
     : aux::msvc_eti_base< typename apply_wrap2<
@@ -75,11 +75,11 @@
         >::type >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
 
 }}
 
@@ -91,9 +91,9 @@
     template< typename N1, typename N2 > struct apply
 
     {
-        BOOST_STATIC_CONSTANT(bool, value =
-             ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >
-             BOOST_MPL_AUX_VALUE_WKND(N2)::value )
+        NDNBOOST_STATIC_CONSTANT(bool, value =
+             ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value >
+             NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value )
             );
         typedef bool_<value> type;
     };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/greater_equal.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/greater_equal.hpp
index efaa97b..4e70274 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/greater_equal.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc70/greater_equal.hpp
@@ -15,8 +15,8 @@
       typename Tag1
     , typename Tag2
 
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
     >
 struct greater_equal_impl
     : if_c<
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct greater_equal
     : aux::msvc_eti_base< typename apply_wrap2<
@@ -75,11 +75,11 @@
         >::type >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
 
 }}
 
@@ -91,9 +91,9 @@
     template< typename N1, typename N2 > struct apply
 
     {
-        BOOST_STATIC_CONSTANT(bool, value =
-             ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >=
-             BOOST_MPL_AUX_VALUE_WKND(N2)::value )
+        NDNBOOST_STATIC_CONSTANT(bool, value =
+             ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value >=
+             NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value )
             );
         typedef bool_<value> type;
     };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/inherit.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/inherit.hpp
index 12328f7..7cb0a48 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/inherit.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc70/inherit.hpp
@@ -55,8 +55,8 @@
 } // namespace aux
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
     >
 struct inherit2
     : aux::inherit2_impl<
@@ -65,10 +65,10 @@
         >::template result_< inherit2< T1,T2 >,T1, T2 >
 {
     typedef typename inherit2::type_ type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
 };
 
-BOOST_MPL_AUX_NA_SPEC(2, inherit2)
+NDNBOOST_MPL_AUX_NA_SPEC(2, inherit2)
 
 template<
       typename T1 = na, typename T2 = na, typename T3 = na
@@ -81,14 +81,14 @@
         , T3
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           3
         , inherit3
         , ( T1, T2, T3)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC(3, inherit3)
+NDNBOOST_MPL_AUX_NA_SPEC(3, inherit3)
 
 template<
       typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
@@ -101,14 +101,14 @@
         , T4
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           4
         , inherit4
         , ( T1, T2, T3, T4)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC(4, inherit4)
+NDNBOOST_MPL_AUX_NA_SPEC(4, inherit4)
 
 template<
       typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
@@ -122,14 +122,14 @@
         , T5
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , inherit5
         , ( T1, T2, T3, T4, T5)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC(5, inherit5)
+NDNBOOST_MPL_AUX_NA_SPEC(5, inherit5)
 
 /// primary template
 
@@ -159,8 +159,8 @@
     };
 };
 
-BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit)
+NDNBOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit)
+NDNBOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit)
+NDNBOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit)
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/iter_fold_if_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/iter_fold_if_impl.hpp
index b0a2864..a74bd83 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/iter_fold_if_impl.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc70/iter_fold_if_impl.hpp
@@ -61,7 +61,7 @@
 {
     typedef typename apply2< Predicate,State,Iterator >::type not_last;
     typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
+          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
         >::template result_< Iterator,State,ForwardOp, mpl::next<Iterator> > impl_;
 
     typedef typename impl_::state state;
@@ -78,7 +78,7 @@
 {
     typedef typename apply2< Predicate,State,Iterator >::type not_last;
     typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
+          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
         >::template result_< Iterator,State,BackwardOp, identity<Iterator> > impl_;
 
     typedef typename impl_::state state;
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/lambda_no_ctps.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/lambda_no_ctps.hpp
index 5bfc661..45f5f6b 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/lambda_no_ctps.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc70/lambda_no_ctps.hpp
@@ -44,7 +44,7 @@
         typedef lambda< typename F::arg1, Tag, false_ > l1;
         typedef typename l1::is_le is_le1;
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
             > is_le;
 
         typedef bind1<
@@ -74,7 +74,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
             > is_le;
 
         typedef bind2<
@@ -106,7 +106,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value
             > is_le;
 
         typedef bind3<
@@ -140,7 +140,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value
             > is_le;
 
         typedef bind4<
@@ -177,7 +177,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value
             > is_le;
 
         typedef bind5<
@@ -212,10 +212,10 @@
 
     typedef typename l_::type type;
     typedef typename l_::is_le is_le;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
 };
 
-BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
+NDNBOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
 
 template<
       typename T
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/less.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/less.hpp
index b79a010..1a58953 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/less.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc70/less.hpp
@@ -15,8 +15,8 @@
       typename Tag1
     , typename Tag2
 
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
     >
 struct less_impl
     : if_c<
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct less
     : aux::msvc_eti_base< typename apply_wrap2<
@@ -75,11 +75,11 @@
         >::type >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less)
 
 }}
 
@@ -91,9 +91,9 @@
     template< typename N1, typename N2 > struct apply
 
     {
-        BOOST_STATIC_CONSTANT(bool, value =
-             ( BOOST_MPL_AUX_VALUE_WKND(N2)::value >
-             BOOST_MPL_AUX_VALUE_WKND(N1)::value )
+        NDNBOOST_STATIC_CONSTANT(bool, value =
+             ( NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value >
+             NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value )
             );
         typedef bool_<value> type;
     };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/less_equal.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/less_equal.hpp
index f2e2b32..4890441 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/less_equal.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc70/less_equal.hpp
@@ -15,8 +15,8 @@
       typename Tag1
     , typename Tag2
 
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
     >
 struct less_equal_impl
     : if_c<
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct less_equal
     : aux::msvc_eti_base< typename apply_wrap2<
@@ -75,11 +75,11 @@
         >::type >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
 
 }}
 
@@ -91,9 +91,9 @@
     template< typename N1, typename N2 > struct apply
 
     {
-        BOOST_STATIC_CONSTANT(bool, value =
-             ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <=
-             BOOST_MPL_AUX_VALUE_WKND(N2)::value )
+        NDNBOOST_STATIC_CONSTANT(bool, value =
+             ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value <=
+             NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value )
             );
         typedef bool_<value> type;
     };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/list.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/list.hpp
index 63062d2..2b19e60 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/list.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc70/list.hpp
@@ -484,13 +484,13 @@
 template< typename T >
 struct is_list_arg
 {
-    BOOST_STATIC_CONSTANT(bool, value  = true);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
 };
 
 template<>
 struct is_list_arg<na>
 {
-    BOOST_STATIC_CONSTANT(bool, value  = false);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
 };
 
 template<
@@ -501,7 +501,7 @@
     >
 struct list_count_args
 {
-    BOOST_STATIC_CONSTANT(int, value =
+    NDNBOOST_STATIC_CONSTANT(int, value =
           is_list_arg<T1>::value + is_list_arg<T2>::value 
         + is_list_arg<T3>::value + is_list_arg<T4>::value 
         + is_list_arg<T5>::value + is_list_arg<T6>::value 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/list_c.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/list_c.hpp
index 010f92e..0ed7f7e 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/list_c.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc70/list_c.hpp
@@ -463,13 +463,13 @@
 template< long C >
 struct is_list_c_arg
 {
-    BOOST_STATIC_CONSTANT(bool, value  = true);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
 };
 
 template<>
 struct is_list_c_arg<LONG_MAX>
 {
-    BOOST_STATIC_CONSTANT(bool, value  = false);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
 };
 
 template<
@@ -479,7 +479,7 @@
     >
 struct list_c_count_args
 {
-    BOOST_STATIC_CONSTANT(int, value =
+    NDNBOOST_STATIC_CONSTANT(int, value =
           is_list_c_arg<C1>::value + is_list_c_arg<C2>::value 
         + is_list_c_arg<C3>::value + is_list_c_arg<C4>::value 
         + is_list_c_arg<C5>::value + is_list_c_arg<C6>::value 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/map.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/map.hpp
index 3066603..75174c8 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/map.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc70/map.hpp
@@ -484,13 +484,13 @@
 template< typename T >
 struct is_map_arg
 {
-    BOOST_STATIC_CONSTANT(bool, value  = true);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
 };
 
 template<>
 struct is_map_arg<na>
 {
-    BOOST_STATIC_CONSTANT(bool, value  = false);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
 };
 
 template<
@@ -501,7 +501,7 @@
     >
 struct map_count_args
 {
-    BOOST_STATIC_CONSTANT(int, value =
+    NDNBOOST_STATIC_CONSTANT(int, value =
           is_map_arg<T1>::value + is_map_arg<T2>::value 
         + is_map_arg<T3>::value + is_map_arg<T4>::value 
         + is_map_arg<T5>::value + is_map_arg<T6>::value 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/minus.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/minus.hpp
index 910202d..b0c27aa 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/minus.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc70/minus.hpp
@@ -15,8 +15,8 @@
       typename Tag1
     , typename Tag2
 
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
     >
 struct minus_impl
     : if_c<
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -63,14 +63,14 @@
 /// forward declaration
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct minus2;
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct minus
@@ -88,7 +88,7 @@
     >
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , minus
         , ( N1, N2, N3, N4, N5 )
@@ -110,11 +110,11 @@
         >::type >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, minus2, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, minus2, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
 
 }}
 
@@ -124,7 +124,7 @@
 template< typename T, T n1, T n2 >
 struct minus_wknd
 {
-    BOOST_STATIC_CONSTANT(T, value  = (n1 - n2));
+    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 - n2));
     typedef integral_c< T,value > type;
 };
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/modulus.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/modulus.hpp
index bb8abf5..e92a207 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/modulus.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc70/modulus.hpp
@@ -15,8 +15,8 @@
       typename Tag1
     , typename Tag2
 
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
     >
 struct modulus_impl
     : if_c<
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct modulus
     : aux::msvc_eti_base< typename apply_wrap2<
@@ -75,11 +75,11 @@
         >::type >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
 
 }}
 
@@ -89,7 +89,7 @@
 template< typename T, T n1, T n2 >
 struct modulus_wknd
 {
-    BOOST_STATIC_CONSTANT(T, value  = (n1 % n2));
+    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 % n2));
     typedef integral_c< T,value > type;
 };
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/not_equal_to.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/not_equal_to.hpp
index ac8d660..f861809 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/not_equal_to.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc70/not_equal_to.hpp
@@ -15,8 +15,8 @@
       typename Tag1
     , typename Tag2
 
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
     >
 struct not_equal_to_impl
     : if_c<
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct not_equal_to
     : aux::msvc_eti_base< typename apply_wrap2<
@@ -75,11 +75,11 @@
         >::type >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
 
 }}
 
@@ -91,9 +91,9 @@
     template< typename N1, typename N2 > struct apply
 
     {
-        BOOST_STATIC_CONSTANT(bool, value =
-             ( BOOST_MPL_AUX_VALUE_WKND(N1)::value !=
-             BOOST_MPL_AUX_VALUE_WKND(N2)::value )
+        NDNBOOST_STATIC_CONSTANT(bool, value =
+             ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value !=
+             NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value )
             );
         typedef bool_<value> type;
     };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/or.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/or.hpp
index 5beec9e..e644658 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/or.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc70/or.hpp
@@ -30,7 +30,7 @@
         >
     struct result_
         : or_impl<
-              BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+              NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
             >::template result_< T2,T3,T4,false_ >
     {
     };
@@ -44,25 +44,25 @@
 } // namespace aux
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
     , typename T3 = false_, typename T4 = false_, typename T5 = false_
     >
 struct or_
 
     : aux::or_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
         >::template result_< T2,T3,T4,T5 >
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , or_
         , ( T1, T2, T3, T4, T5)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC2(
+NDNBOOST_MPL_AUX_NA_SPEC2(
       2
     , 5
     , or_
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/placeholders.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/placeholders.hpp
index ecd4514..3a28c09 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/placeholders.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc70/placeholders.hpp
@@ -10,96 +10,96 @@
 // Preprocessed version of "ndnboost/mpl/placeholders.hpp" header
 // -- DO NOT modify by hand!
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg< -1 > _;
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
 }
 
 }}
 
 /// agurt, 17/mar/02: one more placeholder for the last 'apply#' 
 /// specialization
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<1> _1;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<2> _2;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<3> _3;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<4> _4;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<5> _5;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<6> _6;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6;
 }
 
 }}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/plus.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/plus.hpp
index 32c3317..bf8ccb7 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/plus.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc70/plus.hpp
@@ -15,8 +15,8 @@
       typename Tag1
     , typename Tag2
 
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
     >
 struct plus_impl
     : if_c<
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -63,14 +63,14 @@
 /// forward declaration
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct plus2;
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct plus
@@ -88,7 +88,7 @@
     >
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , plus
         , ( N1, N2, N3, N4, N5 )
@@ -110,11 +110,11 @@
         >::type >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, plus2, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, plus2, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
 
 }}
 
@@ -124,7 +124,7 @@
 template< typename T, T n1, T n2 >
 struct plus_wknd
 {
-    BOOST_STATIC_CONSTANT(T, value  = (n1 + n2));
+    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 + n2));
     typedef integral_c< T,value > type;
 };
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/set.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/set.hpp
index e964879..484d53e 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/set.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc70/set.hpp
@@ -484,13 +484,13 @@
 template< typename T >
 struct is_set_arg
 {
-    BOOST_STATIC_CONSTANT(bool, value  = true);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
 };
 
 template<>
 struct is_set_arg<na>
 {
-    BOOST_STATIC_CONSTANT(bool, value  = false);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
 };
 
 template<
@@ -501,7 +501,7 @@
     >
 struct set_count_args
 {
-    BOOST_STATIC_CONSTANT(int, value =
+    NDNBOOST_STATIC_CONSTANT(int, value =
           is_set_arg<T1>::value + is_set_arg<T2>::value 
         + is_set_arg<T3>::value + is_set_arg<T4>::value 
         + is_set_arg<T5>::value + is_set_arg<T6>::value 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/set_c.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/set_c.hpp
index a9a9b18..3b5f2ab 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/set_c.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc70/set_c.hpp
@@ -463,13 +463,13 @@
 template< long C >
 struct is_set_c_arg
 {
-    BOOST_STATIC_CONSTANT(bool, value  = true);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
 };
 
 template<>
 struct is_set_c_arg<LONG_MAX>
 {
-    BOOST_STATIC_CONSTANT(bool, value  = false);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
 };
 
 template<
@@ -479,7 +479,7 @@
     >
 struct set_c_count_args
 {
-    BOOST_STATIC_CONSTANT(int, value =
+    NDNBOOST_STATIC_CONSTANT(int, value =
           is_set_c_arg<C1>::value + is_set_c_arg<C2>::value 
         + is_set_c_arg<C3>::value + is_set_c_arg<C4>::value 
         + is_set_c_arg<C5>::value + is_set_c_arg<C6>::value 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/shift_left.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/shift_left.hpp
index 8e7b606..0632ed1 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/shift_left.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc70/shift_left.hpp
@@ -16,8 +16,8 @@
       typename Tag1
     , typename Tag2
 
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
     >
 struct shift_left_impl
     : if_c<
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,8 +62,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct shift_left
     : aux::msvc_eti_base< typename apply_wrap2<
@@ -76,11 +76,11 @@
         >::type >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
 
 }}
 
@@ -90,7 +90,7 @@
 template< typename T, typename Shift, T n, Shift s >
 struct shift_left_wknd
 {
-    BOOST_STATIC_CONSTANT(T, value  = (n << s));
+    NDNBOOST_STATIC_CONSTANT(T, value  = (n << s));
     typedef integral_c< T,value > type;
 };
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/shift_right.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/shift_right.hpp
index 991abc9..6e43803 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/shift_right.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc70/shift_right.hpp
@@ -16,8 +16,8 @@
       typename Tag1
     , typename Tag2
 
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
     >
 struct shift_right_impl
     : if_c<
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,8 +62,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct shift_right
     : aux::msvc_eti_base< typename apply_wrap2<
@@ -76,11 +76,11 @@
         >::type >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
 
 }}
 
@@ -90,7 +90,7 @@
 template< typename T, typename Shift, T n, Shift s >
 struct shift_right_wknd
 {
-    BOOST_STATIC_CONSTANT(T, value  = (n >> s));
+    NDNBOOST_STATIC_CONSTANT(T, value  = (n >> s));
     typedef integral_c< T,value > type;
 };
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/times.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/times.hpp
index 0be0e9c..5f2f267 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/times.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc70/times.hpp
@@ -15,8 +15,8 @@
       typename Tag1
     , typename Tag2
 
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
+    , NDNBOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
     >
 struct times_impl
     : if_c<
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -63,14 +63,14 @@
 /// forward declaration
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct times2;
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct times
@@ -88,7 +88,7 @@
     >
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , times
         , ( N1, N2, N3, N4, N5 )
@@ -110,11 +110,11 @@
         >::type >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, times2, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, times2, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, times)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, times)
 
 }}
 
@@ -124,7 +124,7 @@
 template< typename T, T n1, T n2 >
 struct times_wknd
 {
-    BOOST_STATIC_CONSTANT(T, value  = (n1 * n2));
+    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 * n2));
     typedef integral_c< T,value > type;
 };
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/unpack_args.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/unpack_args.hpp
index bee7472..dcdb46e 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/unpack_args.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc70/unpack_args.hpp
@@ -13,7 +13,7 @@
 
 namespace aux {
 
-template< BOOST_MPL_AUX_NTTP_DECL(int, size) > struct unpack_args_impl
+template< NDNBOOST_MPL_AUX_NTTP_DECL(int, size) > struct unpack_args_impl
 {
     template< typename F, typename Args > struct apply;
 };
@@ -103,7 +103,7 @@
     };
 };
 
-BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
+NDNBOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
 
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/vector.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/vector.hpp
index bdee923..acb6704 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/vector.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc70/vector.hpp
@@ -484,13 +484,13 @@
 template< typename T >
 struct is_vector_arg
 {
-    BOOST_STATIC_CONSTANT(bool, value  = true);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
 };
 
 template<>
 struct is_vector_arg<na>
 {
-    BOOST_STATIC_CONSTANT(bool, value  = false);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
 };
 
 template<
@@ -501,7 +501,7 @@
     >
 struct vector_count_args
 {
-    BOOST_STATIC_CONSTANT(int, value =
+    NDNBOOST_STATIC_CONSTANT(int, value =
           is_vector_arg<T1>::value + is_vector_arg<T2>::value 
         + is_vector_arg<T3>::value + is_vector_arg<T4>::value 
         + is_vector_arg<T5>::value + is_vector_arg<T6>::value 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/vector_c.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/vector_c.hpp
index 7e645b9..c654c6f 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/vector_c.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/msvc70/vector_c.hpp
@@ -463,13 +463,13 @@
 template< long C >
 struct is_vector_c_arg
 {
-    BOOST_STATIC_CONSTANT(bool, value  = true);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
 };
 
 template<>
 struct is_vector_c_arg<LONG_MAX>
 {
-    BOOST_STATIC_CONSTANT(bool, value  = false);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
 };
 
 template<
@@ -479,7 +479,7 @@
     >
 struct vector_c_count_args
 {
-    BOOST_STATIC_CONSTANT(int, value =
+    NDNBOOST_STATIC_CONSTANT(int, value =
           is_vector_c_arg<C1>::value + is_vector_c_arg<C2>::value 
         + is_vector_c_arg<C3>::value + is_vector_c_arg<C4>::value 
         + is_vector_c_arg<C5>::value + is_vector_c_arg<C6>::value 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/and.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/and.hpp
index 24b88d8..5c1b95a 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/and.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/mwcw/and.hpp
@@ -22,7 +22,7 @@
 template< typename T1, typename T2, typename T3, typename T4 >
 struct and_impl< true,T1,T2,T3,T4 >
     : and_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
         , T2, T3, T4
         , true_
         >
@@ -41,26 +41,26 @@
 } // namespace aux
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
     , typename T3 = true_, typename T4 = true_, typename T5 = true_
     >
 struct and_
 
     : aux::and_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
         , T2, T3, T4, T5
         >
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , and_
         , ( T1, T2, T3, T4, T5)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC2(
+NDNBOOST_MPL_AUX_NA_SPEC2(
       2
     , 5
     , and_
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/apply.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/apply.hpp
index e4b1cd2..80f72b0 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/apply.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/mwcw/apply.hpp
@@ -21,7 +21,7 @@
        
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           1
         , apply0
         , (F )
@@ -46,7 +46,7 @@
         , T1
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           2
         , apply1
         , (F, T1)
@@ -71,7 +71,7 @@
         , T1, T2
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           3
         , apply2
         , (F, T1, T2)
@@ -96,7 +96,7 @@
         , T1, T2, T3
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           4
         , apply3
         , (F, T1, T2, T3)
@@ -121,7 +121,7 @@
         , T1, T2, T3, T4
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , apply4
         , (F, T1, T2, T3, T4)
@@ -147,7 +147,7 @@
         , T1, T2, T3, T4, T5
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           6
         , apply5
         , (F, T1, T2, T3, T4, T5)
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/arg.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/arg.hpp
index 9a157c2..154476a 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/arg.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/mwcw/arg.hpp
@@ -10,12 +10,12 @@
 // Preprocessed version of "ndnboost/mpl/arg.hpp" header
 // -- DO NOT modify by hand!
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 template<> struct arg< -1 >
 {
-    BOOST_STATIC_CONSTANT(int, value  = -1);
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_STATIC_CONSTANT(int, value  = -1);
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -24,16 +24,16 @@
     struct apply
     {
         typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<1>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 1);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 1);
     typedef arg<2> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -42,16 +42,16 @@
     struct apply
     {
         typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<2>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 2);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 2);
     typedef arg<3> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -60,16 +60,16 @@
     struct apply
     {
         typedef U2 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<3>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 3);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 3);
     typedef arg<4> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -78,16 +78,16 @@
     struct apply
     {
         typedef U3 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<4>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 4);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 4);
     typedef arg<5> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -96,16 +96,16 @@
     struct apply
     {
         typedef U4 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<5>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 5);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 5);
     typedef arg<6> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -114,10 +114,10 @@
     struct apply
     {
         typedef U5 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
-BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
+NDNBOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/basic_bind.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/basic_bind.hpp
index a2a565e..8e0bf73 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/basic_bind.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/mwcw/basic_bind.hpp
@@ -82,8 +82,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
 
 template<
       typename F
@@ -133,8 +133,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
 
 template<
       typename F, typename T1
@@ -185,8 +185,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
 
 template<
       typename F, typename T1, typename T2
@@ -238,8 +238,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
 
 template<
       typename F, typename T1, typename T2, typename T3
@@ -293,8 +293,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
 
 template<
       typename F, typename T1, typename T2, typename T3, typename T4
@@ -351,8 +351,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
 
 /// primary template (not a specialization!)
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/bind.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/bind.hpp
index f2cde5a..45cfc67 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/bind.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/mwcw/bind.hpp
@@ -104,8 +104,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
 
 template<
       typename F
@@ -162,8 +162,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
 
 template<
       typename F, typename T1
@@ -225,8 +225,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
 
 template<
       typename F, typename T1, typename T2
@@ -293,8 +293,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
 
 template<
       typename F, typename T1, typename T2, typename T3
@@ -367,8 +367,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
 
 template<
       typename F, typename T1, typename T2, typename T3, typename T4
@@ -448,8 +448,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
 
 /// primary template (not a specialization!)
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/bitand.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/bitand.hpp
index 90e8593..cd8cc5c 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/bitand.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/mwcw/bitand.hpp
@@ -18,8 +18,8 @@
     >
 struct bitand_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,14 +62,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct bitand_
     : bitand_< bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , bitand_
         , ( N1, N2, N3, N4, N5 )
@@ -83,7 +83,7 @@
 
     : bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitand_
         , ( N1, N2, N3, N4, na )
@@ -97,7 +97,7 @@
 
     : bitand_< bitand_< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitand_
         , ( N1, N2, N3, na, na )
@@ -113,7 +113,7 @@
         , typename bitand_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitand_
         , ( N1, N2, na, na, na )
@@ -121,7 +121,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
 
 }}
 
@@ -136,8 +136,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  & BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  & NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/bitor.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/bitor.hpp
index c71a8f4..e98247b 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/bitor.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/mwcw/bitor.hpp
@@ -18,8 +18,8 @@
     >
 struct bitor_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,14 +62,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct bitor_
     : bitor_< bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , bitor_
         , ( N1, N2, N3, N4, N5 )
@@ -83,7 +83,7 @@
 
     : bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitor_
         , ( N1, N2, N3, N4, na )
@@ -97,7 +97,7 @@
 
     : bitor_< bitor_< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitor_
         , ( N1, N2, N3, na, na )
@@ -113,7 +113,7 @@
         , typename bitor_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitor_
         , ( N1, N2, na, na, na )
@@ -121,7 +121,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
 
 }}
 
@@ -136,8 +136,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  | BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  | NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/bitxor.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/bitxor.hpp
index b7f0ce7..1f276b7 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/bitxor.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/mwcw/bitxor.hpp
@@ -18,8 +18,8 @@
     >
 struct bitxor_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,14 +62,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct bitxor_
     : bitxor_< bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , bitxor_
         , ( N1, N2, N3, N4, N5 )
@@ -83,7 +83,7 @@
 
     : bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitxor_
         , ( N1, N2, N3, N4, na )
@@ -97,7 +97,7 @@
 
     : bitxor_< bitxor_< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitxor_
         , ( N1, N2, N3, na, na )
@@ -113,7 +113,7 @@
         , typename bitxor_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitxor_
         , ( N1, N2, na, na, na )
@@ -121,7 +121,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
 
 }}
 
@@ -136,8 +136,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  ^ BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  ^ NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/divides.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/divides.hpp
index 0f5415c..1bc4433 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/divides.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/mwcw/divides.hpp
@@ -17,8 +17,8 @@
     >
 struct divides_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,14 +61,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct divides
     : divides< divides< divides< divides< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , divides
         , ( N1, N2, N3, N4, N5 )
@@ -82,7 +82,7 @@
 
     : divides< divides< divides< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , divides
         , ( N1, N2, N3, N4, na )
@@ -96,7 +96,7 @@
 
     : divides< divides< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , divides
         , ( N1, N2, N3, na, na )
@@ -112,7 +112,7 @@
         , typename divides_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , divides
         , ( N1, N2, na, na, na )
@@ -120,7 +120,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
 
 }}
 
@@ -135,8 +135,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  / BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  / NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/equal_to.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/equal_to.hpp
index 0d02da4..6455885 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/equal_to.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/mwcw/equal_to.hpp
@@ -17,8 +17,8 @@
     >
 struct equal_to_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct equal_to
 
@@ -71,11 +71,11 @@
         , typename equal_to_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
 
 }}
 
@@ -86,7 +86,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value  == BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value  == NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/full_lambda.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/full_lambda.hpp
index de658d8..7da971e 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/full_lambda.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/mwcw/full_lambda.hpp
@@ -548,7 +548,7 @@
     typedef typename le_result_::type type;
 };
 
-BOOST_MPL_AUX_NA_SPEC(2, lambda)
+NDNBOOST_MPL_AUX_NA_SPEC(2, lambda)
 
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/greater.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/greater.hpp
index e05fa3c..a7eb4a4 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/greater.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/mwcw/greater.hpp
@@ -17,8 +17,8 @@
     >
 struct greater_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct greater
 
@@ -71,11 +71,11 @@
         , typename greater_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
 
 }}
 
@@ -86,7 +86,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value > NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/greater_equal.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/greater_equal.hpp
index f89a587..35bd413 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/greater_equal.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/mwcw/greater_equal.hpp
@@ -17,8 +17,8 @@
     >
 struct greater_equal_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct greater_equal
 
@@ -71,11 +71,11 @@
         , typename greater_equal_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
 
 }}
 
@@ -86,7 +86,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value >= NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/inherit.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/inherit.hpp
index 41f387f..a97f313 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/inherit.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/mwcw/inherit.hpp
@@ -12,38 +12,38 @@
 namespace ndnboost { namespace mpl {
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
     >
 struct inherit2
     : T1, T2
 {
     typedef inherit2 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
 };
 
 template< typename T1 >
 struct inherit2< T1,empty_base >
 {
     typedef T1 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base))
 };
 
 template< typename T2 >
 struct inherit2< empty_base,T2 >
 {
     typedef T2 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2))
 };
 
 template<>
 struct inherit2< empty_base,empty_base >
 {
     typedef empty_base type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base))
 };
 
-BOOST_MPL_AUX_NA_SPEC(2, inherit2)
+NDNBOOST_MPL_AUX_NA_SPEC(2, inherit2)
 
 template<
       typename T1 = na, typename T2 = na, typename T3 = na
@@ -56,14 +56,14 @@
         , T3
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           3
         , inherit3
         , ( T1, T2, T3)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC(3, inherit3)
+NDNBOOST_MPL_AUX_NA_SPEC(3, inherit3)
 
 template<
       typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
@@ -76,14 +76,14 @@
         , T4
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           4
         , inherit4
         , ( T1, T2, T3, T4)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC(4, inherit4)
+NDNBOOST_MPL_AUX_NA_SPEC(4, inherit4)
 
 template<
       typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
@@ -97,14 +97,14 @@
         , T5
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , inherit5
         , ( T1, T2, T3, T4, T5)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC(5, inherit5)
+NDNBOOST_MPL_AUX_NA_SPEC(5, inherit5)
 
 /// primary template
 
@@ -134,8 +134,8 @@
     };
 };
 
-BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit)
+NDNBOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit)
+NDNBOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit)
+NDNBOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit)
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/iter_fold_if_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/iter_fold_if_impl.hpp
index b0a2864..a74bd83 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/iter_fold_if_impl.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/mwcw/iter_fold_if_impl.hpp
@@ -61,7 +61,7 @@
 {
     typedef typename apply2< Predicate,State,Iterator >::type not_last;
     typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
+          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
         >::template result_< Iterator,State,ForwardOp, mpl::next<Iterator> > impl_;
 
     typedef typename impl_::state state;
@@ -78,7 +78,7 @@
 {
     typedef typename apply2< Predicate,State,Iterator >::type not_last;
     typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
+          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
         >::template result_< Iterator,State,BackwardOp, identity<Iterator> > impl_;
 
     typedef typename impl_::state state;
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/lambda_no_ctps.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/lambda_no_ctps.hpp
index 5bfc661..45f5f6b 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/lambda_no_ctps.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/mwcw/lambda_no_ctps.hpp
@@ -44,7 +44,7 @@
         typedef lambda< typename F::arg1, Tag, false_ > l1;
         typedef typename l1::is_le is_le1;
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
             > is_le;
 
         typedef bind1<
@@ -74,7 +74,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
             > is_le;
 
         typedef bind2<
@@ -106,7 +106,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value
             > is_le;
 
         typedef bind3<
@@ -140,7 +140,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value
             > is_le;
 
         typedef bind4<
@@ -177,7 +177,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value
             > is_le;
 
         typedef bind5<
@@ -212,10 +212,10 @@
 
     typedef typename l_::type type;
     typedef typename l_::is_le is_le;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
 };
 
-BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
+NDNBOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
 
 template<
       typename T
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/less.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/less.hpp
index 7139b79..a4b8eeb 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/less.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/mwcw/less.hpp
@@ -17,8 +17,8 @@
     >
 struct less_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct less
 
@@ -71,11 +71,11 @@
         , typename less_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less)
 
 }}
 
@@ -86,7 +86,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value > NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/less_equal.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/less_equal.hpp
index f7c3491..5cd141b 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/less_equal.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/mwcw/less_equal.hpp
@@ -17,8 +17,8 @@
     >
 struct less_equal_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct less_equal
 
@@ -71,11 +71,11 @@
         , typename less_equal_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
 
 }}
 
@@ -86,7 +86,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value <= NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/minus.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/minus.hpp
index ae6b592..454fda8 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/minus.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/mwcw/minus.hpp
@@ -17,8 +17,8 @@
     >
 struct minus_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,14 +61,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct minus
     : minus< minus< minus< minus< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , minus
         , ( N1, N2, N3, N4, N5 )
@@ -82,7 +82,7 @@
 
     : minus< minus< minus< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , minus
         , ( N1, N2, N3, N4, na )
@@ -96,7 +96,7 @@
 
     : minus< minus< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , minus
         , ( N1, N2, N3, na, na )
@@ -112,7 +112,7 @@
         , typename minus_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , minus
         , ( N1, N2, na, na, na )
@@ -120,7 +120,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
 
 }}
 
@@ -135,8 +135,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  - BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  - NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/modulus.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/modulus.hpp
index 89c6172..3e89691 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/modulus.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/mwcw/modulus.hpp
@@ -17,8 +17,8 @@
     >
 struct modulus_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct modulus
 
@@ -71,11 +71,11 @@
         , typename modulus_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
 
 }}
 
@@ -90,8 +90,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  % BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  % NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/not_equal_to.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/not_equal_to.hpp
index b28e100..6de1e16 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/not_equal_to.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/mwcw/not_equal_to.hpp
@@ -17,8 +17,8 @@
     >
 struct not_equal_to_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct not_equal_to
 
@@ -71,11 +71,11 @@
         , typename not_equal_to_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
 
 }}
 
@@ -86,7 +86,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value != NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/or.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/or.hpp
index e929602..cae8edf 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/or.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/mwcw/or.hpp
@@ -22,7 +22,7 @@
 template< typename T1, typename T2, typename T3, typename T4 >
 struct or_impl< false,T1,T2,T3,T4 >
     : or_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
         , T2, T3, T4
         , false_
         >
@@ -41,26 +41,26 @@
 } // namespace aux
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
     , typename T3 = false_, typename T4 = false_, typename T5 = false_
     >
 struct or_
 
     : aux::or_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
         , T2, T3, T4, T5
         >
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , or_
         , ( T1, T2, T3, T4, T5)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC2(
+NDNBOOST_MPL_AUX_NA_SPEC2(
       2
     , 5
     , or_
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/placeholders.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/placeholders.hpp
index ecd4514..3a28c09 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/placeholders.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/mwcw/placeholders.hpp
@@ -10,96 +10,96 @@
 // Preprocessed version of "ndnboost/mpl/placeholders.hpp" header
 // -- DO NOT modify by hand!
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg< -1 > _;
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
 }
 
 }}
 
 /// agurt, 17/mar/02: one more placeholder for the last 'apply#' 
 /// specialization
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<1> _1;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<2> _2;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<3> _3;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<4> _4;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<5> _5;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<6> _6;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6;
 }
 
 }}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/plus.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/plus.hpp
index de03e3e..5d8b2cd 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/plus.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/mwcw/plus.hpp
@@ -17,8 +17,8 @@
     >
 struct plus_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,14 +61,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct plus
     : plus< plus< plus< plus< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , plus
         , ( N1, N2, N3, N4, N5 )
@@ -82,7 +82,7 @@
 
     : plus< plus< plus< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , plus
         , ( N1, N2, N3, N4, na )
@@ -96,7 +96,7 @@
 
     : plus< plus< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , plus
         , ( N1, N2, N3, na, na )
@@ -112,7 +112,7 @@
         , typename plus_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , plus
         , ( N1, N2, na, na, na )
@@ -120,7 +120,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
 
 }}
 
@@ -135,8 +135,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  + BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  + NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/shift_left.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/shift_left.hpp
index c8df29c..2964fb8 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/shift_left.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/mwcw/shift_left.hpp
@@ -18,8 +18,8 @@
     >
 struct shift_left_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< shift_left_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,8 +62,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct shift_left
 
@@ -72,11 +72,11 @@
         , typename shift_left_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
 
 }}
 
@@ -88,8 +88,8 @@
 
         : integral_c<
               typename N::value_type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N)::value
-                  << BOOST_MPL_AUX_VALUE_WKND(S)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N)::value
+                  << NDNBOOST_MPL_AUX_VALUE_WKND(S)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/shift_right.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/shift_right.hpp
index a726ff1..57a5fe0 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/shift_right.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/mwcw/shift_right.hpp
@@ -18,8 +18,8 @@
     >
 struct shift_right_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< shift_right_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,8 +62,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct shift_right
 
@@ -72,11 +72,11 @@
         , typename shift_right_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
 
 }}
 
@@ -88,8 +88,8 @@
 
         : integral_c<
               typename N::value_type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N)::value
-                  >> BOOST_MPL_AUX_VALUE_WKND(S)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N)::value
+                  >> NDNBOOST_MPL_AUX_VALUE_WKND(S)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/times.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/times.hpp
index f4514e5..9a55fed 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/times.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/mwcw/times.hpp
@@ -17,8 +17,8 @@
     >
 struct times_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,14 +61,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct times
     : times< times< times< times< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , times
         , ( N1, N2, N3, N4, N5 )
@@ -82,7 +82,7 @@
 
     : times< times< times< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , times
         , ( N1, N2, N3, N4, na )
@@ -96,7 +96,7 @@
 
     : times< times< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , times
         , ( N1, N2, N3, na, na )
@@ -112,7 +112,7 @@
         , typename times_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , times
         , ( N1, N2, na, na, na )
@@ -120,7 +120,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, times)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, times)
 
 }}
 
@@ -135,8 +135,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  * BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  * NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/unpack_args.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/unpack_args.hpp
index 9c9204f..aec31af 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/unpack_args.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/mwcw/unpack_args.hpp
@@ -88,7 +88,7 @@
     };
 };
 
-BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
+NDNBOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
 
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/and.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/and.hpp
index 2ae4e3b..d69b940 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/and.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/and.hpp
@@ -30,7 +30,7 @@
         >
     struct result_
         : and_impl<
-              BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+              NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
             >::template result_< T2,T3,T4,true_ >
     {
     };
@@ -46,25 +46,25 @@
 } // namespace aux
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
     , typename T3 = true_, typename T4 = true_, typename T5 = true_
     >
 struct and_
 
     : aux::and_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
         >::template result_< T2,T3,T4,T5 >
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , and_
         , ( T1, T2, T3, T4, T5)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC2(
+NDNBOOST_MPL_AUX_NA_SPEC2(
       2
     , 5
     , and_
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/apply.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/apply.hpp
index 1386c6e..3b60e0b 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/apply.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/apply.hpp
@@ -21,7 +21,7 @@
        
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           1
         , apply0
         , (F )
@@ -57,7 +57,7 @@
         , T1
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           2
         , apply1
         , (F, T1)
@@ -93,7 +93,7 @@
         , T1, T2
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           3
         , apply2
         , (F, T1, T2)
@@ -129,7 +129,7 @@
         , T1, T2, T3
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           4
         , apply3
         , (F, T1, T2, T3)
@@ -165,7 +165,7 @@
         , T1, T2, T3, T4
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , apply4
         , (F, T1, T2, T3, T4)
@@ -202,7 +202,7 @@
         , T1, T2, T3, T4, T5
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           6
         , apply5
         , (F, T1, T2, T3, T4, T5)
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/apply_fwd.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/apply_fwd.hpp
index d5be947..6f5288c 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/apply_fwd.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/apply_fwd.hpp
@@ -12,7 +12,7 @@
 namespace ndnboost { namespace mpl {
 
 namespace aux {
-template< BOOST_AUX_NTTP_DECL(int, arity_) > struct apply_chooser;
+template< NDNBOOST_AUX_NTTP_DECL(int, arity_) > struct apply_chooser;
 }
 
 template<
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/arg.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/arg.hpp
index 9a157c2..154476a 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/arg.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/arg.hpp
@@ -10,12 +10,12 @@
 // Preprocessed version of "ndnboost/mpl/arg.hpp" header
 // -- DO NOT modify by hand!
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 template<> struct arg< -1 >
 {
-    BOOST_STATIC_CONSTANT(int, value  = -1);
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_STATIC_CONSTANT(int, value  = -1);
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -24,16 +24,16 @@
     struct apply
     {
         typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<1>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 1);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 1);
     typedef arg<2> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -42,16 +42,16 @@
     struct apply
     {
         typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<2>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 2);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 2);
     typedef arg<3> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -60,16 +60,16 @@
     struct apply
     {
         typedef U2 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<3>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 3);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 3);
     typedef arg<4> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -78,16 +78,16 @@
     struct apply
     {
         typedef U3 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<4>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 4);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 4);
     typedef arg<5> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -96,16 +96,16 @@
     struct apply
     {
         typedef U4 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<5>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 5);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 5);
     typedef arg<6> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -114,10 +114,10 @@
     struct apply
     {
         typedef U5 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
-BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
+NDNBOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/basic_bind.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/basic_bind.hpp
index a0fd1e8..1c962e7 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/basic_bind.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/basic_bind.hpp
@@ -73,7 +73,7 @@
 {
     template< typename T > struct result_
     {
-        BOOST_STATIC_CONSTANT(bool, value  = false);
+        NDNBOOST_STATIC_CONSTANT(bool, value  = false);
     };
 };
 
@@ -82,7 +82,7 @@
 {
     template< typename T > struct result_
     {
-        BOOST_STATIC_CONSTANT(bool, value =
+        NDNBOOST_STATIC_CONSTANT(bool, value =
               sizeof(aux::is_bind_helper(static_cast<T*>(0)))
                 == sizeof(aux::yes_tag)
             );
@@ -129,8 +129,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
 
 namespace aux {
 
@@ -183,8 +183,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
 
 namespace aux {
 
@@ -238,8 +238,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
 
 namespace aux {
 
@@ -294,8 +294,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
 
 namespace aux {
 
@@ -352,8 +352,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
 
 namespace aux {
 
@@ -413,8 +413,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
 
 namespace aux {
 
@@ -438,13 +438,13 @@
 template< typename T >
 struct is_bind_arg
 {
-    BOOST_STATIC_CONSTANT(bool, value  = true);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
 };
 
 template<>
 struct is_bind_arg<na>
 {
-    BOOST_STATIC_CONSTANT(bool, value  = false);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
 };
 
 template<
@@ -452,7 +452,7 @@
     >
 struct bind_count_args
 {
-    BOOST_STATIC_CONSTANT(int, value =
+    NDNBOOST_STATIC_CONSTANT(int, value =
           is_bind_arg<T1>::value + is_bind_arg<T2>::value 
         + is_bind_arg<T3>::value + is_bind_arg<T4>::value 
         + is_bind_arg<T5>::value
@@ -473,12 +473,12 @@
 {
 };
 
-BOOST_MPL_AUX_ARITY_SPEC(
+NDNBOOST_MPL_AUX_ARITY_SPEC(
       6
     , bind
     )
 
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(
       6
     , bind
     )
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/bind.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/bind.hpp
index 904c64f..295251e 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/bind.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/bind.hpp
@@ -99,7 +99,7 @@
 {
     template< typename T > struct result_
     {
-        BOOST_STATIC_CONSTANT(bool, value  = false);
+        NDNBOOST_STATIC_CONSTANT(bool, value  = false);
     };
 };
 
@@ -108,7 +108,7 @@
 {
     template< typename T > struct result_
     {
-        BOOST_STATIC_CONSTANT(bool, value =
+        NDNBOOST_STATIC_CONSTANT(bool, value =
               sizeof(aux::is_bind_helper(static_cast<T*>(0)))
                 == sizeof(aux::yes_tag)
             );
@@ -158,8 +158,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
 
 namespace aux {
 
@@ -219,8 +219,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
 
 namespace aux {
 
@@ -285,8 +285,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
 
 namespace aux {
 
@@ -356,8 +356,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
 
 namespace aux {
 
@@ -433,8 +433,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
 
 namespace aux {
 
@@ -517,8 +517,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
 
 namespace aux {
 
@@ -542,13 +542,13 @@
 template< typename T >
 struct is_bind_arg
 {
-    BOOST_STATIC_CONSTANT(bool, value  = true);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
 };
 
 template<>
 struct is_bind_arg<na>
 {
-    BOOST_STATIC_CONSTANT(bool, value  = false);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
 };
 
 template<
@@ -556,7 +556,7 @@
     >
 struct bind_count_args
 {
-    BOOST_STATIC_CONSTANT(int, value =
+    NDNBOOST_STATIC_CONSTANT(int, value =
           is_bind_arg<T1>::value + is_bind_arg<T2>::value 
         + is_bind_arg<T3>::value + is_bind_arg<T4>::value 
         + is_bind_arg<T5>::value
@@ -577,12 +577,12 @@
 {
 };
 
-BOOST_MPL_AUX_ARITY_SPEC(
+NDNBOOST_MPL_AUX_ARITY_SPEC(
       6
     , bind
     )
 
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(
       6
     , bind
     )
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/bitand.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/bitand.hpp
index 23dfcbc..23a2e01 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/bitand.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/bitand.hpp
@@ -18,8 +18,8 @@
     >
 struct bitand_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -64,14 +64,14 @@
 /// forward declaration
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct bitand_2;
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct bitand_
@@ -87,7 +87,7 @@
         >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , bitand_
         , ( N1, N2, N3, N4, N5 )
@@ -104,11 +104,11 @@
         , typename bitand_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitand_2, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitand_2, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
 
 }}
 
@@ -123,8 +123,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  & BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  & NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/bitor.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/bitor.hpp
index ff6221a..bec923d 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/bitor.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/bitor.hpp
@@ -18,8 +18,8 @@
     >
 struct bitor_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -64,14 +64,14 @@
 /// forward declaration
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct bitor_2;
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct bitor_
@@ -87,7 +87,7 @@
         >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , bitor_
         , ( N1, N2, N3, N4, N5 )
@@ -104,11 +104,11 @@
         , typename bitor_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitor_2, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitor_2, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
 
 }}
 
@@ -123,8 +123,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  | BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  | NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/bitxor.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/bitxor.hpp
index 60d2a26..dd48718 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/bitxor.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/bitxor.hpp
@@ -18,8 +18,8 @@
     >
 struct bitxor_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -64,14 +64,14 @@
 /// forward declaration
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct bitxor_2;
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct bitxor_
@@ -87,7 +87,7 @@
         >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , bitxor_
         , ( N1, N2, N3, N4, N5 )
@@ -104,11 +104,11 @@
         , typename bitxor_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitxor_2, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitxor_2, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
 
 }}
 
@@ -123,8 +123,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  ^ BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  ^ NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/deque.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/deque.hpp
index 8a7e2c3..ed97d82 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/deque.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/deque.hpp
@@ -484,13 +484,13 @@
 template< typename T >
 struct is_deque_arg
 {
-    BOOST_STATIC_CONSTANT(bool, value  = true);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
 };
 
 template<>
 struct is_deque_arg<na>
 {
-    BOOST_STATIC_CONSTANT(bool, value  = false);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
 };
 
 template<
@@ -501,7 +501,7 @@
     >
 struct deque_count_args
 {
-    BOOST_STATIC_CONSTANT(int, value =
+    NDNBOOST_STATIC_CONSTANT(int, value =
           is_deque_arg<T1>::value + is_deque_arg<T2>::value 
         + is_deque_arg<T3>::value + is_deque_arg<T4>::value 
         + is_deque_arg<T5>::value + is_deque_arg<T6>::value 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/divides.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/divides.hpp
index 2040b98..4a98ba0 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/divides.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/divides.hpp
@@ -17,8 +17,8 @@
     >
 struct divides_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -63,14 +63,14 @@
 /// forward declaration
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct divides2;
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct divides
@@ -86,7 +86,7 @@
         >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , divides
         , ( N1, N2, N3, N4, N5 )
@@ -103,11 +103,11 @@
         , typename divides_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, divides2, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, divides2, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
 
 }}
 
@@ -122,8 +122,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  / BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  / NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/equal_to.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/equal_to.hpp
index 5b456bc..11e6d11 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/equal_to.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/equal_to.hpp
@@ -17,8 +17,8 @@
     >
 struct equal_to_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct equal_to
 
@@ -71,11 +71,11 @@
         , typename equal_to_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
 
 }}
 
@@ -86,7 +86,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value  == BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value  == NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/full_lambda.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/full_lambda.hpp
index de658d8..7da971e 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/full_lambda.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/full_lambda.hpp
@@ -548,7 +548,7 @@
     typedef typename le_result_::type type;
 };
 
-BOOST_MPL_AUX_NA_SPEC(2, lambda)
+NDNBOOST_MPL_AUX_NA_SPEC(2, lambda)
 
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/greater.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/greater.hpp
index 936836f..e6eb61e 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/greater.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/greater.hpp
@@ -17,8 +17,8 @@
     >
 struct greater_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct greater
 
@@ -71,11 +71,11 @@
         , typename greater_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
 
 }}
 
@@ -86,7 +86,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value > NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/greater_equal.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/greater_equal.hpp
index c6654b0..5ab4441 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/greater_equal.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/greater_equal.hpp
@@ -17,8 +17,8 @@
     >
 struct greater_equal_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct greater_equal
 
@@ -71,11 +71,11 @@
         , typename greater_equal_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
 
 }}
 
@@ -86,7 +86,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value >= NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/inherit.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/inherit.hpp
index 12328f7..7cb0a48 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/inherit.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/inherit.hpp
@@ -55,8 +55,8 @@
 } // namespace aux
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
     >
 struct inherit2
     : aux::inherit2_impl<
@@ -65,10 +65,10 @@
         >::template result_< inherit2< T1,T2 >,T1, T2 >
 {
     typedef typename inherit2::type_ type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
 };
 
-BOOST_MPL_AUX_NA_SPEC(2, inherit2)
+NDNBOOST_MPL_AUX_NA_SPEC(2, inherit2)
 
 template<
       typename T1 = na, typename T2 = na, typename T3 = na
@@ -81,14 +81,14 @@
         , T3
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           3
         , inherit3
         , ( T1, T2, T3)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC(3, inherit3)
+NDNBOOST_MPL_AUX_NA_SPEC(3, inherit3)
 
 template<
       typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
@@ -101,14 +101,14 @@
         , T4
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           4
         , inherit4
         , ( T1, T2, T3, T4)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC(4, inherit4)
+NDNBOOST_MPL_AUX_NA_SPEC(4, inherit4)
 
 template<
       typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
@@ -122,14 +122,14 @@
         , T5
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , inherit5
         , ( T1, T2, T3, T4, T5)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC(5, inherit5)
+NDNBOOST_MPL_AUX_NA_SPEC(5, inherit5)
 
 /// primary template
 
@@ -159,8 +159,8 @@
     };
 };
 
-BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit)
+NDNBOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit)
+NDNBOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit)
+NDNBOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit)
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/iter_fold_if_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/iter_fold_if_impl.hpp
index b0a2864..a74bd83 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/iter_fold_if_impl.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/iter_fold_if_impl.hpp
@@ -61,7 +61,7 @@
 {
     typedef typename apply2< Predicate,State,Iterator >::type not_last;
     typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
+          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
         >::template result_< Iterator,State,ForwardOp, mpl::next<Iterator> > impl_;
 
     typedef typename impl_::state state;
@@ -78,7 +78,7 @@
 {
     typedef typename apply2< Predicate,State,Iterator >::type not_last;
     typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
+          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
         >::template result_< Iterator,State,BackwardOp, identity<Iterator> > impl_;
 
     typedef typename impl_::state state;
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/lambda_no_ctps.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/lambda_no_ctps.hpp
index 5bfc661..45f5f6b 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/lambda_no_ctps.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/lambda_no_ctps.hpp
@@ -44,7 +44,7 @@
         typedef lambda< typename F::arg1, Tag, false_ > l1;
         typedef typename l1::is_le is_le1;
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
             > is_le;
 
         typedef bind1<
@@ -74,7 +74,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
             > is_le;
 
         typedef bind2<
@@ -106,7 +106,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value
             > is_le;
 
         typedef bind3<
@@ -140,7 +140,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value
             > is_le;
 
         typedef bind4<
@@ -177,7 +177,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value
             > is_le;
 
         typedef bind5<
@@ -212,10 +212,10 @@
 
     typedef typename l_::type type;
     typedef typename l_::is_le is_le;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
 };
 
-BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
+NDNBOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
 
 template<
       typename T
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/less.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/less.hpp
index 4460cca..ebe8607 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/less.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/less.hpp
@@ -17,8 +17,8 @@
     >
 struct less_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct less
 
@@ -71,11 +71,11 @@
         , typename less_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less)
 
 }}
 
@@ -86,7 +86,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value > NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/less_equal.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/less_equal.hpp
index 8da1edf..37b19aa 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/less_equal.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/less_equal.hpp
@@ -17,8 +17,8 @@
     >
 struct less_equal_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct less_equal
 
@@ -71,11 +71,11 @@
         , typename less_equal_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
 
 }}
 
@@ -86,7 +86,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value <= NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/list.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/list.hpp
index 63062d2..2b19e60 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/list.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/list.hpp
@@ -484,13 +484,13 @@
 template< typename T >
 struct is_list_arg
 {
-    BOOST_STATIC_CONSTANT(bool, value  = true);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
 };
 
 template<>
 struct is_list_arg<na>
 {
-    BOOST_STATIC_CONSTANT(bool, value  = false);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
 };
 
 template<
@@ -501,7 +501,7 @@
     >
 struct list_count_args
 {
-    BOOST_STATIC_CONSTANT(int, value =
+    NDNBOOST_STATIC_CONSTANT(int, value =
           is_list_arg<T1>::value + is_list_arg<T2>::value 
         + is_list_arg<T3>::value + is_list_arg<T4>::value 
         + is_list_arg<T5>::value + is_list_arg<T6>::value 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/list_c.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/list_c.hpp
index 010f92e..0ed7f7e 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/list_c.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/list_c.hpp
@@ -463,13 +463,13 @@
 template< long C >
 struct is_list_c_arg
 {
-    BOOST_STATIC_CONSTANT(bool, value  = true);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
 };
 
 template<>
 struct is_list_c_arg<LONG_MAX>
 {
-    BOOST_STATIC_CONSTANT(bool, value  = false);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
 };
 
 template<
@@ -479,7 +479,7 @@
     >
 struct list_c_count_args
 {
-    BOOST_STATIC_CONSTANT(int, value =
+    NDNBOOST_STATIC_CONSTANT(int, value =
           is_list_c_arg<C1>::value + is_list_c_arg<C2>::value 
         + is_list_c_arg<C3>::value + is_list_c_arg<C4>::value 
         + is_list_c_arg<C5>::value + is_list_c_arg<C6>::value 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/map.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/map.hpp
index 3066603..75174c8 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/map.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/map.hpp
@@ -484,13 +484,13 @@
 template< typename T >
 struct is_map_arg
 {
-    BOOST_STATIC_CONSTANT(bool, value  = true);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
 };
 
 template<>
 struct is_map_arg<na>
 {
-    BOOST_STATIC_CONSTANT(bool, value  = false);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
 };
 
 template<
@@ -501,7 +501,7 @@
     >
 struct map_count_args
 {
-    BOOST_STATIC_CONSTANT(int, value =
+    NDNBOOST_STATIC_CONSTANT(int, value =
           is_map_arg<T1>::value + is_map_arg<T2>::value 
         + is_map_arg<T3>::value + is_map_arg<T4>::value 
         + is_map_arg<T5>::value + is_map_arg<T6>::value 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/minus.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/minus.hpp
index a615210..914d669 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/minus.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/minus.hpp
@@ -17,8 +17,8 @@
     >
 struct minus_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -63,14 +63,14 @@
 /// forward declaration
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct minus2;
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct minus
@@ -86,7 +86,7 @@
         >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , minus
         , ( N1, N2, N3, N4, N5 )
@@ -103,11 +103,11 @@
         , typename minus_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, minus2, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, minus2, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
 
 }}
 
@@ -122,8 +122,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  - BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  - NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/modulus.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/modulus.hpp
index a3c75d4..7b2e7ab 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/modulus.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/modulus.hpp
@@ -17,8 +17,8 @@
     >
 struct modulus_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct modulus
 
@@ -71,11 +71,11 @@
         , typename modulus_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
 
 }}
 
@@ -90,8 +90,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  % BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  % NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/not_equal_to.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/not_equal_to.hpp
index b8c4a47..df9109f 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/not_equal_to.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/not_equal_to.hpp
@@ -17,8 +17,8 @@
     >
 struct not_equal_to_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct not_equal_to
 
@@ -71,11 +71,11 @@
         , typename not_equal_to_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
 
 }}
 
@@ -86,7 +86,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value != NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/or.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/or.hpp
index b0b3a7f..7123b8d 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/or.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/or.hpp
@@ -30,7 +30,7 @@
         >
     struct result_
         : or_impl<
-              BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+              NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
             >::template result_< T2,T3,T4,false_ >
     {
     };
@@ -46,25 +46,25 @@
 } // namespace aux
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
     , typename T3 = false_, typename T4 = false_, typename T5 = false_
     >
 struct or_
 
     : aux::or_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
         >::template result_< T2,T3,T4,T5 >
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , or_
         , ( T1, T2, T3, T4, T5)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC2(
+NDNBOOST_MPL_AUX_NA_SPEC2(
       2
     , 5
     , or_
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/placeholders.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/placeholders.hpp
index ecd4514..3a28c09 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/placeholders.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/placeholders.hpp
@@ -10,96 +10,96 @@
 // Preprocessed version of "ndnboost/mpl/placeholders.hpp" header
 // -- DO NOT modify by hand!
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg< -1 > _;
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
 }
 
 }}
 
 /// agurt, 17/mar/02: one more placeholder for the last 'apply#' 
 /// specialization
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<1> _1;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<2> _2;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<3> _3;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<4> _4;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<5> _5;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<6> _6;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6;
 }
 
 }}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/plus.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/plus.hpp
index 2967636..6372ead 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/plus.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/plus.hpp
@@ -17,8 +17,8 @@
     >
 struct plus_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -63,14 +63,14 @@
 /// forward declaration
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct plus2;
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct plus
@@ -86,7 +86,7 @@
         >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , plus
         , ( N1, N2, N3, N4, N5 )
@@ -103,11 +103,11 @@
         , typename plus_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, plus2, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, plus2, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
 
 }}
 
@@ -122,8 +122,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  + BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  + NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/set.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/set.hpp
index e964879..484d53e 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/set.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/set.hpp
@@ -484,13 +484,13 @@
 template< typename T >
 struct is_set_arg
 {
-    BOOST_STATIC_CONSTANT(bool, value  = true);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
 };
 
 template<>
 struct is_set_arg<na>
 {
-    BOOST_STATIC_CONSTANT(bool, value  = false);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
 };
 
 template<
@@ -501,7 +501,7 @@
     >
 struct set_count_args
 {
-    BOOST_STATIC_CONSTANT(int, value =
+    NDNBOOST_STATIC_CONSTANT(int, value =
           is_set_arg<T1>::value + is_set_arg<T2>::value 
         + is_set_arg<T3>::value + is_set_arg<T4>::value 
         + is_set_arg<T5>::value + is_set_arg<T6>::value 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/set_c.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/set_c.hpp
index a9a9b18..3b5f2ab 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/set_c.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/set_c.hpp
@@ -463,13 +463,13 @@
 template< long C >
 struct is_set_c_arg
 {
-    BOOST_STATIC_CONSTANT(bool, value  = true);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
 };
 
 template<>
 struct is_set_c_arg<LONG_MAX>
 {
-    BOOST_STATIC_CONSTANT(bool, value  = false);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
 };
 
 template<
@@ -479,7 +479,7 @@
     >
 struct set_c_count_args
 {
-    BOOST_STATIC_CONSTANT(int, value =
+    NDNBOOST_STATIC_CONSTANT(int, value =
           is_set_c_arg<C1>::value + is_set_c_arg<C2>::value 
         + is_set_c_arg<C3>::value + is_set_c_arg<C4>::value 
         + is_set_c_arg<C5>::value + is_set_c_arg<C6>::value 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/shift_left.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/shift_left.hpp
index 8d6c545..4b56759 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/shift_left.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/shift_left.hpp
@@ -18,8 +18,8 @@
     >
 struct shift_left_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< shift_left_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,8 +62,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct shift_left
 
@@ -72,11 +72,11 @@
         , typename shift_left_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
 
 }}
 
@@ -88,8 +88,8 @@
 
         : integral_c<
               typename N::value_type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N)::value
-                  << BOOST_MPL_AUX_VALUE_WKND(S)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N)::value
+                  << NDNBOOST_MPL_AUX_VALUE_WKND(S)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/shift_right.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/shift_right.hpp
index a85eb0e..a8dc0db 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/shift_right.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/shift_right.hpp
@@ -18,8 +18,8 @@
     >
 struct shift_right_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< shift_right_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,8 +62,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct shift_right
 
@@ -72,11 +72,11 @@
         , typename shift_right_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
 
 }}
 
@@ -88,8 +88,8 @@
 
         : integral_c<
               typename N::value_type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N)::value
-                  >> BOOST_MPL_AUX_VALUE_WKND(S)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N)::value
+                  >> NDNBOOST_MPL_AUX_VALUE_WKND(S)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/times.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/times.hpp
index ecdafc9..7c99e67 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/times.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/times.hpp
@@ -17,8 +17,8 @@
     >
 struct times_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -63,14 +63,14 @@
 /// forward declaration
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct times2;
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct times
@@ -86,7 +86,7 @@
         >::type
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , times
         , ( N1, N2, N3, N4, N5 )
@@ -103,11 +103,11 @@
         , typename times_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, times2, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, times2, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, times)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, times)
 
 }}
 
@@ -122,8 +122,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  * BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  * NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/unpack_args.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/unpack_args.hpp
index bee7472..dcdb46e 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/unpack_args.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/unpack_args.hpp
@@ -13,7 +13,7 @@
 
 namespace aux {
 
-template< BOOST_MPL_AUX_NTTP_DECL(int, size) > struct unpack_args_impl
+template< NDNBOOST_MPL_AUX_NTTP_DECL(int, size) > struct unpack_args_impl
 {
     template< typename F, typename Args > struct apply;
 };
@@ -103,7 +103,7 @@
     };
 };
 
-BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
+NDNBOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
 
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/vector.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/vector.hpp
index bdee923..acb6704 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/vector.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/vector.hpp
@@ -484,13 +484,13 @@
 template< typename T >
 struct is_vector_arg
 {
-    BOOST_STATIC_CONSTANT(bool, value  = true);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
 };
 
 template<>
 struct is_vector_arg<na>
 {
-    BOOST_STATIC_CONSTANT(bool, value  = false);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
 };
 
 template<
@@ -501,7 +501,7 @@
     >
 struct vector_count_args
 {
-    BOOST_STATIC_CONSTANT(int, value =
+    NDNBOOST_STATIC_CONSTANT(int, value =
           is_vector_arg<T1>::value + is_vector_arg<T2>::value 
         + is_vector_arg<T3>::value + is_vector_arg<T4>::value 
         + is_vector_arg<T5>::value + is_vector_arg<T6>::value 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/vector_c.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/vector_c.hpp
index 7e645b9..c654c6f 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/vector_c.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/vector_c.hpp
@@ -463,13 +463,13 @@
 template< long C >
 struct is_vector_c_arg
 {
-    BOOST_STATIC_CONSTANT(bool, value  = true);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
 };
 
 template<>
 struct is_vector_c_arg<LONG_MAX>
 {
-    BOOST_STATIC_CONSTANT(bool, value  = false);
+    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
 };
 
 template<
@@ -479,7 +479,7 @@
     >
 struct vector_c_count_args
 {
-    BOOST_STATIC_CONSTANT(int, value =
+    NDNBOOST_STATIC_CONSTANT(int, value =
           is_vector_c_arg<C1>::value + is_vector_c_arg<C2>::value 
         + is_vector_c_arg<C3>::value + is_vector_c_arg<C4>::value 
         + is_vector_c_arg<C5>::value + is_vector_c_arg<C6>::value 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/and.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/and.hpp
index 24b88d8..5c1b95a 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/and.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/and.hpp
@@ -22,7 +22,7 @@
 template< typename T1, typename T2, typename T3, typename T4 >
 struct and_impl< true,T1,T2,T3,T4 >
     : and_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
         , T2, T3, T4
         , true_
         >
@@ -41,26 +41,26 @@
 } // namespace aux
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
     , typename T3 = true_, typename T4 = true_, typename T5 = true_
     >
 struct and_
 
     : aux::and_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
         , T2, T3, T4, T5
         >
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , and_
         , ( T1, T2, T3, T4, T5)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC2(
+NDNBOOST_MPL_AUX_NA_SPEC2(
       2
     , 5
     , and_
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/apply.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/apply.hpp
index e4b1cd2..80f72b0 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/apply.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/apply.hpp
@@ -21,7 +21,7 @@
        
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           1
         , apply0
         , (F )
@@ -46,7 +46,7 @@
         , T1
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           2
         , apply1
         , (F, T1)
@@ -71,7 +71,7 @@
         , T1, T2
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           3
         , apply2
         , (F, T1, T2)
@@ -96,7 +96,7 @@
         , T1, T2, T3
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           4
         , apply3
         , (F, T1, T2, T3)
@@ -121,7 +121,7 @@
         , T1, T2, T3, T4
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , apply4
         , (F, T1, T2, T3, T4)
@@ -147,7 +147,7 @@
         , T1, T2, T3, T4, T5
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           6
         , apply5
         , (F, T1, T2, T3, T4, T5)
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/arg.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/arg.hpp
index 9a157c2..154476a 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/arg.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/arg.hpp
@@ -10,12 +10,12 @@
 // Preprocessed version of "ndnboost/mpl/arg.hpp" header
 // -- DO NOT modify by hand!
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 template<> struct arg< -1 >
 {
-    BOOST_STATIC_CONSTANT(int, value  = -1);
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_STATIC_CONSTANT(int, value  = -1);
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -24,16 +24,16 @@
     struct apply
     {
         typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<1>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 1);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 1);
     typedef arg<2> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -42,16 +42,16 @@
     struct apply
     {
         typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<2>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 2);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 2);
     typedef arg<3> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -60,16 +60,16 @@
     struct apply
     {
         typedef U2 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<3>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 3);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 3);
     typedef arg<4> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -78,16 +78,16 @@
     struct apply
     {
         typedef U3 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<4>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 4);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 4);
     typedef arg<5> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -96,16 +96,16 @@
     struct apply
     {
         typedef U4 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<5>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 5);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 5);
     typedef arg<6> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -114,10 +114,10 @@
     struct apply
     {
         typedef U5 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
-BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
+NDNBOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/basic_bind.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/basic_bind.hpp
index 5c7f505..80f4c4e 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/basic_bind.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/basic_bind.hpp
@@ -82,8 +82,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
 
 template<
       typename F
@@ -133,8 +133,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
 
 template<
       typename F, typename T1
@@ -185,8 +185,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
 
 template<
       typename F, typename T1, typename T2
@@ -238,8 +238,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
 
 template<
       typename F, typename T1, typename T2, typename T3
@@ -293,8 +293,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
 
 template<
       typename F, typename T1, typename T2, typename T3, typename T4
@@ -351,8 +351,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
 
 /// primary template (not a specialization!)
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/bind.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/bind.hpp
index e686d8e..d234468 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/bind.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/bind.hpp
@@ -104,8 +104,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
 
 template<
       typename F
@@ -162,8 +162,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
 
 template<
       typename F, typename T1
@@ -225,8 +225,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
 
 template<
       typename F, typename T1, typename T2
@@ -293,8 +293,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
 
 template<
       typename F, typename T1, typename T2, typename T3
@@ -367,8 +367,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
 
 template<
       typename F, typename T1, typename T2, typename T3, typename T4
@@ -448,8 +448,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
 
 /// primary template (not a specialization!)
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/bitand.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/bitand.hpp
index 650c7da..d0542b4 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/bitand.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/bitand.hpp
@@ -18,8 +18,8 @@
     >
 struct bitand_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,14 +62,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct bitand_
     : bitand_< bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , bitand_
         , ( N1, N2, N3, N4, N5 )
@@ -83,7 +83,7 @@
 
     : bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitand_
         , ( N1, N2, N3, N4, na )
@@ -97,7 +97,7 @@
 
     : bitand_< bitand_< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitand_
         , ( N1, N2, N3, na, na )
@@ -113,7 +113,7 @@
         , typename bitand_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitand_
         , ( N1, N2, na, na, na )
@@ -121,7 +121,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
 
 }}
 
@@ -131,7 +131,7 @@
 template< typename T, T n1, T n2 >
 struct bitand_wknd
 {
-    BOOST_STATIC_CONSTANT(T, value  = (n1 & n2));
+    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 & n2));
     typedef integral_c< T,value > type;
 };
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/bitor.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/bitor.hpp
index 6a1d24b..64884de 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/bitor.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/bitor.hpp
@@ -18,8 +18,8 @@
     >
 struct bitor_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,14 +62,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct bitor_
     : bitor_< bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , bitor_
         , ( N1, N2, N3, N4, N5 )
@@ -83,7 +83,7 @@
 
     : bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitor_
         , ( N1, N2, N3, N4, na )
@@ -97,7 +97,7 @@
 
     : bitor_< bitor_< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitor_
         , ( N1, N2, N3, na, na )
@@ -113,7 +113,7 @@
         , typename bitor_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitor_
         , ( N1, N2, na, na, na )
@@ -121,7 +121,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
 
 }}
 
@@ -131,7 +131,7 @@
 template< typename T, T n1, T n2 >
 struct bitor_wknd
 {
-    BOOST_STATIC_CONSTANT(T, value  = (n1 | n2));
+    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 | n2));
     typedef integral_c< T,value > type;
 };
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/bitxor.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/bitxor.hpp
index bbda869..a392e2a 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/bitxor.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/bitxor.hpp
@@ -18,8 +18,8 @@
     >
 struct bitxor_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,14 +62,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct bitxor_
     : bitxor_< bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , bitxor_
         , ( N1, N2, N3, N4, N5 )
@@ -83,7 +83,7 @@
 
     : bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitxor_
         , ( N1, N2, N3, N4, na )
@@ -97,7 +97,7 @@
 
     : bitxor_< bitxor_< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitxor_
         , ( N1, N2, N3, na, na )
@@ -113,7 +113,7 @@
         , typename bitxor_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitxor_
         , ( N1, N2, na, na, na )
@@ -121,7 +121,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
 
 }}
 
@@ -131,7 +131,7 @@
 template< typename T, T n1, T n2 >
 struct bitxor_wknd
 {
-    BOOST_STATIC_CONSTANT(T, value  = (n1 ^ n2));
+    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 ^ n2));
     typedef integral_c< T,value > type;
 };
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/divides.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/divides.hpp
index eb22a09..df1e04f 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/divides.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/divides.hpp
@@ -17,8 +17,8 @@
     >
 struct divides_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,14 +61,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct divides
     : divides< divides< divides< divides< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , divides
         , ( N1, N2, N3, N4, N5 )
@@ -82,7 +82,7 @@
 
     : divides< divides< divides< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , divides
         , ( N1, N2, N3, N4, na )
@@ -96,7 +96,7 @@
 
     : divides< divides< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , divides
         , ( N1, N2, N3, na, na )
@@ -112,7 +112,7 @@
         , typename divides_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , divides
         , ( N1, N2, na, na, na )
@@ -120,7 +120,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
 
 }}
 
@@ -130,7 +130,7 @@
 template< typename T, T n1, T n2 >
 struct divides_wknd
 {
-    BOOST_STATIC_CONSTANT(T, value  = (n1 / n2));
+    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 / n2));
     typedef integral_c< T,value > type;
 };
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/equal_to.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/equal_to.hpp
index b900ba1..22f1e2a 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/equal_to.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/equal_to.hpp
@@ -17,8 +17,8 @@
     >
 struct equal_to_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct equal_to
 
@@ -71,11 +71,11 @@
         , typename equal_to_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
 
 }}
 
@@ -87,9 +87,9 @@
     template< typename N1, typename N2 > struct apply
 
     {
-        BOOST_STATIC_CONSTANT(bool, value =
-             ( BOOST_MPL_AUX_VALUE_WKND(N1)::value ==
-             BOOST_MPL_AUX_VALUE_WKND(N2)::value )
+        NDNBOOST_STATIC_CONSTANT(bool, value =
+             ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value ==
+             NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value )
             );
         typedef bool_<value> type;
     };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/full_lambda.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/full_lambda.hpp
index de658d8..7da971e 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/full_lambda.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/full_lambda.hpp
@@ -548,7 +548,7 @@
     typedef typename le_result_::type type;
 };
 
-BOOST_MPL_AUX_NA_SPEC(2, lambda)
+NDNBOOST_MPL_AUX_NA_SPEC(2, lambda)
 
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/greater.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/greater.hpp
index dce1ae1..a6a1b30 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/greater.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/greater.hpp
@@ -17,8 +17,8 @@
     >
 struct greater_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct greater
 
@@ -71,11 +71,11 @@
         , typename greater_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
 
 }}
 
@@ -87,9 +87,9 @@
     template< typename N1, typename N2 > struct apply
 
     {
-        BOOST_STATIC_CONSTANT(bool, value =
-             ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >
-             BOOST_MPL_AUX_VALUE_WKND(N2)::value )
+        NDNBOOST_STATIC_CONSTANT(bool, value =
+             ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value >
+             NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value )
             );
         typedef bool_<value> type;
     };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/greater_equal.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/greater_equal.hpp
index 9bdfda5..93ea6ca 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/greater_equal.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/greater_equal.hpp
@@ -17,8 +17,8 @@
     >
 struct greater_equal_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct greater_equal
 
@@ -71,11 +71,11 @@
         , typename greater_equal_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
 
 }}
 
@@ -87,9 +87,9 @@
     template< typename N1, typename N2 > struct apply
 
     {
-        BOOST_STATIC_CONSTANT(bool, value =
-             ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >=
-             BOOST_MPL_AUX_VALUE_WKND(N2)::value )
+        NDNBOOST_STATIC_CONSTANT(bool, value =
+             ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value >=
+             NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value )
             );
         typedef bool_<value> type;
     };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/inherit.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/inherit.hpp
index 41f387f..a97f313 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/inherit.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/inherit.hpp
@@ -12,38 +12,38 @@
 namespace ndnboost { namespace mpl {
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
     >
 struct inherit2
     : T1, T2
 {
     typedef inherit2 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
 };
 
 template< typename T1 >
 struct inherit2< T1,empty_base >
 {
     typedef T1 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base))
 };
 
 template< typename T2 >
 struct inherit2< empty_base,T2 >
 {
     typedef T2 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2))
 };
 
 template<>
 struct inherit2< empty_base,empty_base >
 {
     typedef empty_base type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base))
 };
 
-BOOST_MPL_AUX_NA_SPEC(2, inherit2)
+NDNBOOST_MPL_AUX_NA_SPEC(2, inherit2)
 
 template<
       typename T1 = na, typename T2 = na, typename T3 = na
@@ -56,14 +56,14 @@
         , T3
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           3
         , inherit3
         , ( T1, T2, T3)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC(3, inherit3)
+NDNBOOST_MPL_AUX_NA_SPEC(3, inherit3)
 
 template<
       typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
@@ -76,14 +76,14 @@
         , T4
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           4
         , inherit4
         , ( T1, T2, T3, T4)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC(4, inherit4)
+NDNBOOST_MPL_AUX_NA_SPEC(4, inherit4)
 
 template<
       typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
@@ -97,14 +97,14 @@
         , T5
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , inherit5
         , ( T1, T2, T3, T4, T5)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC(5, inherit5)
+NDNBOOST_MPL_AUX_NA_SPEC(5, inherit5)
 
 /// primary template
 
@@ -134,8 +134,8 @@
     };
 };
 
-BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit)
+NDNBOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit)
+NDNBOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit)
+NDNBOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit)
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/iter_fold_if_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/iter_fold_if_impl.hpp
index b0a2864..a74bd83 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/iter_fold_if_impl.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/iter_fold_if_impl.hpp
@@ -61,7 +61,7 @@
 {
     typedef typename apply2< Predicate,State,Iterator >::type not_last;
     typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
+          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
         >::template result_< Iterator,State,ForwardOp, mpl::next<Iterator> > impl_;
 
     typedef typename impl_::state state;
@@ -78,7 +78,7 @@
 {
     typedef typename apply2< Predicate,State,Iterator >::type not_last;
     typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
+          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
         >::template result_< Iterator,State,BackwardOp, identity<Iterator> > impl_;
 
     typedef typename impl_::state state;
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/lambda_no_ctps.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/lambda_no_ctps.hpp
index 5bfc661..45f5f6b 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/lambda_no_ctps.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/lambda_no_ctps.hpp
@@ -44,7 +44,7 @@
         typedef lambda< typename F::arg1, Tag, false_ > l1;
         typedef typename l1::is_le is_le1;
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
             > is_le;
 
         typedef bind1<
@@ -74,7 +74,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
             > is_le;
 
         typedef bind2<
@@ -106,7 +106,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value
             > is_le;
 
         typedef bind3<
@@ -140,7 +140,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value
             > is_le;
 
         typedef bind4<
@@ -177,7 +177,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value
             > is_le;
 
         typedef bind5<
@@ -212,10 +212,10 @@
 
     typedef typename l_::type type;
     typedef typename l_::is_le is_le;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
 };
 
-BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
+NDNBOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
 
 template<
       typename T
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/less.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/less.hpp
index b7fae7c..aa6f088 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/less.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/less.hpp
@@ -17,8 +17,8 @@
     >
 struct less_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct less
 
@@ -71,11 +71,11 @@
         , typename less_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less)
 
 }}
 
@@ -87,9 +87,9 @@
     template< typename N1, typename N2 > struct apply
 
     {
-        BOOST_STATIC_CONSTANT(bool, value =
-             ( BOOST_MPL_AUX_VALUE_WKND(N2)::value >
-             BOOST_MPL_AUX_VALUE_WKND(N1)::value )
+        NDNBOOST_STATIC_CONSTANT(bool, value =
+             ( NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value >
+             NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value )
             );
         typedef bool_<value> type;
     };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/less_equal.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/less_equal.hpp
index 3a077fb..ca06f97 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/less_equal.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/less_equal.hpp
@@ -17,8 +17,8 @@
     >
 struct less_equal_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct less_equal
 
@@ -71,11 +71,11 @@
         , typename less_equal_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
 
 }}
 
@@ -87,9 +87,9 @@
     template< typename N1, typename N2 > struct apply
 
     {
-        BOOST_STATIC_CONSTANT(bool, value =
-             ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <=
-             BOOST_MPL_AUX_VALUE_WKND(N2)::value )
+        NDNBOOST_STATIC_CONSTANT(bool, value =
+             ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value <=
+             NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value )
             );
         typedef bool_<value> type;
     };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/minus.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/minus.hpp
index fa3eda9..75ccc8b 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/minus.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/minus.hpp
@@ -17,8 +17,8 @@
     >
 struct minus_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,14 +61,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct minus
     : minus< minus< minus< minus< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , minus
         , ( N1, N2, N3, N4, N5 )
@@ -82,7 +82,7 @@
 
     : minus< minus< minus< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , minus
         , ( N1, N2, N3, N4, na )
@@ -96,7 +96,7 @@
 
     : minus< minus< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , minus
         , ( N1, N2, N3, na, na )
@@ -112,7 +112,7 @@
         , typename minus_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , minus
         , ( N1, N2, na, na, na )
@@ -120,7 +120,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
 
 }}
 
@@ -130,7 +130,7 @@
 template< typename T, T n1, T n2 >
 struct minus_wknd
 {
-    BOOST_STATIC_CONSTANT(T, value  = (n1 - n2));
+    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 - n2));
     typedef integral_c< T,value > type;
 };
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/modulus.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/modulus.hpp
index bd7fe22..1b66ab6 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/modulus.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/modulus.hpp
@@ -17,8 +17,8 @@
     >
 struct modulus_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct modulus
 
@@ -71,11 +71,11 @@
         , typename modulus_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
 
 }}
 
@@ -85,7 +85,7 @@
 template< typename T, T n1, T n2 >
 struct modulus_wknd
 {
-    BOOST_STATIC_CONSTANT(T, value  = (n1 % n2));
+    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 % n2));
     typedef integral_c< T,value > type;
 };
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/not_equal_to.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/not_equal_to.hpp
index 39a19aa..0401b41 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/not_equal_to.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/not_equal_to.hpp
@@ -17,8 +17,8 @@
     >
 struct not_equal_to_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct not_equal_to
 
@@ -71,11 +71,11 @@
         , typename not_equal_to_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
 
 }}
 
@@ -87,9 +87,9 @@
     template< typename N1, typename N2 > struct apply
 
     {
-        BOOST_STATIC_CONSTANT(bool, value =
-             ( BOOST_MPL_AUX_VALUE_WKND(N1)::value !=
-             BOOST_MPL_AUX_VALUE_WKND(N2)::value )
+        NDNBOOST_STATIC_CONSTANT(bool, value =
+             ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value !=
+             NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value )
             );
         typedef bool_<value> type;
     };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/or.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/or.hpp
index e929602..cae8edf 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/or.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/or.hpp
@@ -22,7 +22,7 @@
 template< typename T1, typename T2, typename T3, typename T4 >
 struct or_impl< false,T1,T2,T3,T4 >
     : or_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
         , T2, T3, T4
         , false_
         >
@@ -41,26 +41,26 @@
 } // namespace aux
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
     , typename T3 = false_, typename T4 = false_, typename T5 = false_
     >
 struct or_
 
     : aux::or_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
         , T2, T3, T4, T5
         >
 
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , or_
         , ( T1, T2, T3, T4, T5)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC2(
+NDNBOOST_MPL_AUX_NA_SPEC2(
       2
     , 5
     , or_
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/placeholders.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/placeholders.hpp
index ecd4514..3a28c09 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/placeholders.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/placeholders.hpp
@@ -10,96 +10,96 @@
 // Preprocessed version of "ndnboost/mpl/placeholders.hpp" header
 // -- DO NOT modify by hand!
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg< -1 > _;
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
 }
 
 }}
 
 /// agurt, 17/mar/02: one more placeholder for the last 'apply#' 
 /// specialization
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<1> _1;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<2> _2;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<3> _3;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<4> _4;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<5> _5;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<6> _6;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6;
 }
 
 }}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/plus.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/plus.hpp
index b4d88db..bb61bb1 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/plus.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/plus.hpp
@@ -17,8 +17,8 @@
     >
 struct plus_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,14 +61,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct plus
     : plus< plus< plus< plus< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , plus
         , ( N1, N2, N3, N4, N5 )
@@ -82,7 +82,7 @@
 
     : plus< plus< plus< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , plus
         , ( N1, N2, N3, N4, na )
@@ -96,7 +96,7 @@
 
     : plus< plus< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , plus
         , ( N1, N2, N3, na, na )
@@ -112,7 +112,7 @@
         , typename plus_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , plus
         , ( N1, N2, na, na, na )
@@ -120,7 +120,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
 
 }}
 
@@ -130,7 +130,7 @@
 template< typename T, T n1, T n2 >
 struct plus_wknd
 {
-    BOOST_STATIC_CONSTANT(T, value  = (n1 + n2));
+    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 + n2));
     typedef integral_c< T,value > type;
 };
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/shift_left.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/shift_left.hpp
index 27093f4..1bc9e6f 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/shift_left.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/shift_left.hpp
@@ -18,8 +18,8 @@
     >
 struct shift_left_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< shift_left_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,8 +62,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct shift_left
 
@@ -72,11 +72,11 @@
         , typename shift_left_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
 
 }}
 
@@ -86,7 +86,7 @@
 template< typename T, typename Shift, T n, Shift s >
 struct shift_left_wknd
 {
-    BOOST_STATIC_CONSTANT(T, value  = (n << s));
+    NDNBOOST_STATIC_CONSTANT(T, value  = (n << s));
     typedef integral_c< T,value > type;
 };
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/shift_right.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/shift_right.hpp
index d4d4100..0fb916e 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/shift_right.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/shift_right.hpp
@@ -18,8 +18,8 @@
     >
 struct shift_right_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< shift_right_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,8 +62,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct shift_right
 
@@ -72,11 +72,11 @@
         , typename shift_right_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
 
 }}
 
@@ -86,7 +86,7 @@
 template< typename T, typename Shift, T n, Shift s >
 struct shift_right_wknd
 {
-    BOOST_STATIC_CONSTANT(T, value  = (n >> s));
+    NDNBOOST_STATIC_CONSTANT(T, value  = (n >> s));
     typedef integral_c< T,value > type;
 };
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/times.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/times.hpp
index e2cd1ab..6a54076 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/times.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/times.hpp
@@ -17,8 +17,8 @@
     >
 struct times_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,14 +61,14 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct times
     : times< times< times< times< N1,N2 >, N3>, N4>, N5>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           5
         , times
         , ( N1, N2, N3, N4, N5 )
@@ -82,7 +82,7 @@
 
     : times< times< times< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , times
         , ( N1, N2, N3, N4, na )
@@ -96,7 +96,7 @@
 
     : times< times< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , times
         , ( N1, N2, N3, na, na )
@@ -112,7 +112,7 @@
         , typename times_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , times
         , ( N1, N2, na, na, na )
@@ -120,7 +120,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, times)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, times)
 
 }}
 
@@ -130,7 +130,7 @@
 template< typename T, T n1, T n2 >
 struct times_wknd
 {
-    BOOST_STATIC_CONSTANT(T, value  = (n1 * n2));
+    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 * n2));
     typedef integral_c< T,value > type;
 };
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/unpack_args.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/unpack_args.hpp
index 9c9204f..aec31af 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/unpack_args.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/unpack_args.hpp
@@ -88,7 +88,7 @@
     };
 };
 
-BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
+NDNBOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
 
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/and.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/and.hpp
index 80a91ef..2809274 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/and.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/plain/and.hpp
@@ -22,7 +22,7 @@
 template< typename T1, typename T2, typename T3, typename T4 >
 struct and_impl< true,T1,T2,T3,T4 >
     : and_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
         , T2, T3, T4
         , true_
         >
@@ -41,21 +41,21 @@
 } // namespace aux
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
     , typename T3 = true_, typename T4 = true_, typename T5 = true_
     >
 struct and_
 
     : aux::and_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
         , T2, T3, T4, T5
         >
 
 {
 };
 
-BOOST_MPL_AUX_NA_SPEC2(
+NDNBOOST_MPL_AUX_NA_SPEC2(
       2
     , 5
     , and_
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/arg.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/arg.hpp
index 9a157c2..154476a 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/arg.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/plain/arg.hpp
@@ -10,12 +10,12 @@
 // Preprocessed version of "ndnboost/mpl/arg.hpp" header
 // -- DO NOT modify by hand!
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 template<> struct arg< -1 >
 {
-    BOOST_STATIC_CONSTANT(int, value  = -1);
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_STATIC_CONSTANT(int, value  = -1);
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -24,16 +24,16 @@
     struct apply
     {
         typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<1>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 1);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 1);
     typedef arg<2> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -42,16 +42,16 @@
     struct apply
     {
         typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<2>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 2);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 2);
     typedef arg<3> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -60,16 +60,16 @@
     struct apply
     {
         typedef U2 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<3>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 3);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 3);
     typedef arg<4> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -78,16 +78,16 @@
     struct apply
     {
         typedef U3 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<4>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 4);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 4);
     typedef arg<5> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -96,16 +96,16 @@
     struct apply
     {
         typedef U4 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
 template<> struct arg<5>
 {
-    BOOST_STATIC_CONSTANT(int, value  = 5);
+    NDNBOOST_STATIC_CONSTANT(int, value  = 5);
     typedef arg<6> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
 
     template<
           typename U1 = na, typename U2 = na, typename U3 = na
@@ -114,10 +114,10 @@
     struct apply
     {
         typedef U5 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
     };
 };
 
-BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
+NDNBOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/basic_bind.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/basic_bind.hpp
index a2a565e..8e0bf73 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/basic_bind.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/plain/basic_bind.hpp
@@ -82,8 +82,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
 
 template<
       typename F
@@ -133,8 +133,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
 
 template<
       typename F, typename T1
@@ -185,8 +185,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
 
 template<
       typename F, typename T1, typename T2
@@ -238,8 +238,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
 
 template<
       typename F, typename T1, typename T2, typename T3
@@ -293,8 +293,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
 
 template<
       typename F, typename T1, typename T2, typename T3, typename T4
@@ -351,8 +351,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
 
 /// primary template (not a specialization!)
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/bind.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/bind.hpp
index f2cde5a..45cfc67 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/bind.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/plain/bind.hpp
@@ -104,8 +104,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
 
 template<
       typename F
@@ -162,8 +162,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
 
 template<
       typename F, typename T1
@@ -225,8 +225,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
 
 template<
       typename F, typename T1, typename T2
@@ -293,8 +293,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_ARITY_SPEC(4, bind3)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
 
 template<
       typename F, typename T1, typename T2, typename T3
@@ -367,8 +367,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_ARITY_SPEC(5, bind4)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
 
 template<
       typename F, typename T1, typename T2, typename T3, typename T4
@@ -448,8 +448,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_ARITY_SPEC(6, bind5)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
 
 /// primary template (not a specialization!)
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/bitand.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/bitand.hpp
index f0575f5..4d50bbe 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/bitand.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/plain/bitand.hpp
@@ -18,8 +18,8 @@
     >
 struct bitand_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,8 +62,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct bitand_
@@ -78,7 +78,7 @@
 
     : bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitand_
         , ( N1, N2, N3, N4, na )
@@ -92,7 +92,7 @@
 
     : bitand_< bitand_< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitand_
         , ( N1, N2, N3, na, na )
@@ -108,7 +108,7 @@
         , typename bitand_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitand_
         , ( N1, N2, na, na, na )
@@ -116,7 +116,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
 
 }}
 
@@ -131,8 +131,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  & BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  & NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/bitor.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/bitor.hpp
index 6d4811b..ad02a39 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/bitor.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/plain/bitor.hpp
@@ -18,8 +18,8 @@
     >
 struct bitor_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,8 +62,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct bitor_
@@ -78,7 +78,7 @@
 
     : bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitor_
         , ( N1, N2, N3, N4, na )
@@ -92,7 +92,7 @@
 
     : bitor_< bitor_< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitor_
         , ( N1, N2, N3, na, na )
@@ -108,7 +108,7 @@
         , typename bitor_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitor_
         , ( N1, N2, na, na, na )
@@ -116,7 +116,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
 
 }}
 
@@ -131,8 +131,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  | BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  | NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/bitxor.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/bitxor.hpp
index a4035d0..5a2e8a6 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/bitxor.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/plain/bitxor.hpp
@@ -18,8 +18,8 @@
     >
 struct bitxor_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,8 +62,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct bitxor_
@@ -78,7 +78,7 @@
 
     : bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitxor_
         , ( N1, N2, N3, N4, na )
@@ -92,7 +92,7 @@
 
     : bitxor_< bitxor_< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitxor_
         , ( N1, N2, N3, na, na )
@@ -108,7 +108,7 @@
         , typename bitxor_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , bitxor_
         , ( N1, N2, na, na, na )
@@ -116,7 +116,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
 
 }}
 
@@ -131,8 +131,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  ^ BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  ^ NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/divides.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/divides.hpp
index 4d3d24e..bcf6e20 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/divides.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/plain/divides.hpp
@@ -17,8 +17,8 @@
     >
 struct divides_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct divides
@@ -77,7 +77,7 @@
 
     : divides< divides< divides< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , divides
         , ( N1, N2, N3, N4, na )
@@ -91,7 +91,7 @@
 
     : divides< divides< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , divides
         , ( N1, N2, N3, na, na )
@@ -107,7 +107,7 @@
         , typename divides_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , divides
         , ( N1, N2, na, na, na )
@@ -115,7 +115,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
 
 }}
 
@@ -130,8 +130,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  / BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  / NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/equal_to.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/equal_to.hpp
index 296c69c..e070a08 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/equal_to.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/plain/equal_to.hpp
@@ -17,8 +17,8 @@
     >
 struct equal_to_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct equal_to
 
@@ -73,7 +73,7 @@
 {
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
 
 }}
 
@@ -84,7 +84,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value  == BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value  == NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/full_lambda.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/full_lambda.hpp
index de658d8..7da971e 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/full_lambda.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/plain/full_lambda.hpp
@@ -548,7 +548,7 @@
     typedef typename le_result_::type type;
 };
 
-BOOST_MPL_AUX_NA_SPEC(2, lambda)
+NDNBOOST_MPL_AUX_NA_SPEC(2, lambda)
 
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/greater.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/greater.hpp
index f2835d7..54a35d5 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/greater.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/plain/greater.hpp
@@ -17,8 +17,8 @@
     >
 struct greater_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct greater
 
@@ -73,7 +73,7 @@
 {
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
 
 }}
 
@@ -84,7 +84,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value > NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/greater_equal.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/greater_equal.hpp
index c67d5d6..d3b4035 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/greater_equal.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/plain/greater_equal.hpp
@@ -17,8 +17,8 @@
     >
 struct greater_equal_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct greater_equal
 
@@ -73,7 +73,7 @@
 {
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
 
 }}
 
@@ -84,7 +84,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value >= NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/inherit.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/inherit.hpp
index 8c7914d..2773012 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/inherit.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/plain/inherit.hpp
@@ -12,8 +12,8 @@
 namespace ndnboost { namespace mpl {
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
     >
 struct inherit2
     : T1, T2
@@ -25,24 +25,24 @@
 struct inherit2< T1,empty_base >
 {
     typedef T1 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base))
 };
 
 template< typename T2 >
 struct inherit2< empty_base,T2 >
 {
     typedef T2 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2))
 };
 
 template<>
 struct inherit2< empty_base,empty_base >
 {
     typedef empty_base type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base))
 };
 
-BOOST_MPL_AUX_NA_SPEC(2, inherit2)
+NDNBOOST_MPL_AUX_NA_SPEC(2, inherit2)
 
 template<
       typename T1 = na, typename T2 = na, typename T3 = na
@@ -57,7 +57,7 @@
 {
 };
 
-BOOST_MPL_AUX_NA_SPEC(3, inherit3)
+NDNBOOST_MPL_AUX_NA_SPEC(3, inherit3)
 
 template<
       typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
@@ -72,7 +72,7 @@
 {
 };
 
-BOOST_MPL_AUX_NA_SPEC(4, inherit4)
+NDNBOOST_MPL_AUX_NA_SPEC(4, inherit4)
 
 template<
       typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
@@ -88,7 +88,7 @@
 {
 };
 
-BOOST_MPL_AUX_NA_SPEC(5, inherit5)
+NDNBOOST_MPL_AUX_NA_SPEC(5, inherit5)
 
 /// primary template
 
@@ -118,8 +118,8 @@
     };
 };
 
-BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit)
+NDNBOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit)
+NDNBOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit)
+NDNBOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit)
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/iter_fold_if_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/iter_fold_if_impl.hpp
index b0a2864..a74bd83 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/iter_fold_if_impl.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/plain/iter_fold_if_impl.hpp
@@ -61,7 +61,7 @@
 {
     typedef typename apply2< Predicate,State,Iterator >::type not_last;
     typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
+          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
         >::template result_< Iterator,State,ForwardOp, mpl::next<Iterator> > impl_;
 
     typedef typename impl_::state state;
@@ -78,7 +78,7 @@
 {
     typedef typename apply2< Predicate,State,Iterator >::type not_last;
     typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
+          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
         >::template result_< Iterator,State,BackwardOp, identity<Iterator> > impl_;
 
     typedef typename impl_::state state;
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/lambda_no_ctps.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/lambda_no_ctps.hpp
index 757a165..554028b 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/lambda_no_ctps.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/plain/lambda_no_ctps.hpp
@@ -44,7 +44,7 @@
         typedef lambda< typename F::arg1, Tag, false_ > l1;
         typedef typename l1::is_le is_le1;
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
             > is_le;
 
         typedef bind1<
@@ -74,7 +74,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
             > is_le;
 
         typedef bind2<
@@ -106,7 +106,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value
             > is_le;
 
         typedef bind3<
@@ -140,7 +140,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value
             > is_le;
 
         typedef bind4<
@@ -177,7 +177,7 @@
         
 
         typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value
+              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value
             > is_le;
 
         typedef bind5<
@@ -214,7 +214,7 @@
     typedef typename l_::is_le is_le;
 };
 
-BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
+NDNBOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
 
 template<
       typename T
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/less.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/less.hpp
index debece1..f2edd0a 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/less.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/plain/less.hpp
@@ -17,8 +17,8 @@
     >
 struct less_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct less
 
@@ -73,7 +73,7 @@
 {
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less)
 
 }}
 
@@ -84,7 +84,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value > NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/less_equal.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/less_equal.hpp
index c18dd6a..838af91 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/less_equal.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/plain/less_equal.hpp
@@ -17,8 +17,8 @@
     >
 struct less_equal_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct less_equal
 
@@ -73,7 +73,7 @@
 {
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
 
 }}
 
@@ -84,7 +84,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value <= NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/minus.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/minus.hpp
index c491d53..9e82fb0 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/minus.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/plain/minus.hpp
@@ -17,8 +17,8 @@
     >
 struct minus_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct minus
@@ -77,7 +77,7 @@
 
     : minus< minus< minus< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , minus
         , ( N1, N2, N3, N4, na )
@@ -91,7 +91,7 @@
 
     : minus< minus< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , minus
         , ( N1, N2, N3, na, na )
@@ -107,7 +107,7 @@
         , typename minus_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , minus
         , ( N1, N2, na, na, na )
@@ -115,7 +115,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
 
 }}
 
@@ -130,8 +130,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  - BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  - NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/modulus.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/modulus.hpp
index 7423c57..15143d6 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/modulus.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/plain/modulus.hpp
@@ -17,8 +17,8 @@
     >
 struct modulus_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct modulus
 
@@ -73,7 +73,7 @@
 {
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
 
 }}
 
@@ -88,8 +88,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  % BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  % NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/not_equal_to.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/not_equal_to.hpp
index 1ce634d..ff115af 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/not_equal_to.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/plain/not_equal_to.hpp
@@ -17,8 +17,8 @@
     >
 struct not_equal_to_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct not_equal_to
 
@@ -73,7 +73,7 @@
 {
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
 
 }}
 
@@ -84,7 +84,7 @@
 {
     template< typename N1, typename N2 > struct apply
 
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value != NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
     {
     };
 };
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/or.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/or.hpp
index 6c5765d..41ce3d3 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/or.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/plain/or.hpp
@@ -22,7 +22,7 @@
 template< typename T1, typename T2, typename T3, typename T4 >
 struct or_impl< false,T1,T2,T3,T4 >
     : or_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
         , T2, T3, T4
         , false_
         >
@@ -41,21 +41,21 @@
 } // namespace aux
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
     , typename T3 = false_, typename T4 = false_, typename T5 = false_
     >
 struct or_
 
     : aux::or_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
         , T2, T3, T4, T5
         >
 
 {
 };
 
-BOOST_MPL_AUX_NA_SPEC2(
+NDNBOOST_MPL_AUX_NA_SPEC2(
       2
     , 5
     , or_
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/placeholders.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/placeholders.hpp
index ecd4514..3a28c09 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/placeholders.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/plain/placeholders.hpp
@@ -10,96 +10,96 @@
 // Preprocessed version of "ndnboost/mpl/placeholders.hpp" header
 // -- DO NOT modify by hand!
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg< -1 > _;
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
 }
 
 }}
 
 /// agurt, 17/mar/02: one more placeholder for the last 'apply#' 
 /// specialization
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<1> _1;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<2> _2;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<3> _3;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<4> _4;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<5> _5;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
 }
 
 }}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<6> _6;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6;
 }
 
 }}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/plus.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/plus.hpp
index 01a191d..4e7fe75 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/plus.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/plain/plus.hpp
@@ -17,8 +17,8 @@
     >
 struct plus_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct plus
@@ -77,7 +77,7 @@
 
     : plus< plus< plus< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , plus
         , ( N1, N2, N3, N4, na )
@@ -91,7 +91,7 @@
 
     : plus< plus< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , plus
         , ( N1, N2, N3, na, na )
@@ -107,7 +107,7 @@
         , typename plus_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , plus
         , ( N1, N2, na, na, na )
@@ -115,7 +115,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
 
 }}
 
@@ -130,8 +130,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  + BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  + NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/shift_left.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/shift_left.hpp
index a37d3b2..7c4d389 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/shift_left.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/plain/shift_left.hpp
@@ -18,8 +18,8 @@
     >
 struct shift_left_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< shift_left_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,8 +62,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct shift_left
 
@@ -74,7 +74,7 @@
 {
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
 
 }}
 
@@ -86,8 +86,8 @@
 
         : integral_c<
               typename N::value_type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N)::value
-                  << BOOST_MPL_AUX_VALUE_WKND(S)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N)::value
+                  << NDNBOOST_MPL_AUX_VALUE_WKND(S)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/shift_right.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/shift_right.hpp
index faa8302..9b608c1 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/shift_right.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/plain/shift_right.hpp
@@ -18,8 +18,8 @@
     >
 struct shift_right_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< shift_right_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -34,7 +34,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -43,7 +43,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -52,7 +52,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -62,8 +62,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     >
 struct shift_right
 
@@ -74,7 +74,7 @@
 {
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
 
 }}
 
@@ -86,8 +86,8 @@
 
         : integral_c<
               typename N::value_type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N)::value
-                  >> BOOST_MPL_AUX_VALUE_WKND(S)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N)::value
+                  >> NDNBOOST_MPL_AUX_VALUE_WKND(S)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/times.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/times.hpp
index f0e16aa..6ee853a 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/times.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/plain/times.hpp
@@ -17,8 +17,8 @@
     >
 struct times_impl
     : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+          ( NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
             )
 
         , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 >
@@ -33,7 +33,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -42,7 +42,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -51,7 +51,7 @@
     template< typename U1, typename U2 > struct apply
     {
         typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
+        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
     };
 };
 
@@ -61,8 +61,8 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
     , typename N3 = na, typename N4 = na, typename N5 = na
     >
 struct times
@@ -77,7 +77,7 @@
 
     : times< times< times< N1,N2 >, N3>, N4>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , times
         , ( N1, N2, N3, N4, na )
@@ -91,7 +91,7 @@
 
     : times< times< N1,N2 >, N3>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , times
         , ( N1, N2, N3, na, na )
@@ -107,7 +107,7 @@
         , typename times_tag<N2>::type
         >::template apply< N1,N2 >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           5
         , times
         , ( N1, N2, na, na, na )
@@ -115,7 +115,7 @@
 
 };
 
-BOOST_MPL_AUX_NA_SPEC2(2, 5, times)
+NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, times)
 
 }}
 
@@ -130,8 +130,8 @@
                   typename N1::value_type
                 , typename N2::value_type
                 >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  * BOOST_MPL_AUX_VALUE_WKND(N2)::value
+            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  * NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
                 )
             >
     {
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/unpack_args.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/unpack_args.hpp
index 9c9204f..aec31af 100644
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/unpack_args.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessed/plain/unpack_args.hpp
@@ -88,7 +88,7 @@
     };
 };
 
-BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
+NDNBOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
 
 }}
 
diff --git a/include/ndnboost/mpl/aux_/preprocessor/add.hpp b/include/ndnboost/mpl/aux_/preprocessor/add.hpp
index bd5abc6..340b703 100644
--- a/include/ndnboost/mpl/aux_/preprocessor/add.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessor/add.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_PREPROCESSOR_ADD_HPP_INCLUDED
-#define BOOST_MPL_AUX_PREPROCESSOR_ADD_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_PREPROCESSOR_ADD_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_PREPROCESSOR_ADD_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2002-2004
 //
@@ -16,50 +16,50 @@
 
 #include <ndnboost/mpl/aux_/config/preprocessor.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
+#if !defined(NDNBOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
 
 #   include <ndnboost/mpl/aux_/preprocessor/tuple.hpp>
 
-#if defined(BOOST_MPL_CFG_BROKEN_PP_MACRO_EXPANSION)
+#if defined(NDNBOOST_MPL_CFG_BROKEN_PP_MACRO_EXPANSION)
 #   include <ndnboost/preprocessor/cat.hpp>
 
-#   define BOOST_MPL_PP_ADD(i,j) \
-    BOOST_MPL_PP_ADD_DELAY(i,j) \
+#   define NDNBOOST_MPL_PP_ADD(i,j) \
+    NDNBOOST_MPL_PP_ADD_DELAY(i,j) \
     /**/
 
-#   define BOOST_MPL_PP_ADD_DELAY(i,j) \
-    BOOST_PP_CAT(BOOST_MPL_PP_TUPLE_11_ELEM_##i,BOOST_MPL_PP_ADD_##j) \
+#   define NDNBOOST_MPL_PP_ADD_DELAY(i,j) \
+    NDNBOOST_PP_CAT(NDNBOOST_MPL_PP_TUPLE_11_ELEM_##i,NDNBOOST_MPL_PP_ADD_##j) \
     /**/
 #else
-#   define BOOST_MPL_PP_ADD(i,j) \
-    BOOST_MPL_PP_ADD_DELAY(i,j) \
+#   define NDNBOOST_MPL_PP_ADD(i,j) \
+    NDNBOOST_MPL_PP_ADD_DELAY(i,j) \
     /**/
 
-#   define BOOST_MPL_PP_ADD_DELAY(i,j) \
-    BOOST_MPL_PP_TUPLE_11_ELEM_##i BOOST_MPL_PP_ADD_##j \
+#   define NDNBOOST_MPL_PP_ADD_DELAY(i,j) \
+    NDNBOOST_MPL_PP_TUPLE_11_ELEM_##i NDNBOOST_MPL_PP_ADD_##j \
     /**/
 #endif
 
-#   define BOOST_MPL_PP_ADD_0 (0,1,2,3,4,5,6,7,8,9,10)
-#   define BOOST_MPL_PP_ADD_1 (1,2,3,4,5,6,7,8,9,10,0)
-#   define BOOST_MPL_PP_ADD_2 (2,3,4,5,6,7,8,9,10,0,0)
-#   define BOOST_MPL_PP_ADD_3 (3,4,5,6,7,8,9,10,0,0,0)
-#   define BOOST_MPL_PP_ADD_4 (4,5,6,7,8,9,10,0,0,0,0)
-#   define BOOST_MPL_PP_ADD_5 (5,6,7,8,9,10,0,0,0,0,0)
-#   define BOOST_MPL_PP_ADD_6 (6,7,8,9,10,0,0,0,0,0,0)
-#   define BOOST_MPL_PP_ADD_7 (7,8,9,10,0,0,0,0,0,0,0)
-#   define BOOST_MPL_PP_ADD_8 (8,9,10,0,0,0,0,0,0,0,0)
-#   define BOOST_MPL_PP_ADD_9 (9,10,0,0,0,0,0,0,0,0,0)
-#   define BOOST_MPL_PP_ADD_10 (10,0,0,0,0,0,0,0,0,0,0)
+#   define NDNBOOST_MPL_PP_ADD_0 (0,1,2,3,4,5,6,7,8,9,10)
+#   define NDNBOOST_MPL_PP_ADD_1 (1,2,3,4,5,6,7,8,9,10,0)
+#   define NDNBOOST_MPL_PP_ADD_2 (2,3,4,5,6,7,8,9,10,0,0)
+#   define NDNBOOST_MPL_PP_ADD_3 (3,4,5,6,7,8,9,10,0,0,0)
+#   define NDNBOOST_MPL_PP_ADD_4 (4,5,6,7,8,9,10,0,0,0,0)
+#   define NDNBOOST_MPL_PP_ADD_5 (5,6,7,8,9,10,0,0,0,0,0)
+#   define NDNBOOST_MPL_PP_ADD_6 (6,7,8,9,10,0,0,0,0,0,0)
+#   define NDNBOOST_MPL_PP_ADD_7 (7,8,9,10,0,0,0,0,0,0,0)
+#   define NDNBOOST_MPL_PP_ADD_8 (8,9,10,0,0,0,0,0,0,0,0)
+#   define NDNBOOST_MPL_PP_ADD_9 (9,10,0,0,0,0,0,0,0,0,0)
+#   define NDNBOOST_MPL_PP_ADD_10 (10,0,0,0,0,0,0,0,0,0,0)
 
 #else
 
 #   include <ndnboost/preprocessor/arithmetic/add.hpp>
 
-#   define BOOST_MPL_PP_ADD(i,j) \
-    BOOST_PP_ADD(i,j) \
+#   define NDNBOOST_MPL_PP_ADD(i,j) \
+    NDNBOOST_PP_ADD(i,j) \
     /**/
     
 #endif 
 
-#endif // BOOST_MPL_AUX_PREPROCESSOR_ADD_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_PREPROCESSOR_ADD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/preprocessor/def_params_tail.hpp b/include/ndnboost/mpl/aux_/preprocessor/def_params_tail.hpp
index dcb31f0..f6536d0 100644
--- a/include/ndnboost/mpl/aux_/preprocessor/def_params_tail.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessor/def_params_tail.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_PREPROCESSOR_DEF_PARAMS_TAIL_HPP_INCLUDED
-#define BOOST_MPL_AUX_PREPROCESSOR_DEF_PARAMS_TAIL_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_PREPROCESSOR_DEF_PARAMS_TAIL_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_PREPROCESSOR_DEF_PARAMS_TAIL_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -23,43 +23,43 @@
 #include <ndnboost/preprocessor/identity.hpp>
 #include <ndnboost/preprocessor/empty.hpp>
 
-// BOOST_MPL_PP_DEF_PARAMS_TAIL(1,T,value): , T1 = value, .., Tn = value
-// BOOST_MPL_PP_DEF_PARAMS_TAIL(2,T,value): , T2 = value, .., Tn = value
-// BOOST_MPL_PP_DEF_PARAMS_TAIL(n,T,value): <nothing>
+// NDNBOOST_MPL_PP_DEF_PARAMS_TAIL(1,T,value): , T1 = value, .., Tn = value
+// NDNBOOST_MPL_PP_DEF_PARAMS_TAIL(2,T,value): , T2 = value, .., Tn = value
+// NDNBOOST_MPL_PP_DEF_PARAMS_TAIL(n,T,value): <nothing>
 
-#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
+#if !defined(NDNBOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
 
 #   include <ndnboost/mpl/aux_/preprocessor/filter_params.hpp>
 #   include <ndnboost/mpl/aux_/preprocessor/sub.hpp>
 
-#   define BOOST_MPL_PP_DEF_PARAMS_TAIL_IMPL(i, param, value_func) \
-    BOOST_MPL_PP_DEF_PARAMS_TAIL_DELAY_1( \
+#   define NDNBOOST_MPL_PP_DEF_PARAMS_TAIL_IMPL(i, param, value_func) \
+    NDNBOOST_MPL_PP_DEF_PARAMS_TAIL_DELAY_1( \
           i \
-        , BOOST_MPL_PP_SUB(BOOST_MPL_LIMIT_METAFUNCTION_ARITY,i) \
+        , NDNBOOST_MPL_PP_SUB(NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY,i) \
         , param \
         , value_func \
         ) \
     /**/
 
-#   define BOOST_MPL_PP_DEF_PARAMS_TAIL_DELAY_1(i, n, param, value_func) \
-    BOOST_MPL_PP_DEF_PARAMS_TAIL_DELAY_2(i,n,param,value_func) \
+#   define NDNBOOST_MPL_PP_DEF_PARAMS_TAIL_DELAY_1(i, n, param, value_func) \
+    NDNBOOST_MPL_PP_DEF_PARAMS_TAIL_DELAY_2(i,n,param,value_func) \
     /**/
 
-#   define BOOST_MPL_PP_DEF_PARAMS_TAIL_DELAY_2(i, n, param, value_func) \
-    BOOST_PP_COMMA_IF(BOOST_PP_AND(i,n)) \
-    BOOST_MPL_PP_DEF_PARAMS_TAIL_##i(n,param,value_func) \
+#   define NDNBOOST_MPL_PP_DEF_PARAMS_TAIL_DELAY_2(i, n, param, value_func) \
+    NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_AND(i,n)) \
+    NDNBOOST_MPL_PP_DEF_PARAMS_TAIL_##i(n,param,value_func) \
     /**/
 
-#   define BOOST_MPL_PP_DEF_PARAMS_TAIL_0(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##1 v(),p##2 v(),p##3 v(),p##4 v(),p##5 v(),p##6 v(),p##7 v(),p##8 v(),p##9 v())
-#   define BOOST_MPL_PP_DEF_PARAMS_TAIL_1(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##2 v(),p##3 v(),p##4 v(),p##5 v(),p##6 v(),p##7 v(),p##8 v(),p##9 v(),p1)
-#   define BOOST_MPL_PP_DEF_PARAMS_TAIL_2(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##3 v(),p##4 v(),p##5 v(),p##6 v(),p##7 v(),p##8 v(),p##9 v(),p1,p2)
-#   define BOOST_MPL_PP_DEF_PARAMS_TAIL_3(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##4 v(),p##5 v(),p##6 v(),p##7 v(),p##8 v(),p##9 v(),p1,p2,p3)
-#   define BOOST_MPL_PP_DEF_PARAMS_TAIL_4(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##5 v(),p##6 v(),p##7 v(),p##8 v(),p##9 v(),p1,p2,p3,p4)
-#   define BOOST_MPL_PP_DEF_PARAMS_TAIL_5(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##6 v(),p##7 v(),p##8 v(),p##9 v(),p1,p2,p3,p4,p5)
-#   define BOOST_MPL_PP_DEF_PARAMS_TAIL_6(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##7 v(),p##8 v(),p##9 v(),p1,p2,p3,p4,p5,p6)
-#   define BOOST_MPL_PP_DEF_PARAMS_TAIL_7(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##8 v(),p##9 v(),p1,p2,p3,p4,p5,p6,p7)
-#   define BOOST_MPL_PP_DEF_PARAMS_TAIL_8(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##9 v(),p1,p2,p3,p4,p5,p6,p7,p8)
-#   define BOOST_MPL_PP_DEF_PARAMS_TAIL_9(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p1,p2,p3,p4,p5,p6,p7,p8,p9)
+#   define NDNBOOST_MPL_PP_DEF_PARAMS_TAIL_0(i,p,v) NDNBOOST_MPL_PP_FILTER_PARAMS_##i(p##1 v(),p##2 v(),p##3 v(),p##4 v(),p##5 v(),p##6 v(),p##7 v(),p##8 v(),p##9 v())
+#   define NDNBOOST_MPL_PP_DEF_PARAMS_TAIL_1(i,p,v) NDNBOOST_MPL_PP_FILTER_PARAMS_##i(p##2 v(),p##3 v(),p##4 v(),p##5 v(),p##6 v(),p##7 v(),p##8 v(),p##9 v(),p1)
+#   define NDNBOOST_MPL_PP_DEF_PARAMS_TAIL_2(i,p,v) NDNBOOST_MPL_PP_FILTER_PARAMS_##i(p##3 v(),p##4 v(),p##5 v(),p##6 v(),p##7 v(),p##8 v(),p##9 v(),p1,p2)
+#   define NDNBOOST_MPL_PP_DEF_PARAMS_TAIL_3(i,p,v) NDNBOOST_MPL_PP_FILTER_PARAMS_##i(p##4 v(),p##5 v(),p##6 v(),p##7 v(),p##8 v(),p##9 v(),p1,p2,p3)
+#   define NDNBOOST_MPL_PP_DEF_PARAMS_TAIL_4(i,p,v) NDNBOOST_MPL_PP_FILTER_PARAMS_##i(p##5 v(),p##6 v(),p##7 v(),p##8 v(),p##9 v(),p1,p2,p3,p4)
+#   define NDNBOOST_MPL_PP_DEF_PARAMS_TAIL_5(i,p,v) NDNBOOST_MPL_PP_FILTER_PARAMS_##i(p##6 v(),p##7 v(),p##8 v(),p##9 v(),p1,p2,p3,p4,p5)
+#   define NDNBOOST_MPL_PP_DEF_PARAMS_TAIL_6(i,p,v) NDNBOOST_MPL_PP_FILTER_PARAMS_##i(p##7 v(),p##8 v(),p##9 v(),p1,p2,p3,p4,p5,p6)
+#   define NDNBOOST_MPL_PP_DEF_PARAMS_TAIL_7(i,p,v) NDNBOOST_MPL_PP_FILTER_PARAMS_##i(p##8 v(),p##9 v(),p1,p2,p3,p4,p5,p6,p7)
+#   define NDNBOOST_MPL_PP_DEF_PARAMS_TAIL_8(i,p,v) NDNBOOST_MPL_PP_FILTER_PARAMS_##i(p##9 v(),p1,p2,p3,p4,p5,p6,p7,p8)
+#   define NDNBOOST_MPL_PP_DEF_PARAMS_TAIL_9(i,p,v) NDNBOOST_MPL_PP_FILTER_PARAMS_##i(p1,p2,p3,p4,p5,p6,p7,p8,p9)
 
 #else
 
@@ -70,36 +70,36 @@
 #   include <ndnboost/preprocessor/repeat.hpp>
 #   include <ndnboost/preprocessor/cat.hpp>
 
-#   define BOOST_MPL_PP_AUX_TAIL_PARAM_FUNC(unused, i, op) \
-    , BOOST_PP_CAT( \
-          BOOST_PP_TUPLE_ELEM(3, 1, op) \
-        , BOOST_PP_ADD_D(1, i, BOOST_PP_INC(BOOST_PP_TUPLE_ELEM(3, 0, op))) \
-        ) BOOST_PP_TUPLE_ELEM(3, 2, op)() \
+#   define NDNBOOST_MPL_PP_AUX_TAIL_PARAM_FUNC(unused, i, op) \
+    , NDNBOOST_PP_CAT( \
+          NDNBOOST_PP_TUPLE_ELEM(3, 1, op) \
+        , NDNBOOST_PP_ADD_D(1, i, NDNBOOST_PP_INC(NDNBOOST_PP_TUPLE_ELEM(3, 0, op))) \
+        ) NDNBOOST_PP_TUPLE_ELEM(3, 2, op)() \
     /**/
 
-#   define BOOST_MPL_PP_DEF_PARAMS_TAIL_IMPL(i, param, value_func) \
-    BOOST_PP_REPEAT( \
-          BOOST_PP_SUB_D(1, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, i) \
-        , BOOST_MPL_PP_AUX_TAIL_PARAM_FUNC \
+#   define NDNBOOST_MPL_PP_DEF_PARAMS_TAIL_IMPL(i, param, value_func) \
+    NDNBOOST_PP_REPEAT( \
+          NDNBOOST_PP_SUB_D(1, NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY, i) \
+        , NDNBOOST_MPL_PP_AUX_TAIL_PARAM_FUNC \
         , (i, param, value_func) \
         ) \
     /**/
 
 
-#endif // BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES
+#endif // NDNBOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES
 
-#define BOOST_MPL_PP_DEF_PARAMS_TAIL(i, param, value) \
-    BOOST_MPL_PP_DEF_PARAMS_TAIL_IMPL(i, param, BOOST_PP_IDENTITY(=value)) \
+#define NDNBOOST_MPL_PP_DEF_PARAMS_TAIL(i, param, value) \
+    NDNBOOST_MPL_PP_DEF_PARAMS_TAIL_IMPL(i, param, NDNBOOST_PP_IDENTITY(=value)) \
     /**/
 
-#if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
-#   define BOOST_MPL_PP_NESTED_DEF_PARAMS_TAIL(i, param, value) \
-    BOOST_MPL_PP_DEF_PARAMS_TAIL_IMPL(i, param, BOOST_PP_IDENTITY(=value)) \
+#if !defined(NDNBOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
+#   define NDNBOOST_MPL_PP_NESTED_DEF_PARAMS_TAIL(i, param, value) \
+    NDNBOOST_MPL_PP_DEF_PARAMS_TAIL_IMPL(i, param, NDNBOOST_PP_IDENTITY(=value)) \
     /**/
 #else
-#   define BOOST_MPL_PP_NESTED_DEF_PARAMS_TAIL(i, param, value) \
-    BOOST_MPL_PP_DEF_PARAMS_TAIL_IMPL(i, param, BOOST_PP_EMPTY) \
+#   define NDNBOOST_MPL_PP_NESTED_DEF_PARAMS_TAIL(i, param, value) \
+    NDNBOOST_MPL_PP_DEF_PARAMS_TAIL_IMPL(i, param, NDNBOOST_PP_EMPTY) \
     /**/
 #endif
 
-#endif // BOOST_MPL_AUX_PREPROCESSOR_DEF_PARAMS_TAIL_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_PREPROCESSOR_DEF_PARAMS_TAIL_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/preprocessor/default_params.hpp b/include/ndnboost/mpl/aux_/preprocessor/default_params.hpp
index a82d692..a5233f4 100644
--- a/include/ndnboost/mpl/aux_/preprocessor/default_params.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessor/default_params.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_PREPROCESSOR_DEFAULT_PARAMS_HPP_INCLUDED
-#define BOOST_MPL_AUX_PREPROCESSOR_DEFAULT_PARAMS_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_PREPROCESSOR_DEFAULT_PARAMS_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_PREPROCESSOR_DEFAULT_PARAMS_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2002-2004
 //
@@ -16,29 +16,29 @@
 
 #include <ndnboost/mpl/aux_/config/preprocessor.hpp>
 
-// BOOST_MPL_PP_DEFAULT_PARAMS(0,T,int): <nothing>
-// BOOST_MPL_PP_DEFAULT_PARAMS(1,T,int): T1 = int
-// BOOST_MPL_PP_DEFAULT_PARAMS(2,T,int): T1 = int, T2 = int
-// BOOST_MPL_PP_DEFAULT_PARAMS(n,T,int): T1 = int, T2 = int, .., Tn = int
+// NDNBOOST_MPL_PP_DEFAULT_PARAMS(0,T,int): <nothing>
+// NDNBOOST_MPL_PP_DEFAULT_PARAMS(1,T,int): T1 = int
+// NDNBOOST_MPL_PP_DEFAULT_PARAMS(2,T,int): T1 = int, T2 = int
+// NDNBOOST_MPL_PP_DEFAULT_PARAMS(n,T,int): T1 = int, T2 = int, .., Tn = int
 
-#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
+#if !defined(NDNBOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
 
 #   include <ndnboost/preprocessor/cat.hpp>
 
-#   define BOOST_MPL_PP_DEFAULT_PARAMS(n,p,v) \
-    BOOST_PP_CAT(BOOST_MPL_PP_DEFAULT_PARAMS_,n)(p,v) \
+#   define NDNBOOST_MPL_PP_DEFAULT_PARAMS(n,p,v) \
+    NDNBOOST_PP_CAT(NDNBOOST_MPL_PP_DEFAULT_PARAMS_,n)(p,v) \
     /**/
     
-#   define BOOST_MPL_PP_DEFAULT_PARAMS_0(p,v)
-#   define BOOST_MPL_PP_DEFAULT_PARAMS_1(p,v) p##1=v
-#   define BOOST_MPL_PP_DEFAULT_PARAMS_2(p,v) p##1=v,p##2=v
-#   define BOOST_MPL_PP_DEFAULT_PARAMS_3(p,v) p##1=v,p##2=v,p##3=v
-#   define BOOST_MPL_PP_DEFAULT_PARAMS_4(p,v) p##1=v,p##2=v,p##3=v,p##4=v
-#   define BOOST_MPL_PP_DEFAULT_PARAMS_5(p,v) p##1=v,p##2=v,p##3=v,p##4=v,p##5=v
-#   define BOOST_MPL_PP_DEFAULT_PARAMS_6(p,v) p##1=v,p##2=v,p##3=v,p##4=v,p##5=v,p##6=v
-#   define BOOST_MPL_PP_DEFAULT_PARAMS_7(p,v) p##1=v,p##2=v,p##3=v,p##4=v,p##5=v,p##6=v,p##7=v
-#   define BOOST_MPL_PP_DEFAULT_PARAMS_8(p,v) p##1=v,p##2=v,p##3=v,p##4=v,p##5=v,p##6=v,p##7=v,p##8=v
-#   define BOOST_MPL_PP_DEFAULT_PARAMS_9(p,v) p##1=v,p##2=v,p##3=v,p##4=v,p##5=v,p##6=v,p##7=v,p##8=v,p##9=v
+#   define NDNBOOST_MPL_PP_DEFAULT_PARAMS_0(p,v)
+#   define NDNBOOST_MPL_PP_DEFAULT_PARAMS_1(p,v) p##1=v
+#   define NDNBOOST_MPL_PP_DEFAULT_PARAMS_2(p,v) p##1=v,p##2=v
+#   define NDNBOOST_MPL_PP_DEFAULT_PARAMS_3(p,v) p##1=v,p##2=v,p##3=v
+#   define NDNBOOST_MPL_PP_DEFAULT_PARAMS_4(p,v) p##1=v,p##2=v,p##3=v,p##4=v
+#   define NDNBOOST_MPL_PP_DEFAULT_PARAMS_5(p,v) p##1=v,p##2=v,p##3=v,p##4=v,p##5=v
+#   define NDNBOOST_MPL_PP_DEFAULT_PARAMS_6(p,v) p##1=v,p##2=v,p##3=v,p##4=v,p##5=v,p##6=v
+#   define NDNBOOST_MPL_PP_DEFAULT_PARAMS_7(p,v) p##1=v,p##2=v,p##3=v,p##4=v,p##5=v,p##6=v,p##7=v
+#   define NDNBOOST_MPL_PP_DEFAULT_PARAMS_8(p,v) p##1=v,p##2=v,p##3=v,p##4=v,p##5=v,p##6=v,p##7=v,p##8=v
+#   define NDNBOOST_MPL_PP_DEFAULT_PARAMS_9(p,v) p##1=v,p##2=v,p##3=v,p##4=v,p##5=v,p##6=v,p##7=v,p##8=v,p##9=v
 
 #else
 
@@ -48,20 +48,20 @@
 #   include <ndnboost/preprocessor/inc.hpp>
 #   include <ndnboost/preprocessor/cat.hpp>
 
-#   define BOOST_MPL_PP_AUX_DEFAULT_PARAM_FUNC(unused, i, pv) \
-    BOOST_PP_COMMA_IF(i) \
-    BOOST_PP_CAT( BOOST_PP_TUPLE_ELEM(2,0,pv), BOOST_PP_INC(i) ) \
-        = BOOST_PP_TUPLE_ELEM(2,1,pv) \
+#   define NDNBOOST_MPL_PP_AUX_DEFAULT_PARAM_FUNC(unused, i, pv) \
+    NDNBOOST_PP_COMMA_IF(i) \
+    NDNBOOST_PP_CAT( NDNBOOST_PP_TUPLE_ELEM(2,0,pv), NDNBOOST_PP_INC(i) ) \
+        = NDNBOOST_PP_TUPLE_ELEM(2,1,pv) \
     /**/
 
-#   define BOOST_MPL_PP_DEFAULT_PARAMS(n, param, value) \
-    BOOST_PP_REPEAT( \
+#   define NDNBOOST_MPL_PP_DEFAULT_PARAMS(n, param, value) \
+    NDNBOOST_PP_REPEAT( \
           n \
-        , BOOST_MPL_PP_AUX_DEFAULT_PARAM_FUNC \
+        , NDNBOOST_MPL_PP_AUX_DEFAULT_PARAM_FUNC \
         , (param,value) \
         ) \
     /**/
 
 #endif
 
-#endif // BOOST_MPL_AUX_PREPROCESSOR_DEFAULT_PARAMS_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_PREPROCESSOR_DEFAULT_PARAMS_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/preprocessor/enum.hpp b/include/ndnboost/mpl/aux_/preprocessor/enum.hpp
index a1660b9..05a1641 100644
--- a/include/ndnboost/mpl/aux_/preprocessor/enum.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessor/enum.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_PREPROCESSOR_ENUM_HPP_INCLUDED
-#define BOOST_MPL_AUX_PREPROCESSOR_ENUM_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_PREPROCESSOR_ENUM_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_PREPROCESSOR_ENUM_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -16,47 +16,47 @@
 
 #include <ndnboost/mpl/aux_/config/preprocessor.hpp>
 
-// BOOST_MPL_PP_ENUM(0,int): <nothing>
-// BOOST_MPL_PP_ENUM(1,int): int
-// BOOST_MPL_PP_ENUM(2,int): int, int
-// BOOST_MPL_PP_ENUM(n,int): int, int, .., int
+// NDNBOOST_MPL_PP_ENUM(0,int): <nothing>
+// NDNBOOST_MPL_PP_ENUM(1,int): int
+// NDNBOOST_MPL_PP_ENUM(2,int): int, int
+// NDNBOOST_MPL_PP_ENUM(n,int): int, int, .., int
 
-#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
+#if !defined(NDNBOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
 
 #   include <ndnboost/preprocessor/cat.hpp>
 
-#   define BOOST_MPL_PP_ENUM(n, param) \
-    BOOST_PP_CAT(BOOST_MPL_PP_ENUM_,n)(param) \
+#   define NDNBOOST_MPL_PP_ENUM(n, param) \
+    NDNBOOST_PP_CAT(NDNBOOST_MPL_PP_ENUM_,n)(param) \
     /**/
     
-#   define BOOST_MPL_PP_ENUM_0(p)
-#   define BOOST_MPL_PP_ENUM_1(p) p
-#   define BOOST_MPL_PP_ENUM_2(p) p,p
-#   define BOOST_MPL_PP_ENUM_3(p) p,p,p
-#   define BOOST_MPL_PP_ENUM_4(p) p,p,p,p
-#   define BOOST_MPL_PP_ENUM_5(p) p,p,p,p,p
-#   define BOOST_MPL_PP_ENUM_6(p) p,p,p,p,p,p
-#   define BOOST_MPL_PP_ENUM_7(p) p,p,p,p,p,p,p
-#   define BOOST_MPL_PP_ENUM_8(p) p,p,p,p,p,p,p,p
-#   define BOOST_MPL_PP_ENUM_9(p) p,p,p,p,p,p,p,p,p
+#   define NDNBOOST_MPL_PP_ENUM_0(p)
+#   define NDNBOOST_MPL_PP_ENUM_1(p) p
+#   define NDNBOOST_MPL_PP_ENUM_2(p) p,p
+#   define NDNBOOST_MPL_PP_ENUM_3(p) p,p,p
+#   define NDNBOOST_MPL_PP_ENUM_4(p) p,p,p,p
+#   define NDNBOOST_MPL_PP_ENUM_5(p) p,p,p,p,p
+#   define NDNBOOST_MPL_PP_ENUM_6(p) p,p,p,p,p,p
+#   define NDNBOOST_MPL_PP_ENUM_7(p) p,p,p,p,p,p,p
+#   define NDNBOOST_MPL_PP_ENUM_8(p) p,p,p,p,p,p,p,p
+#   define NDNBOOST_MPL_PP_ENUM_9(p) p,p,p,p,p,p,p,p,p
 
 #else
 
 #   include <ndnboost/preprocessor/comma_if.hpp>
 #   include <ndnboost/preprocessor/repeat.hpp>
 
-#   define BOOST_MPL_PP_AUX_ENUM_FUNC(unused, i, param) \
-    BOOST_PP_COMMA_IF(i) param \
+#   define NDNBOOST_MPL_PP_AUX_ENUM_FUNC(unused, i, param) \
+    NDNBOOST_PP_COMMA_IF(i) param \
     /**/
 
-#   define BOOST_MPL_PP_ENUM(n, param) \
-    BOOST_PP_REPEAT( \
+#   define NDNBOOST_MPL_PP_ENUM(n, param) \
+    NDNBOOST_PP_REPEAT( \
           n \
-        , BOOST_MPL_PP_AUX_ENUM_FUNC \
+        , NDNBOOST_MPL_PP_AUX_ENUM_FUNC \
         , param \
         ) \
     /**/
 
 #endif
 
-#endif // BOOST_MPL_AUX_PREPROCESSOR_ENUM_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_PREPROCESSOR_ENUM_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/preprocessor/ext_params.hpp b/include/ndnboost/mpl/aux_/preprocessor/ext_params.hpp
index 3f01b1b..489e494 100644
--- a/include/ndnboost/mpl/aux_/preprocessor/ext_params.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessor/ext_params.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_PREPROCESSOR_EXT_PARAMS_HPP_INCLUDED
-#define BOOST_MPL_AUX_PREPROCESSOR_EXT_PARAMS_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_PREPROCESSOR_EXT_PARAMS_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_PREPROCESSOR_EXT_PARAMS_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -16,37 +16,37 @@
 
 #include <ndnboost/mpl/aux_/config/preprocessor.hpp>
 
-// BOOST_MPL_PP_EXT_PARAMS(2,2,T): <nothing>
-// BOOST_MPL_PP_EXT_PARAMS(2,3,T): T2
-// BOOST_MPL_PP_EXT_PARAMS(2,4,T): T2, T3
-// BOOST_MPL_PP_EXT_PARAMS(2,n,T): T2, T3, .., Tn-1
+// NDNBOOST_MPL_PP_EXT_PARAMS(2,2,T): <nothing>
+// NDNBOOST_MPL_PP_EXT_PARAMS(2,3,T): T2
+// NDNBOOST_MPL_PP_EXT_PARAMS(2,4,T): T2, T3
+// NDNBOOST_MPL_PP_EXT_PARAMS(2,n,T): T2, T3, .., Tn-1
 
-#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
+#if !defined(NDNBOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
 
 #   include <ndnboost/mpl/aux_/preprocessor/filter_params.hpp>
 #   include <ndnboost/mpl/aux_/preprocessor/sub.hpp>
 
-#   define BOOST_MPL_PP_EXT_PARAMS(i,j,p) \
-    BOOST_MPL_PP_EXT_PARAMS_DELAY_1(i,BOOST_MPL_PP_SUB(j,i),p) \
+#   define NDNBOOST_MPL_PP_EXT_PARAMS(i,j,p) \
+    NDNBOOST_MPL_PP_EXT_PARAMS_DELAY_1(i,NDNBOOST_MPL_PP_SUB(j,i),p) \
     /**/
 
-#   define BOOST_MPL_PP_EXT_PARAMS_DELAY_1(i,n,p) \
-    BOOST_MPL_PP_EXT_PARAMS_DELAY_2(i,n,p) \
+#   define NDNBOOST_MPL_PP_EXT_PARAMS_DELAY_1(i,n,p) \
+    NDNBOOST_MPL_PP_EXT_PARAMS_DELAY_2(i,n,p) \
     /**/
 
-#   define BOOST_MPL_PP_EXT_PARAMS_DELAY_2(i,n,p) \
-    BOOST_MPL_PP_EXT_PARAMS_##i(n,p) \
+#   define NDNBOOST_MPL_PP_EXT_PARAMS_DELAY_2(i,n,p) \
+    NDNBOOST_MPL_PP_EXT_PARAMS_##i(n,p) \
     /**/
 
-#   define BOOST_MPL_PP_EXT_PARAMS_1(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##1,p##2,p##3,p##4,p##5,p##6,p##7,p##8,p##9)
-#   define BOOST_MPL_PP_EXT_PARAMS_2(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##2,p##3,p##4,p##5,p##6,p##7,p##8,p##9,p1)
-#   define BOOST_MPL_PP_EXT_PARAMS_3(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##3,p##4,p##5,p##6,p##7,p##8,p##9,p1,p2)
-#   define BOOST_MPL_PP_EXT_PARAMS_4(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##4,p##5,p##6,p##7,p##8,p##9,p1,p2,p3)
-#   define BOOST_MPL_PP_EXT_PARAMS_5(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##5,p##6,p##7,p##8,p##9,p1,p2,p3,p4)
-#   define BOOST_MPL_PP_EXT_PARAMS_6(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##6,p##7,p##8,p##9,p1,p2,p3,p4,p5)
-#   define BOOST_MPL_PP_EXT_PARAMS_7(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##7,p##8,p##9,p1,p2,p3,p4,p5,p6)
-#   define BOOST_MPL_PP_EXT_PARAMS_8(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##8,p##9,p1,p2,p3,p4,p5,p6,p7)
-#   define BOOST_MPL_PP_EXT_PARAMS_9(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##9,p1,p2,p3,p4,p5,p6,p7,p8)
+#   define NDNBOOST_MPL_PP_EXT_PARAMS_1(i,p) NDNBOOST_MPL_PP_FILTER_PARAMS_##i(p##1,p##2,p##3,p##4,p##5,p##6,p##7,p##8,p##9)
+#   define NDNBOOST_MPL_PP_EXT_PARAMS_2(i,p) NDNBOOST_MPL_PP_FILTER_PARAMS_##i(p##2,p##3,p##4,p##5,p##6,p##7,p##8,p##9,p1)
+#   define NDNBOOST_MPL_PP_EXT_PARAMS_3(i,p) NDNBOOST_MPL_PP_FILTER_PARAMS_##i(p##3,p##4,p##5,p##6,p##7,p##8,p##9,p1,p2)
+#   define NDNBOOST_MPL_PP_EXT_PARAMS_4(i,p) NDNBOOST_MPL_PP_FILTER_PARAMS_##i(p##4,p##5,p##6,p##7,p##8,p##9,p1,p2,p3)
+#   define NDNBOOST_MPL_PP_EXT_PARAMS_5(i,p) NDNBOOST_MPL_PP_FILTER_PARAMS_##i(p##5,p##6,p##7,p##8,p##9,p1,p2,p3,p4)
+#   define NDNBOOST_MPL_PP_EXT_PARAMS_6(i,p) NDNBOOST_MPL_PP_FILTER_PARAMS_##i(p##6,p##7,p##8,p##9,p1,p2,p3,p4,p5)
+#   define NDNBOOST_MPL_PP_EXT_PARAMS_7(i,p) NDNBOOST_MPL_PP_FILTER_PARAMS_##i(p##7,p##8,p##9,p1,p2,p3,p4,p5,p6)
+#   define NDNBOOST_MPL_PP_EXT_PARAMS_8(i,p) NDNBOOST_MPL_PP_FILTER_PARAMS_##i(p##8,p##9,p1,p2,p3,p4,p5,p6,p7)
+#   define NDNBOOST_MPL_PP_EXT_PARAMS_9(i,p) NDNBOOST_MPL_PP_FILTER_PARAMS_##i(p##9,p1,p2,p3,p4,p5,p6,p7,p8)
 
 #else
 
@@ -57,22 +57,22 @@
 #   include <ndnboost/preprocessor/tuple/elem.hpp>
 #   include <ndnboost/preprocessor/cat.hpp>
 
-#   define BOOST_MPL_PP_AUX_EXT_PARAM_FUNC(unused, i, op) \
-    BOOST_PP_COMMA_IF(i) \
-    BOOST_PP_CAT( \
-          BOOST_PP_TUPLE_ELEM(2,1,op) \
-        , BOOST_PP_ADD_D(1, i, BOOST_PP_TUPLE_ELEM(2,0,op)) \
+#   define NDNBOOST_MPL_PP_AUX_EXT_PARAM_FUNC(unused, i, op) \
+    NDNBOOST_PP_COMMA_IF(i) \
+    NDNBOOST_PP_CAT( \
+          NDNBOOST_PP_TUPLE_ELEM(2,1,op) \
+        , NDNBOOST_PP_ADD_D(1, i, NDNBOOST_PP_TUPLE_ELEM(2,0,op)) \
         ) \
     /**/
 
-#   define BOOST_MPL_PP_EXT_PARAMS(i, j, param) \
-    BOOST_PP_REPEAT( \
-          BOOST_PP_SUB_D(1,j,i) \
-        , BOOST_MPL_PP_AUX_EXT_PARAM_FUNC \
+#   define NDNBOOST_MPL_PP_EXT_PARAMS(i, j, param) \
+    NDNBOOST_PP_REPEAT( \
+          NDNBOOST_PP_SUB_D(1,j,i) \
+        , NDNBOOST_MPL_PP_AUX_EXT_PARAM_FUNC \
         , (i,param) \
         ) \
     /**/
 
 #endif
 
-#endif // BOOST_MPL_AUX_PREPROCESSOR_EXT_PARAMS_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_PREPROCESSOR_EXT_PARAMS_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/preprocessor/filter_params.hpp b/include/ndnboost/mpl/aux_/preprocessor/filter_params.hpp
index fefd984..7a75107 100644
--- a/include/ndnboost/mpl/aux_/preprocessor/filter_params.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessor/filter_params.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_PREPROCESSOR_FILTER_PARAMS_HPP_INCLUDED
-#define BOOST_MPL_AUX_PREPROCESSOR_FILTER_PARAMS_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_PREPROCESSOR_FILTER_PARAMS_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_PREPROCESSOR_FILTER_PARAMS_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -14,15 +14,15 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#define BOOST_MPL_PP_FILTER_PARAMS_0(p1,p2,p3,p4,p5,p6,p7,p8,p9) 
-#define BOOST_MPL_PP_FILTER_PARAMS_1(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1
-#define BOOST_MPL_PP_FILTER_PARAMS_2(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2
-#define BOOST_MPL_PP_FILTER_PARAMS_3(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3
-#define BOOST_MPL_PP_FILTER_PARAMS_4(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3,p4
-#define BOOST_MPL_PP_FILTER_PARAMS_5(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3,p4,p5
-#define BOOST_MPL_PP_FILTER_PARAMS_6(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3,p4,p5,p6
-#define BOOST_MPL_PP_FILTER_PARAMS_7(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3,p4,p5,p6,p7
-#define BOOST_MPL_PP_FILTER_PARAMS_8(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3,p4,p5,p6,p7,p8
-#define BOOST_MPL_PP_FILTER_PARAMS_9(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3,p4,p5,p6,p7,p8,p9
+#define NDNBOOST_MPL_PP_FILTER_PARAMS_0(p1,p2,p3,p4,p5,p6,p7,p8,p9) 
+#define NDNBOOST_MPL_PP_FILTER_PARAMS_1(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1
+#define NDNBOOST_MPL_PP_FILTER_PARAMS_2(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2
+#define NDNBOOST_MPL_PP_FILTER_PARAMS_3(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3
+#define NDNBOOST_MPL_PP_FILTER_PARAMS_4(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3,p4
+#define NDNBOOST_MPL_PP_FILTER_PARAMS_5(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3,p4,p5
+#define NDNBOOST_MPL_PP_FILTER_PARAMS_6(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3,p4,p5,p6
+#define NDNBOOST_MPL_PP_FILTER_PARAMS_7(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3,p4,p5,p6,p7
+#define NDNBOOST_MPL_PP_FILTER_PARAMS_8(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3,p4,p5,p6,p7,p8
+#define NDNBOOST_MPL_PP_FILTER_PARAMS_9(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3,p4,p5,p6,p7,p8,p9
 
-#endif // BOOST_MPL_AUX_PREPROCESSOR_FILTER_PARAMS_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_PREPROCESSOR_FILTER_PARAMS_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/preprocessor/params.hpp b/include/ndnboost/mpl/aux_/preprocessor/params.hpp
index 3ea43f1..3dd6c69 100644
--- a/include/ndnboost/mpl/aux_/preprocessor/params.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessor/params.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_PREPROCESSOR_PARAMS_HPP_INCLUDED
-#define BOOST_MPL_AUX_PREPROCESSOR_PARAMS_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_PREPROCESSOR_PARAMS_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_PREPROCESSOR_PARAMS_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -16,29 +16,29 @@
 
 #include <ndnboost/mpl/aux_/config/preprocessor.hpp>
 
-// BOOST_MPL_PP_PARAMS(0,T): <nothing>
-// BOOST_MPL_PP_PARAMS(1,T): T1
-// BOOST_MPL_PP_PARAMS(2,T): T1, T2
-// BOOST_MPL_PP_PARAMS(n,T): T1, T2, .., Tn
+// NDNBOOST_MPL_PP_PARAMS(0,T): <nothing>
+// NDNBOOST_MPL_PP_PARAMS(1,T): T1
+// NDNBOOST_MPL_PP_PARAMS(2,T): T1, T2
+// NDNBOOST_MPL_PP_PARAMS(n,T): T1, T2, .., Tn
 
-#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
+#if !defined(NDNBOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
 
 #   include <ndnboost/preprocessor/cat.hpp>
 
-#   define BOOST_MPL_PP_PARAMS(n,p) \
-    BOOST_PP_CAT(BOOST_MPL_PP_PARAMS_,n)(p) \
+#   define NDNBOOST_MPL_PP_PARAMS(n,p) \
+    NDNBOOST_PP_CAT(NDNBOOST_MPL_PP_PARAMS_,n)(p) \
     /**/
 
-#   define BOOST_MPL_PP_PARAMS_0(p)
-#   define BOOST_MPL_PP_PARAMS_1(p) p##1
-#   define BOOST_MPL_PP_PARAMS_2(p) p##1,p##2
-#   define BOOST_MPL_PP_PARAMS_3(p) p##1,p##2,p##3
-#   define BOOST_MPL_PP_PARAMS_4(p) p##1,p##2,p##3,p##4
-#   define BOOST_MPL_PP_PARAMS_5(p) p##1,p##2,p##3,p##4,p##5
-#   define BOOST_MPL_PP_PARAMS_6(p) p##1,p##2,p##3,p##4,p##5,p##6
-#   define BOOST_MPL_PP_PARAMS_7(p) p##1,p##2,p##3,p##4,p##5,p##6,p##7
-#   define BOOST_MPL_PP_PARAMS_8(p) p##1,p##2,p##3,p##4,p##5,p##6,p##7,p##8
-#   define BOOST_MPL_PP_PARAMS_9(p) p##1,p##2,p##3,p##4,p##5,p##6,p##7,p##8,p##9
+#   define NDNBOOST_MPL_PP_PARAMS_0(p)
+#   define NDNBOOST_MPL_PP_PARAMS_1(p) p##1
+#   define NDNBOOST_MPL_PP_PARAMS_2(p) p##1,p##2
+#   define NDNBOOST_MPL_PP_PARAMS_3(p) p##1,p##2,p##3
+#   define NDNBOOST_MPL_PP_PARAMS_4(p) p##1,p##2,p##3,p##4
+#   define NDNBOOST_MPL_PP_PARAMS_5(p) p##1,p##2,p##3,p##4,p##5
+#   define NDNBOOST_MPL_PP_PARAMS_6(p) p##1,p##2,p##3,p##4,p##5,p##6
+#   define NDNBOOST_MPL_PP_PARAMS_7(p) p##1,p##2,p##3,p##4,p##5,p##6,p##7
+#   define NDNBOOST_MPL_PP_PARAMS_8(p) p##1,p##2,p##3,p##4,p##5,p##6,p##7,p##8
+#   define NDNBOOST_MPL_PP_PARAMS_9(p) p##1,p##2,p##3,p##4,p##5,p##6,p##7,p##8,p##9
 
 #else
 
@@ -47,19 +47,19 @@
 #   include <ndnboost/preprocessor/inc.hpp>
 #   include <ndnboost/preprocessor/cat.hpp>
 
-#   define BOOST_MPL_PP_AUX_PARAM_FUNC(unused, i, param) \
-    BOOST_PP_COMMA_IF(i) \
-    BOOST_PP_CAT(param, BOOST_PP_INC(i)) \
+#   define NDNBOOST_MPL_PP_AUX_PARAM_FUNC(unused, i, param) \
+    NDNBOOST_PP_COMMA_IF(i) \
+    NDNBOOST_PP_CAT(param, NDNBOOST_PP_INC(i)) \
     /**/
 
-#   define BOOST_MPL_PP_PARAMS(n, param) \
-    BOOST_PP_REPEAT( \
+#   define NDNBOOST_MPL_PP_PARAMS(n, param) \
+    NDNBOOST_PP_REPEAT( \
           n \
-        , BOOST_MPL_PP_AUX_PARAM_FUNC \
+        , NDNBOOST_MPL_PP_AUX_PARAM_FUNC \
         , param \
         ) \
     /**/
 
 #endif 
 
-#endif // BOOST_MPL_AUX_PREPROCESSOR_PARAMS_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_PREPROCESSOR_PARAMS_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/preprocessor/partial_spec_params.hpp b/include/ndnboost/mpl/aux_/preprocessor/partial_spec_params.hpp
index df13235..a1b63a5 100644
--- a/include/ndnboost/mpl/aux_/preprocessor/partial_spec_params.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessor/partial_spec_params.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_PREPROCESSOR_PARTIAL_SPEC_PARAMS_HPP_INCLUDED
-#define BOOST_MPL_AUX_PREPROCESSOR_PARTIAL_SPEC_PARAMS_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_PREPROCESSOR_PARTIAL_SPEC_PARAMS_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_PREPROCESSOR_PARTIAL_SPEC_PARAMS_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -20,13 +20,13 @@
 #include <ndnboost/mpl/aux_/preprocessor/sub.hpp>
 #include <ndnboost/preprocessor/comma_if.hpp>
 
-#define BOOST_MPL_PP_PARTIAL_SPEC_PARAMS(n, param, def) \
-BOOST_MPL_PP_PARAMS(n, param) \
-BOOST_PP_COMMA_IF(BOOST_MPL_PP_SUB(BOOST_MPL_LIMIT_METAFUNCTION_ARITY,n)) \
-BOOST_MPL_PP_ENUM( \
-      BOOST_MPL_PP_SUB(BOOST_MPL_LIMIT_METAFUNCTION_ARITY,n) \
+#define NDNBOOST_MPL_PP_PARTIAL_SPEC_PARAMS(n, param, def) \
+NDNBOOST_MPL_PP_PARAMS(n, param) \
+NDNBOOST_PP_COMMA_IF(NDNBOOST_MPL_PP_SUB(NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY,n)) \
+NDNBOOST_MPL_PP_ENUM( \
+      NDNBOOST_MPL_PP_SUB(NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY,n) \
     , def \
     ) \
 /**/
 
-#endif // BOOST_MPL_AUX_PREPROCESSOR_PARTIAL_SPEC_PARAMS_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_PREPROCESSOR_PARTIAL_SPEC_PARAMS_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/preprocessor/range.hpp b/include/ndnboost/mpl/aux_/preprocessor/range.hpp
index 497c9fb..6c536d7 100644
--- a/include/ndnboost/mpl/aux_/preprocessor/range.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessor/range.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_PREPROCESSOR_RANGE_HPP_INCLUDED
-#define BOOST_MPL_AUX_PREPROCESSOR_RANGE_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_PREPROCESSOR_RANGE_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_PREPROCESSOR_RANGE_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2002-2004
 //
@@ -16,8 +16,8 @@
 
 #include <ndnboost/preprocessor/seq/subseq.hpp>
 
-#define BOOST_MPL_PP_RANGE(first, length) \
-    BOOST_PP_SEQ_SUBSEQ((0)(1)(2)(3)(4)(5)(6)(7)(8)(9), first, length) \
+#define NDNBOOST_MPL_PP_RANGE(first, length) \
+    NDNBOOST_PP_SEQ_SUBSEQ((0)(1)(2)(3)(4)(5)(6)(7)(8)(9), first, length) \
 /**/
 
-#endif // BOOST_MPL_AUX_PREPROCESSOR_RANGE_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_PREPROCESSOR_RANGE_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/preprocessor/repeat.hpp b/include/ndnboost/mpl/aux_/preprocessor/repeat.hpp
index 9b36136..f68a202 100644
--- a/include/ndnboost/mpl/aux_/preprocessor/repeat.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessor/repeat.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_PREPROCESSOR_REPEAT_HPP_INCLUDED
-#define BOOST_MPL_AUX_PREPROCESSOR_REPEAT_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_PREPROCESSOR_REPEAT_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_PREPROCESSOR_REPEAT_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2002-2004
 //
@@ -16,36 +16,36 @@
 
 #include <ndnboost/mpl/aux_/config/preprocessor.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
+#if !defined(NDNBOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
 
 #   include <ndnboost/preprocessor/cat.hpp>
 
-#   define BOOST_MPL_PP_REPEAT(n,f,param) \
-    BOOST_PP_CAT(BOOST_MPL_PP_REPEAT_,n)(f,param) \
+#   define NDNBOOST_MPL_PP_REPEAT(n,f,param) \
+    NDNBOOST_PP_CAT(NDNBOOST_MPL_PP_REPEAT_,n)(f,param) \
     /**/
     
-#   define BOOST_MPL_PP_REPEAT_0(f,p)
-#   define BOOST_MPL_PP_REPEAT_1(f,p) f(0,0,p)
-#   define BOOST_MPL_PP_REPEAT_2(f,p) f(0,0,p) f(0,1,p)
-#   define BOOST_MPL_PP_REPEAT_3(f,p) f(0,0,p) f(0,1,p) f(0,2,p)
-#   define BOOST_MPL_PP_REPEAT_4(f,p) f(0,0,p) f(0,1,p) f(0,2,p) f(0,3,p)
-#   define BOOST_MPL_PP_REPEAT_5(f,p) f(0,0,p) f(0,1,p) f(0,2,p) f(0,3,p) f(0,4,p)
-#   define BOOST_MPL_PP_REPEAT_6(f,p) f(0,0,p) f(0,1,p) f(0,2,p) f(0,3,p) f(0,4,p) f(0,5,p)
-#   define BOOST_MPL_PP_REPEAT_7(f,p) f(0,0,p) f(0,1,p) f(0,2,p) f(0,3,p) f(0,4,p) f(0,5,p) f(0,6,p)
-#   define BOOST_MPL_PP_REPEAT_8(f,p) f(0,0,p) f(0,1,p) f(0,2,p) f(0,3,p) f(0,4,p) f(0,5,p) f(0,6,p) f(0,7,p)
-#   define BOOST_MPL_PP_REPEAT_9(f,p) f(0,0,p) f(0,1,p) f(0,2,p) f(0,3,p) f(0,4,p) f(0,5,p) f(0,6,p) f(0,7,p) f(0,8,p)
-#   define BOOST_MPL_PP_REPEAT_10(f,p) f(0,0,p) f(0,1,p) f(0,2,p) f(0,3,p) f(0,4,p) f(0,5,p) f(0,6,p) f(0,7,p) f(0,8,p) f(0,9,p)
+#   define NDNBOOST_MPL_PP_REPEAT_0(f,p)
+#   define NDNBOOST_MPL_PP_REPEAT_1(f,p) f(0,0,p)
+#   define NDNBOOST_MPL_PP_REPEAT_2(f,p) f(0,0,p) f(0,1,p)
+#   define NDNBOOST_MPL_PP_REPEAT_3(f,p) f(0,0,p) f(0,1,p) f(0,2,p)
+#   define NDNBOOST_MPL_PP_REPEAT_4(f,p) f(0,0,p) f(0,1,p) f(0,2,p) f(0,3,p)
+#   define NDNBOOST_MPL_PP_REPEAT_5(f,p) f(0,0,p) f(0,1,p) f(0,2,p) f(0,3,p) f(0,4,p)
+#   define NDNBOOST_MPL_PP_REPEAT_6(f,p) f(0,0,p) f(0,1,p) f(0,2,p) f(0,3,p) f(0,4,p) f(0,5,p)
+#   define NDNBOOST_MPL_PP_REPEAT_7(f,p) f(0,0,p) f(0,1,p) f(0,2,p) f(0,3,p) f(0,4,p) f(0,5,p) f(0,6,p)
+#   define NDNBOOST_MPL_PP_REPEAT_8(f,p) f(0,0,p) f(0,1,p) f(0,2,p) f(0,3,p) f(0,4,p) f(0,5,p) f(0,6,p) f(0,7,p)
+#   define NDNBOOST_MPL_PP_REPEAT_9(f,p) f(0,0,p) f(0,1,p) f(0,2,p) f(0,3,p) f(0,4,p) f(0,5,p) f(0,6,p) f(0,7,p) f(0,8,p)
+#   define NDNBOOST_MPL_PP_REPEAT_10(f,p) f(0,0,p) f(0,1,p) f(0,2,p) f(0,3,p) f(0,4,p) f(0,5,p) f(0,6,p) f(0,7,p) f(0,8,p) f(0,9,p)
 
 #else 
 
 #   include <ndnboost/preprocessor/repeat.hpp>
 
-#   define BOOST_MPL_PP_REPEAT(n,f,param) \
-    BOOST_PP_REPEAT(n,f,param) \
+#   define NDNBOOST_MPL_PP_REPEAT(n,f,param) \
+    NDNBOOST_PP_REPEAT(n,f,param) \
     /**/
 
 #endif 
 
-#define BOOST_MPL_PP_REPEAT_IDENTITY_FUNC(unused1, unused2, x) x
+#define NDNBOOST_MPL_PP_REPEAT_IDENTITY_FUNC(unused1, unused2, x) x
 
-#endif // BOOST_MPL_AUX_PREPROCESSOR_REPEAT_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_PREPROCESSOR_REPEAT_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/preprocessor/sub.hpp b/include/ndnboost/mpl/aux_/preprocessor/sub.hpp
index f4ba5d0..c19482a 100644
--- a/include/ndnboost/mpl/aux_/preprocessor/sub.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessor/sub.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_PREPROCESSOR_SUB_HPP_INCLUDED
-#define BOOST_MPL_AUX_PREPROCESSOR_SUB_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_PREPROCESSOR_SUB_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_PREPROCESSOR_SUB_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2002-2004
 //
@@ -16,50 +16,50 @@
 
 #include <ndnboost/mpl/aux_/config/preprocessor.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
+#if !defined(NDNBOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
 
 #   include <ndnboost/mpl/aux_/preprocessor/tuple.hpp>
 
-#if defined(BOOST_MPL_CFG_BROKEN_PP_MACRO_EXPANSION)
+#if defined(NDNBOOST_MPL_CFG_BROKEN_PP_MACRO_EXPANSION)
 #   include <ndnboost/preprocessor/cat.hpp>
 
-#   define BOOST_MPL_PP_SUB(i,j) \
-    BOOST_MPL_PP_SUB_DELAY(i,j) \
+#   define NDNBOOST_MPL_PP_SUB(i,j) \
+    NDNBOOST_MPL_PP_SUB_DELAY(i,j) \
     /**/
 
-#   define BOOST_MPL_PP_SUB_DELAY(i,j) \
-    BOOST_PP_CAT(BOOST_MPL_PP_TUPLE_11_ELEM_##i,BOOST_MPL_PP_SUB_##j) \
+#   define NDNBOOST_MPL_PP_SUB_DELAY(i,j) \
+    NDNBOOST_PP_CAT(NDNBOOST_MPL_PP_TUPLE_11_ELEM_##i,NDNBOOST_MPL_PP_SUB_##j) \
     /**/
 #else
-#   define BOOST_MPL_PP_SUB(i,j) \
-    BOOST_MPL_PP_SUB_DELAY(i,j) \
+#   define NDNBOOST_MPL_PP_SUB(i,j) \
+    NDNBOOST_MPL_PP_SUB_DELAY(i,j) \
     /**/
 
-#   define BOOST_MPL_PP_SUB_DELAY(i,j) \
-    BOOST_MPL_PP_TUPLE_11_ELEM_##i BOOST_MPL_PP_SUB_##j \
+#   define NDNBOOST_MPL_PP_SUB_DELAY(i,j) \
+    NDNBOOST_MPL_PP_TUPLE_11_ELEM_##i NDNBOOST_MPL_PP_SUB_##j \
     /**/
 #endif
 
-#   define BOOST_MPL_PP_SUB_0 (0,1,2,3,4,5,6,7,8,9,10)
-#   define BOOST_MPL_PP_SUB_1 (0,0,1,2,3,4,5,6,7,8,9)
-#   define BOOST_MPL_PP_SUB_2 (0,0,0,1,2,3,4,5,6,7,8)
-#   define BOOST_MPL_PP_SUB_3 (0,0,0,0,1,2,3,4,5,6,7)
-#   define BOOST_MPL_PP_SUB_4 (0,0,0,0,0,1,2,3,4,5,6)
-#   define BOOST_MPL_PP_SUB_5 (0,0,0,0,0,0,1,2,3,4,5)
-#   define BOOST_MPL_PP_SUB_6 (0,0,0,0,0,0,0,1,2,3,4)
-#   define BOOST_MPL_PP_SUB_7 (0,0,0,0,0,0,0,0,1,2,3)
-#   define BOOST_MPL_PP_SUB_8 (0,0,0,0,0,0,0,0,0,1,2)
-#   define BOOST_MPL_PP_SUB_9 (0,0,0,0,0,0,0,0,0,0,1)
-#   define BOOST_MPL_PP_SUB_10 (0,0,0,0,0,0,0,0,0,0,0)
+#   define NDNBOOST_MPL_PP_SUB_0 (0,1,2,3,4,5,6,7,8,9,10)
+#   define NDNBOOST_MPL_PP_SUB_1 (0,0,1,2,3,4,5,6,7,8,9)
+#   define NDNBOOST_MPL_PP_SUB_2 (0,0,0,1,2,3,4,5,6,7,8)
+#   define NDNBOOST_MPL_PP_SUB_3 (0,0,0,0,1,2,3,4,5,6,7)
+#   define NDNBOOST_MPL_PP_SUB_4 (0,0,0,0,0,1,2,3,4,5,6)
+#   define NDNBOOST_MPL_PP_SUB_5 (0,0,0,0,0,0,1,2,3,4,5)
+#   define NDNBOOST_MPL_PP_SUB_6 (0,0,0,0,0,0,0,1,2,3,4)
+#   define NDNBOOST_MPL_PP_SUB_7 (0,0,0,0,0,0,0,0,1,2,3)
+#   define NDNBOOST_MPL_PP_SUB_8 (0,0,0,0,0,0,0,0,0,1,2)
+#   define NDNBOOST_MPL_PP_SUB_9 (0,0,0,0,0,0,0,0,0,0,1)
+#   define NDNBOOST_MPL_PP_SUB_10 (0,0,0,0,0,0,0,0,0,0,0)
 
 #else
 
 #   include <ndnboost/preprocessor/arithmetic/sub.hpp>
 
-#   define BOOST_MPL_PP_SUB(i,j) \
-    BOOST_PP_SUB(i,j) \
+#   define NDNBOOST_MPL_PP_SUB(i,j) \
+    NDNBOOST_PP_SUB(i,j) \
     /**/
     
 #endif
 
-#endif // BOOST_MPL_AUX_PREPROCESSOR_SUB_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_PREPROCESSOR_SUB_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/preprocessor/tuple.hpp b/include/ndnboost/mpl/aux_/preprocessor/tuple.hpp
index ed59407..cbb369d 100644
--- a/include/ndnboost/mpl/aux_/preprocessor/tuple.hpp
+++ b/include/ndnboost/mpl/aux_/preprocessor/tuple.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_PREPROCESSOR_TUPLE_HPP_INCLUDED
-#define BOOST_MPL_AUX_PREPROCESSOR_TUPLE_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_PREPROCESSOR_TUPLE_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_PREPROCESSOR_TUPLE_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2002-2004
 //
@@ -14,16 +14,16 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#define BOOST_MPL_PP_TUPLE_11_ELEM_0(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e0
-#define BOOST_MPL_PP_TUPLE_11_ELEM_1(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e1
-#define BOOST_MPL_PP_TUPLE_11_ELEM_2(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e2
-#define BOOST_MPL_PP_TUPLE_11_ELEM_3(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e3
-#define BOOST_MPL_PP_TUPLE_11_ELEM_4(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e4
-#define BOOST_MPL_PP_TUPLE_11_ELEM_5(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e5
-#define BOOST_MPL_PP_TUPLE_11_ELEM_6(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e6
-#define BOOST_MPL_PP_TUPLE_11_ELEM_7(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e7
-#define BOOST_MPL_PP_TUPLE_11_ELEM_8(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e8
-#define BOOST_MPL_PP_TUPLE_11_ELEM_9(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e9
-#define BOOST_MPL_PP_TUPLE_11_ELEM_10(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e10
+#define NDNBOOST_MPL_PP_TUPLE_11_ELEM_0(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e0
+#define NDNBOOST_MPL_PP_TUPLE_11_ELEM_1(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e1
+#define NDNBOOST_MPL_PP_TUPLE_11_ELEM_2(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e2
+#define NDNBOOST_MPL_PP_TUPLE_11_ELEM_3(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e3
+#define NDNBOOST_MPL_PP_TUPLE_11_ELEM_4(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e4
+#define NDNBOOST_MPL_PP_TUPLE_11_ELEM_5(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e5
+#define NDNBOOST_MPL_PP_TUPLE_11_ELEM_6(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e6
+#define NDNBOOST_MPL_PP_TUPLE_11_ELEM_7(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e7
+#define NDNBOOST_MPL_PP_TUPLE_11_ELEM_8(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e8
+#define NDNBOOST_MPL_PP_TUPLE_11_ELEM_9(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e9
+#define NDNBOOST_MPL_PP_TUPLE_11_ELEM_10(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e10
 
-#endif // BOOST_MPL_AUX_PREPROCESSOR_TUPLE_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_PREPROCESSOR_TUPLE_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/push_back_impl.hpp b/include/ndnboost/mpl/aux_/push_back_impl.hpp
index b2234ad..3e81de9 100644
--- a/include/ndnboost/mpl/aux_/push_back_impl.hpp
+++ b/include/ndnboost/mpl/aux_/push_back_impl.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_PUSH_BACK_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_PUSH_BACK_IMPL_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_PUSH_BACK_IMPL_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_PUSH_BACK_IMPL_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2008
 //
@@ -37,7 +37,7 @@
         // should be instantiated only in the context of 'has_push_back_impl';
         // if you've got an assert here, you are requesting a 'push_back' 
         // specialization that doesn't exist.
-        BOOST_MPL_ASSERT_MSG(
+        NDNBOOST_MPL_ASSERT_MSG(
               ( ndnboost::is_same< T, has_push_back_arg >::value )
             , REQUESTED_PUSH_BACK_SPECIALIZATION_FOR_SEQUENCE_DOES_NOT_EXIST
             , ( Sequence )
@@ -49,22 +49,22 @@
 struct has_push_back_impl
 {
     template< typename Seq > struct apply
-#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
+#if !defined(NDNBOOST_MPL_CFG_NO_NESTED_FORWARDING)
         : aux::has_type< push_back< Seq, has_push_back_arg > >
     {
 #else
     {
         typedef aux::has_type< push_back< Seq, has_push_back_arg > > type;
-        BOOST_STATIC_CONSTANT(bool, value = 
+        NDNBOOST_STATIC_CONSTANT(bool, value = 
               (aux::has_type< push_back< Seq, has_push_back_arg > >::value)
             );
 #endif
     };
 };
 
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(2, push_back_impl)
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1, has_push_back_impl)
+NDNBOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(2, push_back_impl)
+NDNBOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1, has_push_back_impl)
 
 }}
 
-#endif // BOOST_MPL_AUX_PUSH_BACK_IMPL_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_PUSH_BACK_IMPL_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/push_front_impl.hpp b/include/ndnboost/mpl/aux_/push_front_impl.hpp
index 8ef53f8..0fa8745 100644
--- a/include/ndnboost/mpl/aux_/push_front_impl.hpp
+++ b/include/ndnboost/mpl/aux_/push_front_impl.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_PUSH_FRONT_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_PUSH_FRONT_IMPL_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_PUSH_FRONT_IMPL_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_PUSH_FRONT_IMPL_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2008
 //
@@ -38,7 +38,7 @@
         // should be instantiated only in the context of 'has_push_front_impl';
         // if you've got an assert here, you are requesting a 'push_front' 
         // specialization that doesn't exist.
-        BOOST_MPL_ASSERT_MSG(
+        NDNBOOST_MPL_ASSERT_MSG(
               ( ndnboost::is_same< T, has_push_front_arg >::value )
             , REQUESTED_PUSH_FRONT_SPECIALIZATION_FOR_SEQUENCE_DOES_NOT_EXIST
             , ( Sequence )
@@ -50,22 +50,22 @@
 struct has_push_front_impl
 {
     template< typename Seq > struct apply
-#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
+#if !defined(NDNBOOST_MPL_CFG_NO_NESTED_FORWARDING)
         : aux::has_type< push_front< Seq, has_push_front_arg > >
     {
 #else
     {
         typedef aux::has_type< push_front< Seq, has_push_front_arg > > type;
-        BOOST_STATIC_CONSTANT(bool, value = 
+        NDNBOOST_STATIC_CONSTANT(bool, value = 
               (aux::has_type< push_front< Seq, has_push_front_arg > >::value)
             );
 #endif
     };
 };
 
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(2, push_front_impl)
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1, has_push_front_impl)
+NDNBOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(2, push_front_impl)
+NDNBOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1, has_push_front_impl)
 
 }}
 
-#endif // BOOST_MPL_AUX_PUSH_FRONT_IMPL_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_PUSH_FRONT_IMPL_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/reverse_fold_impl.hpp b/include/ndnboost/mpl/aux_/reverse_fold_impl.hpp
index 3f5e858..78649c1 100644
--- a/include/ndnboost/mpl/aux_/reverse_fold_impl.hpp
+++ b/include/ndnboost/mpl/aux_/reverse_fold_impl.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_REVERSE_FOLD_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_REVERSE_FOLD_IMPL_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_REVERSE_FOLD_IMPL_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_REVERSE_FOLD_IMPL_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -14,13 +14,13 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/next_prior.hpp>
 #   include <ndnboost/mpl/deref.hpp>
 #   include <ndnboost/mpl/apply.hpp>
 #   include <ndnboost/mpl/aux_/config/ctps.hpp>
-#   if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-    || defined(BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC)
+#   if defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
+    || defined(NDNBOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC)
 #       include <ndnboost/mpl/if.hpp>
 #       include <ndnboost/type_traits/is_same.hpp>
 #   endif
@@ -28,10 +28,10 @@
 
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
-#   define BOOST_MPL_PREPROCESSED_HEADER reverse_fold_impl.hpp
+#   define NDNBOOST_MPL_PREPROCESSED_HEADER reverse_fold_impl.hpp
 #   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
 
 #else
@@ -40,5 +40,5 @@
 #   define AUX778076_FOLD_IMPL_NAME_PREFIX reverse_fold
 #   include <ndnboost/mpl/aux_/reverse_fold_impl_body.hpp>
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_AUX_REVERSE_FOLD_IMPL_HPP_INCLUDED
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_AUX_REVERSE_FOLD_IMPL_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/reverse_fold_impl_body.hpp b/include/ndnboost/mpl/aux_/reverse_fold_impl_body.hpp
index 838e63e..3ca6eee 100644
--- a/include/ndnboost/mpl/aux_/reverse_fold_impl_body.hpp
+++ b/include/ndnboost/mpl/aux_/reverse_fold_impl_body.hpp
@@ -1,7 +1,7 @@
 
 // NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION!
 
-#if !defined(BOOST_PP_IS_ITERATING)
+#if !defined(NDNBOOST_PP_IS_ITERATING)
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -31,44 +31,44 @@
 #   define AUX778076_ITER_FOLD_FORWARD_STEP(unused, n_, unused2) \
     typedef typename apply2< \
           ForwardOp \
-        , BOOST_PP_CAT(fwd_state,n_) \
-        , AUX778076_FOLD_IMPL_OP(BOOST_PP_CAT(iter,n_)) \
-        >::type BOOST_PP_CAT(fwd_state,BOOST_PP_INC(n_)); \
-    typedef typename mpl::next<BOOST_PP_CAT(iter,n_)>::type \
-        BOOST_PP_CAT(iter,BOOST_PP_INC(n_)); \
+        , NDNBOOST_PP_CAT(fwd_state,n_) \
+        , AUX778076_FOLD_IMPL_OP(NDNBOOST_PP_CAT(iter,n_)) \
+        >::type NDNBOOST_PP_CAT(fwd_state,NDNBOOST_PP_INC(n_)); \
+    typedef typename mpl::next<NDNBOOST_PP_CAT(iter,n_)>::type \
+        NDNBOOST_PP_CAT(iter,NDNBOOST_PP_INC(n_)); \
     /**/
 
 #   define AUX778076_ITER_FOLD_BACKWARD_STEP_FUNC(n_) \
     typedef typename apply2< \
           BackwardOp \
-        , BOOST_PP_CAT(bkwd_state,n_) \
-        , AUX778076_FOLD_IMPL_OP(BOOST_PP_CAT(iter,BOOST_PP_DEC(n_))) \
-        >::type BOOST_PP_CAT(bkwd_state,BOOST_PP_DEC(n_)); \
+        , NDNBOOST_PP_CAT(bkwd_state,n_) \
+        , AUX778076_FOLD_IMPL_OP(NDNBOOST_PP_CAT(iter,NDNBOOST_PP_DEC(n_))) \
+        >::type NDNBOOST_PP_CAT(bkwd_state,NDNBOOST_PP_DEC(n_)); \
     /**/
 
 #   define AUX778076_ITER_FOLD_BACKWARD_STEP(unused, n_, j) \
     AUX778076_ITER_FOLD_BACKWARD_STEP_FUNC( \
-          BOOST_PP_SUB_D(1,j,n_) \
+          NDNBOOST_PP_SUB_D(1,j,n_) \
         ) \
     /**/
 
 #   define AUX778076_FIRST_BACKWARD_STATE_TYPEDEF(n_) \
-    typedef typename nested_chunk::state BOOST_PP_CAT(bkwd_state,n_);
+    typedef typename nested_chunk::state NDNBOOST_PP_CAT(bkwd_state,n_);
     /**/
 
 #   define AUX778076_FOLD_IMPL_NAME \
-    BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_impl) \
+    NDNBOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_impl) \
     /**/
 
 #   define AUX778076_FOLD_CHUNK_NAME \
-    BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_chunk) \
+    NDNBOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_chunk) \
     /**/
 
 namespace ndnboost { namespace mpl { namespace aux {
 
 /// forward declaration
 template<
-      BOOST_MPL_AUX_NTTP_DECL(long, N)
+      NDNBOOST_MPL_AUX_NTTP_DECL(long, N)
     , typename First
     , typename Last
     , typename State
@@ -77,16 +77,16 @@
     > 
 struct AUX778076_FOLD_IMPL_NAME;
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-    && !defined(BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
+    && !defined(NDNBOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC)
 
-#   define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(0, BOOST_MPL_LIMIT_UNROLLING, <ndnboost/mpl/aux_/reverse_fold_impl_body.hpp>))
-#   include BOOST_PP_ITERATE()
+#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
+    (3,(0, NDNBOOST_MPL_LIMIT_UNROLLING, <ndnboost/mpl/aux_/reverse_fold_impl_body.hpp>))
+#   include NDNBOOST_PP_ITERATE()
 
-// implementation for N that exceeds BOOST_MPL_LIMIT_UNROLLING
+// implementation for N that exceeds NDNBOOST_MPL_LIMIT_UNROLLING
 template<
-      BOOST_MPL_AUX_NTTP_DECL(long, N)
+      NDNBOOST_MPL_AUX_NTTP_DECL(long, N)
     , typename First
     , typename Last
     , typename State
@@ -98,27 +98,27 @@
     typedef First iter0;
     typedef State fwd_state0;
 
-    BOOST_MPL_PP_REPEAT(
-          BOOST_MPL_LIMIT_UNROLLING
+    NDNBOOST_MPL_PP_REPEAT(
+          NDNBOOST_MPL_LIMIT_UNROLLING
         , AUX778076_ITER_FOLD_FORWARD_STEP
         , unused
         )
 
     typedef AUX778076_FOLD_IMPL_NAME<
-          ( (N - BOOST_MPL_LIMIT_UNROLLING) < 0 ? 0 : N - BOOST_MPL_LIMIT_UNROLLING )
-        , BOOST_PP_CAT(iter,BOOST_MPL_LIMIT_UNROLLING)
+          ( (N - NDNBOOST_MPL_LIMIT_UNROLLING) < 0 ? 0 : N - NDNBOOST_MPL_LIMIT_UNROLLING )
+        , NDNBOOST_PP_CAT(iter,NDNBOOST_MPL_LIMIT_UNROLLING)
         , Last
-        , BOOST_PP_CAT(fwd_state,BOOST_MPL_LIMIT_UNROLLING)
+        , NDNBOOST_PP_CAT(fwd_state,NDNBOOST_MPL_LIMIT_UNROLLING)
         , BackwardOp
         , ForwardOp
         > nested_chunk;
         
-    AUX778076_FIRST_BACKWARD_STATE_TYPEDEF(BOOST_MPL_LIMIT_UNROLLING)
+    AUX778076_FIRST_BACKWARD_STATE_TYPEDEF(NDNBOOST_MPL_LIMIT_UNROLLING)
 
-    BOOST_MPL_PP_REPEAT(
-          BOOST_MPL_LIMIT_UNROLLING
+    NDNBOOST_MPL_PP_REPEAT(
+          NDNBOOST_MPL_LIMIT_UNROLLING
         , AUX778076_ITER_FOLD_BACKWARD_STEP
-        , BOOST_MPL_LIMIT_UNROLLING
+        , NDNBOOST_MPL_LIMIT_UNROLLING
         )
 
     typedef bkwd_state0 state;
@@ -165,17 +165,17 @@
     typedef Last iterator;
 };
 
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#else // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
-template< BOOST_MPL_AUX_NTTP_DECL(long, N) >
+template< NDNBOOST_MPL_AUX_NTTP_DECL(long, N) >
 struct AUX778076_FOLD_CHUNK_NAME;
 
-#   define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(0, BOOST_MPL_LIMIT_UNROLLING, <ndnboost/mpl/aux_/reverse_fold_impl_body.hpp>))
-#   include BOOST_PP_ITERATE()
+#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
+    (3,(0, NDNBOOST_MPL_LIMIT_UNROLLING, <ndnboost/mpl/aux_/reverse_fold_impl_body.hpp>))
+#   include NDNBOOST_PP_ITERATE()
 
-// implementation for N that exceeds BOOST_MPL_LIMIT_UNROLLING
-template< BOOST_MPL_AUX_NTTP_DECL(long, N) > 
+// implementation for N that exceeds NDNBOOST_MPL_LIMIT_UNROLLING
+template< NDNBOOST_MPL_AUX_NTTP_DECL(long, N) > 
 struct AUX778076_FOLD_CHUNK_NAME
 {
     template<
@@ -190,27 +190,27 @@
         typedef First iter0;
         typedef State fwd_state0;
 
-        BOOST_MPL_PP_REPEAT(
-              BOOST_MPL_LIMIT_UNROLLING
+        NDNBOOST_MPL_PP_REPEAT(
+              NDNBOOST_MPL_LIMIT_UNROLLING
             , AUX778076_ITER_FOLD_FORWARD_STEP
             , unused
             )
 
         typedef AUX778076_FOLD_IMPL_NAME<
-              ( (N - BOOST_MPL_LIMIT_UNROLLING) < 0 ? 0 : N - BOOST_MPL_LIMIT_UNROLLING )
-            , BOOST_PP_CAT(iter,BOOST_MPL_LIMIT_UNROLLING)
+              ( (N - NDNBOOST_MPL_LIMIT_UNROLLING) < 0 ? 0 : N - NDNBOOST_MPL_LIMIT_UNROLLING )
+            , NDNBOOST_PP_CAT(iter,NDNBOOST_MPL_LIMIT_UNROLLING)
             , Last
-            , BOOST_PP_CAT(fwd_state,BOOST_MPL_LIMIT_UNROLLING)
+            , NDNBOOST_PP_CAT(fwd_state,NDNBOOST_MPL_LIMIT_UNROLLING)
             , BackwardOp
             , ForwardOp
             > nested_chunk;
             
-        AUX778076_FIRST_BACKWARD_STATE_TYPEDEF(BOOST_MPL_LIMIT_UNROLLING)
+        AUX778076_FIRST_BACKWARD_STATE_TYPEDEF(NDNBOOST_MPL_LIMIT_UNROLLING)
 
-        BOOST_MPL_PP_REPEAT(
-              BOOST_MPL_LIMIT_UNROLLING
+        NDNBOOST_MPL_PP_REPEAT(
+              NDNBOOST_MPL_LIMIT_UNROLLING
             , AUX778076_ITER_FOLD_BACKWARD_STEP
-            , BOOST_MPL_LIMIT_UNROLLING
+            , NDNBOOST_MPL_LIMIT_UNROLLING
             )
 
         typedef bkwd_state0 state;
@@ -226,13 +226,13 @@
     , typename BackwardOp
     , typename ForwardOp
     > 
-struct BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_step);
+struct NDNBOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_step);
 
 template<
       typename Last
     , typename State
     >
-struct BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_null_step)
+struct NDNBOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_null_step)
 {
     typedef Last iterator;
     typedef State state;
@@ -252,15 +252,15 @@
     {
         typedef typename if_<
               typename is_same<First,Last>::type
-            , BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_null_step)<Last,State>
-            , BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_step)<First,Last,State,BackwardOp,ForwardOp>
+            , NDNBOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_null_step)<Last,State>
+            , NDNBOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_step)<First,Last,State,BackwardOp,ForwardOp>
             >::type res_;
 
         typedef typename res_::state state;
         typedef typename res_::iterator iterator;
     };
 
-#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG)
+#if defined(NDNBOOST_MPL_CFG_MSVC_60_ETI_BUG)
     /// ETI workaround
     template<> struct result_<int,int,int,int,int>
     {
@@ -277,7 +277,7 @@
     , typename BackwardOp
     , typename ForwardOp
     > 
-struct BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_step)
+struct NDNBOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_step)
 {
     typedef AUX778076_FOLD_CHUNK_NAME<-1>::template result_<
           typename mpl::next<First>::type
@@ -297,7 +297,7 @@
 };
 
 template<
-      BOOST_MPL_AUX_NTTP_DECL(long, N)
+      NDNBOOST_MPL_AUX_NTTP_DECL(long, N)
     , typename First
     , typename Last
     , typename State
@@ -310,7 +310,7 @@
 {
 };
 
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 }}}
 
@@ -326,10 +326,10 @@
 
 #else
 
-#   define n_ BOOST_PP_FRAME_ITERATION(1)
+#   define n_ NDNBOOST_PP_FRAME_ITERATION(1)
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-    && !defined(BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
+    && !defined(NDNBOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC)
 
 template<
       typename First
@@ -343,22 +343,22 @@
     typedef First iter0;
     typedef State fwd_state0;
 
-    BOOST_MPL_PP_REPEAT(
+    NDNBOOST_MPL_PP_REPEAT(
           n_
         , AUX778076_ITER_FOLD_FORWARD_STEP
         , unused
         )
 
-    typedef BOOST_PP_CAT(fwd_state,n_) BOOST_PP_CAT(bkwd_state,n_);
+    typedef NDNBOOST_PP_CAT(fwd_state,n_) NDNBOOST_PP_CAT(bkwd_state,n_);
 
-    BOOST_MPL_PP_REPEAT(
+    NDNBOOST_MPL_PP_REPEAT(
           n_
         , AUX778076_ITER_FOLD_BACKWARD_STEP
         , n_
         )
 
     typedef bkwd_state0 state;
-    typedef BOOST_PP_CAT(iter,n_) iterator;
+    typedef NDNBOOST_PP_CAT(iter,n_) iterator;
 };
 
 #else
@@ -377,25 +377,25 @@
         typedef First iter0;
         typedef State fwd_state0;
 
-        BOOST_MPL_PP_REPEAT(
+        NDNBOOST_MPL_PP_REPEAT(
               n_
             , AUX778076_ITER_FOLD_FORWARD_STEP
             , unused
             )
 
-        typedef BOOST_PP_CAT(fwd_state,n_) BOOST_PP_CAT(bkwd_state,n_);
+        typedef NDNBOOST_PP_CAT(fwd_state,n_) NDNBOOST_PP_CAT(bkwd_state,n_);
 
-        BOOST_MPL_PP_REPEAT(
+        NDNBOOST_MPL_PP_REPEAT(
               n_
             , AUX778076_ITER_FOLD_BACKWARD_STEP
             , n_
             )
 
         typedef bkwd_state0 state;
-        typedef BOOST_PP_CAT(iter,n_) iterator;
+        typedef NDNBOOST_PP_CAT(iter,n_) iterator;
     };
 
-#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG)
+#if defined(NDNBOOST_MPL_CFG_MSVC_60_ETI_BUG)
     /// ETI workaround
     template<> struct result_<int,int,int,int,int>
     {
@@ -405,8 +405,8 @@
 #endif
 };
 
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 #   undef n_
 
-#endif // BOOST_PP_IS_ITERATING
+#endif // NDNBOOST_PP_IS_ITERATING
diff --git a/include/ndnboost/mpl/aux_/sequence_wrapper.hpp b/include/ndnboost/mpl/aux_/sequence_wrapper.hpp
index 8ec8f09..c2a2754 100644
--- a/include/ndnboost/mpl/aux_/sequence_wrapper.hpp
+++ b/include/ndnboost/mpl/aux_/sequence_wrapper.hpp
@@ -1,7 +1,7 @@
 
 // NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
 
-#if !defined(BOOST_PP_IS_ITERATING)
+#if !defined(NDNBOOST_PP_IS_ITERATING)
 
 ///// header body
 
@@ -30,7 +30,7 @@
 #   include <ndnboost/preprocessor/comma_if.hpp>
 #   include <ndnboost/preprocessor/iterate.hpp>
 
-#if defined(BOOST_MPL_PREPROCESSING_MODE)
+#if defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   undef LONG_MAX
 #endif
 
@@ -47,25 +47,25 @@
 #   define AUX778076_SEQUENCE_DEFAULT na
 
 #   define AUX778076_SEQUENCE_NAME_N(n) \
-    BOOST_PP_CAT(AUX778076_SEQUENCE_BASE_NAME,n) \
+    NDNBOOST_PP_CAT(AUX778076_SEQUENCE_BASE_NAME,n) \
     /**/
 
 #   define AUX778076_SEQUENCE_PARAMS() \
-    BOOST_PP_ENUM_PARAMS( \
+    NDNBOOST_PP_ENUM_PARAMS( \
           AUX778076_SEQUENCE_LIMIT \
         , AUX778076_SEQUENCE_TEMPLATE_PARAM \
         ) \
     /**/
 
 #   define AUX778076_SEQUENCE_ARGS() \
-    BOOST_PP_ENUM_PARAMS( \
+    NDNBOOST_PP_ENUM_PARAMS( \
           AUX778076_SEQUENCE_LIMIT \
         , T \
         ) \
     /**/
 
 #   define AUX778076_SEQUENCE_DEFAULT_PARAMS() \
-     BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT( \
+     NDNBOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT( \
           AUX778076_SEQUENCE_LIMIT \
         , AUX778076_SEQUENCE_TEMPLATE_PARAM \
         , AUX778076_SEQUENCE_DEFAULT \
@@ -73,19 +73,19 @@
     /**/
 
 #   define AUX778076_SEQUENCE_N_PARAMS(n) \
-    BOOST_PP_ENUM_PARAMS(n, AUX778076_SEQUENCE_TEMPLATE_PARAM) \
+    NDNBOOST_PP_ENUM_PARAMS(n, AUX778076_SEQUENCE_TEMPLATE_PARAM) \
     /**/
 
 #   define AUX778076_SEQUENCE_N_ARGS(n) \
-    BOOST_PP_ENUM_PARAMS(n, T) \
+    NDNBOOST_PP_ENUM_PARAMS(n, T) \
     /**/
 
 #   define AUX778076_SEQUENCE_N_PARTIAL_SPEC_ARGS(n) \
-    BOOST_PP_ENUM_PARAMS(n, T) \
-    BOOST_PP_COMMA_IF(n) \
-    BOOST_PP_ENUM( \
-          BOOST_PP_SUB_D(1,AUX778076_SEQUENCE_LIMIT,n) \
-        , BOOST_PP_TUPLE_ELEM_3_2 \
+    NDNBOOST_PP_ENUM_PARAMS(n, T) \
+    NDNBOOST_PP_COMMA_IF(n) \
+    NDNBOOST_PP_ENUM( \
+          NDNBOOST_PP_SUB_D(1,AUX778076_SEQUENCE_LIMIT,n) \
+        , NDNBOOST_PP_TUPLE_ELEM_3_2 \
         , AUX778076_SEQUENCE_DEFAULT \
         ) \
     /**/
@@ -93,18 +93,18 @@
 #else // AUX778076_SEQUENCE_INTEGRAL_WRAPPER
 
 #   define AUX778076_SEQUENCE_PARAM_NAME C
-#   define AUX778076_SEQUENCE_TEMPLATE_PARAM BOOST_MPL_AUX_NTTP_DECL(long, C)
+#   define AUX778076_SEQUENCE_TEMPLATE_PARAM NDNBOOST_MPL_AUX_NTTP_DECL(long, C)
 #   define AUX778076_SEQUENCE_DEFAULT LONG_MAX
 
 #   define AUX778076_SEQUENCE_PARAMS() \
-    typename T, BOOST_PP_ENUM_PARAMS( \
+    typename T, NDNBOOST_PP_ENUM_PARAMS( \
           AUX778076_SEQUENCE_LIMIT \
         , AUX778076_SEQUENCE_TEMPLATE_PARAM \
         ) \
     /**/
 
 #   define AUX778076_SEQUENCE_ARGS() \
-    T, BOOST_PP_ENUM_PARAMS( \
+    T, NDNBOOST_PP_ENUM_PARAMS( \
           AUX778076_SEQUENCE_LIMIT \
         , C \
         ) \
@@ -112,7 +112,7 @@
 
 #   define AUX778076_SEQUENCE_DEFAULT_PARAMS() \
     typename T, \
-    BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT( \
+    NDNBOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT( \
           AUX778076_SEQUENCE_LIMIT \
         , AUX778076_SEQUENCE_TEMPLATE_PARAM \
         , AUX778076_SEQUENCE_DEFAULT \
@@ -120,25 +120,25 @@
     /**/
 
 #   define AUX778076_SEQUENCE_N_PARAMS(n) \
-    typename T BOOST_PP_COMMA_IF(n) \
-    BOOST_PP_ENUM_PARAMS(n, AUX778076_SEQUENCE_TEMPLATE_PARAM) \
+    typename T NDNBOOST_PP_COMMA_IF(n) \
+    NDNBOOST_PP_ENUM_PARAMS(n, AUX778076_SEQUENCE_TEMPLATE_PARAM) \
     /**/
 
 #   if !defined(AUX778076_SEQUENCE_CONVERT_CN_TO)
-#       define AUX778076_SEQUENCE_CONVERT_CN_TO(z,n,TARGET) BOOST_PP_CAT(C,n)
+#       define AUX778076_SEQUENCE_CONVERT_CN_TO(z,n,TARGET) NDNBOOST_PP_CAT(C,n)
 #   endif
 
 #   define AUX778076_SEQUENCE_N_ARGS(n) \
-    T BOOST_PP_COMMA_IF(n) \
-    BOOST_PP_ENUM(n,AUX778076_SEQUENCE_CONVERT_CN_TO,T) \
+    T NDNBOOST_PP_COMMA_IF(n) \
+    NDNBOOST_PP_ENUM(n,AUX778076_SEQUENCE_CONVERT_CN_TO,T) \
     /**/
 
 #   define AUX778076_SEQUENCE_N_PARTIAL_SPEC_ARGS(n) \
-    T, BOOST_PP_ENUM_PARAMS(n, C) \
-    BOOST_PP_COMMA_IF(n) \
-    BOOST_PP_ENUM( \
-          BOOST_PP_SUB_D(1,AUX778076_SEQUENCE_LIMIT,n) \
-        , BOOST_PP_TUPLE_ELEM_3_2 \
+    T, NDNBOOST_PP_ENUM_PARAMS(n, C) \
+    NDNBOOST_PP_COMMA_IF(n) \
+    NDNBOOST_PP_ENUM( \
+          NDNBOOST_PP_SUB_D(1,AUX778076_SEQUENCE_LIMIT,n) \
+        , NDNBOOST_PP_TUPLE_ELEM_3_2 \
         , AUX778076_SEQUENCE_DEFAULT \
         ) \
     /**/
@@ -146,7 +146,7 @@
 #endif // AUX778076_SEQUENCE_INTEGRAL_WRAPPER
 
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 // forward declaration
 template<
       AUX778076_SEQUENCE_DEFAULT_PARAMS()
@@ -154,17 +154,17 @@
 struct AUX778076_SEQUENCE_NAME;
 #else
 namespace aux {
-template< BOOST_MPL_AUX_NTTP_DECL(int, N) > 
-struct BOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_chooser);
+template< NDNBOOST_MPL_AUX_NTTP_DECL(int, N) > 
+struct NDNBOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_chooser);
 }
 #endif
 
-#define BOOST_PP_ITERATION_PARAMS_1 \
+#define NDNBOOST_PP_ITERATION_PARAMS_1 \
     (3,(0, AUX778076_SEQUENCE_LIMIT, <ndnboost/mpl/aux_/sequence_wrapper.hpp>))
-#include BOOST_PP_ITERATE()
+#include NDNBOOST_PP_ITERATE()
 
 // real C++ version is already taken care of
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#if defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 namespace aux {
 // ???_count_args
@@ -179,13 +179,13 @@
 template<
       AUX778076_SEQUENCE_PARAMS()
     >
-struct BOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_impl)
+struct NDNBOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_impl)
 {
-    typedef aux::BOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_count_args)<
-          BOOST_PP_ENUM_PARAMS(AUX778076_SEQUENCE_LIMIT, AUX778076_SEQUENCE_PARAM_NAME)
+    typedef aux::NDNBOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_count_args)<
+          NDNBOOST_PP_ENUM_PARAMS(AUX778076_SEQUENCE_LIMIT, AUX778076_SEQUENCE_PARAM_NAME)
         > arg_num_;
     
-    typedef typename aux::BOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_chooser)< arg_num_::value >
+    typedef typename aux::NDNBOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_chooser)< arg_num_::value >
         ::template result_< AUX778076_SEQUENCE_ARGS() >::type type;
 };
 
@@ -195,16 +195,16 @@
       AUX778076_SEQUENCE_DEFAULT_PARAMS()
     >
 struct AUX778076_SEQUENCE_NAME
-    : aux::BOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_impl)<
+    : aux::NDNBOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_impl)<
           AUX778076_SEQUENCE_ARGS()
         >::type
 {
-    typedef typename aux::BOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_impl)<
+    typedef typename aux::NDNBOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_impl)<
           AUX778076_SEQUENCE_ARGS()
         >::type type;
 };
 
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 #   undef AUX778076_SEQUENCE_N_PARTIAL_SPEC_ARGS
 #   undef AUX778076_SEQUENCE_N_ARGS
@@ -227,9 +227,9 @@
 ///// iteration
 
 #else
-#define i_ BOOST_PP_FRAME_ITERATION(1)
+#define i_ NDNBOOST_PP_FRAME_ITERATION(1)
 
-#   if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#   if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 #if i_ == AUX778076_SEQUENCE_LIMIT
 
@@ -265,7 +265,7 @@
 namespace aux {
 
 template<>
-struct BOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_chooser)<i_>
+struct NDNBOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_chooser)<i_>
 {
     template<
           AUX778076_SEQUENCE_PARAMS()
@@ -286,7 +286,7 @@
 
 } // namespace aux
 
-#   endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#   endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 #undef i_
-#endif // BOOST_PP_IS_ITERATING
+#endif // NDNBOOST_PP_IS_ITERATING
diff --git a/include/ndnboost/mpl/aux_/size_impl.hpp b/include/ndnboost/mpl/aux_/size_impl.hpp
index bf467f7..cfb16fa 100644
--- a/include/ndnboost/mpl/aux_/size_impl.hpp
+++ b/include/ndnboost/mpl/aux_/size_impl.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_SIZE_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_SIZE_IMPL_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_SIZE_IMPL_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_SIZE_IMPL_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -29,7 +29,7 @@
 struct size_impl
 {
     template< typename Sequence > struct apply
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x561))
+#if !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x561))
         : distance<
               typename begin<Sequence>::type
             , typename end<Sequence>::type
@@ -45,8 +45,8 @@
     };
 };
 
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1, size_impl)
+NDNBOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1, size_impl)
 
 }}
 
-#endif // BOOST_MPL_AUX_SIZE_IMPL_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_SIZE_IMPL_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/static_cast.hpp b/include/ndnboost/mpl/aux_/static_cast.hpp
index aebd267..13121eb 100644
--- a/include/ndnboost/mpl/aux_/static_cast.hpp
+++ b/include/ndnboost/mpl/aux_/static_cast.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_STATIC_CAST_HPP_INCLUDED
-#define BOOST_MPL_AUX_STATIC_CAST_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_STATIC_CAST_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_STATIC_CAST_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2001-2004
 //
@@ -16,12 +16,12 @@
 
 #include <ndnboost/mpl/aux_/config/workaround.hpp>
 
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x561)) \
- || BOOST_WORKAROUND(__GNUC__, < 3) \
- || BOOST_WORKAROUND(__MWERKS__, <= 0x3001)
-#   define BOOST_MPL_AUX_STATIC_CAST(T, expr) (T)(expr)
+#if NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x561)) \
+ || NDNBOOST_WORKAROUND(__GNUC__, < 3) \
+ || NDNBOOST_WORKAROUND(__MWERKS__, <= 0x3001)
+#   define NDNBOOST_MPL_AUX_STATIC_CAST(T, expr) (T)(expr)
 #else
-#   define BOOST_MPL_AUX_STATIC_CAST(T, expr) static_cast<T>(expr)
+#   define NDNBOOST_MPL_AUX_STATIC_CAST(T, expr) static_cast<T>(expr)
 #endif
 
-#endif // BOOST_MPL_AUX_STATIC_CAST_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_STATIC_CAST_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/template_arity.hpp b/include/ndnboost/mpl/aux_/template_arity.hpp
index 47a8398..f573080 100644
--- a/include/ndnboost/mpl/aux_/template_arity.hpp
+++ b/include/ndnboost/mpl/aux_/template_arity.hpp
@@ -1,10 +1,10 @@
 
-#if !defined(BOOST_PP_IS_ITERATING)
+#if !defined(NDNBOOST_PP_IS_ITERATING)
 
 ///// header body
 
-#ifndef BOOST_MPL_AUX_TEMPLATE_ARITY_HPP_INCLUDED
-#define BOOST_MPL_AUX_TEMPLATE_ARITY_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_TEMPLATE_ARITY_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_TEMPLATE_ARITY_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2001-2004
 //
@@ -21,11 +21,11 @@
 #include <ndnboost/mpl/aux_/config/ttp.hpp>
 #include <ndnboost/mpl/aux_/config/lambda.hpp>
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/aux_/template_arity_fwd.hpp>
 #   include <ndnboost/mpl/int.hpp>
-#   if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
-#   if defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING)
+#   if !defined(NDNBOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
+#   if defined(NDNBOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING)
 #       include <ndnboost/mpl/aux_/type_wrapper.hpp>
 #   endif
 #   else
@@ -36,16 +36,16 @@
 #include <ndnboost/mpl/aux_/config/static_constant.hpp>
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
-#   define BOOST_MPL_PREPROCESSED_HEADER template_arity.hpp
+#   define NDNBOOST_MPL_PREPROCESSED_HEADER template_arity.hpp
 #   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
 
 #else
 
-#   if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
-#   if defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING)
+#   if !defined(NDNBOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
+#   if defined(NDNBOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING)
 
 #   include <ndnboost/mpl/limits/arity.hpp>
 #   include <ndnboost/mpl/aux_/preprocessor/range.hpp>
@@ -59,29 +59,29 @@
 #   include <ndnboost/preprocessor/inc.hpp>
 #   include <ndnboost/preprocessor/cat.hpp>
 
-#   define AUX778076_ARITY BOOST_PP_INC(BOOST_MPL_LIMIT_METAFUNCTION_ARITY)
+#   define AUX778076_ARITY NDNBOOST_PP_INC(NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY)
 
 namespace ndnboost { namespace mpl { namespace aux {
 
-template< BOOST_MPL_AUX_NTTP_DECL(int, N) > struct arity_tag
+template< NDNBOOST_MPL_AUX_NTTP_DECL(int, N) > struct arity_tag
 {
     typedef char (&type)[N + 1];
 };
 
 #   define AUX778076_MAX_ARITY_OP(unused, state, i_) \
-    ( BOOST_PP_CAT(C,i_) > 0 ? BOOST_PP_CAT(C,i_) : state ) \
+    ( NDNBOOST_PP_CAT(C,i_) > 0 ? NDNBOOST_PP_CAT(C,i_) : state ) \
 /**/
 
 template<
-      BOOST_MPL_PP_PARAMS(AUX778076_ARITY, BOOST_MPL_AUX_NTTP_DECL(int, C))
+      NDNBOOST_MPL_PP_PARAMS(AUX778076_ARITY, NDNBOOST_MPL_AUX_NTTP_DECL(int, C))
     >
 struct max_arity
 {
-    BOOST_STATIC_CONSTANT(int, value = 
-          BOOST_PP_SEQ_FOLD_LEFT(
+    NDNBOOST_STATIC_CONSTANT(int, value = 
+          NDNBOOST_PP_SEQ_FOLD_LEFT(
               AUX778076_MAX_ARITY_OP
             , -1
-            , BOOST_MPL_PP_RANGE(1, AUX778076_ARITY)
+            , NDNBOOST_MPL_PP_RANGE(1, AUX778076_ARITY)
             )
         );
 };
@@ -90,27 +90,27 @@
 
 arity_tag<0>::type arity_helper(...);
 
-#   define BOOST_PP_ITERATION_LIMITS (1, AUX778076_ARITY)
-#   define BOOST_PP_FILENAME_1 <ndnboost/mpl/aux_/template_arity.hpp>
-#   include BOOST_PP_ITERATE()
+#   define NDNBOOST_PP_ITERATION_LIMITS (1, AUX778076_ARITY)
+#   define NDNBOOST_PP_FILENAME_1 <ndnboost/mpl/aux_/template_arity.hpp>
+#   include NDNBOOST_PP_ITERATE()
 
-template< typename F, BOOST_MPL_AUX_NTTP_DECL(int, N) >
+template< typename F, NDNBOOST_MPL_AUX_NTTP_DECL(int, N) >
 struct template_arity_impl
 {
-    BOOST_STATIC_CONSTANT(int, value = 
+    NDNBOOST_STATIC_CONSTANT(int, value = 
           sizeof(::ndnboost::mpl::aux::arity_helper(type_wrapper<F>(),arity_tag<N>())) - 1
         );
 };
 
 #   define AUX778076_TEMPLATE_ARITY_IMPL_INVOCATION(unused, i_, F) \
-    BOOST_PP_COMMA_IF(i_) template_arity_impl<F,BOOST_PP_INC(i_)>::value \
+    NDNBOOST_PP_COMMA_IF(i_) template_arity_impl<F,NDNBOOST_PP_INC(i_)>::value \
 /**/
 
 template< typename F >
 struct template_arity
 {
-    BOOST_STATIC_CONSTANT(int, value = (
-          max_arity< BOOST_MPL_PP_REPEAT(
+    NDNBOOST_STATIC_CONSTANT(int, value = (
+          max_arity< NDNBOOST_MPL_PP_REPEAT(
               AUX778076_ARITY
             , AUX778076_TEMPLATE_ARITY_IMPL_INVOCATION
             , F
@@ -126,8 +126,8 @@
 
 }}}
 
-#   endif // BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING
-#   else // BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT
+#   endif // NDNBOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING
+#   else // NDNBOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT
 
 #   include <ndnboost/mpl/aux_/config/eti.hpp>
 
@@ -158,7 +158,7 @@
 {
 };
 
-#if defined(BOOST_MPL_CFG_MSVC_ETI_BUG)
+#if defined(NDNBOOST_MPL_CFG_MSVC_ETI_BUG)
 template<>
 struct template_arity<int>
     : mpl::int_<-1>
@@ -168,22 +168,22 @@
 
 }}}
 
-#   endif // BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT
+#   endif // NDNBOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_AUX_TEMPLATE_ARITY_HPP_INCLUDED
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_AUX_TEMPLATE_ARITY_HPP_INCLUDED
 
 ///// iteration
 
 #else
-#define i_ BOOST_PP_FRAME_ITERATION(1)
+#define i_ NDNBOOST_PP_FRAME_ITERATION(1)
 
 template<
-      template< BOOST_MPL_PP_PARAMS(i_, typename P) > class F
-    , BOOST_MPL_PP_PARAMS(i_, typename T)
+      template< NDNBOOST_MPL_PP_PARAMS(i_, typename P) > class F
+    , NDNBOOST_MPL_PP_PARAMS(i_, typename T)
     >
 typename arity_tag<i_>::type
-arity_helper(type_wrapper< F<BOOST_MPL_PP_PARAMS(i_, T)> >, arity_tag<i_>);
+arity_helper(type_wrapper< F<NDNBOOST_MPL_PP_PARAMS(i_, T)> >, arity_tag<i_>);
 
 #undef i_
-#endif // BOOST_PP_IS_ITERATING
+#endif // NDNBOOST_PP_IS_ITERATING
diff --git a/include/ndnboost/mpl/aux_/template_arity_fwd.hpp b/include/ndnboost/mpl/aux_/template_arity_fwd.hpp
index 4ed2f16..f24bd99 100644
--- a/include/ndnboost/mpl/aux_/template_arity_fwd.hpp
+++ b/include/ndnboost/mpl/aux_/template_arity_fwd.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_TEMPLATE_ARITY_FWD_HPP_INCLUDED
-#define BOOST_MPL_AUX_TEMPLATE_ARITY_FWD_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_TEMPLATE_ARITY_FWD_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_TEMPLATE_ARITY_FWD_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2001-2004
 //
@@ -20,4 +20,4 @@
 
 }}}
 
-#endif // BOOST_MPL_AUX_TEMPLATE_ARITY_FWD_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_TEMPLATE_ARITY_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/traits_lambda_spec.hpp b/include/ndnboost/mpl/aux_/traits_lambda_spec.hpp
index a3ab41f..0f21dda 100644
--- a/include/ndnboost/mpl/aux_/traits_lambda_spec.hpp
+++ b/include/ndnboost/mpl/aux_/traits_lambda_spec.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_TRAITS_LAMBDA_SPEC_HPP_INCLUDED
-#define BOOST_MPL_AUX_TRAITS_LAMBDA_SPEC_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_TRAITS_LAMBDA_SPEC_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_TRAITS_LAMBDA_SPEC_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2008
 //
@@ -19,16 +19,16 @@
 #include <ndnboost/mpl/aux_/preprocessor/params.hpp>
 #include <ndnboost/mpl/aux_/config/lambda.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
+#if !defined(NDNBOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
 
-#   define BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC_IMPL(i, trait) /**/
+#   define NDNBOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC_IMPL(i, trait) /**/
 
-#elif !defined(BOOST_MPL_CFG_MSVC_ETI_BUG)
+#elif !defined(NDNBOOST_MPL_CFG_MSVC_ETI_BUG)
 
-#   define BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC_IMPL(i, trait) \
+#   define NDNBOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC_IMPL(i, trait) \
 template<> struct trait<void_> \
 { \
-    template< BOOST_MPL_PP_PARAMS(i, typename T) > struct apply \
+    template< NDNBOOST_MPL_PP_PARAMS(i, typename T) > struct apply \
     { \
     }; \
 }; \
@@ -36,28 +36,28 @@
 
 #else
 
-#   define BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC_IMPL(i, trait) \
+#   define NDNBOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC_IMPL(i, trait) \
 template<> struct trait<void_> \
 { \
-    template< BOOST_MPL_PP_PARAMS(i, typename T) > struct apply \
+    template< NDNBOOST_MPL_PP_PARAMS(i, typename T) > struct apply \
     { \
     }; \
 }; \
 template<> struct trait<int> \
 { \
-    template< BOOST_MPL_PP_PARAMS(i, typename T) > struct apply \
+    template< NDNBOOST_MPL_PP_PARAMS(i, typename T) > struct apply \
     { \
         typedef int type; \
     }; \
 }; \
 /**/
 
-#endif // BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT
+#endif // NDNBOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT
 
 
-#define BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(i, trait) \
-    BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC_IMPL(i, trait) \
+#define NDNBOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(i, trait) \
+    NDNBOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC_IMPL(i, trait) \
     template<> struct trait<non_sequence_tag> {}; \
 /**/
 
-#endif // BOOST_MPL_AUX_TRAITS_LAMBDA_SPEC_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_TRAITS_LAMBDA_SPEC_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/type_wrapper.hpp b/include/ndnboost/mpl/aux_/type_wrapper.hpp
index 11139c3..faaf54b 100644
--- a/include/ndnboost/mpl/aux_/type_wrapper.hpp
+++ b/include/ndnboost/mpl/aux_/type_wrapper.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_TYPE_WRAPPER_HPP_INCLUDED
-#define BOOST_MPL_AUX_TYPE_WRAPPER_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_TYPE_WRAPPER_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_TYPE_WRAPPER_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 // Copyright Peter Dimov 2000-2003
@@ -24,7 +24,7 @@
     typedef T type;
 };
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 // agurt 08/may/03: a complicated way to extract the wrapped type; need it 
 // mostly for the sake of GCC (3.2.x), which ICEs if you try to extract the 
 // nested 'type' from 'type_wrapper<T>' when the latter was the result of a
@@ -44,4 +44,4 @@
 
 }}}
 
-#endif // BOOST_MPL_AUX_TYPE_WRAPPER_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_TYPE_WRAPPER_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/unwrap.hpp b/include/ndnboost/mpl/aux_/unwrap.hpp
index 2b755b9..292d8c8 100644
--- a/include/ndnboost/mpl/aux_/unwrap.hpp
+++ b/include/ndnboost/mpl/aux_/unwrap.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_UNWRAP_HPP_INCLUDED
-#define BOOST_MPL_AUX_UNWRAP_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_UNWRAP_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_UNWRAP_HPP_INCLUDED
 
 // Copyright Peter Dimov and Multi Media Ltd 2001, 2002
 // Copyright David Abrahams 2001
@@ -44,4 +44,4 @@
 
 }}}
 
-#endif // BOOST_MPL_AUX_UNWRAP_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_UNWRAP_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/value_wknd.hpp b/include/ndnboost/mpl/aux_/value_wknd.hpp
index a68fcca..0203bae 100644
--- a/include/ndnboost/mpl/aux_/value_wknd.hpp
+++ b/include/ndnboost/mpl/aux_/value_wknd.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_VALUE_WKND_HPP_INCLUDED
-#define BOOST_MPL_AUX_VALUE_WKND_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_VALUE_WKND_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_VALUE_WKND_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -19,8 +19,8 @@
 #include <ndnboost/mpl/aux_/config/eti.hpp>
 #include <ndnboost/mpl/aux_/config/workaround.hpp>
 
-#if defined(BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS) \
-    || defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG)
+#if defined(NDNBOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS) \
+    || defined(NDNBOOST_MPL_CFG_MSVC_60_ETI_BUG)
 
 #   include <ndnboost/mpl/int.hpp>
 
@@ -30,7 +30,7 @@
 {
 };
 
-#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG)
+#if defined(NDNBOOST_MPL_CFG_MSVC_60_ETI_BUG)
 template<> struct value_wknd<int>
     : int_<1>
 {
@@ -40,32 +40,32 @@
 }}}
 
 
-#if !defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG)
-#   define BOOST_MPL_AUX_VALUE_WKND(C) \
-    ::BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::aux::value_wknd< C > \
+#if !defined(NDNBOOST_MPL_CFG_MSVC_60_ETI_BUG)
+#   define NDNBOOST_MPL_AUX_VALUE_WKND(C) \
+    ::NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::aux::value_wknd< C > \
 /**/
-#    define BOOST_MPL_AUX_MSVC_VALUE_WKND(C) BOOST_MPL_AUX_VALUE_WKND(C)
+#    define NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(C) NDNBOOST_MPL_AUX_VALUE_WKND(C)
 #else
-#   define BOOST_MPL_AUX_VALUE_WKND(C) C
-#   define BOOST_MPL_AUX_MSVC_VALUE_WKND(C) \
+#   define NDNBOOST_MPL_AUX_VALUE_WKND(C) C
+#   define NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(C) \
     ::ndnboost::mpl::aux::value_wknd< C > \
 /**/
 #endif
 
-#else // BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS
+#else // NDNBOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS
 
-#   define BOOST_MPL_AUX_VALUE_WKND(C) C
-#   define BOOST_MPL_AUX_MSVC_VALUE_WKND(C) C
+#   define NDNBOOST_MPL_AUX_VALUE_WKND(C) C
+#   define NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(C) C
 
 #endif
 
-#if BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
-#   define BOOST_MPL_AUX_NESTED_VALUE_WKND(T, C) \
-    BOOST_MPL_AUX_STATIC_CAST(T, C::value) \
+#if NDNBOOST_WORKAROUND(__EDG_VERSION__, <= 238)
+#   define NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(T, C) \
+    NDNBOOST_MPL_AUX_STATIC_CAST(T, C::value) \
 /**/
 #else
-#   define BOOST_MPL_AUX_NESTED_VALUE_WKND(T, C) \
-    BOOST_MPL_AUX_VALUE_WKND(C)::value \
+#   define NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(T, C) \
+    NDNBOOST_MPL_AUX_VALUE_WKND(C)::value \
 /**/
 #endif
 
@@ -77,7 +77,7 @@
     typedef typename T::value_type type;
 };
 
-#if defined(BOOST_MPL_CFG_MSVC_ETI_BUG)
+#if defined(NDNBOOST_MPL_CFG_MSVC_ETI_BUG)
 template<> struct value_type_wknd<int>
 {
     typedef int type;
@@ -86,4 +86,4 @@
 
 }}}
 
-#endif // BOOST_MPL_AUX_VALUE_WKND_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_VALUE_WKND_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/yes_no.hpp b/include/ndnboost/mpl/aux_/yes_no.hpp
index f26d2df..4422262 100644
--- a/include/ndnboost/mpl/aux_/yes_no.hpp
+++ b/include/ndnboost/mpl/aux_/yes_no.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_YES_NO_HPP_INCLUDED
-#define BOOST_MPL_AUX_YES_NO_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_YES_NO_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_YES_NO_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -36,9 +36,9 @@
 };
 
 
-template< BOOST_MPL_AUX_NTTP_DECL(long, n) > struct weighted_tag
+template< NDNBOOST_MPL_AUX_NTTP_DECL(long, n) > struct weighted_tag
 {
-#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
     typedef char (&type)[n];
 #else
     char buf[n];
@@ -46,7 +46,7 @@
 #endif
 };
 
-#if defined(BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES)
+#if defined(NDNBOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES)
 template<> struct weighted_tag<0>
 {
     typedef char (&type)[1];
@@ -55,4 +55,4 @@
 
 }}}
 
-#endif // BOOST_MPL_AUX_YES_NO_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_YES_NO_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/back_fwd.hpp b/include/ndnboost/mpl/back_fwd.hpp
index bb4963a..44d85e5 100644
--- a/include/ndnboost/mpl/back_fwd.hpp
+++ b/include/ndnboost/mpl/back_fwd.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_BACK_FWD_HPP_INCLUDED
-#define BOOST_MPL_BACK_FWD_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_BACK_FWD_HPP_INCLUDED
+#define NDNBOOST_MPL_BACK_FWD_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -21,4 +21,4 @@
 
 }}
 
-#endif // BOOST_MPL_BACK_FWD_HPP_INCLUDED
+#endif // NDNBOOST_MPL_BACK_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/back_inserter.hpp b/include/ndnboost/mpl/back_inserter.hpp
index e4c779b..99f6c10 100644
--- a/include/ndnboost/mpl/back_inserter.hpp
+++ b/include/ndnboost/mpl/back_inserter.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_BACK_INSERTER_HPP_INCLUDED
-#define BOOST_MPL_BACK_INSERTER_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_BACK_INSERTER_HPP_INCLUDED
+#define NDNBOOST_MPL_BACK_INSERTER_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2003-2004
 // Copyright David Abrahams 2003-2004
@@ -31,4 +31,4 @@
 
 }}
 
-#endif // BOOST_MPL_BACK_INSERTER_HPP_INCLUDED
+#endif // NDNBOOST_MPL_BACK_INSERTER_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/begin_end.hpp b/include/ndnboost/mpl/begin_end.hpp
index 89098fa..d5991f8 100644
--- a/include/ndnboost/mpl/begin_end.hpp
+++ b/include/ndnboost/mpl/begin_end.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_BEGIN_END_HPP_INCLUDED
-#define BOOST_MPL_BEGIN_END_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_BEGIN_END_HPP_INCLUDED
+#define NDNBOOST_MPL_BEGIN_END_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -26,7 +26,7 @@
 // happy this way (less ETI-related errors), and it doesn't affect 
 // anything else
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(Sequence)
     >
 struct begin
 {
@@ -34,11 +34,11 @@
     typedef typename begin_impl< tag_ >
         ::template apply< Sequence >::type type;
 
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,begin,(Sequence))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,begin,(Sequence))
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(Sequence)
     >
 struct end
 {
@@ -46,12 +46,12 @@
     typedef typename end_impl< tag_ >
         ::template apply< Sequence >::type type;
 
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,end,(Sequence))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,end,(Sequence))
 };
 
-BOOST_MPL_AUX_NA_SPEC(1, begin)
-BOOST_MPL_AUX_NA_SPEC(1, end)
+NDNBOOST_MPL_AUX_NA_SPEC(1, begin)
+NDNBOOST_MPL_AUX_NA_SPEC(1, end)
 
 }}
 
-#endif // BOOST_MPL_BEGIN_END_HPP_INCLUDED
+#endif // NDNBOOST_MPL_BEGIN_END_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/begin_end_fwd.hpp b/include/ndnboost/mpl/begin_end_fwd.hpp
index ecbf481..0e486ab 100644
--- a/include/ndnboost/mpl/begin_end_fwd.hpp
+++ b/include/ndnboost/mpl/begin_end_fwd.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_BEGIN_END_FWD_HPP_INCLUDED
-#define BOOST_MPL_BEGIN_END_FWD_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_BEGIN_END_FWD_HPP_INCLUDED
+#define NDNBOOST_MPL_BEGIN_END_FWD_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -24,4 +24,4 @@
 
 }}
 
-#endif // BOOST_MPL_BEGIN_END_FWD_HPP_INCLUDED
+#endif // NDNBOOST_MPL_BEGIN_END_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/bind.hpp b/include/ndnboost/mpl/bind.hpp
index cc0834e..5b30a16 100644
--- a/include/ndnboost/mpl/bind.hpp
+++ b/include/ndnboost/mpl/bind.hpp
@@ -1,10 +1,10 @@
 
-#if !defined(BOOST_PP_IS_ITERATING)
+#if !defined(NDNBOOST_PP_IS_ITERATING)
 
 ///// header body
 
-#ifndef BOOST_MPL_BIND_HPP_INCLUDED
-#define BOOST_MPL_BIND_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_BIND_HPP_INCLUDED
+#define NDNBOOST_MPL_BIND_HPP_INCLUDED
 
 // Copyright Peter Dimov 2001
 // Copyright Aleksey Gurtovoy 2001-2004
@@ -19,7 +19,7 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/bind_fwd.hpp>
 #   include <ndnboost/mpl/placeholders.hpp>
 #   include <ndnboost/mpl/next.hpp>
@@ -30,7 +30,7 @@
 #   include <ndnboost/mpl/aux_/arity_spec.hpp>
 #   include <ndnboost/mpl/aux_/type_wrapper.hpp>
 #   include <ndnboost/mpl/aux_/yes_no.hpp>
-#   if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#   if defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 #       include <ndnboost/type_traits/is_reference.hpp>
 #   endif 
 #endif
@@ -39,13 +39,13 @@
 #include <ndnboost/mpl/aux_/config/static_constant.hpp>
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
-#   if defined(BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT)
-#       define BOOST_MPL_PREPROCESSED_HEADER basic_bind.hpp
+#   if defined(NDNBOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT)
+#       define NDNBOOST_MPL_PREPROCESSED_HEADER basic_bind.hpp
 #   else
-#       define BOOST_MPL_PREPROCESSED_HEADER bind.hpp
+#       define NDNBOOST_MPL_PREPROCESSED_HEADER bind.hpp
 #   endif
 #   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
 
@@ -74,40 +74,40 @@
 
 // local macros, #undef-ined at the end of the header
 #   define AUX778076_APPLY \
-    BOOST_PP_CAT(apply_wrap,BOOST_MPL_LIMIT_METAFUNCTION_ARITY) \
+    NDNBOOST_PP_CAT(apply_wrap,NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY) \
     /**/
 
-#   if defined(BOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS)
+#   if defined(NDNBOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS)
 #       define AUX778076_DMC_PARAM() , int dummy_
 #   else
 #       define AUX778076_DMC_PARAM()
 #   endif
 
 #   define AUX778076_BIND_PARAMS(param) \
-    BOOST_MPL_PP_PARAMS( \
-          BOOST_MPL_LIMIT_METAFUNCTION_ARITY \
+    NDNBOOST_MPL_PP_PARAMS( \
+          NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY \
         , param \
         ) \
     /**/
 
 #   define AUX778076_BIND_DEFAULT_PARAMS(param, value) \
-    BOOST_MPL_PP_DEFAULT_PARAMS( \
-          BOOST_MPL_LIMIT_METAFUNCTION_ARITY \
+    NDNBOOST_MPL_PP_DEFAULT_PARAMS( \
+          NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY \
         , param \
         , value \
         ) \
     /**/
 
 #   define AUX778076_BIND_N_PARAMS(n, param) \
-    BOOST_PP_COMMA_IF(n) BOOST_MPL_PP_PARAMS(n, param) \
+    NDNBOOST_PP_COMMA_IF(n) NDNBOOST_MPL_PP_PARAMS(n, param) \
     /**/
 
 #   define AUX778076_BIND_N_SPEC_PARAMS(n, param, def) \
-    BOOST_PP_COMMA_IF(n) \
-    BOOST_MPL_PP_PARTIAL_SPEC_PARAMS(n, param, def) \
+    NDNBOOST_PP_COMMA_IF(n) \
+    NDNBOOST_MPL_PP_PARTIAL_SPEC_PARAMS(n, param, def) \
     /**/
 
-#if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
+#if !defined(NDNBOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
 #   define AUX778076_BIND_NESTED_DEFAULT_PARAMS(param, value) \
     AUX778076_BIND_DEFAULT_PARAMS(param, value) \
     /**/
@@ -119,7 +119,7 @@
 
 namespace aux {
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template<
       typename T, AUX778076_BIND_PARAMS(typename U)
@@ -129,7 +129,7 @@
     typedef T type;
 };
 
-#   if !defined(BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT)
+#   if !defined(NDNBOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT)
 
 template<
       typename T
@@ -150,17 +150,17 @@
     typedef Arg type;
 };
 
-#   endif // BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT
+#   endif // NDNBOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT
 
 template<
-      BOOST_MPL_AUX_NTTP_DECL(int, N), AUX778076_BIND_PARAMS(typename U)
+      NDNBOOST_MPL_AUX_NTTP_DECL(int, N), AUX778076_BIND_PARAMS(typename U)
     >
 struct resolve_bind_arg< arg<N>,AUX778076_BIND_PARAMS(U) >
 {
     typedef typename AUX778076_APPLY<mpl::arg<N>, AUX778076_BIND_PARAMS(U)>::type type;
 };
 
-#if !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE)
+#if !defined(NDNBOOST_MPL_CFG_NO_BIND_TEMPLATE)
 template<
       typename F, AUX778076_BIND_PARAMS(typename T), AUX778076_BIND_PARAMS(typename U)
     >
@@ -171,7 +171,7 @@
 };
 #endif
 
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#else // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 // agurt, 15/jan/02: it's not a intended to be used as a function class, and 
 // MSVC6.5 has problems with 'apply' name here (the code compiles, but doesn't
@@ -209,7 +209,7 @@
 {
 };
 
-#   if !defined(BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT)
+#   if !defined(NDNBOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT)
 
 template< typename T > 
 struct replace_unnamed_arg_impl
@@ -237,11 +237,11 @@
 {
 };
 
-#   endif // BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT
+#   endif // NDNBOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT
 
 // agurt, 10/mar/02: the forward declaration has to appear before any of
 // 'is_bind_helper' overloads, otherwise MSVC6.5 issues an ICE on it
-template< BOOST_MPL_AUX_NTTP_DECL(int, arity_) > struct bind_chooser;
+template< NDNBOOST_MPL_AUX_NTTP_DECL(int, arity_) > struct bind_chooser;
 
 aux::no_tag is_bind_helper(...);
 template< typename T > aux::no_tag is_bind_helper(protect<T>*);
@@ -250,14 +250,14 @@
 // agurt, 15/mar/02: MSVC 6.5 fails to properly resolve the overload 
 // in case if we use 'aux::type_wrapper< bind<...> >' here, and all 
 // 'bind' instantiations form a complete type anyway
-#if !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE)
+#if !defined(NDNBOOST_MPL_CFG_NO_BIND_TEMPLATE)
 template<
       typename F, AUX778076_BIND_PARAMS(typename T)
     >
 aux::yes_tag is_bind_helper(bind<F,AUX778076_BIND_PARAMS(T)>*);
 #endif
 
-template< BOOST_MPL_AUX_NTTP_DECL(int, N) >
+template< NDNBOOST_MPL_AUX_NTTP_DECL(int, N) >
 aux::yes_tag is_bind_helper(arg<N>*);
 
 template< bool is_ref_ = true >
@@ -265,7 +265,7 @@
 {
     template< typename T > struct result_
     {
-        BOOST_STATIC_CONSTANT(bool, value = false);
+        NDNBOOST_STATIC_CONSTANT(bool, value = false);
     };
 };
 
@@ -274,7 +274,7 @@
 {
     template< typename T > struct result_
     {
-        BOOST_STATIC_CONSTANT(bool, value = 
+        NDNBOOST_STATIC_CONSTANT(bool, value = 
               sizeof(aux::is_bind_helper(static_cast<T*>(0))) 
                 == sizeof(aux::yes_tag)
             );
@@ -287,38 +287,38 @@
 {
 };
 
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 } // namespace aux
 
 
-#define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, <ndnboost/mpl/bind.hpp>))
-#include BOOST_PP_ITERATE()
+#define NDNBOOST_PP_ITERATION_PARAMS_1 \
+    (3,(0, NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY, <ndnboost/mpl/bind.hpp>))
+#include NDNBOOST_PP_ITERATE()
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-    && !defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
+    && !defined(NDNBOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS)
 /// if_/eval_if specializations
 #   define AUX778076_SPEC_NAME if_
-#   define BOOST_PP_ITERATION_PARAMS_1 (3,(3, 3, <ndnboost/mpl/bind.hpp>))
-#   include BOOST_PP_ITERATE()
+#   define NDNBOOST_PP_ITERATION_PARAMS_1 (3,(3, 3, <ndnboost/mpl/bind.hpp>))
+#   include NDNBOOST_PP_ITERATE()
 
-#if !defined(BOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS)
+#if !defined(NDNBOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS)
 #   define AUX778076_SPEC_NAME eval_if
-#   define BOOST_PP_ITERATION_PARAMS_1 (3,(3, 3, <ndnboost/mpl/bind.hpp>))
-#   include BOOST_PP_ITERATE()
+#   define NDNBOOST_PP_ITERATION_PARAMS_1 (3,(3, 3, <ndnboost/mpl/bind.hpp>))
+#   include NDNBOOST_PP_ITERATE()
 #endif
 #endif
 
 // real C++ version is already taken care of
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-    && !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE)
+#if defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
+    && !defined(NDNBOOST_MPL_CFG_NO_BIND_TEMPLATE)
 
 namespace aux {
 // apply_count_args
 #define AUX778076_COUNT_ARGS_PREFIX bind
 #define AUX778076_COUNT_ARGS_DEFAULT na
-#define AUX778076_COUNT_ARGS_ARITY BOOST_MPL_LIMIT_METAFUNCTION_ARITY
+#define AUX778076_COUNT_ARGS_ARITY NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY
 #include <ndnboost/mpl/aux_/count_args.hpp>
 }
 
@@ -333,18 +333,18 @@
 {
 };
 
-BOOST_MPL_AUX_ARITY_SPEC(
-      BOOST_PP_INC(BOOST_MPL_LIMIT_METAFUNCTION_ARITY)
+NDNBOOST_MPL_AUX_ARITY_SPEC(
+      NDNBOOST_PP_INC(NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY)
     , bind
     )
 
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(
-      BOOST_PP_INC(BOOST_MPL_LIMIT_METAFUNCTION_ARITY)
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(
+      NDNBOOST_PP_INC(NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY)
     , bind
     )
 
 
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 #   undef AUX778076_BIND_NESTED_DEFAULT_PARAMS
 #   undef AUX778076_BIND_N_SPEC_PARAMS
@@ -356,31 +356,31 @@
 
 }}
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_BIND_HPP_INCLUDED
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_BIND_HPP_INCLUDED
 
 ///// iteration, depth == 1
 
 // For gcc 4.4 compatability, we must include the
-// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
-#else // BOOST_PP_IS_ITERATING
-#if BOOST_PP_ITERATION_DEPTH() == 1
+// NDNBOOST_PP_ITERATION_DEPTH test inside an #else clause.
+#else // NDNBOOST_PP_IS_ITERATING
+#if NDNBOOST_PP_ITERATION_DEPTH() == 1
 
-#   define i_ BOOST_PP_FRAME_ITERATION(1)
+#   define i_ NDNBOOST_PP_FRAME_ITERATION(1)
 
 #if defined(AUX778076_SPEC_NAME)
 
 // lazy metafunction specialization
-template< template< BOOST_MPL_PP_PARAMS(i_, typename T) > class F, typename Tag >
-struct BOOST_PP_CAT(quote,i_);
+template< template< NDNBOOST_MPL_PP_PARAMS(i_, typename T) > class F, typename Tag >
+struct NDNBOOST_PP_CAT(quote,i_);
 
-template< BOOST_MPL_PP_PARAMS(i_, typename T) > struct AUX778076_SPEC_NAME;
+template< NDNBOOST_MPL_PP_PARAMS(i_, typename T) > struct AUX778076_SPEC_NAME;
 
 template<
       typename Tag AUX778076_BIND_N_PARAMS(i_, typename T)
     >
-struct BOOST_PP_CAT(bind,i_)< 
-      BOOST_PP_CAT(quote,i_)<AUX778076_SPEC_NAME,Tag>
+struct NDNBOOST_PP_CAT(bind,i_)< 
+      NDNBOOST_PP_CAT(quote,i_)<AUX778076_SPEC_NAME,Tag>
     AUX778076_BIND_N_PARAMS(i_,T)
     >
 {
@@ -391,12 +391,12 @@
     {
      private:
         typedef mpl::arg<1> n1;
-#       define BOOST_PP_ITERATION_PARAMS_2 (3,(1, i_, <ndnboost/mpl/bind.hpp>))
-#       include BOOST_PP_ITERATE()
+#       define NDNBOOST_PP_ITERATION_PARAMS_2 (3,(1, i_, <ndnboost/mpl/bind.hpp>))
+#       include NDNBOOST_PP_ITERATE()
 
         typedef typename AUX778076_SPEC_NAME<
               typename t1::type
-            , BOOST_MPL_PP_EXT_PARAMS(2, BOOST_PP_INC(i_), t)
+            , NDNBOOST_MPL_PP_EXT_PARAMS(2, NDNBOOST_PP_INC(i_), t)
             >::type f_;
 
      public:
@@ -411,7 +411,7 @@
 template<
       typename F AUX778076_BIND_N_PARAMS(i_, typename T) AUX778076_DMC_PARAM()
     >
-struct BOOST_PP_CAT(bind,i_)
+struct NDNBOOST_PP_CAT(bind,i_)
 {
     template<
           AUX778076_BIND_NESTED_DEFAULT_PARAMS(typename U, na)
@@ -419,7 +419,7 @@
     struct apply
     {
      private:
-#   if !defined(BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT)
+#   if !defined(NDNBOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT)
 
         typedef aux::replace_unnamed_arg< F,mpl::arg<1> > r0;
         typedef typename r0::type a0;
@@ -429,23 +429,23 @@
 #   else
         typedef typename aux::resolve_bind_arg<F,AUX778076_BIND_PARAMS(U)>::type f_;
 
-#   endif // BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT
+#   endif // NDNBOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT
 
 #   if i_ > 0
-#       define BOOST_PP_ITERATION_PARAMS_2 (3,(1, i_, <ndnboost/mpl/bind.hpp>))
-#       include BOOST_PP_ITERATE()
+#       define NDNBOOST_PP_ITERATION_PARAMS_2 (3,(1, i_, <ndnboost/mpl/bind.hpp>))
+#       include NDNBOOST_PP_ITERATE()
 #   endif
 
      public:
 
 #   define AUX778076_ARG(unused, i_, t) \
-    BOOST_PP_COMMA_IF(i_) \
-    typename BOOST_PP_CAT(t,BOOST_PP_INC(i_))::type \
+    NDNBOOST_PP_COMMA_IF(i_) \
+    typename NDNBOOST_PP_CAT(t,NDNBOOST_PP_INC(i_))::type \
 /**/
 
-        typedef typename BOOST_PP_CAT(apply_wrap,i_)<
+        typedef typename NDNBOOST_PP_CAT(apply_wrap,i_)<
               f_ 
-            BOOST_PP_COMMA_IF(i_) BOOST_MPL_PP_REPEAT(i_, AUX778076_ARG, t)
+            NDNBOOST_PP_COMMA_IF(i_) NDNBOOST_MPL_PP_REPEAT(i_, AUX778076_ARG, t)
             >::type type;
 
 #   undef AUX778076_ARG
@@ -454,16 +454,16 @@
 
 namespace aux {
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template<
       typename F AUX778076_BIND_N_PARAMS(i_, typename T), AUX778076_BIND_PARAMS(typename U)
     >
 struct resolve_bind_arg<
-      BOOST_PP_CAT(bind,i_)<F AUX778076_BIND_N_PARAMS(i_,T)>,AUX778076_BIND_PARAMS(U)
+      NDNBOOST_PP_CAT(bind,i_)<F AUX778076_BIND_N_PARAMS(i_,T)>,AUX778076_BIND_PARAMS(U)
     >
 {
-    typedef BOOST_PP_CAT(bind,i_)<F AUX778076_BIND_N_PARAMS(i_,T)> f_;
+    typedef NDNBOOST_PP_CAT(bind,i_)<F AUX778076_BIND_N_PARAMS(i_,T)> f_;
     typedef typename AUX778076_APPLY<f_, AUX778076_BIND_PARAMS(U)>::type type;
 };
 
@@ -473,25 +473,25 @@
       typename F AUX778076_BIND_N_PARAMS(i_, typename T)
     >
 aux::yes_tag
-is_bind_helper(BOOST_PP_CAT(bind,i_)<F AUX778076_BIND_N_PARAMS(i_,T)>*);
+is_bind_helper(NDNBOOST_PP_CAT(bind,i_)<F AUX778076_BIND_N_PARAMS(i_,T)>*);
 
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 } // namespace aux
 
-BOOST_MPL_AUX_ARITY_SPEC(BOOST_PP_INC(i_), BOOST_PP_CAT(bind,i_))
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(BOOST_PP_INC(i_), BOOST_PP_CAT(bind,i_))
+NDNBOOST_MPL_AUX_ARITY_SPEC(NDNBOOST_PP_INC(i_), NDNBOOST_PP_CAT(bind,i_))
+NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(NDNBOOST_PP_INC(i_), NDNBOOST_PP_CAT(bind,i_))
 
-#   if !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE)
-#   if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#   if !defined(NDNBOOST_MPL_CFG_NO_BIND_TEMPLATE)
+#   if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
     
-#if i_ == BOOST_MPL_LIMIT_METAFUNCTION_ARITY
+#if i_ == NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY
 /// primary template (not a specialization!)
 template<
       typename F AUX778076_BIND_N_PARAMS(i_, typename T) AUX778076_DMC_PARAM()
     >
 struct bind
-    : BOOST_PP_CAT(bind,i_)<F AUX778076_BIND_N_PARAMS(i_,T) >
+    : NDNBOOST_PP_CAT(bind,i_)<F AUX778076_BIND_N_PARAMS(i_,T) >
 {
 };
 #else
@@ -499,12 +499,12 @@
       typename F AUX778076_BIND_N_PARAMS(i_, typename T) AUX778076_DMC_PARAM()
     >
 struct bind< F AUX778076_BIND_N_SPEC_PARAMS(i_, T, na) >
-    : BOOST_PP_CAT(bind,i_)<F AUX778076_BIND_N_PARAMS(i_,T) >
+    : NDNBOOST_PP_CAT(bind,i_)<F AUX778076_BIND_N_PARAMS(i_,T) >
 {
 };
 #endif
 
-#   else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#   else // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 namespace aux {
 
@@ -516,14 +516,14 @@
         >
     struct result_
     {
-        typedef BOOST_PP_CAT(bind,i_)< F AUX778076_BIND_N_PARAMS(i_,T) > type;
+        typedef NDNBOOST_PP_CAT(bind,i_)< F AUX778076_BIND_N_PARAMS(i_,T) > type;
     };
 };
 
 } // namespace aux
 
-#   endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#   endif // BOOST_MPL_CFG_NO_BIND_TEMPLATE
+#   endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#   endif // NDNBOOST_MPL_CFG_NO_BIND_TEMPLATE
 
 #endif // AUX778076_SPEC_NAME
 
@@ -531,21 +531,21 @@
 
 ///// iteration, depth == 2
 
-#elif BOOST_PP_ITERATION_DEPTH() == 2
+#elif NDNBOOST_PP_ITERATION_DEPTH() == 2
 
-#   define j_ BOOST_PP_FRAME_ITERATION(2)
-#   if !defined(BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT)
+#   define j_ NDNBOOST_PP_FRAME_ITERATION(2)
+#   if !defined(NDNBOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT)
 
-        typedef aux::replace_unnamed_arg< BOOST_PP_CAT(T,j_),BOOST_PP_CAT(n,j_) > BOOST_PP_CAT(r,j_);
-        typedef typename BOOST_PP_CAT(r,j_)::type BOOST_PP_CAT(a,j_);
-        typedef typename BOOST_PP_CAT(r,j_)::next BOOST_PP_CAT(n,BOOST_PP_INC(j_));
-        typedef aux::resolve_bind_arg<BOOST_PP_CAT(a,j_), AUX778076_BIND_PARAMS(U)> BOOST_PP_CAT(t,j_);
+        typedef aux::replace_unnamed_arg< NDNBOOST_PP_CAT(T,j_),NDNBOOST_PP_CAT(n,j_) > NDNBOOST_PP_CAT(r,j_);
+        typedef typename NDNBOOST_PP_CAT(r,j_)::type NDNBOOST_PP_CAT(a,j_);
+        typedef typename NDNBOOST_PP_CAT(r,j_)::next NDNBOOST_PP_CAT(n,NDNBOOST_PP_INC(j_));
+        typedef aux::resolve_bind_arg<NDNBOOST_PP_CAT(a,j_), AUX778076_BIND_PARAMS(U)> NDNBOOST_PP_CAT(t,j_);
         ///
 #   else
-        typedef aux::resolve_bind_arg< BOOST_PP_CAT(T,j_),AUX778076_BIND_PARAMS(U)> BOOST_PP_CAT(t,j_);
+        typedef aux::resolve_bind_arg< NDNBOOST_PP_CAT(T,j_),AUX778076_BIND_PARAMS(U)> NDNBOOST_PP_CAT(t,j_);
 
 #   endif
 #   undef j_
 
-#endif // BOOST_PP_ITERATION_DEPTH()
-#endif // BOOST_PP_IS_ITERATING
+#endif // NDNBOOST_PP_ITERATION_DEPTH()
+#endif // NDNBOOST_PP_IS_ITERATING
diff --git a/include/ndnboost/mpl/bind_fwd.hpp b/include/ndnboost/mpl/bind_fwd.hpp
index a837e3c..d89bcc5 100644
--- a/include/ndnboost/mpl/bind_fwd.hpp
+++ b/include/ndnboost/mpl/bind_fwd.hpp
@@ -1,10 +1,10 @@
 
-#if !defined(BOOST_PP_IS_ITERATING)
+#if !defined(NDNBOOST_PP_IS_ITERATING)
 
 ///// header body
 
-#ifndef BOOST_MPL_BIND_FWD_HPP_INCLUDED
-#define BOOST_MPL_BIND_FWD_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_BIND_FWD_HPP_INCLUDED
+#define NDNBOOST_MPL_BIND_FWD_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -18,17 +18,17 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/aux_/na.hpp>
 #endif
 
 #include <ndnboost/mpl/aux_/config/bind.hpp>
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
-#   define BOOST_MPL_PREPROCESSED_HEADER bind_fwd.hpp
+#   define NDNBOOST_MPL_PREPROCESSED_HEADER bind_fwd.hpp
 #   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
 
 #else
@@ -46,15 +46,15 @@
 
 // local macros, #undef-ined at the end of the header
 
-#   if defined(BOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS)
+#   if defined(NDNBOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS)
 #       define AUX778076_DMC_PARAM() , int dummy_ = 0
 #   else
 #       define AUX778076_DMC_PARAM()
 #   endif
 
 #   define AUX778076_BIND_DEFAULT_PARAMS(param, value) \
-    BOOST_MPL_PP_DEFAULT_PARAMS( \
-          BOOST_MPL_LIMIT_METAFUNCTION_ARITY \
+    NDNBOOST_MPL_PP_DEFAULT_PARAMS( \
+          NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY \
         , param \
         , value \
         ) \
@@ -62,38 +62,38 @@
     /**/
 
 #   define AUX778076_BIND_N_PARAMS(n, param) \
-    BOOST_PP_COMMA_IF(n) BOOST_MPL_PP_PARAMS(n, param) \
+    NDNBOOST_PP_COMMA_IF(n) NDNBOOST_MPL_PP_PARAMS(n, param) \
     AUX778076_DMC_PARAM() \
     /**/
 
-#if !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE)
+#if !defined(NDNBOOST_MPL_CFG_NO_BIND_TEMPLATE)
 template<
       typename F, AUX778076_BIND_DEFAULT_PARAMS(typename T, na)
     >
 struct bind;
 #endif
 
-#define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, <ndnboost/mpl/bind_fwd.hpp>))
-#include BOOST_PP_ITERATE()
+#define NDNBOOST_PP_ITERATION_PARAMS_1 \
+    (3,(0, NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY, <ndnboost/mpl/bind_fwd.hpp>))
+#include NDNBOOST_PP_ITERATE()
 
 #   undef AUX778076_BIND_N_PARAMS
 #   undef AUX778076_BIND_DEFAULT_PARAMS
 #   undef AUX778076_DMC_PARAM
 }}
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_BIND_FWD_HPP_INCLUDED
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_BIND_FWD_HPP_INCLUDED
 
 ///// iteration
 
 #else
-#define i_ BOOST_PP_FRAME_ITERATION(1)
+#define i_ NDNBOOST_PP_FRAME_ITERATION(1)
 
 template<
       typename F AUX778076_BIND_N_PARAMS(i_, typename T)
     >
-struct BOOST_PP_CAT(bind,i_);
+struct NDNBOOST_PP_CAT(bind,i_);
 
 #undef i_
-#endif // BOOST_PP_IS_ITERATING
+#endif // NDNBOOST_PP_IS_ITERATING
diff --git a/include/ndnboost/mpl/bool.hpp b/include/ndnboost/mpl/bool.hpp
index 670bb32..8be7033 100644
--- a/include/ndnboost/mpl/bool.hpp
+++ b/include/ndnboost/mpl/bool.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_BOOL_HPP_INCLUDED
-#define BOOST_MPL_BOOL_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_BOOL_HPP_INCLUDED
+#define NDNBOOST_MPL_BOOL_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -18,22 +18,22 @@
 #include <ndnboost/mpl/integral_c_tag.hpp>
 #include <ndnboost/mpl/aux_/config/static_constant.hpp>
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 
 template< bool C_ > struct bool_
 {
-    BOOST_STATIC_CONSTANT(bool, value = C_);
+    NDNBOOST_STATIC_CONSTANT(bool, value = C_);
     typedef integral_c_tag tag;
     typedef bool_ type;
     typedef bool value_type;
     operator bool() const { return this->value; }
 };
 
-#if !defined(BOOST_NO_INCLASS_MEMBER_INITIALIZATION)
+#if !defined(NDNBOOST_NO_INCLASS_MEMBER_INITIALIZATION)
 template< bool C_ >
 bool const bool_<C_>::value;
 #endif
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 
-#endif // BOOST_MPL_BOOL_HPP_INCLUDED
+#endif // NDNBOOST_MPL_BOOL_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/bool_fwd.hpp b/include/ndnboost/mpl/bool_fwd.hpp
index f00b798..c25cac4 100644
--- a/include/ndnboost/mpl/bool_fwd.hpp
+++ b/include/ndnboost/mpl/bool_fwd.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_BOOL_FWD_HPP_INCLUDED
-#define BOOST_MPL_BOOL_FWD_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_BOOL_FWD_HPP_INCLUDED
+#define NDNBOOST_MPL_BOOL_FWD_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -16,7 +16,7 @@
 
 #include <ndnboost/mpl/aux_/adl_barrier.hpp>
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 
 template< bool C_ > struct bool_;
 
@@ -24,10 +24,10 @@
 typedef bool_<true> true_;
 typedef bool_<false> false_;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 
-BOOST_MPL_AUX_ADL_BARRIER_DECL(bool_)
-BOOST_MPL_AUX_ADL_BARRIER_DECL(true_)
-BOOST_MPL_AUX_ADL_BARRIER_DECL(false_)
+NDNBOOST_MPL_AUX_ADL_BARRIER_DECL(bool_)
+NDNBOOST_MPL_AUX_ADL_BARRIER_DECL(true_)
+NDNBOOST_MPL_AUX_ADL_BARRIER_DECL(false_)
 
-#endif // BOOST_MPL_BOOL_FWD_HPP_INCLUDED
+#endif // NDNBOOST_MPL_BOOL_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/clear.hpp b/include/ndnboost/mpl/clear.hpp
index aeff306..11b49a2 100644
--- a/include/ndnboost/mpl/clear.hpp
+++ b/include/ndnboost/mpl/clear.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_CLEAR_HPP_INCLUDED
-#define BOOST_MPL_CLEAR_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_CLEAR_HPP_INCLUDED
+#define NDNBOOST_MPL_CLEAR_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -23,17 +23,17 @@
 namespace ndnboost { namespace mpl {
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(Sequence)
     >
 struct clear
     : clear_impl< typename sequence_tag<Sequence>::type >
         ::template apply< Sequence >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,clear,(Sequence))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,clear,(Sequence))
 };
 
-BOOST_MPL_AUX_NA_SPEC(1, clear)
+NDNBOOST_MPL_AUX_NA_SPEC(1, clear)
 
 }}
 
-#endif // BOOST_MPL_CLEAR_HPP_INCLUDED
+#endif // NDNBOOST_MPL_CLEAR_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/clear_fwd.hpp b/include/ndnboost/mpl/clear_fwd.hpp
index 5c7199e..4d0daf2 100644
--- a/include/ndnboost/mpl/clear_fwd.hpp
+++ b/include/ndnboost/mpl/clear_fwd.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_CLEAR_FWD_HPP_INCLUDED
-#define BOOST_MPL_CLEAR_FWD_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_CLEAR_FWD_HPP_INCLUDED
+#define NDNBOOST_MPL_CLEAR_FWD_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -21,4 +21,4 @@
 
 }}
 
-#endif // BOOST_MPL_CLEAR_FWD_HPP_INCLUDED
+#endif // NDNBOOST_MPL_CLEAR_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/comparison.hpp b/include/ndnboost/mpl/comparison.hpp
index 617ea5f..5afad1f 100644
--- a/include/ndnboost/mpl/comparison.hpp
+++ b/include/ndnboost/mpl/comparison.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_COMPARISON_HPP_INCLUDED
-#define BOOST_MPL_COMPARISON_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_COMPARISON_HPP_INCLUDED
+#define NDNBOOST_MPL_COMPARISON_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -21,4 +21,4 @@
 #include <ndnboost/mpl/less_equal.hpp>
 #include <ndnboost/mpl/greater_equal.hpp>
 
-#endif // BOOST_MPL_COMPARISON_HPP_INCLUDED
+#endif // NDNBOOST_MPL_COMPARISON_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/contains.hpp b/include/ndnboost/mpl/contains.hpp
index bf41859..8395e8c 100644
--- a/include/ndnboost/mpl/contains.hpp
+++ b/include/ndnboost/mpl/contains.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_CONTAINS_HPP_INCLUDED
-#define BOOST_MPL_CONTAINS_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_CONTAINS_HPP_INCLUDED
+#define NDNBOOST_MPL_CONTAINS_HPP_INCLUDED
 
 // Copyright Eric Friedman 2002
 // Copyright Aleksey Gurtovoy 2004
@@ -24,18 +24,18 @@
 namespace ndnboost { namespace mpl {
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
-    , typename BOOST_MPL_AUX_NA_PARAM(T)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(Sequence)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T)
     >
 struct contains
     : contains_impl< typename sequence_tag<Sequence>::type >
         ::template apply< Sequence,T >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2,contains,(Sequence,T))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2,contains,(Sequence,T))
 };
 
-BOOST_MPL_AUX_NA_SPEC(2, contains)
+NDNBOOST_MPL_AUX_NA_SPEC(2, contains)
 
 }}
 
-#endif // BOOST_MPL_CONTAINS_HPP_INCLUDED
+#endif // NDNBOOST_MPL_CONTAINS_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/contains_fwd.hpp b/include/ndnboost/mpl/contains_fwd.hpp
index 035936c..5b4c2df 100644
--- a/include/ndnboost/mpl/contains_fwd.hpp
+++ b/include/ndnboost/mpl/contains_fwd.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_CONTAINS_FWD_HPP_INCLUDED
-#define BOOST_MPL_CONTAINS_FWD_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_CONTAINS_FWD_HPP_INCLUDED
+#define NDNBOOST_MPL_CONTAINS_FWD_HPP_INCLUDED
 
 // Copyright Eric Friedman 2002
 // Copyright Aleksey Gurtovoy 2004
@@ -22,4 +22,4 @@
 
 }}
 
-#endif // BOOST_MPL_CONTAINS_FWD_HPP_INCLUDED
+#endif // NDNBOOST_MPL_CONTAINS_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/copy.hpp b/include/ndnboost/mpl/copy.hpp
index 1e7ed64..c3e16c8 100644
--- a/include/ndnboost/mpl/copy.hpp
+++ b/include/ndnboost/mpl/copy.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_COPY_HPP_INCLUDED
-#define BOOST_MPL_COPY_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_COPY_HPP_INCLUDED
+#define NDNBOOST_MPL_COPY_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 // Copyright David Abrahams 2003-2004
@@ -51,8 +51,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(2, copy)
+NDNBOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(2, copy)
 
 }}
 
-#endif // BOOST_MPL_COPY_HPP_INCLUDED
+#endif // NDNBOOST_MPL_COPY_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/deref.hpp b/include/ndnboost/mpl/deref.hpp
index 07061f7..a5fc2ab 100644
--- a/include/ndnboost/mpl/deref.hpp
+++ b/include/ndnboost/mpl/deref.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_DEREF_HPP_INCLUDED
-#define BOOST_MPL_DEREF_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_DEREF_HPP_INCLUDED
+#define NDNBOOST_MPL_DEREF_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2002-2004
 //
@@ -22,20 +22,20 @@
 namespace ndnboost { namespace mpl {
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(Iterator)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(Iterator)
     >
 struct deref
 {
-#if !defined(BOOST_MPL_CFG_MSVC_70_ETI_BUG)
+#if !defined(NDNBOOST_MPL_CFG_MSVC_70_ETI_BUG)
     typedef typename Iterator::type type;
 #else
     typedef typename aux::msvc_type<Iterator>::type type;
 #endif
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,deref,(Iterator))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,deref,(Iterator))
 };
 
-BOOST_MPL_AUX_NA_SPEC(1, deref)
+NDNBOOST_MPL_AUX_NA_SPEC(1, deref)
 
 }}
 
-#endif // BOOST_MPL_DEREF_HPP_INCLUDED
+#endif // NDNBOOST_MPL_DEREF_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/distance.hpp b/include/ndnboost/mpl/distance.hpp
index 3f1ef4a..c5360f4 100644
--- a/include/ndnboost/mpl/distance.hpp
+++ b/include/ndnboost/mpl/distance.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_DISTANCE_HPP_INCLUDED
-#define BOOST_MPL_DISTANCE_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_DISTANCE_HPP_INCLUDED
+#define NDNBOOST_MPL_DISTANCE_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -34,7 +34,7 @@
 template< typename Tag > struct distance_impl
 {
     template< typename First, typename Last > struct apply
-#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
+#if !defined(NDNBOOST_MPL_CFG_NO_NESTED_FORWARDING)
         : aux::msvc_eti_base< typename iter_fold<
               iterator_range<First,Last>
             , mpl::long_<0>
@@ -49,7 +49,7 @@
             , next<>
             >::type type;
         
-        BOOST_STATIC_CONSTANT(long, value =
+        NDNBOOST_STATIC_CONSTANT(long, value =
               (iter_fold<
                   iterator_range<First,Last>
                 , mpl::long_<0>
@@ -61,18 +61,18 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(First)
-    , typename BOOST_MPL_AUX_NA_PARAM(Last)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(First)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(Last)
     >
 struct distance
     : distance_impl< typename tag<First>::type >
         ::template apply<First, Last>
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, distance, (First, Last))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, distance, (First, Last))
 };
 
-BOOST_MPL_AUX_NA_SPEC(2, distance)
+NDNBOOST_MPL_AUX_NA_SPEC(2, distance)
 
 }}
 
-#endif // BOOST_MPL_DISTANCE_HPP_INCLUDED
+#endif // NDNBOOST_MPL_DISTANCE_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/distance_fwd.hpp b/include/ndnboost/mpl/distance_fwd.hpp
index d08d6d9..853e9b0 100644
--- a/include/ndnboost/mpl/distance_fwd.hpp
+++ b/include/ndnboost/mpl/distance_fwd.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_DISTANCE_FWD_HPP_INCLUDED
-#define BOOST_MPL_DISTANCE_FWD_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_DISTANCE_FWD_HPP_INCLUDED
+#define NDNBOOST_MPL_DISTANCE_FWD_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -18,11 +18,11 @@
 
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_COMMON_NAME_WKND(distance)
+NDNBOOST_MPL_AUX_COMMON_NAME_WKND(distance)
 
 template< typename Tag > struct distance_impl;
 template< typename First, typename Last > struct distance;
 
 }}
 
-#endif // BOOST_MPL_DISTANCE_FWD_HPP_INCLUDED
+#endif // NDNBOOST_MPL_DISTANCE_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/empty_fwd.hpp b/include/ndnboost/mpl/empty_fwd.hpp
index a2a2164..c412814 100644
--- a/include/ndnboost/mpl/empty_fwd.hpp
+++ b/include/ndnboost/mpl/empty_fwd.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_EMPTY_FWD_HPP_INCLUDED
-#define BOOST_MPL_EMPTY_FWD_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_EMPTY_FWD_HPP_INCLUDED
+#define NDNBOOST_MPL_EMPTY_FWD_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -21,4 +21,4 @@
 
 }}
 
-#endif // BOOST_MPL_EMPTY_FWD_HPP_INCLUDED
+#endif // NDNBOOST_MPL_EMPTY_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/equal_to.hpp b/include/ndnboost/mpl/equal_to.hpp
index bd01f0c..1fa0ae7 100644
--- a/include/ndnboost/mpl/equal_to.hpp
+++ b/include/ndnboost/mpl/equal_to.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_EQUAL_TO_HPP_INCLUDED
-#define BOOST_MPL_EQUAL_TO_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_EQUAL_TO_HPP_INCLUDED
+#define NDNBOOST_MPL_EQUAL_TO_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -18,4 +18,4 @@
 #define AUX778076_OP_TOKEN ==
 #include <ndnboost/mpl/aux_/comparison_op.hpp>
 
-#endif // BOOST_MPL_EQUAL_TO_HPP_INCLUDED
+#endif // NDNBOOST_MPL_EQUAL_TO_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/eval_if.hpp b/include/ndnboost/mpl/eval_if.hpp
index e9402ac..fc32fae 100644
--- a/include/ndnboost/mpl/eval_if.hpp
+++ b/include/ndnboost/mpl/eval_if.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_EVAL_IF_HPP_INCLUDED
-#define BOOST_MPL_EVAL_IF_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_EVAL_IF_HPP_INCLUDED
+#define NDNBOOST_MPL_EVAL_IF_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -24,14 +24,14 @@
 namespace ndnboost { namespace mpl {
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(C)
-    , typename BOOST_MPL_AUX_NA_PARAM(F1)
-    , typename BOOST_MPL_AUX_NA_PARAM(F2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(C)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(F1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(F2)
     >
 struct eval_if
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \
-     || ( BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, >= 0x0300) \
-        && BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0304)) \
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) \
+     || ( NDNBOOST_WORKAROUND(NDNBOOST_MPL_CFG_GCC, >= 0x0300) \
+        && NDNBOOST_WORKAROUND(NDNBOOST_MPL_CFG_GCC, NDNBOOST_TESTED_AT(0x0304)) \
         )
 {
     typedef typename if_<C,F1,F2>::type f_;
@@ -40,7 +40,7 @@
     : if_<C,F1,F2>::type
 {
 #endif
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(3,eval_if,(C,F1,F2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(3,eval_if,(C,F1,F2))
 };
 
 // (almost) copy & paste in order to save one more 
@@ -51,9 +51,9 @@
     , typename F2
     >
 struct eval_if_c
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \
-     || ( BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, >= 0x0300) \
-        && BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0304)) \
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) \
+     || ( NDNBOOST_WORKAROUND(NDNBOOST_MPL_CFG_GCC, >= 0x0300) \
+        && NDNBOOST_WORKAROUND(NDNBOOST_MPL_CFG_GCC, NDNBOOST_TESTED_AT(0x0304)) \
         )
 {
     typedef typename if_c<C,F1,F2>::type f_;
@@ -64,8 +64,8 @@
 #endif
 };
 
-BOOST_MPL_AUX_NA_SPEC(3, eval_if)
+NDNBOOST_MPL_AUX_NA_SPEC(3, eval_if)
 
 }}
 
-#endif // BOOST_MPL_EVAL_IF_HPP_INCLUDED
+#endif // NDNBOOST_MPL_EVAL_IF_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/find.hpp b/include/ndnboost/mpl/find.hpp
index a4a2c08..011c1ea 100644
--- a/include/ndnboost/mpl/find.hpp
+++ b/include/ndnboost/mpl/find.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_FIND_HPP_INCLUDED
-#define BOOST_MPL_FIND_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_FIND_HPP_INCLUDED
+#define NDNBOOST_MPL_FIND_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2002
 //
@@ -22,17 +22,17 @@
 namespace ndnboost { namespace mpl {
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
-    , typename BOOST_MPL_AUX_NA_PARAM(T)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(Sequence)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T)
     >
 struct find
     : find_if< Sequence,same_as<T> >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2,find,(Sequence,T))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2,find,(Sequence,T))
 };
 
-BOOST_MPL_AUX_NA_SPEC(2, find)
+NDNBOOST_MPL_AUX_NA_SPEC(2, find)
 
 }}
 
-#endif // BOOST_MPL_FIND_HPP_INCLUDED
+#endif // NDNBOOST_MPL_FIND_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/find_if.hpp b/include/ndnboost/mpl/find_if.hpp
index 7d91bea..32f3aaf 100644
--- a/include/ndnboost/mpl/find_if.hpp
+++ b/include/ndnboost/mpl/find_if.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_FIND_IF_HPP_INCLUDED
-#define BOOST_MPL_FIND_IF_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_FIND_IF_HPP_INCLUDED
+#define NDNBOOST_MPL_FIND_IF_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -23,11 +23,11 @@
 
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_COMMON_NAME_WKND(find_if)
+NDNBOOST_MPL_AUX_COMMON_NAME_WKND(find_if)
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
-    , typename BOOST_MPL_AUX_NA_PARAM(Predicate)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(Sequence)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(Predicate)
     >
 struct find_if
 {
@@ -40,11 +40,11 @@
 
     typedef typename second<result_>::type type;
 
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2,find_if,(Sequence,Predicate))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2,find_if,(Sequence,Predicate))
 };
 
-BOOST_MPL_AUX_NA_SPEC(2,find_if)
+NDNBOOST_MPL_AUX_NA_SPEC(2,find_if)
 
 }}
 
-#endif // BOOST_MPL_FIND_IF_HPP_INCLUDED
+#endif // NDNBOOST_MPL_FIND_IF_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/fold.hpp b/include/ndnboost/mpl/fold.hpp
index b214b79..74ea561 100644
--- a/include/ndnboost/mpl/fold.hpp
+++ b/include/ndnboost/mpl/fold.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_FOLD_HPP_INCLUDED
-#define BOOST_MPL_FOLD_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_FOLD_HPP_INCLUDED
+#define NDNBOOST_MPL_FOLD_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2001-2004
 // Copyright David Abrahams 2001-2002
@@ -24,9 +24,9 @@
 namespace ndnboost { namespace mpl {
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
-    , typename BOOST_MPL_AUX_NA_PARAM(State)
-    , typename BOOST_MPL_AUX_NA_PARAM(ForwardOp)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(Sequence)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(State)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(ForwardOp)
     >
 struct fold
 {
@@ -38,11 +38,11 @@
         , ForwardOp
         >::state type;
 
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(3,fold,(Sequence,State,ForwardOp))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(3,fold,(Sequence,State,ForwardOp))
 };
 
-BOOST_MPL_AUX_NA_SPEC(3, fold)
+NDNBOOST_MPL_AUX_NA_SPEC(3, fold)
 
 }}
 
-#endif // BOOST_MPL_FOLD_HPP_INCLUDED
+#endif // NDNBOOST_MPL_FOLD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/for_each.hpp b/include/ndnboost/mpl/for_each.hpp
index a98dc5b..eb72632 100644
--- a/include/ndnboost/mpl/for_each.hpp
+++ b/include/ndnboost/mpl/for_each.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_FOR_EACH_HPP_INCLUDED
-#define BOOST_MPL_FOR_EACH_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_FOR_EACH_HPP_INCLUDED
+#define NDNBOOST_MPL_FOR_EACH_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2008
 //
@@ -92,7 +92,7 @@
 inline
 void for_each(F f, Sequence* = 0, TransformOp* = 0)
 {
-    BOOST_MPL_ASSERT(( is_sequence<Sequence> ));
+    NDNBOOST_MPL_ASSERT(( is_sequence<Sequence> ));
 
     typedef typename begin<Sequence>::type first;
     typedef typename end<Sequence>::type last;
@@ -113,4 +113,4 @@
 
 }}
 
-#endif // BOOST_MPL_FOR_EACH_HPP_INCLUDED
+#endif // NDNBOOST_MPL_FOR_EACH_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/front_fwd.hpp b/include/ndnboost/mpl/front_fwd.hpp
index 2de229a..c47c6ed 100644
--- a/include/ndnboost/mpl/front_fwd.hpp
+++ b/include/ndnboost/mpl/front_fwd.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_FRONT_FWD_HPP_INCLUDED
-#define BOOST_MPL_FRONT_FWD_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_FRONT_FWD_HPP_INCLUDED
+#define NDNBOOST_MPL_FRONT_FWD_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -21,4 +21,4 @@
 
 }}
 
-#endif // BOOST_MPL_FRONT_FWD_HPP_INCLUDED
+#endif // NDNBOOST_MPL_FRONT_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/front_inserter.hpp b/include/ndnboost/mpl/front_inserter.hpp
index 4476d1c..35061c7 100644
--- a/include/ndnboost/mpl/front_inserter.hpp
+++ b/include/ndnboost/mpl/front_inserter.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_FRONT_INSERTER_HPP_INCLUDED
-#define BOOST_MPL_FRONT_INSERTER_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_FRONT_INSERTER_HPP_INCLUDED
+#define NDNBOOST_MPL_FRONT_INSERTER_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2003-2004
 // Copyright David Abrahams 2003-2004
@@ -30,4 +30,4 @@
 
 }}
 
-#endif // BOOST_MPL_FRONT_INSERTER_HPP_INCLUDED
+#endif // NDNBOOST_MPL_FRONT_INSERTER_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/greater.hpp b/include/ndnboost/mpl/greater.hpp
index 53f5db0..3d61441 100644
--- a/include/ndnboost/mpl/greater.hpp
+++ b/include/ndnboost/mpl/greater.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_GREATER_HPP_INCLUDED
-#define BOOST_MPL_GREATER_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_GREATER_HPP_INCLUDED
+#define NDNBOOST_MPL_GREATER_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -18,4 +18,4 @@
 #define AUX778076_OP_TOKEN >
 #include <ndnboost/mpl/aux_/comparison_op.hpp>
 
-#endif // BOOST_MPL_GREATER_HPP_INCLUDED
+#endif // NDNBOOST_MPL_GREATER_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/greater_equal.hpp b/include/ndnboost/mpl/greater_equal.hpp
index 0576e01..cd0a8e9 100644
--- a/include/ndnboost/mpl/greater_equal.hpp
+++ b/include/ndnboost/mpl/greater_equal.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_GREATER_EQUAL_HPP_INCLUDED
-#define BOOST_MPL_GREATER_EQUAL_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_GREATER_EQUAL_HPP_INCLUDED
+#define NDNBOOST_MPL_GREATER_EQUAL_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -18,4 +18,4 @@
 #define AUX778076_OP_TOKEN >=
 #include <ndnboost/mpl/aux_/comparison_op.hpp>
 
-#endif // BOOST_MPL_GREATER_EQUAL_HPP_INCLUDED
+#endif // NDNBOOST_MPL_GREATER_EQUAL_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/has_xxx.hpp b/include/ndnboost/mpl/has_xxx.hpp
index c7d491d..c885609 100644
--- a/include/ndnboost/mpl/has_xxx.hpp
+++ b/include/ndnboost/mpl/has_xxx.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_HAS_XXX_HPP_INCLUDED
-#define BOOST_MPL_HAS_XXX_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_HAS_XXX_HPP_INCLUDED
+#define NDNBOOST_MPL_HAS_XXX_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2002-2006
 // Copyright David Abrahams 2002-2003
@@ -33,13 +33,13 @@
 #include <ndnboost/preprocessor/repetition/enum_params.hpp>
 #include <ndnboost/preprocessor/repetition/enum_trailing_params.hpp>
 
-#if BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x590) )
+#if NDNBOOST_WORKAROUND( __BORLANDC__, NDNBOOST_TESTED_AT(0x590) )
 # include <ndnboost/type_traits/is_class.hpp>
 #endif
 
-#if !defined(BOOST_MPL_CFG_NO_HAS_XXX)
+#if !defined(NDNBOOST_MPL_CFG_NO_HAS_XXX)
 
-#   if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
+#   if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)
 
 // agurt, 11/sep/02: MSVC-specific version (< 7.1), based on a USENET 
 // newsgroup's posting by John Madsen (comp.lang.c++.moderated, 
@@ -55,7 +55,7 @@
 
 struct has_xxx_tag;
 
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1300)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1300)
 template< typename U > struct msvc_incomplete_array
 {
     typedef char (&type)[sizeof(U) + 1];
@@ -69,7 +69,7 @@
     // type, it won't pick the second overload
     static char tester(...);
 
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1300)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1300)
     template< typename U >
     static typename msvc_incomplete_array<U>::type tester(type_wrapper<U>);
 #else
@@ -77,7 +77,7 @@
     static char (& tester(type_wrapper<U>) )[sizeof(U)+1];
 #endif 
     
-    BOOST_STATIC_CONSTANT(bool, value = 
+    NDNBOOST_STATIC_CONSTANT(bool, value = 
           sizeof(tester(type_wrapper<T>())) == 1
         );
 };
@@ -85,21 +85,21 @@
 template<>
 struct msvc_is_incomplete<int>
 {
-    BOOST_STATIC_CONSTANT(bool, value = false);
+    NDNBOOST_STATIC_CONSTANT(bool, value = false);
 };
 
 }}}
 
-#   define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF_(trait, name, default_) \
+#   define NDNBOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF_(trait, name, default_) \
 template< typename T, typename name = ::ndnboost::mpl::aux::has_xxx_tag > \
-struct BOOST_PP_CAT(trait,_impl) : T \
+struct NDNBOOST_PP_CAT(trait,_impl) : T \
 { \
     static ndnboost::mpl::aux::no_tag \
     test(void(*)(::ndnboost::mpl::aux::has_xxx_tag)); \
     \
     static ndnboost::mpl::aux::yes_tag test(...); \
     \
-    BOOST_STATIC_CONSTANT(bool, value = \
+    NDNBOOST_STATIC_CONSTANT(bool, value = \
           sizeof(test(static_cast<void(*)(name)>(0))) \
             != sizeof(ndnboost::mpl::aux::no_tag) \
         ); \
@@ -111,43 +111,43 @@
     : ndnboost::mpl::if_c< \
           ndnboost::mpl::aux::msvc_is_incomplete<T>::value \
         , ndnboost::mpl::bool_<false> \
-        , BOOST_PP_CAT(trait,_impl)<T> \
+        , NDNBOOST_PP_CAT(trait,_impl)<T> \
         >::type \
 { \
 }; \
 \
-BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, void) \
-BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, bool) \
-BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, char) \
-BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, signed char) \
-BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, unsigned char) \
-BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, signed short) \
-BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, unsigned short) \
-BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, signed int) \
-BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, unsigned int) \
-BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, signed long) \
-BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, unsigned long) \
-BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, float) \
-BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, double) \
-BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, long double) \
+NDNBOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, void) \
+NDNBOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, bool) \
+NDNBOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, char) \
+NDNBOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, signed char) \
+NDNBOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, unsigned char) \
+NDNBOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, signed short) \
+NDNBOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, unsigned short) \
+NDNBOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, signed int) \
+NDNBOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, unsigned int) \
+NDNBOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, signed long) \
+NDNBOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, unsigned long) \
+NDNBOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, float) \
+NDNBOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, double) \
+NDNBOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, long double) \
 /**/
 
-#   define BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, T) \
+#   define NDNBOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, T) \
 template<> struct trait<T> \
 { \
-    BOOST_STATIC_CONSTANT(bool, value = false); \
+    NDNBOOST_STATIC_CONSTANT(bool, value = false); \
     typedef ndnboost::mpl::bool_<false> type; \
 }; \
 /**/
 
-#if !defined(BOOST_NO_INTRINSIC_WCHAR_T)
-#   define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, unused) \
-    BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF_(trait, name, unused) \
-    BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, wchar_t) \
+#if !defined(NDNBOOST_NO_INTRINSIC_WCHAR_T)
+#   define NDNBOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, unused) \
+    NDNBOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF_(trait, name, unused) \
+    NDNBOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, wchar_t) \
 /**/
 #else
-#   define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, unused) \
-    BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF_(trait, name, unused) \
+#   define NDNBOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, unused) \
+    NDNBOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF_(trait, name, unused) \
 /**/
 #endif
 
@@ -155,8 +155,8 @@
 // SFINAE-based implementations below are derived from a USENET newsgroup's 
 // posting by Rani Sharoni (comp.lang.c++.moderated, 2002-03-17 07:45:09 PST)
 
-#   elif BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1400)) \
-      || BOOST_WORKAROUND(__IBMCPP__, <= 700)
+#   elif NDNBOOST_WORKAROUND(NDNBOOST_MSVC, NDNBOOST_TESTED_AT(1400)) \
+      || NDNBOOST_WORKAROUND(__IBMCPP__, <= 700)
 
 // MSVC 7.1+ & VACPP
 
@@ -164,44 +164,44 @@
 // applied to partial specialization to fix some apparently random failures 
 // (thanks to Daniel Wallin for researching this!)
 
-#   define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, default_) \
+#   define NDNBOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, default_) \
 template< typename T > \
-struct BOOST_PP_CAT(trait, _msvc_sfinae_helper) \
+struct NDNBOOST_PP_CAT(trait, _msvc_sfinae_helper) \
 { \
     typedef void type; \
 };\
 \
 template< typename T, typename U = void > \
-struct BOOST_PP_CAT(trait,_impl_) \
+struct NDNBOOST_PP_CAT(trait,_impl_) \
 { \
-    BOOST_STATIC_CONSTANT(bool, value = false); \
+    NDNBOOST_STATIC_CONSTANT(bool, value = false); \
     typedef ndnboost::mpl::bool_<value> type; \
 }; \
 \
 template< typename T > \
-struct BOOST_PP_CAT(trait,_impl_)< \
+struct NDNBOOST_PP_CAT(trait,_impl_)< \
       T \
-    , typename BOOST_PP_CAT(trait, _msvc_sfinae_helper)< typename T::name >::type \
+    , typename NDNBOOST_PP_CAT(trait, _msvc_sfinae_helper)< typename T::name >::type \
     > \
 { \
-    BOOST_STATIC_CONSTANT(bool, value = true); \
+    NDNBOOST_STATIC_CONSTANT(bool, value = true); \
     typedef ndnboost::mpl::bool_<value> type; \
 }; \
 \
 template< typename T, typename fallback_ = ndnboost::mpl::bool_<default_> > \
 struct trait \
-    : BOOST_PP_CAT(trait,_impl_)<T> \
+    : NDNBOOST_PP_CAT(trait,_impl_)<T> \
 { \
 }; \
 /**/
 
-#   elif BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x590) )
+#   elif NDNBOOST_WORKAROUND( __BORLANDC__, NDNBOOST_TESTED_AT(0x590) )
 
-#   define BOOST_MPL_HAS_XXX_TRAIT_NAMED_BCB_DEF(trait, trait_tester, name, default_) \
+#   define NDNBOOST_MPL_HAS_XXX_TRAIT_NAMED_BCB_DEF(trait, trait_tester, name, default_) \
 template< typename T, bool IS_CLASS > \
 struct trait_tester \
 { \
-    BOOST_STATIC_CONSTANT( bool,  value = false ); \
+    NDNBOOST_STATIC_CONSTANT( bool,  value = false ); \
 }; \
 template< typename T > \
 struct trait_tester< T, true > \
@@ -214,25 +214,25 @@
         static char resolve( ... ); \
     }; \
     typedef ndnboost::mpl::aux::type_wrapper<T> t_; \
-    BOOST_STATIC_CONSTANT( bool, value = ( sizeof( trait_tester_impl::resolve( static_cast< t_ * >(0) ) ) == sizeof(int) ) ); \
+    NDNBOOST_STATIC_CONSTANT( bool, value = ( sizeof( trait_tester_impl::resolve( static_cast< t_ * >(0) ) ) == sizeof(int) ) ); \
 }; \
 template< typename T, typename fallback_ = ndnboost::mpl::bool_<default_> > \
 struct trait           \
 {                      \
-    BOOST_STATIC_CONSTANT( bool, value = (trait_tester< T, ndnboost::is_class< T >::value >::value) );     \
+    NDNBOOST_STATIC_CONSTANT( bool, value = (trait_tester< T, ndnboost::is_class< T >::value >::value) );     \
     typedef ndnboost::mpl::bool_< trait< T, fallback_ >::value > type; \
 };
 
-#   define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, default_) \
-    BOOST_MPL_HAS_XXX_TRAIT_NAMED_BCB_DEF( trait \
-                                         , BOOST_PP_CAT(trait,_tester)      \
+#   define NDNBOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, default_) \
+    NDNBOOST_MPL_HAS_XXX_TRAIT_NAMED_BCB_DEF( trait \
+                                         , NDNBOOST_PP_CAT(trait,_tester)      \
                                          , name       \
                                          , default_ ) \
 /**/
 
 #   else // other SFINAE-capable compilers
 
-#   define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, default_) \
+#   define NDNBOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, default_) \
 template< typename T, typename fallback_ = ndnboost::mpl::bool_<default_> > \
 struct trait \
 { \
@@ -241,14 +241,14 @@
         template< typename U > \
         static ndnboost::mpl::aux::yes_tag test( \
               ndnboost::mpl::aux::type_wrapper<U> const volatile* \
-            , ndnboost::mpl::aux::type_wrapper<BOOST_MSVC_TYPENAME U::name>* = 0 \
+            , ndnboost::mpl::aux::type_wrapper<NDNBOOST_MSVC_TYPENAME U::name>* = 0 \
             ); \
     \
         static ndnboost::mpl::aux::no_tag test(...); \
     }; \
     \
     typedef ndnboost::mpl::aux::type_wrapper<T> t_; \
-    BOOST_STATIC_CONSTANT(bool, value = \
+    NDNBOOST_STATIC_CONSTANT(bool, value = \
           sizeof(gcc_3_2_wknd::test(static_cast<t_*>(0))) \
             == sizeof(ndnboost::mpl::aux::yes_tag) \
         ); \
@@ -256,30 +256,30 @@
 }; \
 /**/
 
-#   endif // BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
+#   endif // NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)
 
 
-#else // BOOST_MPL_CFG_NO_HAS_XXX
+#else // NDNBOOST_MPL_CFG_NO_HAS_XXX
 
 // placeholder implementation
 
-#   define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, default_) \
+#   define NDNBOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, default_) \
 template< typename T, typename fallback_ = ndnboost::mpl::bool_<default_> > \
 struct trait \
 { \
-    BOOST_STATIC_CONSTANT(bool, value = fallback_::value); \
+    NDNBOOST_STATIC_CONSTANT(bool, value = fallback_::value); \
     typedef fallback_ type; \
 }; \
 /**/
 
 #endif
 
-#define BOOST_MPL_HAS_XXX_TRAIT_DEF(name) \
-    BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(BOOST_PP_CAT(has_,name), name, false) \
+#define NDNBOOST_MPL_HAS_XXX_TRAIT_DEF(name) \
+    NDNBOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(NDNBOOST_PP_CAT(has_,name), name, false) \
 /**/
 
 
-#if !defined(BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE)
+#if !defined(NDNBOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE)
 
 // Create a boolean Metafunction to detect a nested template
 // member. This implementation is based on a USENET newsgroup's
@@ -287,21 +287,21 @@
 // Rani Sharoni's USENET posting cited above, the non-template has_xxx
 // implementations above, and discussion on the Boost mailing list.
 
-#   if !defined(BOOST_MPL_HAS_XXX_NO_WRAPPED_TYPES)
-#     if BOOST_WORKAROUND(BOOST_MSVC, <= 1400)
-#       define BOOST_MPL_HAS_XXX_NO_WRAPPED_TYPES 1
+#   if !defined(NDNBOOST_MPL_HAS_XXX_NO_WRAPPED_TYPES)
+#     if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1400)
+#       define NDNBOOST_MPL_HAS_XXX_NO_WRAPPED_TYPES 1
 #     endif
 #   endif
 
-#   if !defined(BOOST_MPL_HAS_XXX_NO_EXPLICIT_TEST_FUNCTION)
-#     if (defined(BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS))
-#       define BOOST_MPL_HAS_XXX_NO_EXPLICIT_TEST_FUNCTION 1
+#   if !defined(NDNBOOST_MPL_HAS_XXX_NO_EXPLICIT_TEST_FUNCTION)
+#     if (defined(NDNBOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS))
+#       define NDNBOOST_MPL_HAS_XXX_NO_EXPLICIT_TEST_FUNCTION 1
 #     endif
 #   endif
 
-#   if !defined(BOOST_MPL_HAS_XXX_NEEDS_TEMPLATE_SFINAE)
-#     if BOOST_WORKAROUND(BOOST_MSVC, <= 1400)
-#       define BOOST_MPL_HAS_XXX_NEEDS_TEMPLATE_SFINAE 1
+#   if !defined(NDNBOOST_MPL_HAS_XXX_NEEDS_TEMPLATE_SFINAE)
+#     if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1400)
+#       define NDNBOOST_MPL_HAS_XXX_NEEDS_TEMPLATE_SFINAE 1
 #     endif
 #   endif
 
@@ -309,98 +309,98 @@
 // array argument called args which is of the following form.
 //           ( 4, ( trait, name, max_arity, default_ ) )
 
-#   define BOOST_MPL_HAS_MEMBER_INTROSPECTION_NAME(args) \
-      BOOST_PP_CAT(BOOST_PP_ARRAY_ELEM(0, args) , _introspect) \
+#   define NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_NAME(args) \
+      NDNBOOST_PP_CAT(NDNBOOST_PP_ARRAY_ELEM(0, args) , _introspect) \
     /**/
 
-#   define BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME(args, n) \
-      BOOST_PP_CAT(BOOST_PP_CAT(BOOST_PP_ARRAY_ELEM(0, args) , _substitute), n) \
+#   define NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME(args, n) \
+      NDNBOOST_PP_CAT(NDNBOOST_PP_CAT(NDNBOOST_PP_ARRAY_ELEM(0, args) , _substitute), n) \
     /**/
 
-#   define BOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args) \
-      BOOST_PP_CAT(BOOST_PP_ARRAY_ELEM(0, args) , _test) \
+#   define NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args) \
+      NDNBOOST_PP_CAT(NDNBOOST_PP_ARRAY_ELEM(0, args) , _test) \
     /**/
 
 // Thanks to Guillaume Melquiond for pointing out the need for the
 // "substitute" template as an argument to the overloaded test
 // functions to get SFINAE to work for member templates with the
 // correct name but different number of arguments.
-#   define BOOST_MPL_HAS_MEMBER_MULTI_SUBSTITUTE(z, n, args) \
+#   define NDNBOOST_MPL_HAS_MEMBER_MULTI_SUBSTITUTE(z, n, args) \
       template< \
-          template< BOOST_PP_ENUM_PARAMS(BOOST_PP_INC(n), typename V) > class V \
+          template< NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_INC(n), typename V) > class V \
        > \
-      struct BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME(args, n) { \
+      struct NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME(args, n) { \
       }; \
     /**/
 
-#   define BOOST_MPL_HAS_MEMBER_SUBSTITUTE(args, substitute_macro) \
-      BOOST_PP_REPEAT( \
-          BOOST_PP_ARRAY_ELEM(2, args) \
-        , BOOST_MPL_HAS_MEMBER_MULTI_SUBSTITUTE \
+#   define NDNBOOST_MPL_HAS_MEMBER_SUBSTITUTE(args, substitute_macro) \
+      NDNBOOST_PP_REPEAT( \
+          NDNBOOST_PP_ARRAY_ELEM(2, args) \
+        , NDNBOOST_MPL_HAS_MEMBER_MULTI_SUBSTITUTE \
         , args \
       ) \
     /**/
 
-#   if !BOOST_MPL_HAS_XXX_NO_EXPLICIT_TEST_FUNCTION
-#     define BOOST_MPL_HAS_MEMBER_REJECT(args, member_macro) \
+#   if !NDNBOOST_MPL_HAS_XXX_NO_EXPLICIT_TEST_FUNCTION
+#     define NDNBOOST_MPL_HAS_MEMBER_REJECT(args, member_macro) \
         template< typename V > \
         static ndnboost::mpl::aux::no_tag \
-        BOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)(...); \
+        NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)(...); \
       /**/
 #   else
-#     define BOOST_MPL_HAS_MEMBER_REJECT(args, member_macro) \
+#     define NDNBOOST_MPL_HAS_MEMBER_REJECT(args, member_macro) \
         static ndnboost::mpl::aux::no_tag \
-        BOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)(...); \
+        NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)(...); \
       /**/
 #   endif
 
-#   if !BOOST_MPL_HAS_XXX_NO_WRAPPED_TYPES
-#     define BOOST_MPL_HAS_MEMBER_MULTI_ACCEPT(z, n, args) \
+#   if !NDNBOOST_MPL_HAS_XXX_NO_WRAPPED_TYPES
+#     define NDNBOOST_MPL_HAS_MEMBER_MULTI_ACCEPT(z, n, args) \
         template< typename V > \
         static ndnboost::mpl::aux::yes_tag \
-        BOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)( \
+        NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)( \
             ndnboost::mpl::aux::type_wrapper< V > const volatile* \
-          , BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME(args, n) < \
-                V::template BOOST_PP_ARRAY_ELEM(1, args) \
+          , NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME(args, n) < \
+                V::template NDNBOOST_PP_ARRAY_ELEM(1, args) \
             >* = 0 \
         ); \
       /**/
-#     define BOOST_MPL_HAS_MEMBER_ACCEPT(args, member_macro) \
-        BOOST_PP_REPEAT( \
-            BOOST_PP_ARRAY_ELEM(2, args) \
-          , BOOST_MPL_HAS_MEMBER_MULTI_ACCEPT \
+#     define NDNBOOST_MPL_HAS_MEMBER_ACCEPT(args, member_macro) \
+        NDNBOOST_PP_REPEAT( \
+            NDNBOOST_PP_ARRAY_ELEM(2, args) \
+          , NDNBOOST_MPL_HAS_MEMBER_MULTI_ACCEPT \
           , args \
         ) \
       /**/
 #   else
-#     define BOOST_MPL_HAS_MEMBER_ACCEPT(args, member_macro) \
+#     define NDNBOOST_MPL_HAS_MEMBER_ACCEPT(args, member_macro) \
         template< typename V > \
         static ndnboost::mpl::aux::yes_tag \
-        BOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)( \
+        NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)( \
             V const volatile* \
           , member_macro(args, V, T)* = 0 \
         ); \
       /**/
 #   endif
 
-#   if !BOOST_MPL_HAS_XXX_NO_EXPLICIT_TEST_FUNCTION
-#     define BOOST_MPL_HAS_MEMBER_TEST(args) \
-          sizeof(BOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)< U >(0)) \
+#   if !NDNBOOST_MPL_HAS_XXX_NO_EXPLICIT_TEST_FUNCTION
+#     define NDNBOOST_MPL_HAS_MEMBER_TEST(args) \
+          sizeof(NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)< U >(0)) \
               == sizeof(ndnboost::mpl::aux::yes_tag) \
       /**/
 #   else
-#     if !BOOST_MPL_HAS_XXX_NO_WRAPPED_TYPES
-#       define BOOST_MPL_HAS_MEMBER_TEST(args) \
+#     if !NDNBOOST_MPL_HAS_XXX_NO_WRAPPED_TYPES
+#       define NDNBOOST_MPL_HAS_MEMBER_TEST(args) \
           sizeof( \
-              BOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)( \
+              NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)( \
                   static_cast< ndnboost::mpl::aux::type_wrapper< U >* >(0) \
               ) \
           ) == sizeof(ndnboost::mpl::aux::yes_tag) \
         /**/
 #     else
-#       define BOOST_MPL_HAS_MEMBER_TEST(args) \
+#       define NDNBOOST_MPL_HAS_MEMBER_TEST(args) \
           sizeof( \
-              BOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)( \
+              NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)( \
                   static_cast< U* >(0) \
               ) \
           ) == sizeof(ndnboost::mpl::aux::yes_tag) \
@@ -408,233 +408,233 @@
 #     endif
 #   endif
 
-#   define BOOST_MPL_HAS_MEMBER_INTROSPECT( \
+#   define NDNBOOST_MPL_HAS_MEMBER_INTROSPECT( \
                args, substitute_macro, member_macro \
            ) \
       template< typename U > \
-      struct BOOST_MPL_HAS_MEMBER_INTROSPECTION_NAME(args) { \
-          BOOST_MPL_HAS_MEMBER_SUBSTITUTE(args, substitute_macro) \
-          BOOST_MPL_HAS_MEMBER_REJECT(args, member_macro) \
-          BOOST_MPL_HAS_MEMBER_ACCEPT(args, member_macro) \
-          BOOST_STATIC_CONSTANT( \
-              bool, value = BOOST_MPL_HAS_MEMBER_TEST(args) \
+      struct NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_NAME(args) { \
+          NDNBOOST_MPL_HAS_MEMBER_SUBSTITUTE(args, substitute_macro) \
+          NDNBOOST_MPL_HAS_MEMBER_REJECT(args, member_macro) \
+          NDNBOOST_MPL_HAS_MEMBER_ACCEPT(args, member_macro) \
+          NDNBOOST_STATIC_CONSTANT( \
+              bool, value = NDNBOOST_MPL_HAS_MEMBER_TEST(args) \
           ); \
           typedef ndnboost::mpl::bool_< value > type; \
       }; \
     /**/
 
-#   define BOOST_MPL_HAS_MEMBER_IMPLEMENTATION( \
+#   define NDNBOOST_MPL_HAS_MEMBER_IMPLEMENTATION( \
                args, introspect_macro, substitute_macro, member_macro \
            ) \
       template< \
           typename T \
         , typename fallback_ \
-              = ndnboost::mpl::bool_< BOOST_PP_ARRAY_ELEM(3, args) > \
+              = ndnboost::mpl::bool_< NDNBOOST_PP_ARRAY_ELEM(3, args) > \
       > \
-      class BOOST_PP_ARRAY_ELEM(0, args) { \
+      class NDNBOOST_PP_ARRAY_ELEM(0, args) { \
           introspect_macro(args, substitute_macro, member_macro) \
       public: \
           static const bool value \
-              = BOOST_MPL_HAS_MEMBER_INTROSPECTION_NAME(args)< T >::value; \
-          typedef typename BOOST_MPL_HAS_MEMBER_INTROSPECTION_NAME(args)< \
+              = NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_NAME(args)< T >::value; \
+          typedef typename NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_NAME(args)< \
               T \
           >::type type; \
       }; \
     /**/
 
-// BOOST_MPL_HAS_MEMBER_WITH_FUNCTION_SFINAE expands to the full
+// NDNBOOST_MPL_HAS_MEMBER_WITH_FUNCTION_SFINAE expands to the full
 // implementation of the function-based metafunction. Compile with -E
 // to see the preprocessor output for this macro.
-#   define BOOST_MPL_HAS_MEMBER_WITH_FUNCTION_SFINAE( \
+#   define NDNBOOST_MPL_HAS_MEMBER_WITH_FUNCTION_SFINAE( \
                args, substitute_macro, member_macro \
            ) \
-      BOOST_MPL_HAS_MEMBER_IMPLEMENTATION( \
+      NDNBOOST_MPL_HAS_MEMBER_IMPLEMENTATION( \
           args \
-        , BOOST_MPL_HAS_MEMBER_INTROSPECT \
+        , NDNBOOST_MPL_HAS_MEMBER_INTROSPECT \
         , substitute_macro \
         , member_macro \
       ) \
     /**/
 
-#   if BOOST_MPL_HAS_XXX_NEEDS_TEMPLATE_SFINAE
+#   if NDNBOOST_MPL_HAS_XXX_NEEDS_TEMPLATE_SFINAE
 
-#     if !defined(BOOST_MPL_HAS_XXX_NEEDS_NAMESPACE_LEVEL_SUBSTITUTE)
-#       if BOOST_WORKAROUND(BOOST_MSVC, <= 1400)
-#         define BOOST_MPL_HAS_XXX_NEEDS_NAMESPACE_LEVEL_SUBSTITUTE 1
+#     if !defined(NDNBOOST_MPL_HAS_XXX_NEEDS_NAMESPACE_LEVEL_SUBSTITUTE)
+#       if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1400)
+#         define NDNBOOST_MPL_HAS_XXX_NEEDS_NAMESPACE_LEVEL_SUBSTITUTE 1
 #       endif
 #     endif
 
-#     if !BOOST_MPL_HAS_XXX_NEEDS_NAMESPACE_LEVEL_SUBSTITUTE
-#       define BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME_WITH_TEMPLATE_SFINAE( \
+#     if !NDNBOOST_MPL_HAS_XXX_NEEDS_NAMESPACE_LEVEL_SUBSTITUTE
+#       define NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME_WITH_TEMPLATE_SFINAE( \
                    args, n \
                ) \
-          BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME(args, n) \
+          NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME(args, n) \
         /**/
 #     else
-#       define BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME_WITH_TEMPLATE_SFINAE( \
+#       define NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME_WITH_TEMPLATE_SFINAE( \
                    args, n \
                ) \
-          BOOST_PP_CAT( \
+          NDNBOOST_PP_CAT( \
               boost_mpl_has_xxx_ \
-            , BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME(args, n) \
+            , NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME(args, n) \
           ) \
         /**/
 #     endif
 
-#     define BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_TAG_NAME( \
+#     define NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_TAG_NAME( \
                  args \
              ) \
-        BOOST_PP_CAT( \
-            BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME_WITH_TEMPLATE_SFINAE( \
+        NDNBOOST_PP_CAT( \
+            NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME_WITH_TEMPLATE_SFINAE( \
                 args, 0 \
             ) \
           , _tag \
         ) \
       /**/
 
-#     define BOOST_MPL_HAS_MEMBER_MULTI_SUBSTITUTE_WITH_TEMPLATE_SFINAE( \
+#     define NDNBOOST_MPL_HAS_MEMBER_MULTI_SUBSTITUTE_WITH_TEMPLATE_SFINAE( \
                  z, n, args \
              ) \
         template< \
-             template< BOOST_PP_ENUM_PARAMS(BOOST_PP_INC(n), typename U) > class U \
+             template< NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_INC(n), typename U) > class U \
         > \
-        struct BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME_WITH_TEMPLATE_SFINAE( \
+        struct NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME_WITH_TEMPLATE_SFINAE( \
                 args, n \
                ) { \
             typedef \
-                BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_TAG_NAME(args) \
+                NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_TAG_NAME(args) \
                 type; \
         }; \
       /**/
 
-#     define BOOST_MPL_HAS_MEMBER_SUBSTITUTE_WITH_TEMPLATE_SFINAE( \
+#     define NDNBOOST_MPL_HAS_MEMBER_SUBSTITUTE_WITH_TEMPLATE_SFINAE( \
                  args, substitute_macro \
              ) \
         typedef void \
-            BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_TAG_NAME(args); \
-        BOOST_PP_REPEAT( \
-            BOOST_PP_ARRAY_ELEM(2, args) \
-          , BOOST_MPL_HAS_MEMBER_MULTI_SUBSTITUTE_WITH_TEMPLATE_SFINAE \
+            NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_TAG_NAME(args); \
+        NDNBOOST_PP_REPEAT( \
+            NDNBOOST_PP_ARRAY_ELEM(2, args) \
+          , NDNBOOST_MPL_HAS_MEMBER_MULTI_SUBSTITUTE_WITH_TEMPLATE_SFINAE \
           , args \
         ) \
       /**/
 
-#     define BOOST_MPL_HAS_MEMBER_REJECT_WITH_TEMPLATE_SFINAE( \
+#     define NDNBOOST_MPL_HAS_MEMBER_REJECT_WITH_TEMPLATE_SFINAE( \
                  args, member_macro \
              ) \
         template< \
             typename U \
           , typename V \
-                = BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_TAG_NAME(args) \
+                = NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_TAG_NAME(args) \
         > \
-        struct BOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args) { \
-            BOOST_STATIC_CONSTANT(bool, value = false); \
+        struct NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args) { \
+            NDNBOOST_STATIC_CONSTANT(bool, value = false); \
             typedef ndnboost::mpl::bool_< value > type; \
         }; \
       /**/
 
-#     define BOOST_MPL_HAS_MEMBER_MULTI_ACCEPT_WITH_TEMPLATE_SFINAE( \
+#     define NDNBOOST_MPL_HAS_MEMBER_MULTI_ACCEPT_WITH_TEMPLATE_SFINAE( \
                  z, n, args \
              ) \
         template< typename U > \
-        struct BOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)< \
+        struct NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)< \
             U \
           , typename \
-                BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME_WITH_TEMPLATE_SFINAE( \
+                NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME_WITH_TEMPLATE_SFINAE( \
                     args, n \
                 )< \
-                    BOOST_MSVC_TYPENAME U::BOOST_PP_ARRAY_ELEM(1, args)< > \
+                    NDNBOOST_MSVC_TYPENAME U::NDNBOOST_PP_ARRAY_ELEM(1, args)< > \
                 >::type \
         > { \
-            BOOST_STATIC_CONSTANT(bool, value = true); \
+            NDNBOOST_STATIC_CONSTANT(bool, value = true); \
             typedef ndnboost::mpl::bool_< value > type; \
         }; \
       /**/
 
-#     define BOOST_MPL_HAS_MEMBER_ACCEPT_WITH_TEMPLATE_SFINAE( \
+#     define NDNBOOST_MPL_HAS_MEMBER_ACCEPT_WITH_TEMPLATE_SFINAE( \
                  args, member_macro \
              ) \
-        BOOST_PP_REPEAT( \
-            BOOST_PP_ARRAY_ELEM(2, args) \
-          , BOOST_MPL_HAS_MEMBER_MULTI_ACCEPT_WITH_TEMPLATE_SFINAE \
+        NDNBOOST_PP_REPEAT( \
+            NDNBOOST_PP_ARRAY_ELEM(2, args) \
+          , NDNBOOST_MPL_HAS_MEMBER_MULTI_ACCEPT_WITH_TEMPLATE_SFINAE \
           , args \
         ) \
       /**/
 
-#     define BOOST_MPL_HAS_MEMBER_INTROSPECT_WITH_TEMPLATE_SFINAE( \
+#     define NDNBOOST_MPL_HAS_MEMBER_INTROSPECT_WITH_TEMPLATE_SFINAE( \
                  args, substitute_macro, member_macro \
              ) \
-        BOOST_MPL_HAS_MEMBER_REJECT_WITH_TEMPLATE_SFINAE(args, member_macro) \
-        BOOST_MPL_HAS_MEMBER_ACCEPT_WITH_TEMPLATE_SFINAE(args, member_macro) \
+        NDNBOOST_MPL_HAS_MEMBER_REJECT_WITH_TEMPLATE_SFINAE(args, member_macro) \
+        NDNBOOST_MPL_HAS_MEMBER_ACCEPT_WITH_TEMPLATE_SFINAE(args, member_macro) \
         template< typename U > \
-        struct BOOST_MPL_HAS_MEMBER_INTROSPECTION_NAME(args) \
-            : BOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)< U > { \
+        struct NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_NAME(args) \
+            : NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)< U > { \
         }; \
       /**/
  
-// BOOST_MPL_HAS_MEMBER_WITH_TEMPLATE_SFINAE expands to the full
+// NDNBOOST_MPL_HAS_MEMBER_WITH_TEMPLATE_SFINAE expands to the full
 // implementation of the template-based metafunction. Compile with -E
 // to see the preprocessor output for this macro.
 //
-// Note that if BOOST_MPL_HAS_XXX_NEEDS_NAMESPACE_LEVEL_SUBSTITUTE is
-// defined BOOST_MPL_HAS_MEMBER_SUBSTITUTE_WITH_TEMPLATE_SFINAE needs
+// Note that if NDNBOOST_MPL_HAS_XXX_NEEDS_NAMESPACE_LEVEL_SUBSTITUTE is
+// defined NDNBOOST_MPL_HAS_MEMBER_SUBSTITUTE_WITH_TEMPLATE_SFINAE needs
 // to be expanded at namespace level before
-// BOOST_MPL_HAS_MEMBER_WITH_TEMPLATE_SFINAE can be used.
-#     define BOOST_MPL_HAS_MEMBER_WITH_TEMPLATE_SFINAE( \
+// NDNBOOST_MPL_HAS_MEMBER_WITH_TEMPLATE_SFINAE can be used.
+#     define NDNBOOST_MPL_HAS_MEMBER_WITH_TEMPLATE_SFINAE( \
                  args, substitute_macro, member_macro \
              ) \
-        BOOST_MPL_HAS_MEMBER_SUBSTITUTE_WITH_TEMPLATE_SFINAE( \
+        NDNBOOST_MPL_HAS_MEMBER_SUBSTITUTE_WITH_TEMPLATE_SFINAE( \
             args, substitute_macro \
         ) \
-        BOOST_MPL_HAS_MEMBER_IMPLEMENTATION( \
+        NDNBOOST_MPL_HAS_MEMBER_IMPLEMENTATION( \
             args \
-          , BOOST_MPL_HAS_MEMBER_INTROSPECT_WITH_TEMPLATE_SFINAE \
+          , NDNBOOST_MPL_HAS_MEMBER_INTROSPECT_WITH_TEMPLATE_SFINAE \
           , substitute_macro \
           , member_macro \
         ) \
       /**/
 
-#   endif // BOOST_MPL_HAS_XXX_NEEDS_TEMPLATE_SFINAE
+#   endif // NDNBOOST_MPL_HAS_XXX_NEEDS_TEMPLATE_SFINAE
 
 // Note: In the current implementation the parameter and access macros
 // are no longer expanded.
-#   if !BOOST_WORKAROUND(BOOST_MSVC, <= 1400)
-#     define BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF(trait, name, default_) \
-        BOOST_MPL_HAS_MEMBER_WITH_FUNCTION_SFINAE( \
-            ( 4, ( trait, name, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, default_ ) ) \
-          , BOOST_MPL_HAS_MEMBER_TEMPLATE_SUBSTITUTE_PARAMETER \
-          , BOOST_MPL_HAS_MEMBER_TEMPLATE_ACCESS \
+#   if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1400)
+#     define NDNBOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF(trait, name, default_) \
+        NDNBOOST_MPL_HAS_MEMBER_WITH_FUNCTION_SFINAE( \
+            ( 4, ( trait, name, NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY, default_ ) ) \
+          , NDNBOOST_MPL_HAS_MEMBER_TEMPLATE_SUBSTITUTE_PARAMETER \
+          , NDNBOOST_MPL_HAS_MEMBER_TEMPLATE_ACCESS \
         ) \
       /**/
 #   else
-#     define BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF(trait, name, default_) \
-        BOOST_MPL_HAS_MEMBER_WITH_TEMPLATE_SFINAE( \
-            ( 4, ( trait, name, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, default_ ) ) \
-          , BOOST_MPL_HAS_MEMBER_TEMPLATE_SUBSTITUTE_PARAMETER \
-          , BOOST_MPL_HAS_MEMBER_TEMPLATE_ACCESS \
+#     define NDNBOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF(trait, name, default_) \
+        NDNBOOST_MPL_HAS_MEMBER_WITH_TEMPLATE_SFINAE( \
+            ( 4, ( trait, name, NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY, default_ ) ) \
+          , NDNBOOST_MPL_HAS_MEMBER_TEMPLATE_SUBSTITUTE_PARAMETER \
+          , NDNBOOST_MPL_HAS_MEMBER_TEMPLATE_ACCESS \
         ) \
       /**/
 #   endif
 
-#else // BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE
+#else // NDNBOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE
 
 // placeholder implementation
 
-#   define BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF(trait, name, default_) \
+#   define NDNBOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF(trait, name, default_) \
       template< typename T \
               , typename fallback_ = ndnboost::mpl::bool_< default_ > > \
       struct trait { \
-          BOOST_STATIC_CONSTANT(bool, value = fallback_::value); \
+          NDNBOOST_STATIC_CONSTANT(bool, value = fallback_::value); \
           typedef fallback_ type; \
       }; \
     /**/
 
-#endif // BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE
+#endif // NDNBOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE
 
-#   define BOOST_MPL_HAS_XXX_TEMPLATE_DEF(name) \
-      BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF( \
-          BOOST_PP_CAT(has_, name), name, false \
+#   define NDNBOOST_MPL_HAS_XXX_TEMPLATE_DEF(name) \
+      NDNBOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF( \
+          NDNBOOST_PP_CAT(has_, name), name, false \
       ) \
     /**/
 
-#endif // BOOST_MPL_HAS_XXX_HPP_INCLUDED
+#endif // NDNBOOST_MPL_HAS_XXX_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/identity.hpp b/include/ndnboost/mpl/identity.hpp
index 88391df..9e9207f 100644
--- a/include/ndnboost/mpl/identity.hpp
+++ b/include/ndnboost/mpl/identity.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_IDENTITY_HPP_INCLUDED
-#define BOOST_MPL_IDENTITY_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_IDENTITY_HPP_INCLUDED
+#define NDNBOOST_MPL_IDENTITY_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -20,26 +20,26 @@
 namespace ndnboost { namespace mpl {
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T)
     >
 struct identity
 {
     typedef T type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1, identity, (T))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1, identity, (T))
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T)
     >
 struct make_identity
 {
     typedef identity<T> type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1, make_identity, (T))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1, make_identity, (T))
 };
 
-BOOST_MPL_AUX_NA_SPEC_NO_ETI(1, identity)
-BOOST_MPL_AUX_NA_SPEC_NO_ETI(1, make_identity)
+NDNBOOST_MPL_AUX_NA_SPEC_NO_ETI(1, identity)
+NDNBOOST_MPL_AUX_NA_SPEC_NO_ETI(1, make_identity)
 
 }}
 
-#endif // BOOST_MPL_IDENTITY_HPP_INCLUDED
+#endif // NDNBOOST_MPL_IDENTITY_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/if.hpp b/include/ndnboost/mpl/if.hpp
index a19b4a9..c74be5f 100644
--- a/include/ndnboost/mpl/if.hpp
+++ b/include/ndnboost/mpl/if.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_IF_HPP_INCLUDED
-#define BOOST_MPL_IF_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_IF_HPP_INCLUDED
+#define NDNBOOST_MPL_IF_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -24,7 +24,7 @@
 
 namespace ndnboost { namespace mpl {
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template<
       bool C
@@ -48,19 +48,19 @@
 // agurt, 05/sep/04: nondescriptive parameter names for the sake of DigitalMars
 // (and possibly MWCW < 8.0); see http://article.gmane.org/gmane.comp.lib.boost.devel/108959
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
-    , typename BOOST_MPL_AUX_NA_PARAM(T3)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T3)
     >
 struct if_
 {
  private:
     // agurt, 02/jan/03: two-step 'type' definition for the sake of aCC 
     typedef if_c<
-#if defined(BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS)
-          BOOST_MPL_AUX_VALUE_WKND(T1)::value
+#if defined(NDNBOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS)
+          NDNBOOST_MPL_AUX_VALUE_WKND(T1)::value
 #else
-          BOOST_MPL_AUX_STATIC_CAST(bool, BOOST_MPL_AUX_VALUE_WKND(T1)::value)
+          NDNBOOST_MPL_AUX_STATIC_CAST(bool, NDNBOOST_MPL_AUX_VALUE_WKND(T1)::value)
 #endif
         , T2
         , T3
@@ -69,7 +69,7 @@
  public:
     typedef typename almost_type_::type type;
     
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(3,if_,(T1,T2,T3))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(3,if_,(T1,T2,T3))
 };
 
 #else
@@ -112,24 +112,24 @@
 // (almost) copy & paste in order to save one more 
 // recursively nested template instantiation to user
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(C_)
-    , typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(C_)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
     >
 struct if_
 {
-    enum { msvc_wknd_ = BOOST_MPL_AUX_MSVC_VALUE_WKND(C_)::value };
+    enum { msvc_wknd_ = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(C_)::value };
 
-    typedef typename aux::if_impl< BOOST_MPL_AUX_STATIC_CAST(bool, msvc_wknd_) >
+    typedef typename aux::if_impl< NDNBOOST_MPL_AUX_STATIC_CAST(bool, msvc_wknd_) >
         ::template result_<T1,T2>::type type;
 
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(3,if_,(C_,T1,T2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(3,if_,(C_,T1,T2))
 };
 
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
-BOOST_MPL_AUX_NA_SPEC(3, if_)
+NDNBOOST_MPL_AUX_NA_SPEC(3, if_)
 
 }}
 
-#endif // BOOST_MPL_IF_HPP_INCLUDED
+#endif // NDNBOOST_MPL_IF_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/inserter.hpp b/include/ndnboost/mpl/inserter.hpp
index 97a54ba..7bceba1 100644
--- a/include/ndnboost/mpl/inserter.hpp
+++ b/include/ndnboost/mpl/inserter.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_INSERTER_HPP_INCLUDED
-#define BOOST_MPL_INSERTER_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_INSERTER_HPP_INCLUDED
+#define NDNBOOST_MPL_INSERTER_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2003-2004
 // Copyright David Abrahams 2003-2004
@@ -29,4 +29,4 @@
 
 }}
 
-#endif // BOOST_MPL_INSERTER_HPP_INCLUDED
+#endif // NDNBOOST_MPL_INSERTER_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/int.hpp b/include/ndnboost/mpl/int.hpp
index 510ee6e..05f6997 100644
--- a/include/ndnboost/mpl/int.hpp
+++ b/include/ndnboost/mpl/int.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_INT_HPP_INCLUDED
-#define BOOST_MPL_INT_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_INT_HPP_INCLUDED
+#define NDNBOOST_MPL_INT_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -19,4 +19,4 @@
 #define AUX_WRAPPER_VALUE_TYPE int
 #include <ndnboost/mpl/aux_/integral_wrapper.hpp>
 
-#endif // BOOST_MPL_INT_HPP_INCLUDED
+#endif // NDNBOOST_MPL_INT_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/int_fwd.hpp b/include/ndnboost/mpl/int_fwd.hpp
index f7b42e2..ab30247 100644
--- a/include/ndnboost/mpl/int_fwd.hpp
+++ b/include/ndnboost/mpl/int_fwd.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_INT_FWD_HPP_INCLUDED
-#define BOOST_MPL_INT_FWD_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_INT_FWD_HPP_INCLUDED
+#define NDNBOOST_MPL_INT_FWD_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -17,11 +17,11 @@
 #include <ndnboost/mpl/aux_/adl_barrier.hpp>
 #include <ndnboost/mpl/aux_/nttp_decl.hpp>
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 
-template< BOOST_MPL_AUX_NTTP_DECL(int, N) > struct int_;
+template< NDNBOOST_MPL_AUX_NTTP_DECL(int, N) > struct int_;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-BOOST_MPL_AUX_ADL_BARRIER_DECL(int_)
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_DECL(int_)
 
-#endif // BOOST_MPL_INT_FWD_HPP_INCLUDED
+#endif // NDNBOOST_MPL_INT_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/integral_c.hpp b/include/ndnboost/mpl/integral_c.hpp
index 166fedd..9c9fa91 100644
--- a/include/ndnboost/mpl/integral_c.hpp
+++ b/include/ndnboost/mpl/integral_c.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_INTEGRAL_C_HPP_INCLUDED
-#define BOOST_MPL_INTEGRAL_C_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_INTEGRAL_C_HPP_INCLUDED
+#define NDNBOOST_MPL_INTEGRAL_C_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2006
 //
@@ -19,7 +19,7 @@
 #include <ndnboost/mpl/aux_/config/static_constant.hpp>
 #include <ndnboost/mpl/aux_/config/workaround.hpp>
 
-#if BOOST_WORKAROUND(__HP_aCC, <= 53800)
+#if NDNBOOST_WORKAROUND(__HP_aCC, <= 53800)
 // the type of non-type template arguments may not depend on template arguments
 #   define AUX_WRAPPER_PARAMS(N) typename T, long N
 #else
@@ -32,20 +32,20 @@
 #include <ndnboost/mpl/aux_/integral_wrapper.hpp>
 
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
- && !BOOST_WORKAROUND(__BORLANDC__, <= 0x551)
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
+ && !NDNBOOST_WORKAROUND(__BORLANDC__, <= 0x551)
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 // 'bool' constant doesn't have 'next'/'prior' members
 template< bool C >
 struct integral_c<bool, C>
 {
-    BOOST_STATIC_CONSTANT(bool, value = C);
+    NDNBOOST_STATIC_CONSTANT(bool, value = C);
     typedef integral_c_tag tag;
     typedef integral_c type;
     typedef bool value_type;
     operator bool() const { return this->value; }
 };
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 #endif
 
-#endif // BOOST_MPL_INTEGRAL_C_HPP_INCLUDED
+#endif // NDNBOOST_MPL_INTEGRAL_C_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/integral_c_fwd.hpp b/include/ndnboost/mpl/integral_c_fwd.hpp
index 91d4b6b..1eaec64 100644
--- a/include/ndnboost/mpl/integral_c_fwd.hpp
+++ b/include/ndnboost/mpl/integral_c_fwd.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_INTEGRAL_C_FWD_HPP_INCLUDED
-#define BOOST_MPL_INTEGRAL_C_FWD_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_INTEGRAL_C_FWD_HPP_INCLUDED
+#define NDNBOOST_MPL_INTEGRAL_C_FWD_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2006
 //
@@ -17,16 +17,16 @@
 #include <ndnboost/mpl/aux_/config/workaround.hpp>
 #include <ndnboost/mpl/aux_/adl_barrier.hpp>
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 
-#if BOOST_WORKAROUND(__HP_aCC, <= 53800)
+#if NDNBOOST_WORKAROUND(__HP_aCC, <= 53800)
 // the type of non-type template arguments may not depend on template arguments
 template< typename T, long N > struct integral_c;
 #else
 template< typename T, T N > struct integral_c;
 #endif
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-BOOST_MPL_AUX_ADL_BARRIER_DECL(integral_c)
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_DECL(integral_c)
 
-#endif // BOOST_MPL_INTEGRAL_C_FWD_HPP_INCLUDED
+#endif // NDNBOOST_MPL_INTEGRAL_C_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/integral_c_tag.hpp b/include/ndnboost/mpl/integral_c_tag.hpp
index 54c83ac..a5d2aa7 100644
--- a/include/ndnboost/mpl/integral_c_tag.hpp
+++ b/include/ndnboost/mpl/integral_c_tag.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_INTEGRAL_C_TAG_HPP_INCLUDED
-#define BOOST_MPL_INTEGRAL_C_TAG_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_INTEGRAL_C_TAG_HPP_INCLUDED
+#define NDNBOOST_MPL_INTEGRAL_C_TAG_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2004
 //
@@ -18,9 +18,9 @@
 #include <ndnboost/mpl/aux_/adl_barrier.hpp>
 #include <ndnboost/mpl/aux_/config/static_constant.hpp>
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-struct integral_c_tag { BOOST_STATIC_CONSTANT(int, value = 0); };
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-BOOST_MPL_AUX_ADL_BARRIER_DECL(integral_c_tag)
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+struct integral_c_tag { NDNBOOST_STATIC_CONSTANT(int, value = 0); };
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_DECL(integral_c_tag)
 
-#endif // BOOST_MPL_INTEGRAL_C_TAG_HPP_INCLUDED
+#endif // NDNBOOST_MPL_INTEGRAL_C_TAG_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/is_placeholder.hpp b/include/ndnboost/mpl/is_placeholder.hpp
index 0e29891..93f9653 100644
--- a/include/ndnboost/mpl/is_placeholder.hpp
+++ b/include/ndnboost/mpl/is_placeholder.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_IS_PLACEHOLDER_HPP_INCLUDED
-#define BOOST_MPL_IS_PLACEHOLDER_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_IS_PLACEHOLDER_HPP_INCLUDED
+#define NDNBOOST_MPL_IS_PLACEHOLDER_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2001-2004
 //
@@ -24,7 +24,7 @@
 
 namespace ndnboost { namespace mpl {
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template< typename T >
 struct is_placeholder
@@ -32,7 +32,7 @@
 {
 };
 
-template< BOOST_MPL_AUX_NTTP_DECL(int, N) >
+template< NDNBOOST_MPL_AUX_NTTP_DECL(int, N) >
 struct is_placeholder< arg<N> >
     : bool_<true>
 {
@@ -44,7 +44,7 @@
 
 aux::no_tag is_placeholder_helper(...);
 
-template< BOOST_MPL_AUX_NTTP_DECL(int, N) >
+template< NDNBOOST_MPL_AUX_NTTP_DECL(int, N) >
 aux::yes_tag is_placeholder_helper(aux::type_wrapper< arg<N> >*);
 
 } // namespace aux
@@ -53,15 +53,15 @@
 struct is_placeholder
 {
     static aux::type_wrapper<T>* get();
-    BOOST_STATIC_CONSTANT(bool, value = 
+    NDNBOOST_STATIC_CONSTANT(bool, value = 
           sizeof(aux::is_placeholder_helper(get())) == sizeof(aux::yes_tag)
         );
     
     typedef bool_<value> type;
 };
 
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 }}
 
-#endif // BOOST_MPL_IS_PLACEHOLDER_HPP_INCLUDED
+#endif // NDNBOOST_MPL_IS_PLACEHOLDER_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/is_sequence.hpp b/include/ndnboost/mpl/is_sequence.hpp
index a192da6..24111bf 100644
--- a/include/ndnboost/mpl/is_sequence.hpp
+++ b/include/ndnboost/mpl/is_sequence.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_IS_SEQUENCE_HPP_INCLUDED
-#define BOOST_MPL_IS_SEQUENCE_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_IS_SEQUENCE_HPP_INCLUDED
+#define NDNBOOST_MPL_IS_SEQUENCE_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2002-2004
 //
@@ -29,9 +29,9 @@
 #include <ndnboost/mpl/aux_/config/eti.hpp>
 #include <ndnboost/mpl/aux_/config/msvc.hpp>
 #include <ndnboost/mpl/aux_/config/workaround.hpp>
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
 #   include <ndnboost/mpl/aux_/msvc_is_class.hpp>
-#elif BOOST_WORKAROUND(BOOST_MSVC, == 1300)
+#elif NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1300)
 #   include <ndnboost/type_traits/is_class.hpp>
 #endif
 
@@ -39,7 +39,7 @@
 
 namespace ndnboost { namespace mpl {
 
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)
 
 namespace aux {
 
@@ -59,11 +59,11 @@
 } // namespace aux
         
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T)
     >
 struct is_sequence
     : if_<
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
           aux::msvc_is_class<T> 
 #else
           ndnboost::is_class<T> 
@@ -72,13 +72,13 @@
         , bool_<false>
         >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1, is_sequence, (T))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1, is_sequence, (T))
 };
 
-#elif defined(BOOST_MPL_CFG_NO_HAS_XXX)
+#elif defined(NDNBOOST_MPL_CFG_NO_HAS_XXX)
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T)
     >
 struct is_sequence
     : bool_<false>
@@ -88,25 +88,25 @@
 #else
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T)
     >
 struct is_sequence
     : not_< is_same< typename begin<T>::type, void_ > >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1, is_sequence, (T))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1, is_sequence, (T))
 };
 
-#endif // BOOST_MSVC
+#endif // NDNBOOST_MSVC
 
-#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG)
+#if defined(NDNBOOST_MPL_CFG_MSVC_60_ETI_BUG)
 template<> struct is_sequence<int>
     : bool_<false>
 {
 };
 #endif
 
-BOOST_MPL_AUX_NA_SPEC_NO_ETI(1, is_sequence)
+NDNBOOST_MPL_AUX_NA_SPEC_NO_ETI(1, is_sequence)
 
 }}
 
-#endif // BOOST_MPL_IS_SEQUENCE_HPP_INCLUDED
+#endif // NDNBOOST_MPL_IS_SEQUENCE_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/iter_fold.hpp b/include/ndnboost/mpl/iter_fold.hpp
index 8dbaa6d..a8480b8 100644
--- a/include/ndnboost/mpl/iter_fold.hpp
+++ b/include/ndnboost/mpl/iter_fold.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_ITER_FOLD_HPP_INCLUDED
-#define BOOST_MPL_ITER_FOLD_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_ITER_FOLD_HPP_INCLUDED
+#define NDNBOOST_MPL_ITER_FOLD_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2001-2004
 // Copyright David Abrahams 2001-2002
@@ -25,9 +25,9 @@
 namespace ndnboost { namespace mpl {
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
-    , typename BOOST_MPL_AUX_NA_PARAM(State)
-    , typename BOOST_MPL_AUX_NA_PARAM(ForwardOp)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(Sequence)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(State)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(ForwardOp)
     >
 struct iter_fold
 {
@@ -39,11 +39,11 @@
         , typename lambda<ForwardOp>::type
         >::state type;
 
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(3,iter_fold,(Sequence,State,ForwardOp))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(3,iter_fold,(Sequence,State,ForwardOp))
 };
 
-BOOST_MPL_AUX_NA_SPEC(3, iter_fold)
+NDNBOOST_MPL_AUX_NA_SPEC(3, iter_fold)
 
 }}
 
-#endif // BOOST_MPL_ITER_FOLD_HPP_INCLUDED
+#endif // NDNBOOST_MPL_ITER_FOLD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/iter_fold_if.hpp b/include/ndnboost/mpl/iter_fold_if.hpp
index 3373579..14f8765 100644
--- a/include/ndnboost/mpl/iter_fold_if.hpp
+++ b/include/ndnboost/mpl/iter_fold_if.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_ITER_FOLD_IF_HPP_INCLUDED
-#define BOOST_MPL_ITER_FOLD_IF_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_ITER_FOLD_IF_HPP_INCLUDED
+#define NDNBOOST_MPL_ITER_FOLD_IF_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2003-2004
 // Copyright Eric Friedman 2003
@@ -38,7 +38,7 @@
 struct iter_fold_if_pred
 {
     template< typename State, typename Iterator > struct apply
-#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
+#if !defined(NDNBOOST_MPL_CFG_NO_NESTED_FORWARDING)
         : and_<
               not_< is_same<Iterator,LastIterator> >
             , apply1<Predicate,Iterator>
@@ -57,12 +57,12 @@
 } // namespace aux
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
-    , typename BOOST_MPL_AUX_NA_PARAM(State)
-    , typename BOOST_MPL_AUX_NA_PARAM(ForwardOp)
-    , typename BOOST_MPL_AUX_NA_PARAM(ForwardPredicate)
-    , typename BOOST_MPL_AUX_NA_PARAM(BackwardOp)
-    , typename BOOST_MPL_AUX_NA_PARAM(BackwardPredicate)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(Sequence)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(State)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(ForwardOp)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(ForwardPredicate)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(BackwardOp)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(BackwardPredicate)
     >
 struct iter_fold_if
 {
@@ -77,7 +77,7 @@
         >::type backward_pred_;
 
 // cwpro8 doesn't like 'cut-off' type here (use typedef instead)
-#if !BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003)) && !BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600))
+#if !NDNBOOST_WORKAROUND(__MWERKS__, NDNBOOST_TESTED_AT(0x3003)) && !NDNBOOST_WORKAROUND(__IBMCPP__, NDNBOOST_TESTED_AT(600))
     struct result_ :
 #else
     typedef
@@ -90,7 +90,7 @@
         , BackwardOp
         , backward_pred_
         >
-#if !BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003)) && !BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600))
+#if !NDNBOOST_WORKAROUND(__MWERKS__, NDNBOOST_TESTED_AT(0x3003)) && !NDNBOOST_WORKAROUND(__IBMCPP__, NDNBOOST_TESTED_AT(600))
     { };
 #else
     result_;
@@ -103,15 +103,15 @@
         , typename result_::iterator
         > type;
 
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           6
         , iter_fold_if
         , (Sequence,State,ForwardOp,ForwardPredicate,BackwardOp,BackwardPredicate)
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC(6, iter_fold_if)
+NDNBOOST_MPL_AUX_NA_SPEC(6, iter_fold_if)
 
 }}
 
-#endif // BOOST_MPL_ITER_FOLD_IF_HPP_INCLUDED
+#endif // NDNBOOST_MPL_ITER_FOLD_IF_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/iterator_range.hpp b/include/ndnboost/mpl/iterator_range.hpp
index 906ddd3..cc8cc88 100644
--- a/include/ndnboost/mpl/iterator_range.hpp
+++ b/include/ndnboost/mpl/iterator_range.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_ITERATOR_RANGE_HPP_INCLUDED
-#define BOOST_MPL_ITERATOR_RANGE_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_ITERATOR_RANGE_HPP_INCLUDED
+#define NDNBOOST_MPL_ITERATOR_RANGE_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2001-2004
 //
@@ -22,8 +22,8 @@
 struct iterator_range_tag;
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(First)
-    , typename BOOST_MPL_AUX_NA_PARAM(Last)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(First)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(Last)
     >
 struct iterator_range
 {
@@ -32,11 +32,11 @@
     typedef First begin;
     typedef Last end;
 
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2,iterator_range,(First,Last))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2,iterator_range,(First,Last))
 };
 
-BOOST_MPL_AUX_NA_SPEC(2, iterator_range)
+NDNBOOST_MPL_AUX_NA_SPEC(2, iterator_range)
 
 }}
 
-#endif // BOOST_MPL_ITERATOR_RANGE_HPP_INCLUDED
+#endif // NDNBOOST_MPL_ITERATOR_RANGE_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/iterator_tags.hpp b/include/ndnboost/mpl/iterator_tags.hpp
index 540f921..986ab69 100644
--- a/include/ndnboost/mpl/iterator_tags.hpp
+++ b/include/ndnboost/mpl/iterator_tags.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_ITERATOR_TAG_HPP_INCLUDED
-#define BOOST_MPL_ITERATOR_TAG_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_ITERATOR_TAG_HPP_INCLUDED
+#define NDNBOOST_MPL_ITERATOR_TAG_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -24,4 +24,4 @@
 
 }}
 
-#endif // BOOST_MPL_ITERATOR_TAG_HPP_INCLUDED
+#endif // NDNBOOST_MPL_ITERATOR_TAG_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/lambda.hpp b/include/ndnboost/mpl/lambda.hpp
index ba43514..a617547 100644
--- a/include/ndnboost/mpl/lambda.hpp
+++ b/include/ndnboost/mpl/lambda.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_LAMBDA_HPP_INCLUDED
-#define BOOST_MPL_LAMBDA_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_LAMBDA_HPP_INCLUDED
+#define NDNBOOST_MPL_LAMBDA_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2001-2004
 //
@@ -18,12 +18,12 @@
 #include <ndnboost/mpl/bind.hpp>
 #include <ndnboost/mpl/aux_/config/lambda.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
+#if !defined(NDNBOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
 #   include <ndnboost/mpl/aux_/full_lambda.hpp>
 #else
 #   include <ndnboost/mpl/aux_/lambda_no_ctps.hpp>
 #   include <ndnboost/mpl/aux_/lambda_support.hpp>
-#   define BOOST_MPL_CFG_NO_IMPLICIT_METAFUNCTIONS
+#   define NDNBOOST_MPL_CFG_NO_IMPLICIT_METAFUNCTIONS
 #endif
 
-#endif // BOOST_MPL_LAMBDA_HPP_INCLUDED
+#endif // NDNBOOST_MPL_LAMBDA_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/lambda_fwd.hpp b/include/ndnboost/mpl/lambda_fwd.hpp
index c7f3ec6..8fb94d8 100644
--- a/include/ndnboost/mpl/lambda_fwd.hpp
+++ b/include/ndnboost/mpl/lambda_fwd.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_LAMBDA_FWD_HPP_INCLUDED
-#define BOOST_MPL_LAMBDA_FWD_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_LAMBDA_FWD_HPP_INCLUDED
+#define NDNBOOST_MPL_LAMBDA_FWD_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2001-2004
 //
@@ -18,7 +18,7 @@
 #include <ndnboost/mpl/aux_/na.hpp>
 #include <ndnboost/mpl/aux_/config/lambda.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
+#if !defined(NDNBOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
 
 #   include <ndnboost/mpl/int.hpp>
 #   include <ndnboost/mpl/aux_/lambda_arity_param.hpp>
@@ -29,7 +29,7 @@
 template< 
       typename T = na
     , typename Tag = void_
-    BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(
+    NDNBOOST_MPL_AUX_LAMBDA_ARITY_PARAM(
           typename Arity = int_< aux::template_arity<T>::value >
         )
     >
@@ -37,7 +37,7 @@
 
 }}
 
-#else // BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT
+#else // NDNBOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT
 
 #   include <ndnboost/mpl/bool.hpp>
 
@@ -54,4 +54,4 @@
 
 #endif
 
-#endif // BOOST_MPL_LAMBDA_FWD_HPP_INCLUDED
+#endif // NDNBOOST_MPL_LAMBDA_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/less.hpp b/include/ndnboost/mpl/less.hpp
index 12043a8..14431f5 100644
--- a/include/ndnboost/mpl/less.hpp
+++ b/include/ndnboost/mpl/less.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_LESS_HPP_INCLUDED
-#define BOOST_MPL_LESS_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_LESS_HPP_INCLUDED
+#define NDNBOOST_MPL_LESS_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -18,4 +18,4 @@
 #define AUX778076_OP_TOKEN <
 #include <ndnboost/mpl/aux_/comparison_op.hpp>
 
-#endif // BOOST_MPL_LESS_HPP_INCLUDED
+#endif // NDNBOOST_MPL_LESS_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/less_equal.hpp b/include/ndnboost/mpl/less_equal.hpp
index 9fd7a46..b758a3f 100644
--- a/include/ndnboost/mpl/less_equal.hpp
+++ b/include/ndnboost/mpl/less_equal.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_LESS_EQUAL_HPP_INCLUDED
-#define BOOST_MPL_LESS_EQUAL_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_LESS_EQUAL_HPP_INCLUDED
+#define NDNBOOST_MPL_LESS_EQUAL_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -18,4 +18,4 @@
 #define AUX778076_OP_TOKEN <=
 #include <ndnboost/mpl/aux_/comparison_op.hpp>
 
-#endif // BOOST_MPL_LESS_EQUAL_HPP_INCLUDED
+#endif // NDNBOOST_MPL_LESS_EQUAL_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/limits/arity.hpp b/include/ndnboost/mpl/limits/arity.hpp
index 9da70ab..0c9650b 100644
--- a/include/ndnboost/mpl/limits/arity.hpp
+++ b/include/ndnboost/mpl/limits/arity.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_LIMITS_ARITY_HPP_INCLUDED
-#define BOOST_MPL_LIMITS_ARITY_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_LIMITS_ARITY_HPP_INCLUDED
+#define NDNBOOST_MPL_LIMITS_ARITY_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -14,8 +14,8 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_LIMIT_METAFUNCTION_ARITY)
-#   define BOOST_MPL_LIMIT_METAFUNCTION_ARITY 5
+#if !defined(NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY)
+#   define NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY 5
 #endif
 
-#endif // BOOST_MPL_LIMITS_ARITY_HPP_INCLUDED
+#endif // NDNBOOST_MPL_LIMITS_ARITY_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/limits/list.hpp b/include/ndnboost/mpl/limits/list.hpp
index 6ae7387..5a37ea0 100644
--- a/include/ndnboost/mpl/limits/list.hpp
+++ b/include/ndnboost/mpl/limits/list.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_LIMITS_LIST_HPP_INCLUDED
-#define BOOST_MPL_LIMITS_LIST_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_LIMITS_LIST_HPP_INCLUDED
+#define NDNBOOST_MPL_LIMITS_LIST_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -14,8 +14,8 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_LIMIT_LIST_SIZE)
-#   define BOOST_MPL_LIMIT_LIST_SIZE 20
+#if !defined(NDNBOOST_MPL_LIMIT_LIST_SIZE)
+#   define NDNBOOST_MPL_LIMIT_LIST_SIZE 20
 #endif
 
-#endif // BOOST_MPL_LIMITS_LIST_HPP_INCLUDED
+#endif // NDNBOOST_MPL_LIMITS_LIST_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/limits/unrolling.hpp b/include/ndnboost/mpl/limits/unrolling.hpp
index 3914f0a..edf5500 100644
--- a/include/ndnboost/mpl/limits/unrolling.hpp
+++ b/include/ndnboost/mpl/limits/unrolling.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_LIMITS_UNROLLING_HPP_INCLUDED
-#define BOOST_MPL_LIMITS_UNROLLING_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_LIMITS_UNROLLING_HPP_INCLUDED
+#define NDNBOOST_MPL_LIMITS_UNROLLING_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -14,8 +14,8 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_LIMIT_UNROLLING)
-#   define BOOST_MPL_LIMIT_UNROLLING 4
+#if !defined(NDNBOOST_MPL_LIMIT_UNROLLING)
+#   define NDNBOOST_MPL_LIMIT_UNROLLING 4
 #endif
 
-#endif // BOOST_MPL_LIMITS_UNROLLING_HPP_INCLUDED
+#endif // NDNBOOST_MPL_LIMITS_UNROLLING_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/limits/vector.hpp b/include/ndnboost/mpl/limits/vector.hpp
index 5de3811..567b258 100644
--- a/include/ndnboost/mpl/limits/vector.hpp
+++ b/include/ndnboost/mpl/limits/vector.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_LIMITS_VECTOR_HPP_INCLUDED
-#define BOOST_MPL_LIMITS_VECTOR_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_LIMITS_VECTOR_HPP_INCLUDED
+#define NDNBOOST_MPL_LIMITS_VECTOR_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -14,8 +14,8 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_LIMIT_VECTOR_SIZE)
-#   define BOOST_MPL_LIMIT_VECTOR_SIZE 20
+#if !defined(NDNBOOST_MPL_LIMIT_VECTOR_SIZE)
+#   define NDNBOOST_MPL_LIMIT_VECTOR_SIZE 20
 #endif
 
-#endif // BOOST_MPL_LIMITS_VECTOR_HPP_INCLUDED
+#endif // NDNBOOST_MPL_LIMITS_VECTOR_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/list.hpp b/include/ndnboost/mpl/list.hpp
index 89655f3..134c828 100644
--- a/include/ndnboost/mpl/list.hpp
+++ b/include/ndnboost/mpl/list.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_LIST_HPP_INCLUDED
-#define BOOST_MPL_LIST_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_LIST_HPP_INCLUDED
+#define NDNBOOST_MPL_LIST_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -14,7 +14,7 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/limits/list.hpp>
 #   include <ndnboost/mpl/aux_/na.hpp>
 #   include <ndnboost/mpl/aux_/config/preprocessor.hpp>
@@ -23,26 +23,26 @@
 #   include <ndnboost/preprocessor/cat.hpp>
 #   include <ndnboost/preprocessor/stringize.hpp>
 
-#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING)
+#if !defined(NDNBOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING)
 #   define AUX778076_LIST_HEADER \
-    BOOST_PP_CAT(list,BOOST_MPL_LIMIT_LIST_SIZE).hpp \
+    NDNBOOST_PP_CAT(list,NDNBOOST_MPL_LIMIT_LIST_SIZE).hpp \
     /**/
 #else
 #   define AUX778076_LIST_HEADER \
-    BOOST_PP_CAT(list,BOOST_MPL_LIMIT_LIST_SIZE)##.hpp \
+    NDNBOOST_PP_CAT(list,NDNBOOST_MPL_LIMIT_LIST_SIZE)##.hpp \
     /**/
 #endif
 
-#   include BOOST_PP_STRINGIZE(ndnboost/mpl/list/AUX778076_LIST_HEADER)
+#   include NDNBOOST_PP_STRINGIZE(ndnboost/mpl/list/AUX778076_LIST_HEADER)
 #   undef AUX778076_LIST_HEADER
 #endif
 
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
-#   define BOOST_MPL_PREPROCESSED_HEADER list.hpp
+#   define NDNBOOST_MPL_PREPROCESSED_HEADER list.hpp
 #   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
 
 #else
@@ -50,8 +50,8 @@
 #   include <ndnboost/mpl/limits/list.hpp>
 
 #   define AUX778076_SEQUENCE_NAME list
-#   define AUX778076_SEQUENCE_LIMIT BOOST_MPL_LIMIT_LIST_SIZE
+#   define AUX778076_SEQUENCE_LIMIT NDNBOOST_MPL_LIMIT_LIST_SIZE
 #   include <ndnboost/mpl/aux_/sequence_wrapper.hpp>
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_LIST_HPP_INCLUDED
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_LIST_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/list/aux_/O1_size.hpp b/include/ndnboost/mpl/list/aux_/O1_size.hpp
index f5fda21..801a404 100644
--- a/include/ndnboost/mpl/list/aux_/O1_size.hpp
+++ b/include/ndnboost/mpl/list/aux_/O1_size.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_LIST_AUX_O1_SIZE_HPP_INCLUDED
-#define BOOST_MPL_LIST_AUX_O1_SIZE_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_LIST_AUX_O1_SIZE_HPP_INCLUDED
+#define NDNBOOST_MPL_LIST_AUX_O1_SIZE_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -30,4 +30,4 @@
 
 }}
 
-#endif // BOOST_MPL_LIST_AUX_O1_SIZE_HPP_INCLUDED
+#endif // NDNBOOST_MPL_LIST_AUX_O1_SIZE_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/list/aux_/begin_end.hpp b/include/ndnboost/mpl/list/aux_/begin_end.hpp
index 6c3e7ff..481ece9 100644
--- a/include/ndnboost/mpl/list/aux_/begin_end.hpp
+++ b/include/ndnboost/mpl/list/aux_/begin_end.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_LIST_AUX_BEGIN_END_HPP_INCLUDED
-#define BOOST_MPL_LIST_AUX_BEGIN_END_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_LIST_AUX_BEGIN_END_HPP_INCLUDED
+#define NDNBOOST_MPL_LIST_AUX_BEGIN_END_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -41,4 +41,4 @@
 
 }}
 
-#endif // BOOST_MPL_LIST_AUX_BEGIN_END_HPP_INCLUDED
+#endif // NDNBOOST_MPL_LIST_AUX_BEGIN_END_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/list/aux_/clear.hpp b/include/ndnboost/mpl/list/aux_/clear.hpp
index 05cf597..986ca56 100644
--- a/include/ndnboost/mpl/list/aux_/clear.hpp
+++ b/include/ndnboost/mpl/list/aux_/clear.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_LIST_AUX_CLEAR_HPP_INCLUDED
-#define BOOST_MPL_LIST_AUX_CLEAR_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_LIST_AUX_CLEAR_HPP_INCLUDED
+#define NDNBOOST_MPL_LIST_AUX_CLEAR_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -31,4 +31,4 @@
 
 }}
 
-#endif // BOOST_MPL_LIST_AUX_CLEAR_HPP_INCLUDED
+#endif // NDNBOOST_MPL_LIST_AUX_CLEAR_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/list/aux_/empty.hpp b/include/ndnboost/mpl/list/aux_/empty.hpp
index e40effc..bdd9f31 100644
--- a/include/ndnboost/mpl/list/aux_/empty.hpp
+++ b/include/ndnboost/mpl/list/aux_/empty.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_LIST_AUX_EMPTY_HPP_INCLUDED
-#define BOOST_MPL_LIST_AUX_EMPTY_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_LIST_AUX_EMPTY_HPP_INCLUDED
+#define NDNBOOST_MPL_LIST_AUX_EMPTY_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -31,4 +31,4 @@
 
 }}
 
-#endif // BOOST_MPL_LIST_AUX_EMPTY_HPP_INCLUDED
+#endif // NDNBOOST_MPL_LIST_AUX_EMPTY_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/list/aux_/front.hpp b/include/ndnboost/mpl/list/aux_/front.hpp
index dcb43ab..9ee1dd6 100644
--- a/include/ndnboost/mpl/list/aux_/front.hpp
+++ b/include/ndnboost/mpl/list/aux_/front.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_LIST_AUX_FRONT_HPP_INCLUDED
-#define BOOST_MPL_LIST_AUX_FRONT_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_LIST_AUX_FRONT_HPP_INCLUDED
+#define NDNBOOST_MPL_LIST_AUX_FRONT_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -30,4 +30,4 @@
 
 }}
 
-#endif // BOOST_MPL_LIST_AUX_FRONT_HPP_INCLUDED
+#endif // NDNBOOST_MPL_LIST_AUX_FRONT_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/list/aux_/include_preprocessed.hpp b/include/ndnboost/mpl/list/aux_/include_preprocessed.hpp
index 6f25939..cbeea8b 100644
--- a/include/ndnboost/mpl/list/aux_/include_preprocessed.hpp
+++ b/include/ndnboost/mpl/list/aux_/include_preprocessed.hpp
@@ -19,17 +19,17 @@
 #include <ndnboost/preprocessor/stringize.hpp>
 
 #   define AUX778076_HEADER \
-    aux_/preprocessed/plain/BOOST_MPL_PREPROCESSED_HEADER \
+    aux_/preprocessed/plain/NDNBOOST_MPL_PREPROCESSED_HEADER \
 /**/
 
-#if BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(700))
-#   define AUX778076_INCLUDE_STRING BOOST_PP_STRINGIZE(ndnboost/mpl/list/AUX778076_HEADER)
+#if NDNBOOST_WORKAROUND(__IBMCPP__, NDNBOOST_TESTED_AT(700))
+#   define AUX778076_INCLUDE_STRING NDNBOOST_PP_STRINGIZE(ndnboost/mpl/list/AUX778076_HEADER)
 #   include AUX778076_INCLUDE_STRING
 #   undef AUX778076_INCLUDE_STRING
 #else
-#   include BOOST_PP_STRINGIZE(ndnboost/mpl/list/AUX778076_HEADER)
+#   include NDNBOOST_PP_STRINGIZE(ndnboost/mpl/list/AUX778076_HEADER)
 #endif
 
 #   undef AUX778076_HEADER
 
-#undef BOOST_MPL_PREPROCESSED_HEADER
+#undef NDNBOOST_MPL_PREPROCESSED_HEADER
diff --git a/include/ndnboost/mpl/list/aux_/item.hpp b/include/ndnboost/mpl/list/aux_/item.hpp
index 3048007..393529a 100644
--- a/include/ndnboost/mpl/list/aux_/item.hpp
+++ b/include/ndnboost/mpl/list/aux_/item.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_LIST_AUX_NODE_HPP_INCLUDED
-#define BOOST_MPL_LIST_AUX_NODE_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_LIST_AUX_NODE_HPP_INCLUDED
+#define NDNBOOST_MPL_LIST_AUX_NODE_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -29,7 +29,7 @@
 struct l_item
 {
 // agurt, 17/jul/03: to facilitate the deficient 'is_sequence' implementation 
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)
     typedef int begin;
 #endif
     typedef aux::list_tag tag;
@@ -42,7 +42,7 @@
 
 struct l_end
 {
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)
     typedef int begin;
 #endif
     typedef aux::list_tag tag;
@@ -52,4 +52,4 @@
 
 }}
 
-#endif // BOOST_MPL_LIST_AUX_NODE_HPP_INCLUDED
+#endif // NDNBOOST_MPL_LIST_AUX_NODE_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/list/aux_/iterator.hpp b/include/ndnboost/mpl/list/aux_/iterator.hpp
index 492f779..914a27d 100644
--- a/include/ndnboost/mpl/list/aux_/iterator.hpp
+++ b/include/ndnboost/mpl/list/aux_/iterator.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_LIST_AUX_ITERATOR_HPP_INCLUDED
-#define BOOST_MPL_LIST_AUX_ITERATOR_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_LIST_AUX_ITERATOR_HPP_INCLUDED
+#define NDNBOOST_MPL_LIST_AUX_ITERATOR_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -24,7 +24,7 @@
 
 namespace ndnboost { namespace mpl {
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template< typename Node >
 struct l_iter
@@ -45,7 +45,7 @@
     typedef l_iter< typename Node::next > type;
 };
 
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#else // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 template< typename Node >
 struct l_iter
@@ -63,14 +63,14 @@
 {
     typedef aux::l_iter_tag tag;
     typedef forward_iterator_tag category;
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#if defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
     typedef na type;
     typedef l_iter next;
 #endif
 };
 
-BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, l_iter)
+NDNBOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, l_iter)
 
 }}
 
-#endif // BOOST_MPL_LIST_AUX_ITERATOR_HPP_INCLUDED
+#endif // NDNBOOST_MPL_LIST_AUX_ITERATOR_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/list/aux_/numbered.hpp b/include/ndnboost/mpl/list/aux_/numbered.hpp
index 052c368..15c642e 100644
--- a/include/ndnboost/mpl/list/aux_/numbered.hpp
+++ b/include/ndnboost/mpl/list/aux_/numbered.hpp
@@ -14,19 +14,19 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if defined(BOOST_PP_IS_ITERATING)
+#if defined(NDNBOOST_PP_IS_ITERATING)
 
 #include <ndnboost/preprocessor/enum_params.hpp>
 #include <ndnboost/preprocessor/enum_shifted_params.hpp>
 #include <ndnboost/preprocessor/dec.hpp>
 #include <ndnboost/preprocessor/cat.hpp>
 
-#define i BOOST_PP_FRAME_ITERATION(1)
+#define i NDNBOOST_PP_FRAME_ITERATION(1)
 
 #if i == 1
 
 template<
-      BOOST_PP_ENUM_PARAMS(i, typename T)
+      NDNBOOST_PP_ENUM_PARAMS(i, typename T)
     >
 struct list1
     : l_item<
@@ -41,22 +41,22 @@
 #else
 
 #   define MPL_AUX_LIST_TAIL(list, i, T) \
-    BOOST_PP_CAT(list,BOOST_PP_DEC(i))< \
-      BOOST_PP_ENUM_SHIFTED_PARAMS(i, T) \
+    NDNBOOST_PP_CAT(list,NDNBOOST_PP_DEC(i))< \
+      NDNBOOST_PP_ENUM_SHIFTED_PARAMS(i, T) \
     > \
     /**/
     
 template<
-      BOOST_PP_ENUM_PARAMS(i, typename T)
+      NDNBOOST_PP_ENUM_PARAMS(i, typename T)
     >
-struct BOOST_PP_CAT(list,i)
+struct NDNBOOST_PP_CAT(list,i)
     : l_item<
           long_<i>
         , T0
         , MPL_AUX_LIST_TAIL(list,i,T)
         >
 {
-    typedef BOOST_PP_CAT(list,i) type;
+    typedef NDNBOOST_PP_CAT(list,i) type;
 };
 
 #   undef MPL_AUX_LIST_TAIL
@@ -65,4 +65,4 @@
 
 #undef i
 
-#endif // BOOST_PP_IS_ITERATING
+#endif // NDNBOOST_PP_IS_ITERATING
diff --git a/include/ndnboost/mpl/list/aux_/numbered_c.hpp b/include/ndnboost/mpl/list/aux_/numbered_c.hpp
index 7126440..dc8fd63 100644
--- a/include/ndnboost/mpl/list/aux_/numbered_c.hpp
+++ b/include/ndnboost/mpl/list/aux_/numbered_c.hpp
@@ -13,20 +13,20 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if defined(BOOST_PP_IS_ITERATING)
+#if defined(NDNBOOST_PP_IS_ITERATING)
 
 #include <ndnboost/preprocessor/enum_params.hpp>
 #include <ndnboost/preprocessor/enum_shifted_params.hpp>
 #include <ndnboost/preprocessor/dec.hpp>
 #include <ndnboost/preprocessor/cat.hpp>
 
-#define i BOOST_PP_FRAME_ITERATION(1)
+#define i NDNBOOST_PP_FRAME_ITERATION(1)
 
 #if i == 1
 
 template<
       typename T
-    , BOOST_PP_ENUM_PARAMS(i, T C)
+    , NDNBOOST_PP_ENUM_PARAMS(i, T C)
     >
 struct list1_c
     : l_item<
@@ -42,23 +42,23 @@
 #else
 
 #   define MPL_AUX_LIST_C_TAIL(list, i, C) \
-    BOOST_PP_CAT(BOOST_PP_CAT(list,BOOST_PP_DEC(i)),_c)<T, \
-      BOOST_PP_ENUM_SHIFTED_PARAMS(i, C) \
+    NDNBOOST_PP_CAT(NDNBOOST_PP_CAT(list,NDNBOOST_PP_DEC(i)),_c)<T, \
+      NDNBOOST_PP_ENUM_SHIFTED_PARAMS(i, C) \
     > \
     /**/
     
 template<
       typename T
-    , BOOST_PP_ENUM_PARAMS(i, T C)
+    , NDNBOOST_PP_ENUM_PARAMS(i, T C)
     >
-struct BOOST_PP_CAT(BOOST_PP_CAT(list,i),_c)
+struct NDNBOOST_PP_CAT(NDNBOOST_PP_CAT(list,i),_c)
     : l_item<
           long_<i>
         , integral_c<T,C0>
         , MPL_AUX_LIST_C_TAIL(list,i,C)
         >
 {
-    typedef BOOST_PP_CAT(BOOST_PP_CAT(list,i),_c) type;
+    typedef NDNBOOST_PP_CAT(NDNBOOST_PP_CAT(list,i),_c) type;
     typedef T value_type;
 };
 
@@ -68,4 +68,4 @@
 
 #undef i
 
-#endif // BOOST_PP_IS_ITERATING
+#endif // NDNBOOST_PP_IS_ITERATING
diff --git a/include/ndnboost/mpl/list/aux_/pop_front.hpp b/include/ndnboost/mpl/list/aux_/pop_front.hpp
index 27c2dae..b8d7444 100644
--- a/include/ndnboost/mpl/list/aux_/pop_front.hpp
+++ b/include/ndnboost/mpl/list/aux_/pop_front.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_LIST_AUX_POP_FRONT_HPP_INCLUDED
-#define BOOST_MPL_LIST_AUX_POP_FRONT_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_LIST_AUX_POP_FRONT_HPP_INCLUDED
+#define NDNBOOST_MPL_LIST_AUX_POP_FRONT_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -31,4 +31,4 @@
 
 }}
 
-#endif // BOOST_MPL_LIST_AUX_POP_FRONT_HPP_INCLUDED
+#endif // NDNBOOST_MPL_LIST_AUX_POP_FRONT_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/list/aux_/push_back.hpp b/include/ndnboost/mpl/list/aux_/push_back.hpp
index 41c2f9c..f82758c 100644
--- a/include/ndnboost/mpl/list/aux_/push_back.hpp
+++ b/include/ndnboost/mpl/list/aux_/push_back.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_LIST_AUX_PUSH_BACK_HPP_INCLUDED
-#define BOOST_MPL_LIST_AUX_PUSH_BACK_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_LIST_AUX_PUSH_BACK_HPP_INCLUDED
+#define NDNBOOST_MPL_LIST_AUX_PUSH_BACK_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -33,4 +33,4 @@
 
 }}
 
-#endif // BOOST_MPL_LIST_AUX_PUSH_BACK_HPP_INCLUDED
+#endif // NDNBOOST_MPL_LIST_AUX_PUSH_BACK_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/list/aux_/push_front.hpp b/include/ndnboost/mpl/list/aux_/push_front.hpp
index 9b0ed8c..2233882 100644
--- a/include/ndnboost/mpl/list/aux_/push_front.hpp
+++ b/include/ndnboost/mpl/list/aux_/push_front.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_LIST_AUX_PUSH_FRONT_HPP_INCLUDED
-#define BOOST_MPL_LIST_AUX_PUSH_FRONT_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_LIST_AUX_PUSH_FRONT_HPP_INCLUDED
+#define NDNBOOST_MPL_LIST_AUX_PUSH_FRONT_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -36,4 +36,4 @@
 
 }}
 
-#endif // BOOST_MPL_LIST_AUX_PUSH_FRONT_HPP_INCLUDED
+#endif // NDNBOOST_MPL_LIST_AUX_PUSH_FRONT_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/list/aux_/size.hpp b/include/ndnboost/mpl/list/aux_/size.hpp
index 8581584..5e9c5d1 100644
--- a/include/ndnboost/mpl/list/aux_/size.hpp
+++ b/include/ndnboost/mpl/list/aux_/size.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_LIST_AUX_SIZE_HPP_INCLUDED
-#define BOOST_MPL_LIST_AUX_SIZE_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_LIST_AUX_SIZE_HPP_INCLUDED
+#define NDNBOOST_MPL_LIST_AUX_SIZE_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -30,4 +30,4 @@
 
 }}
 
-#endif // BOOST_MPL_LIST_AUX_SIZE_HPP_INCLUDED
+#endif // NDNBOOST_MPL_LIST_AUX_SIZE_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/list/aux_/tag.hpp b/include/ndnboost/mpl/list/aux_/tag.hpp
index 2322a81..9ea53c2 100644
--- a/include/ndnboost/mpl/list/aux_/tag.hpp
+++ b/include/ndnboost/mpl/list/aux_/tag.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_LIST_AUX_TAG_HPP_INCLUDED
-#define BOOST_MPL_LIST_AUX_TAG_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_LIST_AUX_TAG_HPP_INCLUDED
+#define NDNBOOST_MPL_LIST_AUX_TAG_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -21,4 +21,4 @@
 
 }}}
 
-#endif // BOOST_MPL_LIST_AUX_TAG_HPP_INCLUDED
+#endif // NDNBOOST_MPL_LIST_AUX_TAG_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/list/list0.hpp b/include/ndnboost/mpl/list/list0.hpp
index 3cd88e7..4fae937 100644
--- a/include/ndnboost/mpl/list/list0.hpp
+++ b/include/ndnboost/mpl/list/list0.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_LIST_LIST0_HPP_INCLUDED
-#define BOOST_MPL_LIST_LIST0_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_LIST_LIST0_HPP_INCLUDED
+#define NDNBOOST_MPL_LIST_LIST0_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -39,4 +39,4 @@
 
 }}
 
-#endif // BOOST_MPL_LIST_LIST0_HPP_INCLUDED
+#endif // NDNBOOST_MPL_LIST_LIST0_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/list/list0_c.hpp b/include/ndnboost/mpl/list/list0_c.hpp
index 882436a..0761cab 100644
--- a/include/ndnboost/mpl/list/list0_c.hpp
+++ b/include/ndnboost/mpl/list/list0_c.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_LIST_LIST0_C_HPP_INCLUDED
-#define BOOST_MPL_LIST_LIST0_C_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_LIST_LIST0_C_HPP_INCLUDED
+#define NDNBOOST_MPL_LIST_LIST0_C_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -28,4 +28,4 @@
 
 }}
 
-#endif // BOOST_MPL_LIST_LIST0_C_HPP_INCLUDED
+#endif // NDNBOOST_MPL_LIST_LIST0_C_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/list/list10.hpp b/include/ndnboost/mpl/list/list10.hpp
index f78cf33..b8cc733 100644
--- a/include/ndnboost/mpl/list/list10.hpp
+++ b/include/ndnboost/mpl/list/list10.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_LIST_LIST10_HPP_INCLUDED
-#define BOOST_MPL_LIST_LIST10_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_LIST_LIST10_HPP_INCLUDED
+#define NDNBOOST_MPL_LIST_LIST10_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -14,16 +14,16 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/list/list0.hpp>
 #endif
 
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
-#   define BOOST_MPL_PREPROCESSED_HEADER list10.hpp
+#   define NDNBOOST_MPL_PREPROCESSED_HEADER list10.hpp
 #   include <ndnboost/mpl/list/aux_/include_preprocessed.hpp>
 
 #else
@@ -32,12 +32,12 @@
 
 namespace ndnboost { namespace mpl {
 
-#   define BOOST_PP_ITERATION_PARAMS_1 \
+#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
     (3,(1, 10, <ndnboost/mpl/list/aux_/numbered.hpp>))
-#   include BOOST_PP_ITERATE()
+#   include NDNBOOST_PP_ITERATE()
 
 }}
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
 
-#endif // BOOST_MPL_LIST_LIST10_HPP_INCLUDED
+#endif // NDNBOOST_MPL_LIST_LIST10_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/list/list10_c.hpp b/include/ndnboost/mpl/list/list10_c.hpp
index 86f3d89..b5975cf 100644
--- a/include/ndnboost/mpl/list/list10_c.hpp
+++ b/include/ndnboost/mpl/list/list10_c.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_LIST_LIST10_C_HPP_INCLUDED
-#define BOOST_MPL_LIST_LIST10_C_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_LIST_LIST10_C_HPP_INCLUDED
+#define NDNBOOST_MPL_LIST_LIST10_C_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -14,16 +14,16 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/list/list0_c.hpp>
 #endif
 
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+ && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
-#   define BOOST_MPL_PREPROCESSED_HEADER list10_c.hpp
+#   define NDNBOOST_MPL_PREPROCESSED_HEADER list10_c.hpp
 #   include <ndnboost/mpl/list/aux_/include_preprocessed.hpp>
 
 #else
@@ -32,12 +32,12 @@
 
 namespace ndnboost { namespace mpl {
 
-#   define BOOST_PP_ITERATION_PARAMS_1 \
+#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
     (3,(1, 10, <ndnboost/mpl/list/aux_/numbered_c.hpp>))
-#   include BOOST_PP_ITERATE()
+#   include NDNBOOST_PP_ITERATE()
 
 }}
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
 
-#endif // BOOST_MPL_LIST_LIST10_C_HPP_INCLUDED
+#endif // NDNBOOST_MPL_LIST_LIST10_C_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/list/list20.hpp b/include/ndnboost/mpl/list/list20.hpp
index a9dd822..3817e54 100644
--- a/include/ndnboost/mpl/list/list20.hpp
+++ b/include/ndnboost/mpl/list/list20.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_LIST_LIST20_HPP_INCLUDED
-#define BOOST_MPL_LIST_LIST20_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_LIST_LIST20_HPP_INCLUDED
+#define NDNBOOST_MPL_LIST_LIST20_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -14,16 +14,16 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/list/list10.hpp>
 #endif
 
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+ && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
-#   define BOOST_MPL_PREPROCESSED_HEADER list20.hpp
+#   define NDNBOOST_MPL_PREPROCESSED_HEADER list20.hpp
 #   include <ndnboost/mpl/list/aux_/include_preprocessed.hpp>
 
 #else
@@ -32,12 +32,12 @@
 
 namespace ndnboost { namespace mpl {
 
-#   define BOOST_PP_ITERATION_PARAMS_1 \
+#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
     (3,(11, 20, <ndnboost/mpl/list/aux_/numbered.hpp>))
-#   include BOOST_PP_ITERATE()
+#   include NDNBOOST_PP_ITERATE()
 
 }}
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
 
-#endif // BOOST_MPL_LIST_LIST20_HPP_INCLUDED
+#endif // NDNBOOST_MPL_LIST_LIST20_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/list/list20_c.hpp b/include/ndnboost/mpl/list/list20_c.hpp
index deb2125..c267b5f 100644
--- a/include/ndnboost/mpl/list/list20_c.hpp
+++ b/include/ndnboost/mpl/list/list20_c.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_LIST_LIST20_C_HPP_INCLUDED
-#define BOOST_MPL_LIST_LIST20_C_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_LIST_LIST20_C_HPP_INCLUDED
+#define NDNBOOST_MPL_LIST_LIST20_C_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -14,16 +14,16 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/list/list10_c.hpp>
 #endif
 
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+ && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
-#   define BOOST_MPL_PREPROCESSED_HEADER list20_c.hpp
+#   define NDNBOOST_MPL_PREPROCESSED_HEADER list20_c.hpp
 #   include <ndnboost/mpl/list/aux_/include_preprocessed.hpp>
 
 #else
@@ -32,12 +32,12 @@
 
 namespace ndnboost { namespace mpl {
 
-#   define BOOST_PP_ITERATION_PARAMS_1 \
+#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
     (3,(11, 20, <ndnboost/mpl/list/aux_/numbered_c.hpp>))
-#   include BOOST_PP_ITERATE()
+#   include NDNBOOST_PP_ITERATE()
 
 }}
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
 
-#endif // BOOST_MPL_LIST_LIST20_C_HPP_INCLUDED
+#endif // NDNBOOST_MPL_LIST_LIST20_C_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/list/list30.hpp b/include/ndnboost/mpl/list/list30.hpp
index eaade39..97c73a3 100644
--- a/include/ndnboost/mpl/list/list30.hpp
+++ b/include/ndnboost/mpl/list/list30.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_LIST_LIST30_HPP_INCLUDED
-#define BOOST_MPL_LIST_LIST30_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_LIST_LIST30_HPP_INCLUDED
+#define NDNBOOST_MPL_LIST_LIST30_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -14,16 +14,16 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/list/list20.hpp>
 #endif
 
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+ && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
-#   define BOOST_MPL_PREPROCESSED_HEADER list30.hpp
+#   define NDNBOOST_MPL_PREPROCESSED_HEADER list30.hpp
 #   include <ndnboost/mpl/list/aux_/include_preprocessed.hpp>
 
 #else
@@ -32,12 +32,12 @@
 
 namespace ndnboost { namespace mpl {
 
-#   define BOOST_PP_ITERATION_PARAMS_1 \
+#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
     (3,(21, 30, <ndnboost/mpl/list/aux_/numbered.hpp>))
-#   include BOOST_PP_ITERATE()
+#   include NDNBOOST_PP_ITERATE()
 
 }}
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
 
-#endif // BOOST_MPL_LIST_LIST30_HPP_INCLUDED
+#endif // NDNBOOST_MPL_LIST_LIST30_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/list/list30_c.hpp b/include/ndnboost/mpl/list/list30_c.hpp
index 6f9aa3c..fe865fd 100644
--- a/include/ndnboost/mpl/list/list30_c.hpp
+++ b/include/ndnboost/mpl/list/list30_c.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_LIST_LIST30_C_HPP_INCLUDED
-#define BOOST_MPL_LIST_LIST30_C_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_LIST_LIST30_C_HPP_INCLUDED
+#define NDNBOOST_MPL_LIST_LIST30_C_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -14,16 +14,16 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/list/list20_c.hpp>
 #endif
 
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+ && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
-#   define BOOST_MPL_PREPROCESSED_HEADER list30_c.hpp
+#   define NDNBOOST_MPL_PREPROCESSED_HEADER list30_c.hpp
 #   include <ndnboost/mpl/list/aux_/include_preprocessed.hpp>
 
 #else
@@ -32,12 +32,12 @@
 
 namespace ndnboost { namespace mpl {
 
-#   define BOOST_PP_ITERATION_PARAMS_1 \
+#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
     (3,(21, 30, <ndnboost/mpl/list/aux_/numbered_c.hpp>))
-#   include BOOST_PP_ITERATE()
+#   include NDNBOOST_PP_ITERATE()
 
 }}
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
 
-#endif // BOOST_MPL_LIST_LIST30_C_HPP_INCLUDED
+#endif // NDNBOOST_MPL_LIST_LIST30_C_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/list/list40.hpp b/include/ndnboost/mpl/list/list40.hpp
index 1cc4511..c1a1dec 100644
--- a/include/ndnboost/mpl/list/list40.hpp
+++ b/include/ndnboost/mpl/list/list40.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_LIST_LIST40_HPP_INCLUDED
-#define BOOST_MPL_LIST_LIST40_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_LIST_LIST40_HPP_INCLUDED
+#define NDNBOOST_MPL_LIST_LIST40_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -14,16 +14,16 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/list/list30.hpp>
 #endif
 
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+ && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
-#   define BOOST_MPL_PREPROCESSED_HEADER list40.hpp
+#   define NDNBOOST_MPL_PREPROCESSED_HEADER list40.hpp
 #   include <ndnboost/mpl/list/aux_/include_preprocessed.hpp>
 
 #else
@@ -32,12 +32,12 @@
 
 namespace ndnboost { namespace mpl {
 
-#   define BOOST_PP_ITERATION_PARAMS_1 \
+#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
     (3,(31, 40, <ndnboost/mpl/list/aux_/numbered.hpp>))
-#   include BOOST_PP_ITERATE()
+#   include NDNBOOST_PP_ITERATE()
 
 }}
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
 
-#endif // BOOST_MPL_LIST_LIST40_HPP_INCLUDED
+#endif // NDNBOOST_MPL_LIST_LIST40_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/list/list40_c.hpp b/include/ndnboost/mpl/list/list40_c.hpp
index 0bea21d..2e14c3c 100644
--- a/include/ndnboost/mpl/list/list40_c.hpp
+++ b/include/ndnboost/mpl/list/list40_c.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_LIST_LIST40_C_HPP_INCLUDED
-#define BOOST_MPL_LIST_LIST40_C_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_LIST_LIST40_C_HPP_INCLUDED
+#define NDNBOOST_MPL_LIST_LIST40_C_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -14,16 +14,16 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/list/list30_c.hpp>
 #endif
 
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+ && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
-#   define BOOST_MPL_PREPROCESSED_HEADER list40_c.hpp
+#   define NDNBOOST_MPL_PREPROCESSED_HEADER list40_c.hpp
 #   include <ndnboost/mpl/list/aux_/include_preprocessed.hpp>
 
 #else
@@ -32,12 +32,12 @@
 
 namespace ndnboost { namespace mpl {
 
-#   define BOOST_PP_ITERATION_PARAMS_1 \
+#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
     (3,(31, 40, <ndnboost/mpl/list/aux_/numbered_c.hpp>))
-#   include BOOST_PP_ITERATE()
+#   include NDNBOOST_PP_ITERATE()
 
 }}
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
 
-#endif // BOOST_MPL_LIST_LIST40_C_HPP_INCLUDED
+#endif // NDNBOOST_MPL_LIST_LIST40_C_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/list/list50.hpp b/include/ndnboost/mpl/list/list50.hpp
index 5850c5a..9bd00b5 100644
--- a/include/ndnboost/mpl/list/list50.hpp
+++ b/include/ndnboost/mpl/list/list50.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_LIST_LIST50_HPP_INCLUDED
-#define BOOST_MPL_LIST_LIST50_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_LIST_LIST50_HPP_INCLUDED
+#define NDNBOOST_MPL_LIST_LIST50_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -14,16 +14,16 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/list/list40.hpp>
 #endif
 
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+ && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
-#   define BOOST_MPL_PREPROCESSED_HEADER list50.hpp
+#   define NDNBOOST_MPL_PREPROCESSED_HEADER list50.hpp
 #   include <ndnboost/mpl/list/aux_/include_preprocessed.hpp>
 
 #else
@@ -32,12 +32,12 @@
 
 namespace ndnboost { namespace mpl {
 
-#   define BOOST_PP_ITERATION_PARAMS_1 \
+#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
     (3,(41, 50, <ndnboost/mpl/list/aux_/numbered.hpp>))
-#   include BOOST_PP_ITERATE()
+#   include NDNBOOST_PP_ITERATE()
 
 }}
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
 
-#endif // BOOST_MPL_LIST_LIST50_HPP_INCLUDED
+#endif // NDNBOOST_MPL_LIST_LIST50_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/list/list50_c.hpp b/include/ndnboost/mpl/list/list50_c.hpp
index 12142f8..b784db6 100644
--- a/include/ndnboost/mpl/list/list50_c.hpp
+++ b/include/ndnboost/mpl/list/list50_c.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_LIST_LIST50_C_HPP_INCLUDED
-#define BOOST_MPL_LIST_LIST50_C_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_LIST_LIST50_C_HPP_INCLUDED
+#define NDNBOOST_MPL_LIST_LIST50_C_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -14,16 +14,16 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/list/list40_c.hpp>
 #endif
 
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+ && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
-#   define BOOST_MPL_PREPROCESSED_HEADER list50_c.hpp
+#   define NDNBOOST_MPL_PREPROCESSED_HEADER list50_c.hpp
 #   include <ndnboost/mpl/list/aux_/include_preprocessed.hpp>
 
 #else
@@ -32,12 +32,12 @@
 
 namespace ndnboost { namespace mpl {
 
-#   define BOOST_PP_ITERATION_PARAMS_1 \
+#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
     (3,(41, 50, <ndnboost/mpl/list/aux_/numbered_c.hpp>))
-#   include BOOST_PP_ITERATE()
+#   include NDNBOOST_PP_ITERATE()
 
 }}
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
 
-#endif // BOOST_MPL_LIST_LIST50_C_HPP_INCLUDED
+#endif // NDNBOOST_MPL_LIST_LIST50_C_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/logical.hpp b/include/ndnboost/mpl/logical.hpp
index 8d6789f..5c436c8 100644
--- a/include/ndnboost/mpl/logical.hpp
+++ b/include/ndnboost/mpl/logical.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_LOGICAL_HPP_INCLUDED
-#define BOOST_MPL_LOGICAL_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_LOGICAL_HPP_INCLUDED
+#define NDNBOOST_MPL_LOGICAL_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -18,4 +18,4 @@
 #include <ndnboost/mpl/and.hpp>
 #include <ndnboost/mpl/not.hpp>
 
-#endif // BOOST_MPL_LOGICAL_HPP_INCLUDED
+#endif // NDNBOOST_MPL_LOGICAL_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/long.hpp b/include/ndnboost/mpl/long.hpp
index 3545140..4b70b49 100644
--- a/include/ndnboost/mpl/long.hpp
+++ b/include/ndnboost/mpl/long.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_LONG_HPP_INCLUDED
-#define BOOST_MPL_LONG_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_LONG_HPP_INCLUDED
+#define NDNBOOST_MPL_LONG_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -19,4 +19,4 @@
 #define AUX_WRAPPER_VALUE_TYPE long
 #include <ndnboost/mpl/aux_/integral_wrapper.hpp>
 
-#endif // BOOST_MPL_LONG_HPP_INCLUDED
+#endif // NDNBOOST_MPL_LONG_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/long_fwd.hpp b/include/ndnboost/mpl/long_fwd.hpp
index 5247bc3..adcdada 100644
--- a/include/ndnboost/mpl/long_fwd.hpp
+++ b/include/ndnboost/mpl/long_fwd.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_LONG_FWD_HPP_INCLUDED
-#define BOOST_MPL_LONG_FWD_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_LONG_FWD_HPP_INCLUDED
+#define NDNBOOST_MPL_LONG_FWD_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -17,11 +17,11 @@
 #include <ndnboost/mpl/aux_/adl_barrier.hpp>
 #include <ndnboost/mpl/aux_/nttp_decl.hpp>
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 
-template< BOOST_MPL_AUX_NTTP_DECL(long, N) > struct long_;
+template< NDNBOOST_MPL_AUX_NTTP_DECL(long, N) > struct long_;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-BOOST_MPL_AUX_ADL_BARRIER_DECL(long_)
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_DECL(long_)
 
-#endif // BOOST_MPL_LONG_FWD_HPP_INCLUDED
+#endif // NDNBOOST_MPL_LONG_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/minus.hpp b/include/ndnboost/mpl/minus.hpp
index 0b4b5b4..a765cb7 100644
--- a/include/ndnboost/mpl/minus.hpp
+++ b/include/ndnboost/mpl/minus.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_MINUS_HPP_INCLUDED
-#define BOOST_MPL_MINUS_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_MINUS_HPP_INCLUDED
+#define NDNBOOST_MPL_MINUS_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -18,4 +18,4 @@
 #define AUX778076_OP_TOKEN -
 #include <ndnboost/mpl/aux_/arithmetic_op.hpp>
 
-#endif // BOOST_MPL_MINUS_HPP_INCLUDED
+#endif // NDNBOOST_MPL_MINUS_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/multiplies.hpp b/include/ndnboost/mpl/multiplies.hpp
index 1855708..ab06d77 100644
--- a/include/ndnboost/mpl/multiplies.hpp
+++ b/include/ndnboost/mpl/multiplies.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_MULTIPLIES_HPP_INCLUDED
-#define BOOST_MPL_MULTIPLIES_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_MULTIPLIES_HPP_INCLUDED
+#define NDNBOOST_MPL_MULTIPLIES_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -25,29 +25,29 @@
 
 namespace ndnboost { namespace mpl {
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-#   define AUX778076_OP_ARITY BOOST_MPL_LIMIT_METAFUNCTION_ARITY
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#   define AUX778076_OP_ARITY NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY
 #else
 #   define AUX778076_OP_ARITY 2
 #endif
 
 template<
-      BOOST_MPL_PP_DEFAULT_PARAMS(AUX778076_OP_ARITY, typename N, na)
+      NDNBOOST_MPL_PP_DEFAULT_PARAMS(AUX778076_OP_ARITY, typename N, na)
     >
 struct multiplies
-    : times< BOOST_MPL_PP_PARAMS(AUX778076_OP_ARITY, N) >
+    : times< NDNBOOST_MPL_PP_PARAMS(AUX778076_OP_ARITY, N) >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
           AUX778076_OP_ARITY
         , multiplies
-        , ( BOOST_MPL_PP_PARAMS(AUX778076_OP_ARITY, N) )
+        , ( NDNBOOST_MPL_PP_PARAMS(AUX778076_OP_ARITY, N) )
         )
 };
 
-BOOST_MPL_AUX_NA_SPEC(AUX778076_OP_ARITY, multiplies)
+NDNBOOST_MPL_AUX_NA_SPEC(AUX778076_OP_ARITY, multiplies)
 
 #undef AUX778076_OP_ARITY
 
 }}
 
-#endif // BOOST_MPL_MULTIPLIES_HPP_INCLUDED
+#endif // NDNBOOST_MPL_MULTIPLIES_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/negate.hpp b/include/ndnboost/mpl/negate.hpp
index a4e550d..e8b9acc 100644
--- a/include/ndnboost/mpl/negate.hpp
+++ b/include/ndnboost/mpl/negate.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_NEGATE_HPP_INCLUDED
-#define BOOST_MPL_NEGATE_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_NEGATE_HPP_INCLUDED
+#define NDNBOOST_MPL_NEGATE_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -32,10 +32,10 @@
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(N)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(N)
     >
 struct negate
-#if !defined(BOOST_MPL_CFG_MSVC_ETI_BUG)
+#if !defined(NDNBOOST_MPL_CFG_MSVC_ETI_BUG)
     : negate_impl<
           typename negate_tag<N>::type
         >::template apply<N>::type
@@ -46,17 +46,17 @@
         >::type >::type
 #endif
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1, negate, (N))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1, negate, (N))
 };
 
-BOOST_MPL_AUX_NA_SPEC(1, negate)
+NDNBOOST_MPL_AUX_NA_SPEC(1, negate)
 
 
-#if defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC)
+#if defined(NDNBOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC)
 namespace aux {
 template< typename T, T n > struct negate_wknd
 {
-    BOOST_STATIC_CONSTANT(T, value = -n);
+    NDNBOOST_STATIC_CONSTANT(T, value = -n);
     typedef integral_c<T,value> type;
 };
 }
@@ -65,7 +65,7 @@
 template<>
 struct negate_impl<integral_c_tag>
 {
-#if defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC)
+#if defined(NDNBOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC)
     template< typename N > struct apply
         : aux::negate_wknd< typename N::value_type, N::value >
 #else
@@ -78,4 +78,4 @@
 
 }}
 
-#endif // BOOST_MPL_NEGATE_HPP_INCLUDED
+#endif // NDNBOOST_MPL_NEGATE_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/next.hpp b/include/ndnboost/mpl/next.hpp
index 9a9f0ef..99c4c99 100644
--- a/include/ndnboost/mpl/next.hpp
+++ b/include/ndnboost/mpl/next.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_NEXT_HPP_INCLUDED
-#define BOOST_MPL_NEXT_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_NEXT_HPP_INCLUDED
+#define NDNBOOST_MPL_NEXT_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2004
 //
@@ -16,4 +16,4 @@
 
 #include <ndnboost/mpl/next_prior.hpp>
 
-#endif // BOOST_MPL_NEXT_HPP_INCLUDED
+#endif // NDNBOOST_MPL_NEXT_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/next_prior.hpp b/include/ndnboost/mpl/next_prior.hpp
index 4893533a..e1902c7 100644
--- a/include/ndnboost/mpl/next_prior.hpp
+++ b/include/ndnboost/mpl/next_prior.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_NEXT_PRIOR_HPP_INCLUDED
-#define BOOST_MPL_NEXT_PRIOR_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_NEXT_PRIOR_HPP_INCLUDED
+#define NDNBOOST_MPL_NEXT_PRIOR_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -20,30 +20,30 @@
 
 namespace ndnboost { namespace mpl {
 
-BOOST_MPL_AUX_COMMON_NAME_WKND(next)
-BOOST_MPL_AUX_COMMON_NAME_WKND(prior)
+NDNBOOST_MPL_AUX_COMMON_NAME_WKND(next)
+NDNBOOST_MPL_AUX_COMMON_NAME_WKND(prior)
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T)
     >
 struct next
 {
     typedef typename T::next type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,next,(T))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,next,(T))
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T)
     >
 struct prior
 {
     typedef typename T::prior type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,prior,(T))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,prior,(T))
 };
 
-BOOST_MPL_AUX_NA_SPEC(1, next)
-BOOST_MPL_AUX_NA_SPEC(1, prior)
+NDNBOOST_MPL_AUX_NA_SPEC(1, next)
+NDNBOOST_MPL_AUX_NA_SPEC(1, prior)
 
 }}
 
-#endif // BOOST_MPL_NEXT_PRIOR_HPP_INCLUDED
+#endif // NDNBOOST_MPL_NEXT_PRIOR_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/not.hpp b/include/ndnboost/mpl/not.hpp
index bc3f1ab..2612a95 100644
--- a/include/ndnboost/mpl/not.hpp
+++ b/include/ndnboost/mpl/not.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_NOT_HPP_INCLUDED
-#define BOOST_MPL_NOT_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_NOT_HPP_INCLUDED
+#define NDNBOOST_MPL_NOT_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -24,7 +24,7 @@
 
 namespace aux {
 
-template< BOOST_MPL_AUX_NTTP_DECL(long, C_) > // 'long' is intentional here
+template< NDNBOOST_MPL_AUX_NTTP_DECL(long, C_) > // 'long' is intentional here
 struct not_impl
     : bool_<!C_>
 {
@@ -34,18 +34,18 @@
 
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T)
     >
 struct not_
     : aux::not_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T)::value
+          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T)::value
         >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,not_,(T))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,not_,(T))
 };
 
-BOOST_MPL_AUX_NA_SPEC(1,not_)
+NDNBOOST_MPL_AUX_NA_SPEC(1,not_)
 
 }}
 
-#endif // BOOST_MPL_NOT_HPP_INCLUDED
+#endif // NDNBOOST_MPL_NOT_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/not_equal_to.hpp b/include/ndnboost/mpl/not_equal_to.hpp
index 3698bf6..074af8a 100644
--- a/include/ndnboost/mpl/not_equal_to.hpp
+++ b/include/ndnboost/mpl/not_equal_to.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_NOT_EQUAL_TO_HPP_INCLUDED
-#define BOOST_MPL_NOT_EQUAL_TO_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_NOT_EQUAL_TO_HPP_INCLUDED
+#define NDNBOOST_MPL_NOT_EQUAL_TO_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -18,4 +18,4 @@
 #define AUX778076_OP_TOKEN !=
 #include <ndnboost/mpl/aux_/comparison_op.hpp>
 
-#endif // BOOST_MPL_NOT_EQUAL_TO_HPP_INCLUDED
+#endif // NDNBOOST_MPL_NOT_EQUAL_TO_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/numeric_cast.hpp b/include/ndnboost/mpl/numeric_cast.hpp
index 603bf75..1bf4abf 100644
--- a/include/ndnboost/mpl/numeric_cast.hpp
+++ b/include/ndnboost/mpl/numeric_cast.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_NUMERIC_CAST_HPP_INCLUDED
-#define BOOST_MPL_NUMERIC_CAST_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_NUMERIC_CAST_HPP_INCLUDED
+#define NDNBOOST_MPL_NUMERIC_CAST_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2003-2004
 //
@@ -21,21 +21,21 @@
 // resolves conflicts with 'ndnboost::numeric_cast' function template.
 // use it in your own code _only_ if you care about compatibility with
 // these outdated compilers!
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x570) )
-#   define BOOST_MPL_AUX_NUMERIC_CAST numeric_cast_
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) || NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x570) )
+#   define NDNBOOST_MPL_AUX_NUMERIC_CAST numeric_cast_
 #else
-#   define BOOST_MPL_AUX_NUMERIC_CAST numeric_cast
+#   define NDNBOOST_MPL_AUX_NUMERIC_CAST numeric_cast
 #endif
 
 namespace ndnboost { namespace mpl {
 
 // no default implementation; the definition is needed to make MSVC happy
 
-template< typename SourceTag, typename TargetTag > struct BOOST_MPL_AUX_NUMERIC_CAST
+template< typename SourceTag, typename TargetTag > struct NDNBOOST_MPL_AUX_NUMERIC_CAST
 {
     template< typename N > struct apply;
 };
 
 }}
 
-#endif // BOOST_MPL_NUMERIC_CAST_HPP_INCLUDED
+#endif // NDNBOOST_MPL_NUMERIC_CAST_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/or.hpp b/include/ndnboost/mpl/or.hpp
index b5116d9..d35db4d 100644
--- a/include/ndnboost/mpl/or.hpp
+++ b/include/ndnboost/mpl/or.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_OR_HPP_INCLUDED
-#define BOOST_MPL_OR_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_OR_HPP_INCLUDED
+#define NDNBOOST_MPL_OR_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -16,8 +16,8 @@
 
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
 #   include <ndnboost/mpl/bool.hpp>
 #   include <ndnboost/mpl/aux_/nested_type_wknd.hpp>
@@ -39,7 +39,7 @@
 #endif
 #endif
 
-#   define BOOST_MPL_PREPROCESSED_HEADER or.hpp
+#   define NDNBOOST_MPL_PREPROCESSED_HEADER or.hpp
 #   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
 
 #if defined(_MSC_VER) 
@@ -57,5 +57,5 @@
 #   define AUX778076_OP_VALUE2 false
 #   include <ndnboost/mpl/aux_/logical_op.hpp>
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_OR_HPP_INCLUDED
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_OR_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/pair.hpp b/include/ndnboost/mpl/pair.hpp
index b58c0bd..3c295c5 100644
--- a/include/ndnboost/mpl/pair.hpp
+++ b/include/ndnboost/mpl/pair.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_PAIR_HPP_INCLUDED
-#define BOOST_MPL_PAIR_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_PAIR_HPP_INCLUDED
+#define NDNBOOST_MPL_PAIR_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2001-2004
 //
@@ -22,8 +22,8 @@
 namespace ndnboost { namespace mpl {
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
     >
 struct pair
 {
@@ -31,40 +31,40 @@
     typedef T1 first;
     typedef T2 second;
 
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2,pair,(T1,T2))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2,pair,(T1,T2))
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(P)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(P)
     >
 struct first
 {
-#if !defined(BOOST_MPL_CFG_MSVC_70_ETI_BUG)
+#if !defined(NDNBOOST_MPL_CFG_MSVC_70_ETI_BUG)
     typedef typename P::first type;
 #else
     typedef typename aux::msvc_eti_base<P>::first type;
 #endif
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,first,(P))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,first,(P))
 };
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(P)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(P)
     >
 struct second
 {
-#if !defined(BOOST_MPL_CFG_MSVC_70_ETI_BUG)
+#if !defined(NDNBOOST_MPL_CFG_MSVC_70_ETI_BUG)
     typedef typename P::second type;
 #else
     typedef typename aux::msvc_eti_base<P>::second type;
 #endif
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,second,(P))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,second,(P))
 };
 
 
-BOOST_MPL_AUX_NA_SPEC_NO_ETI(2, pair)
-BOOST_MPL_AUX_NA_SPEC(1, first)
-BOOST_MPL_AUX_NA_SPEC(1, second)
+NDNBOOST_MPL_AUX_NA_SPEC_NO_ETI(2, pair)
+NDNBOOST_MPL_AUX_NA_SPEC(1, first)
+NDNBOOST_MPL_AUX_NA_SPEC(1, second)
 
 }}
 
-#endif // BOOST_MPL_PAIR_HPP_INCLUDED
+#endif // NDNBOOST_MPL_PAIR_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/placeholders.hpp b/include/ndnboost/mpl/placeholders.hpp
index 86f8e09..0444d8a 100644
--- a/include/ndnboost/mpl/placeholders.hpp
+++ b/include/ndnboost/mpl/placeholders.hpp
@@ -1,10 +1,10 @@
 
-#if !defined(BOOST_PP_IS_ITERATING)
+#if !defined(NDNBOOST_PP_IS_ITERATING)
 
 ///// header body
 
-#ifndef BOOST_MPL_PLACEHOLDERS_HPP_INCLUDED
-#define BOOST_MPL_PLACEHOLDERS_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_PLACEHOLDERS_HPP_INCLUDED
+#define NDNBOOST_MPL_PLACEHOLDERS_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2001-2004
 // Copyright Peter Dimov 2001-2003
@@ -20,26 +20,26 @@
 // $Revision: 49267 $
 
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/arg.hpp>
 #   include <ndnboost/mpl/aux_/adl_barrier.hpp>
 
-#   if !defined(BOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE)
-#       define BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(type) \
-        using ::BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::type; \
+#   if !defined(NDNBOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE)
+#       define NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(type) \
+        using ::NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::type; \
         /**/
 #   else
-#       define BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(type) /**/
+#       define NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(type) /**/
 #   endif
 
 #endif
 
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+ && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
-#   define BOOST_MPL_PREPROCESSED_HEADER placeholders.hpp
+#   define NDNBOOST_MPL_PREPROCESSED_HEADER placeholders.hpp
 #   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
 
 #else
@@ -50,17 +50,17 @@
 #   include <ndnboost/preprocessor/cat.hpp>
 
 // watch out for GNU gettext users, who #define _(x)
-#if !defined(_) || defined(BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT)
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+#if !defined(_) || defined(NDNBOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT)
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 typedef arg<-1> _;
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 
 namespace ndnboost { namespace mpl { 
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
 }
 
 }}
@@ -68,33 +68,33 @@
 
 /// agurt, 17/mar/02: one more placeholder for the last 'apply#' 
 /// specialization
-#define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(1, BOOST_MPL_LIMIT_METAFUNCTION_ARITY + 1, <ndnboost/mpl/placeholders.hpp>))
-#include BOOST_PP_ITERATE()
+#define NDNBOOST_PP_ITERATION_PARAMS_1 \
+    (3,(1, NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY + 1, <ndnboost/mpl/placeholders.hpp>))
+#include NDNBOOST_PP_ITERATE()
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_PLACEHOLDERS_HPP_INCLUDED
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_PLACEHOLDERS_HPP_INCLUDED
 
 ///// iteration
 
 #else
-#define i_ BOOST_PP_FRAME_ITERATION(1)
+#define i_ NDNBOOST_PP_FRAME_ITERATION(1)
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 
-typedef arg<i_> BOOST_PP_CAT(_,i_);
+typedef arg<i_> NDNBOOST_PP_CAT(_,i_);
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 
 namespace ndnboost { namespace mpl { 
 
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(BOOST_PP_CAT(_,i_))
+NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(NDNBOOST_PP_CAT(_,i_))
 
 namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::BOOST_PP_CAT(_,i_);
+using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::NDNBOOST_PP_CAT(_,i_);
 }
 
 }}
 
 #undef i_
-#endif // BOOST_PP_IS_ITERATING
+#endif // NDNBOOST_PP_IS_ITERATING
diff --git a/include/ndnboost/mpl/plus.hpp b/include/ndnboost/mpl/plus.hpp
index 5ce534d..2265cfa 100644
--- a/include/ndnboost/mpl/plus.hpp
+++ b/include/ndnboost/mpl/plus.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_PLUS_HPP_INCLUDED
-#define BOOST_MPL_PLUS_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_PLUS_HPP_INCLUDED
+#define NDNBOOST_MPL_PLUS_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -18,4 +18,4 @@
 #define AUX778076_OP_TOKEN +
 #include <ndnboost/mpl/aux_/arithmetic_op.hpp>
 
-#endif // BOOST_MPL_PLUS_HPP_INCLUDED
+#endif // NDNBOOST_MPL_PLUS_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/pop_back_fwd.hpp b/include/ndnboost/mpl/pop_back_fwd.hpp
index 6a2278a..f3e9451 100644
--- a/include/ndnboost/mpl/pop_back_fwd.hpp
+++ b/include/ndnboost/mpl/pop_back_fwd.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_POP_BACK_FWD_HPP_INCLUDED
-#define BOOST_MPL_POP_BACK_FWD_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_POP_BACK_FWD_HPP_INCLUDED
+#define NDNBOOST_MPL_POP_BACK_FWD_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -21,4 +21,4 @@
 
 }}
 
-#endif // BOOST_MPL_POP_BACK_FWD_HPP_INCLUDED
+#endif // NDNBOOST_MPL_POP_BACK_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/pop_front_fwd.hpp b/include/ndnboost/mpl/pop_front_fwd.hpp
index cf5ab2b..f41205b 100644
--- a/include/ndnboost/mpl/pop_front_fwd.hpp
+++ b/include/ndnboost/mpl/pop_front_fwd.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_POP_FRONT_FWD_HPP_INCLUDED
-#define BOOST_MPL_POP_FRONT_FWD_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_POP_FRONT_FWD_HPP_INCLUDED
+#define NDNBOOST_MPL_POP_FRONT_FWD_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -21,4 +21,4 @@
 
 }}
 
-#endif // BOOST_MPL_POP_FRONT_FWD_HPP_INCLUDED
+#endif // NDNBOOST_MPL_POP_FRONT_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/prior.hpp b/include/ndnboost/mpl/prior.hpp
index a7ae4e7..9e880ea 100644
--- a/include/ndnboost/mpl/prior.hpp
+++ b/include/ndnboost/mpl/prior.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_PRIOR_HPP_INCLUDED
-#define BOOST_MPL_PRIOR_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_PRIOR_HPP_INCLUDED
+#define NDNBOOST_MPL_PRIOR_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2004
 //
@@ -16,4 +16,4 @@
 
 #include <ndnboost/mpl/next_prior.hpp>
 
-#endif // BOOST_MPL_PRIOR_HPP_INCLUDED
+#endif // NDNBOOST_MPL_PRIOR_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/protect.hpp b/include/ndnboost/mpl/protect.hpp
index 3efcca1..02d4c41 100644
--- a/include/ndnboost/mpl/protect.hpp
+++ b/include/ndnboost/mpl/protect.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_PROTECT_HPP_INCLUDED
-#define BOOST_MPL_PROTECT_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_PROTECT_HPP_INCLUDED
+#define NDNBOOST_MPL_PROTECT_HPP_INCLUDED
 
 // Copyright Peter Dimov 2001
 // Copyright Aleksey Gurtovoy 2002-2004
@@ -23,21 +23,21 @@
 namespace ndnboost { namespace mpl {
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(T)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(T)
     , int not_le_ = 0
     >
 struct protect : T
 {
-#if BOOST_WORKAROUND(__EDG_VERSION__, == 238)
+#if NDNBOOST_WORKAROUND(__EDG_VERSION__, == 238)
     typedef mpl::protect type;
 #else
     typedef protect type;
 #endif
 };
 
-#if defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
+#if defined(NDNBOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
 namespace aux { 
-template< BOOST_MPL_AUX_NTTP_DECL(int, N), typename T >
+template< NDNBOOST_MPL_AUX_NTTP_DECL(int, N), typename T >
 struct arity< protect<T>, N > 
     : arity<T,N>
 { 
@@ -45,11 +45,11 @@
 } // namespace aux
 #endif
 
-BOOST_MPL_AUX_NA_SPEC_MAIN(1, protect)
-#if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
-BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(1, 1, protect)
+NDNBOOST_MPL_AUX_NA_SPEC_MAIN(1, protect)
+#if !defined(NDNBOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
+NDNBOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(1, 1, protect)
 #endif
 
 }}
 
-#endif // BOOST_MPL_PROTECT_HPP_INCLUDED
+#endif // NDNBOOST_MPL_PROTECT_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/push_back.hpp b/include/ndnboost/mpl/push_back.hpp
index ba98dac..9cea895 100644
--- a/include/ndnboost/mpl/push_back.hpp
+++ b/include/ndnboost/mpl/push_back.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_PUSH_BACK_HPP_INCLUDED
-#define BOOST_MPL_PUSH_BACK_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_PUSH_BACK_HPP_INCLUDED
+#define NDNBOOST_MPL_PUSH_BACK_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -23,31 +23,31 @@
 namespace ndnboost { namespace mpl {
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
-    , typename BOOST_MPL_AUX_NA_PARAM(T)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(Sequence)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T)
     >
 struct push_back
     : push_back_impl< typename sequence_tag<Sequence>::type >
         ::template apply< Sequence,T >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2,push_back,(Sequence,T))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2,push_back,(Sequence,T))
 };
 
 
 template< 
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(Sequence)
     >
 struct has_push_back
     : has_push_back_impl< typename sequence_tag<Sequence>::type >
         ::template apply< Sequence >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,has_push_back,(Sequence))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,has_push_back,(Sequence))
 };
 
 
-BOOST_MPL_AUX_NA_SPEC(2, push_back)
-BOOST_MPL_AUX_NA_SPEC(1, has_push_back)
+NDNBOOST_MPL_AUX_NA_SPEC(2, push_back)
+NDNBOOST_MPL_AUX_NA_SPEC(1, has_push_back)
 
 }}
 
-#endif // BOOST_MPL_PUSH_BACK_HPP_INCLUDED
+#endif // NDNBOOST_MPL_PUSH_BACK_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/push_back_fwd.hpp b/include/ndnboost/mpl/push_back_fwd.hpp
index 499607c..9de0ff0 100644
--- a/include/ndnboost/mpl/push_back_fwd.hpp
+++ b/include/ndnboost/mpl/push_back_fwd.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_PUSH_BACK_FWD_HPP_INCLUDED
-#define BOOST_MPL_PUSH_BACK_FWD_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_PUSH_BACK_FWD_HPP_INCLUDED
+#define NDNBOOST_MPL_PUSH_BACK_FWD_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -21,4 +21,4 @@
 
 }}
 
-#endif // BOOST_MPL_PUSH_BACK_FWD_HPP_INCLUDED
+#endif // NDNBOOST_MPL_PUSH_BACK_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/push_front.hpp b/include/ndnboost/mpl/push_front.hpp
index d08248f..d3313c8 100644
--- a/include/ndnboost/mpl/push_front.hpp
+++ b/include/ndnboost/mpl/push_front.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_PUSH_FRONT_HPP_INCLUDED
-#define BOOST_MPL_PUSH_FRONT_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_PUSH_FRONT_HPP_INCLUDED
+#define NDNBOOST_MPL_PUSH_FRONT_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -23,30 +23,30 @@
 namespace ndnboost { namespace mpl {
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
-    , typename BOOST_MPL_AUX_NA_PARAM(T)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(Sequence)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(T)
     >
 struct push_front
     : push_front_impl< typename sequence_tag<Sequence>::type >
         ::template apply< Sequence,T >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2,push_front,(Sequence,T))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2,push_front,(Sequence,T))
 };
 
 
 template< 
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(Sequence)
     >
 struct has_push_front
     : has_push_front_impl< typename sequence_tag<Sequence>::type >
         ::template apply< Sequence >
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,has_push_front,(Sequence))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,has_push_front,(Sequence))
 };
 
-BOOST_MPL_AUX_NA_SPEC(2, push_front)
-BOOST_MPL_AUX_NA_SPEC(1, has_push_front)
+NDNBOOST_MPL_AUX_NA_SPEC(2, push_front)
+NDNBOOST_MPL_AUX_NA_SPEC(1, has_push_front)
 
 }}
 
-#endif // BOOST_MPL_PUSH_FRONT_HPP_INCLUDED
+#endif // NDNBOOST_MPL_PUSH_FRONT_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/push_front_fwd.hpp b/include/ndnboost/mpl/push_front_fwd.hpp
index 5e62f10..44394fd 100644
--- a/include/ndnboost/mpl/push_front_fwd.hpp
+++ b/include/ndnboost/mpl/push_front_fwd.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_PUSH_FRONT_FWD_HPP_INCLUDED
-#define BOOST_MPL_PUSH_FRONT_FWD_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_PUSH_FRONT_FWD_HPP_INCLUDED
+#define NDNBOOST_MPL_PUSH_FRONT_FWD_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -21,4 +21,4 @@
 
 }}
 
-#endif // BOOST_MPL_PUSH_FRONT_FWD_HPP_INCLUDED
+#endif // NDNBOOST_MPL_PUSH_FRONT_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/quote.hpp b/include/ndnboost/mpl/quote.hpp
index 3159e18..59b7d3a 100644
--- a/include/ndnboost/mpl/quote.hpp
+++ b/include/ndnboost/mpl/quote.hpp
@@ -1,10 +1,10 @@
 
-#if !defined(BOOST_PP_IS_ITERATING)
+#if !defined(NDNBOOST_PP_IS_ITERATING)
 
 ///// header body
 
-#ifndef BOOST_MPL_QUOTE_HPP_INCLUDED
-#define BOOST_MPL_QUOTE_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_QUOTE_HPP_INCLUDED
+#define NDNBOOST_MPL_QUOTE_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2008
 //
@@ -18,7 +18,7 @@
 // $Date: 2008-10-10 23:50:46 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49272 $
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/void.hpp>
 #   include <ndnboost/mpl/aux_/has_type.hpp>
 #endif
@@ -26,22 +26,22 @@
 #include <ndnboost/mpl/aux_/config/bcc.hpp>
 #include <ndnboost/mpl/aux_/config/ttp.hpp>
 
-#if defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS) \
-    && !defined(BOOST_MPL_CFG_BCC590_WORKAROUNDS)
-#   define BOOST_MPL_CFG_NO_QUOTE_TEMPLATE
+#if defined(NDNBOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS) \
+    && !defined(NDNBOOST_MPL_CFG_BCC590_WORKAROUNDS)
+#   define NDNBOOST_MPL_CFG_NO_QUOTE_TEMPLATE
 #endif
 
-#if !defined(BOOST_MPL_CFG_NO_IMPLICIT_METAFUNCTIONS) \
-    && defined(BOOST_MPL_CFG_NO_HAS_XXX)
-#   define BOOST_MPL_CFG_NO_IMPLICIT_METAFUNCTIONS
+#if !defined(NDNBOOST_MPL_CFG_NO_IMPLICIT_METAFUNCTIONS) \
+    && defined(NDNBOOST_MPL_CFG_NO_HAS_XXX)
+#   define NDNBOOST_MPL_CFG_NO_IMPLICIT_METAFUNCTIONS
 #endif
 
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+ && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
-#   define BOOST_MPL_PREPROCESSED_HEADER quote.hpp
+#   define NDNBOOST_MPL_PREPROCESSED_HEADER quote.hpp
 #   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
 
 #else
@@ -54,19 +54,19 @@
 #   include <ndnboost/preprocessor/iterate.hpp>
 #   include <ndnboost/preprocessor/cat.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_QUOTE_TEMPLATE)
+#if !defined(NDNBOOST_MPL_CFG_NO_QUOTE_TEMPLATE)
 
 namespace ndnboost { namespace mpl {
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template< typename T, bool has_type_ >
 struct quote_impl
 // GCC has a problem with metafunction forwarding when T is a
 // specialization of a template called 'type'.
-# if BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4)) \
-    && BOOST_WORKAROUND(__GNUC_MINOR__, BOOST_TESTED_AT(0)) \
-    && BOOST_WORKAROUND(__GNUC_PATCHLEVEL__, BOOST_TESTED_AT(2))
+# if NDNBOOST_WORKAROUND(__GNUC__, NDNBOOST_TESTED_AT(4)) \
+    && NDNBOOST_WORKAROUND(__GNUC_MINOR__, NDNBOOST_TESTED_AT(0)) \
+    && NDNBOOST_WORKAROUND(__GNUC_PATCHLEVEL__, NDNBOOST_TESTED_AT(2))
 {
     typedef typename T::type type;
 };
@@ -82,7 +82,7 @@
     typedef T type;
 };
 
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#else // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 template< bool > struct quote_impl
 {
@@ -102,50 +102,50 @@
 
 #endif 
 
-#define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(1, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, <ndnboost/mpl/quote.hpp>))
-#include BOOST_PP_ITERATE()
+#define NDNBOOST_PP_ITERATION_PARAMS_1 \
+    (3,(1, NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY, <ndnboost/mpl/quote.hpp>))
+#include NDNBOOST_PP_ITERATE()
 
 }}
 
-#endif // BOOST_MPL_CFG_NO_QUOTE_TEMPLATE
+#endif // NDNBOOST_MPL_CFG_NO_QUOTE_TEMPLATE
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_QUOTE_HPP_INCLUDED
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_QUOTE_HPP_INCLUDED
 
 ///// iteration
 
 #else
-#define i_ BOOST_PP_FRAME_ITERATION(1)
+#define i_ NDNBOOST_PP_FRAME_ITERATION(1)
 
 template<
-      template< BOOST_MPL_PP_PARAMS(i_, typename P) > class F
+      template< NDNBOOST_MPL_PP_PARAMS(i_, typename P) > class F
     , typename Tag = void_
     >
-struct BOOST_PP_CAT(quote,i_)
+struct NDNBOOST_PP_CAT(quote,i_)
 {
-    template< BOOST_MPL_PP_PARAMS(i_, typename U) > struct apply
-#if defined(BOOST_MPL_CFG_BCC590_WORKAROUNDS)
+    template< NDNBOOST_MPL_PP_PARAMS(i_, typename U) > struct apply
+#if defined(NDNBOOST_MPL_CFG_BCC590_WORKAROUNDS)
     {
         typedef typename quote_impl<
-              F< BOOST_MPL_PP_PARAMS(i_, U) >
-            , aux::has_type< F< BOOST_MPL_PP_PARAMS(i_, U) > >::value
+              F< NDNBOOST_MPL_PP_PARAMS(i_, U) >
+            , aux::has_type< F< NDNBOOST_MPL_PP_PARAMS(i_, U) > >::value
             >::type type;
     };
-#elif !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#elif !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
         : quote_impl<
-              F< BOOST_MPL_PP_PARAMS(i_, U) >
-            , aux::has_type< F< BOOST_MPL_PP_PARAMS(i_, U) > >::value
+              F< NDNBOOST_MPL_PP_PARAMS(i_, U) >
+            , aux::has_type< F< NDNBOOST_MPL_PP_PARAMS(i_, U) > >::value
             >
     {
     };
 #else
-        : quote_impl< aux::has_type< F< BOOST_MPL_PP_PARAMS(i_, U) > >::value >
-            ::template result_< F< BOOST_MPL_PP_PARAMS(i_, U) > >
+        : quote_impl< aux::has_type< F< NDNBOOST_MPL_PP_PARAMS(i_, U) > >::value >
+            ::template result_< F< NDNBOOST_MPL_PP_PARAMS(i_, U) > >
     {
     };
 #endif
 };
 
 #undef i_
-#endif // BOOST_PP_IS_ITERATING
+#endif // NDNBOOST_PP_IS_ITERATING
diff --git a/include/ndnboost/mpl/remove_if.hpp b/include/ndnboost/mpl/remove_if.hpp
index a20a01c..ad997e2 100644
--- a/include/ndnboost/mpl/remove_if.hpp
+++ b/include/ndnboost/mpl/remove_if.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_REMOVE_IF_HPP_INCLUDED
-#define BOOST_MPL_REMOVE_IF_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_REMOVE_IF_HPP_INCLUDED
+#define NDNBOOST_MPL_REMOVE_IF_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 // Copyright David Abrahams 2003-2004
@@ -76,8 +76,8 @@
 
 } // namespace aux
 
-BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(3, remove_if)
+NDNBOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(3, remove_if)
 
 }}
 
-#endif // BOOST_MPL_REMOVE_IF_HPP_INCLUDED
+#endif // NDNBOOST_MPL_REMOVE_IF_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/reverse_fold.hpp b/include/ndnboost/mpl/reverse_fold.hpp
index 5d5d9d8..b790a43 100644
--- a/include/ndnboost/mpl/reverse_fold.hpp
+++ b/include/ndnboost/mpl/reverse_fold.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_REVERSE_FOLD_HPP_INCLUDED
-#define BOOST_MPL_REVERSE_FOLD_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_REVERSE_FOLD_HPP_INCLUDED
+#define NDNBOOST_MPL_REVERSE_FOLD_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2001-2004
 // Copyright David Abrahams 2001-2002
@@ -24,9 +24,9 @@
 namespace ndnboost { namespace mpl {
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
-    , typename BOOST_MPL_AUX_NA_PARAM(State)
-    , typename BOOST_MPL_AUX_NA_PARAM(BackwardOp)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(Sequence)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(State)
+    , typename NDNBOOST_MPL_AUX_NA_PARAM(BackwardOp)
     , typename ForwardOp = arg<1>
     >
 struct reverse_fold
@@ -40,11 +40,11 @@
         , ForwardOp
         >::state type;
 
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(3,reverse_fold,(Sequence,State,BackwardOp))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(3,reverse_fold,(Sequence,State,BackwardOp))
 };
 
-BOOST_MPL_AUX_NA_SPEC(3, reverse_fold)
+NDNBOOST_MPL_AUX_NA_SPEC(3, reverse_fold)
 
 }}
 
-#endif // BOOST_MPL_REVERSE_FOLD_HPP_INCLUDED
+#endif // NDNBOOST_MPL_REVERSE_FOLD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/same_as.hpp b/include/ndnboost/mpl/same_as.hpp
index e7736b0..d9fdbcb 100644
--- a/include/ndnboost/mpl/same_as.hpp
+++ b/include/ndnboost/mpl/same_as.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_SAME_AS_HPP_INCLUDED
-#define BOOST_MPL_SAME_AS_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_SAME_AS_HPP_INCLUDED
+#define NDNBOOST_MPL_SAME_AS_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -26,7 +26,7 @@
 struct same_as
 {
     template< typename T2 > struct apply
-#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
+#if !defined(NDNBOOST_MPL_CFG_NO_NESTED_FORWARDING)
         : is_same<T1,T2>
     {
 #else
@@ -40,7 +40,7 @@
 struct not_same_as
 {
     template< typename T2 > struct apply
-#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
+#if !defined(NDNBOOST_MPL_CFG_NO_NESTED_FORWARDING)
         : not_< is_same<T1,T2> >
     {
 #else
@@ -52,4 +52,4 @@
 
 }}
 
-#endif // BOOST_MPL_SAME_AS_HPP_INCLUDED
+#endif // NDNBOOST_MPL_SAME_AS_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/sequence_tag.hpp b/include/ndnboost/mpl/sequence_tag.hpp
index 69a7193..51c1e78 100644
--- a/include/ndnboost/mpl/sequence_tag.hpp
+++ b/include/ndnboost/mpl/sequence_tag.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_SEQUENCE_TAG_HPP_INCLUDED
-#define BOOST_MPL_SEQUENCE_TAG_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_SEQUENCE_TAG_HPP_INCLUDED
+#define NDNBOOST_MPL_SEQUENCE_TAG_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -27,18 +27,18 @@
 
 // agurt, 27/nov/02: have to use a simplistic 'sequence_tag' implementation
 // on MSVC to avoid dreadful "internal structure overflow" error
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) \
-    || defined(BOOST_MPL_CFG_NO_HAS_XXX)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300) \
+    || defined(NDNBOOST_MPL_CFG_NO_HAS_XXX)
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(Sequence)
     >
 struct sequence_tag
 {
     typedef typename Sequence::tag type;
 };
 
-#elif BOOST_WORKAROUND(BOOST_MSVC, == 1300)
+#elif NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1300)
 
 // agurt, 07/feb/03: workaround for what seems to be MSVC 7.0-specific ETI issue
 
@@ -65,7 +65,7 @@
 } // namespace aux
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(Sequence)
     >
 struct sequence_tag
     : aux::sequence_tag_impl< !aux::is_msvc_eti_arg<Sequence>::value >
@@ -105,7 +105,7 @@
 } // namespace aux
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(Sequence)
     >
 struct sequence_tag
     : aux::sequence_tag_impl<
@@ -115,10 +115,10 @@
 {
 };
 
-#endif // BOOST_MSVC
+#endif // NDNBOOST_MSVC
 
-BOOST_MPL_AUX_NA_SPEC(1, sequence_tag)
+NDNBOOST_MPL_AUX_NA_SPEC(1, sequence_tag)
 
 }}
 
-#endif // BOOST_MPL_SEQUENCE_TAG_HPP_INCLUDED
+#endif // NDNBOOST_MPL_SEQUENCE_TAG_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/sequence_tag_fwd.hpp b/include/ndnboost/mpl/sequence_tag_fwd.hpp
index 9140a6d..9e3aee3 100644
--- a/include/ndnboost/mpl/sequence_tag_fwd.hpp
+++ b/include/ndnboost/mpl/sequence_tag_fwd.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_SEQUENCE_TAG_FWD_HPP_INCLUDED
-#define BOOST_MPL_SEQUENCE_TAG_FWD_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_SEQUENCE_TAG_FWD_HPP_INCLUDED
+#define NDNBOOST_MPL_SEQUENCE_TAG_FWD_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -23,4 +23,4 @@
 
 }}
 
-#endif // BOOST_MPL_SEQUENCE_TAG_FWD_HPP_INCLUDED
+#endif // NDNBOOST_MPL_SEQUENCE_TAG_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/size.hpp b/include/ndnboost/mpl/size.hpp
index 2538cc2..d51549b 100644
--- a/include/ndnboost/mpl/size.hpp
+++ b/include/ndnboost/mpl/size.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_SIZE_HPP_INCLUDED
-#define BOOST_MPL_SIZE_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_SIZE_HPP_INCLUDED
+#define NDNBOOST_MPL_SIZE_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -24,7 +24,7 @@
 namespace ndnboost { namespace mpl {
 
 template<
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
+      typename NDNBOOST_MPL_AUX_NA_PARAM(Sequence)
     >
 struct size
     : aux::msvc_eti_base<
@@ -32,11 +32,11 @@
             ::template apply< Sequence >::type
       >::type
 {
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1, size, (Sequence))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1, size, (Sequence))
 };
 
-BOOST_MPL_AUX_NA_SPEC(1, size)
+NDNBOOST_MPL_AUX_NA_SPEC(1, size)
 
 }}
 
-#endif // BOOST_MPL_SIZE_HPP_INCLUDED
+#endif // NDNBOOST_MPL_SIZE_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/size_fwd.hpp b/include/ndnboost/mpl/size_fwd.hpp
index e84082a..1d948a2 100644
--- a/include/ndnboost/mpl/size_fwd.hpp
+++ b/include/ndnboost/mpl/size_fwd.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_SIZE_FWD_HPP_INCLUDED
-#define BOOST_MPL_SIZE_FWD_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_SIZE_FWD_HPP_INCLUDED
+#define NDNBOOST_MPL_SIZE_FWD_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -21,4 +21,4 @@
 
 }}
 
-#endif // BOOST_MPL_SIZE_FWD_HPP_INCLUDED
+#endif // NDNBOOST_MPL_SIZE_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/size_t.hpp b/include/ndnboost/mpl/size_t.hpp
index 182f128..fc86699 100644
--- a/include/ndnboost/mpl/size_t.hpp
+++ b/include/ndnboost/mpl/size_t.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_SIZE_T_HPP_INCLUDED
-#define BOOST_MPL_SIZE_T_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_SIZE_T_HPP_INCLUDED
+#define NDNBOOST_MPL_SIZE_T_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -22,4 +22,4 @@
 
 #include <ndnboost/mpl/aux_/integral_wrapper.hpp>
 
-#endif // BOOST_MPL_SIZE_T_HPP_INCLUDED
+#endif // NDNBOOST_MPL_SIZE_T_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/size_t_fwd.hpp b/include/ndnboost/mpl/size_t_fwd.hpp
index f6d8aaa..6adc981 100644
--- a/include/ndnboost/mpl/size_t_fwd.hpp
+++ b/include/ndnboost/mpl/size_t_fwd.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_SIZE_T_FWD_HPP_INCLUDED
-#define BOOST_MPL_SIZE_T_FWD_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_SIZE_T_FWD_HPP_INCLUDED
+#define NDNBOOST_MPL_SIZE_T_FWD_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -18,11 +18,11 @@
 #include <ndnboost/config.hpp> // make sure 'size_t' is placed into 'std'
 #include <cstddef>
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 
 template< std::size_t N > struct size_t;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-BOOST_MPL_AUX_ADL_BARRIER_DECL(size_t)
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_DECL(size_t)
 
-#endif // BOOST_MPL_SIZE_T_FWD_HPP_INCLUDED
+#endif // NDNBOOST_MPL_SIZE_T_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/tag.hpp b/include/ndnboost/mpl/tag.hpp
index 56b9fb4..4eed698 100644
--- a/include/ndnboost/mpl/tag.hpp
+++ b/include/ndnboost/mpl/tag.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_TAG_HPP_INCLUDED
-#define BOOST_MPL_TAG_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_TAG_HPP_INCLUDED
+#define NDNBOOST_MPL_TAG_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2004
 //
@@ -29,7 +29,7 @@
 }
 
 template< typename T, typename Default = void_ > struct tag
-#if !defined(BOOST_MPL_CFG_MSVC_ETI_BUG)
+#if !defined(NDNBOOST_MPL_CFG_MSVC_ETI_BUG)
     : if_< 
           aux::has_tag<T>
         , aux::tag_impl<T>
@@ -49,4 +49,4 @@
 
 }}
 
-#endif // BOOST_MPL_TAG_HPP_INCLUDED
+#endif // NDNBOOST_MPL_TAG_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/times.hpp b/include/ndnboost/mpl/times.hpp
index 60984bb..e6fa702 100644
--- a/include/ndnboost/mpl/times.hpp
+++ b/include/ndnboost/mpl/times.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_TIMES_HPP_INCLUDED
-#define BOOST_MPL_TIMES_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_TIMES_HPP_INCLUDED
+#define NDNBOOST_MPL_TIMES_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -18,4 +18,4 @@
 #define AUX778076_OP_TOKEN *
 #include <ndnboost/mpl/aux_/arithmetic_op.hpp>
 
-#endif // BOOST_MPL_TIMES_HPP_INCLUDED
+#endif // NDNBOOST_MPL_TIMES_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/vector.hpp b/include/ndnboost/mpl/vector.hpp
index 81b404d..4492f22 100644
--- a/include/ndnboost/mpl/vector.hpp
+++ b/include/ndnboost/mpl/vector.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_VECTOR_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_VECTOR_HPP_INCLUDED
+#define NDNBOOST_MPL_VECTOR_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -14,7 +14,7 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/limits/vector.hpp>
 #   include <ndnboost/mpl/aux_/na.hpp>
 #   include <ndnboost/mpl/aux_/config/preprocessor.hpp>
@@ -23,26 +23,26 @@
 #   include <ndnboost/preprocessor/cat.hpp>
 #   include <ndnboost/preprocessor/stringize.hpp>
 
-#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING)
+#if !defined(NDNBOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING)
 #   define AUX778076_VECTOR_HEADER \
-    BOOST_PP_CAT(vector, BOOST_MPL_LIMIT_VECTOR_SIZE).hpp \
+    NDNBOOST_PP_CAT(vector, NDNBOOST_MPL_LIMIT_VECTOR_SIZE).hpp \
     /**/
 #else
 #   define AUX778076_VECTOR_HEADER \
-    BOOST_PP_CAT(vector, BOOST_MPL_LIMIT_VECTOR_SIZE)##.hpp \
+    NDNBOOST_PP_CAT(vector, NDNBOOST_MPL_LIMIT_VECTOR_SIZE)##.hpp \
     /**/
 #endif
 
-#   include BOOST_PP_STRINGIZE(ndnboost/mpl/vector/AUX778076_VECTOR_HEADER)
+#   include NDNBOOST_PP_STRINGIZE(ndnboost/mpl/vector/AUX778076_VECTOR_HEADER)
 #   undef AUX778076_VECTOR_HEADER
 #endif
 
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
-#   define BOOST_MPL_PREPROCESSED_HEADER vector.hpp
+#   define NDNBOOST_MPL_PREPROCESSED_HEADER vector.hpp
 #   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
 
 #else
@@ -50,8 +50,8 @@
 #   include <ndnboost/mpl/limits/vector.hpp>
 
 #   define AUX778076_SEQUENCE_NAME vector
-#   define AUX778076_SEQUENCE_LIMIT BOOST_MPL_LIMIT_VECTOR_SIZE
+#   define AUX778076_SEQUENCE_LIMIT NDNBOOST_MPL_LIMIT_VECTOR_SIZE
 #   include <ndnboost/mpl/aux_/sequence_wrapper.hpp>
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_VECTOR_HPP_INCLUDED
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_VECTOR_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/vector/aux_/O1_size.hpp b/include/ndnboost/mpl/vector/aux_/O1_size.hpp
index 279ade9..50b0f88 100644
--- a/include/ndnboost/mpl/vector/aux_/O1_size.hpp
+++ b/include/ndnboost/mpl/vector/aux_/O1_size.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_VECTOR_AUX_O1_SIZE_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_O1_SIZE_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_VECTOR_AUX_O1_SIZE_HPP_INCLUDED
+#define NDNBOOST_MPL_VECTOR_AUX_O1_SIZE_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -23,7 +23,7 @@
 
 namespace ndnboost { namespace mpl {
 
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
+#if defined(NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
 
 template<>
 struct O1_size_impl< aux::vector_tag >
@@ -36,7 +36,7 @@
 
 #else
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template< long N >
 struct O1_size_impl< aux::vector_tag<N> >
@@ -47,10 +47,10 @@
     };
 };
 
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
+#endif // NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
 
 }}
 
-#endif // BOOST_MPL_VECTOR_AUX_O1_SIZE_HPP_INCLUDED
+#endif // NDNBOOST_MPL_VECTOR_AUX_O1_SIZE_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/vector/aux_/at.hpp b/include/ndnboost/mpl/vector/aux_/at.hpp
index c5f7d5e..b507743 100644
--- a/include/ndnboost/mpl/vector/aux_/at.hpp
+++ b/include/ndnboost/mpl/vector/aux_/at.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_VECTOR_AUX_AT_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_AT_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_VECTOR_AUX_AT_HPP_INCLUDED
+#define NDNBOOST_MPL_VECTOR_AUX_AT_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -26,7 +26,7 @@
 
 namespace ndnboost { namespace mpl {
 
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
+#if defined(NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
 
 template< typename Vector, long n_ >
 struct v_at_impl
@@ -48,7 +48,7 @@
     template< typename Vector, typename N > struct apply
         : v_at<
               Vector
-            , BOOST_MPL_AUX_VALUE_WKND(N)::value
+            , NDNBOOST_MPL_AUX_VALUE_WKND(N)::value
             >
     {
     };
@@ -56,26 +56,26 @@
 
 #else
 
-#   if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-    && !defined(BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC)
+#   if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
+    && !defined(NDNBOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC)
 
-template< typename Vector, BOOST_MPL_AUX_NTTP_DECL(long, n_) > struct v_at;
+template< typename Vector, NDNBOOST_MPL_AUX_NTTP_DECL(long, n_) > struct v_at;
 
-template< BOOST_MPL_AUX_NTTP_DECL(long, n_) >
+template< NDNBOOST_MPL_AUX_NTTP_DECL(long, n_) >
 struct at_impl< aux::vector_tag<n_> >
 {
     template< typename Vector, typename N > struct apply
 #if !defined(__BORLANDC__)
         : v_at<
               Vector
-            , BOOST_MPL_AUX_VALUE_WKND(N)::value
+            , NDNBOOST_MPL_AUX_VALUE_WKND(N)::value
             >
     {
 #else
     {
         typedef typename v_at<
               Vector
-            , BOOST_MPL_AUX_VALUE_WKND(N)::value
+            , NDNBOOST_MPL_AUX_VALUE_WKND(N)::value
             >::type type;
 #endif
     };
@@ -85,7 +85,7 @@
 
 namespace aux {
 
-template< BOOST_MPL_AUX_NTTP_DECL(long, n_) > struct v_at_impl
+template< NDNBOOST_MPL_AUX_NTTP_DECL(long, n_) > struct v_at_impl
 {
     template< typename V > struct result_;
 };
@@ -101,16 +101,16 @@
 
 } // namespace aux
 
-template< typename T, BOOST_MPL_AUX_NTTP_DECL(long, n_) >
+template< typename T, NDNBOOST_MPL_AUX_NTTP_DECL(long, n_) >
 struct v_at
     : aux::v_at_impl<n_>::template result_<T>
 {
 };
 
-#   endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#   endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
+#endif // NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
 
 }}
 
-#endif // BOOST_MPL_VECTOR_AUX_AT_HPP_INCLUDED
+#endif // NDNBOOST_MPL_VECTOR_AUX_AT_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/vector/aux_/back.hpp b/include/ndnboost/mpl/vector/aux_/back.hpp
index d952c62..e7946af 100644
--- a/include/ndnboost/mpl/vector/aux_/back.hpp
+++ b/include/ndnboost/mpl/vector/aux_/back.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_VECTOR_AUX_BACK_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_BACK_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_VECTOR_AUX_BACK_HPP_INCLUDED
+#define NDNBOOST_MPL_VECTOR_AUX_BACK_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -23,7 +23,7 @@
 
 namespace ndnboost { namespace mpl {
 
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
+#if defined(NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
 
 template<>
 struct back_impl< aux::vector_tag >
@@ -39,7 +39,7 @@
 
 #else
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template< long n_ >
 struct back_impl< aux::vector_tag<n_> >
@@ -50,10 +50,10 @@
     };
 };
 
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
+#endif // NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
 
 }}
 
-#endif // BOOST_MPL_VECTOR_AUX_BACK_HPP_INCLUDED
+#endif // NDNBOOST_MPL_VECTOR_AUX_BACK_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/vector/aux_/begin_end.hpp b/include/ndnboost/mpl/vector/aux_/begin_end.hpp
index f345503..1b4d068 100644
--- a/include/ndnboost/mpl/vector/aux_/begin_end.hpp
+++ b/include/ndnboost/mpl/vector/aux_/begin_end.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_VECTOR_AUX_BEGIN_END_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_BEGIN_END_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_VECTOR_AUX_BEGIN_END_HPP_INCLUDED
+#define NDNBOOST_MPL_VECTOR_AUX_BEGIN_END_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -16,7 +16,7 @@
 
 #include <ndnboost/mpl/aux_/config/typeof.hpp>
 
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
+#if defined(NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
 
 #   include <ndnboost/mpl/begin_end_fwd.hpp>
 #   include <ndnboost/mpl/vector/aux_/iterator.hpp>
@@ -44,6 +44,6 @@
 
 }}
 
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
+#endif // NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
 
-#endif // BOOST_MPL_VECTOR_AUX_BEGIN_END_HPP_INCLUDED
+#endif // NDNBOOST_MPL_VECTOR_AUX_BEGIN_END_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/vector/aux_/clear.hpp b/include/ndnboost/mpl/vector/aux_/clear.hpp
index db09943..6bbc78c 100644
--- a/include/ndnboost/mpl/vector/aux_/clear.hpp
+++ b/include/ndnboost/mpl/vector/aux_/clear.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_VECTOR_AUX_CLEAR_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_CLEAR_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_VECTOR_AUX_CLEAR_HPP_INCLUDED
+#define NDNBOOST_MPL_VECTOR_AUX_CLEAR_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -22,7 +22,7 @@
 
 namespace ndnboost { namespace mpl {
 
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
+#if defined(NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
 
 template<>
 struct clear_impl< aux::vector_tag >
@@ -35,7 +35,7 @@
 
 #else
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template< long N >
 struct clear_impl< aux::vector_tag<N> >
@@ -46,10 +46,10 @@
     };
 };
 
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
+#endif // NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
 
 }}
 
-#endif // BOOST_MPL_VECTOR_AUX_CLEAR_HPP_INCLUDED
+#endif // NDNBOOST_MPL_VECTOR_AUX_CLEAR_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/vector/aux_/empty.hpp b/include/ndnboost/mpl/vector/aux_/empty.hpp
index 678af94..91779e3 100644
--- a/include/ndnboost/mpl/vector/aux_/empty.hpp
+++ b/include/ndnboost/mpl/vector/aux_/empty.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_VECTOR_AUX_EMPTY_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_EMPTY_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_VECTOR_AUX_EMPTY_HPP_INCLUDED
+#define NDNBOOST_MPL_VECTOR_AUX_EMPTY_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -23,7 +23,7 @@
 
 namespace ndnboost { namespace mpl {
 
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
+#if defined(NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
 
 template<>
 struct empty_impl< aux::vector_tag >
@@ -48,7 +48,7 @@
     };
 };
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template< long N >
 struct empty_impl< aux::vector_tag<N> >
@@ -59,10 +59,10 @@
     };
 };
 
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
+#endif // NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
 
 }}
 
-#endif // BOOST_MPL_VECTOR_AUX_EMPTY_HPP_INCLUDED
+#endif // NDNBOOST_MPL_VECTOR_AUX_EMPTY_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/vector/aux_/front.hpp b/include/ndnboost/mpl/vector/aux_/front.hpp
index 7705d3d..d01b4ae 100644
--- a/include/ndnboost/mpl/vector/aux_/front.hpp
+++ b/include/ndnboost/mpl/vector/aux_/front.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_VECTOR_AUX_FRONT_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_FRONT_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_VECTOR_AUX_FRONT_HPP_INCLUDED
+#define NDNBOOST_MPL_VECTOR_AUX_FRONT_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2008
 //
@@ -23,7 +23,7 @@
 
 namespace ndnboost { namespace mpl {
 
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
+#if defined(NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
 
 template<>
 struct front_impl< aux::vector_tag >
@@ -36,9 +36,9 @@
 
 #else
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
-template< BOOST_MPL_AUX_NTTP_DECL(long, n_) >
+template< NDNBOOST_MPL_AUX_NTTP_DECL(long, n_) >
 struct front_impl< aux::vector_tag<n_> >
 {
     template< typename Vector > struct apply
@@ -47,10 +47,10 @@
     };
 };
 
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
+#endif // NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
 
 }}
 
-#endif // BOOST_MPL_VECTOR_AUX_FRONT_HPP_INCLUDED
+#endif // NDNBOOST_MPL_VECTOR_AUX_FRONT_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/vector/aux_/include_preprocessed.hpp b/include/ndnboost/mpl/vector/aux_/include_preprocessed.hpp
index 3cd7b7c..34270da 100644
--- a/include/ndnboost/mpl/vector/aux_/include_preprocessed.hpp
+++ b/include/ndnboost/mpl/vector/aux_/include_preprocessed.hpp
@@ -21,35 +21,35 @@
 #include <ndnboost/preprocessor/cat.hpp>
 #include <ndnboost/preprocessor/stringize.hpp>
 
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
+#if defined(NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
 #   define AUX778076_INCLUDE_DIR typeof_based
-#elif defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-   || defined(BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC)
+#elif defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
+   || defined(NDNBOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC)
 #   define AUX778076_INCLUDE_DIR no_ctps
 #else
 #   define AUX778076_INCLUDE_DIR plain
 #endif
 
-#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING)
+#if !defined(NDNBOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING)
 #   define AUX778076_HEADER \
-    AUX778076_INCLUDE_DIR/BOOST_MPL_PREPROCESSED_HEADER \
+    AUX778076_INCLUDE_DIR/NDNBOOST_MPL_PREPROCESSED_HEADER \
 /**/
 #else
 #   define AUX778076_HEADER \
-    BOOST_PP_CAT(AUX778076_INCLUDE_DIR,/)##BOOST_MPL_PREPROCESSED_HEADER \
+    NDNBOOST_PP_CAT(AUX778076_INCLUDE_DIR,/)##NDNBOOST_MPL_PREPROCESSED_HEADER \
 /**/
 #endif
 
 
-#if BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(700))
-#   define AUX778076_INCLUDE_STRING BOOST_PP_STRINGIZE(ndnboost/mpl/vector/aux_/preprocessed/AUX778076_HEADER)
+#if NDNBOOST_WORKAROUND(__IBMCPP__, NDNBOOST_TESTED_AT(700))
+#   define AUX778076_INCLUDE_STRING NDNBOOST_PP_STRINGIZE(ndnboost/mpl/vector/aux_/preprocessed/AUX778076_HEADER)
 #   include AUX778076_INCLUDE_STRING
 #   undef AUX778076_INCLUDE_STRING
 #else
-#   include BOOST_PP_STRINGIZE(ndnboost/mpl/vector/aux_/preprocessed/AUX778076_HEADER)
+#   include NDNBOOST_PP_STRINGIZE(ndnboost/mpl/vector/aux_/preprocessed/AUX778076_HEADER)
 #endif
 
 #   undef AUX778076_HEADER
 #   undef AUX778076_INCLUDE_DIR
 
-#undef BOOST_MPL_PREPROCESSED_HEADER
+#undef NDNBOOST_MPL_PREPROCESSED_HEADER
diff --git a/include/ndnboost/mpl/vector/aux_/item.hpp b/include/ndnboost/mpl/vector/aux_/item.hpp
index 7e3885c..8858aa0 100644
--- a/include/ndnboost/mpl/vector/aux_/item.hpp
+++ b/include/ndnboost/mpl/vector/aux_/item.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_VECTOR_AUX_ITEM_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_ITEM_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_VECTOR_AUX_ITEM_HPP_INCLUDED
+#define NDNBOOST_MPL_VECTOR_AUX_ITEM_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -23,7 +23,7 @@
 
 namespace ndnboost { namespace mpl {
 
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
+#if defined(NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
 
 template< 
       typename T
@@ -96,8 +96,8 @@
     using Base::item_;
 };
 
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
+#endif // NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
 
 }}
 
-#endif // BOOST_MPL_VECTOR_AUX_ITEM_HPP_INCLUDED
+#endif // NDNBOOST_MPL_VECTOR_AUX_ITEM_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/vector/aux_/iterator.hpp b/include/ndnboost/mpl/vector/aux_/iterator.hpp
index 8a7915b..799d0e7 100644
--- a/include/ndnboost/mpl/vector/aux_/iterator.hpp
+++ b/include/ndnboost/mpl/vector/aux_/iterator.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_AUX_VECTOR_ITERATOR_HPP_INCLUDED
-#define BOOST_MPL_AUX_VECTOR_ITERATOR_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_AUX_VECTOR_ITERATOR_HPP_INCLUDED
+#define NDNBOOST_MPL_AUX_VECTOR_ITERATOR_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -31,7 +31,7 @@
 
 template<
       typename Vector
-    , BOOST_MPL_AUX_NTTP_DECL(long, n_)
+    , NDNBOOST_MPL_AUX_NTTP_DECL(long, n_)
     >
 struct v_iter
 {
@@ -42,7 +42,7 @@
     typedef Vector vector_;
     typedef mpl::long_<n_> pos;
 
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#if defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
     enum { 
           next_ = n_ + 1
         , prior_ = n_ - 1
@@ -56,11 +56,11 @@
 };
 
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template<
       typename Vector
-    , BOOST_MPL_AUX_NTTP_DECL(long, n_)
+    , NDNBOOST_MPL_AUX_NTTP_DECL(long, n_)
     >
 struct next< v_iter<Vector,n_> >
 {
@@ -69,7 +69,7 @@
 
 template<
       typename Vector
-    , BOOST_MPL_AUX_NTTP_DECL(long, n_)
+    , NDNBOOST_MPL_AUX_NTTP_DECL(long, n_)
     >
 struct prior< v_iter<Vector,n_> >
 {
@@ -78,28 +78,28 @@
 
 template<
       typename Vector
-    , BOOST_MPL_AUX_NTTP_DECL(long, n_)
+    , NDNBOOST_MPL_AUX_NTTP_DECL(long, n_)
     , typename Distance
     >
 struct advance< v_iter<Vector,n_>,Distance>
 {
     typedef v_iter<
           Vector
-        , (n_ + BOOST_MPL_AUX_NESTED_VALUE_WKND(long, Distance))
+        , (n_ + NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(long, Distance))
         > type;
 };
 
 template< 
       typename Vector
-    , BOOST_MPL_AUX_NTTP_DECL(long, n_)
-    , BOOST_MPL_AUX_NTTP_DECL(long, m_)
+    , NDNBOOST_MPL_AUX_NTTP_DECL(long, n_)
+    , NDNBOOST_MPL_AUX_NTTP_DECL(long, m_)
     > 
 struct distance< v_iter<Vector,n_>, v_iter<Vector,m_> >
     : mpl::long_<(m_ - n_)>
 {
 };
 
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#else // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 template<> struct advance_impl<aux::v_iter_tag>
 {
@@ -119,7 +119,7 @@
     {
         enum { pos1_ = Iter1::pos_, pos2_ = Iter2::pos_ };
         typedef long_<( pos2_ - pos1_ )> type;
-        BOOST_STATIC_CONSTANT(long, value = ( pos2_ - pos1_ ));
+        NDNBOOST_STATIC_CONSTANT(long, value = ( pos2_ - pos1_ ));
     };
 };
 
@@ -127,4 +127,4 @@
 
 }}
 
-#endif // BOOST_MPL_AUX_VECTOR_ITERATOR_HPP_INCLUDED
+#endif // NDNBOOST_MPL_AUX_VECTOR_ITERATOR_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/vector/aux_/numbered.hpp b/include/ndnboost/mpl/vector/aux_/numbered.hpp
index 98ebc50..d256e31 100644
--- a/include/ndnboost/mpl/vector/aux_/numbered.hpp
+++ b/include/ndnboost/mpl/vector/aux_/numbered.hpp
@@ -1,7 +1,7 @@
 
 // NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
 
-#if defined(BOOST_PP_IS_ITERATING)
+#if defined(NDNBOOST_PP_IS_ITERATING)
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -22,27 +22,27 @@
 #include <ndnboost/preprocessor/dec.hpp>
 #include <ndnboost/preprocessor/cat.hpp>
 
-#define i_ BOOST_PP_FRAME_ITERATION(1)
+#define i_ NDNBOOST_PP_FRAME_ITERATION(1)
 
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
+#if defined(NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
 
 #   define AUX778076_VECTOR_TAIL(vector, i_, T) \
-    BOOST_PP_CAT(vector,i_)< \
-          BOOST_PP_ENUM_PARAMS(i_, T) \
+    NDNBOOST_PP_CAT(vector,i_)< \
+          NDNBOOST_PP_ENUM_PARAMS(i_, T) \
         > \
     /**/
 
 #if i_ > 0
 template<
-      BOOST_PP_ENUM_PARAMS(i_, typename T)
+      NDNBOOST_PP_ENUM_PARAMS(i_, typename T)
     >
-struct BOOST_PP_CAT(vector,i_)
+struct NDNBOOST_PP_CAT(vector,i_)
     : v_item<
-          BOOST_PP_CAT(T,BOOST_PP_DEC(i_))
-        , AUX778076_VECTOR_TAIL(vector,BOOST_PP_DEC(i_),T)
+          NDNBOOST_PP_CAT(T,NDNBOOST_PP_DEC(i_))
+        , AUX778076_VECTOR_TAIL(vector,NDNBOOST_PP_DEC(i_),T)
         >
 {
-    typedef BOOST_PP_CAT(vector,i_) type;
+    typedef NDNBOOST_PP_CAT(vector,i_) type;
 };
 #endif
 
@@ -53,21 +53,21 @@
 #   if i_ > 0
 
 template<
-      BOOST_PP_ENUM_PARAMS(i_, typename T)
+      NDNBOOST_PP_ENUM_PARAMS(i_, typename T)
     >
-struct BOOST_PP_CAT(vector,i_)
+struct NDNBOOST_PP_CAT(vector,i_)
 {
     typedef aux::vector_tag<i_> tag;
-    typedef BOOST_PP_CAT(vector,i_) type;
+    typedef NDNBOOST_PP_CAT(vector,i_) type;
 
 #   define AUX778076_VECTOR_ITEM(unused, i_, unused2) \
-    typedef BOOST_PP_CAT(T,i_) BOOST_PP_CAT(item,i_); \
+    typedef NDNBOOST_PP_CAT(T,i_) NDNBOOST_PP_CAT(item,i_); \
     /**/
 
-    BOOST_PP_REPEAT(i_, AUX778076_VECTOR_ITEM, unused)
+    NDNBOOST_PP_REPEAT(i_, AUX778076_VECTOR_ITEM, unused)
 #   undef AUX778076_VECTOR_ITEM
-    typedef void_ BOOST_PP_CAT(item,i_);
-    typedef BOOST_PP_CAT(T,BOOST_PP_DEC(i_)) back;
+    typedef void_ NDNBOOST_PP_CAT(item,i_);
+    typedef NDNBOOST_PP_CAT(T,NDNBOOST_PP_DEC(i_)) back;
 
     // Borland forces us to use 'type' here (instead of the class name)
     typedef v_iter<type,0> begin;
@@ -75,14 +75,14 @@
 };
 
 template<>
-struct push_front_impl< aux::vector_tag<BOOST_PP_DEC(i_)> >
+struct push_front_impl< aux::vector_tag<NDNBOOST_PP_DEC(i_)> >
 {
     template< typename Vector, typename T > struct apply
     {
-        typedef BOOST_PP_CAT(vector,i_)<
+        typedef NDNBOOST_PP_CAT(vector,i_)<
               T
-              BOOST_PP_COMMA_IF(BOOST_PP_DEC(i_))
-              BOOST_PP_ENUM_PARAMS(BOOST_PP_DEC(i_), typename Vector::item)
+              NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_DEC(i_))
+              NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_DEC(i_), typename Vector::item)
             > type;
     };
 };
@@ -92,21 +92,21 @@
 {
     template< typename Vector > struct apply
     {
-        typedef BOOST_PP_CAT(vector,BOOST_PP_DEC(i_))<
-              BOOST_PP_ENUM_SHIFTED_PARAMS(i_, typename Vector::item)
+        typedef NDNBOOST_PP_CAT(vector,NDNBOOST_PP_DEC(i_))<
+              NDNBOOST_PP_ENUM_SHIFTED_PARAMS(i_, typename Vector::item)
             > type;
     };
 };
 
 
 template<>
-struct push_back_impl< aux::vector_tag<BOOST_PP_DEC(i_)> >
+struct push_back_impl< aux::vector_tag<NDNBOOST_PP_DEC(i_)> >
 {
     template< typename Vector, typename T > struct apply
     {
-        typedef BOOST_PP_CAT(vector,i_)<
-              BOOST_PP_ENUM_PARAMS(BOOST_PP_DEC(i_), typename Vector::item)
-              BOOST_PP_COMMA_IF(BOOST_PP_DEC(i_))
+        typedef NDNBOOST_PP_CAT(vector,i_)<
+              NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_DEC(i_), typename Vector::item)
+              NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_DEC(i_))
               T
             > type;
     };
@@ -117,21 +117,21 @@
 {
     template< typename Vector > struct apply
     {
-        typedef BOOST_PP_CAT(vector,BOOST_PP_DEC(i_))<
-              BOOST_PP_ENUM_PARAMS(BOOST_PP_DEC(i_), typename Vector::item)
+        typedef NDNBOOST_PP_CAT(vector,NDNBOOST_PP_DEC(i_))<
+              NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_DEC(i_), typename Vector::item)
             > type;
     };
 };
 
 #   endif // i_ > 0
 
-#   if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-    && !defined(BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC)
+#   if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
+    && !defined(NDNBOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC)
 
 template< typename V >
 struct v_at<V,i_>
 {
-    typedef typename V::BOOST_PP_CAT(item,i_) type;
+    typedef typename V::NDNBOOST_PP_CAT(item,i_) type;
 };
 
 #   else
@@ -141,7 +141,7 @@
 {
     template< typename V_ > struct result_
     {
-        typedef typename V_::BOOST_PP_CAT(item,i_) type;
+        typedef typename V_::NDNBOOST_PP_CAT(item,i_) type;
     };
 };
 }
@@ -151,7 +151,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -209,10 +209,10 @@
     };
 };
 
-#   endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#   endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
+#endif // NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
 
 #undef i_
 
-#endif // BOOST_PP_IS_ITERATING
+#endif // NDNBOOST_PP_IS_ITERATING
diff --git a/include/ndnboost/mpl/vector/aux_/numbered_c.hpp b/include/ndnboost/mpl/vector/aux_/numbered_c.hpp
index f7a6db8..a9fd904 100644
--- a/include/ndnboost/mpl/vector/aux_/numbered_c.hpp
+++ b/include/ndnboost/mpl/vector/aux_/numbered_c.hpp
@@ -1,7 +1,7 @@
 
 // NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
 
-#if defined(BOOST_PP_IS_ITERATING)
+#if defined(NDNBOOST_PP_IS_ITERATING)
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -22,28 +22,28 @@
 #include <ndnboost/preprocessor/dec.hpp>
 #include <ndnboost/preprocessor/cat.hpp>
 
-#define i_ BOOST_PP_FRAME_ITERATION(1)
+#define i_ NDNBOOST_PP_FRAME_ITERATION(1)
 
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
+#if defined(NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
 
 #   define AUX778076_VECTOR_TAIL(vector, i_, C) \
-    BOOST_PP_CAT(BOOST_PP_CAT(vector,i_),_c)<T \
-          BOOST_PP_COMMA_IF(i_) BOOST_PP_ENUM_PARAMS(i_, C) \
+    NDNBOOST_PP_CAT(NDNBOOST_PP_CAT(vector,i_),_c)<T \
+          NDNBOOST_PP_COMMA_IF(i_) NDNBOOST_PP_ENUM_PARAMS(i_, C) \
         > \
     /**/
 
 #if i_ > 0
 template<
       typename T
-    , BOOST_PP_ENUM_PARAMS(i_, T C)
+    , NDNBOOST_PP_ENUM_PARAMS(i_, T C)
     >
-struct BOOST_PP_CAT(BOOST_PP_CAT(vector,i_),_c)
+struct NDNBOOST_PP_CAT(NDNBOOST_PP_CAT(vector,i_),_c)
     : v_item<
-          integral_c<T,BOOST_PP_CAT(C,BOOST_PP_DEC(i_))>
-        , AUX778076_VECTOR_TAIL(vector,BOOST_PP_DEC(i_),C)
+          integral_c<T,NDNBOOST_PP_CAT(C,NDNBOOST_PP_DEC(i_))>
+        , AUX778076_VECTOR_TAIL(vector,NDNBOOST_PP_DEC(i_),C)
         >
 {
-    typedef BOOST_PP_CAT(BOOST_PP_CAT(vector,i_),_c) type;
+    typedef NDNBOOST_PP_CAT(NDNBOOST_PP_CAT(vector,i_),_c) type;
     typedef T value_type;
 };
 #endif
@@ -53,25 +53,25 @@
 #else // "brute force" implementation
 
 #   define AUX778076_VECTOR_C_PARAM_FUNC(unused, i_, param) \
-    BOOST_PP_COMMA_IF(i_) \
-    integral_c<T,BOOST_PP_CAT(param,i_)> \
+    NDNBOOST_PP_COMMA_IF(i_) \
+    integral_c<T,NDNBOOST_PP_CAT(param,i_)> \
     /**/
 
 template<
       typename T
-    , BOOST_PP_ENUM_PARAMS(i_, T C)
+    , NDNBOOST_PP_ENUM_PARAMS(i_, T C)
     >
-struct BOOST_PP_CAT(BOOST_PP_CAT(vector,i_),_c)
-    : BOOST_PP_CAT(vector,i_)< BOOST_PP_REPEAT(i_,AUX778076_VECTOR_C_PARAM_FUNC,C) >
+struct NDNBOOST_PP_CAT(NDNBOOST_PP_CAT(vector,i_),_c)
+    : NDNBOOST_PP_CAT(vector,i_)< NDNBOOST_PP_REPEAT(i_,AUX778076_VECTOR_C_PARAM_FUNC,C) >
 {
-    typedef BOOST_PP_CAT(BOOST_PP_CAT(vector,i_),_c) type;
+    typedef NDNBOOST_PP_CAT(NDNBOOST_PP_CAT(vector,i_),_c) type;
     typedef T value_type;
 };
 
 #   undef AUX778076_VECTOR_C_PARAM_FUNC
 
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
+#endif // NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
 
 #undef i_
 
-#endif // BOOST_PP_IS_ITERATING
+#endif // NDNBOOST_PP_IS_ITERATING
diff --git a/include/ndnboost/mpl/vector/aux_/pop_back.hpp b/include/ndnboost/mpl/vector/aux_/pop_back.hpp
index d80bd67..fb603aa 100644
--- a/include/ndnboost/mpl/vector/aux_/pop_back.hpp
+++ b/include/ndnboost/mpl/vector/aux_/pop_back.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_VECTOR_AUX_POP_BACK_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_POP_BACK_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_VECTOR_AUX_POP_BACK_HPP_INCLUDED
+#define NDNBOOST_MPL_VECTOR_AUX_POP_BACK_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -17,7 +17,7 @@
 #include <ndnboost/mpl/pop_back_fwd.hpp>
 #include <ndnboost/mpl/aux_/config/typeof.hpp>
 
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
+#if defined(NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
 
 #   include <ndnboost/mpl/vector/aux_/item.hpp>
 #   include <ndnboost/mpl/vector/aux_/tag.hpp>
@@ -35,6 +35,6 @@
 
 }}
 
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
+#endif // NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
 
-#endif // BOOST_MPL_VECTOR_AUX_POP_BACK_HPP_INCLUDED
+#endif // NDNBOOST_MPL_VECTOR_AUX_POP_BACK_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/vector/aux_/pop_front.hpp b/include/ndnboost/mpl/vector/aux_/pop_front.hpp
index da7e7a8..497b540 100644
--- a/include/ndnboost/mpl/vector/aux_/pop_front.hpp
+++ b/include/ndnboost/mpl/vector/aux_/pop_front.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_VECTOR_AUX_POP_FRONT_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_POP_FRONT_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_VECTOR_AUX_POP_FRONT_HPP_INCLUDED
+#define NDNBOOST_MPL_VECTOR_AUX_POP_FRONT_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -17,7 +17,7 @@
 #include <ndnboost/mpl/pop_front_fwd.hpp>
 #include <ndnboost/mpl/aux_/config/typeof.hpp>
 
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
+#if defined(NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
 
 #   include <ndnboost/mpl/vector/aux_/item.hpp>
 #   include <ndnboost/mpl/vector/aux_/tag.hpp>
@@ -35,6 +35,6 @@
 
 }}
 
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
+#endif // NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
 
-#endif // BOOST_MPL_VECTOR_AUX_POP_FRONT_HPP_INCLUDED
+#endif // NDNBOOST_MPL_VECTOR_AUX_POP_FRONT_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/vector/aux_/preprocessed/no_ctps/vector10.hpp b/include/ndnboost/mpl/vector/aux_/preprocessed/no_ctps/vector10.hpp
index 08300c6..1f9ae7f 100644
--- a/include/ndnboost/mpl/vector/aux_/preprocessed/no_ctps/vector10.hpp
+++ b/include/ndnboost/mpl/vector/aux_/preprocessed/no_ctps/vector10.hpp
@@ -27,7 +27,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -131,7 +131,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -268,7 +268,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -406,7 +406,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -549,7 +549,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -693,7 +693,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -843,7 +843,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -994,7 +994,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -1150,7 +1150,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -1307,7 +1307,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -1469,7 +1469,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
diff --git a/include/ndnboost/mpl/vector/aux_/preprocessed/no_ctps/vector20.hpp b/include/ndnboost/mpl/vector/aux_/preprocessed/no_ctps/vector20.hpp
index fc56907..2fb6d7d 100644
--- a/include/ndnboost/mpl/vector/aux_/preprocessed/no_ctps/vector20.hpp
+++ b/include/ndnboost/mpl/vector/aux_/preprocessed/no_ctps/vector20.hpp
@@ -119,7 +119,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -288,7 +288,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -458,7 +458,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -633,7 +633,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -809,7 +809,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -991,7 +991,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -1174,7 +1174,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -1362,7 +1362,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -1551,7 +1551,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -1745,7 +1745,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
diff --git a/include/ndnboost/mpl/vector/aux_/preprocessed/no_ctps/vector30.hpp b/include/ndnboost/mpl/vector/aux_/preprocessed/no_ctps/vector30.hpp
index 7bbc9e0..d0705f6 100644
--- a/include/ndnboost/mpl/vector/aux_/preprocessed/no_ctps/vector30.hpp
+++ b/include/ndnboost/mpl/vector/aux_/preprocessed/no_ctps/vector30.hpp
@@ -151,7 +151,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -352,7 +352,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -554,7 +554,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -761,7 +761,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -969,7 +969,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -1183,7 +1183,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -1398,7 +1398,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -1618,7 +1618,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -1839,7 +1839,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -2065,7 +2065,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
diff --git a/include/ndnboost/mpl/vector/aux_/preprocessed/no_ctps/vector40.hpp b/include/ndnboost/mpl/vector/aux_/preprocessed/no_ctps/vector40.hpp
index bbcfe78..b520455 100644
--- a/include/ndnboost/mpl/vector/aux_/preprocessed/no_ctps/vector40.hpp
+++ b/include/ndnboost/mpl/vector/aux_/preprocessed/no_ctps/vector40.hpp
@@ -183,7 +183,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -416,7 +416,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -650,7 +650,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -889,7 +889,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -1129,7 +1129,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -1375,7 +1375,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -1622,7 +1622,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -1874,7 +1874,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -2127,7 +2127,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -2385,7 +2385,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
diff --git a/include/ndnboost/mpl/vector/aux_/preprocessed/no_ctps/vector50.hpp b/include/ndnboost/mpl/vector/aux_/preprocessed/no_ctps/vector50.hpp
index 26ca77d..2e6e5de 100644
--- a/include/ndnboost/mpl/vector/aux_/preprocessed/no_ctps/vector50.hpp
+++ b/include/ndnboost/mpl/vector/aux_/preprocessed/no_ctps/vector50.hpp
@@ -215,7 +215,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -480,7 +480,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -746,7 +746,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -1017,7 +1017,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -1289,7 +1289,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -1567,7 +1567,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -1846,7 +1846,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -2130,7 +2130,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -2415,7 +2415,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
@@ -2705,7 +2705,7 @@
 {
     template< typename V_, typename N > struct apply
     {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
+        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
             ::template result_<V_>::type type;
     };
 };
diff --git a/include/ndnboost/mpl/vector/aux_/push_back.hpp b/include/ndnboost/mpl/vector/aux_/push_back.hpp
index d2722b2..f61d9b2 100644
--- a/include/ndnboost/mpl/vector/aux_/push_back.hpp
+++ b/include/ndnboost/mpl/vector/aux_/push_back.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_VECTOR_AUX_PUSH_BACK_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_PUSH_BACK_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_VECTOR_AUX_PUSH_BACK_HPP_INCLUDED
+#define NDNBOOST_MPL_VECTOR_AUX_PUSH_BACK_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -17,7 +17,7 @@
 #include <ndnboost/mpl/push_back_fwd.hpp>
 #include <ndnboost/mpl/aux_/config/typeof.hpp>
 
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
+#if defined(NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
 
 #   include <ndnboost/mpl/vector/aux_/item.hpp>
 #   include <ndnboost/mpl/vector/aux_/tag.hpp>
@@ -37,4 +37,4 @@
 
 #endif 
 
-#endif // BOOST_MPL_VECTOR_AUX_PUSH_BACK_HPP_INCLUDED
+#endif // NDNBOOST_MPL_VECTOR_AUX_PUSH_BACK_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/vector/aux_/push_front.hpp b/include/ndnboost/mpl/vector/aux_/push_front.hpp
index 1200174..0643fef 100644
--- a/include/ndnboost/mpl/vector/aux_/push_front.hpp
+++ b/include/ndnboost/mpl/vector/aux_/push_front.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_VECTOR_AUX_PUSH_FRONT_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_PUSH_FRONT_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_VECTOR_AUX_PUSH_FRONT_HPP_INCLUDED
+#define NDNBOOST_MPL_VECTOR_AUX_PUSH_FRONT_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -17,7 +17,7 @@
 #include <ndnboost/mpl/push_front_fwd.hpp>
 #include <ndnboost/mpl/aux_/config/typeof.hpp>
 
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
+#if defined(NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
 
 #   include <ndnboost/mpl/vector/aux_/item.hpp>
 #   include <ndnboost/mpl/vector/aux_/tag.hpp>
@@ -35,6 +35,6 @@
 
 }}
 
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
+#endif // NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
 
-#endif // BOOST_MPL_VECTOR_AUX_PUSH_FRONT_HPP_INCLUDED
+#endif // NDNBOOST_MPL_VECTOR_AUX_PUSH_FRONT_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/vector/aux_/size.hpp b/include/ndnboost/mpl/vector/aux_/size.hpp
index dc9749f..e387afa 100644
--- a/include/ndnboost/mpl/vector/aux_/size.hpp
+++ b/include/ndnboost/mpl/vector/aux_/size.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_VECTOR_AUX_SIZE_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_SIZE_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_VECTOR_AUX_SIZE_HPP_INCLUDED
+#define NDNBOOST_MPL_VECTOR_AUX_SIZE_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -22,7 +22,7 @@
 
 namespace ndnboost { namespace mpl {
 
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
+#if defined(NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
 
 template<>
 struct size_impl< aux::vector_tag >
@@ -32,7 +32,7 @@
 
 #else
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template< long N >
 struct size_impl< aux::vector_tag<N> >
@@ -40,10 +40,10 @@
 {
 };
 
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
+#endif // NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
 
 }}
 
-#endif // BOOST_MPL_VECTOR_AUX_SIZE_HPP_INCLUDED
+#endif // NDNBOOST_MPL_VECTOR_AUX_SIZE_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/vector/aux_/tag.hpp b/include/ndnboost/mpl/vector/aux_/tag.hpp
index 9576454..bcd51d4 100644
--- a/include/ndnboost/mpl/vector/aux_/tag.hpp
+++ b/include/ndnboost/mpl/vector/aux_/tag.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_VECTOR_AUX_TAG_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_TAG_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_VECTOR_AUX_TAG_HPP_INCLUDED
+#define NDNBOOST_MPL_VECTOR_AUX_TAG_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -21,12 +21,12 @@
 
 struct v_iter_tag;
 
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
+#if defined(NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
 struct vector_tag;
 #else
-template< BOOST_MPL_AUX_NTTP_DECL(long, N) > struct vector_tag;
+template< NDNBOOST_MPL_AUX_NTTP_DECL(long, N) > struct vector_tag;
 #endif
 
 }}}
 
-#endif // BOOST_MPL_VECTOR_AUX_TAG_HPP_INCLUDED
+#endif // NDNBOOST_MPL_VECTOR_AUX_TAG_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/vector/aux_/vector0.hpp b/include/ndnboost/mpl/vector/aux_/vector0.hpp
index a54058b..8aadb13 100644
--- a/include/ndnboost/mpl/vector/aux_/vector0.hpp
+++ b/include/ndnboost/mpl/vector/aux_/vector0.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_VECTOR_AUX_VECTOR0_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_VECTOR0_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_VECTOR_AUX_VECTOR0_HPP_INCLUDED
+#define NDNBOOST_MPL_VECTOR_AUX_VECTOR0_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -29,7 +29,7 @@
 
 template<> struct vector0<na>
 {
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
+#if defined(NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
     typedef aux::vector_tag tag;
     typedef vector0         type;
     typedef long_<32768>    lower_bound_;
@@ -49,4 +49,4 @@
 
 }}
 
-#endif // BOOST_MPL_VECTOR_AUX_VECTOR0_HPP_INCLUDED
+#endif // NDNBOOST_MPL_VECTOR_AUX_VECTOR0_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/vector/vector0.hpp b/include/ndnboost/mpl/vector/vector0.hpp
index f23f5d2..fe11b61 100644
--- a/include/ndnboost/mpl/vector/vector0.hpp
+++ b/include/ndnboost/mpl/vector/vector0.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_VECTOR_VECTOR0_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_VECTOR0_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_VECTOR_VECTOR0_HPP_INCLUDED
+#define NDNBOOST_MPL_VECTOR_VECTOR0_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -31,4 +31,4 @@
 #include <ndnboost/mpl/vector/aux_/begin_end.hpp>
 #include <ndnboost/mpl/vector/aux_/tag.hpp>
 
-#endif // BOOST_MPL_VECTOR_VECTOR0_HPP_INCLUDED
+#endif // NDNBOOST_MPL_VECTOR_VECTOR0_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/vector/vector0_c.hpp b/include/ndnboost/mpl/vector/vector0_c.hpp
index 6b28472..1c6bbab 100644
--- a/include/ndnboost/mpl/vector/vector0_c.hpp
+++ b/include/ndnboost/mpl/vector/vector0_c.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_VECTOR_VECTOR0_C_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_VECTOR0_C_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_VECTOR_VECTOR0_C_HPP_INCLUDED
+#define NDNBOOST_MPL_VECTOR_VECTOR0_C_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -28,4 +28,4 @@
 
 }}
 
-#endif // BOOST_MPL_VECTOR_VECTOR0_C_HPP_INCLUDED
+#endif // NDNBOOST_MPL_VECTOR_VECTOR0_C_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/vector/vector10.hpp b/include/ndnboost/mpl/vector/vector10.hpp
index 45c937a..0db48cb 100644
--- a/include/ndnboost/mpl/vector/vector10.hpp
+++ b/include/ndnboost/mpl/vector/vector10.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_VECTOR_VECTOR10_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_VECTOR10_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_VECTOR_VECTOR10_HPP_INCLUDED
+#define NDNBOOST_MPL_VECTOR_VECTOR10_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -14,16 +14,16 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/vector/vector0.hpp>
 #endif
 
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
-#   define BOOST_MPL_PREPROCESSED_HEADER vector10.hpp
+#   define NDNBOOST_MPL_PREPROCESSED_HEADER vector10.hpp
 #   include <ndnboost/mpl/vector/aux_/include_preprocessed.hpp>
 
 #else
@@ -34,12 +34,12 @@
 
 namespace ndnboost { namespace mpl {
 
-#   define BOOST_PP_ITERATION_PARAMS_1 \
+#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
     (3,(0, 10, <ndnboost/mpl/vector/aux_/numbered.hpp>))
-#   include BOOST_PP_ITERATE()
+#   include NDNBOOST_PP_ITERATE()
 
 }}
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
 
-#endif // BOOST_MPL_VECTOR_VECTOR10_HPP_INCLUDED
+#endif // NDNBOOST_MPL_VECTOR_VECTOR10_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/vector/vector10_c.hpp b/include/ndnboost/mpl/vector/vector10_c.hpp
index 68efb63..cafd1f9 100644
--- a/include/ndnboost/mpl/vector/vector10_c.hpp
+++ b/include/ndnboost/mpl/vector/vector10_c.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_VECTOR_VECTOR10_C_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_VECTOR10_C_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_VECTOR_VECTOR10_C_HPP_INCLUDED
+#define NDNBOOST_MPL_VECTOR_VECTOR10_C_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -14,17 +14,17 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/vector/vector0_c.hpp>
 #   include <ndnboost/mpl/vector/vector10.hpp>
 #endif
 
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
-#   define BOOST_MPL_PREPROCESSED_HEADER vector10_c.hpp
+#   define NDNBOOST_MPL_PREPROCESSED_HEADER vector10_c.hpp
 #   include <ndnboost/mpl/vector/aux_/include_preprocessed.hpp>
 
 #else
@@ -35,12 +35,12 @@
 
 namespace ndnboost { namespace mpl {
 
-#   define BOOST_PP_ITERATION_PARAMS_1 \
+#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
     (3,(1, 10, <ndnboost/mpl/vector/aux_/numbered_c.hpp>))
-#   include BOOST_PP_ITERATE()
+#   include NDNBOOST_PP_ITERATE()
 
 }}
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
 
-#endif // BOOST_MPL_VECTOR_VECTOR10_C_HPP_INCLUDED
+#endif // NDNBOOST_MPL_VECTOR_VECTOR10_C_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/vector/vector20.hpp b/include/ndnboost/mpl/vector/vector20.hpp
index ae54255..7b0a0d4 100644
--- a/include/ndnboost/mpl/vector/vector20.hpp
+++ b/include/ndnboost/mpl/vector/vector20.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_VECTOR_VECTOR20_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_VECTOR20_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_VECTOR_VECTOR20_HPP_INCLUDED
+#define NDNBOOST_MPL_VECTOR_VECTOR20_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -14,16 +14,16 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/vector/vector10.hpp>
 #endif
 
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
-#   define BOOST_MPL_PREPROCESSED_HEADER vector20.hpp
+#   define NDNBOOST_MPL_PREPROCESSED_HEADER vector20.hpp
 #   include <ndnboost/mpl/vector/aux_/include_preprocessed.hpp>
 
 #else
@@ -34,12 +34,12 @@
 
 namespace ndnboost { namespace mpl {
 
-#   define BOOST_PP_ITERATION_PARAMS_1 \
+#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
     (3,(11, 20, <ndnboost/mpl/vector/aux_/numbered.hpp>))
-#   include BOOST_PP_ITERATE()
+#   include NDNBOOST_PP_ITERATE()
 
 }}
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
 
-#endif // BOOST_MPL_VECTOR_VECTOR20_HPP_INCLUDED
+#endif // NDNBOOST_MPL_VECTOR_VECTOR20_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/vector/vector20_c.hpp b/include/ndnboost/mpl/vector/vector20_c.hpp
index fe8d591..0324ed2 100644
--- a/include/ndnboost/mpl/vector/vector20_c.hpp
+++ b/include/ndnboost/mpl/vector/vector20_c.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_VECTOR_VECTOR20_C_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_VECTOR20_C_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_VECTOR_VECTOR20_C_HPP_INCLUDED
+#define NDNBOOST_MPL_VECTOR_VECTOR20_C_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -14,17 +14,17 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/vector/vector10_c.hpp>
 #   include <ndnboost/mpl/vector/vector20.hpp>
 #endif
 
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
-#   define BOOST_MPL_PREPROCESSED_HEADER vector20_c.hpp
+#   define NDNBOOST_MPL_PREPROCESSED_HEADER vector20_c.hpp
 #   include <ndnboost/mpl/vector/aux_/include_preprocessed.hpp>
 
 #else
@@ -35,12 +35,12 @@
 
 namespace ndnboost { namespace mpl {
 
-#   define BOOST_PP_ITERATION_PARAMS_1 \
+#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
     (3,(11, 20, <ndnboost/mpl/vector/aux_/numbered_c.hpp>))
-#   include BOOST_PP_ITERATE()
+#   include NDNBOOST_PP_ITERATE()
 
 }}
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
 
-#endif // BOOST_MPL_VECTOR_VECTOR20_C_HPP_INCLUDED
+#endif // NDNBOOST_MPL_VECTOR_VECTOR20_C_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/vector/vector30.hpp b/include/ndnboost/mpl/vector/vector30.hpp
index 5898155..4ee4e46 100644
--- a/include/ndnboost/mpl/vector/vector30.hpp
+++ b/include/ndnboost/mpl/vector/vector30.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_VECTOR_VECTOR30_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_VECTOR30_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_VECTOR_VECTOR30_HPP_INCLUDED
+#define NDNBOOST_MPL_VECTOR_VECTOR30_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -14,16 +14,16 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/vector/vector20.hpp>
 #endif
 
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
-#   define BOOST_MPL_PREPROCESSED_HEADER vector30.hpp
+#   define NDNBOOST_MPL_PREPROCESSED_HEADER vector30.hpp
 #   include <ndnboost/mpl/vector/aux_/include_preprocessed.hpp>
 
 #else
@@ -34,12 +34,12 @@
 
 namespace ndnboost { namespace mpl {
 
-#   define BOOST_PP_ITERATION_PARAMS_1 \
+#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
     (3,(21, 30, <ndnboost/mpl/vector/aux_/numbered.hpp>))
-#   include BOOST_PP_ITERATE()
+#   include NDNBOOST_PP_ITERATE()
 
 }}
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
 
-#endif // BOOST_MPL_VECTOR_VECTOR30_HPP_INCLUDED
+#endif // NDNBOOST_MPL_VECTOR_VECTOR30_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/vector/vector30_c.hpp b/include/ndnboost/mpl/vector/vector30_c.hpp
index 9cc9300..5ca10f2 100644
--- a/include/ndnboost/mpl/vector/vector30_c.hpp
+++ b/include/ndnboost/mpl/vector/vector30_c.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_VECTOR_VECTOR30_C_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_VECTOR30_C_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_VECTOR_VECTOR30_C_HPP_INCLUDED
+#define NDNBOOST_MPL_VECTOR_VECTOR30_C_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -14,17 +14,17 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/vector/vector20_c.hpp>
 #   include <ndnboost/mpl/vector/vector30.hpp>
 #endif
 
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+ && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
-#   define BOOST_MPL_PREPROCESSED_HEADER vector30_c.hpp
+#   define NDNBOOST_MPL_PREPROCESSED_HEADER vector30_c.hpp
 #   include <ndnboost/mpl/vector/aux_/include_preprocessed.hpp>
 
 #else
@@ -36,12 +36,12 @@
 
 namespace ndnboost { namespace mpl {
 
-#   define BOOST_PP_ITERATION_PARAMS_1 \
+#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
     (3,(21, 30, <ndnboost/mpl/vector/aux_/numbered_c.hpp>))
-#   include BOOST_PP_ITERATE()
+#   include NDNBOOST_PP_ITERATE()
 
 }}
 
-#endif // BOOST_MPL_CFG_USE_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_CFG_USE_PREPROCESSED_HEADERS
 
-#endif // BOOST_MPL_VECTOR_VECTOR30_C_HPP_INCLUDED
+#endif // NDNBOOST_MPL_VECTOR_VECTOR30_C_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/vector/vector40.hpp b/include/ndnboost/mpl/vector/vector40.hpp
index f92d0a3..555ffd7 100644
--- a/include/ndnboost/mpl/vector/vector40.hpp
+++ b/include/ndnboost/mpl/vector/vector40.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_VECTOR_VECTOR40_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_VECTOR40_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_VECTOR_VECTOR40_HPP_INCLUDED
+#define NDNBOOST_MPL_VECTOR_VECTOR40_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -14,16 +14,16 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/vector/vector30.hpp>
 #endif
 
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
-#   define BOOST_MPL_PREPROCESSED_HEADER vector40.hpp
+#   define NDNBOOST_MPL_PREPROCESSED_HEADER vector40.hpp
 #   include <ndnboost/mpl/vector/aux_/include_preprocessed.hpp>
 
 #else
@@ -34,12 +34,12 @@
 
 namespace ndnboost { namespace mpl {
 
-#   define BOOST_PP_ITERATION_PARAMS_1 \
+#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
     (3,(31, 40, <ndnboost/mpl/vector/aux_/numbered.hpp>))
-#   include BOOST_PP_ITERATE()
+#   include NDNBOOST_PP_ITERATE()
 
 }}
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
 
-#endif // BOOST_MPL_VECTOR_VECTOR40_HPP_INCLUDED
+#endif // NDNBOOST_MPL_VECTOR_VECTOR40_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/vector/vector40_c.hpp b/include/ndnboost/mpl/vector/vector40_c.hpp
index 10969f4..5047a02 100644
--- a/include/ndnboost/mpl/vector/vector40_c.hpp
+++ b/include/ndnboost/mpl/vector/vector40_c.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_VECTOR_VECTOR40_C_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_VECTOR40_C_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_VECTOR_VECTOR40_C_HPP_INCLUDED
+#define NDNBOOST_MPL_VECTOR_VECTOR40_C_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -14,17 +14,17 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/vector/vector30_c.hpp>
 #   include <ndnboost/mpl/vector/vector40.hpp>
 #endif
 
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
-#   define BOOST_MPL_PREPROCESSED_HEADER vector40_c.hpp
+#   define NDNBOOST_MPL_PREPROCESSED_HEADER vector40_c.hpp
 #   include <ndnboost/mpl/vector/aux_/include_preprocessed.hpp>
 
 #else
@@ -35,12 +35,12 @@
 
 namespace ndnboost { namespace mpl {
 
-#   define BOOST_PP_ITERATION_PARAMS_1 \
+#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
     (3,(31, 40, <ndnboost/mpl/vector/aux_/numbered_c.hpp>))
-#   include BOOST_PP_ITERATE()
+#   include NDNBOOST_PP_ITERATE()
 
 }}
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
 
-#endif // BOOST_MPL_VECTOR_VECTOR40_C_HPP_INCLUDED
+#endif // NDNBOOST_MPL_VECTOR_VECTOR40_C_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/vector/vector50.hpp b/include/ndnboost/mpl/vector/vector50.hpp
index 998e950..6fa916a 100644
--- a/include/ndnboost/mpl/vector/vector50.hpp
+++ b/include/ndnboost/mpl/vector/vector50.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_VECTOR_VECTOR50_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_VECTOR50_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_VECTOR_VECTOR50_HPP_INCLUDED
+#define NDNBOOST_MPL_VECTOR_VECTOR50_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -14,16 +14,16 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/vector/vector40.hpp>
 #endif
 
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
-#   define BOOST_MPL_PREPROCESSED_HEADER vector50.hpp
+#   define NDNBOOST_MPL_PREPROCESSED_HEADER vector50.hpp
 #   include <ndnboost/mpl/vector/aux_/include_preprocessed.hpp>
 
 #else
@@ -34,12 +34,12 @@
 
 namespace ndnboost { namespace mpl {
 
-#   define BOOST_PP_ITERATION_PARAMS_1 \
+#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
     (3,(41, 50, <ndnboost/mpl/vector/aux_/numbered.hpp>))
-#   include BOOST_PP_ITERATE()
+#   include NDNBOOST_PP_ITERATE()
 
 }}
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
 
-#endif // BOOST_MPL_VECTOR_VECTOR50_HPP_INCLUDED
+#endif // NDNBOOST_MPL_VECTOR_VECTOR50_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/vector/vector50_c.hpp b/include/ndnboost/mpl/vector/vector50_c.hpp
index ea057be..3bdcf64 100644
--- a/include/ndnboost/mpl/vector/vector50_c.hpp
+++ b/include/ndnboost/mpl/vector/vector50_c.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_VECTOR_VECTOR50_C_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_VECTOR50_C_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_VECTOR_VECTOR50_C_HPP_INCLUDED
+#define NDNBOOST_MPL_VECTOR_VECTOR50_C_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2000-2004
 //
@@ -14,17 +14,17 @@
 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
 // $Revision: 49267 $
 
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 #   include <ndnboost/mpl/vector/vector40_c.hpp>
 #   include <ndnboost/mpl/vector/vector50.hpp>
 #endif
 
 #include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
 
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+ && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
 
-#   define BOOST_MPL_PREPROCESSED_HEADER vector50_c.hpp
+#   define NDNBOOST_MPL_PREPROCESSED_HEADER vector50_c.hpp
 #   include <ndnboost/mpl/vector/aux_/include_preprocessed.hpp>
 
 #else
@@ -35,12 +35,12 @@
 
 namespace ndnboost { namespace mpl {
 
-#   define BOOST_PP_ITERATION_PARAMS_1 \
+#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
     (3,(41, 50, <ndnboost/mpl/vector/aux_/numbered_c.hpp>))
-#   include BOOST_PP_ITERATE()
+#   include NDNBOOST_PP_ITERATE()
 
 }}
 
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
 
-#endif // BOOST_MPL_VECTOR_VECTOR50_C_HPP_INCLUDED
+#endif // NDNBOOST_MPL_VECTOR_VECTOR50_C_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/void.hpp b/include/ndnboost/mpl/void.hpp
index a5c7aef..9aa237b 100644
--- a/include/ndnboost/mpl/void.hpp
+++ b/include/ndnboost/mpl/void.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_VOID_HPP_INCLUDED
-#define BOOST_MPL_VOID_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_VOID_HPP_INCLUDED
+#define NDNBOOST_MPL_VOID_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2001-2004
 //
@@ -20,7 +20,7 @@
 #include <ndnboost/mpl/aux_/config/msvc.hpp>
 #include <ndnboost/mpl/aux_/config/workaround.hpp>
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 
 //  [JDG Feb-4-2003] made void_ a complete type to allow it to be
 //  instantiated so that it can be passed in as an object that can be
@@ -28,7 +28,7 @@
 //  a zero arity functor evaluation call.
 struct void_ { typedef void_ type; };
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
 
 namespace ndnboost { namespace mpl {
 
@@ -36,7 +36,7 @@
 struct is_void_
     : false_
 {
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
     using false_::value;
 #endif
 };
@@ -45,7 +45,7 @@
 struct is_void_<void_>
     : true_
 {
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
     using true_::value;
 #endif
 };
@@ -54,7 +54,7 @@
 struct is_not_void_
     : true_
 {
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
     using true_::value;
 #endif
 };
@@ -63,14 +63,14 @@
 struct is_not_void_<void_>
     : false_
 {
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
     using false_::value;
 #endif
 };
 
-BOOST_MPL_AUX_NA_SPEC(1, is_void_)
-BOOST_MPL_AUX_NA_SPEC(1, is_not_void_)
+NDNBOOST_MPL_AUX_NA_SPEC(1, is_void_)
+NDNBOOST_MPL_AUX_NA_SPEC(1, is_not_void_)
 
 }}
 
-#endif // BOOST_MPL_VOID_HPP_INCLUDED
+#endif // NDNBOOST_MPL_VOID_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/void_fwd.hpp b/include/ndnboost/mpl/void_fwd.hpp
index bb493d7..0f2a76d 100644
--- a/include/ndnboost/mpl/void_fwd.hpp
+++ b/include/ndnboost/mpl/void_fwd.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_MPL_VOID_FWD_HPP_INCLUDED
-#define BOOST_MPL_VOID_FWD_HPP_INCLUDED
+#ifndef NDNBOOST_MPL_VOID_FWD_HPP_INCLUDED
+#define NDNBOOST_MPL_VOID_FWD_HPP_INCLUDED
 
 // Copyright Aleksey Gurtovoy 2001-2004
 //
@@ -16,11 +16,11 @@
 
 #include <ndnboost/mpl/aux_/adl_barrier.hpp>
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
 
 struct void_;
 
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-BOOST_MPL_AUX_ADL_BARRIER_DECL(void_)
+NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+NDNBOOST_MPL_AUX_ADL_BARRIER_DECL(void_)
 
-#endif // BOOST_MPL_VOID_FWD_HPP_INCLUDED
+#endif // NDNBOOST_MPL_VOID_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/next_prior.hpp b/include/ndnboost/next_prior.hpp
index fe00ff1..4e60280 100644
--- a/include/ndnboost/next_prior.hpp
+++ b/include/ndnboost/next_prior.hpp
@@ -9,8 +9,8 @@
 //  Revision History
 //  13 Dec 2003  Added next(x, n) and prior(x, n) (Daniel Walker)
 
-#ifndef BOOST_NEXT_PRIOR_HPP_INCLUDED
-#define BOOST_NEXT_PRIOR_HPP_INCLUDED
+#ifndef NDNBOOST_NEXT_PRIOR_HPP_INCLUDED
+#define NDNBOOST_NEXT_PRIOR_HPP_INCLUDED
 
 #include <iterator>
 
@@ -48,4 +48,4 @@
 
 } // namespace ndnboost
 
-#endif  // BOOST_NEXT_PRIOR_HPP_INCLUDED
+#endif  // NDNBOOST_NEXT_PRIOR_HPP_INCLUDED
diff --git a/include/ndnboost/non_type.hpp b/include/ndnboost/non_type.hpp
index 160d6f1..5550b1c 100644
--- a/include/ndnboost/non_type.hpp
+++ b/include/ndnboost/non_type.hpp
@@ -8,8 +8,8 @@
 //
 // ------------------------------------------------------
 
-#ifndef BOOST_NON_TYPE_HPP_GP_20030417
-#define BOOST_NON_TYPE_HPP_GP_20030417
+#ifndef NDNBOOST_NON_TYPE_HPP_GP_20030417
+#define NDNBOOST_NON_TYPE_HPP_GP_20030417
 
 
 namespace ndnboost {
diff --git a/include/ndnboost/noncopyable.hpp b/include/ndnboost/noncopyable.hpp
index 6c4beeb..3ae9d11 100644
--- a/include/ndnboost/noncopyable.hpp
+++ b/include/ndnboost/noncopyable.hpp
@@ -6,8 +6,8 @@
 
 //  See http://www.boost.org/libs/utility for documentation.
 
-#ifndef BOOST_NONCOPYABLE_HPP_INCLUDED
-#define BOOST_NONCOPYABLE_HPP_INCLUDED
+#ifndef NDNBOOST_NONCOPYABLE_HPP_INCLUDED
+#define NDNBOOST_NONCOPYABLE_HPP_INCLUDED
 
 #include <ndnboost/config.hpp>
 
@@ -23,14 +23,14 @@
   class noncopyable
   {
    protected:
-#ifndef BOOST_NO_DEFAULTED_FUNCTIONS
-    BOOST_CONSTEXPR noncopyable() = default;
+#ifndef NDNBOOST_NO_DEFAULTED_FUNCTIONS
+    NDNBOOST_CONSTEXPR noncopyable() = default;
     ~noncopyable() = default;
 #else
     noncopyable() {}
       ~noncopyable() {}
 #endif
-#ifndef BOOST_NO_DELETED_FUNCTIONS
+#ifndef NDNBOOST_NO_DELETED_FUNCTIONS
         noncopyable( const noncopyable& ) = delete;
         noncopyable& operator=( const noncopyable& ) = delete;
 #else
@@ -45,4 +45,4 @@
 
 } // namespace ndnboost
 
-#endif  // BOOST_NONCOPYABLE_HPP_INCLUDED
+#endif  // NDNBOOST_NONCOPYABLE_HPP_INCLUDED
diff --git a/include/ndnboost/none.hpp b/include/ndnboost/none.hpp
index 58c32c6..44e1921 100644
--- a/include/ndnboost/none.hpp
+++ b/include/ndnboost/none.hpp
@@ -9,8 +9,8 @@
 // You are welcome to contact the author at:
 //  fernando_cacciola@hotmail.com
 //
-#ifndef BOOST_NONE_17SEP2003_HPP
-#define BOOST_NONE_17SEP2003_HPP
+#ifndef NDNBOOST_NONE_17SEP2003_HPP
+#define NDNBOOST_NONE_17SEP2003_HPP
 
 #include "ndnboost/none_t.hpp"
 
diff --git a/include/ndnboost/none_t.hpp b/include/ndnboost/none_t.hpp
index baf3004..3684288 100644
--- a/include/ndnboost/none_t.hpp
+++ b/include/ndnboost/none_t.hpp
@@ -9,8 +9,8 @@
 // You are welcome to contact the author at:
 //  fernando_cacciola@hotmail.com
 //
-#ifndef BOOST_NONE_T_17SEP2003_HPP
-#define BOOST_NONE_T_17SEP2003_HPP
+#ifndef NDNBOOST_NONE_T_17SEP2003_HPP
+#define NDNBOOST_NONE_T_17SEP2003_HPP
 
 namespace ndnboost {
 
diff --git a/include/ndnboost/numeric/conversion/bounds.hpp b/include/ndnboost/numeric/conversion/bounds.hpp
index 2792ab0..519de81 100644
--- a/include/ndnboost/numeric/conversion/bounds.hpp
+++ b/include/ndnboost/numeric/conversion/bounds.hpp
@@ -7,8 +7,8 @@
 //
 // Contact the author at: fernando_cacciola@hotmail.com
 // 
-#ifndef BOOST_NUMERIC_CONVERSION_BOUNDS_12NOV2002_HPP
-#define BOOST_NUMERIC_CONVERSION_BOUNDS_12NOV2002_HPP
+#ifndef NDNBOOST_NUMERIC_CONVERSION_BOUNDS_12NOV2002_HPP
+#define NDNBOOST_NUMERIC_CONVERSION_BOUNDS_12NOV2002_HPP
 
 #include "ndnboost/numeric/conversion/detail/bounds.hpp"
 
diff --git a/include/ndnboost/numeric/conversion/cast.hpp b/include/ndnboost/numeric/conversion/cast.hpp
index de542eb..5799fcd 100644
--- a/include/ndnboost/numeric/conversion/cast.hpp
+++ b/include/ndnboost/numeric/conversion/cast.hpp
@@ -18,12 +18,12 @@
 //    23 Jan 2004 Inital add to cvs (post review)s
 //    22 Jun 2011 Added support for specializing cast policies via numeric_cast_traits (Brandon Kohn).
 //
-#ifndef BOOST_NUMERIC_CONVERSION_CAST_25OCT2001_HPP
-#define BOOST_NUMERIC_CONVERSION_CAST_25OCT2001_HPP
+#ifndef NDNBOOST_NUMERIC_CONVERSION_CAST_25OCT2001_HPP
+#define NDNBOOST_NUMERIC_CONVERSION_CAST_25OCT2001_HPP
 
 #include <ndnboost/detail/workaround.hpp>
 
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582))
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300) || NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x582))
 
 #  include<ndnboost/numeric/conversion/detail/old_numeric_cast.hpp>
 
diff --git a/include/ndnboost/numeric/conversion/conversion_traits.hpp b/include/ndnboost/numeric/conversion/conversion_traits.hpp
index 468acb1..de25d8e 100644
--- a/include/ndnboost/numeric/conversion/conversion_traits.hpp
+++ b/include/ndnboost/numeric/conversion/conversion_traits.hpp
@@ -7,8 +7,8 @@
 //
 // Contact the author at: fernando_cacciola@hotmail.com
 // 
-#ifndef BOOST_NUMERIC_CONVERSION_CONVERSION_TRAITS_FLC_12NOV2002_HPP
-#define BOOST_NUMERIC_CONVERSION_CONVERSION_TRAITS_FLC_12NOV2002_HPP
+#ifndef NDNBOOST_NUMERIC_CONVERSION_CONVERSION_TRAITS_FLC_12NOV2002_HPP
+#define NDNBOOST_NUMERIC_CONVERSION_CONVERSION_TRAITS_FLC_12NOV2002_HPP
 
 #include "ndnboost/numeric/conversion/detail/conversion_traits.hpp"
 #include "ndnboost/detail/workaround.hpp"
@@ -21,7 +21,7 @@
 struct conversion_traits 
     : convdetail::get_conversion_traits<T,S>::type 
 {
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)
     typedef typename convdetail::get_conversion_traits<T,S>::type base_;
     typedef typename base_::target_type     target_type;
     typedef typename base_::source_type     source_type;
diff --git a/include/ndnboost/numeric/conversion/converter.hpp b/include/ndnboost/numeric/conversion/converter.hpp
index ee406a5..95752ff 100644
--- a/include/ndnboost/numeric/conversion/converter.hpp
+++ b/include/ndnboost/numeric/conversion/converter.hpp
@@ -7,8 +7,8 @@
 //
 // Contact the author at: fernando_cacciola@hotmail.com
 // 
-#ifndef BOOST_NUMERIC_CONVERSION_CONVERTER_FLC_12NOV2002_HPP
-#define BOOST_NUMERIC_CONVERSION_CONVERTER_FLC_12NOV2002_HPP
+#ifndef NDNBOOST_NUMERIC_CONVERSION_CONVERTER_FLC_12NOV2002_HPP
+#define NDNBOOST_NUMERIC_CONVERSION_CONVERTER_FLC_12NOV2002_HPP
 
 #include "ndnboost/numeric/conversion/conversion_traits.hpp"
 #include "ndnboost/numeric/conversion/converter_policies.hpp"
@@ -22,7 +22,7 @@
          class S,
          class Traits           = conversion_traits<T,S>,
          class OverflowHandler  = def_overflow_handler,
-         class Float2IntRounder = Trunc< BOOST_DEDUCED_TYPENAME Traits::source_type>  ,
+         class Float2IntRounder = Trunc< NDNBOOST_DEDUCED_TYPENAME Traits::source_type>  ,
          class RawConverter     = raw_converter<Traits>,
          class UserRangeChecker = UseInternalRangeChecker
         >
diff --git a/include/ndnboost/numeric/conversion/converter_policies.hpp b/include/ndnboost/numeric/conversion/converter_policies.hpp
index fd02094..c1c978e 100644
--- a/include/ndnboost/numeric/conversion/converter_policies.hpp
+++ b/include/ndnboost/numeric/conversion/converter_policies.hpp
@@ -7,8 +7,8 @@
 //
 // Contact the author at: fernando_cacciola@hotmail.com
 //
-#ifndef BOOST_NUMERIC_CONVERSION_CONVERTER_POLICIES_FLC_12NOV2002_HPP
-#define BOOST_NUMERIC_CONVERSION_CONVERTER_POLICIES_FLC_12NOV2002_HPP
+#ifndef NDNBOOST_NUMERIC_CONVERSION_CONVERTER_POLICIES_FLC_12NOV2002_HPP
+#define NDNBOOST_NUMERIC_CONVERSION_CONVERTER_POLICIES_FLC_12NOV2002_HPP
 
 #include <typeinfo> // for std::bad_cast
 
@@ -34,7 +34,7 @@
 
   static source_type nearbyint ( argument_type s )
   {
-#if !defined(BOOST_NO_STDC_NAMESPACE)
+#if !defined(NDNBOOST_NO_STDC_NAMESPACE)
     using std::floor ;
     using std::ceil  ;
 #endif
@@ -56,7 +56,7 @@
 
   static source_type nearbyint ( argument_type s )
   {
-#if !defined(BOOST_NO_STDC_NAMESPACE)
+#if !defined(NDNBOOST_NO_STDC_NAMESPACE)
     using std::floor ;
 #endif
 
@@ -75,7 +75,7 @@
 
   static source_type nearbyint ( argument_type s )
   {
-#if !defined(BOOST_NO_STDC_NAMESPACE)
+#if !defined(NDNBOOST_NO_STDC_NAMESPACE)
     using std::ceil ;
 #endif
 
@@ -96,7 +96,7 @@
   {
     // Algorithm contributed by Guillaume Melquiond
 
-#if !defined(BOOST_NO_STDC_NAMESPACE)
+#if !defined(NDNBOOST_NO_STDC_NAMESPACE)
     using std::floor ;
     using std::ceil  ;
 #endif
@@ -159,7 +159,7 @@
 {
   void operator() ( range_check_result r ) // throw(negative_overflow,positive_overflow)
   {
-#ifndef BOOST_NO_EXCEPTIONS
+#ifndef NDNBOOST_NO_EXCEPTIONS
     if ( r == cNegOverflow )
       throw negative_overflow() ;
     else if ( r == cPosOverflow )
diff --git a/include/ndnboost/numeric/conversion/detail/bounds.hpp b/include/ndnboost/numeric/conversion/detail/bounds.hpp
index 34effae..59d3202 100644
--- a/include/ndnboost/numeric/conversion/detail/bounds.hpp
+++ b/include/ndnboost/numeric/conversion/detail/bounds.hpp
@@ -7,8 +7,8 @@
 //
 // Contact the author at: fernando_cacciola@hotmail.com
 // 
-#ifndef BOOST_NUMERIC_CONVERSION_BOUNDS_DETAIL_FLC_12NOV2002_HPP
-#define BOOST_NUMERIC_CONVERSION_BOUNDS_DETAIL_FLC_12NOV2002_HPP
+#ifndef NDNBOOST_NUMERIC_CONVERSION_BOUNDS_DETAIL_FLC_12NOV2002_HPP
+#define NDNBOOST_NUMERIC_CONVERSION_BOUNDS_DETAIL_FLC_12NOV2002_HPP
 
 #include "ndnboost/limits.hpp"
 #include "ndnboost/config.hpp"
@@ -23,8 +23,8 @@
 
     public :
     
-      static N lowest  () { return limits::min BOOST_PREVENT_MACRO_SUBSTITUTION (); }
-      static N highest () { return limits::max BOOST_PREVENT_MACRO_SUBSTITUTION (); }
+      static N lowest  () { return limits::min NDNBOOST_PREVENT_MACRO_SUBSTITUTION (); }
+      static N highest () { return limits::max NDNBOOST_PREVENT_MACRO_SUBSTITUTION (); }
       static N smallest() { return static_cast<N>(1); }
   } ;
 
@@ -35,9 +35,9 @@
 
     public :
     
-      static N lowest  () { return static_cast<N>(-limits::max BOOST_PREVENT_MACRO_SUBSTITUTION ()) ; }
-      static N highest () { return limits::max BOOST_PREVENT_MACRO_SUBSTITUTION (); }
-      static N smallest() { return limits::min BOOST_PREVENT_MACRO_SUBSTITUTION (); }
+      static N lowest  () { return static_cast<N>(-limits::max NDNBOOST_PREVENT_MACRO_SUBSTITUTION ()) ; }
+      static N highest () { return limits::max NDNBOOST_PREVENT_MACRO_SUBSTITUTION (); }
+      static N smallest() { return limits::min NDNBOOST_PREVENT_MACRO_SUBSTITUTION (); }
   } ;
 
   template<class N>
diff --git a/include/ndnboost/numeric/conversion/detail/conversion_traits.hpp b/include/ndnboost/numeric/conversion/detail/conversion_traits.hpp
index 55c7d86..09fe107 100644
--- a/include/ndnboost/numeric/conversion/detail/conversion_traits.hpp
+++ b/include/ndnboost/numeric/conversion/detail/conversion_traits.hpp
@@ -7,8 +7,8 @@
 //
 // Contact the author at: fernando_cacciola@hotmail.com
 // 
-#ifndef BOOST_NUMERIC_CONVERSION_DETAIL_CONVERSION_TRAITS_FLC_12NOV2002_HPP
-#define BOOST_NUMERIC_CONVERSION_DETAIL_CONVERSION_TRAITS_FLC_12NOV2002_HPP
+#ifndef NDNBOOST_NUMERIC_CONVERSION_DETAIL_CONVERSION_TRAITS_FLC_12NOV2002_HPP
+#define NDNBOOST_NUMERIC_CONVERSION_DETAIL_CONVERSION_TRAITS_FLC_12NOV2002_HPP
 
 #include "ndnboost/type_traits/is_arithmetic.hpp"
 #include "ndnboost/type_traits/is_same.hpp"
diff --git a/include/ndnboost/numeric/conversion/detail/converter.hpp b/include/ndnboost/numeric/conversion/detail/converter.hpp
index 813a5c3..37099ef 100644
--- a/include/ndnboost/numeric/conversion/detail/converter.hpp
+++ b/include/ndnboost/numeric/conversion/detail/converter.hpp
@@ -7,8 +7,8 @@
 //
 // Contact the author at: fernando_cacciola@hotmail.com
 //
-#ifndef BOOST_NUMERIC_CONVERSION_DETAIL_CONVERTER_FLC_12NOV2002_HPP
-#define BOOST_NUMERIC_CONVERSION_DETAIL_CONVERTER_FLC_12NOV2002_HPP
+#ifndef NDNBOOST_NUMERIC_CONVERSION_DETAIL_CONVERTER_FLC_12NOV2002_HPP
+#define NDNBOOST_NUMERIC_CONVERSION_DETAIL_CONVERTER_FLC_12NOV2002_HPP
 
 #include <functional>
 
@@ -450,8 +450,8 @@
   // Trivial Converter : used when (cv-unqualified) T == (cv-unqualified)  S
   //
   template<class Traits>
-  struct trivial_converter_impl : public std::unary_function<  BOOST_DEDUCED_TYPENAME Traits::argument_type
-                                                              ,BOOST_DEDUCED_TYPENAME Traits::result_type
+  struct trivial_converter_impl : public std::unary_function<  NDNBOOST_DEDUCED_TYPENAME Traits::argument_type
+                                                              ,NDNBOOST_DEDUCED_TYPENAME Traits::result_type
                                                             >
                                  ,public dummy_range_checker<Traits>
   {
@@ -471,8 +471,8 @@
   // Rounding Converter : used for float to integral conversions.
   //
   template<class Traits,class RangeChecker,class RawConverter,class Float2IntRounder>
-  struct rounding_converter : public std::unary_function<  BOOST_DEDUCED_TYPENAME Traits::argument_type
-                                                          ,BOOST_DEDUCED_TYPENAME Traits::result_type
+  struct rounding_converter : public std::unary_function<  NDNBOOST_DEDUCED_TYPENAME Traits::argument_type
+                                                          ,NDNBOOST_DEDUCED_TYPENAME Traits::result_type
                                                         >
                              ,public RangeChecker
                              ,public Float2IntRounder
@@ -501,8 +501,8 @@
   // Non-Rounding Converter : used for all other conversions.
   //
   template<class Traits,class RangeChecker,class RawConverter>
-  struct non_rounding_converter : public std::unary_function< BOOST_DEDUCED_TYPENAME Traits::argument_type
-                                                             ,BOOST_DEDUCED_TYPENAME Traits::result_type
+  struct non_rounding_converter : public std::unary_function< NDNBOOST_DEDUCED_TYPENAME Traits::argument_type
+                                                             ,NDNBOOST_DEDUCED_TYPENAME Traits::result_type
                                                            >
                                  ,public RangeChecker
                                  ,public RawConverter
@@ -570,7 +570,7 @@
           >
   struct get_converter_impl
   {
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT( 0x0561 ) )
+#if NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT( 0x0561 ) )
     // bcc55 prefers sometimes template parameters to be explicit local types.
     // (notice that is is illegal to reuse the names like this)
     typedef Traits           Traits ;
diff --git a/include/ndnboost/numeric/conversion/detail/int_float_mixture.hpp b/include/ndnboost/numeric/conversion/detail/int_float_mixture.hpp
index 437b56a..e91ac40 100644
--- a/include/ndnboost/numeric/conversion/detail/int_float_mixture.hpp
+++ b/include/ndnboost/numeric/conversion/detail/int_float_mixture.hpp
@@ -7,8 +7,8 @@
 //
 // Contact the author at: fernando_cacciola@hotmail.com
 // 
-#ifndef BOOST_NUMERIC_CONVERSION_DETAIL_INT_FLOAT_MIXTURE_FLC_12NOV2002_HPP
-#define BOOST_NUMERIC_CONVERSION_DETAIL_INT_FLOAT_MIXTURE_FLC_12NOV2002_HPP
+#ifndef NDNBOOST_NUMERIC_CONVERSION_DETAIL_INT_FLOAT_MIXTURE_FLC_12NOV2002_HPP
+#define NDNBOOST_NUMERIC_CONVERSION_DETAIL_INT_FLOAT_MIXTURE_FLC_12NOV2002_HPP
 
 #include "ndnboost/config.hpp"
 #include "ndnboost/limits.hpp"
diff --git a/include/ndnboost/numeric/conversion/detail/is_subranged.hpp b/include/ndnboost/numeric/conversion/detail/is_subranged.hpp
index 6f84872..9af12c0 100644
--- a/include/ndnboost/numeric/conversion/detail/is_subranged.hpp
+++ b/include/ndnboost/numeric/conversion/detail/is_subranged.hpp
@@ -7,8 +7,8 @@
 //
 // Contact the author at: fernando_cacciola@hotmail.com
 // 
-#ifndef BOOST_NUMERIC_CONVERSION_DETAIL_IS_SUBRANGED_FLC_12NOV2002_HPP
-#define BOOST_NUMERIC_CONVERSION_DETAIL_IS_SUBRANGED_FLC_12NOV2002_HPP
+#ifndef NDNBOOST_NUMERIC_CONVERSION_DETAIL_IS_SUBRANGED_FLC_12NOV2002_HPP
+#define NDNBOOST_NUMERIC_CONVERSION_DETAIL_IS_SUBRANGED_FLC_12NOV2002_HPP
 
 #include "ndnboost/config.hpp"
 #include "ndnboost/limits.hpp"
diff --git a/include/ndnboost/numeric/conversion/detail/meta.hpp b/include/ndnboost/numeric/conversion/detail/meta.hpp
index a79d670..c87bbb8 100644
--- a/include/ndnboost/numeric/conversion/detail/meta.hpp
+++ b/include/ndnboost/numeric/conversion/detail/meta.hpp
@@ -7,8 +7,8 @@
 //
 // Contact the author at: fernando_cacciola@hotmail.com
 // 
-#ifndef BOOST_NUMERIC_CONVERSION_DETAIL_META_FLC_12NOV2002_HPP
-#define BOOST_NUMERIC_CONVERSION_DETAIL_META_FLC_12NOV2002_HPP
+#ifndef NDNBOOST_NUMERIC_CONVERSION_DETAIL_META_FLC_12NOV2002_HPP
+#define NDNBOOST_NUMERIC_CONVERSION_DETAIL_META_FLC_12NOV2002_HPP
 
 #include "ndnboost/type_traits/remove_cv.hpp"
 
@@ -27,22 +27,22 @@
    {
    #if !defined(__BORLANDC__)
    
-       enum { x = ( BOOST_MPL_AUX_VALUE_WKND(T1)::value == BOOST_MPL_AUX_VALUE_WKND(T2)::value ) };
+       enum { x = ( NDNBOOST_MPL_AUX_VALUE_WKND(T1)::value == NDNBOOST_MPL_AUX_VALUE_WKND(T2)::value ) };
            
-       BOOST_STATIC_CONSTANT(bool, value = x);
+       NDNBOOST_STATIC_CONSTANT(bool, value = x);
            
        typedef mpl::bool_<value> type;
        
    #else
    
-       BOOST_STATIC_CONSTANT(bool, value = (
-             BOOST_MPL_AUX_VALUE_WKND(T1)::value 
-               == BOOST_MPL_AUX_VALUE_WKND(T2)::value
+       NDNBOOST_STATIC_CONSTANT(bool, value = (
+             NDNBOOST_MPL_AUX_VALUE_WKND(T1)::value 
+               == NDNBOOST_MPL_AUX_VALUE_WKND(T2)::value
            ));
            
        typedef mpl::bool_<(
-             BOOST_MPL_AUX_VALUE_WKND(T1)::value 
-               == BOOST_MPL_AUX_VALUE_WKND(T2)::value
+             NDNBOOST_MPL_AUX_VALUE_WKND(T1)::value 
+               == NDNBOOST_MPL_AUX_VALUE_WKND(T2)::value
            )> type;
    #endif
    };
diff --git a/include/ndnboost/numeric/conversion/detail/numeric_cast_traits.hpp b/include/ndnboost/numeric/conversion/detail/numeric_cast_traits.hpp
index eaccf5c..96bd961 100644
--- a/include/ndnboost/numeric/conversion/detail/numeric_cast_traits.hpp
+++ b/include/ndnboost/numeric/conversion/detail/numeric_cast_traits.hpp
@@ -7,22 +7,22 @@
 //  http://www.boost.org/LICENSE_1_0.txt)
 //
 
-#if !defined(BOOST_NUMERIC_CONVERSION_DONT_USE_PREPROCESSED_FILES)
+#if !defined(NDNBOOST_NUMERIC_CONVERSION_DONT_USE_PREPROCESSED_FILES)
 
     #include <ndnboost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp>
 	
-	#if !defined(BOOST_NO_LONG_LONG)
+	#if !defined(NDNBOOST_NO_LONG_LONG)
         #include <ndnboost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp>
 	#endif
 	
 #else
-#if !BOOST_PP_IS_ITERATING
+#if !NDNBOOST_PP_IS_ITERATING
 
     #include <ndnboost/preprocessor/seq/elem.hpp>
     #include <ndnboost/preprocessor/seq/size.hpp>
     #include <ndnboost/preprocessor/iteration/iterate.hpp>
     
-    #if defined(__WAVE__) && defined(BOOST_NUMERIC_CONVERSION_CREATE_PREPROCESSED_FILES)
+    #if defined(__WAVE__) && defined(NDNBOOST_NUMERIC_CONVERSION_CREATE_PREPROCESSED_FILES)
         #pragma wave option(preserve: 2, line: 0, output: "preprocessed/numeric_cast_traits_common.hpp")
     #endif
 //
@@ -33,12 +33,12 @@
 //  accompanying file LICENSE_1_0.txt or copy at
 //  http://www.boost.org/LICENSE_1_0.txt)
 //
-    #if defined(__WAVE__) && defined(BOOST_NUMERIC_CONVERSION_CREATE_PREPROCESSED_FILES)
+    #if defined(__WAVE__) && defined(NDNBOOST_NUMERIC_CONVERSION_CREATE_PREPROCESSED_FILES)
         #pragma wave option(preserve: 1)
     #endif
 	
 	//! These are the assumed common built in fundamental types (not typedefs/macros.)
-	#define BOOST_NUMERIC_CONVERSION_BASE_BUILTIN_TYPES() \
+	#define NDNBOOST_NUMERIC_CONVERSION_BASE_BUILTIN_TYPES() \
         (char)                                            \
         (signed char)                                     \
         (unsigned char)                                   \
@@ -53,26 +53,26 @@
         (long double)                                     \
     /***/
 	
-    #define BOOST_NUMERIC_CONVERSION_SEQ_A() BOOST_NUMERIC_CONVERSION_BASE_BUILTIN_TYPES()
-	#define BOOST_NUMERIC_CONVERSION_SEQ_B() BOOST_NUMERIC_CONVERSION_BASE_BUILTIN_TYPES()
+    #define NDNBOOST_NUMERIC_CONVERSION_SEQ_A() NDNBOOST_NUMERIC_CONVERSION_BASE_BUILTIN_TYPES()
+	#define NDNBOOST_NUMERIC_CONVERSION_SEQ_B() NDNBOOST_NUMERIC_CONVERSION_BASE_BUILTIN_TYPES()
 
 namespace ndnboost { namespace numeric {
 
-    #define BOOST_PP_ITERATION_PARAMS_1 (3, (0, BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(BOOST_NUMERIC_CONVERSION_SEQ_A())), <ndnboost/numeric/conversion/detail/numeric_cast_traits.hpp>))
-    #include BOOST_PP_ITERATE()    
+    #define NDNBOOST_PP_ITERATION_PARAMS_1 (3, (0, NDNBOOST_PP_DEC(NDNBOOST_PP_SEQ_SIZE(NDNBOOST_NUMERIC_CONVERSION_SEQ_A())), <ndnboost/numeric/conversion/detail/numeric_cast_traits.hpp>))
+    #include NDNBOOST_PP_ITERATE()    
 
 }}//namespace ndnboost::numeric;
 
-    #if defined(__WAVE__) && defined(BOOST_NUMERIC_CONVERSION_CREATE_PREPROCESSED_FILES)
+    #if defined(__WAVE__) && defined(NDNBOOST_NUMERIC_CONVERSION_CREATE_PREPROCESSED_FILES)
         #pragma wave option(output: null)
     #endif   
 	
-	#if ( defined(__WAVE__) && defined(BOOST_NUMERIC_CONVERSION_CREATE_PREPROCESSED_FILES) ) || !defined(BOOST_NO_LONG_LONG)
+	#if ( defined(__WAVE__) && defined(NDNBOOST_NUMERIC_CONVERSION_CREATE_PREPROCESSED_FILES) ) || !defined(NDNBOOST_NO_LONG_LONG)
 	
-	    #undef BOOST_NUMERIC_CONVERSION_SEQ_A
-	    #undef BOOST_NUMERIC_CONVERSION_SEQ_B
+	    #undef NDNBOOST_NUMERIC_CONVERSION_SEQ_A
+	    #undef NDNBOOST_NUMERIC_CONVERSION_SEQ_B
 
-	    #if defined(__WAVE__) && defined(BOOST_NUMERIC_CONVERSION_CREATE_PREPROCESSED_FILES)
+	    #if defined(__WAVE__) && defined(NDNBOOST_NUMERIC_CONVERSION_CREATE_PREPROCESSED_FILES)
             #pragma wave option(preserve: 2, line: 0, output: "preprocessed/numeric_cast_traits_long_long.hpp")
         #endif
 
@@ -84,55 +84,55 @@
 //  accompanying file LICENSE_1_0.txt or copy at
 //  http://www.boost.org/LICENSE_1_0.txt)
 //
-        #if defined(__WAVE__) && defined(BOOST_NUMERIC_CONVERSION_CREATE_PREPROCESSED_FILES)
+        #if defined(__WAVE__) && defined(NDNBOOST_NUMERIC_CONVERSION_CREATE_PREPROCESSED_FILES)
             #pragma wave option(preserve: 1)
         #endif
 
 namespace ndnboost { namespace numeric {
 
-    #define BOOST_NUMERIC_CONVERSION_SEQ_A() BOOST_NUMERIC_CONVERSION_BASE_BUILTIN_TYPES()(ndnboost::long_long_type)(ndnboost::ulong_long_type)
-	#define BOOST_NUMERIC_CONVERSION_SEQ_B() (ndnboost::long_long_type)(ndnboost::ulong_long_type)
+    #define NDNBOOST_NUMERIC_CONVERSION_SEQ_A() NDNBOOST_NUMERIC_CONVERSION_BASE_BUILTIN_TYPES()(ndnboost::long_long_type)(ndnboost::ulong_long_type)
+	#define NDNBOOST_NUMERIC_CONVERSION_SEQ_B() (ndnboost::long_long_type)(ndnboost::ulong_long_type)
     
-    #define BOOST_PP_ITERATION_PARAMS_1 (3, (0, BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(BOOST_NUMERIC_CONVERSION_SEQ_A())), <ndnboost/numeric/conversion/detail/numeric_cast_traits.hpp>))
-    #include BOOST_PP_ITERATE()    
+    #define NDNBOOST_PP_ITERATION_PARAMS_1 (3, (0, NDNBOOST_PP_DEC(NDNBOOST_PP_SEQ_SIZE(NDNBOOST_NUMERIC_CONVERSION_SEQ_A())), <ndnboost/numeric/conversion/detail/numeric_cast_traits.hpp>))
+    #include NDNBOOST_PP_ITERATE()    
 
 }}//namespace ndnboost::numeric;
 
-        #if defined(__WAVE__) && defined(BOOST_NUMERIC_CONVERSION_CREATE_PREPROCESSED_FILES)
+        #if defined(__WAVE__) && defined(NDNBOOST_NUMERIC_CONVERSION_CREATE_PREPROCESSED_FILES)
             #pragma wave option(output: null)
         #endif   
 	
 	#endif
 		
-    #undef BOOST_NUMERIC_CONVERSION_BASE_BUILTIN_TYPES
-	#undef BOOST_NUMERIC_CONVERSION_SEQ_A
-	#undef BOOST_NUMERIC_CONVERSION_SEQ_B
+    #undef NDNBOOST_NUMERIC_CONVERSION_BASE_BUILTIN_TYPES
+	#undef NDNBOOST_NUMERIC_CONVERSION_SEQ_A
+	#undef NDNBOOST_NUMERIC_CONVERSION_SEQ_B
     
-#elif BOOST_PP_ITERATION_DEPTH() == 1
+#elif NDNBOOST_PP_ITERATION_DEPTH() == 1
 
-    #define BOOST_PP_ITERATION_PARAMS_2 (3, (0, BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(BOOST_NUMERIC_CONVERSION_SEQ_B())), <ndnboost/numeric/conversion/detail/numeric_cast_traits.hpp>))
-    #include BOOST_PP_ITERATE()
+    #define NDNBOOST_PP_ITERATION_PARAMS_2 (3, (0, NDNBOOST_PP_DEC(NDNBOOST_PP_SEQ_SIZE(NDNBOOST_NUMERIC_CONVERSION_SEQ_B())), <ndnboost/numeric/conversion/detail/numeric_cast_traits.hpp>))
+    #include NDNBOOST_PP_ITERATE()
 
-#elif BOOST_PP_ITERATION_DEPTH() == 2
+#elif NDNBOOST_PP_ITERATION_DEPTH() == 2
 
     //! Generate default traits for the specified source and target.
-    #define BOOST_NUMERIC_CONVERSION_A BOOST_PP_FRAME_ITERATION(1)
-    #define BOOST_NUMERIC_CONVERSION_B BOOST_PP_FRAME_ITERATION(2)
+    #define NDNBOOST_NUMERIC_CONVERSION_A NDNBOOST_PP_FRAME_ITERATION(1)
+    #define NDNBOOST_NUMERIC_CONVERSION_B NDNBOOST_PP_FRAME_ITERATION(2)
 
     template <>
     struct numeric_cast_traits
         <
-            BOOST_PP_SEQ_ELEM(BOOST_NUMERIC_CONVERSION_A, BOOST_NUMERIC_CONVERSION_SEQ_A())
-          , BOOST_PP_SEQ_ELEM(BOOST_NUMERIC_CONVERSION_B, BOOST_NUMERIC_CONVERSION_SEQ_B())
+            NDNBOOST_PP_SEQ_ELEM(NDNBOOST_NUMERIC_CONVERSION_A, NDNBOOST_NUMERIC_CONVERSION_SEQ_A())
+          , NDNBOOST_PP_SEQ_ELEM(NDNBOOST_NUMERIC_CONVERSION_B, NDNBOOST_NUMERIC_CONVERSION_SEQ_B())
         >
     {
         typedef def_overflow_handler overflow_policy;
         typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<BOOST_PP_SEQ_ELEM(BOOST_NUMERIC_CONVERSION_B, BOOST_NUMERIC_CONVERSION_SEQ_B())> rounding_policy;
+        typedef Trunc<NDNBOOST_PP_SEQ_ELEM(NDNBOOST_NUMERIC_CONVERSION_B, NDNBOOST_NUMERIC_CONVERSION_SEQ_B())> rounding_policy;
     };     
 
-    #undef BOOST_NUMERIC_CONVERSION_A
-    #undef BOOST_NUMERIC_CONVERSION_B
+    #undef NDNBOOST_NUMERIC_CONVERSION_A
+    #undef NDNBOOST_NUMERIC_CONVERSION_B
 
 #endif//! Depth 2.
-#endif// BOOST_NUMERIC_CONVERSION_DONT_USE_PREPROCESSED_FILES
+#endif// NDNBOOST_NUMERIC_CONVERSION_DONT_USE_PREPROCESSED_FILES
diff --git a/include/ndnboost/numeric/conversion/detail/old_numeric_cast.hpp b/include/ndnboost/numeric/conversion/detail/old_numeric_cast.hpp
index e9cc453..4fc4cab 100644
--- a/include/ndnboost/numeric/conversion/detail/old_numeric_cast.hpp
+++ b/include/ndnboost/numeric/conversion/detail/old_numeric_cast.hpp
@@ -12,15 +12,15 @@
 //             Keeps this legacy version of numeric_cast<> for old compilers
 //             wich can't compile the new version in /boost/numeric/conversion/cast.hpp
 //             (Fernando Cacciola)
-//  02 Apr 01  Removed BOOST_NO_LIMITS workarounds and included
+//  02 Apr 01  Removed NDNBOOST_NO_LIMITS workarounds and included
 //             <ndnboost/limits.hpp> instead (the workaround did not
-//             actually compile when BOOST_NO_LIMITS was defined in
+//             actually compile when NDNBOOST_NO_LIMITS was defined in
 //             any case, so we loose nothing). (John Maddock)
 //  21 Jan 01  Undid a bug I introduced yesterday. numeric_cast<> never
 //             worked with stock GCC; trying to get it to do that broke
 //             vc-stlport.
-//  20 Jan 01  Moved BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS to config.hpp.
-//             Removed unused BOOST_EXPLICIT_TARGET macro. Moved
+//  20 Jan 01  Moved NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS to config.hpp.
+//             Removed unused NDNBOOST_EXPLICIT_TARGET macro. Moved
 //             ndnboost::detail::type to ndnboost/type.hpp. Made it compile with
 //             stock gcc again (Dave Abrahams)
 //  29 Nov 00  Remove nested namespace cast, cleanup spacing before Formal
@@ -43,8 +43,8 @@
 //             place in nested namespace.
 //   3 Aug 99  Initial version
 
-#ifndef BOOST_OLD_NUMERIC_CAST_HPP
-#define BOOST_OLD_NUMERIC_CAST_HPP
+#ifndef NDNBOOST_OLD_NUMERIC_CAST_HPP
+#define NDNBOOST_OLD_NUMERIC_CAST_HPP
 
 # include <ndnboost/config.hpp>
 # include <cassert>
@@ -60,10 +60,10 @@
 //  TODO: Add this to config.hpp?
 //  FLC: This macro is repeated in ndnboost/cast.hpp but only locally (is undefined at the bottom)
 //       so is OK to reproduce it here.
-# if defined(BOOST_MSVC) && BOOST_MSVC < 1300
-#  define BOOST_EXPLICIT_DEFAULT_TARGET , ::ndnboost::type<Target>* = 0
+# if defined(NDNBOOST_MSVC) && NDNBOOST_MSVC < 1300
+#  define NDNBOOST_EXPLICIT_DEFAULT_TARGET , ::ndnboost::type<Target>* = 0
 # else
-#  define BOOST_EXPLICIT_DEFAULT_TARGET
+#  define NDNBOOST_EXPLICIT_DEFAULT_TARGET
 # endif
 
 namespace ndnboost
@@ -76,14 +76,14 @@
 
 //  numeric_cast  ------------------------------------------------------------//
 
-#if !defined(BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS) || defined(BOOST_SGI_CPP_LIMITS)
+#if !defined(NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS) || defined(NDNBOOST_SGI_CPP_LIMITS)
 
     namespace detail
     {
       template <class T>
       struct signed_numeric_limits : std::numeric_limits<T>
       {
-             static inline T min BOOST_PREVENT_MACRO_SUBSTITUTION ()
+             static inline T min NDNBOOST_PREVENT_MACRO_SUBSTITUTION ()
          {
              return (std::numeric_limits<T>::min)() >= 0
                      // unary minus causes integral promotion, thus the static_cast<>
@@ -96,7 +96,7 @@
       template <class T, bool specialized>
       struct fixed_numeric_limits_base
           : public if_true< std::numeric_limits<T>::is_signed >
-           ::BOOST_NESTED_TEMPLATE then< signed_numeric_limits<T>,
+           ::NDNBOOST_NESTED_TEMPLATE then< signed_numeric_limits<T>,
                             std::numeric_limits<T>
                    >::type
       {};
@@ -106,16 +106,16 @@
           : fixed_numeric_limits_base<T,(std::numeric_limits<T>::is_specialized)>
       {};
 
-# ifdef BOOST_HAS_LONG_LONG
+# ifdef NDNBOOST_HAS_LONG_LONG
       // cover implementations which supply no specialization for long
       // long / unsigned long long. Not intended to be full
       // numeric_limits replacements, but good enough for numeric_cast<>
       template <>
       struct fixed_numeric_limits_base< ::ndnboost::long_long_type, false>
       {
-          BOOST_STATIC_CONSTANT(bool, is_specialized = true);
-          BOOST_STATIC_CONSTANT(bool, is_signed = true);
-          static  ::ndnboost::long_long_type max BOOST_PREVENT_MACRO_SUBSTITUTION ()
+          NDNBOOST_STATIC_CONSTANT(bool, is_specialized = true);
+          NDNBOOST_STATIC_CONSTANT(bool, is_signed = true);
+          static  ::ndnboost::long_long_type max NDNBOOST_PREVENT_MACRO_SUBSTITUTION ()
           {
 #  ifdef LONGLONG_MAX
               return LONGLONG_MAX;
@@ -124,7 +124,7 @@
 #  endif
           }
 
-          static  ::ndnboost::long_long_type min BOOST_PREVENT_MACRO_SUBSTITUTION ()
+          static  ::ndnboost::long_long_type min NDNBOOST_PREVENT_MACRO_SUBSTITUTION ()
           {
 #  ifdef LONGLONG_MIN
               return LONGLONG_MIN;
@@ -137,9 +137,9 @@
       template <>
       struct fixed_numeric_limits_base< ::ndnboost::ulong_long_type, false>
       {
-          BOOST_STATIC_CONSTANT(bool, is_specialized = true);
-          BOOST_STATIC_CONSTANT(bool, is_signed = false);
-          static  ::ndnboost::ulong_long_type max BOOST_PREVENT_MACRO_SUBSTITUTION ()
+          NDNBOOST_STATIC_CONSTANT(bool, is_specialized = true);
+          NDNBOOST_STATIC_CONSTANT(bool, is_signed = false);
+          static  ::ndnboost::ulong_long_type max NDNBOOST_PREVENT_MACRO_SUBSTITUTION ()
           {
 #  ifdef ULONGLONG_MAX
               return ULONGLONG_MAX;
@@ -148,7 +148,7 @@
 #  endif
           }
 
-          static  ::ndnboost::ulong_long_type min BOOST_PREVENT_MACRO_SUBSTITUTION () { return 0; }
+          static  ::ndnboost::ulong_long_type min NDNBOOST_PREVENT_MACRO_SUBSTITUTION () { return 0; }
       };
 # endif
     } // namespace detail
@@ -215,9 +215,9 @@
         static inline bool check(X x, Y)
             { return x >= 0 && static_cast<X>(static_cast<Y>(x)) != x; }
 
-# if defined(BOOST_MSVC) && BOOST_MSVC < 1300
+# if defined(NDNBOOST_MSVC) && NDNBOOST_MSVC < 1300
         // MSVC6 can't static_cast  unsigned __int64 -> floating types
-#  define BOOST_UINT64_CAST(src_type)                                   \
+#  define NDNBOOST_UINT64_CAST(src_type)                                   \
         static inline bool check(src_type x, unsigned __int64)          \
         {                                                               \
             if (x < 0) return false;                                    \
@@ -227,10 +227,10 @@
             return ((static_cast<src_type>(div2) * 2.0) + odd) != x;    \
         }
 
-        BOOST_UINT64_CAST(long double);
-        BOOST_UINT64_CAST(double);
-        BOOST_UINT64_CAST(float);
-#  undef BOOST_UINT64_CAST
+        NDNBOOST_UINT64_CAST(long double);
+        NDNBOOST_UINT64_CAST(double);
+        NDNBOOST_UINT64_CAST(float);
+#  undef NDNBOOST_UINT64_CAST
 # endif
     };
 
@@ -256,7 +256,7 @@
 
   namespace detail
   {
-# if BOOST_MSVC
+# if NDNBOOST_MSVC
 #  pragma warning(push)
 #  pragma warning(disable : 4018)
 #  pragma warning(disable : 4146)
@@ -268,14 +268,14 @@
        template <class T>
        struct fixed_numeric_limits : public std::numeric_limits<T>
        {
-           static inline T min BOOST_PREVENT_MACRO_SUBSTITUTION ()
+           static inline T min NDNBOOST_PREVENT_MACRO_SUBSTITUTION ()
            {
                return std::numeric_limits<T>::is_signed && (std::numeric_limits<T>::min)() >= 0
                    ? T(-(std::numeric_limits<T>::max)()) : (std::numeric_limits<T>::min)();
            }
        };
 
-# if BOOST_MSVC
+# if NDNBOOST_MSVC
 #  pragma warning(pop)
 #elif defined(__BORLANDC__)
 #  pragma option pop
@@ -285,16 +285,16 @@
 #endif
 
     template<typename Target, typename Source>
-    inline Target numeric_cast(Source arg BOOST_EXPLICIT_DEFAULT_TARGET)
+    inline Target numeric_cast(Source arg NDNBOOST_EXPLICIT_DEFAULT_TARGET)
     {
         // typedefs abbreviating respective trait classes
         typedef detail::fixed_numeric_limits<Source> arg_traits;
         typedef detail::fixed_numeric_limits<Target> result_traits;
 
-#if defined(BOOST_STRICT_CONFIG) \
+#if defined(NDNBOOST_STRICT_CONFIG) \
     || (!defined(__HP_aCC) || __HP_aCC > 33900) \
-         && (!defined(BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS) \
-             || defined(BOOST_SGI_CPP_LIMITS))
+         && (!defined(NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS) \
+             || defined(NDNBOOST_SGI_CPP_LIMITS))
         // typedefs that act as compile time assertions
         // (to be replaced by boost compile time assertions
         // as and when they become available and are stable)
@@ -311,7 +311,7 @@
 
 #else // We need to use #pragma hacks if available
 
-# if BOOST_MSVC
+# if NDNBOOST_MSVC
 #  pragma warning(push)
 #  pragma warning(disable : 4018)
 #elif defined(__BORLANDC__)
@@ -320,7 +320,7 @@
         if ((arg < 0 && !result_traits::is_signed)  // loss of negative range
              || (arg_traits::is_signed && arg < (result_traits::min)())  // underflow
              || arg > (result_traits::max)())            // overflow
-# if BOOST_MSVC
+# if NDNBOOST_MSVC
 #  pragma warning(pop)
 #elif defined(__BORLANDC__)
 #pragma option pop
@@ -332,8 +332,8 @@
         return static_cast<Target>(arg);
     } // numeric_cast
 
-#  undef BOOST_EXPLICIT_DEFAULT_TARGET
+#  undef NDNBOOST_EXPLICIT_DEFAULT_TARGET
 
 } // namespace ndnboost
 
-#endif  // BOOST_OLD_NUMERIC_CAST_HPP
+#endif  // NDNBOOST_OLD_NUMERIC_CAST_HPP
diff --git a/include/ndnboost/numeric/conversion/detail/sign_mixture.hpp b/include/ndnboost/numeric/conversion/detail/sign_mixture.hpp
index e49ad1d..1e90ee9 100644
--- a/include/ndnboost/numeric/conversion/detail/sign_mixture.hpp
+++ b/include/ndnboost/numeric/conversion/detail/sign_mixture.hpp
@@ -7,8 +7,8 @@
 //
 // Contact the author at: fernando_cacciola@hotmail.com
 // 
-#ifndef BOOST_NUMERIC_CONVERSION_DETAIL_SIGN_MIXTURE_FLC_12NOV2002_HPP
-#define BOOST_NUMERIC_CONVERSION_DETAIL_SIGN_MIXTURE_FLC_12NOV2002_HPP
+#ifndef NDNBOOST_NUMERIC_CONVERSION_DETAIL_SIGN_MIXTURE_FLC_12NOV2002_HPP
+#define NDNBOOST_NUMERIC_CONVERSION_DETAIL_SIGN_MIXTURE_FLC_12NOV2002_HPP
 
 #include "ndnboost/config.hpp"
 #include "ndnboost/limits.hpp"
diff --git a/include/ndnboost/numeric/conversion/detail/udt_builtin_mixture.hpp b/include/ndnboost/numeric/conversion/detail/udt_builtin_mixture.hpp
index 6b1e282..33382ec 100644
--- a/include/ndnboost/numeric/conversion/detail/udt_builtin_mixture.hpp
+++ b/include/ndnboost/numeric/conversion/detail/udt_builtin_mixture.hpp
@@ -7,8 +7,8 @@
 //
 // Contact the author at: fernando_cacciola@hotmail.com
 // 
-#ifndef BOOST_NUMERIC_CONVERSION_DETAIL_UDT_BUILTIN_MIXTURE_FLC_12NOV2002_HPP
-#define BOOST_NUMERIC_CONVERSION_DETAIL_UDT_BUILTIN_MIXTURE_FLC_12NOV2002_HPP
+#ifndef NDNBOOST_NUMERIC_CONVERSION_DETAIL_UDT_BUILTIN_MIXTURE_FLC_12NOV2002_HPP
+#define NDNBOOST_NUMERIC_CONVERSION_DETAIL_UDT_BUILTIN_MIXTURE_FLC_12NOV2002_HPP
 
 #include "ndnboost/type_traits/is_arithmetic.hpp"
 
diff --git a/include/ndnboost/numeric/conversion/int_float_mixture_enum.hpp b/include/ndnboost/numeric/conversion/int_float_mixture_enum.hpp
index a733404..165cc55 100644
--- a/include/ndnboost/numeric/conversion/int_float_mixture_enum.hpp
+++ b/include/ndnboost/numeric/conversion/int_float_mixture_enum.hpp
@@ -7,8 +7,8 @@
 //
 // Contact the author at: fernando_cacciola@hotmail.com
 // 
-#ifndef BOOST_NUMERIC_CONVERSION_INT_FLOAT_MIXTURE_ENUM_FLC_12NOV2002_HPP
-#define BOOST_NUMERIC_CONVERSION_INT_FLOAT_MIXTURE_ENUM_FLC_12NOV2002_HPP
+#ifndef NDNBOOST_NUMERIC_CONVERSION_INT_FLOAT_MIXTURE_ENUM_FLC_12NOV2002_HPP
+#define NDNBOOST_NUMERIC_CONVERSION_INT_FLOAT_MIXTURE_ENUM_FLC_12NOV2002_HPP
 
 namespace ndnboost { namespace numeric
 {
diff --git a/include/ndnboost/numeric/conversion/numeric_cast_traits.hpp b/include/ndnboost/numeric/conversion/numeric_cast_traits.hpp
index d482bfd..c49364b 100644
--- a/include/ndnboost/numeric/conversion/numeric_cast_traits.hpp
+++ b/include/ndnboost/numeric/conversion/numeric_cast_traits.hpp
@@ -6,8 +6,8 @@
 //  accompanying file LICENSE_1_0.txt or copy at
 //  http://www.boost.org/LICENSE_1_0.txt)
 //
-#ifndef BOOST_NUMERIC_CAST_TRAITS_HPP
-#define BOOST_NUMERIC_CAST_TRAITS_HPP
+#ifndef NDNBOOST_NUMERIC_CAST_TRAITS_HPP
+#define NDNBOOST_NUMERIC_CAST_TRAITS_HPP
 
 #include <ndnboost/numeric/conversion/converter_policies.hpp>
 
@@ -23,9 +23,9 @@
 
 }}//namespace ndnboost::numeric;
 
-#if !defined( BOOST_NUMERIC_CONVERSION_RELAX_BUILT_IN_CAST_TRAITS )
+#if !defined( NDNBOOST_NUMERIC_CONVERSION_RELAX_BUILT_IN_CAST_TRAITS )
 #include <ndnboost/cstdint.hpp>
 #include <ndnboost/numeric/conversion/detail/numeric_cast_traits.hpp>
-#endif//!defined BOOST_NUMERIC_CONVERSION_RELAX_BUILT_IN_CAST_TRAITS
+#endif//!defined NDNBOOST_NUMERIC_CONVERSION_RELAX_BUILT_IN_CAST_TRAITS
 
-#endif//BOOST_NUMERIC_CAST_TRAITS_HPP
+#endif//NDNBOOST_NUMERIC_CAST_TRAITS_HPP
diff --git a/include/ndnboost/numeric/conversion/sign_mixture_enum.hpp b/include/ndnboost/numeric/conversion/sign_mixture_enum.hpp
index cfb7151..bd41df2 100644
--- a/include/ndnboost/numeric/conversion/sign_mixture_enum.hpp
+++ b/include/ndnboost/numeric/conversion/sign_mixture_enum.hpp
@@ -7,8 +7,8 @@
 //
 // Contact the author at: fernando_cacciola@hotmail.com
 // 
-#ifndef BOOST_NUMERIC_CONVERSION_SIGN_MIXTURE_ENUM_FLC_12NOV2002_HPP
-#define BOOST_NUMERIC_CONVERSION_SIGN_MIXTURE_ENUM_FLC_12NOV2002_HPP
+#ifndef NDNBOOST_NUMERIC_CONVERSION_SIGN_MIXTURE_ENUM_FLC_12NOV2002_HPP
+#define NDNBOOST_NUMERIC_CONVERSION_SIGN_MIXTURE_ENUM_FLC_12NOV2002_HPP
 
 namespace ndnboost { namespace numeric
 {
diff --git a/include/ndnboost/numeric/conversion/udt_builtin_mixture_enum.hpp b/include/ndnboost/numeric/conversion/udt_builtin_mixture_enum.hpp
index 6e5bf5d..7ba441c 100644
--- a/include/ndnboost/numeric/conversion/udt_builtin_mixture_enum.hpp
+++ b/include/ndnboost/numeric/conversion/udt_builtin_mixture_enum.hpp
@@ -7,8 +7,8 @@
 //
 // Contact the author at: fernando_cacciola@hotmail.com
 // 
-#ifndef BOOST_NUMERIC_CONVERSION_UDT_BUILTIN_MIXTURE_ENUM_FLC_12NOV2002_HPP
-#define BOOST_NUMERIC_CONVERSION_UDT_BUILTIN_MIXTURE_ENUM_FLC_12NOV2002_HPP
+#ifndef NDNBOOST_NUMERIC_CONVERSION_UDT_BUILTIN_MIXTURE_ENUM_FLC_12NOV2002_HPP
+#define NDNBOOST_NUMERIC_CONVERSION_UDT_BUILTIN_MIXTURE_ENUM_FLC_12NOV2002_HPP
 
 namespace ndnboost { namespace numeric
 {
diff --git a/include/ndnboost/optional.hpp b/include/ndnboost/optional.hpp
index 0eeecbe..ef92639 100644
--- a/include/ndnboost/optional.hpp
+++ b/include/ndnboost/optional.hpp
@@ -9,8 +9,8 @@
 // You are welcome to contact the author at:
 //  fernando_cacciola@hotmail.com
 //
-#ifndef BOOST_OPTIONAL_FLC_19NOV2002_HPP
-#define BOOST_OPTIONAL_FLC_19NOV2002_HPP
+#ifndef NDNBOOST_OPTIONAL_FLC_19NOV2002_HPP
+#define NDNBOOST_OPTIONAL_FLC_19NOV2002_HPP
 
 #include "ndnboost/optional/optional.hpp"
 
diff --git a/include/ndnboost/optional/optional.hpp b/include/ndnboost/optional/optional.hpp
index 19dc46b..7a3db17 100644
--- a/include/ndnboost/optional/optional.hpp
+++ b/include/ndnboost/optional/optional.hpp
@@ -12,8 +12,8 @@
 // Revisions:
 // 27 Apr 2008 (improved swap) Fernando Cacciola, Niels Dekker, Thorsten Ottosen
 //
-#ifndef BOOST_OPTIONAL_OPTIONAL_FLC_19NOV2002_HPP
-#define BOOST_OPTIONAL_OPTIONAL_FLC_19NOV2002_HPP
+#ifndef NDNBOOST_OPTIONAL_OPTIONAL_FLC_19NOV2002_HPP
+#define NDNBOOST_OPTIONAL_OPTIONAL_FLC_19NOV2002_HPP
 
 #include <new>
 #include <algorithm>
@@ -38,7 +38,7 @@
 
 #include <ndnboost/optional/optional_fwd.hpp>
 
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1200)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1200)
 // VC6.0 has the following bug:
 //   When a templated assignment operator exist, an implicit conversion
 //   constructing an optional<T> is used when assigment of the form:
@@ -47,40 +47,40 @@
 //   However, optional's ctor is _explicit_ and the assignemt shouldn't compile.
 //   Therefore, for VC6.0 templated assignment is disabled.
 //
-#define BOOST_OPTIONAL_NO_CONVERTING_ASSIGNMENT
+#define NDNBOOST_OPTIONAL_NO_CONVERTING_ASSIGNMENT
 #endif
 
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1300)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1300)
 // VC7.0 has the following bug:
 //   When both a non-template and a template copy-ctor exist
 //   and the templated version is made 'explicit', the explicit is also
 //   given to the non-templated version, making the class non-implicitely-copyable.
 //
-#define BOOST_OPTIONAL_NO_CONVERTING_COPY_CTOR
+#define NDNBOOST_OPTIONAL_NO_CONVERTING_COPY_CTOR
 #endif
 
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) || BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION,<=700)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) || NDNBOOST_WORKAROUND(NDNBOOST_INTEL_CXX_VERSION,<=700)
 // AFAICT only VC7.1 correctly resolves the overload set
 // that includes the in-place factory taking functions,
 // so for the other VC versions, in-place factory support
 // is disabled
-#define BOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT
+#define NDNBOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT
 #endif
 
-#if BOOST_WORKAROUND(__BORLANDC__, <= 0x551)
+#if NDNBOOST_WORKAROUND(__BORLANDC__, <= 0x551)
 // BCB (5.5.1) cannot parse the nested template struct in an inplace factory.
-#define BOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT
+#define NDNBOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT
 #endif
 
-#if !defined(BOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT) \
-    && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x581) )
+#if !defined(NDNBOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT) \
+    && NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x581) )
 // BCB (up to 5.64) has the following bug:
 //   If there is a member function/operator template of the form
 //     template<class Expr> mfunc( Expr expr ) ;
 //   some calls are resolved to this even if there are other better matches.
 //   The effect of this bug is that calls to converting ctors and assignments
 //   are incrorrectly sink to this general catch-all member function template as shown above.
-#define BOOST_OPTIONAL_WEAK_OVERLOAD_RESOLUTION
+#define NDNBOOST_OPTIONAL_WEAK_OVERLOAD_RESOLUTION
 #endif
 
 #if defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__) > 302 \
@@ -89,7 +89,7 @@
 // regard to violation of the strict aliasing rules. The optional< T > storage type is marked
 // with this attribute in order to let the compiler know that it will alias objects of type T
 // and silence compilation warnings.
-#define BOOST_OPTIONAL_DETAIL_USE_ATTRIBUTE_MAY_ALIAS
+#define NDNBOOST_OPTIONAL_DETAIL_USE_ATTRIBUTE_MAY_ALIAS
 #endif
 
 // Daniel Wallin discovered that bind/apply.hpp badly interacts with the apply<>
@@ -101,7 +101,7 @@
   template <class T, class Factory>
   inline void construct(Factory const& factory, void* address)
   {
-    factory.BOOST_NESTED_TEMPLATE apply<T>(address);
+    factory.NDNBOOST_NESTED_TEMPLATE apply<T>(address);
   }
 }
 
@@ -126,19 +126,19 @@
     // Borland ICEs if unnamed unions are used for this!
     union
     // This works around GCC warnings about breaking strict aliasing rules when casting storage address to T*
-#if defined(BOOST_OPTIONAL_DETAIL_USE_ATTRIBUTE_MAY_ALIAS)
+#if defined(NDNBOOST_OPTIONAL_DETAIL_USE_ATTRIBUTE_MAY_ALIAS)
     __attribute__((may_alias))
 #endif
     dummy_u
     {
         char data[ sizeof(T) ];
-        BOOST_DEDUCED_TYPENAME type_with_alignment<
+        NDNBOOST_DEDUCED_TYPENAME type_with_alignment<
           ::ndnboost::alignment_of<T>::value >::type aligner_;
     } dummy_ ;
 
   public:
 
-#if defined(BOOST_OPTIONAL_DETAIL_USE_ATTRIBUTE_MAY_ALIAS)
+#if defined(NDNBOOST_OPTIONAL_DETAIL_USE_ATTRIBUTE_MAY_ALIAS)
     void const* address() const { return &dummy_; }
     void      * address()       { return &dummy_; }
 #else
@@ -159,7 +159,7 @@
 template<class T>
 struct types_when_is_ref
 {
-  typedef BOOST_DEDUCED_TYPENAME remove_reference<T>::type raw_type ;
+  typedef NDNBOOST_DEDUCED_TYPENAME remove_reference<T>::type raw_type ;
 
   typedef raw_type& reference_const_type ;
   typedef raw_type& reference_type ;
@@ -176,8 +176,8 @@
   private :
 
     typedef
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
-    BOOST_DEDUCED_TYPENAME
+#if !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564))
+    NDNBOOST_DEDUCED_TYPENAME
 #endif
     ::ndnboost::detail::make_reference_content<T>::type internal_type ;
 
@@ -195,19 +195,19 @@
     typedef mpl::true_  is_reference_tag ;
     typedef mpl::false_ is_not_reference_tag ;
 
-    typedef BOOST_DEDUCED_TYPENAME is_reference<T>::type is_reference_predicate ;
+    typedef NDNBOOST_DEDUCED_TYPENAME is_reference<T>::type is_reference_predicate ;
 
   public:
-    typedef BOOST_DEDUCED_TYPENAME mpl::if_<is_reference_predicate,types_when_ref,types_when_not_ref>::type types ;
+    typedef NDNBOOST_DEDUCED_TYPENAME mpl::if_<is_reference_predicate,types_when_ref,types_when_not_ref>::type types ;
 
   protected:
     typedef bool (this_type::*unspecified_bool_type)() const;
 
-    typedef BOOST_DEDUCED_TYPENAME types::reference_type       reference_type ;
-    typedef BOOST_DEDUCED_TYPENAME types::reference_const_type reference_const_type ;
-    typedef BOOST_DEDUCED_TYPENAME types::pointer_type         pointer_type ;
-    typedef BOOST_DEDUCED_TYPENAME types::pointer_const_type   pointer_const_type ;
-    typedef BOOST_DEDUCED_TYPENAME types::argument_type        argument_type ;
+    typedef NDNBOOST_DEDUCED_TYPENAME types::reference_type       reference_type ;
+    typedef NDNBOOST_DEDUCED_TYPENAME types::reference_const_type reference_const_type ;
+    typedef NDNBOOST_DEDUCED_TYPENAME types::pointer_type         pointer_type ;
+    typedef NDNBOOST_DEDUCED_TYPENAME types::pointer_const_type   pointer_const_type ;
+    typedef NDNBOOST_DEDUCED_TYPENAME types::argument_type        argument_type ;
 
     // Creates an optional<T> uninitialized.
     // No-throw
@@ -312,7 +312,7 @@
     // No-throw (assuming T::~T() doesn't)
     void assign ( none_t ) { destroy(); }
 
-#ifndef BOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT
+#ifndef NDNBOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT
     template<class Expr>
     void assign_expr ( Expr const& expr, Expr const* tag )
       {
@@ -347,12 +347,12 @@
        m_initialized = true ;
      }
 
-#ifndef BOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT
+#ifndef NDNBOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT
     // Constructs in-place using the given factory
     template<class Expr>
     void construct ( Expr const& factory, in_place_factory_base const* )
      {
-       BOOST_STATIC_ASSERT ( ::ndnboost::mpl::not_<is_reference_predicate>::value ) ;
+       NDNBOOST_STATIC_ASSERT ( ::ndnboost::mpl::not_<is_reference_predicate>::value ) ;
        ndnboost_optional_detail::construct<value_type>(factory, m_storage.address());
        m_initialized = true ;
      }
@@ -361,7 +361,7 @@
     template<class Expr>
     void construct ( Expr const& factory, typed_in_place_factory_base const* )
      {
-       BOOST_STATIC_ASSERT ( ::ndnboost::mpl::not_<is_reference_predicate>::value ) ;
+       NDNBOOST_STATIC_ASSERT ( ::ndnboost::mpl::not_<is_reference_predicate>::value ) ;
        factory.apply(m_storage.address()) ;
        m_initialized = true ;
      }
@@ -403,7 +403,7 @@
        assign_value(expr, is_reference_predicate());
      }
 
-#ifdef BOOST_OPTIONAL_WEAK_OVERLOAD_RESOLUTION
+#ifdef NDNBOOST_OPTIONAL_WEAK_OVERLOAD_RESOLUTION
     // BCB5.64 (and probably lower versions) workaround.
     //   The in-place factories are supported by means of catch-all constructors
     //   and assignment operators (the functions are parameterized in terms of
@@ -450,7 +450,7 @@
   private :
 
     // internal_type can be either T or reference_content<T>
-#if defined(BOOST_OPTIONAL_DETAIL_USE_ATTRIBUTE_MAY_ALIAS)
+#if defined(NDNBOOST_OPTIONAL_DETAIL_USE_ATTRIBUTE_MAY_ALIAS)
     // This workaround is supposed to silence GCC warnings about broken strict aliasing rules
     internal_type const* get_object() const
     {
@@ -473,7 +473,7 @@
     reference_const_type dereference( internal_type const* p, is_reference_tag     ) const { return p->get() ; }
     reference_type       dereference( internal_type*       p, is_reference_tag     )       { return p->get() ; }
 
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x581))
+#if NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x581))
     void destroy_impl ( is_not_reference_tag ) { get_ptr_impl()->internal_type::~internal_type() ; m_initialized = false ; }
 #else
     void destroy_impl ( is_not_reference_tag ) { get_ptr_impl()->T::~T() ; m_initialized = false ; }
@@ -500,18 +500,18 @@
 {
     typedef optional_detail::optional_base<T> base ;
 
-    typedef BOOST_DEDUCED_TYPENAME base::unspecified_bool_type  unspecified_bool_type ;
+    typedef NDNBOOST_DEDUCED_TYPENAME base::unspecified_bool_type  unspecified_bool_type ;
 
   public :
 
     typedef optional<T> this_type ;
 
-    typedef BOOST_DEDUCED_TYPENAME base::value_type           value_type ;
-    typedef BOOST_DEDUCED_TYPENAME base::reference_type       reference_type ;
-    typedef BOOST_DEDUCED_TYPENAME base::reference_const_type reference_const_type ;
-    typedef BOOST_DEDUCED_TYPENAME base::pointer_type         pointer_type ;
-    typedef BOOST_DEDUCED_TYPENAME base::pointer_const_type   pointer_const_type ;
-    typedef BOOST_DEDUCED_TYPENAME base::argument_type        argument_type ;
+    typedef NDNBOOST_DEDUCED_TYPENAME base::value_type           value_type ;
+    typedef NDNBOOST_DEDUCED_TYPENAME base::reference_type       reference_type ;
+    typedef NDNBOOST_DEDUCED_TYPENAME base::reference_const_type reference_const_type ;
+    typedef NDNBOOST_DEDUCED_TYPENAME base::pointer_type         pointer_type ;
+    typedef NDNBOOST_DEDUCED_TYPENAME base::pointer_const_type   pointer_const_type ;
+    typedef NDNBOOST_DEDUCED_TYPENAME base::argument_type        argument_type ;
 
     // Creates an optional<T> uninitialized.
     // No-throw
@@ -529,7 +529,7 @@
     // Can throw if T::T(T const&) does
     optional ( bool cond, argument_type val ) : base(cond,val) {}
 
-#ifndef BOOST_OPTIONAL_NO_CONVERTING_COPY_CTOR
+#ifndef NDNBOOST_OPTIONAL_NO_CONVERTING_COPY_CTOR
     // NOTE: MSVC needs templated versions first
 
     // Creates a deep copy of another convertible optional<U>
@@ -545,7 +545,7 @@
     }
 #endif
 
-#ifndef BOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT
+#ifndef NDNBOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT
     // Creates an optional<T> with an expression which can be either
     //  (a) An instance of InPlaceFactory (i.e. in_place(a,b,...,n);
     //  (b) An instance of TypedInPlaceFactory ( i.e. in_place<T>(a,b,...,n);
@@ -566,7 +566,7 @@
    // No-throw (assuming T::~T() doesn't)
     ~optional() {}
 
-#if !defined(BOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT) && !defined(BOOST_OPTIONAL_WEAK_OVERLOAD_RESOLUTION)
+#if !defined(NDNBOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT) && !defined(NDNBOOST_OPTIONAL_WEAK_OVERLOAD_RESOLUTION)
     // Assigns from an expression. See corresponding constructor.
     // Basic Guarantee: If the resolved T ctor throws, this is left UNINITIALIZED
     template<class Expr>
@@ -578,7 +578,7 @@
 #endif
 
 
-#ifndef BOOST_OPTIONAL_NO_CONVERTING_ASSIGNMENT
+#ifndef NDNBOOST_OPTIONAL_NO_CONVERTING_ASSIGNMENT
     // Assigns from another convertible optional<U> (converts && deep-copies the rhs value)
     // Requires a valid conversion from U to T.
     // Basic Guarantee: If T::T( U const& ) throws, this is left UNINITIALIZED
@@ -627,8 +627,8 @@
     // Returns a reference to the value if this is initialized, otherwise,
     // the behaviour is UNDEFINED
     // No-throw
-    reference_const_type get() const { BOOST_ASSERT(this->is_initialized()) ; return this->get_impl(); }
-    reference_type       get()       { BOOST_ASSERT(this->is_initialized()) ; return this->get_impl(); }
+    reference_const_type get() const { NDNBOOST_ASSERT(this->is_initialized()) ; return this->get_impl(); }
+    reference_type       get()       { NDNBOOST_ASSERT(this->is_initialized()) ; return this->get_impl(); }
 
     // Returns a copy of the value if this is initialized, 'v' otherwise
     reference_const_type get_value_or ( reference_const_type v ) const { return this->is_initialized() ? get() : v ; }
@@ -637,8 +637,8 @@
     // Returns a pointer to the value if this is initialized, otherwise,
     // the behaviour is UNDEFINED
     // No-throw
-    pointer_const_type operator->() const { BOOST_ASSERT(this->is_initialized()) ; return this->get_ptr_impl() ; }
-    pointer_type       operator->()       { BOOST_ASSERT(this->is_initialized()) ; return this->get_ptr_impl() ; }
+    pointer_const_type operator->() const { NDNBOOST_ASSERT(this->is_initialized()) ; return this->get_ptr_impl() ; }
+    pointer_type       operator->()       { NDNBOOST_ASSERT(this->is_initialized()) ; return this->get_ptr_impl() ; }
 
     // Returns a reference to the value if this is initialized, otherwise,
     // the behaviour is UNDEFINED
@@ -675,7 +675,7 @@
 // No-throw
 template<class T>
 inline
-BOOST_DEDUCED_TYPENAME optional<T>::reference_const_type
+NDNBOOST_DEDUCED_TYPENAME optional<T>::reference_const_type
 get ( optional<T> const& opt )
 {
   return opt.get() ;
@@ -683,7 +683,7 @@
 
 template<class T>
 inline
-BOOST_DEDUCED_TYPENAME optional<T>::reference_type
+NDNBOOST_DEDUCED_TYPENAME optional<T>::reference_type
 get ( optional<T>& opt )
 {
   return opt.get() ;
@@ -693,7 +693,7 @@
 // No-throw
 template<class T>
 inline
-BOOST_DEDUCED_TYPENAME optional<T>::pointer_const_type
+NDNBOOST_DEDUCED_TYPENAME optional<T>::pointer_const_type
 get ( optional<T> const* opt )
 {
   return opt->get_ptr() ;
@@ -701,7 +701,7 @@
 
 template<class T>
 inline
-BOOST_DEDUCED_TYPENAME optional<T>::pointer_type
+NDNBOOST_DEDUCED_TYPENAME optional<T>::pointer_type
 get ( optional<T>* opt )
 {
   return opt->get_ptr() ;
@@ -711,16 +711,16 @@
 // No-throw
 template<class T>
 inline
-BOOST_DEDUCED_TYPENAME optional<T>::reference_const_type
-get_optional_value_or ( optional<T> const& opt, BOOST_DEDUCED_TYPENAME optional<T>::reference_const_type v )
+NDNBOOST_DEDUCED_TYPENAME optional<T>::reference_const_type
+get_optional_value_or ( optional<T> const& opt, NDNBOOST_DEDUCED_TYPENAME optional<T>::reference_const_type v )
 {
   return opt.get_value_or(v) ;
 }
 
 template<class T>
 inline
-BOOST_DEDUCED_TYPENAME optional<T>::reference_type
-get_optional_value_or ( optional<T>& opt, BOOST_DEDUCED_TYPENAME optional<T>::reference_type v )
+NDNBOOST_DEDUCED_TYPENAME optional<T>::reference_type
+get_optional_value_or ( optional<T>& opt, NDNBOOST_DEDUCED_TYPENAME optional<T>::reference_type v )
 {
   return opt.get_value_or(v) ;
 }
@@ -729,7 +729,7 @@
 // No-throw
 template<class T>
 inline
-BOOST_DEDUCED_TYPENAME optional<T>::pointer_const_type
+NDNBOOST_DEDUCED_TYPENAME optional<T>::pointer_const_type
 get_pointer ( optional<T> const& opt )
 {
   return opt.get_ptr() ;
@@ -737,7 +737,7 @@
 
 template<class T>
 inline
-BOOST_DEDUCED_TYPENAME optional<T>::pointer_type
+NDNBOOST_DEDUCED_TYPENAME optional<T>::pointer_type
 get_pointer ( optional<T>& opt )
 {
   return opt.get_ptr() ;
diff --git a/include/ndnboost/optional/optional_fwd.hpp b/include/ndnboost/optional/optional_fwd.hpp
index 70fd54b..d5497a2 100644
--- a/include/ndnboost/optional/optional_fwd.hpp
+++ b/include/ndnboost/optional/optional_fwd.hpp
@@ -12,8 +12,8 @@
 // Revisions:
 // 10 May 2008 (added swap related forward declaration) Niels Dekker
 // 
-#ifndef BOOST_OPTIONAL_OPTIONAL_FWD_FLC_19NOV2002_HPP
-#define BOOST_OPTIONAL_OPTIONAL_FWD_FLC_19NOV2002_HPP
+#ifndef NDNBOOST_OPTIONAL_OPTIONAL_FWD_FLC_19NOV2002_HPP
+#define NDNBOOST_OPTIONAL_OPTIONAL_FWD_FLC_19NOV2002_HPP
 
 namespace ndnboost {
 
diff --git a/include/ndnboost/pointee.hpp b/include/ndnboost/pointee.hpp
index f5d1cd8..dd0a3b6 100644
--- a/include/ndnboost/pointee.hpp
+++ b/include/ndnboost/pointee.hpp
@@ -45,10 +45,10 @@
           static Iterator& x;
       };
       
-      BOOST_STATIC_CONSTANT(bool, is_constant = sizeof(impl::test(*impl::x)) == 1);
+      NDNBOOST_STATIC_CONSTANT(bool, is_constant = sizeof(impl::test(*impl::x)) == 1);
       
       typedef typename mpl::if_c<
-#  if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551))
+#  if NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x551))
           ::ndnboost::detail::iterator_pointee<Iterator>::is_constant
 #  else
           is_constant
diff --git a/include/ndnboost/pointer_to_other.hpp b/include/ndnboost/pointer_to_other.hpp
index 8d7cd9c..ec6d610 100644
--- a/include/ndnboost/pointer_to_other.hpp
+++ b/include/ndnboost/pointer_to_other.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_POINTER_TO_OTHER_HPP_INCLUDED
-#define BOOST_POINTER_TO_OTHER_HPP_INCLUDED
+#ifndef NDNBOOST_POINTER_TO_OTHER_HPP_INCLUDED
+#define NDNBOOST_POINTER_TO_OTHER_HPP_INCLUDED
 
 //
 //  pointer_to_other.hpp
@@ -52,4 +52,4 @@
 
 } // namespace ndnboost
 
-#endif // #ifndef BOOST_POINTER_TO_OTHER_HPP_INCLUDED
+#endif // #ifndef NDNBOOST_POINTER_TO_OTHER_HPP_INCLUDED
diff --git a/include/ndnboost/preprocessor/arithmetic/add.hpp b/include/ndnboost/preprocessor/arithmetic/add.hpp
index c88e661..474c0fb 100644
--- a/include/ndnboost/preprocessor/arithmetic/add.hpp
+++ b/include/ndnboost/preprocessor/arithmetic/add.hpp
@@ -11,8 +11,8 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_ARITHMETIC_ADD_HPP
-# define BOOST_PREPROCESSOR_ARITHMETIC_ADD_HPP
+# ifndef NDNBOOST_PREPROCESSOR_ARITHMETIC_ADD_HPP
+# define NDNBOOST_PREPROCESSOR_ARITHMETIC_ADD_HPP
 #
 # include <ndnboost/preprocessor/arithmetic/dec.hpp>
 # include <ndnboost/preprocessor/arithmetic/inc.hpp>
@@ -20,32 +20,32 @@
 # include <ndnboost/preprocessor/control/while.hpp>
 # include <ndnboost/preprocessor/tuple/elem.hpp>
 #
-# /* BOOST_PP_ADD */
+# /* NDNBOOST_PP_ADD */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_ADD(x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE(BOOST_PP_ADD_P, BOOST_PP_ADD_O, (x, y)))
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_ADD(x, y) NDNBOOST_PP_TUPLE_ELEM(2, 0, NDNBOOST_PP_WHILE(NDNBOOST_PP_ADD_P, NDNBOOST_PP_ADD_O, (x, y)))
 # else
-#    define BOOST_PP_ADD(x, y) BOOST_PP_ADD_I(x, y)
-#    define BOOST_PP_ADD_I(x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE(BOOST_PP_ADD_P, BOOST_PP_ADD_O, (x, y)))
+#    define NDNBOOST_PP_ADD(x, y) NDNBOOST_PP_ADD_I(x, y)
+#    define NDNBOOST_PP_ADD_I(x, y) NDNBOOST_PP_TUPLE_ELEM(2, 0, NDNBOOST_PP_WHILE(NDNBOOST_PP_ADD_P, NDNBOOST_PP_ADD_O, (x, y)))
 # endif
 #
-# define BOOST_PP_ADD_P(d, xy) BOOST_PP_TUPLE_ELEM(2, 1, xy)
+# define NDNBOOST_PP_ADD_P(d, xy) NDNBOOST_PP_TUPLE_ELEM(2, 1, xy)
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_ADD_O(d, xy) BOOST_PP_ADD_O_I xy
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MWCC()
+#    define NDNBOOST_PP_ADD_O(d, xy) NDNBOOST_PP_ADD_O_I xy
 # else
-#    define BOOST_PP_ADD_O(d, xy) BOOST_PP_ADD_O_I(BOOST_PP_TUPLE_ELEM(2, 0, xy), BOOST_PP_TUPLE_ELEM(2, 1, xy))
+#    define NDNBOOST_PP_ADD_O(d, xy) NDNBOOST_PP_ADD_O_I(NDNBOOST_PP_TUPLE_ELEM(2, 0, xy), NDNBOOST_PP_TUPLE_ELEM(2, 1, xy))
 # endif
 #
-# define BOOST_PP_ADD_O_I(x, y) (BOOST_PP_INC(x), BOOST_PP_DEC(y))
+# define NDNBOOST_PP_ADD_O_I(x, y) (NDNBOOST_PP_INC(x), NDNBOOST_PP_DEC(y))
 #
-# /* BOOST_PP_ADD_D */
+# /* NDNBOOST_PP_ADD_D */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_ADD_D(d, x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE_ ## d(BOOST_PP_ADD_P, BOOST_PP_ADD_O, (x, y)))
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_ADD_D(d, x, y) NDNBOOST_PP_TUPLE_ELEM(2, 0, NDNBOOST_PP_WHILE_ ## d(NDNBOOST_PP_ADD_P, NDNBOOST_PP_ADD_O, (x, y)))
 # else
-#    define BOOST_PP_ADD_D(d, x, y) BOOST_PP_ADD_D_I(d, x, y)
-#    define BOOST_PP_ADD_D_I(d, x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE_ ## d(BOOST_PP_ADD_P, BOOST_PP_ADD_O, (x, y)))
+#    define NDNBOOST_PP_ADD_D(d, x, y) NDNBOOST_PP_ADD_D_I(d, x, y)
+#    define NDNBOOST_PP_ADD_D_I(d, x, y) NDNBOOST_PP_TUPLE_ELEM(2, 0, NDNBOOST_PP_WHILE_ ## d(NDNBOOST_PP_ADD_P, NDNBOOST_PP_ADD_O, (x, y)))
 # endif
 #
 # endif
diff --git a/include/ndnboost/preprocessor/arithmetic/dec.hpp b/include/ndnboost/preprocessor/arithmetic/dec.hpp
index 6913d88..5e20c2d 100644
--- a/include/ndnboost/preprocessor/arithmetic/dec.hpp
+++ b/include/ndnboost/preprocessor/arithmetic/dec.hpp
@@ -11,278 +11,278 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_ARITHMETIC_DEC_HPP
-# define BOOST_PREPROCESSOR_ARITHMETIC_DEC_HPP
+# ifndef NDNBOOST_PREPROCESSOR_ARITHMETIC_DEC_HPP
+# define NDNBOOST_PREPROCESSOR_ARITHMETIC_DEC_HPP
 #
 # include <ndnboost/preprocessor/config/config.hpp>
 #
-# /* BOOST_PP_DEC */
+# /* NDNBOOST_PP_DEC */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_DEC(x) BOOST_PP_DEC_I(x)
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MWCC()
+#    define NDNBOOST_PP_DEC(x) NDNBOOST_PP_DEC_I(x)
 # else
-#    define BOOST_PP_DEC(x) BOOST_PP_DEC_OO((x))
-#    define BOOST_PP_DEC_OO(par) BOOST_PP_DEC_I ## par
+#    define NDNBOOST_PP_DEC(x) NDNBOOST_PP_DEC_OO((x))
+#    define NDNBOOST_PP_DEC_OO(par) NDNBOOST_PP_DEC_I ## par
 # endif
 #
-# define BOOST_PP_DEC_I(x) BOOST_PP_DEC_ ## x
+# define NDNBOOST_PP_DEC_I(x) NDNBOOST_PP_DEC_ ## x
 #
-# define BOOST_PP_DEC_0 0
-# define BOOST_PP_DEC_1 0
-# define BOOST_PP_DEC_2 1
-# define BOOST_PP_DEC_3 2
-# define BOOST_PP_DEC_4 3
-# define BOOST_PP_DEC_5 4
-# define BOOST_PP_DEC_6 5
-# define BOOST_PP_DEC_7 6
-# define BOOST_PP_DEC_8 7
-# define BOOST_PP_DEC_9 8
-# define BOOST_PP_DEC_10 9
-# define BOOST_PP_DEC_11 10
-# define BOOST_PP_DEC_12 11
-# define BOOST_PP_DEC_13 12
-# define BOOST_PP_DEC_14 13
-# define BOOST_PP_DEC_15 14
-# define BOOST_PP_DEC_16 15
-# define BOOST_PP_DEC_17 16
-# define BOOST_PP_DEC_18 17
-# define BOOST_PP_DEC_19 18
-# define BOOST_PP_DEC_20 19
-# define BOOST_PP_DEC_21 20
-# define BOOST_PP_DEC_22 21
-# define BOOST_PP_DEC_23 22
-# define BOOST_PP_DEC_24 23
-# define BOOST_PP_DEC_25 24
-# define BOOST_PP_DEC_26 25
-# define BOOST_PP_DEC_27 26
-# define BOOST_PP_DEC_28 27
-# define BOOST_PP_DEC_29 28
-# define BOOST_PP_DEC_30 29
-# define BOOST_PP_DEC_31 30
-# define BOOST_PP_DEC_32 31
-# define BOOST_PP_DEC_33 32
-# define BOOST_PP_DEC_34 33
-# define BOOST_PP_DEC_35 34
-# define BOOST_PP_DEC_36 35
-# define BOOST_PP_DEC_37 36
-# define BOOST_PP_DEC_38 37
-# define BOOST_PP_DEC_39 38
-# define BOOST_PP_DEC_40 39
-# define BOOST_PP_DEC_41 40
-# define BOOST_PP_DEC_42 41
-# define BOOST_PP_DEC_43 42
-# define BOOST_PP_DEC_44 43
-# define BOOST_PP_DEC_45 44
-# define BOOST_PP_DEC_46 45
-# define BOOST_PP_DEC_47 46
-# define BOOST_PP_DEC_48 47
-# define BOOST_PP_DEC_49 48
-# define BOOST_PP_DEC_50 49
-# define BOOST_PP_DEC_51 50
-# define BOOST_PP_DEC_52 51
-# define BOOST_PP_DEC_53 52
-# define BOOST_PP_DEC_54 53
-# define BOOST_PP_DEC_55 54
-# define BOOST_PP_DEC_56 55
-# define BOOST_PP_DEC_57 56
-# define BOOST_PP_DEC_58 57
-# define BOOST_PP_DEC_59 58
-# define BOOST_PP_DEC_60 59
-# define BOOST_PP_DEC_61 60
-# define BOOST_PP_DEC_62 61
-# define BOOST_PP_DEC_63 62
-# define BOOST_PP_DEC_64 63
-# define BOOST_PP_DEC_65 64
-# define BOOST_PP_DEC_66 65
-# define BOOST_PP_DEC_67 66
-# define BOOST_PP_DEC_68 67
-# define BOOST_PP_DEC_69 68
-# define BOOST_PP_DEC_70 69
-# define BOOST_PP_DEC_71 70
-# define BOOST_PP_DEC_72 71
-# define BOOST_PP_DEC_73 72
-# define BOOST_PP_DEC_74 73
-# define BOOST_PP_DEC_75 74
-# define BOOST_PP_DEC_76 75
-# define BOOST_PP_DEC_77 76
-# define BOOST_PP_DEC_78 77
-# define BOOST_PP_DEC_79 78
-# define BOOST_PP_DEC_80 79
-# define BOOST_PP_DEC_81 80
-# define BOOST_PP_DEC_82 81
-# define BOOST_PP_DEC_83 82
-# define BOOST_PP_DEC_84 83
-# define BOOST_PP_DEC_85 84
-# define BOOST_PP_DEC_86 85
-# define BOOST_PP_DEC_87 86
-# define BOOST_PP_DEC_88 87
-# define BOOST_PP_DEC_89 88
-# define BOOST_PP_DEC_90 89
-# define BOOST_PP_DEC_91 90
-# define BOOST_PP_DEC_92 91
-# define BOOST_PP_DEC_93 92
-# define BOOST_PP_DEC_94 93
-# define BOOST_PP_DEC_95 94
-# define BOOST_PP_DEC_96 95
-# define BOOST_PP_DEC_97 96
-# define BOOST_PP_DEC_98 97
-# define BOOST_PP_DEC_99 98
-# define BOOST_PP_DEC_100 99
-# define BOOST_PP_DEC_101 100
-# define BOOST_PP_DEC_102 101
-# define BOOST_PP_DEC_103 102
-# define BOOST_PP_DEC_104 103
-# define BOOST_PP_DEC_105 104
-# define BOOST_PP_DEC_106 105
-# define BOOST_PP_DEC_107 106
-# define BOOST_PP_DEC_108 107
-# define BOOST_PP_DEC_109 108
-# define BOOST_PP_DEC_110 109
-# define BOOST_PP_DEC_111 110
-# define BOOST_PP_DEC_112 111
-# define BOOST_PP_DEC_113 112
-# define BOOST_PP_DEC_114 113
-# define BOOST_PP_DEC_115 114
-# define BOOST_PP_DEC_116 115
-# define BOOST_PP_DEC_117 116
-# define BOOST_PP_DEC_118 117
-# define BOOST_PP_DEC_119 118
-# define BOOST_PP_DEC_120 119
-# define BOOST_PP_DEC_121 120
-# define BOOST_PP_DEC_122 121
-# define BOOST_PP_DEC_123 122
-# define BOOST_PP_DEC_124 123
-# define BOOST_PP_DEC_125 124
-# define BOOST_PP_DEC_126 125
-# define BOOST_PP_DEC_127 126
-# define BOOST_PP_DEC_128 127
-# define BOOST_PP_DEC_129 128
-# define BOOST_PP_DEC_130 129
-# define BOOST_PP_DEC_131 130
-# define BOOST_PP_DEC_132 131
-# define BOOST_PP_DEC_133 132
-# define BOOST_PP_DEC_134 133
-# define BOOST_PP_DEC_135 134
-# define BOOST_PP_DEC_136 135
-# define BOOST_PP_DEC_137 136
-# define BOOST_PP_DEC_138 137
-# define BOOST_PP_DEC_139 138
-# define BOOST_PP_DEC_140 139
-# define BOOST_PP_DEC_141 140
-# define BOOST_PP_DEC_142 141
-# define BOOST_PP_DEC_143 142
-# define BOOST_PP_DEC_144 143
-# define BOOST_PP_DEC_145 144
-# define BOOST_PP_DEC_146 145
-# define BOOST_PP_DEC_147 146
-# define BOOST_PP_DEC_148 147
-# define BOOST_PP_DEC_149 148
-# define BOOST_PP_DEC_150 149
-# define BOOST_PP_DEC_151 150
-# define BOOST_PP_DEC_152 151
-# define BOOST_PP_DEC_153 152
-# define BOOST_PP_DEC_154 153
-# define BOOST_PP_DEC_155 154
-# define BOOST_PP_DEC_156 155
-# define BOOST_PP_DEC_157 156
-# define BOOST_PP_DEC_158 157
-# define BOOST_PP_DEC_159 158
-# define BOOST_PP_DEC_160 159
-# define BOOST_PP_DEC_161 160
-# define BOOST_PP_DEC_162 161
-# define BOOST_PP_DEC_163 162
-# define BOOST_PP_DEC_164 163
-# define BOOST_PP_DEC_165 164
-# define BOOST_PP_DEC_166 165
-# define BOOST_PP_DEC_167 166
-# define BOOST_PP_DEC_168 167
-# define BOOST_PP_DEC_169 168
-# define BOOST_PP_DEC_170 169
-# define BOOST_PP_DEC_171 170
-# define BOOST_PP_DEC_172 171
-# define BOOST_PP_DEC_173 172
-# define BOOST_PP_DEC_174 173
-# define BOOST_PP_DEC_175 174
-# define BOOST_PP_DEC_176 175
-# define BOOST_PP_DEC_177 176
-# define BOOST_PP_DEC_178 177
-# define BOOST_PP_DEC_179 178
-# define BOOST_PP_DEC_180 179
-# define BOOST_PP_DEC_181 180
-# define BOOST_PP_DEC_182 181
-# define BOOST_PP_DEC_183 182
-# define BOOST_PP_DEC_184 183
-# define BOOST_PP_DEC_185 184
-# define BOOST_PP_DEC_186 185
-# define BOOST_PP_DEC_187 186
-# define BOOST_PP_DEC_188 187
-# define BOOST_PP_DEC_189 188
-# define BOOST_PP_DEC_190 189
-# define BOOST_PP_DEC_191 190
-# define BOOST_PP_DEC_192 191
-# define BOOST_PP_DEC_193 192
-# define BOOST_PP_DEC_194 193
-# define BOOST_PP_DEC_195 194
-# define BOOST_PP_DEC_196 195
-# define BOOST_PP_DEC_197 196
-# define BOOST_PP_DEC_198 197
-# define BOOST_PP_DEC_199 198
-# define BOOST_PP_DEC_200 199
-# define BOOST_PP_DEC_201 200
-# define BOOST_PP_DEC_202 201
-# define BOOST_PP_DEC_203 202
-# define BOOST_PP_DEC_204 203
-# define BOOST_PP_DEC_205 204
-# define BOOST_PP_DEC_206 205
-# define BOOST_PP_DEC_207 206
-# define BOOST_PP_DEC_208 207
-# define BOOST_PP_DEC_209 208
-# define BOOST_PP_DEC_210 209
-# define BOOST_PP_DEC_211 210
-# define BOOST_PP_DEC_212 211
-# define BOOST_PP_DEC_213 212
-# define BOOST_PP_DEC_214 213
-# define BOOST_PP_DEC_215 214
-# define BOOST_PP_DEC_216 215
-# define BOOST_PP_DEC_217 216
-# define BOOST_PP_DEC_218 217
-# define BOOST_PP_DEC_219 218
-# define BOOST_PP_DEC_220 219
-# define BOOST_PP_DEC_221 220
-# define BOOST_PP_DEC_222 221
-# define BOOST_PP_DEC_223 222
-# define BOOST_PP_DEC_224 223
-# define BOOST_PP_DEC_225 224
-# define BOOST_PP_DEC_226 225
-# define BOOST_PP_DEC_227 226
-# define BOOST_PP_DEC_228 227
-# define BOOST_PP_DEC_229 228
-# define BOOST_PP_DEC_230 229
-# define BOOST_PP_DEC_231 230
-# define BOOST_PP_DEC_232 231
-# define BOOST_PP_DEC_233 232
-# define BOOST_PP_DEC_234 233
-# define BOOST_PP_DEC_235 234
-# define BOOST_PP_DEC_236 235
-# define BOOST_PP_DEC_237 236
-# define BOOST_PP_DEC_238 237
-# define BOOST_PP_DEC_239 238
-# define BOOST_PP_DEC_240 239
-# define BOOST_PP_DEC_241 240
-# define BOOST_PP_DEC_242 241
-# define BOOST_PP_DEC_243 242
-# define BOOST_PP_DEC_244 243
-# define BOOST_PP_DEC_245 244
-# define BOOST_PP_DEC_246 245
-# define BOOST_PP_DEC_247 246
-# define BOOST_PP_DEC_248 247
-# define BOOST_PP_DEC_249 248
-# define BOOST_PP_DEC_250 249
-# define BOOST_PP_DEC_251 250
-# define BOOST_PP_DEC_252 251
-# define BOOST_PP_DEC_253 252
-# define BOOST_PP_DEC_254 253
-# define BOOST_PP_DEC_255 254
-# define BOOST_PP_DEC_256 255
+# define NDNBOOST_PP_DEC_0 0
+# define NDNBOOST_PP_DEC_1 0
+# define NDNBOOST_PP_DEC_2 1
+# define NDNBOOST_PP_DEC_3 2
+# define NDNBOOST_PP_DEC_4 3
+# define NDNBOOST_PP_DEC_5 4
+# define NDNBOOST_PP_DEC_6 5
+# define NDNBOOST_PP_DEC_7 6
+# define NDNBOOST_PP_DEC_8 7
+# define NDNBOOST_PP_DEC_9 8
+# define NDNBOOST_PP_DEC_10 9
+# define NDNBOOST_PP_DEC_11 10
+# define NDNBOOST_PP_DEC_12 11
+# define NDNBOOST_PP_DEC_13 12
+# define NDNBOOST_PP_DEC_14 13
+# define NDNBOOST_PP_DEC_15 14
+# define NDNBOOST_PP_DEC_16 15
+# define NDNBOOST_PP_DEC_17 16
+# define NDNBOOST_PP_DEC_18 17
+# define NDNBOOST_PP_DEC_19 18
+# define NDNBOOST_PP_DEC_20 19
+# define NDNBOOST_PP_DEC_21 20
+# define NDNBOOST_PP_DEC_22 21
+# define NDNBOOST_PP_DEC_23 22
+# define NDNBOOST_PP_DEC_24 23
+# define NDNBOOST_PP_DEC_25 24
+# define NDNBOOST_PP_DEC_26 25
+# define NDNBOOST_PP_DEC_27 26
+# define NDNBOOST_PP_DEC_28 27
+# define NDNBOOST_PP_DEC_29 28
+# define NDNBOOST_PP_DEC_30 29
+# define NDNBOOST_PP_DEC_31 30
+# define NDNBOOST_PP_DEC_32 31
+# define NDNBOOST_PP_DEC_33 32
+# define NDNBOOST_PP_DEC_34 33
+# define NDNBOOST_PP_DEC_35 34
+# define NDNBOOST_PP_DEC_36 35
+# define NDNBOOST_PP_DEC_37 36
+# define NDNBOOST_PP_DEC_38 37
+# define NDNBOOST_PP_DEC_39 38
+# define NDNBOOST_PP_DEC_40 39
+# define NDNBOOST_PP_DEC_41 40
+# define NDNBOOST_PP_DEC_42 41
+# define NDNBOOST_PP_DEC_43 42
+# define NDNBOOST_PP_DEC_44 43
+# define NDNBOOST_PP_DEC_45 44
+# define NDNBOOST_PP_DEC_46 45
+# define NDNBOOST_PP_DEC_47 46
+# define NDNBOOST_PP_DEC_48 47
+# define NDNBOOST_PP_DEC_49 48
+# define NDNBOOST_PP_DEC_50 49
+# define NDNBOOST_PP_DEC_51 50
+# define NDNBOOST_PP_DEC_52 51
+# define NDNBOOST_PP_DEC_53 52
+# define NDNBOOST_PP_DEC_54 53
+# define NDNBOOST_PP_DEC_55 54
+# define NDNBOOST_PP_DEC_56 55
+# define NDNBOOST_PP_DEC_57 56
+# define NDNBOOST_PP_DEC_58 57
+# define NDNBOOST_PP_DEC_59 58
+# define NDNBOOST_PP_DEC_60 59
+# define NDNBOOST_PP_DEC_61 60
+# define NDNBOOST_PP_DEC_62 61
+# define NDNBOOST_PP_DEC_63 62
+# define NDNBOOST_PP_DEC_64 63
+# define NDNBOOST_PP_DEC_65 64
+# define NDNBOOST_PP_DEC_66 65
+# define NDNBOOST_PP_DEC_67 66
+# define NDNBOOST_PP_DEC_68 67
+# define NDNBOOST_PP_DEC_69 68
+# define NDNBOOST_PP_DEC_70 69
+# define NDNBOOST_PP_DEC_71 70
+# define NDNBOOST_PP_DEC_72 71
+# define NDNBOOST_PP_DEC_73 72
+# define NDNBOOST_PP_DEC_74 73
+# define NDNBOOST_PP_DEC_75 74
+# define NDNBOOST_PP_DEC_76 75
+# define NDNBOOST_PP_DEC_77 76
+# define NDNBOOST_PP_DEC_78 77
+# define NDNBOOST_PP_DEC_79 78
+# define NDNBOOST_PP_DEC_80 79
+# define NDNBOOST_PP_DEC_81 80
+# define NDNBOOST_PP_DEC_82 81
+# define NDNBOOST_PP_DEC_83 82
+# define NDNBOOST_PP_DEC_84 83
+# define NDNBOOST_PP_DEC_85 84
+# define NDNBOOST_PP_DEC_86 85
+# define NDNBOOST_PP_DEC_87 86
+# define NDNBOOST_PP_DEC_88 87
+# define NDNBOOST_PP_DEC_89 88
+# define NDNBOOST_PP_DEC_90 89
+# define NDNBOOST_PP_DEC_91 90
+# define NDNBOOST_PP_DEC_92 91
+# define NDNBOOST_PP_DEC_93 92
+# define NDNBOOST_PP_DEC_94 93
+# define NDNBOOST_PP_DEC_95 94
+# define NDNBOOST_PP_DEC_96 95
+# define NDNBOOST_PP_DEC_97 96
+# define NDNBOOST_PP_DEC_98 97
+# define NDNBOOST_PP_DEC_99 98
+# define NDNBOOST_PP_DEC_100 99
+# define NDNBOOST_PP_DEC_101 100
+# define NDNBOOST_PP_DEC_102 101
+# define NDNBOOST_PP_DEC_103 102
+# define NDNBOOST_PP_DEC_104 103
+# define NDNBOOST_PP_DEC_105 104
+# define NDNBOOST_PP_DEC_106 105
+# define NDNBOOST_PP_DEC_107 106
+# define NDNBOOST_PP_DEC_108 107
+# define NDNBOOST_PP_DEC_109 108
+# define NDNBOOST_PP_DEC_110 109
+# define NDNBOOST_PP_DEC_111 110
+# define NDNBOOST_PP_DEC_112 111
+# define NDNBOOST_PP_DEC_113 112
+# define NDNBOOST_PP_DEC_114 113
+# define NDNBOOST_PP_DEC_115 114
+# define NDNBOOST_PP_DEC_116 115
+# define NDNBOOST_PP_DEC_117 116
+# define NDNBOOST_PP_DEC_118 117
+# define NDNBOOST_PP_DEC_119 118
+# define NDNBOOST_PP_DEC_120 119
+# define NDNBOOST_PP_DEC_121 120
+# define NDNBOOST_PP_DEC_122 121
+# define NDNBOOST_PP_DEC_123 122
+# define NDNBOOST_PP_DEC_124 123
+# define NDNBOOST_PP_DEC_125 124
+# define NDNBOOST_PP_DEC_126 125
+# define NDNBOOST_PP_DEC_127 126
+# define NDNBOOST_PP_DEC_128 127
+# define NDNBOOST_PP_DEC_129 128
+# define NDNBOOST_PP_DEC_130 129
+# define NDNBOOST_PP_DEC_131 130
+# define NDNBOOST_PP_DEC_132 131
+# define NDNBOOST_PP_DEC_133 132
+# define NDNBOOST_PP_DEC_134 133
+# define NDNBOOST_PP_DEC_135 134
+# define NDNBOOST_PP_DEC_136 135
+# define NDNBOOST_PP_DEC_137 136
+# define NDNBOOST_PP_DEC_138 137
+# define NDNBOOST_PP_DEC_139 138
+# define NDNBOOST_PP_DEC_140 139
+# define NDNBOOST_PP_DEC_141 140
+# define NDNBOOST_PP_DEC_142 141
+# define NDNBOOST_PP_DEC_143 142
+# define NDNBOOST_PP_DEC_144 143
+# define NDNBOOST_PP_DEC_145 144
+# define NDNBOOST_PP_DEC_146 145
+# define NDNBOOST_PP_DEC_147 146
+# define NDNBOOST_PP_DEC_148 147
+# define NDNBOOST_PP_DEC_149 148
+# define NDNBOOST_PP_DEC_150 149
+# define NDNBOOST_PP_DEC_151 150
+# define NDNBOOST_PP_DEC_152 151
+# define NDNBOOST_PP_DEC_153 152
+# define NDNBOOST_PP_DEC_154 153
+# define NDNBOOST_PP_DEC_155 154
+# define NDNBOOST_PP_DEC_156 155
+# define NDNBOOST_PP_DEC_157 156
+# define NDNBOOST_PP_DEC_158 157
+# define NDNBOOST_PP_DEC_159 158
+# define NDNBOOST_PP_DEC_160 159
+# define NDNBOOST_PP_DEC_161 160
+# define NDNBOOST_PP_DEC_162 161
+# define NDNBOOST_PP_DEC_163 162
+# define NDNBOOST_PP_DEC_164 163
+# define NDNBOOST_PP_DEC_165 164
+# define NDNBOOST_PP_DEC_166 165
+# define NDNBOOST_PP_DEC_167 166
+# define NDNBOOST_PP_DEC_168 167
+# define NDNBOOST_PP_DEC_169 168
+# define NDNBOOST_PP_DEC_170 169
+# define NDNBOOST_PP_DEC_171 170
+# define NDNBOOST_PP_DEC_172 171
+# define NDNBOOST_PP_DEC_173 172
+# define NDNBOOST_PP_DEC_174 173
+# define NDNBOOST_PP_DEC_175 174
+# define NDNBOOST_PP_DEC_176 175
+# define NDNBOOST_PP_DEC_177 176
+# define NDNBOOST_PP_DEC_178 177
+# define NDNBOOST_PP_DEC_179 178
+# define NDNBOOST_PP_DEC_180 179
+# define NDNBOOST_PP_DEC_181 180
+# define NDNBOOST_PP_DEC_182 181
+# define NDNBOOST_PP_DEC_183 182
+# define NDNBOOST_PP_DEC_184 183
+# define NDNBOOST_PP_DEC_185 184
+# define NDNBOOST_PP_DEC_186 185
+# define NDNBOOST_PP_DEC_187 186
+# define NDNBOOST_PP_DEC_188 187
+# define NDNBOOST_PP_DEC_189 188
+# define NDNBOOST_PP_DEC_190 189
+# define NDNBOOST_PP_DEC_191 190
+# define NDNBOOST_PP_DEC_192 191
+# define NDNBOOST_PP_DEC_193 192
+# define NDNBOOST_PP_DEC_194 193
+# define NDNBOOST_PP_DEC_195 194
+# define NDNBOOST_PP_DEC_196 195
+# define NDNBOOST_PP_DEC_197 196
+# define NDNBOOST_PP_DEC_198 197
+# define NDNBOOST_PP_DEC_199 198
+# define NDNBOOST_PP_DEC_200 199
+# define NDNBOOST_PP_DEC_201 200
+# define NDNBOOST_PP_DEC_202 201
+# define NDNBOOST_PP_DEC_203 202
+# define NDNBOOST_PP_DEC_204 203
+# define NDNBOOST_PP_DEC_205 204
+# define NDNBOOST_PP_DEC_206 205
+# define NDNBOOST_PP_DEC_207 206
+# define NDNBOOST_PP_DEC_208 207
+# define NDNBOOST_PP_DEC_209 208
+# define NDNBOOST_PP_DEC_210 209
+# define NDNBOOST_PP_DEC_211 210
+# define NDNBOOST_PP_DEC_212 211
+# define NDNBOOST_PP_DEC_213 212
+# define NDNBOOST_PP_DEC_214 213
+# define NDNBOOST_PP_DEC_215 214
+# define NDNBOOST_PP_DEC_216 215
+# define NDNBOOST_PP_DEC_217 216
+# define NDNBOOST_PP_DEC_218 217
+# define NDNBOOST_PP_DEC_219 218
+# define NDNBOOST_PP_DEC_220 219
+# define NDNBOOST_PP_DEC_221 220
+# define NDNBOOST_PP_DEC_222 221
+# define NDNBOOST_PP_DEC_223 222
+# define NDNBOOST_PP_DEC_224 223
+# define NDNBOOST_PP_DEC_225 224
+# define NDNBOOST_PP_DEC_226 225
+# define NDNBOOST_PP_DEC_227 226
+# define NDNBOOST_PP_DEC_228 227
+# define NDNBOOST_PP_DEC_229 228
+# define NDNBOOST_PP_DEC_230 229
+# define NDNBOOST_PP_DEC_231 230
+# define NDNBOOST_PP_DEC_232 231
+# define NDNBOOST_PP_DEC_233 232
+# define NDNBOOST_PP_DEC_234 233
+# define NDNBOOST_PP_DEC_235 234
+# define NDNBOOST_PP_DEC_236 235
+# define NDNBOOST_PP_DEC_237 236
+# define NDNBOOST_PP_DEC_238 237
+# define NDNBOOST_PP_DEC_239 238
+# define NDNBOOST_PP_DEC_240 239
+# define NDNBOOST_PP_DEC_241 240
+# define NDNBOOST_PP_DEC_242 241
+# define NDNBOOST_PP_DEC_243 242
+# define NDNBOOST_PP_DEC_244 243
+# define NDNBOOST_PP_DEC_245 244
+# define NDNBOOST_PP_DEC_246 245
+# define NDNBOOST_PP_DEC_247 246
+# define NDNBOOST_PP_DEC_248 247
+# define NDNBOOST_PP_DEC_249 248
+# define NDNBOOST_PP_DEC_250 249
+# define NDNBOOST_PP_DEC_251 250
+# define NDNBOOST_PP_DEC_252 251
+# define NDNBOOST_PP_DEC_253 252
+# define NDNBOOST_PP_DEC_254 253
+# define NDNBOOST_PP_DEC_255 254
+# define NDNBOOST_PP_DEC_256 255
 #
 # endif
diff --git a/include/ndnboost/preprocessor/arithmetic/detail/div_base.hpp b/include/ndnboost/preprocessor/arithmetic/detail/div_base.hpp
index 5f8e234..524e412 100644
--- a/include/ndnboost/preprocessor/arithmetic/detail/div_base.hpp
+++ b/include/ndnboost/preprocessor/arithmetic/detail/div_base.hpp
@@ -11,8 +11,8 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_ARITHMETIC_DETAIL_DIV_BASE_HPP
-# define BOOST_PREPROCESSOR_ARITHMETIC_DETAIL_DIV_BASE_HPP
+# ifndef NDNBOOST_PREPROCESSOR_ARITHMETIC_DETAIL_DIV_BASE_HPP
+# define NDNBOOST_PREPROCESSOR_ARITHMETIC_DETAIL_DIV_BASE_HPP
 #
 # include <ndnboost/preprocessor/arithmetic/inc.hpp>
 # include <ndnboost/preprocessor/arithmetic/sub.hpp>
@@ -22,40 +22,40 @@
 # include <ndnboost/preprocessor/tuple/elem.hpp>
 # include <ndnboost/preprocessor/tuple/rem.hpp>
 #
-# /* BOOST_PP_DIV_BASE */
+# /* NDNBOOST_PP_DIV_BASE */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_DIV_BASE(x, y) BOOST_PP_WHILE(BOOST_PP_DIV_BASE_P, BOOST_PP_DIV_BASE_O, (0, x, y))
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_DIV_BASE(x, y) NDNBOOST_PP_WHILE(NDNBOOST_PP_DIV_BASE_P, NDNBOOST_PP_DIV_BASE_O, (0, x, y))
 # else
-#    define BOOST_PP_DIV_BASE(x, y) BOOST_PP_DIV_BASE_I(x, y)
-#    define BOOST_PP_DIV_BASE_I(x, y) BOOST_PP_WHILE(BOOST_PP_DIV_BASE_P, BOOST_PP_DIV_BASE_O, (0, x, y))
+#    define NDNBOOST_PP_DIV_BASE(x, y) NDNBOOST_PP_DIV_BASE_I(x, y)
+#    define NDNBOOST_PP_DIV_BASE_I(x, y) NDNBOOST_PP_WHILE(NDNBOOST_PP_DIV_BASE_P, NDNBOOST_PP_DIV_BASE_O, (0, x, y))
 # endif
 #
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
-#    define BOOST_PP_DIV_BASE_P(d, rxy) BOOST_PP_DIV_BASE_P_IM(d, BOOST_PP_TUPLE_REM_3 rxy)
-#    define BOOST_PP_DIV_BASE_P_IM(d, im) BOOST_PP_DIV_BASE_P_I(d, im)
+# if NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_STRICT()
+#    define NDNBOOST_PP_DIV_BASE_P(d, rxy) NDNBOOST_PP_DIV_BASE_P_IM(d, NDNBOOST_PP_TUPLE_REM_3 rxy)
+#    define NDNBOOST_PP_DIV_BASE_P_IM(d, im) NDNBOOST_PP_DIV_BASE_P_I(d, im)
 # else
-#    define BOOST_PP_DIV_BASE_P(d, rxy) BOOST_PP_DIV_BASE_P_I(d, BOOST_PP_TUPLE_ELEM(3, 0, rxy), BOOST_PP_TUPLE_ELEM(3, 1, rxy), BOOST_PP_TUPLE_ELEM(3, 2, rxy))
+#    define NDNBOOST_PP_DIV_BASE_P(d, rxy) NDNBOOST_PP_DIV_BASE_P_I(d, NDNBOOST_PP_TUPLE_ELEM(3, 0, rxy), NDNBOOST_PP_TUPLE_ELEM(3, 1, rxy), NDNBOOST_PP_TUPLE_ELEM(3, 2, rxy))
 # endif
 #
-# define BOOST_PP_DIV_BASE_P_I(d, r, x, y) BOOST_PP_LESS_EQUAL_D(d, y, x)
+# define NDNBOOST_PP_DIV_BASE_P_I(d, r, x, y) NDNBOOST_PP_LESS_EQUAL_D(d, y, x)
 #
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
-#    define BOOST_PP_DIV_BASE_O(d, rxy) BOOST_PP_DIV_BASE_O_IM(d, BOOST_PP_TUPLE_REM_3 rxy)
-#    define BOOST_PP_DIV_BASE_O_IM(d, im) BOOST_PP_DIV_BASE_O_I(d, im)
+# if NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_STRICT()
+#    define NDNBOOST_PP_DIV_BASE_O(d, rxy) NDNBOOST_PP_DIV_BASE_O_IM(d, NDNBOOST_PP_TUPLE_REM_3 rxy)
+#    define NDNBOOST_PP_DIV_BASE_O_IM(d, im) NDNBOOST_PP_DIV_BASE_O_I(d, im)
 # else
-#    define BOOST_PP_DIV_BASE_O(d, rxy) BOOST_PP_DIV_BASE_O_I(d, BOOST_PP_TUPLE_ELEM(3, 0, rxy), BOOST_PP_TUPLE_ELEM(3, 1, rxy), BOOST_PP_TUPLE_ELEM(3, 2, rxy))
+#    define NDNBOOST_PP_DIV_BASE_O(d, rxy) NDNBOOST_PP_DIV_BASE_O_I(d, NDNBOOST_PP_TUPLE_ELEM(3, 0, rxy), NDNBOOST_PP_TUPLE_ELEM(3, 1, rxy), NDNBOOST_PP_TUPLE_ELEM(3, 2, rxy))
 # endif
 #
-# define BOOST_PP_DIV_BASE_O_I(d, r, x, y) (BOOST_PP_INC(r), BOOST_PP_SUB_D(d, x, y), y)
+# define NDNBOOST_PP_DIV_BASE_O_I(d, r, x, y) (NDNBOOST_PP_INC(r), NDNBOOST_PP_SUB_D(d, x, y), y)
 #
-# /* BOOST_PP_DIV_BASE_D */
+# /* NDNBOOST_PP_DIV_BASE_D */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_DIV_BASE_D(d, x, y) BOOST_PP_WHILE_ ## d(BOOST_PP_DIV_BASE_P, BOOST_PP_DIV_BASE_O, (0, x, y))
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_DIV_BASE_D(d, x, y) NDNBOOST_PP_WHILE_ ## d(NDNBOOST_PP_DIV_BASE_P, NDNBOOST_PP_DIV_BASE_O, (0, x, y))
 # else
-#    define BOOST_PP_DIV_BASE_D(d, x, y) BOOST_PP_DIV_BASE_D_I(d, x, y)
-#    define BOOST_PP_DIV_BASE_D_I(d, x, y) BOOST_PP_WHILE_ ## d(BOOST_PP_DIV_BASE_P, BOOST_PP_DIV_BASE_O, (0, x, y))
+#    define NDNBOOST_PP_DIV_BASE_D(d, x, y) NDNBOOST_PP_DIV_BASE_D_I(d, x, y)
+#    define NDNBOOST_PP_DIV_BASE_D_I(d, x, y) NDNBOOST_PP_WHILE_ ## d(NDNBOOST_PP_DIV_BASE_P, NDNBOOST_PP_DIV_BASE_O, (0, x, y))
 # endif
 #
 # endif
diff --git a/include/ndnboost/preprocessor/arithmetic/inc.hpp b/include/ndnboost/preprocessor/arithmetic/inc.hpp
index c26e86f..8878395 100644
--- a/include/ndnboost/preprocessor/arithmetic/inc.hpp
+++ b/include/ndnboost/preprocessor/arithmetic/inc.hpp
@@ -11,278 +11,278 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_ARITHMETIC_INC_HPP
-# define BOOST_PREPROCESSOR_ARITHMETIC_INC_HPP
+# ifndef NDNBOOST_PREPROCESSOR_ARITHMETIC_INC_HPP
+# define NDNBOOST_PREPROCESSOR_ARITHMETIC_INC_HPP
 #
 # include <ndnboost/preprocessor/config/config.hpp>
 #
-# /* BOOST_PP_INC */
+# /* NDNBOOST_PP_INC */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_INC(x) BOOST_PP_INC_I(x)
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MWCC()
+#    define NDNBOOST_PP_INC(x) NDNBOOST_PP_INC_I(x)
 # else
-#    define BOOST_PP_INC(x) BOOST_PP_INC_OO((x))
-#    define BOOST_PP_INC_OO(par) BOOST_PP_INC_I ## par
+#    define NDNBOOST_PP_INC(x) NDNBOOST_PP_INC_OO((x))
+#    define NDNBOOST_PP_INC_OO(par) NDNBOOST_PP_INC_I ## par
 # endif
 #
-# define BOOST_PP_INC_I(x) BOOST_PP_INC_ ## x
+# define NDNBOOST_PP_INC_I(x) NDNBOOST_PP_INC_ ## x
 #
-# define BOOST_PP_INC_0 1
-# define BOOST_PP_INC_1 2
-# define BOOST_PP_INC_2 3
-# define BOOST_PP_INC_3 4
-# define BOOST_PP_INC_4 5
-# define BOOST_PP_INC_5 6
-# define BOOST_PP_INC_6 7
-# define BOOST_PP_INC_7 8
-# define BOOST_PP_INC_8 9
-# define BOOST_PP_INC_9 10
-# define BOOST_PP_INC_10 11
-# define BOOST_PP_INC_11 12
-# define BOOST_PP_INC_12 13
-# define BOOST_PP_INC_13 14
-# define BOOST_PP_INC_14 15
-# define BOOST_PP_INC_15 16
-# define BOOST_PP_INC_16 17
-# define BOOST_PP_INC_17 18
-# define BOOST_PP_INC_18 19
-# define BOOST_PP_INC_19 20
-# define BOOST_PP_INC_20 21
-# define BOOST_PP_INC_21 22
-# define BOOST_PP_INC_22 23
-# define BOOST_PP_INC_23 24
-# define BOOST_PP_INC_24 25
-# define BOOST_PP_INC_25 26
-# define BOOST_PP_INC_26 27
-# define BOOST_PP_INC_27 28
-# define BOOST_PP_INC_28 29
-# define BOOST_PP_INC_29 30
-# define BOOST_PP_INC_30 31
-# define BOOST_PP_INC_31 32
-# define BOOST_PP_INC_32 33
-# define BOOST_PP_INC_33 34
-# define BOOST_PP_INC_34 35
-# define BOOST_PP_INC_35 36
-# define BOOST_PP_INC_36 37
-# define BOOST_PP_INC_37 38
-# define BOOST_PP_INC_38 39
-# define BOOST_PP_INC_39 40
-# define BOOST_PP_INC_40 41
-# define BOOST_PP_INC_41 42
-# define BOOST_PP_INC_42 43
-# define BOOST_PP_INC_43 44
-# define BOOST_PP_INC_44 45
-# define BOOST_PP_INC_45 46
-# define BOOST_PP_INC_46 47
-# define BOOST_PP_INC_47 48
-# define BOOST_PP_INC_48 49
-# define BOOST_PP_INC_49 50
-# define BOOST_PP_INC_50 51
-# define BOOST_PP_INC_51 52
-# define BOOST_PP_INC_52 53
-# define BOOST_PP_INC_53 54
-# define BOOST_PP_INC_54 55
-# define BOOST_PP_INC_55 56
-# define BOOST_PP_INC_56 57
-# define BOOST_PP_INC_57 58
-# define BOOST_PP_INC_58 59
-# define BOOST_PP_INC_59 60
-# define BOOST_PP_INC_60 61
-# define BOOST_PP_INC_61 62
-# define BOOST_PP_INC_62 63
-# define BOOST_PP_INC_63 64
-# define BOOST_PP_INC_64 65
-# define BOOST_PP_INC_65 66
-# define BOOST_PP_INC_66 67
-# define BOOST_PP_INC_67 68
-# define BOOST_PP_INC_68 69
-# define BOOST_PP_INC_69 70
-# define BOOST_PP_INC_70 71
-# define BOOST_PP_INC_71 72
-# define BOOST_PP_INC_72 73
-# define BOOST_PP_INC_73 74
-# define BOOST_PP_INC_74 75
-# define BOOST_PP_INC_75 76
-# define BOOST_PP_INC_76 77
-# define BOOST_PP_INC_77 78
-# define BOOST_PP_INC_78 79
-# define BOOST_PP_INC_79 80
-# define BOOST_PP_INC_80 81
-# define BOOST_PP_INC_81 82
-# define BOOST_PP_INC_82 83
-# define BOOST_PP_INC_83 84
-# define BOOST_PP_INC_84 85
-# define BOOST_PP_INC_85 86
-# define BOOST_PP_INC_86 87
-# define BOOST_PP_INC_87 88
-# define BOOST_PP_INC_88 89
-# define BOOST_PP_INC_89 90
-# define BOOST_PP_INC_90 91
-# define BOOST_PP_INC_91 92
-# define BOOST_PP_INC_92 93
-# define BOOST_PP_INC_93 94
-# define BOOST_PP_INC_94 95
-# define BOOST_PP_INC_95 96
-# define BOOST_PP_INC_96 97
-# define BOOST_PP_INC_97 98
-# define BOOST_PP_INC_98 99
-# define BOOST_PP_INC_99 100
-# define BOOST_PP_INC_100 101
-# define BOOST_PP_INC_101 102
-# define BOOST_PP_INC_102 103
-# define BOOST_PP_INC_103 104
-# define BOOST_PP_INC_104 105
-# define BOOST_PP_INC_105 106
-# define BOOST_PP_INC_106 107
-# define BOOST_PP_INC_107 108
-# define BOOST_PP_INC_108 109
-# define BOOST_PP_INC_109 110
-# define BOOST_PP_INC_110 111
-# define BOOST_PP_INC_111 112
-# define BOOST_PP_INC_112 113
-# define BOOST_PP_INC_113 114
-# define BOOST_PP_INC_114 115
-# define BOOST_PP_INC_115 116
-# define BOOST_PP_INC_116 117
-# define BOOST_PP_INC_117 118
-# define BOOST_PP_INC_118 119
-# define BOOST_PP_INC_119 120
-# define BOOST_PP_INC_120 121
-# define BOOST_PP_INC_121 122
-# define BOOST_PP_INC_122 123
-# define BOOST_PP_INC_123 124
-# define BOOST_PP_INC_124 125
-# define BOOST_PP_INC_125 126
-# define BOOST_PP_INC_126 127
-# define BOOST_PP_INC_127 128
-# define BOOST_PP_INC_128 129
-# define BOOST_PP_INC_129 130
-# define BOOST_PP_INC_130 131
-# define BOOST_PP_INC_131 132
-# define BOOST_PP_INC_132 133
-# define BOOST_PP_INC_133 134
-# define BOOST_PP_INC_134 135
-# define BOOST_PP_INC_135 136
-# define BOOST_PP_INC_136 137
-# define BOOST_PP_INC_137 138
-# define BOOST_PP_INC_138 139
-# define BOOST_PP_INC_139 140
-# define BOOST_PP_INC_140 141
-# define BOOST_PP_INC_141 142
-# define BOOST_PP_INC_142 143
-# define BOOST_PP_INC_143 144
-# define BOOST_PP_INC_144 145
-# define BOOST_PP_INC_145 146
-# define BOOST_PP_INC_146 147
-# define BOOST_PP_INC_147 148
-# define BOOST_PP_INC_148 149
-# define BOOST_PP_INC_149 150
-# define BOOST_PP_INC_150 151
-# define BOOST_PP_INC_151 152
-# define BOOST_PP_INC_152 153
-# define BOOST_PP_INC_153 154
-# define BOOST_PP_INC_154 155
-# define BOOST_PP_INC_155 156
-# define BOOST_PP_INC_156 157
-# define BOOST_PP_INC_157 158
-# define BOOST_PP_INC_158 159
-# define BOOST_PP_INC_159 160
-# define BOOST_PP_INC_160 161
-# define BOOST_PP_INC_161 162
-# define BOOST_PP_INC_162 163
-# define BOOST_PP_INC_163 164
-# define BOOST_PP_INC_164 165
-# define BOOST_PP_INC_165 166
-# define BOOST_PP_INC_166 167
-# define BOOST_PP_INC_167 168
-# define BOOST_PP_INC_168 169
-# define BOOST_PP_INC_169 170
-# define BOOST_PP_INC_170 171
-# define BOOST_PP_INC_171 172
-# define BOOST_PP_INC_172 173
-# define BOOST_PP_INC_173 174
-# define BOOST_PP_INC_174 175
-# define BOOST_PP_INC_175 176
-# define BOOST_PP_INC_176 177
-# define BOOST_PP_INC_177 178
-# define BOOST_PP_INC_178 179
-# define BOOST_PP_INC_179 180
-# define BOOST_PP_INC_180 181
-# define BOOST_PP_INC_181 182
-# define BOOST_PP_INC_182 183
-# define BOOST_PP_INC_183 184
-# define BOOST_PP_INC_184 185
-# define BOOST_PP_INC_185 186
-# define BOOST_PP_INC_186 187
-# define BOOST_PP_INC_187 188
-# define BOOST_PP_INC_188 189
-# define BOOST_PP_INC_189 190
-# define BOOST_PP_INC_190 191
-# define BOOST_PP_INC_191 192
-# define BOOST_PP_INC_192 193
-# define BOOST_PP_INC_193 194
-# define BOOST_PP_INC_194 195
-# define BOOST_PP_INC_195 196
-# define BOOST_PP_INC_196 197
-# define BOOST_PP_INC_197 198
-# define BOOST_PP_INC_198 199
-# define BOOST_PP_INC_199 200
-# define BOOST_PP_INC_200 201
-# define BOOST_PP_INC_201 202
-# define BOOST_PP_INC_202 203
-# define BOOST_PP_INC_203 204
-# define BOOST_PP_INC_204 205
-# define BOOST_PP_INC_205 206
-# define BOOST_PP_INC_206 207
-# define BOOST_PP_INC_207 208
-# define BOOST_PP_INC_208 209
-# define BOOST_PP_INC_209 210
-# define BOOST_PP_INC_210 211
-# define BOOST_PP_INC_211 212
-# define BOOST_PP_INC_212 213
-# define BOOST_PP_INC_213 214
-# define BOOST_PP_INC_214 215
-# define BOOST_PP_INC_215 216
-# define BOOST_PP_INC_216 217
-# define BOOST_PP_INC_217 218
-# define BOOST_PP_INC_218 219
-# define BOOST_PP_INC_219 220
-# define BOOST_PP_INC_220 221
-# define BOOST_PP_INC_221 222
-# define BOOST_PP_INC_222 223
-# define BOOST_PP_INC_223 224
-# define BOOST_PP_INC_224 225
-# define BOOST_PP_INC_225 226
-# define BOOST_PP_INC_226 227
-# define BOOST_PP_INC_227 228
-# define BOOST_PP_INC_228 229
-# define BOOST_PP_INC_229 230
-# define BOOST_PP_INC_230 231
-# define BOOST_PP_INC_231 232
-# define BOOST_PP_INC_232 233
-# define BOOST_PP_INC_233 234
-# define BOOST_PP_INC_234 235
-# define BOOST_PP_INC_235 236
-# define BOOST_PP_INC_236 237
-# define BOOST_PP_INC_237 238
-# define BOOST_PP_INC_238 239
-# define BOOST_PP_INC_239 240
-# define BOOST_PP_INC_240 241
-# define BOOST_PP_INC_241 242
-# define BOOST_PP_INC_242 243
-# define BOOST_PP_INC_243 244
-# define BOOST_PP_INC_244 245
-# define BOOST_PP_INC_245 246
-# define BOOST_PP_INC_246 247
-# define BOOST_PP_INC_247 248
-# define BOOST_PP_INC_248 249
-# define BOOST_PP_INC_249 250
-# define BOOST_PP_INC_250 251
-# define BOOST_PP_INC_251 252
-# define BOOST_PP_INC_252 253
-# define BOOST_PP_INC_253 254
-# define BOOST_PP_INC_254 255
-# define BOOST_PP_INC_255 256
-# define BOOST_PP_INC_256 256
+# define NDNBOOST_PP_INC_0 1
+# define NDNBOOST_PP_INC_1 2
+# define NDNBOOST_PP_INC_2 3
+# define NDNBOOST_PP_INC_3 4
+# define NDNBOOST_PP_INC_4 5
+# define NDNBOOST_PP_INC_5 6
+# define NDNBOOST_PP_INC_6 7
+# define NDNBOOST_PP_INC_7 8
+# define NDNBOOST_PP_INC_8 9
+# define NDNBOOST_PP_INC_9 10
+# define NDNBOOST_PP_INC_10 11
+# define NDNBOOST_PP_INC_11 12
+# define NDNBOOST_PP_INC_12 13
+# define NDNBOOST_PP_INC_13 14
+# define NDNBOOST_PP_INC_14 15
+# define NDNBOOST_PP_INC_15 16
+# define NDNBOOST_PP_INC_16 17
+# define NDNBOOST_PP_INC_17 18
+# define NDNBOOST_PP_INC_18 19
+# define NDNBOOST_PP_INC_19 20
+# define NDNBOOST_PP_INC_20 21
+# define NDNBOOST_PP_INC_21 22
+# define NDNBOOST_PP_INC_22 23
+# define NDNBOOST_PP_INC_23 24
+# define NDNBOOST_PP_INC_24 25
+# define NDNBOOST_PP_INC_25 26
+# define NDNBOOST_PP_INC_26 27
+# define NDNBOOST_PP_INC_27 28
+# define NDNBOOST_PP_INC_28 29
+# define NDNBOOST_PP_INC_29 30
+# define NDNBOOST_PP_INC_30 31
+# define NDNBOOST_PP_INC_31 32
+# define NDNBOOST_PP_INC_32 33
+# define NDNBOOST_PP_INC_33 34
+# define NDNBOOST_PP_INC_34 35
+# define NDNBOOST_PP_INC_35 36
+# define NDNBOOST_PP_INC_36 37
+# define NDNBOOST_PP_INC_37 38
+# define NDNBOOST_PP_INC_38 39
+# define NDNBOOST_PP_INC_39 40
+# define NDNBOOST_PP_INC_40 41
+# define NDNBOOST_PP_INC_41 42
+# define NDNBOOST_PP_INC_42 43
+# define NDNBOOST_PP_INC_43 44
+# define NDNBOOST_PP_INC_44 45
+# define NDNBOOST_PP_INC_45 46
+# define NDNBOOST_PP_INC_46 47
+# define NDNBOOST_PP_INC_47 48
+# define NDNBOOST_PP_INC_48 49
+# define NDNBOOST_PP_INC_49 50
+# define NDNBOOST_PP_INC_50 51
+# define NDNBOOST_PP_INC_51 52
+# define NDNBOOST_PP_INC_52 53
+# define NDNBOOST_PP_INC_53 54
+# define NDNBOOST_PP_INC_54 55
+# define NDNBOOST_PP_INC_55 56
+# define NDNBOOST_PP_INC_56 57
+# define NDNBOOST_PP_INC_57 58
+# define NDNBOOST_PP_INC_58 59
+# define NDNBOOST_PP_INC_59 60
+# define NDNBOOST_PP_INC_60 61
+# define NDNBOOST_PP_INC_61 62
+# define NDNBOOST_PP_INC_62 63
+# define NDNBOOST_PP_INC_63 64
+# define NDNBOOST_PP_INC_64 65
+# define NDNBOOST_PP_INC_65 66
+# define NDNBOOST_PP_INC_66 67
+# define NDNBOOST_PP_INC_67 68
+# define NDNBOOST_PP_INC_68 69
+# define NDNBOOST_PP_INC_69 70
+# define NDNBOOST_PP_INC_70 71
+# define NDNBOOST_PP_INC_71 72
+# define NDNBOOST_PP_INC_72 73
+# define NDNBOOST_PP_INC_73 74
+# define NDNBOOST_PP_INC_74 75
+# define NDNBOOST_PP_INC_75 76
+# define NDNBOOST_PP_INC_76 77
+# define NDNBOOST_PP_INC_77 78
+# define NDNBOOST_PP_INC_78 79
+# define NDNBOOST_PP_INC_79 80
+# define NDNBOOST_PP_INC_80 81
+# define NDNBOOST_PP_INC_81 82
+# define NDNBOOST_PP_INC_82 83
+# define NDNBOOST_PP_INC_83 84
+# define NDNBOOST_PP_INC_84 85
+# define NDNBOOST_PP_INC_85 86
+# define NDNBOOST_PP_INC_86 87
+# define NDNBOOST_PP_INC_87 88
+# define NDNBOOST_PP_INC_88 89
+# define NDNBOOST_PP_INC_89 90
+# define NDNBOOST_PP_INC_90 91
+# define NDNBOOST_PP_INC_91 92
+# define NDNBOOST_PP_INC_92 93
+# define NDNBOOST_PP_INC_93 94
+# define NDNBOOST_PP_INC_94 95
+# define NDNBOOST_PP_INC_95 96
+# define NDNBOOST_PP_INC_96 97
+# define NDNBOOST_PP_INC_97 98
+# define NDNBOOST_PP_INC_98 99
+# define NDNBOOST_PP_INC_99 100
+# define NDNBOOST_PP_INC_100 101
+# define NDNBOOST_PP_INC_101 102
+# define NDNBOOST_PP_INC_102 103
+# define NDNBOOST_PP_INC_103 104
+# define NDNBOOST_PP_INC_104 105
+# define NDNBOOST_PP_INC_105 106
+# define NDNBOOST_PP_INC_106 107
+# define NDNBOOST_PP_INC_107 108
+# define NDNBOOST_PP_INC_108 109
+# define NDNBOOST_PP_INC_109 110
+# define NDNBOOST_PP_INC_110 111
+# define NDNBOOST_PP_INC_111 112
+# define NDNBOOST_PP_INC_112 113
+# define NDNBOOST_PP_INC_113 114
+# define NDNBOOST_PP_INC_114 115
+# define NDNBOOST_PP_INC_115 116
+# define NDNBOOST_PP_INC_116 117
+# define NDNBOOST_PP_INC_117 118
+# define NDNBOOST_PP_INC_118 119
+# define NDNBOOST_PP_INC_119 120
+# define NDNBOOST_PP_INC_120 121
+# define NDNBOOST_PP_INC_121 122
+# define NDNBOOST_PP_INC_122 123
+# define NDNBOOST_PP_INC_123 124
+# define NDNBOOST_PP_INC_124 125
+# define NDNBOOST_PP_INC_125 126
+# define NDNBOOST_PP_INC_126 127
+# define NDNBOOST_PP_INC_127 128
+# define NDNBOOST_PP_INC_128 129
+# define NDNBOOST_PP_INC_129 130
+# define NDNBOOST_PP_INC_130 131
+# define NDNBOOST_PP_INC_131 132
+# define NDNBOOST_PP_INC_132 133
+# define NDNBOOST_PP_INC_133 134
+# define NDNBOOST_PP_INC_134 135
+# define NDNBOOST_PP_INC_135 136
+# define NDNBOOST_PP_INC_136 137
+# define NDNBOOST_PP_INC_137 138
+# define NDNBOOST_PP_INC_138 139
+# define NDNBOOST_PP_INC_139 140
+# define NDNBOOST_PP_INC_140 141
+# define NDNBOOST_PP_INC_141 142
+# define NDNBOOST_PP_INC_142 143
+# define NDNBOOST_PP_INC_143 144
+# define NDNBOOST_PP_INC_144 145
+# define NDNBOOST_PP_INC_145 146
+# define NDNBOOST_PP_INC_146 147
+# define NDNBOOST_PP_INC_147 148
+# define NDNBOOST_PP_INC_148 149
+# define NDNBOOST_PP_INC_149 150
+# define NDNBOOST_PP_INC_150 151
+# define NDNBOOST_PP_INC_151 152
+# define NDNBOOST_PP_INC_152 153
+# define NDNBOOST_PP_INC_153 154
+# define NDNBOOST_PP_INC_154 155
+# define NDNBOOST_PP_INC_155 156
+# define NDNBOOST_PP_INC_156 157
+# define NDNBOOST_PP_INC_157 158
+# define NDNBOOST_PP_INC_158 159
+# define NDNBOOST_PP_INC_159 160
+# define NDNBOOST_PP_INC_160 161
+# define NDNBOOST_PP_INC_161 162
+# define NDNBOOST_PP_INC_162 163
+# define NDNBOOST_PP_INC_163 164
+# define NDNBOOST_PP_INC_164 165
+# define NDNBOOST_PP_INC_165 166
+# define NDNBOOST_PP_INC_166 167
+# define NDNBOOST_PP_INC_167 168
+# define NDNBOOST_PP_INC_168 169
+# define NDNBOOST_PP_INC_169 170
+# define NDNBOOST_PP_INC_170 171
+# define NDNBOOST_PP_INC_171 172
+# define NDNBOOST_PP_INC_172 173
+# define NDNBOOST_PP_INC_173 174
+# define NDNBOOST_PP_INC_174 175
+# define NDNBOOST_PP_INC_175 176
+# define NDNBOOST_PP_INC_176 177
+# define NDNBOOST_PP_INC_177 178
+# define NDNBOOST_PP_INC_178 179
+# define NDNBOOST_PP_INC_179 180
+# define NDNBOOST_PP_INC_180 181
+# define NDNBOOST_PP_INC_181 182
+# define NDNBOOST_PP_INC_182 183
+# define NDNBOOST_PP_INC_183 184
+# define NDNBOOST_PP_INC_184 185
+# define NDNBOOST_PP_INC_185 186
+# define NDNBOOST_PP_INC_186 187
+# define NDNBOOST_PP_INC_187 188
+# define NDNBOOST_PP_INC_188 189
+# define NDNBOOST_PP_INC_189 190
+# define NDNBOOST_PP_INC_190 191
+# define NDNBOOST_PP_INC_191 192
+# define NDNBOOST_PP_INC_192 193
+# define NDNBOOST_PP_INC_193 194
+# define NDNBOOST_PP_INC_194 195
+# define NDNBOOST_PP_INC_195 196
+# define NDNBOOST_PP_INC_196 197
+# define NDNBOOST_PP_INC_197 198
+# define NDNBOOST_PP_INC_198 199
+# define NDNBOOST_PP_INC_199 200
+# define NDNBOOST_PP_INC_200 201
+# define NDNBOOST_PP_INC_201 202
+# define NDNBOOST_PP_INC_202 203
+# define NDNBOOST_PP_INC_203 204
+# define NDNBOOST_PP_INC_204 205
+# define NDNBOOST_PP_INC_205 206
+# define NDNBOOST_PP_INC_206 207
+# define NDNBOOST_PP_INC_207 208
+# define NDNBOOST_PP_INC_208 209
+# define NDNBOOST_PP_INC_209 210
+# define NDNBOOST_PP_INC_210 211
+# define NDNBOOST_PP_INC_211 212
+# define NDNBOOST_PP_INC_212 213
+# define NDNBOOST_PP_INC_213 214
+# define NDNBOOST_PP_INC_214 215
+# define NDNBOOST_PP_INC_215 216
+# define NDNBOOST_PP_INC_216 217
+# define NDNBOOST_PP_INC_217 218
+# define NDNBOOST_PP_INC_218 219
+# define NDNBOOST_PP_INC_219 220
+# define NDNBOOST_PP_INC_220 221
+# define NDNBOOST_PP_INC_221 222
+# define NDNBOOST_PP_INC_222 223
+# define NDNBOOST_PP_INC_223 224
+# define NDNBOOST_PP_INC_224 225
+# define NDNBOOST_PP_INC_225 226
+# define NDNBOOST_PP_INC_226 227
+# define NDNBOOST_PP_INC_227 228
+# define NDNBOOST_PP_INC_228 229
+# define NDNBOOST_PP_INC_229 230
+# define NDNBOOST_PP_INC_230 231
+# define NDNBOOST_PP_INC_231 232
+# define NDNBOOST_PP_INC_232 233
+# define NDNBOOST_PP_INC_233 234
+# define NDNBOOST_PP_INC_234 235
+# define NDNBOOST_PP_INC_235 236
+# define NDNBOOST_PP_INC_236 237
+# define NDNBOOST_PP_INC_237 238
+# define NDNBOOST_PP_INC_238 239
+# define NDNBOOST_PP_INC_239 240
+# define NDNBOOST_PP_INC_240 241
+# define NDNBOOST_PP_INC_241 242
+# define NDNBOOST_PP_INC_242 243
+# define NDNBOOST_PP_INC_243 244
+# define NDNBOOST_PP_INC_244 245
+# define NDNBOOST_PP_INC_245 246
+# define NDNBOOST_PP_INC_246 247
+# define NDNBOOST_PP_INC_247 248
+# define NDNBOOST_PP_INC_248 249
+# define NDNBOOST_PP_INC_249 250
+# define NDNBOOST_PP_INC_250 251
+# define NDNBOOST_PP_INC_251 252
+# define NDNBOOST_PP_INC_252 253
+# define NDNBOOST_PP_INC_253 254
+# define NDNBOOST_PP_INC_254 255
+# define NDNBOOST_PP_INC_255 256
+# define NDNBOOST_PP_INC_256 256
 #
 # endif
diff --git a/include/ndnboost/preprocessor/arithmetic/mod.hpp b/include/ndnboost/preprocessor/arithmetic/mod.hpp
index aa85437..9f5754d 100644
--- a/include/ndnboost/preprocessor/arithmetic/mod.hpp
+++ b/include/ndnboost/preprocessor/arithmetic/mod.hpp
@@ -11,29 +11,29 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_ARITHMETIC_MOD_HPP
-# define BOOST_PREPROCESSOR_ARITHMETIC_MOD_HPP
+# ifndef NDNBOOST_PREPROCESSOR_ARITHMETIC_MOD_HPP
+# define NDNBOOST_PREPROCESSOR_ARITHMETIC_MOD_HPP
 #
 # include <ndnboost/preprocessor/arithmetic/detail/div_base.hpp>
 # include <ndnboost/preprocessor/config/config.hpp>
 # include <ndnboost/preprocessor/tuple/elem.hpp>
 #
-# /* BOOST_PP_MOD */
+# /* NDNBOOST_PP_MOD */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_MOD(x, y) BOOST_PP_TUPLE_ELEM(3, 1, BOOST_PP_DIV_BASE(x, y))
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_MOD(x, y) NDNBOOST_PP_TUPLE_ELEM(3, 1, NDNBOOST_PP_DIV_BASE(x, y))
 # else
-#    define BOOST_PP_MOD(x, y) BOOST_PP_MOD_I(x, y)
-#    define BOOST_PP_MOD_I(x, y) BOOST_PP_TUPLE_ELEM(3, 1, BOOST_PP_DIV_BASE(x, y))
+#    define NDNBOOST_PP_MOD(x, y) NDNBOOST_PP_MOD_I(x, y)
+#    define NDNBOOST_PP_MOD_I(x, y) NDNBOOST_PP_TUPLE_ELEM(3, 1, NDNBOOST_PP_DIV_BASE(x, y))
 # endif
 #
-# /* BOOST_PP_MOD_D */
+# /* NDNBOOST_PP_MOD_D */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_MOD_D(d, x, y) BOOST_PP_TUPLE_ELEM(3, 1, BOOST_PP_DIV_BASE_D(d, x, y))
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_MOD_D(d, x, y) NDNBOOST_PP_TUPLE_ELEM(3, 1, NDNBOOST_PP_DIV_BASE_D(d, x, y))
 # else
-#    define BOOST_PP_MOD_D(d, x, y) BOOST_PP_MOD_D_I(d, x, y)
-#    define BOOST_PP_MOD_D_I(d, x, y) BOOST_PP_TUPLE_ELEM(3, 1, BOOST_PP_DIV_BASE_D(d, x, y))
+#    define NDNBOOST_PP_MOD_D(d, x, y) NDNBOOST_PP_MOD_D_I(d, x, y)
+#    define NDNBOOST_PP_MOD_D_I(d, x, y) NDNBOOST_PP_TUPLE_ELEM(3, 1, NDNBOOST_PP_DIV_BASE_D(d, x, y))
 # endif
 #
 # endif
diff --git a/include/ndnboost/preprocessor/arithmetic/sub.hpp b/include/ndnboost/preprocessor/arithmetic/sub.hpp
index 3384f15..74331f2 100644
--- a/include/ndnboost/preprocessor/arithmetic/sub.hpp
+++ b/include/ndnboost/preprocessor/arithmetic/sub.hpp
@@ -11,40 +11,40 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_ARITHMETIC_SUB_HPP
-# define BOOST_PREPROCESSOR_ARITHMETIC_SUB_HPP
+# ifndef NDNBOOST_PREPROCESSOR_ARITHMETIC_SUB_HPP
+# define NDNBOOST_PREPROCESSOR_ARITHMETIC_SUB_HPP
 #
 # include <ndnboost/preprocessor/arithmetic/dec.hpp>
 # include <ndnboost/preprocessor/config/config.hpp>
 # include <ndnboost/preprocessor/control/while.hpp>
 # include <ndnboost/preprocessor/tuple/elem.hpp>
 #
-# /* BOOST_PP_SUB */
+# /* NDNBOOST_PP_SUB */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_SUB(x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE(BOOST_PP_SUB_P, BOOST_PP_SUB_O, (x, y)))
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_SUB(x, y) NDNBOOST_PP_TUPLE_ELEM(2, 0, NDNBOOST_PP_WHILE(NDNBOOST_PP_SUB_P, NDNBOOST_PP_SUB_O, (x, y)))
 # else
-#    define BOOST_PP_SUB(x, y) BOOST_PP_SUB_I(x, y)
-#    define BOOST_PP_SUB_I(x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE(BOOST_PP_SUB_P, BOOST_PP_SUB_O, (x, y)))
+#    define NDNBOOST_PP_SUB(x, y) NDNBOOST_PP_SUB_I(x, y)
+#    define NDNBOOST_PP_SUB_I(x, y) NDNBOOST_PP_TUPLE_ELEM(2, 0, NDNBOOST_PP_WHILE(NDNBOOST_PP_SUB_P, NDNBOOST_PP_SUB_O, (x, y)))
 # endif
 #
-# define BOOST_PP_SUB_P(d, xy) BOOST_PP_TUPLE_ELEM(2, 1, xy)
+# define NDNBOOST_PP_SUB_P(d, xy) NDNBOOST_PP_TUPLE_ELEM(2, 1, xy)
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_SUB_O(d, xy) BOOST_PP_SUB_O_I xy
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MWCC()
+#    define NDNBOOST_PP_SUB_O(d, xy) NDNBOOST_PP_SUB_O_I xy
 # else
-#    define BOOST_PP_SUB_O(d, xy) BOOST_PP_SUB_O_I(BOOST_PP_TUPLE_ELEM(2, 0, xy), BOOST_PP_TUPLE_ELEM(2, 1, xy))
+#    define NDNBOOST_PP_SUB_O(d, xy) NDNBOOST_PP_SUB_O_I(NDNBOOST_PP_TUPLE_ELEM(2, 0, xy), NDNBOOST_PP_TUPLE_ELEM(2, 1, xy))
 # endif
 #
-# define BOOST_PP_SUB_O_I(x, y) (BOOST_PP_DEC(x), BOOST_PP_DEC(y))
+# define NDNBOOST_PP_SUB_O_I(x, y) (NDNBOOST_PP_DEC(x), NDNBOOST_PP_DEC(y))
 #
-# /* BOOST_PP_SUB_D */
+# /* NDNBOOST_PP_SUB_D */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_SUB_D(d, x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE_ ## d(BOOST_PP_SUB_P, BOOST_PP_SUB_O, (x, y)))
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_SUB_D(d, x, y) NDNBOOST_PP_TUPLE_ELEM(2, 0, NDNBOOST_PP_WHILE_ ## d(NDNBOOST_PP_SUB_P, NDNBOOST_PP_SUB_O, (x, y)))
 # else
-#    define BOOST_PP_SUB_D(d, x, y) BOOST_PP_SUB_D_I(d, x, y)
-#    define BOOST_PP_SUB_D_I(d, x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE_ ## d(BOOST_PP_SUB_P, BOOST_PP_SUB_O, (x, y)))
+#    define NDNBOOST_PP_SUB_D(d, x, y) NDNBOOST_PP_SUB_D_I(d, x, y)
+#    define NDNBOOST_PP_SUB_D_I(d, x, y) NDNBOOST_PP_TUPLE_ELEM(2, 0, NDNBOOST_PP_WHILE_ ## d(NDNBOOST_PP_SUB_P, NDNBOOST_PP_SUB_O, (x, y)))
 # endif
 #
 # endif
diff --git a/include/ndnboost/preprocessor/array/data.hpp b/include/ndnboost/preprocessor/array/data.hpp
index 6a0bae4..5c8ee74 100644
--- a/include/ndnboost/preprocessor/array/data.hpp
+++ b/include/ndnboost/preprocessor/array/data.hpp
@@ -9,20 +9,20 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_ARRAY_DATA_HPP
-# define BOOST_PREPROCESSOR_ARRAY_DATA_HPP
+# ifndef NDNBOOST_PREPROCESSOR_ARRAY_DATA_HPP
+# define NDNBOOST_PREPROCESSOR_ARRAY_DATA_HPP
 #
 # include <ndnboost/preprocessor/config/config.hpp>
 # include <ndnboost/preprocessor/tuple/elem.hpp>
 #
-# /* BOOST_PP_ARRAY_DATA */
+# /* NDNBOOST_PP_ARRAY_DATA */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_ARRAY_DATA(array) BOOST_PP_TUPLE_ELEM(2, 1, array)
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_ARRAY_DATA(array) NDNBOOST_PP_TUPLE_ELEM(2, 1, array)
 # else
-#    define BOOST_PP_ARRAY_DATA(array) BOOST_PP_ARRAY_DATA_I(array)
-#    define BOOST_PP_ARRAY_DATA_I(array) BOOST_PP_ARRAY_DATA_II array
-#    define BOOST_PP_ARRAY_DATA_II(size, data) data
+#    define NDNBOOST_PP_ARRAY_DATA(array) NDNBOOST_PP_ARRAY_DATA_I(array)
+#    define NDNBOOST_PP_ARRAY_DATA_I(array) NDNBOOST_PP_ARRAY_DATA_II array
+#    define NDNBOOST_PP_ARRAY_DATA_II(size, data) data
 # endif
 #
 # endif
diff --git a/include/ndnboost/preprocessor/array/elem.hpp b/include/ndnboost/preprocessor/array/elem.hpp
index 22596e2..a6bba6c 100644
--- a/include/ndnboost/preprocessor/array/elem.hpp
+++ b/include/ndnboost/preprocessor/array/elem.hpp
@@ -9,21 +9,21 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_ARRAY_ELEM_HPP
-# define BOOST_PREPROCESSOR_ARRAY_ELEM_HPP
+# ifndef NDNBOOST_PREPROCESSOR_ARRAY_ELEM_HPP
+# define NDNBOOST_PREPROCESSOR_ARRAY_ELEM_HPP
 #
 # include <ndnboost/preprocessor/array/data.hpp>
 # include <ndnboost/preprocessor/array/size.hpp>
 # include <ndnboost/preprocessor/config/config.hpp>
 # include <ndnboost/preprocessor/tuple/elem.hpp>
 #
-# /* BOOST_PP_ARRAY_ELEM */
+# /* NDNBOOST_PP_ARRAY_ELEM */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_ARRAY_ELEM(i, array) BOOST_PP_TUPLE_ELEM(BOOST_PP_ARRAY_SIZE(array), i, BOOST_PP_ARRAY_DATA(array))
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_ARRAY_ELEM(i, array) NDNBOOST_PP_TUPLE_ELEM(NDNBOOST_PP_ARRAY_SIZE(array), i, NDNBOOST_PP_ARRAY_DATA(array))
 # else
-#    define BOOST_PP_ARRAY_ELEM(i, array) BOOST_PP_ARRAY_ELEM_I(i, array)
-#    define BOOST_PP_ARRAY_ELEM_I(i, array) BOOST_PP_TUPLE_ELEM(BOOST_PP_ARRAY_SIZE(array), i, BOOST_PP_ARRAY_DATA(array))
+#    define NDNBOOST_PP_ARRAY_ELEM(i, array) NDNBOOST_PP_ARRAY_ELEM_I(i, array)
+#    define NDNBOOST_PP_ARRAY_ELEM_I(i, array) NDNBOOST_PP_TUPLE_ELEM(NDNBOOST_PP_ARRAY_SIZE(array), i, NDNBOOST_PP_ARRAY_DATA(array))
 # endif
 #
 # endif
diff --git a/include/ndnboost/preprocessor/array/size.hpp b/include/ndnboost/preprocessor/array/size.hpp
index a4a28de..dee91bd 100644
--- a/include/ndnboost/preprocessor/array/size.hpp
+++ b/include/ndnboost/preprocessor/array/size.hpp
@@ -9,20 +9,20 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_ARRAY_SIZE_HPP
-# define BOOST_PREPROCESSOR_ARRAY_SIZE_HPP
+# ifndef NDNBOOST_PREPROCESSOR_ARRAY_SIZE_HPP
+# define NDNBOOST_PREPROCESSOR_ARRAY_SIZE_HPP
 #
 # include <ndnboost/preprocessor/config/config.hpp>
 # include <ndnboost/preprocessor/tuple/elem.hpp>
 #
-# /* BOOST_PP_ARRAY_SIZE */
+# /* NDNBOOST_PP_ARRAY_SIZE */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_ARRAY_SIZE(array) BOOST_PP_TUPLE_ELEM(2, 0, array)
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_ARRAY_SIZE(array) NDNBOOST_PP_TUPLE_ELEM(2, 0, array)
 # else
-#    define BOOST_PP_ARRAY_SIZE(array) BOOST_PP_ARRAY_SIZE_I(array)
-#    define BOOST_PP_ARRAY_SIZE_I(array) BOOST_PP_ARRAY_SIZE_II array
-#    define BOOST_PP_ARRAY_SIZE_II(size, data) size
+#    define NDNBOOST_PP_ARRAY_SIZE(array) NDNBOOST_PP_ARRAY_SIZE_I(array)
+#    define NDNBOOST_PP_ARRAY_SIZE_I(array) NDNBOOST_PP_ARRAY_SIZE_II array
+#    define NDNBOOST_PP_ARRAY_SIZE_II(size, data) size
 # endif
 #
 # endif
diff --git a/include/ndnboost/preprocessor/cat.hpp b/include/ndnboost/preprocessor/cat.hpp
index 6dbc6c2..b3ed9f6 100644
--- a/include/ndnboost/preprocessor/cat.hpp
+++ b/include/ndnboost/preprocessor/cat.hpp
@@ -11,25 +11,25 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_CAT_HPP
-# define BOOST_PREPROCESSOR_CAT_HPP
+# ifndef NDNBOOST_PREPROCESSOR_CAT_HPP
+# define NDNBOOST_PREPROCESSOR_CAT_HPP
 #
 # include <ndnboost/preprocessor/config/config.hpp>
 #
-# /* BOOST_PP_CAT */
+# /* NDNBOOST_PP_CAT */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MWCC()
+#    define NDNBOOST_PP_CAT(a, b) NDNBOOST_PP_CAT_I(a, b)
 # else
-#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_OO((a, b))
-#    define BOOST_PP_CAT_OO(par) BOOST_PP_CAT_I ## par
+#    define NDNBOOST_PP_CAT(a, b) NDNBOOST_PP_CAT_OO((a, b))
+#    define NDNBOOST_PP_CAT_OO(par) NDNBOOST_PP_CAT_I ## par
 # endif
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-#    define BOOST_PP_CAT_I(a, b) a ## b
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MSVC()
+#    define NDNBOOST_PP_CAT_I(a, b) a ## b
 # else
-#    define BOOST_PP_CAT_I(a, b) BOOST_PP_CAT_II(~, a ## b)
-#    define BOOST_PP_CAT_II(p, res) res
+#    define NDNBOOST_PP_CAT_I(a, b) NDNBOOST_PP_CAT_II(~, a ## b)
+#    define NDNBOOST_PP_CAT_II(p, res) res
 # endif
 #
 # endif
diff --git a/include/ndnboost/preprocessor/comma_if.hpp b/include/ndnboost/preprocessor/comma_if.hpp
index 78e47a4..cabfbf1 100644
--- a/include/ndnboost/preprocessor/comma_if.hpp
+++ b/include/ndnboost/preprocessor/comma_if.hpp
@@ -9,8 +9,8 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_COMMA_IF_HPP
-# define BOOST_PREPROCESSOR_COMMA_IF_HPP
+# ifndef NDNBOOST_PREPROCESSOR_COMMA_IF_HPP
+# define NDNBOOST_PREPROCESSOR_COMMA_IF_HPP
 #
 # include <ndnboost/preprocessor/punctuation/comma_if.hpp>
 #
diff --git a/include/ndnboost/preprocessor/comparison/less_equal.hpp b/include/ndnboost/preprocessor/comparison/less_equal.hpp
index 2471564..3c209c0 100644
--- a/include/ndnboost/preprocessor/comparison/less_equal.hpp
+++ b/include/ndnboost/preprocessor/comparison/less_equal.hpp
@@ -11,29 +11,29 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_COMPARISON_LESS_EQUAL_HPP
-# define BOOST_PREPROCESSOR_COMPARISON_LESS_EQUAL_HPP
+# ifndef NDNBOOST_PREPROCESSOR_COMPARISON_LESS_EQUAL_HPP
+# define NDNBOOST_PREPROCESSOR_COMPARISON_LESS_EQUAL_HPP
 #
 # include <ndnboost/preprocessor/arithmetic/sub.hpp>
 # include <ndnboost/preprocessor/config/config.hpp>
 # include <ndnboost/preprocessor/logical/not.hpp>
 #
-# /* BOOST_PP_LESS_EQUAL */
+# /* NDNBOOST_PP_LESS_EQUAL */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_LESS_EQUAL(x, y) BOOST_PP_NOT(BOOST_PP_SUB(x, y))
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_LESS_EQUAL(x, y) NDNBOOST_PP_NOT(NDNBOOST_PP_SUB(x, y))
 # else
-#    define BOOST_PP_LESS_EQUAL(x, y) BOOST_PP_LESS_EQUAL_I(x, y)
-#    define BOOST_PP_LESS_EQUAL_I(x, y) BOOST_PP_NOT(BOOST_PP_SUB(x, y))
+#    define NDNBOOST_PP_LESS_EQUAL(x, y) NDNBOOST_PP_LESS_EQUAL_I(x, y)
+#    define NDNBOOST_PP_LESS_EQUAL_I(x, y) NDNBOOST_PP_NOT(NDNBOOST_PP_SUB(x, y))
 # endif
 #
-# /* BOOST_PP_LESS_EQUAL_D */
+# /* NDNBOOST_PP_LESS_EQUAL_D */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_LESS_EQUAL_D(d, x, y) BOOST_PP_NOT(BOOST_PP_SUB_D(d, x, y))
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_LESS_EQUAL_D(d, x, y) NDNBOOST_PP_NOT(NDNBOOST_PP_SUB_D(d, x, y))
 # else
-#    define BOOST_PP_LESS_EQUAL_D(d, x, y) BOOST_PP_LESS_EQUAL_D_I(d, x, y)
-#    define BOOST_PP_LESS_EQUAL_D_I(d, x, y) BOOST_PP_NOT(BOOST_PP_SUB_D(d, x, y))
+#    define NDNBOOST_PP_LESS_EQUAL_D(d, x, y) NDNBOOST_PP_LESS_EQUAL_D_I(d, x, y)
+#    define NDNBOOST_PP_LESS_EQUAL_D_I(d, x, y) NDNBOOST_PP_NOT(NDNBOOST_PP_SUB_D(d, x, y))
 # endif
 #
 # endif
diff --git a/include/ndnboost/preprocessor/config/config.hpp b/include/ndnboost/preprocessor/config/config.hpp
index d02eb58..6a59b4e 100644
--- a/include/ndnboost/preprocessor/config/config.hpp
+++ b/include/ndnboost/preprocessor/config/config.hpp
@@ -10,96 +10,96 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_CONFIG_CONFIG_HPP
-# define BOOST_PREPROCESSOR_CONFIG_CONFIG_HPP
+# ifndef NDNBOOST_PREPROCESSOR_CONFIG_CONFIG_HPP
+# define NDNBOOST_PREPROCESSOR_CONFIG_CONFIG_HPP
 #
-# /* BOOST_PP_CONFIG_FLAGS */
+# /* NDNBOOST_PP_CONFIG_FLAGS */
 #
-# define BOOST_PP_CONFIG_STRICT() 0x0001
-# define BOOST_PP_CONFIG_IDEAL() 0x0002
+# define NDNBOOST_PP_CONFIG_STRICT() 0x0001
+# define NDNBOOST_PP_CONFIG_IDEAL() 0x0002
 #
-# define BOOST_PP_CONFIG_MSVC() 0x0004
-# define BOOST_PP_CONFIG_MWCC() 0x0008
-# define BOOST_PP_CONFIG_BCC() 0x0010
-# define BOOST_PP_CONFIG_EDG() 0x0020
-# define BOOST_PP_CONFIG_DMC() 0x0040
+# define NDNBOOST_PP_CONFIG_MSVC() 0x0004
+# define NDNBOOST_PP_CONFIG_MWCC() 0x0008
+# define NDNBOOST_PP_CONFIG_BCC() 0x0010
+# define NDNBOOST_PP_CONFIG_EDG() 0x0020
+# define NDNBOOST_PP_CONFIG_DMC() 0x0040
 #
-# ifndef BOOST_PP_CONFIG_FLAGS
+# ifndef NDNBOOST_PP_CONFIG_FLAGS
 #    if defined(__GCCXML__)
-#        define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_STRICT())
+#        define NDNBOOST_PP_CONFIG_FLAGS() (NDNBOOST_PP_CONFIG_STRICT())
 #    elif defined(__WAVE__)
-#        define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_STRICT())
+#        define NDNBOOST_PP_CONFIG_FLAGS() (NDNBOOST_PP_CONFIG_STRICT())
 #    elif defined(__MWERKS__) && __MWERKS__ >= 0x3200
-#        define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_STRICT())
+#        define NDNBOOST_PP_CONFIG_FLAGS() (NDNBOOST_PP_CONFIG_STRICT())
 #    elif defined(__EDG__) || defined(__EDG_VERSION__)
 #        if defined(_MSC_VER) && __EDG_VERSION__ >= 308
-#            define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_MSVC())
+#            define NDNBOOST_PP_CONFIG_FLAGS() (NDNBOOST_PP_CONFIG_MSVC())
 #        else
-#            define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_EDG() | BOOST_PP_CONFIG_STRICT())
+#            define NDNBOOST_PP_CONFIG_FLAGS() (NDNBOOST_PP_CONFIG_EDG() | NDNBOOST_PP_CONFIG_STRICT())
 #        endif
 #    elif defined(__MWERKS__)
-#        define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_MWCC())
+#        define NDNBOOST_PP_CONFIG_FLAGS() (NDNBOOST_PP_CONFIG_MWCC())
 #    elif defined(__DMC__)
-#        define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_DMC())
+#        define NDNBOOST_PP_CONFIG_FLAGS() (NDNBOOST_PP_CONFIG_DMC())
 #    elif defined(__BORLANDC__) && __BORLANDC__ >= 0x581
-#        define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_STRICT())
+#        define NDNBOOST_PP_CONFIG_FLAGS() (NDNBOOST_PP_CONFIG_STRICT())
 #    elif defined(__BORLANDC__) || defined(__IBMC__) || defined(__IBMCPP__) || defined(__SUNPRO_CC)
-#        define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_BCC())
+#        define NDNBOOST_PP_CONFIG_FLAGS() (NDNBOOST_PP_CONFIG_BCC())
 #    elif defined(_MSC_VER)
-#        define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_MSVC())
+#        define NDNBOOST_PP_CONFIG_FLAGS() (NDNBOOST_PP_CONFIG_MSVC())
 #    else
-#        define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_STRICT())
+#        define NDNBOOST_PP_CONFIG_FLAGS() (NDNBOOST_PP_CONFIG_STRICT())
 #    endif
 # endif
 #
-# /* BOOST_PP_CONFIG_EXTENDED_LINE_INFO */
+# /* NDNBOOST_PP_CONFIG_EXTENDED_LINE_INFO */
 #
-# ifndef BOOST_PP_CONFIG_EXTENDED_LINE_INFO
-#    define BOOST_PP_CONFIG_EXTENDED_LINE_INFO 0
+# ifndef NDNBOOST_PP_CONFIG_EXTENDED_LINE_INFO
+#    define NDNBOOST_PP_CONFIG_EXTENDED_LINE_INFO 0
 # endif
 #
-# /* BOOST_PP_CONFIG_ERRORS */
+# /* NDNBOOST_PP_CONFIG_ERRORS */
 #
-# ifndef BOOST_PP_CONFIG_ERRORS
+# ifndef NDNBOOST_PP_CONFIG_ERRORS
 #    ifdef NDEBUG
-#        define BOOST_PP_CONFIG_ERRORS 0
+#        define NDNBOOST_PP_CONFIG_ERRORS 0
 #    else
-#        define BOOST_PP_CONFIG_ERRORS 1
+#        define NDNBOOST_PP_CONFIG_ERRORS 1
 #    endif
 # endif
 #
-# /* BOOST_PP_VARIADICS */
+# /* NDNBOOST_PP_VARIADICS */
 #
-# if !defined BOOST_PP_VARIADICS
+# if !defined NDNBOOST_PP_VARIADICS
 #    /* variadic support explicitly disabled for all untested compilers */
 #    if defined __GCCXML__ || defined __CUDACC__ || defined __PATHSCALE__ || defined __clang__ || defined __DMC__ || defined __CODEGEARC__ || defined __BORLANDC__ || defined __MWERKS__ || defined __SUNPRO_CC || defined __HP_aCC && !defined __EDG__ || defined __MRC__ || defined __SC__ || defined __IBMCPP__ || defined __PGI
-#        define BOOST_PP_VARIADICS 0
+#        define NDNBOOST_PP_VARIADICS 0
 #    /* VC++ (C/C++) */
 #    elif defined _MSC_VER && _MSC_VER >= 1400 && !defined __EDG__
 #        if _MSC_VER >= 1400
-#            define BOOST_PP_VARIADICS 1
-#            define BOOST_PP_VARIADICS_MSVC 1
+#            define NDNBOOST_PP_VARIADICS 1
+#            define NDNBOOST_PP_VARIADICS_MSVC 1
 #        else
-#            define BOOST_PP_VARIADICS 0
+#            define NDNBOOST_PP_VARIADICS 0
 #        endif
 #    /* Wave (C/C++), GCC (C++) */
 #    elif defined __WAVE__ && __WAVE_HAS_VARIADICS__ || defined __GNUC__ && __GXX_EXPERIMENTAL_CXX0X__
-#        define BOOST_PP_VARIADICS 1
+#        define NDNBOOST_PP_VARIADICS 1
 #    /* EDG-based (C/C++), GCC (C), and unknown (C/C++) */
 #    elif !defined __cplusplus && __STDC_VERSION__ >= 199901L || __cplusplus >= 201103L
-#        define BOOST_PP_VARIADICS 1
+#        define NDNBOOST_PP_VARIADICS 1
 #    else
-#        define BOOST_PP_VARIADICS 0
+#        define NDNBOOST_PP_VARIADICS 0
 #    endif
-# elif !BOOST_PP_VARIADICS + 1 < 2
-#    undef BOOST_PP_VARIADICS
-#    define BOOST_PP_VARIADICS 1
+# elif !NDNBOOST_PP_VARIADICS + 1 < 2
+#    undef NDNBOOST_PP_VARIADICS
+#    define NDNBOOST_PP_VARIADICS 1
 #    if defined _MSC_VER && _MSC_VER >= 1400 && !(defined __EDG__ || defined __GCCXML__ || defined __CUDACC__ || defined __PATHSCALE__ || defined __clang__ || defined __DMC__ || defined __CODEGEARC__ || defined __BORLANDC__ || defined __MWERKS__ || defined __SUNPRO_CC || defined __HP_aCC || defined __MRC__ || defined __SC__ || defined __IBMCPP__ || defined __PGI)
-#        define BOOST_PP_VARIADICS_MSVC 1
+#        define NDNBOOST_PP_VARIADICS_MSVC 1
 #    endif
 # else
-#    undef BOOST_PP_VARIADICS
-#    define BOOST_PP_VARIADICS 0
+#    undef NDNBOOST_PP_VARIADICS
+#    define NDNBOOST_PP_VARIADICS 0
 # endif
 #
 # endif
diff --git a/include/ndnboost/preprocessor/control/deduce_d.hpp b/include/ndnboost/preprocessor/control/deduce_d.hpp
index 1aba271..6c74cc0 100644
--- a/include/ndnboost/preprocessor/control/deduce_d.hpp
+++ b/include/ndnboost/preprocessor/control/deduce_d.hpp
@@ -9,14 +9,14 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_CONTROL_DEDUCE_D_HPP
-# define BOOST_PREPROCESSOR_CONTROL_DEDUCE_D_HPP
+# ifndef NDNBOOST_PREPROCESSOR_CONTROL_DEDUCE_D_HPP
+# define NDNBOOST_PREPROCESSOR_CONTROL_DEDUCE_D_HPP
 #
 # include <ndnboost/preprocessor/control/while.hpp>
 # include <ndnboost/preprocessor/detail/auto_rec.hpp>
 #
-# /* BOOST_PP_DEDUCE_D */
+# /* NDNBOOST_PP_DEDUCE_D */
 #
-# define BOOST_PP_DEDUCE_D() BOOST_PP_AUTO_REC(BOOST_PP_WHILE_P, 256)
+# define NDNBOOST_PP_DEDUCE_D() NDNBOOST_PP_AUTO_REC(NDNBOOST_PP_WHILE_P, 256)
 #
 # endif
diff --git a/include/ndnboost/preprocessor/control/detail/dmc/while.hpp b/include/ndnboost/preprocessor/control/detail/dmc/while.hpp
index b2e2e9f..a766d9b 100644
--- a/include/ndnboost/preprocessor/control/detail/dmc/while.hpp
+++ b/include/ndnboost/preprocessor/control/detail/dmc/while.hpp
@@ -11,526 +11,526 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_CONTROL_DETAIL_WHILE_HPP
-# define BOOST_PREPROCESSOR_CONTROL_DETAIL_WHILE_HPP
+# ifndef NDNBOOST_PREPROCESSOR_CONTROL_DETAIL_WHILE_HPP
+# define NDNBOOST_PREPROCESSOR_CONTROL_DETAIL_WHILE_HPP
 #
 # include <ndnboost/preprocessor/control/iif.hpp>
 # include <ndnboost/preprocessor/logical/bool.hpp>
 # include <ndnboost/preprocessor/tuple/eat.hpp>
 #
-# define BOOST_PP_WHILE_1(p, o, s) BOOST_PP_WHILE_1_C(BOOST_PP_BOOL(p##(2, s)), p, o, s)
-# define BOOST_PP_WHILE_2(p, o, s) BOOST_PP_WHILE_2_C(BOOST_PP_BOOL(p##(3, s)), p, o, s)
-# define BOOST_PP_WHILE_3(p, o, s) BOOST_PP_WHILE_3_C(BOOST_PP_BOOL(p##(4, s)), p, o, s)
-# define BOOST_PP_WHILE_4(p, o, s) BOOST_PP_WHILE_4_C(BOOST_PP_BOOL(p##(5, s)), p, o, s)
-# define BOOST_PP_WHILE_5(p, o, s) BOOST_PP_WHILE_5_C(BOOST_PP_BOOL(p##(6, s)), p, o, s)
-# define BOOST_PP_WHILE_6(p, o, s) BOOST_PP_WHILE_6_C(BOOST_PP_BOOL(p##(7, s)), p, o, s)
-# define BOOST_PP_WHILE_7(p, o, s) BOOST_PP_WHILE_7_C(BOOST_PP_BOOL(p##(8, s)), p, o, s)
-# define BOOST_PP_WHILE_8(p, o, s) BOOST_PP_WHILE_8_C(BOOST_PP_BOOL(p##(9, s)), p, o, s)
-# define BOOST_PP_WHILE_9(p, o, s) BOOST_PP_WHILE_9_C(BOOST_PP_BOOL(p##(10, s)), p, o, s)
-# define BOOST_PP_WHILE_10(p, o, s) BOOST_PP_WHILE_10_C(BOOST_PP_BOOL(p##(11, s)), p, o, s)
-# define BOOST_PP_WHILE_11(p, o, s) BOOST_PP_WHILE_11_C(BOOST_PP_BOOL(p##(12, s)), p, o, s)
-# define BOOST_PP_WHILE_12(p, o, s) BOOST_PP_WHILE_12_C(BOOST_PP_BOOL(p##(13, s)), p, o, s)
-# define BOOST_PP_WHILE_13(p, o, s) BOOST_PP_WHILE_13_C(BOOST_PP_BOOL(p##(14, s)), p, o, s)
-# define BOOST_PP_WHILE_14(p, o, s) BOOST_PP_WHILE_14_C(BOOST_PP_BOOL(p##(15, s)), p, o, s)
-# define BOOST_PP_WHILE_15(p, o, s) BOOST_PP_WHILE_15_C(BOOST_PP_BOOL(p##(16, s)), p, o, s)
-# define BOOST_PP_WHILE_16(p, o, s) BOOST_PP_WHILE_16_C(BOOST_PP_BOOL(p##(17, s)), p, o, s)
-# define BOOST_PP_WHILE_17(p, o, s) BOOST_PP_WHILE_17_C(BOOST_PP_BOOL(p##(18, s)), p, o, s)
-# define BOOST_PP_WHILE_18(p, o, s) BOOST_PP_WHILE_18_C(BOOST_PP_BOOL(p##(19, s)), p, o, s)
-# define BOOST_PP_WHILE_19(p, o, s) BOOST_PP_WHILE_19_C(BOOST_PP_BOOL(p##(20, s)), p, o, s)
-# define BOOST_PP_WHILE_20(p, o, s) BOOST_PP_WHILE_20_C(BOOST_PP_BOOL(p##(21, s)), p, o, s)
-# define BOOST_PP_WHILE_21(p, o, s) BOOST_PP_WHILE_21_C(BOOST_PP_BOOL(p##(22, s)), p, o, s)
-# define BOOST_PP_WHILE_22(p, o, s) BOOST_PP_WHILE_22_C(BOOST_PP_BOOL(p##(23, s)), p, o, s)
-# define BOOST_PP_WHILE_23(p, o, s) BOOST_PP_WHILE_23_C(BOOST_PP_BOOL(p##(24, s)), p, o, s)
-# define BOOST_PP_WHILE_24(p, o, s) BOOST_PP_WHILE_24_C(BOOST_PP_BOOL(p##(25, s)), p, o, s)
-# define BOOST_PP_WHILE_25(p, o, s) BOOST_PP_WHILE_25_C(BOOST_PP_BOOL(p##(26, s)), p, o, s)
-# define BOOST_PP_WHILE_26(p, o, s) BOOST_PP_WHILE_26_C(BOOST_PP_BOOL(p##(27, s)), p, o, s)
-# define BOOST_PP_WHILE_27(p, o, s) BOOST_PP_WHILE_27_C(BOOST_PP_BOOL(p##(28, s)), p, o, s)
-# define BOOST_PP_WHILE_28(p, o, s) BOOST_PP_WHILE_28_C(BOOST_PP_BOOL(p##(29, s)), p, o, s)
-# define BOOST_PP_WHILE_29(p, o, s) BOOST_PP_WHILE_29_C(BOOST_PP_BOOL(p##(30, s)), p, o, s)
-# define BOOST_PP_WHILE_30(p, o, s) BOOST_PP_WHILE_30_C(BOOST_PP_BOOL(p##(31, s)), p, o, s)
-# define BOOST_PP_WHILE_31(p, o, s) BOOST_PP_WHILE_31_C(BOOST_PP_BOOL(p##(32, s)), p, o, s)
-# define BOOST_PP_WHILE_32(p, o, s) BOOST_PP_WHILE_32_C(BOOST_PP_BOOL(p##(33, s)), p, o, s)
-# define BOOST_PP_WHILE_33(p, o, s) BOOST_PP_WHILE_33_C(BOOST_PP_BOOL(p##(34, s)), p, o, s)
-# define BOOST_PP_WHILE_34(p, o, s) BOOST_PP_WHILE_34_C(BOOST_PP_BOOL(p##(35, s)), p, o, s)
-# define BOOST_PP_WHILE_35(p, o, s) BOOST_PP_WHILE_35_C(BOOST_PP_BOOL(p##(36, s)), p, o, s)
-# define BOOST_PP_WHILE_36(p, o, s) BOOST_PP_WHILE_36_C(BOOST_PP_BOOL(p##(37, s)), p, o, s)
-# define BOOST_PP_WHILE_37(p, o, s) BOOST_PP_WHILE_37_C(BOOST_PP_BOOL(p##(38, s)), p, o, s)
-# define BOOST_PP_WHILE_38(p, o, s) BOOST_PP_WHILE_38_C(BOOST_PP_BOOL(p##(39, s)), p, o, s)
-# define BOOST_PP_WHILE_39(p, o, s) BOOST_PP_WHILE_39_C(BOOST_PP_BOOL(p##(40, s)), p, o, s)
-# define BOOST_PP_WHILE_40(p, o, s) BOOST_PP_WHILE_40_C(BOOST_PP_BOOL(p##(41, s)), p, o, s)
-# define BOOST_PP_WHILE_41(p, o, s) BOOST_PP_WHILE_41_C(BOOST_PP_BOOL(p##(42, s)), p, o, s)
-# define BOOST_PP_WHILE_42(p, o, s) BOOST_PP_WHILE_42_C(BOOST_PP_BOOL(p##(43, s)), p, o, s)
-# define BOOST_PP_WHILE_43(p, o, s) BOOST_PP_WHILE_43_C(BOOST_PP_BOOL(p##(44, s)), p, o, s)
-# define BOOST_PP_WHILE_44(p, o, s) BOOST_PP_WHILE_44_C(BOOST_PP_BOOL(p##(45, s)), p, o, s)
-# define BOOST_PP_WHILE_45(p, o, s) BOOST_PP_WHILE_45_C(BOOST_PP_BOOL(p##(46, s)), p, o, s)
-# define BOOST_PP_WHILE_46(p, o, s) BOOST_PP_WHILE_46_C(BOOST_PP_BOOL(p##(47, s)), p, o, s)
-# define BOOST_PP_WHILE_47(p, o, s) BOOST_PP_WHILE_47_C(BOOST_PP_BOOL(p##(48, s)), p, o, s)
-# define BOOST_PP_WHILE_48(p, o, s) BOOST_PP_WHILE_48_C(BOOST_PP_BOOL(p##(49, s)), p, o, s)
-# define BOOST_PP_WHILE_49(p, o, s) BOOST_PP_WHILE_49_C(BOOST_PP_BOOL(p##(50, s)), p, o, s)
-# define BOOST_PP_WHILE_50(p, o, s) BOOST_PP_WHILE_50_C(BOOST_PP_BOOL(p##(51, s)), p, o, s)
-# define BOOST_PP_WHILE_51(p, o, s) BOOST_PP_WHILE_51_C(BOOST_PP_BOOL(p##(52, s)), p, o, s)
-# define BOOST_PP_WHILE_52(p, o, s) BOOST_PP_WHILE_52_C(BOOST_PP_BOOL(p##(53, s)), p, o, s)
-# define BOOST_PP_WHILE_53(p, o, s) BOOST_PP_WHILE_53_C(BOOST_PP_BOOL(p##(54, s)), p, o, s)
-# define BOOST_PP_WHILE_54(p, o, s) BOOST_PP_WHILE_54_C(BOOST_PP_BOOL(p##(55, s)), p, o, s)
-# define BOOST_PP_WHILE_55(p, o, s) BOOST_PP_WHILE_55_C(BOOST_PP_BOOL(p##(56, s)), p, o, s)
-# define BOOST_PP_WHILE_56(p, o, s) BOOST_PP_WHILE_56_C(BOOST_PP_BOOL(p##(57, s)), p, o, s)
-# define BOOST_PP_WHILE_57(p, o, s) BOOST_PP_WHILE_57_C(BOOST_PP_BOOL(p##(58, s)), p, o, s)
-# define BOOST_PP_WHILE_58(p, o, s) BOOST_PP_WHILE_58_C(BOOST_PP_BOOL(p##(59, s)), p, o, s)
-# define BOOST_PP_WHILE_59(p, o, s) BOOST_PP_WHILE_59_C(BOOST_PP_BOOL(p##(60, s)), p, o, s)
-# define BOOST_PP_WHILE_60(p, o, s) BOOST_PP_WHILE_60_C(BOOST_PP_BOOL(p##(61, s)), p, o, s)
-# define BOOST_PP_WHILE_61(p, o, s) BOOST_PP_WHILE_61_C(BOOST_PP_BOOL(p##(62, s)), p, o, s)
-# define BOOST_PP_WHILE_62(p, o, s) BOOST_PP_WHILE_62_C(BOOST_PP_BOOL(p##(63, s)), p, o, s)
-# define BOOST_PP_WHILE_63(p, o, s) BOOST_PP_WHILE_63_C(BOOST_PP_BOOL(p##(64, s)), p, o, s)
-# define BOOST_PP_WHILE_64(p, o, s) BOOST_PP_WHILE_64_C(BOOST_PP_BOOL(p##(65, s)), p, o, s)
-# define BOOST_PP_WHILE_65(p, o, s) BOOST_PP_WHILE_65_C(BOOST_PP_BOOL(p##(66, s)), p, o, s)
-# define BOOST_PP_WHILE_66(p, o, s) BOOST_PP_WHILE_66_C(BOOST_PP_BOOL(p##(67, s)), p, o, s)
-# define BOOST_PP_WHILE_67(p, o, s) BOOST_PP_WHILE_67_C(BOOST_PP_BOOL(p##(68, s)), p, o, s)
-# define BOOST_PP_WHILE_68(p, o, s) BOOST_PP_WHILE_68_C(BOOST_PP_BOOL(p##(69, s)), p, o, s)
-# define BOOST_PP_WHILE_69(p, o, s) BOOST_PP_WHILE_69_C(BOOST_PP_BOOL(p##(70, s)), p, o, s)
-# define BOOST_PP_WHILE_70(p, o, s) BOOST_PP_WHILE_70_C(BOOST_PP_BOOL(p##(71, s)), p, o, s)
-# define BOOST_PP_WHILE_71(p, o, s) BOOST_PP_WHILE_71_C(BOOST_PP_BOOL(p##(72, s)), p, o, s)
-# define BOOST_PP_WHILE_72(p, o, s) BOOST_PP_WHILE_72_C(BOOST_PP_BOOL(p##(73, s)), p, o, s)
-# define BOOST_PP_WHILE_73(p, o, s) BOOST_PP_WHILE_73_C(BOOST_PP_BOOL(p##(74, s)), p, o, s)
-# define BOOST_PP_WHILE_74(p, o, s) BOOST_PP_WHILE_74_C(BOOST_PP_BOOL(p##(75, s)), p, o, s)
-# define BOOST_PP_WHILE_75(p, o, s) BOOST_PP_WHILE_75_C(BOOST_PP_BOOL(p##(76, s)), p, o, s)
-# define BOOST_PP_WHILE_76(p, o, s) BOOST_PP_WHILE_76_C(BOOST_PP_BOOL(p##(77, s)), p, o, s)
-# define BOOST_PP_WHILE_77(p, o, s) BOOST_PP_WHILE_77_C(BOOST_PP_BOOL(p##(78, s)), p, o, s)
-# define BOOST_PP_WHILE_78(p, o, s) BOOST_PP_WHILE_78_C(BOOST_PP_BOOL(p##(79, s)), p, o, s)
-# define BOOST_PP_WHILE_79(p, o, s) BOOST_PP_WHILE_79_C(BOOST_PP_BOOL(p##(80, s)), p, o, s)
-# define BOOST_PP_WHILE_80(p, o, s) BOOST_PP_WHILE_80_C(BOOST_PP_BOOL(p##(81, s)), p, o, s)
-# define BOOST_PP_WHILE_81(p, o, s) BOOST_PP_WHILE_81_C(BOOST_PP_BOOL(p##(82, s)), p, o, s)
-# define BOOST_PP_WHILE_82(p, o, s) BOOST_PP_WHILE_82_C(BOOST_PP_BOOL(p##(83, s)), p, o, s)
-# define BOOST_PP_WHILE_83(p, o, s) BOOST_PP_WHILE_83_C(BOOST_PP_BOOL(p##(84, s)), p, o, s)
-# define BOOST_PP_WHILE_84(p, o, s) BOOST_PP_WHILE_84_C(BOOST_PP_BOOL(p##(85, s)), p, o, s)
-# define BOOST_PP_WHILE_85(p, o, s) BOOST_PP_WHILE_85_C(BOOST_PP_BOOL(p##(86, s)), p, o, s)
-# define BOOST_PP_WHILE_86(p, o, s) BOOST_PP_WHILE_86_C(BOOST_PP_BOOL(p##(87, s)), p, o, s)
-# define BOOST_PP_WHILE_87(p, o, s) BOOST_PP_WHILE_87_C(BOOST_PP_BOOL(p##(88, s)), p, o, s)
-# define BOOST_PP_WHILE_88(p, o, s) BOOST_PP_WHILE_88_C(BOOST_PP_BOOL(p##(89, s)), p, o, s)
-# define BOOST_PP_WHILE_89(p, o, s) BOOST_PP_WHILE_89_C(BOOST_PP_BOOL(p##(90, s)), p, o, s)
-# define BOOST_PP_WHILE_90(p, o, s) BOOST_PP_WHILE_90_C(BOOST_PP_BOOL(p##(91, s)), p, o, s)
-# define BOOST_PP_WHILE_91(p, o, s) BOOST_PP_WHILE_91_C(BOOST_PP_BOOL(p##(92, s)), p, o, s)
-# define BOOST_PP_WHILE_92(p, o, s) BOOST_PP_WHILE_92_C(BOOST_PP_BOOL(p##(93, s)), p, o, s)
-# define BOOST_PP_WHILE_93(p, o, s) BOOST_PP_WHILE_93_C(BOOST_PP_BOOL(p##(94, s)), p, o, s)
-# define BOOST_PP_WHILE_94(p, o, s) BOOST_PP_WHILE_94_C(BOOST_PP_BOOL(p##(95, s)), p, o, s)
-# define BOOST_PP_WHILE_95(p, o, s) BOOST_PP_WHILE_95_C(BOOST_PP_BOOL(p##(96, s)), p, o, s)
-# define BOOST_PP_WHILE_96(p, o, s) BOOST_PP_WHILE_96_C(BOOST_PP_BOOL(p##(97, s)), p, o, s)
-# define BOOST_PP_WHILE_97(p, o, s) BOOST_PP_WHILE_97_C(BOOST_PP_BOOL(p##(98, s)), p, o, s)
-# define BOOST_PP_WHILE_98(p, o, s) BOOST_PP_WHILE_98_C(BOOST_PP_BOOL(p##(99, s)), p, o, s)
-# define BOOST_PP_WHILE_99(p, o, s) BOOST_PP_WHILE_99_C(BOOST_PP_BOOL(p##(100, s)), p, o, s)
-# define BOOST_PP_WHILE_100(p, o, s) BOOST_PP_WHILE_100_C(BOOST_PP_BOOL(p##(101, s)), p, o, s)
-# define BOOST_PP_WHILE_101(p, o, s) BOOST_PP_WHILE_101_C(BOOST_PP_BOOL(p##(102, s)), p, o, s)
-# define BOOST_PP_WHILE_102(p, o, s) BOOST_PP_WHILE_102_C(BOOST_PP_BOOL(p##(103, s)), p, o, s)
-# define BOOST_PP_WHILE_103(p, o, s) BOOST_PP_WHILE_103_C(BOOST_PP_BOOL(p##(104, s)), p, o, s)
-# define BOOST_PP_WHILE_104(p, o, s) BOOST_PP_WHILE_104_C(BOOST_PP_BOOL(p##(105, s)), p, o, s)
-# define BOOST_PP_WHILE_105(p, o, s) BOOST_PP_WHILE_105_C(BOOST_PP_BOOL(p##(106, s)), p, o, s)
-# define BOOST_PP_WHILE_106(p, o, s) BOOST_PP_WHILE_106_C(BOOST_PP_BOOL(p##(107, s)), p, o, s)
-# define BOOST_PP_WHILE_107(p, o, s) BOOST_PP_WHILE_107_C(BOOST_PP_BOOL(p##(108, s)), p, o, s)
-# define BOOST_PP_WHILE_108(p, o, s) BOOST_PP_WHILE_108_C(BOOST_PP_BOOL(p##(109, s)), p, o, s)
-# define BOOST_PP_WHILE_109(p, o, s) BOOST_PP_WHILE_109_C(BOOST_PP_BOOL(p##(110, s)), p, o, s)
-# define BOOST_PP_WHILE_110(p, o, s) BOOST_PP_WHILE_110_C(BOOST_PP_BOOL(p##(111, s)), p, o, s)
-# define BOOST_PP_WHILE_111(p, o, s) BOOST_PP_WHILE_111_C(BOOST_PP_BOOL(p##(112, s)), p, o, s)
-# define BOOST_PP_WHILE_112(p, o, s) BOOST_PP_WHILE_112_C(BOOST_PP_BOOL(p##(113, s)), p, o, s)
-# define BOOST_PP_WHILE_113(p, o, s) BOOST_PP_WHILE_113_C(BOOST_PP_BOOL(p##(114, s)), p, o, s)
-# define BOOST_PP_WHILE_114(p, o, s) BOOST_PP_WHILE_114_C(BOOST_PP_BOOL(p##(115, s)), p, o, s)
-# define BOOST_PP_WHILE_115(p, o, s) BOOST_PP_WHILE_115_C(BOOST_PP_BOOL(p##(116, s)), p, o, s)
-# define BOOST_PP_WHILE_116(p, o, s) BOOST_PP_WHILE_116_C(BOOST_PP_BOOL(p##(117, s)), p, o, s)
-# define BOOST_PP_WHILE_117(p, o, s) BOOST_PP_WHILE_117_C(BOOST_PP_BOOL(p##(118, s)), p, o, s)
-# define BOOST_PP_WHILE_118(p, o, s) BOOST_PP_WHILE_118_C(BOOST_PP_BOOL(p##(119, s)), p, o, s)
-# define BOOST_PP_WHILE_119(p, o, s) BOOST_PP_WHILE_119_C(BOOST_PP_BOOL(p##(120, s)), p, o, s)
-# define BOOST_PP_WHILE_120(p, o, s) BOOST_PP_WHILE_120_C(BOOST_PP_BOOL(p##(121, s)), p, o, s)
-# define BOOST_PP_WHILE_121(p, o, s) BOOST_PP_WHILE_121_C(BOOST_PP_BOOL(p##(122, s)), p, o, s)
-# define BOOST_PP_WHILE_122(p, o, s) BOOST_PP_WHILE_122_C(BOOST_PP_BOOL(p##(123, s)), p, o, s)
-# define BOOST_PP_WHILE_123(p, o, s) BOOST_PP_WHILE_123_C(BOOST_PP_BOOL(p##(124, s)), p, o, s)
-# define BOOST_PP_WHILE_124(p, o, s) BOOST_PP_WHILE_124_C(BOOST_PP_BOOL(p##(125, s)), p, o, s)
-# define BOOST_PP_WHILE_125(p, o, s) BOOST_PP_WHILE_125_C(BOOST_PP_BOOL(p##(126, s)), p, o, s)
-# define BOOST_PP_WHILE_126(p, o, s) BOOST_PP_WHILE_126_C(BOOST_PP_BOOL(p##(127, s)), p, o, s)
-# define BOOST_PP_WHILE_127(p, o, s) BOOST_PP_WHILE_127_C(BOOST_PP_BOOL(p##(128, s)), p, o, s)
-# define BOOST_PP_WHILE_128(p, o, s) BOOST_PP_WHILE_128_C(BOOST_PP_BOOL(p##(129, s)), p, o, s)
-# define BOOST_PP_WHILE_129(p, o, s) BOOST_PP_WHILE_129_C(BOOST_PP_BOOL(p##(130, s)), p, o, s)
-# define BOOST_PP_WHILE_130(p, o, s) BOOST_PP_WHILE_130_C(BOOST_PP_BOOL(p##(131, s)), p, o, s)
-# define BOOST_PP_WHILE_131(p, o, s) BOOST_PP_WHILE_131_C(BOOST_PP_BOOL(p##(132, s)), p, o, s)
-# define BOOST_PP_WHILE_132(p, o, s) BOOST_PP_WHILE_132_C(BOOST_PP_BOOL(p##(133, s)), p, o, s)
-# define BOOST_PP_WHILE_133(p, o, s) BOOST_PP_WHILE_133_C(BOOST_PP_BOOL(p##(134, s)), p, o, s)
-# define BOOST_PP_WHILE_134(p, o, s) BOOST_PP_WHILE_134_C(BOOST_PP_BOOL(p##(135, s)), p, o, s)
-# define BOOST_PP_WHILE_135(p, o, s) BOOST_PP_WHILE_135_C(BOOST_PP_BOOL(p##(136, s)), p, o, s)
-# define BOOST_PP_WHILE_136(p, o, s) BOOST_PP_WHILE_136_C(BOOST_PP_BOOL(p##(137, s)), p, o, s)
-# define BOOST_PP_WHILE_137(p, o, s) BOOST_PP_WHILE_137_C(BOOST_PP_BOOL(p##(138, s)), p, o, s)
-# define BOOST_PP_WHILE_138(p, o, s) BOOST_PP_WHILE_138_C(BOOST_PP_BOOL(p##(139, s)), p, o, s)
-# define BOOST_PP_WHILE_139(p, o, s) BOOST_PP_WHILE_139_C(BOOST_PP_BOOL(p##(140, s)), p, o, s)
-# define BOOST_PP_WHILE_140(p, o, s) BOOST_PP_WHILE_140_C(BOOST_PP_BOOL(p##(141, s)), p, o, s)
-# define BOOST_PP_WHILE_141(p, o, s) BOOST_PP_WHILE_141_C(BOOST_PP_BOOL(p##(142, s)), p, o, s)
-# define BOOST_PP_WHILE_142(p, o, s) BOOST_PP_WHILE_142_C(BOOST_PP_BOOL(p##(143, s)), p, o, s)
-# define BOOST_PP_WHILE_143(p, o, s) BOOST_PP_WHILE_143_C(BOOST_PP_BOOL(p##(144, s)), p, o, s)
-# define BOOST_PP_WHILE_144(p, o, s) BOOST_PP_WHILE_144_C(BOOST_PP_BOOL(p##(145, s)), p, o, s)
-# define BOOST_PP_WHILE_145(p, o, s) BOOST_PP_WHILE_145_C(BOOST_PP_BOOL(p##(146, s)), p, o, s)
-# define BOOST_PP_WHILE_146(p, o, s) BOOST_PP_WHILE_146_C(BOOST_PP_BOOL(p##(147, s)), p, o, s)
-# define BOOST_PP_WHILE_147(p, o, s) BOOST_PP_WHILE_147_C(BOOST_PP_BOOL(p##(148, s)), p, o, s)
-# define BOOST_PP_WHILE_148(p, o, s) BOOST_PP_WHILE_148_C(BOOST_PP_BOOL(p##(149, s)), p, o, s)
-# define BOOST_PP_WHILE_149(p, o, s) BOOST_PP_WHILE_149_C(BOOST_PP_BOOL(p##(150, s)), p, o, s)
-# define BOOST_PP_WHILE_150(p, o, s) BOOST_PP_WHILE_150_C(BOOST_PP_BOOL(p##(151, s)), p, o, s)
-# define BOOST_PP_WHILE_151(p, o, s) BOOST_PP_WHILE_151_C(BOOST_PP_BOOL(p##(152, s)), p, o, s)
-# define BOOST_PP_WHILE_152(p, o, s) BOOST_PP_WHILE_152_C(BOOST_PP_BOOL(p##(153, s)), p, o, s)
-# define BOOST_PP_WHILE_153(p, o, s) BOOST_PP_WHILE_153_C(BOOST_PP_BOOL(p##(154, s)), p, o, s)
-# define BOOST_PP_WHILE_154(p, o, s) BOOST_PP_WHILE_154_C(BOOST_PP_BOOL(p##(155, s)), p, o, s)
-# define BOOST_PP_WHILE_155(p, o, s) BOOST_PP_WHILE_155_C(BOOST_PP_BOOL(p##(156, s)), p, o, s)
-# define BOOST_PP_WHILE_156(p, o, s) BOOST_PP_WHILE_156_C(BOOST_PP_BOOL(p##(157, s)), p, o, s)
-# define BOOST_PP_WHILE_157(p, o, s) BOOST_PP_WHILE_157_C(BOOST_PP_BOOL(p##(158, s)), p, o, s)
-# define BOOST_PP_WHILE_158(p, o, s) BOOST_PP_WHILE_158_C(BOOST_PP_BOOL(p##(159, s)), p, o, s)
-# define BOOST_PP_WHILE_159(p, o, s) BOOST_PP_WHILE_159_C(BOOST_PP_BOOL(p##(160, s)), p, o, s)
-# define BOOST_PP_WHILE_160(p, o, s) BOOST_PP_WHILE_160_C(BOOST_PP_BOOL(p##(161, s)), p, o, s)
-# define BOOST_PP_WHILE_161(p, o, s) BOOST_PP_WHILE_161_C(BOOST_PP_BOOL(p##(162, s)), p, o, s)
-# define BOOST_PP_WHILE_162(p, o, s) BOOST_PP_WHILE_162_C(BOOST_PP_BOOL(p##(163, s)), p, o, s)
-# define BOOST_PP_WHILE_163(p, o, s) BOOST_PP_WHILE_163_C(BOOST_PP_BOOL(p##(164, s)), p, o, s)
-# define BOOST_PP_WHILE_164(p, o, s) BOOST_PP_WHILE_164_C(BOOST_PP_BOOL(p##(165, s)), p, o, s)
-# define BOOST_PP_WHILE_165(p, o, s) BOOST_PP_WHILE_165_C(BOOST_PP_BOOL(p##(166, s)), p, o, s)
-# define BOOST_PP_WHILE_166(p, o, s) BOOST_PP_WHILE_166_C(BOOST_PP_BOOL(p##(167, s)), p, o, s)
-# define BOOST_PP_WHILE_167(p, o, s) BOOST_PP_WHILE_167_C(BOOST_PP_BOOL(p##(168, s)), p, o, s)
-# define BOOST_PP_WHILE_168(p, o, s) BOOST_PP_WHILE_168_C(BOOST_PP_BOOL(p##(169, s)), p, o, s)
-# define BOOST_PP_WHILE_169(p, o, s) BOOST_PP_WHILE_169_C(BOOST_PP_BOOL(p##(170, s)), p, o, s)
-# define BOOST_PP_WHILE_170(p, o, s) BOOST_PP_WHILE_170_C(BOOST_PP_BOOL(p##(171, s)), p, o, s)
-# define BOOST_PP_WHILE_171(p, o, s) BOOST_PP_WHILE_171_C(BOOST_PP_BOOL(p##(172, s)), p, o, s)
-# define BOOST_PP_WHILE_172(p, o, s) BOOST_PP_WHILE_172_C(BOOST_PP_BOOL(p##(173, s)), p, o, s)
-# define BOOST_PP_WHILE_173(p, o, s) BOOST_PP_WHILE_173_C(BOOST_PP_BOOL(p##(174, s)), p, o, s)
-# define BOOST_PP_WHILE_174(p, o, s) BOOST_PP_WHILE_174_C(BOOST_PP_BOOL(p##(175, s)), p, o, s)
-# define BOOST_PP_WHILE_175(p, o, s) BOOST_PP_WHILE_175_C(BOOST_PP_BOOL(p##(176, s)), p, o, s)
-# define BOOST_PP_WHILE_176(p, o, s) BOOST_PP_WHILE_176_C(BOOST_PP_BOOL(p##(177, s)), p, o, s)
-# define BOOST_PP_WHILE_177(p, o, s) BOOST_PP_WHILE_177_C(BOOST_PP_BOOL(p##(178, s)), p, o, s)
-# define BOOST_PP_WHILE_178(p, o, s) BOOST_PP_WHILE_178_C(BOOST_PP_BOOL(p##(179, s)), p, o, s)
-# define BOOST_PP_WHILE_179(p, o, s) BOOST_PP_WHILE_179_C(BOOST_PP_BOOL(p##(180, s)), p, o, s)
-# define BOOST_PP_WHILE_180(p, o, s) BOOST_PP_WHILE_180_C(BOOST_PP_BOOL(p##(181, s)), p, o, s)
-# define BOOST_PP_WHILE_181(p, o, s) BOOST_PP_WHILE_181_C(BOOST_PP_BOOL(p##(182, s)), p, o, s)
-# define BOOST_PP_WHILE_182(p, o, s) BOOST_PP_WHILE_182_C(BOOST_PP_BOOL(p##(183, s)), p, o, s)
-# define BOOST_PP_WHILE_183(p, o, s) BOOST_PP_WHILE_183_C(BOOST_PP_BOOL(p##(184, s)), p, o, s)
-# define BOOST_PP_WHILE_184(p, o, s) BOOST_PP_WHILE_184_C(BOOST_PP_BOOL(p##(185, s)), p, o, s)
-# define BOOST_PP_WHILE_185(p, o, s) BOOST_PP_WHILE_185_C(BOOST_PP_BOOL(p##(186, s)), p, o, s)
-# define BOOST_PP_WHILE_186(p, o, s) BOOST_PP_WHILE_186_C(BOOST_PP_BOOL(p##(187, s)), p, o, s)
-# define BOOST_PP_WHILE_187(p, o, s) BOOST_PP_WHILE_187_C(BOOST_PP_BOOL(p##(188, s)), p, o, s)
-# define BOOST_PP_WHILE_188(p, o, s) BOOST_PP_WHILE_188_C(BOOST_PP_BOOL(p##(189, s)), p, o, s)
-# define BOOST_PP_WHILE_189(p, o, s) BOOST_PP_WHILE_189_C(BOOST_PP_BOOL(p##(190, s)), p, o, s)
-# define BOOST_PP_WHILE_190(p, o, s) BOOST_PP_WHILE_190_C(BOOST_PP_BOOL(p##(191, s)), p, o, s)
-# define BOOST_PP_WHILE_191(p, o, s) BOOST_PP_WHILE_191_C(BOOST_PP_BOOL(p##(192, s)), p, o, s)
-# define BOOST_PP_WHILE_192(p, o, s) BOOST_PP_WHILE_192_C(BOOST_PP_BOOL(p##(193, s)), p, o, s)
-# define BOOST_PP_WHILE_193(p, o, s) BOOST_PP_WHILE_193_C(BOOST_PP_BOOL(p##(194, s)), p, o, s)
-# define BOOST_PP_WHILE_194(p, o, s) BOOST_PP_WHILE_194_C(BOOST_PP_BOOL(p##(195, s)), p, o, s)
-# define BOOST_PP_WHILE_195(p, o, s) BOOST_PP_WHILE_195_C(BOOST_PP_BOOL(p##(196, s)), p, o, s)
-# define BOOST_PP_WHILE_196(p, o, s) BOOST_PP_WHILE_196_C(BOOST_PP_BOOL(p##(197, s)), p, o, s)
-# define BOOST_PP_WHILE_197(p, o, s) BOOST_PP_WHILE_197_C(BOOST_PP_BOOL(p##(198, s)), p, o, s)
-# define BOOST_PP_WHILE_198(p, o, s) BOOST_PP_WHILE_198_C(BOOST_PP_BOOL(p##(199, s)), p, o, s)
-# define BOOST_PP_WHILE_199(p, o, s) BOOST_PP_WHILE_199_C(BOOST_PP_BOOL(p##(200, s)), p, o, s)
-# define BOOST_PP_WHILE_200(p, o, s) BOOST_PP_WHILE_200_C(BOOST_PP_BOOL(p##(201, s)), p, o, s)
-# define BOOST_PP_WHILE_201(p, o, s) BOOST_PP_WHILE_201_C(BOOST_PP_BOOL(p##(202, s)), p, o, s)
-# define BOOST_PP_WHILE_202(p, o, s) BOOST_PP_WHILE_202_C(BOOST_PP_BOOL(p##(203, s)), p, o, s)
-# define BOOST_PP_WHILE_203(p, o, s) BOOST_PP_WHILE_203_C(BOOST_PP_BOOL(p##(204, s)), p, o, s)
-# define BOOST_PP_WHILE_204(p, o, s) BOOST_PP_WHILE_204_C(BOOST_PP_BOOL(p##(205, s)), p, o, s)
-# define BOOST_PP_WHILE_205(p, o, s) BOOST_PP_WHILE_205_C(BOOST_PP_BOOL(p##(206, s)), p, o, s)
-# define BOOST_PP_WHILE_206(p, o, s) BOOST_PP_WHILE_206_C(BOOST_PP_BOOL(p##(207, s)), p, o, s)
-# define BOOST_PP_WHILE_207(p, o, s) BOOST_PP_WHILE_207_C(BOOST_PP_BOOL(p##(208, s)), p, o, s)
-# define BOOST_PP_WHILE_208(p, o, s) BOOST_PP_WHILE_208_C(BOOST_PP_BOOL(p##(209, s)), p, o, s)
-# define BOOST_PP_WHILE_209(p, o, s) BOOST_PP_WHILE_209_C(BOOST_PP_BOOL(p##(210, s)), p, o, s)
-# define BOOST_PP_WHILE_210(p, o, s) BOOST_PP_WHILE_210_C(BOOST_PP_BOOL(p##(211, s)), p, o, s)
-# define BOOST_PP_WHILE_211(p, o, s) BOOST_PP_WHILE_211_C(BOOST_PP_BOOL(p##(212, s)), p, o, s)
-# define BOOST_PP_WHILE_212(p, o, s) BOOST_PP_WHILE_212_C(BOOST_PP_BOOL(p##(213, s)), p, o, s)
-# define BOOST_PP_WHILE_213(p, o, s) BOOST_PP_WHILE_213_C(BOOST_PP_BOOL(p##(214, s)), p, o, s)
-# define BOOST_PP_WHILE_214(p, o, s) BOOST_PP_WHILE_214_C(BOOST_PP_BOOL(p##(215, s)), p, o, s)
-# define BOOST_PP_WHILE_215(p, o, s) BOOST_PP_WHILE_215_C(BOOST_PP_BOOL(p##(216, s)), p, o, s)
-# define BOOST_PP_WHILE_216(p, o, s) BOOST_PP_WHILE_216_C(BOOST_PP_BOOL(p##(217, s)), p, o, s)
-# define BOOST_PP_WHILE_217(p, o, s) BOOST_PP_WHILE_217_C(BOOST_PP_BOOL(p##(218, s)), p, o, s)
-# define BOOST_PP_WHILE_218(p, o, s) BOOST_PP_WHILE_218_C(BOOST_PP_BOOL(p##(219, s)), p, o, s)
-# define BOOST_PP_WHILE_219(p, o, s) BOOST_PP_WHILE_219_C(BOOST_PP_BOOL(p##(220, s)), p, o, s)
-# define BOOST_PP_WHILE_220(p, o, s) BOOST_PP_WHILE_220_C(BOOST_PP_BOOL(p##(221, s)), p, o, s)
-# define BOOST_PP_WHILE_221(p, o, s) BOOST_PP_WHILE_221_C(BOOST_PP_BOOL(p##(222, s)), p, o, s)
-# define BOOST_PP_WHILE_222(p, o, s) BOOST_PP_WHILE_222_C(BOOST_PP_BOOL(p##(223, s)), p, o, s)
-# define BOOST_PP_WHILE_223(p, o, s) BOOST_PP_WHILE_223_C(BOOST_PP_BOOL(p##(224, s)), p, o, s)
-# define BOOST_PP_WHILE_224(p, o, s) BOOST_PP_WHILE_224_C(BOOST_PP_BOOL(p##(225, s)), p, o, s)
-# define BOOST_PP_WHILE_225(p, o, s) BOOST_PP_WHILE_225_C(BOOST_PP_BOOL(p##(226, s)), p, o, s)
-# define BOOST_PP_WHILE_226(p, o, s) BOOST_PP_WHILE_226_C(BOOST_PP_BOOL(p##(227, s)), p, o, s)
-# define BOOST_PP_WHILE_227(p, o, s) BOOST_PP_WHILE_227_C(BOOST_PP_BOOL(p##(228, s)), p, o, s)
-# define BOOST_PP_WHILE_228(p, o, s) BOOST_PP_WHILE_228_C(BOOST_PP_BOOL(p##(229, s)), p, o, s)
-# define BOOST_PP_WHILE_229(p, o, s) BOOST_PP_WHILE_229_C(BOOST_PP_BOOL(p##(230, s)), p, o, s)
-# define BOOST_PP_WHILE_230(p, o, s) BOOST_PP_WHILE_230_C(BOOST_PP_BOOL(p##(231, s)), p, o, s)
-# define BOOST_PP_WHILE_231(p, o, s) BOOST_PP_WHILE_231_C(BOOST_PP_BOOL(p##(232, s)), p, o, s)
-# define BOOST_PP_WHILE_232(p, o, s) BOOST_PP_WHILE_232_C(BOOST_PP_BOOL(p##(233, s)), p, o, s)
-# define BOOST_PP_WHILE_233(p, o, s) BOOST_PP_WHILE_233_C(BOOST_PP_BOOL(p##(234, s)), p, o, s)
-# define BOOST_PP_WHILE_234(p, o, s) BOOST_PP_WHILE_234_C(BOOST_PP_BOOL(p##(235, s)), p, o, s)
-# define BOOST_PP_WHILE_235(p, o, s) BOOST_PP_WHILE_235_C(BOOST_PP_BOOL(p##(236, s)), p, o, s)
-# define BOOST_PP_WHILE_236(p, o, s) BOOST_PP_WHILE_236_C(BOOST_PP_BOOL(p##(237, s)), p, o, s)
-# define BOOST_PP_WHILE_237(p, o, s) BOOST_PP_WHILE_237_C(BOOST_PP_BOOL(p##(238, s)), p, o, s)
-# define BOOST_PP_WHILE_238(p, o, s) BOOST_PP_WHILE_238_C(BOOST_PP_BOOL(p##(239, s)), p, o, s)
-# define BOOST_PP_WHILE_239(p, o, s) BOOST_PP_WHILE_239_C(BOOST_PP_BOOL(p##(240, s)), p, o, s)
-# define BOOST_PP_WHILE_240(p, o, s) BOOST_PP_WHILE_240_C(BOOST_PP_BOOL(p##(241, s)), p, o, s)
-# define BOOST_PP_WHILE_241(p, o, s) BOOST_PP_WHILE_241_C(BOOST_PP_BOOL(p##(242, s)), p, o, s)
-# define BOOST_PP_WHILE_242(p, o, s) BOOST_PP_WHILE_242_C(BOOST_PP_BOOL(p##(243, s)), p, o, s)
-# define BOOST_PP_WHILE_243(p, o, s) BOOST_PP_WHILE_243_C(BOOST_PP_BOOL(p##(244, s)), p, o, s)
-# define BOOST_PP_WHILE_244(p, o, s) BOOST_PP_WHILE_244_C(BOOST_PP_BOOL(p##(245, s)), p, o, s)
-# define BOOST_PP_WHILE_245(p, o, s) BOOST_PP_WHILE_245_C(BOOST_PP_BOOL(p##(246, s)), p, o, s)
-# define BOOST_PP_WHILE_246(p, o, s) BOOST_PP_WHILE_246_C(BOOST_PP_BOOL(p##(247, s)), p, o, s)
-# define BOOST_PP_WHILE_247(p, o, s) BOOST_PP_WHILE_247_C(BOOST_PP_BOOL(p##(248, s)), p, o, s)
-# define BOOST_PP_WHILE_248(p, o, s) BOOST_PP_WHILE_248_C(BOOST_PP_BOOL(p##(249, s)), p, o, s)
-# define BOOST_PP_WHILE_249(p, o, s) BOOST_PP_WHILE_249_C(BOOST_PP_BOOL(p##(250, s)), p, o, s)
-# define BOOST_PP_WHILE_250(p, o, s) BOOST_PP_WHILE_250_C(BOOST_PP_BOOL(p##(251, s)), p, o, s)
-# define BOOST_PP_WHILE_251(p, o, s) BOOST_PP_WHILE_251_C(BOOST_PP_BOOL(p##(252, s)), p, o, s)
-# define BOOST_PP_WHILE_252(p, o, s) BOOST_PP_WHILE_252_C(BOOST_PP_BOOL(p##(253, s)), p, o, s)
-# define BOOST_PP_WHILE_253(p, o, s) BOOST_PP_WHILE_253_C(BOOST_PP_BOOL(p##(254, s)), p, o, s)
-# define BOOST_PP_WHILE_254(p, o, s) BOOST_PP_WHILE_254_C(BOOST_PP_BOOL(p##(255, s)), p, o, s)
-# define BOOST_PP_WHILE_255(p, o, s) BOOST_PP_WHILE_255_C(BOOST_PP_BOOL(p##(256, s)), p, o, s)
-# define BOOST_PP_WHILE_256(p, o, s) BOOST_PP_WHILE_256_C(BOOST_PP_BOOL(p##(257, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_1(p, o, s) NDNBOOST_PP_WHILE_1_C(NDNBOOST_PP_BOOL(p##(2, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_2(p, o, s) NDNBOOST_PP_WHILE_2_C(NDNBOOST_PP_BOOL(p##(3, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_3(p, o, s) NDNBOOST_PP_WHILE_3_C(NDNBOOST_PP_BOOL(p##(4, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_4(p, o, s) NDNBOOST_PP_WHILE_4_C(NDNBOOST_PP_BOOL(p##(5, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_5(p, o, s) NDNBOOST_PP_WHILE_5_C(NDNBOOST_PP_BOOL(p##(6, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_6(p, o, s) NDNBOOST_PP_WHILE_6_C(NDNBOOST_PP_BOOL(p##(7, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_7(p, o, s) NDNBOOST_PP_WHILE_7_C(NDNBOOST_PP_BOOL(p##(8, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_8(p, o, s) NDNBOOST_PP_WHILE_8_C(NDNBOOST_PP_BOOL(p##(9, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_9(p, o, s) NDNBOOST_PP_WHILE_9_C(NDNBOOST_PP_BOOL(p##(10, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_10(p, o, s) NDNBOOST_PP_WHILE_10_C(NDNBOOST_PP_BOOL(p##(11, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_11(p, o, s) NDNBOOST_PP_WHILE_11_C(NDNBOOST_PP_BOOL(p##(12, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_12(p, o, s) NDNBOOST_PP_WHILE_12_C(NDNBOOST_PP_BOOL(p##(13, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_13(p, o, s) NDNBOOST_PP_WHILE_13_C(NDNBOOST_PP_BOOL(p##(14, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_14(p, o, s) NDNBOOST_PP_WHILE_14_C(NDNBOOST_PP_BOOL(p##(15, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_15(p, o, s) NDNBOOST_PP_WHILE_15_C(NDNBOOST_PP_BOOL(p##(16, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_16(p, o, s) NDNBOOST_PP_WHILE_16_C(NDNBOOST_PP_BOOL(p##(17, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_17(p, o, s) NDNBOOST_PP_WHILE_17_C(NDNBOOST_PP_BOOL(p##(18, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_18(p, o, s) NDNBOOST_PP_WHILE_18_C(NDNBOOST_PP_BOOL(p##(19, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_19(p, o, s) NDNBOOST_PP_WHILE_19_C(NDNBOOST_PP_BOOL(p##(20, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_20(p, o, s) NDNBOOST_PP_WHILE_20_C(NDNBOOST_PP_BOOL(p##(21, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_21(p, o, s) NDNBOOST_PP_WHILE_21_C(NDNBOOST_PP_BOOL(p##(22, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_22(p, o, s) NDNBOOST_PP_WHILE_22_C(NDNBOOST_PP_BOOL(p##(23, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_23(p, o, s) NDNBOOST_PP_WHILE_23_C(NDNBOOST_PP_BOOL(p##(24, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_24(p, o, s) NDNBOOST_PP_WHILE_24_C(NDNBOOST_PP_BOOL(p##(25, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_25(p, o, s) NDNBOOST_PP_WHILE_25_C(NDNBOOST_PP_BOOL(p##(26, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_26(p, o, s) NDNBOOST_PP_WHILE_26_C(NDNBOOST_PP_BOOL(p##(27, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_27(p, o, s) NDNBOOST_PP_WHILE_27_C(NDNBOOST_PP_BOOL(p##(28, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_28(p, o, s) NDNBOOST_PP_WHILE_28_C(NDNBOOST_PP_BOOL(p##(29, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_29(p, o, s) NDNBOOST_PP_WHILE_29_C(NDNBOOST_PP_BOOL(p##(30, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_30(p, o, s) NDNBOOST_PP_WHILE_30_C(NDNBOOST_PP_BOOL(p##(31, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_31(p, o, s) NDNBOOST_PP_WHILE_31_C(NDNBOOST_PP_BOOL(p##(32, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_32(p, o, s) NDNBOOST_PP_WHILE_32_C(NDNBOOST_PP_BOOL(p##(33, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_33(p, o, s) NDNBOOST_PP_WHILE_33_C(NDNBOOST_PP_BOOL(p##(34, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_34(p, o, s) NDNBOOST_PP_WHILE_34_C(NDNBOOST_PP_BOOL(p##(35, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_35(p, o, s) NDNBOOST_PP_WHILE_35_C(NDNBOOST_PP_BOOL(p##(36, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_36(p, o, s) NDNBOOST_PP_WHILE_36_C(NDNBOOST_PP_BOOL(p##(37, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_37(p, o, s) NDNBOOST_PP_WHILE_37_C(NDNBOOST_PP_BOOL(p##(38, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_38(p, o, s) NDNBOOST_PP_WHILE_38_C(NDNBOOST_PP_BOOL(p##(39, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_39(p, o, s) NDNBOOST_PP_WHILE_39_C(NDNBOOST_PP_BOOL(p##(40, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_40(p, o, s) NDNBOOST_PP_WHILE_40_C(NDNBOOST_PP_BOOL(p##(41, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_41(p, o, s) NDNBOOST_PP_WHILE_41_C(NDNBOOST_PP_BOOL(p##(42, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_42(p, o, s) NDNBOOST_PP_WHILE_42_C(NDNBOOST_PP_BOOL(p##(43, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_43(p, o, s) NDNBOOST_PP_WHILE_43_C(NDNBOOST_PP_BOOL(p##(44, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_44(p, o, s) NDNBOOST_PP_WHILE_44_C(NDNBOOST_PP_BOOL(p##(45, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_45(p, o, s) NDNBOOST_PP_WHILE_45_C(NDNBOOST_PP_BOOL(p##(46, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_46(p, o, s) NDNBOOST_PP_WHILE_46_C(NDNBOOST_PP_BOOL(p##(47, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_47(p, o, s) NDNBOOST_PP_WHILE_47_C(NDNBOOST_PP_BOOL(p##(48, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_48(p, o, s) NDNBOOST_PP_WHILE_48_C(NDNBOOST_PP_BOOL(p##(49, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_49(p, o, s) NDNBOOST_PP_WHILE_49_C(NDNBOOST_PP_BOOL(p##(50, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_50(p, o, s) NDNBOOST_PP_WHILE_50_C(NDNBOOST_PP_BOOL(p##(51, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_51(p, o, s) NDNBOOST_PP_WHILE_51_C(NDNBOOST_PP_BOOL(p##(52, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_52(p, o, s) NDNBOOST_PP_WHILE_52_C(NDNBOOST_PP_BOOL(p##(53, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_53(p, o, s) NDNBOOST_PP_WHILE_53_C(NDNBOOST_PP_BOOL(p##(54, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_54(p, o, s) NDNBOOST_PP_WHILE_54_C(NDNBOOST_PP_BOOL(p##(55, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_55(p, o, s) NDNBOOST_PP_WHILE_55_C(NDNBOOST_PP_BOOL(p##(56, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_56(p, o, s) NDNBOOST_PP_WHILE_56_C(NDNBOOST_PP_BOOL(p##(57, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_57(p, o, s) NDNBOOST_PP_WHILE_57_C(NDNBOOST_PP_BOOL(p##(58, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_58(p, o, s) NDNBOOST_PP_WHILE_58_C(NDNBOOST_PP_BOOL(p##(59, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_59(p, o, s) NDNBOOST_PP_WHILE_59_C(NDNBOOST_PP_BOOL(p##(60, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_60(p, o, s) NDNBOOST_PP_WHILE_60_C(NDNBOOST_PP_BOOL(p##(61, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_61(p, o, s) NDNBOOST_PP_WHILE_61_C(NDNBOOST_PP_BOOL(p##(62, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_62(p, o, s) NDNBOOST_PP_WHILE_62_C(NDNBOOST_PP_BOOL(p##(63, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_63(p, o, s) NDNBOOST_PP_WHILE_63_C(NDNBOOST_PP_BOOL(p##(64, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_64(p, o, s) NDNBOOST_PP_WHILE_64_C(NDNBOOST_PP_BOOL(p##(65, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_65(p, o, s) NDNBOOST_PP_WHILE_65_C(NDNBOOST_PP_BOOL(p##(66, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_66(p, o, s) NDNBOOST_PP_WHILE_66_C(NDNBOOST_PP_BOOL(p##(67, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_67(p, o, s) NDNBOOST_PP_WHILE_67_C(NDNBOOST_PP_BOOL(p##(68, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_68(p, o, s) NDNBOOST_PP_WHILE_68_C(NDNBOOST_PP_BOOL(p##(69, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_69(p, o, s) NDNBOOST_PP_WHILE_69_C(NDNBOOST_PP_BOOL(p##(70, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_70(p, o, s) NDNBOOST_PP_WHILE_70_C(NDNBOOST_PP_BOOL(p##(71, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_71(p, o, s) NDNBOOST_PP_WHILE_71_C(NDNBOOST_PP_BOOL(p##(72, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_72(p, o, s) NDNBOOST_PP_WHILE_72_C(NDNBOOST_PP_BOOL(p##(73, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_73(p, o, s) NDNBOOST_PP_WHILE_73_C(NDNBOOST_PP_BOOL(p##(74, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_74(p, o, s) NDNBOOST_PP_WHILE_74_C(NDNBOOST_PP_BOOL(p##(75, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_75(p, o, s) NDNBOOST_PP_WHILE_75_C(NDNBOOST_PP_BOOL(p##(76, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_76(p, o, s) NDNBOOST_PP_WHILE_76_C(NDNBOOST_PP_BOOL(p##(77, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_77(p, o, s) NDNBOOST_PP_WHILE_77_C(NDNBOOST_PP_BOOL(p##(78, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_78(p, o, s) NDNBOOST_PP_WHILE_78_C(NDNBOOST_PP_BOOL(p##(79, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_79(p, o, s) NDNBOOST_PP_WHILE_79_C(NDNBOOST_PP_BOOL(p##(80, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_80(p, o, s) NDNBOOST_PP_WHILE_80_C(NDNBOOST_PP_BOOL(p##(81, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_81(p, o, s) NDNBOOST_PP_WHILE_81_C(NDNBOOST_PP_BOOL(p##(82, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_82(p, o, s) NDNBOOST_PP_WHILE_82_C(NDNBOOST_PP_BOOL(p##(83, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_83(p, o, s) NDNBOOST_PP_WHILE_83_C(NDNBOOST_PP_BOOL(p##(84, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_84(p, o, s) NDNBOOST_PP_WHILE_84_C(NDNBOOST_PP_BOOL(p##(85, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_85(p, o, s) NDNBOOST_PP_WHILE_85_C(NDNBOOST_PP_BOOL(p##(86, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_86(p, o, s) NDNBOOST_PP_WHILE_86_C(NDNBOOST_PP_BOOL(p##(87, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_87(p, o, s) NDNBOOST_PP_WHILE_87_C(NDNBOOST_PP_BOOL(p##(88, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_88(p, o, s) NDNBOOST_PP_WHILE_88_C(NDNBOOST_PP_BOOL(p##(89, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_89(p, o, s) NDNBOOST_PP_WHILE_89_C(NDNBOOST_PP_BOOL(p##(90, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_90(p, o, s) NDNBOOST_PP_WHILE_90_C(NDNBOOST_PP_BOOL(p##(91, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_91(p, o, s) NDNBOOST_PP_WHILE_91_C(NDNBOOST_PP_BOOL(p##(92, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_92(p, o, s) NDNBOOST_PP_WHILE_92_C(NDNBOOST_PP_BOOL(p##(93, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_93(p, o, s) NDNBOOST_PP_WHILE_93_C(NDNBOOST_PP_BOOL(p##(94, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_94(p, o, s) NDNBOOST_PP_WHILE_94_C(NDNBOOST_PP_BOOL(p##(95, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_95(p, o, s) NDNBOOST_PP_WHILE_95_C(NDNBOOST_PP_BOOL(p##(96, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_96(p, o, s) NDNBOOST_PP_WHILE_96_C(NDNBOOST_PP_BOOL(p##(97, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_97(p, o, s) NDNBOOST_PP_WHILE_97_C(NDNBOOST_PP_BOOL(p##(98, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_98(p, o, s) NDNBOOST_PP_WHILE_98_C(NDNBOOST_PP_BOOL(p##(99, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_99(p, o, s) NDNBOOST_PP_WHILE_99_C(NDNBOOST_PP_BOOL(p##(100, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_100(p, o, s) NDNBOOST_PP_WHILE_100_C(NDNBOOST_PP_BOOL(p##(101, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_101(p, o, s) NDNBOOST_PP_WHILE_101_C(NDNBOOST_PP_BOOL(p##(102, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_102(p, o, s) NDNBOOST_PP_WHILE_102_C(NDNBOOST_PP_BOOL(p##(103, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_103(p, o, s) NDNBOOST_PP_WHILE_103_C(NDNBOOST_PP_BOOL(p##(104, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_104(p, o, s) NDNBOOST_PP_WHILE_104_C(NDNBOOST_PP_BOOL(p##(105, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_105(p, o, s) NDNBOOST_PP_WHILE_105_C(NDNBOOST_PP_BOOL(p##(106, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_106(p, o, s) NDNBOOST_PP_WHILE_106_C(NDNBOOST_PP_BOOL(p##(107, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_107(p, o, s) NDNBOOST_PP_WHILE_107_C(NDNBOOST_PP_BOOL(p##(108, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_108(p, o, s) NDNBOOST_PP_WHILE_108_C(NDNBOOST_PP_BOOL(p##(109, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_109(p, o, s) NDNBOOST_PP_WHILE_109_C(NDNBOOST_PP_BOOL(p##(110, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_110(p, o, s) NDNBOOST_PP_WHILE_110_C(NDNBOOST_PP_BOOL(p##(111, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_111(p, o, s) NDNBOOST_PP_WHILE_111_C(NDNBOOST_PP_BOOL(p##(112, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_112(p, o, s) NDNBOOST_PP_WHILE_112_C(NDNBOOST_PP_BOOL(p##(113, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_113(p, o, s) NDNBOOST_PP_WHILE_113_C(NDNBOOST_PP_BOOL(p##(114, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_114(p, o, s) NDNBOOST_PP_WHILE_114_C(NDNBOOST_PP_BOOL(p##(115, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_115(p, o, s) NDNBOOST_PP_WHILE_115_C(NDNBOOST_PP_BOOL(p##(116, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_116(p, o, s) NDNBOOST_PP_WHILE_116_C(NDNBOOST_PP_BOOL(p##(117, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_117(p, o, s) NDNBOOST_PP_WHILE_117_C(NDNBOOST_PP_BOOL(p##(118, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_118(p, o, s) NDNBOOST_PP_WHILE_118_C(NDNBOOST_PP_BOOL(p##(119, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_119(p, o, s) NDNBOOST_PP_WHILE_119_C(NDNBOOST_PP_BOOL(p##(120, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_120(p, o, s) NDNBOOST_PP_WHILE_120_C(NDNBOOST_PP_BOOL(p##(121, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_121(p, o, s) NDNBOOST_PP_WHILE_121_C(NDNBOOST_PP_BOOL(p##(122, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_122(p, o, s) NDNBOOST_PP_WHILE_122_C(NDNBOOST_PP_BOOL(p##(123, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_123(p, o, s) NDNBOOST_PP_WHILE_123_C(NDNBOOST_PP_BOOL(p##(124, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_124(p, o, s) NDNBOOST_PP_WHILE_124_C(NDNBOOST_PP_BOOL(p##(125, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_125(p, o, s) NDNBOOST_PP_WHILE_125_C(NDNBOOST_PP_BOOL(p##(126, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_126(p, o, s) NDNBOOST_PP_WHILE_126_C(NDNBOOST_PP_BOOL(p##(127, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_127(p, o, s) NDNBOOST_PP_WHILE_127_C(NDNBOOST_PP_BOOL(p##(128, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_128(p, o, s) NDNBOOST_PP_WHILE_128_C(NDNBOOST_PP_BOOL(p##(129, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_129(p, o, s) NDNBOOST_PP_WHILE_129_C(NDNBOOST_PP_BOOL(p##(130, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_130(p, o, s) NDNBOOST_PP_WHILE_130_C(NDNBOOST_PP_BOOL(p##(131, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_131(p, o, s) NDNBOOST_PP_WHILE_131_C(NDNBOOST_PP_BOOL(p##(132, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_132(p, o, s) NDNBOOST_PP_WHILE_132_C(NDNBOOST_PP_BOOL(p##(133, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_133(p, o, s) NDNBOOST_PP_WHILE_133_C(NDNBOOST_PP_BOOL(p##(134, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_134(p, o, s) NDNBOOST_PP_WHILE_134_C(NDNBOOST_PP_BOOL(p##(135, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_135(p, o, s) NDNBOOST_PP_WHILE_135_C(NDNBOOST_PP_BOOL(p##(136, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_136(p, o, s) NDNBOOST_PP_WHILE_136_C(NDNBOOST_PP_BOOL(p##(137, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_137(p, o, s) NDNBOOST_PP_WHILE_137_C(NDNBOOST_PP_BOOL(p##(138, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_138(p, o, s) NDNBOOST_PP_WHILE_138_C(NDNBOOST_PP_BOOL(p##(139, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_139(p, o, s) NDNBOOST_PP_WHILE_139_C(NDNBOOST_PP_BOOL(p##(140, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_140(p, o, s) NDNBOOST_PP_WHILE_140_C(NDNBOOST_PP_BOOL(p##(141, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_141(p, o, s) NDNBOOST_PP_WHILE_141_C(NDNBOOST_PP_BOOL(p##(142, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_142(p, o, s) NDNBOOST_PP_WHILE_142_C(NDNBOOST_PP_BOOL(p##(143, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_143(p, o, s) NDNBOOST_PP_WHILE_143_C(NDNBOOST_PP_BOOL(p##(144, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_144(p, o, s) NDNBOOST_PP_WHILE_144_C(NDNBOOST_PP_BOOL(p##(145, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_145(p, o, s) NDNBOOST_PP_WHILE_145_C(NDNBOOST_PP_BOOL(p##(146, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_146(p, o, s) NDNBOOST_PP_WHILE_146_C(NDNBOOST_PP_BOOL(p##(147, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_147(p, o, s) NDNBOOST_PP_WHILE_147_C(NDNBOOST_PP_BOOL(p##(148, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_148(p, o, s) NDNBOOST_PP_WHILE_148_C(NDNBOOST_PP_BOOL(p##(149, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_149(p, o, s) NDNBOOST_PP_WHILE_149_C(NDNBOOST_PP_BOOL(p##(150, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_150(p, o, s) NDNBOOST_PP_WHILE_150_C(NDNBOOST_PP_BOOL(p##(151, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_151(p, o, s) NDNBOOST_PP_WHILE_151_C(NDNBOOST_PP_BOOL(p##(152, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_152(p, o, s) NDNBOOST_PP_WHILE_152_C(NDNBOOST_PP_BOOL(p##(153, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_153(p, o, s) NDNBOOST_PP_WHILE_153_C(NDNBOOST_PP_BOOL(p##(154, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_154(p, o, s) NDNBOOST_PP_WHILE_154_C(NDNBOOST_PP_BOOL(p##(155, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_155(p, o, s) NDNBOOST_PP_WHILE_155_C(NDNBOOST_PP_BOOL(p##(156, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_156(p, o, s) NDNBOOST_PP_WHILE_156_C(NDNBOOST_PP_BOOL(p##(157, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_157(p, o, s) NDNBOOST_PP_WHILE_157_C(NDNBOOST_PP_BOOL(p##(158, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_158(p, o, s) NDNBOOST_PP_WHILE_158_C(NDNBOOST_PP_BOOL(p##(159, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_159(p, o, s) NDNBOOST_PP_WHILE_159_C(NDNBOOST_PP_BOOL(p##(160, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_160(p, o, s) NDNBOOST_PP_WHILE_160_C(NDNBOOST_PP_BOOL(p##(161, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_161(p, o, s) NDNBOOST_PP_WHILE_161_C(NDNBOOST_PP_BOOL(p##(162, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_162(p, o, s) NDNBOOST_PP_WHILE_162_C(NDNBOOST_PP_BOOL(p##(163, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_163(p, o, s) NDNBOOST_PP_WHILE_163_C(NDNBOOST_PP_BOOL(p##(164, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_164(p, o, s) NDNBOOST_PP_WHILE_164_C(NDNBOOST_PP_BOOL(p##(165, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_165(p, o, s) NDNBOOST_PP_WHILE_165_C(NDNBOOST_PP_BOOL(p##(166, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_166(p, o, s) NDNBOOST_PP_WHILE_166_C(NDNBOOST_PP_BOOL(p##(167, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_167(p, o, s) NDNBOOST_PP_WHILE_167_C(NDNBOOST_PP_BOOL(p##(168, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_168(p, o, s) NDNBOOST_PP_WHILE_168_C(NDNBOOST_PP_BOOL(p##(169, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_169(p, o, s) NDNBOOST_PP_WHILE_169_C(NDNBOOST_PP_BOOL(p##(170, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_170(p, o, s) NDNBOOST_PP_WHILE_170_C(NDNBOOST_PP_BOOL(p##(171, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_171(p, o, s) NDNBOOST_PP_WHILE_171_C(NDNBOOST_PP_BOOL(p##(172, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_172(p, o, s) NDNBOOST_PP_WHILE_172_C(NDNBOOST_PP_BOOL(p##(173, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_173(p, o, s) NDNBOOST_PP_WHILE_173_C(NDNBOOST_PP_BOOL(p##(174, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_174(p, o, s) NDNBOOST_PP_WHILE_174_C(NDNBOOST_PP_BOOL(p##(175, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_175(p, o, s) NDNBOOST_PP_WHILE_175_C(NDNBOOST_PP_BOOL(p##(176, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_176(p, o, s) NDNBOOST_PP_WHILE_176_C(NDNBOOST_PP_BOOL(p##(177, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_177(p, o, s) NDNBOOST_PP_WHILE_177_C(NDNBOOST_PP_BOOL(p##(178, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_178(p, o, s) NDNBOOST_PP_WHILE_178_C(NDNBOOST_PP_BOOL(p##(179, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_179(p, o, s) NDNBOOST_PP_WHILE_179_C(NDNBOOST_PP_BOOL(p##(180, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_180(p, o, s) NDNBOOST_PP_WHILE_180_C(NDNBOOST_PP_BOOL(p##(181, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_181(p, o, s) NDNBOOST_PP_WHILE_181_C(NDNBOOST_PP_BOOL(p##(182, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_182(p, o, s) NDNBOOST_PP_WHILE_182_C(NDNBOOST_PP_BOOL(p##(183, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_183(p, o, s) NDNBOOST_PP_WHILE_183_C(NDNBOOST_PP_BOOL(p##(184, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_184(p, o, s) NDNBOOST_PP_WHILE_184_C(NDNBOOST_PP_BOOL(p##(185, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_185(p, o, s) NDNBOOST_PP_WHILE_185_C(NDNBOOST_PP_BOOL(p##(186, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_186(p, o, s) NDNBOOST_PP_WHILE_186_C(NDNBOOST_PP_BOOL(p##(187, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_187(p, o, s) NDNBOOST_PP_WHILE_187_C(NDNBOOST_PP_BOOL(p##(188, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_188(p, o, s) NDNBOOST_PP_WHILE_188_C(NDNBOOST_PP_BOOL(p##(189, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_189(p, o, s) NDNBOOST_PP_WHILE_189_C(NDNBOOST_PP_BOOL(p##(190, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_190(p, o, s) NDNBOOST_PP_WHILE_190_C(NDNBOOST_PP_BOOL(p##(191, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_191(p, o, s) NDNBOOST_PP_WHILE_191_C(NDNBOOST_PP_BOOL(p##(192, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_192(p, o, s) NDNBOOST_PP_WHILE_192_C(NDNBOOST_PP_BOOL(p##(193, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_193(p, o, s) NDNBOOST_PP_WHILE_193_C(NDNBOOST_PP_BOOL(p##(194, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_194(p, o, s) NDNBOOST_PP_WHILE_194_C(NDNBOOST_PP_BOOL(p##(195, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_195(p, o, s) NDNBOOST_PP_WHILE_195_C(NDNBOOST_PP_BOOL(p##(196, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_196(p, o, s) NDNBOOST_PP_WHILE_196_C(NDNBOOST_PP_BOOL(p##(197, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_197(p, o, s) NDNBOOST_PP_WHILE_197_C(NDNBOOST_PP_BOOL(p##(198, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_198(p, o, s) NDNBOOST_PP_WHILE_198_C(NDNBOOST_PP_BOOL(p##(199, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_199(p, o, s) NDNBOOST_PP_WHILE_199_C(NDNBOOST_PP_BOOL(p##(200, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_200(p, o, s) NDNBOOST_PP_WHILE_200_C(NDNBOOST_PP_BOOL(p##(201, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_201(p, o, s) NDNBOOST_PP_WHILE_201_C(NDNBOOST_PP_BOOL(p##(202, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_202(p, o, s) NDNBOOST_PP_WHILE_202_C(NDNBOOST_PP_BOOL(p##(203, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_203(p, o, s) NDNBOOST_PP_WHILE_203_C(NDNBOOST_PP_BOOL(p##(204, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_204(p, o, s) NDNBOOST_PP_WHILE_204_C(NDNBOOST_PP_BOOL(p##(205, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_205(p, o, s) NDNBOOST_PP_WHILE_205_C(NDNBOOST_PP_BOOL(p##(206, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_206(p, o, s) NDNBOOST_PP_WHILE_206_C(NDNBOOST_PP_BOOL(p##(207, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_207(p, o, s) NDNBOOST_PP_WHILE_207_C(NDNBOOST_PP_BOOL(p##(208, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_208(p, o, s) NDNBOOST_PP_WHILE_208_C(NDNBOOST_PP_BOOL(p##(209, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_209(p, o, s) NDNBOOST_PP_WHILE_209_C(NDNBOOST_PP_BOOL(p##(210, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_210(p, o, s) NDNBOOST_PP_WHILE_210_C(NDNBOOST_PP_BOOL(p##(211, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_211(p, o, s) NDNBOOST_PP_WHILE_211_C(NDNBOOST_PP_BOOL(p##(212, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_212(p, o, s) NDNBOOST_PP_WHILE_212_C(NDNBOOST_PP_BOOL(p##(213, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_213(p, o, s) NDNBOOST_PP_WHILE_213_C(NDNBOOST_PP_BOOL(p##(214, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_214(p, o, s) NDNBOOST_PP_WHILE_214_C(NDNBOOST_PP_BOOL(p##(215, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_215(p, o, s) NDNBOOST_PP_WHILE_215_C(NDNBOOST_PP_BOOL(p##(216, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_216(p, o, s) NDNBOOST_PP_WHILE_216_C(NDNBOOST_PP_BOOL(p##(217, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_217(p, o, s) NDNBOOST_PP_WHILE_217_C(NDNBOOST_PP_BOOL(p##(218, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_218(p, o, s) NDNBOOST_PP_WHILE_218_C(NDNBOOST_PP_BOOL(p##(219, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_219(p, o, s) NDNBOOST_PP_WHILE_219_C(NDNBOOST_PP_BOOL(p##(220, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_220(p, o, s) NDNBOOST_PP_WHILE_220_C(NDNBOOST_PP_BOOL(p##(221, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_221(p, o, s) NDNBOOST_PP_WHILE_221_C(NDNBOOST_PP_BOOL(p##(222, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_222(p, o, s) NDNBOOST_PP_WHILE_222_C(NDNBOOST_PP_BOOL(p##(223, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_223(p, o, s) NDNBOOST_PP_WHILE_223_C(NDNBOOST_PP_BOOL(p##(224, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_224(p, o, s) NDNBOOST_PP_WHILE_224_C(NDNBOOST_PP_BOOL(p##(225, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_225(p, o, s) NDNBOOST_PP_WHILE_225_C(NDNBOOST_PP_BOOL(p##(226, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_226(p, o, s) NDNBOOST_PP_WHILE_226_C(NDNBOOST_PP_BOOL(p##(227, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_227(p, o, s) NDNBOOST_PP_WHILE_227_C(NDNBOOST_PP_BOOL(p##(228, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_228(p, o, s) NDNBOOST_PP_WHILE_228_C(NDNBOOST_PP_BOOL(p##(229, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_229(p, o, s) NDNBOOST_PP_WHILE_229_C(NDNBOOST_PP_BOOL(p##(230, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_230(p, o, s) NDNBOOST_PP_WHILE_230_C(NDNBOOST_PP_BOOL(p##(231, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_231(p, o, s) NDNBOOST_PP_WHILE_231_C(NDNBOOST_PP_BOOL(p##(232, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_232(p, o, s) NDNBOOST_PP_WHILE_232_C(NDNBOOST_PP_BOOL(p##(233, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_233(p, o, s) NDNBOOST_PP_WHILE_233_C(NDNBOOST_PP_BOOL(p##(234, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_234(p, o, s) NDNBOOST_PP_WHILE_234_C(NDNBOOST_PP_BOOL(p##(235, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_235(p, o, s) NDNBOOST_PP_WHILE_235_C(NDNBOOST_PP_BOOL(p##(236, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_236(p, o, s) NDNBOOST_PP_WHILE_236_C(NDNBOOST_PP_BOOL(p##(237, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_237(p, o, s) NDNBOOST_PP_WHILE_237_C(NDNBOOST_PP_BOOL(p##(238, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_238(p, o, s) NDNBOOST_PP_WHILE_238_C(NDNBOOST_PP_BOOL(p##(239, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_239(p, o, s) NDNBOOST_PP_WHILE_239_C(NDNBOOST_PP_BOOL(p##(240, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_240(p, o, s) NDNBOOST_PP_WHILE_240_C(NDNBOOST_PP_BOOL(p##(241, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_241(p, o, s) NDNBOOST_PP_WHILE_241_C(NDNBOOST_PP_BOOL(p##(242, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_242(p, o, s) NDNBOOST_PP_WHILE_242_C(NDNBOOST_PP_BOOL(p##(243, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_243(p, o, s) NDNBOOST_PP_WHILE_243_C(NDNBOOST_PP_BOOL(p##(244, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_244(p, o, s) NDNBOOST_PP_WHILE_244_C(NDNBOOST_PP_BOOL(p##(245, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_245(p, o, s) NDNBOOST_PP_WHILE_245_C(NDNBOOST_PP_BOOL(p##(246, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_246(p, o, s) NDNBOOST_PP_WHILE_246_C(NDNBOOST_PP_BOOL(p##(247, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_247(p, o, s) NDNBOOST_PP_WHILE_247_C(NDNBOOST_PP_BOOL(p##(248, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_248(p, o, s) NDNBOOST_PP_WHILE_248_C(NDNBOOST_PP_BOOL(p##(249, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_249(p, o, s) NDNBOOST_PP_WHILE_249_C(NDNBOOST_PP_BOOL(p##(250, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_250(p, o, s) NDNBOOST_PP_WHILE_250_C(NDNBOOST_PP_BOOL(p##(251, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_251(p, o, s) NDNBOOST_PP_WHILE_251_C(NDNBOOST_PP_BOOL(p##(252, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_252(p, o, s) NDNBOOST_PP_WHILE_252_C(NDNBOOST_PP_BOOL(p##(253, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_253(p, o, s) NDNBOOST_PP_WHILE_253_C(NDNBOOST_PP_BOOL(p##(254, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_254(p, o, s) NDNBOOST_PP_WHILE_254_C(NDNBOOST_PP_BOOL(p##(255, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_255(p, o, s) NDNBOOST_PP_WHILE_255_C(NDNBOOST_PP_BOOL(p##(256, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_256(p, o, s) NDNBOOST_PP_WHILE_256_C(NDNBOOST_PP_BOOL(p##(257, s)), p, o, s)
 #
-# define BOOST_PP_WHILE_1_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_2, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(2, s))
-# define BOOST_PP_WHILE_2_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_3, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(3, s))
-# define BOOST_PP_WHILE_3_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_4, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(4, s))
-# define BOOST_PP_WHILE_4_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_5, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(5, s))
-# define BOOST_PP_WHILE_5_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_6, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(6, s))
-# define BOOST_PP_WHILE_6_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_7, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(7, s))
-# define BOOST_PP_WHILE_7_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_8, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(8, s))
-# define BOOST_PP_WHILE_8_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_9, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(9, s))
-# define BOOST_PP_WHILE_9_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_10, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(10, s))
-# define BOOST_PP_WHILE_10_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_11, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(11, s))
-# define BOOST_PP_WHILE_11_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_12, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(12, s))
-# define BOOST_PP_WHILE_12_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_13, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(13, s))
-# define BOOST_PP_WHILE_13_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_14, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(14, s))
-# define BOOST_PP_WHILE_14_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_15, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(15, s))
-# define BOOST_PP_WHILE_15_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_16, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(16, s))
-# define BOOST_PP_WHILE_16_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_17, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(17, s))
-# define BOOST_PP_WHILE_17_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_18, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(18, s))
-# define BOOST_PP_WHILE_18_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_19, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(19, s))
-# define BOOST_PP_WHILE_19_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_20, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(20, s))
-# define BOOST_PP_WHILE_20_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_21, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(21, s))
-# define BOOST_PP_WHILE_21_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_22, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(22, s))
-# define BOOST_PP_WHILE_22_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_23, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(23, s))
-# define BOOST_PP_WHILE_23_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_24, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(24, s))
-# define BOOST_PP_WHILE_24_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_25, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(25, s))
-# define BOOST_PP_WHILE_25_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_26, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(26, s))
-# define BOOST_PP_WHILE_26_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_27, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(27, s))
-# define BOOST_PP_WHILE_27_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_28, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(28, s))
-# define BOOST_PP_WHILE_28_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_29, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(29, s))
-# define BOOST_PP_WHILE_29_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_30, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(30, s))
-# define BOOST_PP_WHILE_30_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_31, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(31, s))
-# define BOOST_PP_WHILE_31_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_32, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(32, s))
-# define BOOST_PP_WHILE_32_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_33, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(33, s))
-# define BOOST_PP_WHILE_33_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_34, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(34, s))
-# define BOOST_PP_WHILE_34_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_35, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(35, s))
-# define BOOST_PP_WHILE_35_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_36, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(36, s))
-# define BOOST_PP_WHILE_36_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_37, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(37, s))
-# define BOOST_PP_WHILE_37_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_38, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(38, s))
-# define BOOST_PP_WHILE_38_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_39, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(39, s))
-# define BOOST_PP_WHILE_39_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_40, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(40, s))
-# define BOOST_PP_WHILE_40_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_41, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(41, s))
-# define BOOST_PP_WHILE_41_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_42, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(42, s))
-# define BOOST_PP_WHILE_42_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_43, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(43, s))
-# define BOOST_PP_WHILE_43_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_44, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(44, s))
-# define BOOST_PP_WHILE_44_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_45, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(45, s))
-# define BOOST_PP_WHILE_45_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_46, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(46, s))
-# define BOOST_PP_WHILE_46_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_47, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(47, s))
-# define BOOST_PP_WHILE_47_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_48, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(48, s))
-# define BOOST_PP_WHILE_48_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_49, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(49, s))
-# define BOOST_PP_WHILE_49_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_50, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(50, s))
-# define BOOST_PP_WHILE_50_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_51, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(51, s))
-# define BOOST_PP_WHILE_51_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_52, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(52, s))
-# define BOOST_PP_WHILE_52_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_53, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(53, s))
-# define BOOST_PP_WHILE_53_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_54, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(54, s))
-# define BOOST_PP_WHILE_54_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_55, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(55, s))
-# define BOOST_PP_WHILE_55_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_56, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(56, s))
-# define BOOST_PP_WHILE_56_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_57, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(57, s))
-# define BOOST_PP_WHILE_57_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_58, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(58, s))
-# define BOOST_PP_WHILE_58_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_59, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(59, s))
-# define BOOST_PP_WHILE_59_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_60, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(60, s))
-# define BOOST_PP_WHILE_60_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_61, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(61, s))
-# define BOOST_PP_WHILE_61_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_62, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(62, s))
-# define BOOST_PP_WHILE_62_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_63, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(63, s))
-# define BOOST_PP_WHILE_63_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_64, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(64, s))
-# define BOOST_PP_WHILE_64_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_65, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(65, s))
-# define BOOST_PP_WHILE_65_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_66, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(66, s))
-# define BOOST_PP_WHILE_66_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_67, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(67, s))
-# define BOOST_PP_WHILE_67_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_68, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(68, s))
-# define BOOST_PP_WHILE_68_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_69, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(69, s))
-# define BOOST_PP_WHILE_69_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_70, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(70, s))
-# define BOOST_PP_WHILE_70_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_71, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(71, s))
-# define BOOST_PP_WHILE_71_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_72, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(72, s))
-# define BOOST_PP_WHILE_72_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_73, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(73, s))
-# define BOOST_PP_WHILE_73_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_74, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(74, s))
-# define BOOST_PP_WHILE_74_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_75, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(75, s))
-# define BOOST_PP_WHILE_75_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_76, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(76, s))
-# define BOOST_PP_WHILE_76_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_77, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(77, s))
-# define BOOST_PP_WHILE_77_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_78, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(78, s))
-# define BOOST_PP_WHILE_78_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_79, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(79, s))
-# define BOOST_PP_WHILE_79_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_80, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(80, s))
-# define BOOST_PP_WHILE_80_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_81, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(81, s))
-# define BOOST_PP_WHILE_81_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_82, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(82, s))
-# define BOOST_PP_WHILE_82_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_83, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(83, s))
-# define BOOST_PP_WHILE_83_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_84, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(84, s))
-# define BOOST_PP_WHILE_84_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_85, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(85, s))
-# define BOOST_PP_WHILE_85_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_86, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(86, s))
-# define BOOST_PP_WHILE_86_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_87, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(87, s))
-# define BOOST_PP_WHILE_87_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_88, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(88, s))
-# define BOOST_PP_WHILE_88_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_89, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(89, s))
-# define BOOST_PP_WHILE_89_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_90, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(90, s))
-# define BOOST_PP_WHILE_90_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_91, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(91, s))
-# define BOOST_PP_WHILE_91_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_92, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(92, s))
-# define BOOST_PP_WHILE_92_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_93, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(93, s))
-# define BOOST_PP_WHILE_93_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_94, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(94, s))
-# define BOOST_PP_WHILE_94_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_95, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(95, s))
-# define BOOST_PP_WHILE_95_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_96, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(96, s))
-# define BOOST_PP_WHILE_96_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_97, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(97, s))
-# define BOOST_PP_WHILE_97_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_98, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(98, s))
-# define BOOST_PP_WHILE_98_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_99, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(99, s))
-# define BOOST_PP_WHILE_99_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_100, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(100, s))
-# define BOOST_PP_WHILE_100_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_101, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(101, s))
-# define BOOST_PP_WHILE_101_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_102, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(102, s))
-# define BOOST_PP_WHILE_102_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_103, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(103, s))
-# define BOOST_PP_WHILE_103_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_104, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(104, s))
-# define BOOST_PP_WHILE_104_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_105, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(105, s))
-# define BOOST_PP_WHILE_105_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_106, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(106, s))
-# define BOOST_PP_WHILE_106_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_107, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(107, s))
-# define BOOST_PP_WHILE_107_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_108, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(108, s))
-# define BOOST_PP_WHILE_108_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_109, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(109, s))
-# define BOOST_PP_WHILE_109_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_110, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(110, s))
-# define BOOST_PP_WHILE_110_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_111, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(111, s))
-# define BOOST_PP_WHILE_111_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_112, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(112, s))
-# define BOOST_PP_WHILE_112_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_113, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(113, s))
-# define BOOST_PP_WHILE_113_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_114, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(114, s))
-# define BOOST_PP_WHILE_114_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_115, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(115, s))
-# define BOOST_PP_WHILE_115_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_116, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(116, s))
-# define BOOST_PP_WHILE_116_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_117, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(117, s))
-# define BOOST_PP_WHILE_117_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_118, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(118, s))
-# define BOOST_PP_WHILE_118_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_119, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(119, s))
-# define BOOST_PP_WHILE_119_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_120, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(120, s))
-# define BOOST_PP_WHILE_120_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_121, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(121, s))
-# define BOOST_PP_WHILE_121_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_122, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(122, s))
-# define BOOST_PP_WHILE_122_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_123, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(123, s))
-# define BOOST_PP_WHILE_123_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_124, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(124, s))
-# define BOOST_PP_WHILE_124_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_125, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(125, s))
-# define BOOST_PP_WHILE_125_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_126, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(126, s))
-# define BOOST_PP_WHILE_126_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_127, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(127, s))
-# define BOOST_PP_WHILE_127_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_128, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(128, s))
-# define BOOST_PP_WHILE_128_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_129, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(129, s))
-# define BOOST_PP_WHILE_129_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_130, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(130, s))
-# define BOOST_PP_WHILE_130_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_131, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(131, s))
-# define BOOST_PP_WHILE_131_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_132, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(132, s))
-# define BOOST_PP_WHILE_132_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_133, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(133, s))
-# define BOOST_PP_WHILE_133_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_134, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(134, s))
-# define BOOST_PP_WHILE_134_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_135, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(135, s))
-# define BOOST_PP_WHILE_135_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_136, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(136, s))
-# define BOOST_PP_WHILE_136_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_137, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(137, s))
-# define BOOST_PP_WHILE_137_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_138, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(138, s))
-# define BOOST_PP_WHILE_138_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_139, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(139, s))
-# define BOOST_PP_WHILE_139_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_140, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(140, s))
-# define BOOST_PP_WHILE_140_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_141, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(141, s))
-# define BOOST_PP_WHILE_141_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_142, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(142, s))
-# define BOOST_PP_WHILE_142_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_143, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(143, s))
-# define BOOST_PP_WHILE_143_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_144, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(144, s))
-# define BOOST_PP_WHILE_144_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_145, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(145, s))
-# define BOOST_PP_WHILE_145_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_146, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(146, s))
-# define BOOST_PP_WHILE_146_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_147, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(147, s))
-# define BOOST_PP_WHILE_147_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_148, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(148, s))
-# define BOOST_PP_WHILE_148_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_149, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(149, s))
-# define BOOST_PP_WHILE_149_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_150, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(150, s))
-# define BOOST_PP_WHILE_150_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_151, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(151, s))
-# define BOOST_PP_WHILE_151_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_152, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(152, s))
-# define BOOST_PP_WHILE_152_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_153, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(153, s))
-# define BOOST_PP_WHILE_153_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_154, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(154, s))
-# define BOOST_PP_WHILE_154_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_155, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(155, s))
-# define BOOST_PP_WHILE_155_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_156, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(156, s))
-# define BOOST_PP_WHILE_156_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_157, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(157, s))
-# define BOOST_PP_WHILE_157_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_158, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(158, s))
-# define BOOST_PP_WHILE_158_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_159, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(159, s))
-# define BOOST_PP_WHILE_159_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_160, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(160, s))
-# define BOOST_PP_WHILE_160_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_161, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(161, s))
-# define BOOST_PP_WHILE_161_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_162, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(162, s))
-# define BOOST_PP_WHILE_162_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_163, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(163, s))
-# define BOOST_PP_WHILE_163_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_164, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(164, s))
-# define BOOST_PP_WHILE_164_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_165, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(165, s))
-# define BOOST_PP_WHILE_165_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_166, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(166, s))
-# define BOOST_PP_WHILE_166_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_167, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(167, s))
-# define BOOST_PP_WHILE_167_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_168, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(168, s))
-# define BOOST_PP_WHILE_168_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_169, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(169, s))
-# define BOOST_PP_WHILE_169_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_170, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(170, s))
-# define BOOST_PP_WHILE_170_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_171, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(171, s))
-# define BOOST_PP_WHILE_171_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_172, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(172, s))
-# define BOOST_PP_WHILE_172_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_173, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(173, s))
-# define BOOST_PP_WHILE_173_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_174, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(174, s))
-# define BOOST_PP_WHILE_174_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_175, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(175, s))
-# define BOOST_PP_WHILE_175_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_176, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(176, s))
-# define BOOST_PP_WHILE_176_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_177, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(177, s))
-# define BOOST_PP_WHILE_177_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_178, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(178, s))
-# define BOOST_PP_WHILE_178_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_179, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(179, s))
-# define BOOST_PP_WHILE_179_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_180, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(180, s))
-# define BOOST_PP_WHILE_180_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_181, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(181, s))
-# define BOOST_PP_WHILE_181_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_182, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(182, s))
-# define BOOST_PP_WHILE_182_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_183, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(183, s))
-# define BOOST_PP_WHILE_183_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_184, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(184, s))
-# define BOOST_PP_WHILE_184_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_185, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(185, s))
-# define BOOST_PP_WHILE_185_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_186, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(186, s))
-# define BOOST_PP_WHILE_186_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_187, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(187, s))
-# define BOOST_PP_WHILE_187_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_188, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(188, s))
-# define BOOST_PP_WHILE_188_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_189, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(189, s))
-# define BOOST_PP_WHILE_189_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_190, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(190, s))
-# define BOOST_PP_WHILE_190_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_191, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(191, s))
-# define BOOST_PP_WHILE_191_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_192, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(192, s))
-# define BOOST_PP_WHILE_192_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_193, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(193, s))
-# define BOOST_PP_WHILE_193_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_194, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(194, s))
-# define BOOST_PP_WHILE_194_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_195, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(195, s))
-# define BOOST_PP_WHILE_195_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_196, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(196, s))
-# define BOOST_PP_WHILE_196_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_197, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(197, s))
-# define BOOST_PP_WHILE_197_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_198, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(198, s))
-# define BOOST_PP_WHILE_198_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_199, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(199, s))
-# define BOOST_PP_WHILE_199_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_200, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(200, s))
-# define BOOST_PP_WHILE_200_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_201, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(201, s))
-# define BOOST_PP_WHILE_201_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_202, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(202, s))
-# define BOOST_PP_WHILE_202_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_203, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(203, s))
-# define BOOST_PP_WHILE_203_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_204, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(204, s))
-# define BOOST_PP_WHILE_204_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_205, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(205, s))
-# define BOOST_PP_WHILE_205_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_206, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(206, s))
-# define BOOST_PP_WHILE_206_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_207, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(207, s))
-# define BOOST_PP_WHILE_207_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_208, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(208, s))
-# define BOOST_PP_WHILE_208_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_209, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(209, s))
-# define BOOST_PP_WHILE_209_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_210, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(210, s))
-# define BOOST_PP_WHILE_210_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_211, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(211, s))
-# define BOOST_PP_WHILE_211_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_212, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(212, s))
-# define BOOST_PP_WHILE_212_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_213, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(213, s))
-# define BOOST_PP_WHILE_213_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_214, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(214, s))
-# define BOOST_PP_WHILE_214_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_215, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(215, s))
-# define BOOST_PP_WHILE_215_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_216, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(216, s))
-# define BOOST_PP_WHILE_216_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_217, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(217, s))
-# define BOOST_PP_WHILE_217_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_218, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(218, s))
-# define BOOST_PP_WHILE_218_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_219, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(219, s))
-# define BOOST_PP_WHILE_219_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_220, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(220, s))
-# define BOOST_PP_WHILE_220_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_221, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(221, s))
-# define BOOST_PP_WHILE_221_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_222, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(222, s))
-# define BOOST_PP_WHILE_222_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_223, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(223, s))
-# define BOOST_PP_WHILE_223_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_224, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(224, s))
-# define BOOST_PP_WHILE_224_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_225, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(225, s))
-# define BOOST_PP_WHILE_225_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_226, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(226, s))
-# define BOOST_PP_WHILE_226_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_227, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(227, s))
-# define BOOST_PP_WHILE_227_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_228, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(228, s))
-# define BOOST_PP_WHILE_228_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_229, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(229, s))
-# define BOOST_PP_WHILE_229_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_230, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(230, s))
-# define BOOST_PP_WHILE_230_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_231, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(231, s))
-# define BOOST_PP_WHILE_231_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_232, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(232, s))
-# define BOOST_PP_WHILE_232_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_233, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(233, s))
-# define BOOST_PP_WHILE_233_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_234, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(234, s))
-# define BOOST_PP_WHILE_234_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_235, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(235, s))
-# define BOOST_PP_WHILE_235_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_236, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(236, s))
-# define BOOST_PP_WHILE_236_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_237, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(237, s))
-# define BOOST_PP_WHILE_237_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_238, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(238, s))
-# define BOOST_PP_WHILE_238_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_239, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(239, s))
-# define BOOST_PP_WHILE_239_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_240, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(240, s))
-# define BOOST_PP_WHILE_240_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_241, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(241, s))
-# define BOOST_PP_WHILE_241_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_242, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(242, s))
-# define BOOST_PP_WHILE_242_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_243, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(243, s))
-# define BOOST_PP_WHILE_243_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_244, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(244, s))
-# define BOOST_PP_WHILE_244_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_245, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(245, s))
-# define BOOST_PP_WHILE_245_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_246, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(246, s))
-# define BOOST_PP_WHILE_246_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_247, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(247, s))
-# define BOOST_PP_WHILE_247_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_248, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(248, s))
-# define BOOST_PP_WHILE_248_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_249, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(249, s))
-# define BOOST_PP_WHILE_249_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_250, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(250, s))
-# define BOOST_PP_WHILE_250_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_251, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(251, s))
-# define BOOST_PP_WHILE_251_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_252, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(252, s))
-# define BOOST_PP_WHILE_252_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_253, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(253, s))
-# define BOOST_PP_WHILE_253_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_254, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(254, s))
-# define BOOST_PP_WHILE_254_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_255, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(255, s))
-# define BOOST_PP_WHILE_255_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_256, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(256, s))
-# define BOOST_PP_WHILE_256_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_257, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(257, s))
+# define NDNBOOST_PP_WHILE_1_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_2, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(2, s))
+# define NDNBOOST_PP_WHILE_2_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_3, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(3, s))
+# define NDNBOOST_PP_WHILE_3_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_4, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(4, s))
+# define NDNBOOST_PP_WHILE_4_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_5, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(5, s))
+# define NDNBOOST_PP_WHILE_5_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_6, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(6, s))
+# define NDNBOOST_PP_WHILE_6_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_7, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(7, s))
+# define NDNBOOST_PP_WHILE_7_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_8, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(8, s))
+# define NDNBOOST_PP_WHILE_8_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_9, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(9, s))
+# define NDNBOOST_PP_WHILE_9_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_10, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(10, s))
+# define NDNBOOST_PP_WHILE_10_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_11, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(11, s))
+# define NDNBOOST_PP_WHILE_11_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_12, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(12, s))
+# define NDNBOOST_PP_WHILE_12_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_13, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(13, s))
+# define NDNBOOST_PP_WHILE_13_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_14, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(14, s))
+# define NDNBOOST_PP_WHILE_14_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_15, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(15, s))
+# define NDNBOOST_PP_WHILE_15_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_16, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(16, s))
+# define NDNBOOST_PP_WHILE_16_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_17, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(17, s))
+# define NDNBOOST_PP_WHILE_17_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_18, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(18, s))
+# define NDNBOOST_PP_WHILE_18_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_19, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(19, s))
+# define NDNBOOST_PP_WHILE_19_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_20, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(20, s))
+# define NDNBOOST_PP_WHILE_20_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_21, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(21, s))
+# define NDNBOOST_PP_WHILE_21_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_22, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(22, s))
+# define NDNBOOST_PP_WHILE_22_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_23, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(23, s))
+# define NDNBOOST_PP_WHILE_23_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_24, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(24, s))
+# define NDNBOOST_PP_WHILE_24_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_25, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(25, s))
+# define NDNBOOST_PP_WHILE_25_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_26, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(26, s))
+# define NDNBOOST_PP_WHILE_26_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_27, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(27, s))
+# define NDNBOOST_PP_WHILE_27_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_28, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(28, s))
+# define NDNBOOST_PP_WHILE_28_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_29, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(29, s))
+# define NDNBOOST_PP_WHILE_29_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_30, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(30, s))
+# define NDNBOOST_PP_WHILE_30_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_31, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(31, s))
+# define NDNBOOST_PP_WHILE_31_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_32, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(32, s))
+# define NDNBOOST_PP_WHILE_32_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_33, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(33, s))
+# define NDNBOOST_PP_WHILE_33_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_34, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(34, s))
+# define NDNBOOST_PP_WHILE_34_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_35, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(35, s))
+# define NDNBOOST_PP_WHILE_35_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_36, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(36, s))
+# define NDNBOOST_PP_WHILE_36_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_37, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(37, s))
+# define NDNBOOST_PP_WHILE_37_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_38, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(38, s))
+# define NDNBOOST_PP_WHILE_38_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_39, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(39, s))
+# define NDNBOOST_PP_WHILE_39_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_40, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(40, s))
+# define NDNBOOST_PP_WHILE_40_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_41, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(41, s))
+# define NDNBOOST_PP_WHILE_41_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_42, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(42, s))
+# define NDNBOOST_PP_WHILE_42_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_43, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(43, s))
+# define NDNBOOST_PP_WHILE_43_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_44, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(44, s))
+# define NDNBOOST_PP_WHILE_44_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_45, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(45, s))
+# define NDNBOOST_PP_WHILE_45_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_46, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(46, s))
+# define NDNBOOST_PP_WHILE_46_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_47, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(47, s))
+# define NDNBOOST_PP_WHILE_47_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_48, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(48, s))
+# define NDNBOOST_PP_WHILE_48_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_49, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(49, s))
+# define NDNBOOST_PP_WHILE_49_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_50, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(50, s))
+# define NDNBOOST_PP_WHILE_50_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_51, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(51, s))
+# define NDNBOOST_PP_WHILE_51_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_52, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(52, s))
+# define NDNBOOST_PP_WHILE_52_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_53, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(53, s))
+# define NDNBOOST_PP_WHILE_53_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_54, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(54, s))
+# define NDNBOOST_PP_WHILE_54_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_55, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(55, s))
+# define NDNBOOST_PP_WHILE_55_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_56, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(56, s))
+# define NDNBOOST_PP_WHILE_56_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_57, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(57, s))
+# define NDNBOOST_PP_WHILE_57_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_58, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(58, s))
+# define NDNBOOST_PP_WHILE_58_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_59, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(59, s))
+# define NDNBOOST_PP_WHILE_59_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_60, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(60, s))
+# define NDNBOOST_PP_WHILE_60_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_61, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(61, s))
+# define NDNBOOST_PP_WHILE_61_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_62, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(62, s))
+# define NDNBOOST_PP_WHILE_62_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_63, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(63, s))
+# define NDNBOOST_PP_WHILE_63_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_64, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(64, s))
+# define NDNBOOST_PP_WHILE_64_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_65, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(65, s))
+# define NDNBOOST_PP_WHILE_65_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_66, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(66, s))
+# define NDNBOOST_PP_WHILE_66_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_67, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(67, s))
+# define NDNBOOST_PP_WHILE_67_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_68, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(68, s))
+# define NDNBOOST_PP_WHILE_68_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_69, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(69, s))
+# define NDNBOOST_PP_WHILE_69_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_70, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(70, s))
+# define NDNBOOST_PP_WHILE_70_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_71, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(71, s))
+# define NDNBOOST_PP_WHILE_71_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_72, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(72, s))
+# define NDNBOOST_PP_WHILE_72_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_73, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(73, s))
+# define NDNBOOST_PP_WHILE_73_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_74, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(74, s))
+# define NDNBOOST_PP_WHILE_74_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_75, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(75, s))
+# define NDNBOOST_PP_WHILE_75_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_76, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(76, s))
+# define NDNBOOST_PP_WHILE_76_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_77, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(77, s))
+# define NDNBOOST_PP_WHILE_77_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_78, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(78, s))
+# define NDNBOOST_PP_WHILE_78_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_79, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(79, s))
+# define NDNBOOST_PP_WHILE_79_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_80, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(80, s))
+# define NDNBOOST_PP_WHILE_80_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_81, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(81, s))
+# define NDNBOOST_PP_WHILE_81_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_82, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(82, s))
+# define NDNBOOST_PP_WHILE_82_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_83, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(83, s))
+# define NDNBOOST_PP_WHILE_83_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_84, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(84, s))
+# define NDNBOOST_PP_WHILE_84_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_85, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(85, s))
+# define NDNBOOST_PP_WHILE_85_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_86, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(86, s))
+# define NDNBOOST_PP_WHILE_86_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_87, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(87, s))
+# define NDNBOOST_PP_WHILE_87_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_88, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(88, s))
+# define NDNBOOST_PP_WHILE_88_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_89, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(89, s))
+# define NDNBOOST_PP_WHILE_89_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_90, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(90, s))
+# define NDNBOOST_PP_WHILE_90_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_91, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(91, s))
+# define NDNBOOST_PP_WHILE_91_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_92, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(92, s))
+# define NDNBOOST_PP_WHILE_92_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_93, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(93, s))
+# define NDNBOOST_PP_WHILE_93_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_94, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(94, s))
+# define NDNBOOST_PP_WHILE_94_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_95, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(95, s))
+# define NDNBOOST_PP_WHILE_95_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_96, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(96, s))
+# define NDNBOOST_PP_WHILE_96_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_97, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(97, s))
+# define NDNBOOST_PP_WHILE_97_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_98, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(98, s))
+# define NDNBOOST_PP_WHILE_98_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_99, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(99, s))
+# define NDNBOOST_PP_WHILE_99_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_100, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(100, s))
+# define NDNBOOST_PP_WHILE_100_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_101, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(101, s))
+# define NDNBOOST_PP_WHILE_101_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_102, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(102, s))
+# define NDNBOOST_PP_WHILE_102_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_103, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(103, s))
+# define NDNBOOST_PP_WHILE_103_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_104, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(104, s))
+# define NDNBOOST_PP_WHILE_104_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_105, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(105, s))
+# define NDNBOOST_PP_WHILE_105_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_106, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(106, s))
+# define NDNBOOST_PP_WHILE_106_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_107, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(107, s))
+# define NDNBOOST_PP_WHILE_107_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_108, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(108, s))
+# define NDNBOOST_PP_WHILE_108_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_109, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(109, s))
+# define NDNBOOST_PP_WHILE_109_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_110, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(110, s))
+# define NDNBOOST_PP_WHILE_110_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_111, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(111, s))
+# define NDNBOOST_PP_WHILE_111_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_112, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(112, s))
+# define NDNBOOST_PP_WHILE_112_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_113, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(113, s))
+# define NDNBOOST_PP_WHILE_113_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_114, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(114, s))
+# define NDNBOOST_PP_WHILE_114_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_115, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(115, s))
+# define NDNBOOST_PP_WHILE_115_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_116, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(116, s))
+# define NDNBOOST_PP_WHILE_116_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_117, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(117, s))
+# define NDNBOOST_PP_WHILE_117_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_118, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(118, s))
+# define NDNBOOST_PP_WHILE_118_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_119, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(119, s))
+# define NDNBOOST_PP_WHILE_119_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_120, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(120, s))
+# define NDNBOOST_PP_WHILE_120_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_121, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(121, s))
+# define NDNBOOST_PP_WHILE_121_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_122, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(122, s))
+# define NDNBOOST_PP_WHILE_122_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_123, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(123, s))
+# define NDNBOOST_PP_WHILE_123_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_124, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(124, s))
+# define NDNBOOST_PP_WHILE_124_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_125, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(125, s))
+# define NDNBOOST_PP_WHILE_125_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_126, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(126, s))
+# define NDNBOOST_PP_WHILE_126_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_127, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(127, s))
+# define NDNBOOST_PP_WHILE_127_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_128, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(128, s))
+# define NDNBOOST_PP_WHILE_128_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_129, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(129, s))
+# define NDNBOOST_PP_WHILE_129_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_130, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(130, s))
+# define NDNBOOST_PP_WHILE_130_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_131, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(131, s))
+# define NDNBOOST_PP_WHILE_131_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_132, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(132, s))
+# define NDNBOOST_PP_WHILE_132_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_133, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(133, s))
+# define NDNBOOST_PP_WHILE_133_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_134, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(134, s))
+# define NDNBOOST_PP_WHILE_134_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_135, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(135, s))
+# define NDNBOOST_PP_WHILE_135_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_136, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(136, s))
+# define NDNBOOST_PP_WHILE_136_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_137, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(137, s))
+# define NDNBOOST_PP_WHILE_137_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_138, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(138, s))
+# define NDNBOOST_PP_WHILE_138_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_139, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(139, s))
+# define NDNBOOST_PP_WHILE_139_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_140, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(140, s))
+# define NDNBOOST_PP_WHILE_140_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_141, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(141, s))
+# define NDNBOOST_PP_WHILE_141_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_142, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(142, s))
+# define NDNBOOST_PP_WHILE_142_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_143, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(143, s))
+# define NDNBOOST_PP_WHILE_143_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_144, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(144, s))
+# define NDNBOOST_PP_WHILE_144_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_145, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(145, s))
+# define NDNBOOST_PP_WHILE_145_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_146, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(146, s))
+# define NDNBOOST_PP_WHILE_146_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_147, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(147, s))
+# define NDNBOOST_PP_WHILE_147_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_148, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(148, s))
+# define NDNBOOST_PP_WHILE_148_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_149, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(149, s))
+# define NDNBOOST_PP_WHILE_149_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_150, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(150, s))
+# define NDNBOOST_PP_WHILE_150_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_151, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(151, s))
+# define NDNBOOST_PP_WHILE_151_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_152, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(152, s))
+# define NDNBOOST_PP_WHILE_152_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_153, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(153, s))
+# define NDNBOOST_PP_WHILE_153_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_154, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(154, s))
+# define NDNBOOST_PP_WHILE_154_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_155, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(155, s))
+# define NDNBOOST_PP_WHILE_155_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_156, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(156, s))
+# define NDNBOOST_PP_WHILE_156_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_157, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(157, s))
+# define NDNBOOST_PP_WHILE_157_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_158, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(158, s))
+# define NDNBOOST_PP_WHILE_158_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_159, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(159, s))
+# define NDNBOOST_PP_WHILE_159_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_160, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(160, s))
+# define NDNBOOST_PP_WHILE_160_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_161, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(161, s))
+# define NDNBOOST_PP_WHILE_161_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_162, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(162, s))
+# define NDNBOOST_PP_WHILE_162_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_163, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(163, s))
+# define NDNBOOST_PP_WHILE_163_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_164, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(164, s))
+# define NDNBOOST_PP_WHILE_164_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_165, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(165, s))
+# define NDNBOOST_PP_WHILE_165_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_166, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(166, s))
+# define NDNBOOST_PP_WHILE_166_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_167, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(167, s))
+# define NDNBOOST_PP_WHILE_167_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_168, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(168, s))
+# define NDNBOOST_PP_WHILE_168_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_169, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(169, s))
+# define NDNBOOST_PP_WHILE_169_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_170, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(170, s))
+# define NDNBOOST_PP_WHILE_170_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_171, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(171, s))
+# define NDNBOOST_PP_WHILE_171_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_172, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(172, s))
+# define NDNBOOST_PP_WHILE_172_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_173, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(173, s))
+# define NDNBOOST_PP_WHILE_173_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_174, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(174, s))
+# define NDNBOOST_PP_WHILE_174_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_175, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(175, s))
+# define NDNBOOST_PP_WHILE_175_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_176, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(176, s))
+# define NDNBOOST_PP_WHILE_176_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_177, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(177, s))
+# define NDNBOOST_PP_WHILE_177_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_178, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(178, s))
+# define NDNBOOST_PP_WHILE_178_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_179, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(179, s))
+# define NDNBOOST_PP_WHILE_179_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_180, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(180, s))
+# define NDNBOOST_PP_WHILE_180_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_181, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(181, s))
+# define NDNBOOST_PP_WHILE_181_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_182, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(182, s))
+# define NDNBOOST_PP_WHILE_182_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_183, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(183, s))
+# define NDNBOOST_PP_WHILE_183_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_184, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(184, s))
+# define NDNBOOST_PP_WHILE_184_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_185, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(185, s))
+# define NDNBOOST_PP_WHILE_185_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_186, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(186, s))
+# define NDNBOOST_PP_WHILE_186_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_187, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(187, s))
+# define NDNBOOST_PP_WHILE_187_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_188, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(188, s))
+# define NDNBOOST_PP_WHILE_188_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_189, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(189, s))
+# define NDNBOOST_PP_WHILE_189_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_190, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(190, s))
+# define NDNBOOST_PP_WHILE_190_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_191, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(191, s))
+# define NDNBOOST_PP_WHILE_191_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_192, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(192, s))
+# define NDNBOOST_PP_WHILE_192_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_193, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(193, s))
+# define NDNBOOST_PP_WHILE_193_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_194, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(194, s))
+# define NDNBOOST_PP_WHILE_194_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_195, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(195, s))
+# define NDNBOOST_PP_WHILE_195_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_196, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(196, s))
+# define NDNBOOST_PP_WHILE_196_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_197, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(197, s))
+# define NDNBOOST_PP_WHILE_197_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_198, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(198, s))
+# define NDNBOOST_PP_WHILE_198_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_199, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(199, s))
+# define NDNBOOST_PP_WHILE_199_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_200, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(200, s))
+# define NDNBOOST_PP_WHILE_200_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_201, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(201, s))
+# define NDNBOOST_PP_WHILE_201_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_202, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(202, s))
+# define NDNBOOST_PP_WHILE_202_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_203, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(203, s))
+# define NDNBOOST_PP_WHILE_203_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_204, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(204, s))
+# define NDNBOOST_PP_WHILE_204_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_205, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(205, s))
+# define NDNBOOST_PP_WHILE_205_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_206, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(206, s))
+# define NDNBOOST_PP_WHILE_206_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_207, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(207, s))
+# define NDNBOOST_PP_WHILE_207_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_208, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(208, s))
+# define NDNBOOST_PP_WHILE_208_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_209, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(209, s))
+# define NDNBOOST_PP_WHILE_209_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_210, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(210, s))
+# define NDNBOOST_PP_WHILE_210_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_211, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(211, s))
+# define NDNBOOST_PP_WHILE_211_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_212, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(212, s))
+# define NDNBOOST_PP_WHILE_212_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_213, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(213, s))
+# define NDNBOOST_PP_WHILE_213_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_214, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(214, s))
+# define NDNBOOST_PP_WHILE_214_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_215, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(215, s))
+# define NDNBOOST_PP_WHILE_215_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_216, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(216, s))
+# define NDNBOOST_PP_WHILE_216_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_217, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(217, s))
+# define NDNBOOST_PP_WHILE_217_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_218, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(218, s))
+# define NDNBOOST_PP_WHILE_218_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_219, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(219, s))
+# define NDNBOOST_PP_WHILE_219_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_220, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(220, s))
+# define NDNBOOST_PP_WHILE_220_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_221, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(221, s))
+# define NDNBOOST_PP_WHILE_221_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_222, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(222, s))
+# define NDNBOOST_PP_WHILE_222_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_223, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(223, s))
+# define NDNBOOST_PP_WHILE_223_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_224, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(224, s))
+# define NDNBOOST_PP_WHILE_224_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_225, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(225, s))
+# define NDNBOOST_PP_WHILE_225_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_226, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(226, s))
+# define NDNBOOST_PP_WHILE_226_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_227, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(227, s))
+# define NDNBOOST_PP_WHILE_227_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_228, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(228, s))
+# define NDNBOOST_PP_WHILE_228_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_229, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(229, s))
+# define NDNBOOST_PP_WHILE_229_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_230, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(230, s))
+# define NDNBOOST_PP_WHILE_230_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_231, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(231, s))
+# define NDNBOOST_PP_WHILE_231_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_232, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(232, s))
+# define NDNBOOST_PP_WHILE_232_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_233, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(233, s))
+# define NDNBOOST_PP_WHILE_233_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_234, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(234, s))
+# define NDNBOOST_PP_WHILE_234_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_235, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(235, s))
+# define NDNBOOST_PP_WHILE_235_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_236, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(236, s))
+# define NDNBOOST_PP_WHILE_236_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_237, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(237, s))
+# define NDNBOOST_PP_WHILE_237_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_238, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(238, s))
+# define NDNBOOST_PP_WHILE_238_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_239, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(239, s))
+# define NDNBOOST_PP_WHILE_239_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_240, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(240, s))
+# define NDNBOOST_PP_WHILE_240_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_241, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(241, s))
+# define NDNBOOST_PP_WHILE_241_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_242, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(242, s))
+# define NDNBOOST_PP_WHILE_242_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_243, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(243, s))
+# define NDNBOOST_PP_WHILE_243_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_244, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(244, s))
+# define NDNBOOST_PP_WHILE_244_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_245, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(245, s))
+# define NDNBOOST_PP_WHILE_245_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_246, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(246, s))
+# define NDNBOOST_PP_WHILE_246_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_247, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(247, s))
+# define NDNBOOST_PP_WHILE_247_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_248, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(248, s))
+# define NDNBOOST_PP_WHILE_248_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_249, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(249, s))
+# define NDNBOOST_PP_WHILE_249_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_250, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(250, s))
+# define NDNBOOST_PP_WHILE_250_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_251, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(251, s))
+# define NDNBOOST_PP_WHILE_251_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_252, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(252, s))
+# define NDNBOOST_PP_WHILE_252_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_253, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(253, s))
+# define NDNBOOST_PP_WHILE_253_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_254, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(254, s))
+# define NDNBOOST_PP_WHILE_254_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_255, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(255, s))
+# define NDNBOOST_PP_WHILE_255_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_256, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(256, s))
+# define NDNBOOST_PP_WHILE_256_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_257, NDNBOOST_PP_TUPLE_ELEM_3_2)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_TUPLE_ELEM_2_1)(257, s))
 #
 #
 # endif
diff --git a/include/ndnboost/preprocessor/control/detail/edg/while.hpp b/include/ndnboost/preprocessor/control/detail/edg/while.hpp
index ec10544..ee1303f 100644
--- a/include/ndnboost/preprocessor/control/detail/edg/while.hpp
+++ b/include/ndnboost/preprocessor/control/detail/edg/while.hpp
@@ -11,524 +11,524 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_CONTROL_DETAIL_EDG_WHILE_HPP
-# define BOOST_PREPROCESSOR_CONTROL_DETAIL_EDG_WHILE_HPP
+# ifndef NDNBOOST_PREPROCESSOR_CONTROL_DETAIL_EDG_WHILE_HPP
+# define NDNBOOST_PREPROCESSOR_CONTROL_DETAIL_EDG_WHILE_HPP
 #
 # include <ndnboost/preprocessor/control/if.hpp>
 # include <ndnboost/preprocessor/tuple/eat.hpp>
 #
-# define BOOST_PP_WHILE_1(p, o, s) BOOST_PP_WHILE_1_I(p, o, s)
-# define BOOST_PP_WHILE_2(p, o, s) BOOST_PP_WHILE_2_I(p, o, s)
-# define BOOST_PP_WHILE_3(p, o, s) BOOST_PP_WHILE_3_I(p, o, s)
-# define BOOST_PP_WHILE_4(p, o, s) BOOST_PP_WHILE_4_I(p, o, s)
-# define BOOST_PP_WHILE_5(p, o, s) BOOST_PP_WHILE_5_I(p, o, s)
-# define BOOST_PP_WHILE_6(p, o, s) BOOST_PP_WHILE_6_I(p, o, s)
-# define BOOST_PP_WHILE_7(p, o, s) BOOST_PP_WHILE_7_I(p, o, s)
-# define BOOST_PP_WHILE_8(p, o, s) BOOST_PP_WHILE_8_I(p, o, s)
-# define BOOST_PP_WHILE_9(p, o, s) BOOST_PP_WHILE_9_I(p, o, s)
-# define BOOST_PP_WHILE_10(p, o, s) BOOST_PP_WHILE_10_I(p, o, s)
-# define BOOST_PP_WHILE_11(p, o, s) BOOST_PP_WHILE_11_I(p, o, s)
-# define BOOST_PP_WHILE_12(p, o, s) BOOST_PP_WHILE_12_I(p, o, s)
-# define BOOST_PP_WHILE_13(p, o, s) BOOST_PP_WHILE_13_I(p, o, s)
-# define BOOST_PP_WHILE_14(p, o, s) BOOST_PP_WHILE_14_I(p, o, s)
-# define BOOST_PP_WHILE_15(p, o, s) BOOST_PP_WHILE_15_I(p, o, s)
-# define BOOST_PP_WHILE_16(p, o, s) BOOST_PP_WHILE_16_I(p, o, s)
-# define BOOST_PP_WHILE_17(p, o, s) BOOST_PP_WHILE_17_I(p, o, s)
-# define BOOST_PP_WHILE_18(p, o, s) BOOST_PP_WHILE_18_I(p, o, s)
-# define BOOST_PP_WHILE_19(p, o, s) BOOST_PP_WHILE_19_I(p, o, s)
-# define BOOST_PP_WHILE_20(p, o, s) BOOST_PP_WHILE_20_I(p, o, s)
-# define BOOST_PP_WHILE_21(p, o, s) BOOST_PP_WHILE_21_I(p, o, s)
-# define BOOST_PP_WHILE_22(p, o, s) BOOST_PP_WHILE_22_I(p, o, s)
-# define BOOST_PP_WHILE_23(p, o, s) BOOST_PP_WHILE_23_I(p, o, s)
-# define BOOST_PP_WHILE_24(p, o, s) BOOST_PP_WHILE_24_I(p, o, s)
-# define BOOST_PP_WHILE_25(p, o, s) BOOST_PP_WHILE_25_I(p, o, s)
-# define BOOST_PP_WHILE_26(p, o, s) BOOST_PP_WHILE_26_I(p, o, s)
-# define BOOST_PP_WHILE_27(p, o, s) BOOST_PP_WHILE_27_I(p, o, s)
-# define BOOST_PP_WHILE_28(p, o, s) BOOST_PP_WHILE_28_I(p, o, s)
-# define BOOST_PP_WHILE_29(p, o, s) BOOST_PP_WHILE_29_I(p, o, s)
-# define BOOST_PP_WHILE_30(p, o, s) BOOST_PP_WHILE_30_I(p, o, s)
-# define BOOST_PP_WHILE_31(p, o, s) BOOST_PP_WHILE_31_I(p, o, s)
-# define BOOST_PP_WHILE_32(p, o, s) BOOST_PP_WHILE_32_I(p, o, s)
-# define BOOST_PP_WHILE_33(p, o, s) BOOST_PP_WHILE_33_I(p, o, s)
-# define BOOST_PP_WHILE_34(p, o, s) BOOST_PP_WHILE_34_I(p, o, s)
-# define BOOST_PP_WHILE_35(p, o, s) BOOST_PP_WHILE_35_I(p, o, s)
-# define BOOST_PP_WHILE_36(p, o, s) BOOST_PP_WHILE_36_I(p, o, s)
-# define BOOST_PP_WHILE_37(p, o, s) BOOST_PP_WHILE_37_I(p, o, s)
-# define BOOST_PP_WHILE_38(p, o, s) BOOST_PP_WHILE_38_I(p, o, s)
-# define BOOST_PP_WHILE_39(p, o, s) BOOST_PP_WHILE_39_I(p, o, s)
-# define BOOST_PP_WHILE_40(p, o, s) BOOST_PP_WHILE_40_I(p, o, s)
-# define BOOST_PP_WHILE_41(p, o, s) BOOST_PP_WHILE_41_I(p, o, s)
-# define BOOST_PP_WHILE_42(p, o, s) BOOST_PP_WHILE_42_I(p, o, s)
-# define BOOST_PP_WHILE_43(p, o, s) BOOST_PP_WHILE_43_I(p, o, s)
-# define BOOST_PP_WHILE_44(p, o, s) BOOST_PP_WHILE_44_I(p, o, s)
-# define BOOST_PP_WHILE_45(p, o, s) BOOST_PP_WHILE_45_I(p, o, s)
-# define BOOST_PP_WHILE_46(p, o, s) BOOST_PP_WHILE_46_I(p, o, s)
-# define BOOST_PP_WHILE_47(p, o, s) BOOST_PP_WHILE_47_I(p, o, s)
-# define BOOST_PP_WHILE_48(p, o, s) BOOST_PP_WHILE_48_I(p, o, s)
-# define BOOST_PP_WHILE_49(p, o, s) BOOST_PP_WHILE_49_I(p, o, s)
-# define BOOST_PP_WHILE_50(p, o, s) BOOST_PP_WHILE_50_I(p, o, s)
-# define BOOST_PP_WHILE_51(p, o, s) BOOST_PP_WHILE_51_I(p, o, s)
-# define BOOST_PP_WHILE_52(p, o, s) BOOST_PP_WHILE_52_I(p, o, s)
-# define BOOST_PP_WHILE_53(p, o, s) BOOST_PP_WHILE_53_I(p, o, s)
-# define BOOST_PP_WHILE_54(p, o, s) BOOST_PP_WHILE_54_I(p, o, s)
-# define BOOST_PP_WHILE_55(p, o, s) BOOST_PP_WHILE_55_I(p, o, s)
-# define BOOST_PP_WHILE_56(p, o, s) BOOST_PP_WHILE_56_I(p, o, s)
-# define BOOST_PP_WHILE_57(p, o, s) BOOST_PP_WHILE_57_I(p, o, s)
-# define BOOST_PP_WHILE_58(p, o, s) BOOST_PP_WHILE_58_I(p, o, s)
-# define BOOST_PP_WHILE_59(p, o, s) BOOST_PP_WHILE_59_I(p, o, s)
-# define BOOST_PP_WHILE_60(p, o, s) BOOST_PP_WHILE_60_I(p, o, s)
-# define BOOST_PP_WHILE_61(p, o, s) BOOST_PP_WHILE_61_I(p, o, s)
-# define BOOST_PP_WHILE_62(p, o, s) BOOST_PP_WHILE_62_I(p, o, s)
-# define BOOST_PP_WHILE_63(p, o, s) BOOST_PP_WHILE_63_I(p, o, s)
-# define BOOST_PP_WHILE_64(p, o, s) BOOST_PP_WHILE_64_I(p, o, s)
-# define BOOST_PP_WHILE_65(p, o, s) BOOST_PP_WHILE_65_I(p, o, s)
-# define BOOST_PP_WHILE_66(p, o, s) BOOST_PP_WHILE_66_I(p, o, s)
-# define BOOST_PP_WHILE_67(p, o, s) BOOST_PP_WHILE_67_I(p, o, s)
-# define BOOST_PP_WHILE_68(p, o, s) BOOST_PP_WHILE_68_I(p, o, s)
-# define BOOST_PP_WHILE_69(p, o, s) BOOST_PP_WHILE_69_I(p, o, s)
-# define BOOST_PP_WHILE_70(p, o, s) BOOST_PP_WHILE_70_I(p, o, s)
-# define BOOST_PP_WHILE_71(p, o, s) BOOST_PP_WHILE_71_I(p, o, s)
-# define BOOST_PP_WHILE_72(p, o, s) BOOST_PP_WHILE_72_I(p, o, s)
-# define BOOST_PP_WHILE_73(p, o, s) BOOST_PP_WHILE_73_I(p, o, s)
-# define BOOST_PP_WHILE_74(p, o, s) BOOST_PP_WHILE_74_I(p, o, s)
-# define BOOST_PP_WHILE_75(p, o, s) BOOST_PP_WHILE_75_I(p, o, s)
-# define BOOST_PP_WHILE_76(p, o, s) BOOST_PP_WHILE_76_I(p, o, s)
-# define BOOST_PP_WHILE_77(p, o, s) BOOST_PP_WHILE_77_I(p, o, s)
-# define BOOST_PP_WHILE_78(p, o, s) BOOST_PP_WHILE_78_I(p, o, s)
-# define BOOST_PP_WHILE_79(p, o, s) BOOST_PP_WHILE_79_I(p, o, s)
-# define BOOST_PP_WHILE_80(p, o, s) BOOST_PP_WHILE_80_I(p, o, s)
-# define BOOST_PP_WHILE_81(p, o, s) BOOST_PP_WHILE_81_I(p, o, s)
-# define BOOST_PP_WHILE_82(p, o, s) BOOST_PP_WHILE_82_I(p, o, s)
-# define BOOST_PP_WHILE_83(p, o, s) BOOST_PP_WHILE_83_I(p, o, s)
-# define BOOST_PP_WHILE_84(p, o, s) BOOST_PP_WHILE_84_I(p, o, s)
-# define BOOST_PP_WHILE_85(p, o, s) BOOST_PP_WHILE_85_I(p, o, s)
-# define BOOST_PP_WHILE_86(p, o, s) BOOST_PP_WHILE_86_I(p, o, s)
-# define BOOST_PP_WHILE_87(p, o, s) BOOST_PP_WHILE_87_I(p, o, s)
-# define BOOST_PP_WHILE_88(p, o, s) BOOST_PP_WHILE_88_I(p, o, s)
-# define BOOST_PP_WHILE_89(p, o, s) BOOST_PP_WHILE_89_I(p, o, s)
-# define BOOST_PP_WHILE_90(p, o, s) BOOST_PP_WHILE_90_I(p, o, s)
-# define BOOST_PP_WHILE_91(p, o, s) BOOST_PP_WHILE_91_I(p, o, s)
-# define BOOST_PP_WHILE_92(p, o, s) BOOST_PP_WHILE_92_I(p, o, s)
-# define BOOST_PP_WHILE_93(p, o, s) BOOST_PP_WHILE_93_I(p, o, s)
-# define BOOST_PP_WHILE_94(p, o, s) BOOST_PP_WHILE_94_I(p, o, s)
-# define BOOST_PP_WHILE_95(p, o, s) BOOST_PP_WHILE_95_I(p, o, s)
-# define BOOST_PP_WHILE_96(p, o, s) BOOST_PP_WHILE_96_I(p, o, s)
-# define BOOST_PP_WHILE_97(p, o, s) BOOST_PP_WHILE_97_I(p, o, s)
-# define BOOST_PP_WHILE_98(p, o, s) BOOST_PP_WHILE_98_I(p, o, s)
-# define BOOST_PP_WHILE_99(p, o, s) BOOST_PP_WHILE_99_I(p, o, s)
-# define BOOST_PP_WHILE_100(p, o, s) BOOST_PP_WHILE_100_I(p, o, s)
-# define BOOST_PP_WHILE_101(p, o, s) BOOST_PP_WHILE_101_I(p, o, s)
-# define BOOST_PP_WHILE_102(p, o, s) BOOST_PP_WHILE_102_I(p, o, s)
-# define BOOST_PP_WHILE_103(p, o, s) BOOST_PP_WHILE_103_I(p, o, s)
-# define BOOST_PP_WHILE_104(p, o, s) BOOST_PP_WHILE_104_I(p, o, s)
-# define BOOST_PP_WHILE_105(p, o, s) BOOST_PP_WHILE_105_I(p, o, s)
-# define BOOST_PP_WHILE_106(p, o, s) BOOST_PP_WHILE_106_I(p, o, s)
-# define BOOST_PP_WHILE_107(p, o, s) BOOST_PP_WHILE_107_I(p, o, s)
-# define BOOST_PP_WHILE_108(p, o, s) BOOST_PP_WHILE_108_I(p, o, s)
-# define BOOST_PP_WHILE_109(p, o, s) BOOST_PP_WHILE_109_I(p, o, s)
-# define BOOST_PP_WHILE_110(p, o, s) BOOST_PP_WHILE_110_I(p, o, s)
-# define BOOST_PP_WHILE_111(p, o, s) BOOST_PP_WHILE_111_I(p, o, s)
-# define BOOST_PP_WHILE_112(p, o, s) BOOST_PP_WHILE_112_I(p, o, s)
-# define BOOST_PP_WHILE_113(p, o, s) BOOST_PP_WHILE_113_I(p, o, s)
-# define BOOST_PP_WHILE_114(p, o, s) BOOST_PP_WHILE_114_I(p, o, s)
-# define BOOST_PP_WHILE_115(p, o, s) BOOST_PP_WHILE_115_I(p, o, s)
-# define BOOST_PP_WHILE_116(p, o, s) BOOST_PP_WHILE_116_I(p, o, s)
-# define BOOST_PP_WHILE_117(p, o, s) BOOST_PP_WHILE_117_I(p, o, s)
-# define BOOST_PP_WHILE_118(p, o, s) BOOST_PP_WHILE_118_I(p, o, s)
-# define BOOST_PP_WHILE_119(p, o, s) BOOST_PP_WHILE_119_I(p, o, s)
-# define BOOST_PP_WHILE_120(p, o, s) BOOST_PP_WHILE_120_I(p, o, s)
-# define BOOST_PP_WHILE_121(p, o, s) BOOST_PP_WHILE_121_I(p, o, s)
-# define BOOST_PP_WHILE_122(p, o, s) BOOST_PP_WHILE_122_I(p, o, s)
-# define BOOST_PP_WHILE_123(p, o, s) BOOST_PP_WHILE_123_I(p, o, s)
-# define BOOST_PP_WHILE_124(p, o, s) BOOST_PP_WHILE_124_I(p, o, s)
-# define BOOST_PP_WHILE_125(p, o, s) BOOST_PP_WHILE_125_I(p, o, s)
-# define BOOST_PP_WHILE_126(p, o, s) BOOST_PP_WHILE_126_I(p, o, s)
-# define BOOST_PP_WHILE_127(p, o, s) BOOST_PP_WHILE_127_I(p, o, s)
-# define BOOST_PP_WHILE_128(p, o, s) BOOST_PP_WHILE_128_I(p, o, s)
-# define BOOST_PP_WHILE_129(p, o, s) BOOST_PP_WHILE_129_I(p, o, s)
-# define BOOST_PP_WHILE_130(p, o, s) BOOST_PP_WHILE_130_I(p, o, s)
-# define BOOST_PP_WHILE_131(p, o, s) BOOST_PP_WHILE_131_I(p, o, s)
-# define BOOST_PP_WHILE_132(p, o, s) BOOST_PP_WHILE_132_I(p, o, s)
-# define BOOST_PP_WHILE_133(p, o, s) BOOST_PP_WHILE_133_I(p, o, s)
-# define BOOST_PP_WHILE_134(p, o, s) BOOST_PP_WHILE_134_I(p, o, s)
-# define BOOST_PP_WHILE_135(p, o, s) BOOST_PP_WHILE_135_I(p, o, s)
-# define BOOST_PP_WHILE_136(p, o, s) BOOST_PP_WHILE_136_I(p, o, s)
-# define BOOST_PP_WHILE_137(p, o, s) BOOST_PP_WHILE_137_I(p, o, s)
-# define BOOST_PP_WHILE_138(p, o, s) BOOST_PP_WHILE_138_I(p, o, s)
-# define BOOST_PP_WHILE_139(p, o, s) BOOST_PP_WHILE_139_I(p, o, s)
-# define BOOST_PP_WHILE_140(p, o, s) BOOST_PP_WHILE_140_I(p, o, s)
-# define BOOST_PP_WHILE_141(p, o, s) BOOST_PP_WHILE_141_I(p, o, s)
-# define BOOST_PP_WHILE_142(p, o, s) BOOST_PP_WHILE_142_I(p, o, s)
-# define BOOST_PP_WHILE_143(p, o, s) BOOST_PP_WHILE_143_I(p, o, s)
-# define BOOST_PP_WHILE_144(p, o, s) BOOST_PP_WHILE_144_I(p, o, s)
-# define BOOST_PP_WHILE_145(p, o, s) BOOST_PP_WHILE_145_I(p, o, s)
-# define BOOST_PP_WHILE_146(p, o, s) BOOST_PP_WHILE_146_I(p, o, s)
-# define BOOST_PP_WHILE_147(p, o, s) BOOST_PP_WHILE_147_I(p, o, s)
-# define BOOST_PP_WHILE_148(p, o, s) BOOST_PP_WHILE_148_I(p, o, s)
-# define BOOST_PP_WHILE_149(p, o, s) BOOST_PP_WHILE_149_I(p, o, s)
-# define BOOST_PP_WHILE_150(p, o, s) BOOST_PP_WHILE_150_I(p, o, s)
-# define BOOST_PP_WHILE_151(p, o, s) BOOST_PP_WHILE_151_I(p, o, s)
-# define BOOST_PP_WHILE_152(p, o, s) BOOST_PP_WHILE_152_I(p, o, s)
-# define BOOST_PP_WHILE_153(p, o, s) BOOST_PP_WHILE_153_I(p, o, s)
-# define BOOST_PP_WHILE_154(p, o, s) BOOST_PP_WHILE_154_I(p, o, s)
-# define BOOST_PP_WHILE_155(p, o, s) BOOST_PP_WHILE_155_I(p, o, s)
-# define BOOST_PP_WHILE_156(p, o, s) BOOST_PP_WHILE_156_I(p, o, s)
-# define BOOST_PP_WHILE_157(p, o, s) BOOST_PP_WHILE_157_I(p, o, s)
-# define BOOST_PP_WHILE_158(p, o, s) BOOST_PP_WHILE_158_I(p, o, s)
-# define BOOST_PP_WHILE_159(p, o, s) BOOST_PP_WHILE_159_I(p, o, s)
-# define BOOST_PP_WHILE_160(p, o, s) BOOST_PP_WHILE_160_I(p, o, s)
-# define BOOST_PP_WHILE_161(p, o, s) BOOST_PP_WHILE_161_I(p, o, s)
-# define BOOST_PP_WHILE_162(p, o, s) BOOST_PP_WHILE_162_I(p, o, s)
-# define BOOST_PP_WHILE_163(p, o, s) BOOST_PP_WHILE_163_I(p, o, s)
-# define BOOST_PP_WHILE_164(p, o, s) BOOST_PP_WHILE_164_I(p, o, s)
-# define BOOST_PP_WHILE_165(p, o, s) BOOST_PP_WHILE_165_I(p, o, s)
-# define BOOST_PP_WHILE_166(p, o, s) BOOST_PP_WHILE_166_I(p, o, s)
-# define BOOST_PP_WHILE_167(p, o, s) BOOST_PP_WHILE_167_I(p, o, s)
-# define BOOST_PP_WHILE_168(p, o, s) BOOST_PP_WHILE_168_I(p, o, s)
-# define BOOST_PP_WHILE_169(p, o, s) BOOST_PP_WHILE_169_I(p, o, s)
-# define BOOST_PP_WHILE_170(p, o, s) BOOST_PP_WHILE_170_I(p, o, s)
-# define BOOST_PP_WHILE_171(p, o, s) BOOST_PP_WHILE_171_I(p, o, s)
-# define BOOST_PP_WHILE_172(p, o, s) BOOST_PP_WHILE_172_I(p, o, s)
-# define BOOST_PP_WHILE_173(p, o, s) BOOST_PP_WHILE_173_I(p, o, s)
-# define BOOST_PP_WHILE_174(p, o, s) BOOST_PP_WHILE_174_I(p, o, s)
-# define BOOST_PP_WHILE_175(p, o, s) BOOST_PP_WHILE_175_I(p, o, s)
-# define BOOST_PP_WHILE_176(p, o, s) BOOST_PP_WHILE_176_I(p, o, s)
-# define BOOST_PP_WHILE_177(p, o, s) BOOST_PP_WHILE_177_I(p, o, s)
-# define BOOST_PP_WHILE_178(p, o, s) BOOST_PP_WHILE_178_I(p, o, s)
-# define BOOST_PP_WHILE_179(p, o, s) BOOST_PP_WHILE_179_I(p, o, s)
-# define BOOST_PP_WHILE_180(p, o, s) BOOST_PP_WHILE_180_I(p, o, s)
-# define BOOST_PP_WHILE_181(p, o, s) BOOST_PP_WHILE_181_I(p, o, s)
-# define BOOST_PP_WHILE_182(p, o, s) BOOST_PP_WHILE_182_I(p, o, s)
-# define BOOST_PP_WHILE_183(p, o, s) BOOST_PP_WHILE_183_I(p, o, s)
-# define BOOST_PP_WHILE_184(p, o, s) BOOST_PP_WHILE_184_I(p, o, s)
-# define BOOST_PP_WHILE_185(p, o, s) BOOST_PP_WHILE_185_I(p, o, s)
-# define BOOST_PP_WHILE_186(p, o, s) BOOST_PP_WHILE_186_I(p, o, s)
-# define BOOST_PP_WHILE_187(p, o, s) BOOST_PP_WHILE_187_I(p, o, s)
-# define BOOST_PP_WHILE_188(p, o, s) BOOST_PP_WHILE_188_I(p, o, s)
-# define BOOST_PP_WHILE_189(p, o, s) BOOST_PP_WHILE_189_I(p, o, s)
-# define BOOST_PP_WHILE_190(p, o, s) BOOST_PP_WHILE_190_I(p, o, s)
-# define BOOST_PP_WHILE_191(p, o, s) BOOST_PP_WHILE_191_I(p, o, s)
-# define BOOST_PP_WHILE_192(p, o, s) BOOST_PP_WHILE_192_I(p, o, s)
-# define BOOST_PP_WHILE_193(p, o, s) BOOST_PP_WHILE_193_I(p, o, s)
-# define BOOST_PP_WHILE_194(p, o, s) BOOST_PP_WHILE_194_I(p, o, s)
-# define BOOST_PP_WHILE_195(p, o, s) BOOST_PP_WHILE_195_I(p, o, s)
-# define BOOST_PP_WHILE_196(p, o, s) BOOST_PP_WHILE_196_I(p, o, s)
-# define BOOST_PP_WHILE_197(p, o, s) BOOST_PP_WHILE_197_I(p, o, s)
-# define BOOST_PP_WHILE_198(p, o, s) BOOST_PP_WHILE_198_I(p, o, s)
-# define BOOST_PP_WHILE_199(p, o, s) BOOST_PP_WHILE_199_I(p, o, s)
-# define BOOST_PP_WHILE_200(p, o, s) BOOST_PP_WHILE_200_I(p, o, s)
-# define BOOST_PP_WHILE_201(p, o, s) BOOST_PP_WHILE_201_I(p, o, s)
-# define BOOST_PP_WHILE_202(p, o, s) BOOST_PP_WHILE_202_I(p, o, s)
-# define BOOST_PP_WHILE_203(p, o, s) BOOST_PP_WHILE_203_I(p, o, s)
-# define BOOST_PP_WHILE_204(p, o, s) BOOST_PP_WHILE_204_I(p, o, s)
-# define BOOST_PP_WHILE_205(p, o, s) BOOST_PP_WHILE_205_I(p, o, s)
-# define BOOST_PP_WHILE_206(p, o, s) BOOST_PP_WHILE_206_I(p, o, s)
-# define BOOST_PP_WHILE_207(p, o, s) BOOST_PP_WHILE_207_I(p, o, s)
-# define BOOST_PP_WHILE_208(p, o, s) BOOST_PP_WHILE_208_I(p, o, s)
-# define BOOST_PP_WHILE_209(p, o, s) BOOST_PP_WHILE_209_I(p, o, s)
-# define BOOST_PP_WHILE_210(p, o, s) BOOST_PP_WHILE_210_I(p, o, s)
-# define BOOST_PP_WHILE_211(p, o, s) BOOST_PP_WHILE_211_I(p, o, s)
-# define BOOST_PP_WHILE_212(p, o, s) BOOST_PP_WHILE_212_I(p, o, s)
-# define BOOST_PP_WHILE_213(p, o, s) BOOST_PP_WHILE_213_I(p, o, s)
-# define BOOST_PP_WHILE_214(p, o, s) BOOST_PP_WHILE_214_I(p, o, s)
-# define BOOST_PP_WHILE_215(p, o, s) BOOST_PP_WHILE_215_I(p, o, s)
-# define BOOST_PP_WHILE_216(p, o, s) BOOST_PP_WHILE_216_I(p, o, s)
-# define BOOST_PP_WHILE_217(p, o, s) BOOST_PP_WHILE_217_I(p, o, s)
-# define BOOST_PP_WHILE_218(p, o, s) BOOST_PP_WHILE_218_I(p, o, s)
-# define BOOST_PP_WHILE_219(p, o, s) BOOST_PP_WHILE_219_I(p, o, s)
-# define BOOST_PP_WHILE_220(p, o, s) BOOST_PP_WHILE_220_I(p, o, s)
-# define BOOST_PP_WHILE_221(p, o, s) BOOST_PP_WHILE_221_I(p, o, s)
-# define BOOST_PP_WHILE_222(p, o, s) BOOST_PP_WHILE_222_I(p, o, s)
-# define BOOST_PP_WHILE_223(p, o, s) BOOST_PP_WHILE_223_I(p, o, s)
-# define BOOST_PP_WHILE_224(p, o, s) BOOST_PP_WHILE_224_I(p, o, s)
-# define BOOST_PP_WHILE_225(p, o, s) BOOST_PP_WHILE_225_I(p, o, s)
-# define BOOST_PP_WHILE_226(p, o, s) BOOST_PP_WHILE_226_I(p, o, s)
-# define BOOST_PP_WHILE_227(p, o, s) BOOST_PP_WHILE_227_I(p, o, s)
-# define BOOST_PP_WHILE_228(p, o, s) BOOST_PP_WHILE_228_I(p, o, s)
-# define BOOST_PP_WHILE_229(p, o, s) BOOST_PP_WHILE_229_I(p, o, s)
-# define BOOST_PP_WHILE_230(p, o, s) BOOST_PP_WHILE_230_I(p, o, s)
-# define BOOST_PP_WHILE_231(p, o, s) BOOST_PP_WHILE_231_I(p, o, s)
-# define BOOST_PP_WHILE_232(p, o, s) BOOST_PP_WHILE_232_I(p, o, s)
-# define BOOST_PP_WHILE_233(p, o, s) BOOST_PP_WHILE_233_I(p, o, s)
-# define BOOST_PP_WHILE_234(p, o, s) BOOST_PP_WHILE_234_I(p, o, s)
-# define BOOST_PP_WHILE_235(p, o, s) BOOST_PP_WHILE_235_I(p, o, s)
-# define BOOST_PP_WHILE_236(p, o, s) BOOST_PP_WHILE_236_I(p, o, s)
-# define BOOST_PP_WHILE_237(p, o, s) BOOST_PP_WHILE_237_I(p, o, s)
-# define BOOST_PP_WHILE_238(p, o, s) BOOST_PP_WHILE_238_I(p, o, s)
-# define BOOST_PP_WHILE_239(p, o, s) BOOST_PP_WHILE_239_I(p, o, s)
-# define BOOST_PP_WHILE_240(p, o, s) BOOST_PP_WHILE_240_I(p, o, s)
-# define BOOST_PP_WHILE_241(p, o, s) BOOST_PP_WHILE_241_I(p, o, s)
-# define BOOST_PP_WHILE_242(p, o, s) BOOST_PP_WHILE_242_I(p, o, s)
-# define BOOST_PP_WHILE_243(p, o, s) BOOST_PP_WHILE_243_I(p, o, s)
-# define BOOST_PP_WHILE_244(p, o, s) BOOST_PP_WHILE_244_I(p, o, s)
-# define BOOST_PP_WHILE_245(p, o, s) BOOST_PP_WHILE_245_I(p, o, s)
-# define BOOST_PP_WHILE_246(p, o, s) BOOST_PP_WHILE_246_I(p, o, s)
-# define BOOST_PP_WHILE_247(p, o, s) BOOST_PP_WHILE_247_I(p, o, s)
-# define BOOST_PP_WHILE_248(p, o, s) BOOST_PP_WHILE_248_I(p, o, s)
-# define BOOST_PP_WHILE_249(p, o, s) BOOST_PP_WHILE_249_I(p, o, s)
-# define BOOST_PP_WHILE_250(p, o, s) BOOST_PP_WHILE_250_I(p, o, s)
-# define BOOST_PP_WHILE_251(p, o, s) BOOST_PP_WHILE_251_I(p, o, s)
-# define BOOST_PP_WHILE_252(p, o, s) BOOST_PP_WHILE_252_I(p, o, s)
-# define BOOST_PP_WHILE_253(p, o, s) BOOST_PP_WHILE_253_I(p, o, s)
-# define BOOST_PP_WHILE_254(p, o, s) BOOST_PP_WHILE_254_I(p, o, s)
-# define BOOST_PP_WHILE_255(p, o, s) BOOST_PP_WHILE_255_I(p, o, s)
-# define BOOST_PP_WHILE_256(p, o, s) BOOST_PP_WHILE_256_I(p, o, s)
+# define NDNBOOST_PP_WHILE_1(p, o, s) NDNBOOST_PP_WHILE_1_I(p, o, s)
+# define NDNBOOST_PP_WHILE_2(p, o, s) NDNBOOST_PP_WHILE_2_I(p, o, s)
+# define NDNBOOST_PP_WHILE_3(p, o, s) NDNBOOST_PP_WHILE_3_I(p, o, s)
+# define NDNBOOST_PP_WHILE_4(p, o, s) NDNBOOST_PP_WHILE_4_I(p, o, s)
+# define NDNBOOST_PP_WHILE_5(p, o, s) NDNBOOST_PP_WHILE_5_I(p, o, s)
+# define NDNBOOST_PP_WHILE_6(p, o, s) NDNBOOST_PP_WHILE_6_I(p, o, s)
+# define NDNBOOST_PP_WHILE_7(p, o, s) NDNBOOST_PP_WHILE_7_I(p, o, s)
+# define NDNBOOST_PP_WHILE_8(p, o, s) NDNBOOST_PP_WHILE_8_I(p, o, s)
+# define NDNBOOST_PP_WHILE_9(p, o, s) NDNBOOST_PP_WHILE_9_I(p, o, s)
+# define NDNBOOST_PP_WHILE_10(p, o, s) NDNBOOST_PP_WHILE_10_I(p, o, s)
+# define NDNBOOST_PP_WHILE_11(p, o, s) NDNBOOST_PP_WHILE_11_I(p, o, s)
+# define NDNBOOST_PP_WHILE_12(p, o, s) NDNBOOST_PP_WHILE_12_I(p, o, s)
+# define NDNBOOST_PP_WHILE_13(p, o, s) NDNBOOST_PP_WHILE_13_I(p, o, s)
+# define NDNBOOST_PP_WHILE_14(p, o, s) NDNBOOST_PP_WHILE_14_I(p, o, s)
+# define NDNBOOST_PP_WHILE_15(p, o, s) NDNBOOST_PP_WHILE_15_I(p, o, s)
+# define NDNBOOST_PP_WHILE_16(p, o, s) NDNBOOST_PP_WHILE_16_I(p, o, s)
+# define NDNBOOST_PP_WHILE_17(p, o, s) NDNBOOST_PP_WHILE_17_I(p, o, s)
+# define NDNBOOST_PP_WHILE_18(p, o, s) NDNBOOST_PP_WHILE_18_I(p, o, s)
+# define NDNBOOST_PP_WHILE_19(p, o, s) NDNBOOST_PP_WHILE_19_I(p, o, s)
+# define NDNBOOST_PP_WHILE_20(p, o, s) NDNBOOST_PP_WHILE_20_I(p, o, s)
+# define NDNBOOST_PP_WHILE_21(p, o, s) NDNBOOST_PP_WHILE_21_I(p, o, s)
+# define NDNBOOST_PP_WHILE_22(p, o, s) NDNBOOST_PP_WHILE_22_I(p, o, s)
+# define NDNBOOST_PP_WHILE_23(p, o, s) NDNBOOST_PP_WHILE_23_I(p, o, s)
+# define NDNBOOST_PP_WHILE_24(p, o, s) NDNBOOST_PP_WHILE_24_I(p, o, s)
+# define NDNBOOST_PP_WHILE_25(p, o, s) NDNBOOST_PP_WHILE_25_I(p, o, s)
+# define NDNBOOST_PP_WHILE_26(p, o, s) NDNBOOST_PP_WHILE_26_I(p, o, s)
+# define NDNBOOST_PP_WHILE_27(p, o, s) NDNBOOST_PP_WHILE_27_I(p, o, s)
+# define NDNBOOST_PP_WHILE_28(p, o, s) NDNBOOST_PP_WHILE_28_I(p, o, s)
+# define NDNBOOST_PP_WHILE_29(p, o, s) NDNBOOST_PP_WHILE_29_I(p, o, s)
+# define NDNBOOST_PP_WHILE_30(p, o, s) NDNBOOST_PP_WHILE_30_I(p, o, s)
+# define NDNBOOST_PP_WHILE_31(p, o, s) NDNBOOST_PP_WHILE_31_I(p, o, s)
+# define NDNBOOST_PP_WHILE_32(p, o, s) NDNBOOST_PP_WHILE_32_I(p, o, s)
+# define NDNBOOST_PP_WHILE_33(p, o, s) NDNBOOST_PP_WHILE_33_I(p, o, s)
+# define NDNBOOST_PP_WHILE_34(p, o, s) NDNBOOST_PP_WHILE_34_I(p, o, s)
+# define NDNBOOST_PP_WHILE_35(p, o, s) NDNBOOST_PP_WHILE_35_I(p, o, s)
+# define NDNBOOST_PP_WHILE_36(p, o, s) NDNBOOST_PP_WHILE_36_I(p, o, s)
+# define NDNBOOST_PP_WHILE_37(p, o, s) NDNBOOST_PP_WHILE_37_I(p, o, s)
+# define NDNBOOST_PP_WHILE_38(p, o, s) NDNBOOST_PP_WHILE_38_I(p, o, s)
+# define NDNBOOST_PP_WHILE_39(p, o, s) NDNBOOST_PP_WHILE_39_I(p, o, s)
+# define NDNBOOST_PP_WHILE_40(p, o, s) NDNBOOST_PP_WHILE_40_I(p, o, s)
+# define NDNBOOST_PP_WHILE_41(p, o, s) NDNBOOST_PP_WHILE_41_I(p, o, s)
+# define NDNBOOST_PP_WHILE_42(p, o, s) NDNBOOST_PP_WHILE_42_I(p, o, s)
+# define NDNBOOST_PP_WHILE_43(p, o, s) NDNBOOST_PP_WHILE_43_I(p, o, s)
+# define NDNBOOST_PP_WHILE_44(p, o, s) NDNBOOST_PP_WHILE_44_I(p, o, s)
+# define NDNBOOST_PP_WHILE_45(p, o, s) NDNBOOST_PP_WHILE_45_I(p, o, s)
+# define NDNBOOST_PP_WHILE_46(p, o, s) NDNBOOST_PP_WHILE_46_I(p, o, s)
+# define NDNBOOST_PP_WHILE_47(p, o, s) NDNBOOST_PP_WHILE_47_I(p, o, s)
+# define NDNBOOST_PP_WHILE_48(p, o, s) NDNBOOST_PP_WHILE_48_I(p, o, s)
+# define NDNBOOST_PP_WHILE_49(p, o, s) NDNBOOST_PP_WHILE_49_I(p, o, s)
+# define NDNBOOST_PP_WHILE_50(p, o, s) NDNBOOST_PP_WHILE_50_I(p, o, s)
+# define NDNBOOST_PP_WHILE_51(p, o, s) NDNBOOST_PP_WHILE_51_I(p, o, s)
+# define NDNBOOST_PP_WHILE_52(p, o, s) NDNBOOST_PP_WHILE_52_I(p, o, s)
+# define NDNBOOST_PP_WHILE_53(p, o, s) NDNBOOST_PP_WHILE_53_I(p, o, s)
+# define NDNBOOST_PP_WHILE_54(p, o, s) NDNBOOST_PP_WHILE_54_I(p, o, s)
+# define NDNBOOST_PP_WHILE_55(p, o, s) NDNBOOST_PP_WHILE_55_I(p, o, s)
+# define NDNBOOST_PP_WHILE_56(p, o, s) NDNBOOST_PP_WHILE_56_I(p, o, s)
+# define NDNBOOST_PP_WHILE_57(p, o, s) NDNBOOST_PP_WHILE_57_I(p, o, s)
+# define NDNBOOST_PP_WHILE_58(p, o, s) NDNBOOST_PP_WHILE_58_I(p, o, s)
+# define NDNBOOST_PP_WHILE_59(p, o, s) NDNBOOST_PP_WHILE_59_I(p, o, s)
+# define NDNBOOST_PP_WHILE_60(p, o, s) NDNBOOST_PP_WHILE_60_I(p, o, s)
+# define NDNBOOST_PP_WHILE_61(p, o, s) NDNBOOST_PP_WHILE_61_I(p, o, s)
+# define NDNBOOST_PP_WHILE_62(p, o, s) NDNBOOST_PP_WHILE_62_I(p, o, s)
+# define NDNBOOST_PP_WHILE_63(p, o, s) NDNBOOST_PP_WHILE_63_I(p, o, s)
+# define NDNBOOST_PP_WHILE_64(p, o, s) NDNBOOST_PP_WHILE_64_I(p, o, s)
+# define NDNBOOST_PP_WHILE_65(p, o, s) NDNBOOST_PP_WHILE_65_I(p, o, s)
+# define NDNBOOST_PP_WHILE_66(p, o, s) NDNBOOST_PP_WHILE_66_I(p, o, s)
+# define NDNBOOST_PP_WHILE_67(p, o, s) NDNBOOST_PP_WHILE_67_I(p, o, s)
+# define NDNBOOST_PP_WHILE_68(p, o, s) NDNBOOST_PP_WHILE_68_I(p, o, s)
+# define NDNBOOST_PP_WHILE_69(p, o, s) NDNBOOST_PP_WHILE_69_I(p, o, s)
+# define NDNBOOST_PP_WHILE_70(p, o, s) NDNBOOST_PP_WHILE_70_I(p, o, s)
+# define NDNBOOST_PP_WHILE_71(p, o, s) NDNBOOST_PP_WHILE_71_I(p, o, s)
+# define NDNBOOST_PP_WHILE_72(p, o, s) NDNBOOST_PP_WHILE_72_I(p, o, s)
+# define NDNBOOST_PP_WHILE_73(p, o, s) NDNBOOST_PP_WHILE_73_I(p, o, s)
+# define NDNBOOST_PP_WHILE_74(p, o, s) NDNBOOST_PP_WHILE_74_I(p, o, s)
+# define NDNBOOST_PP_WHILE_75(p, o, s) NDNBOOST_PP_WHILE_75_I(p, o, s)
+# define NDNBOOST_PP_WHILE_76(p, o, s) NDNBOOST_PP_WHILE_76_I(p, o, s)
+# define NDNBOOST_PP_WHILE_77(p, o, s) NDNBOOST_PP_WHILE_77_I(p, o, s)
+# define NDNBOOST_PP_WHILE_78(p, o, s) NDNBOOST_PP_WHILE_78_I(p, o, s)
+# define NDNBOOST_PP_WHILE_79(p, o, s) NDNBOOST_PP_WHILE_79_I(p, o, s)
+# define NDNBOOST_PP_WHILE_80(p, o, s) NDNBOOST_PP_WHILE_80_I(p, o, s)
+# define NDNBOOST_PP_WHILE_81(p, o, s) NDNBOOST_PP_WHILE_81_I(p, o, s)
+# define NDNBOOST_PP_WHILE_82(p, o, s) NDNBOOST_PP_WHILE_82_I(p, o, s)
+# define NDNBOOST_PP_WHILE_83(p, o, s) NDNBOOST_PP_WHILE_83_I(p, o, s)
+# define NDNBOOST_PP_WHILE_84(p, o, s) NDNBOOST_PP_WHILE_84_I(p, o, s)
+# define NDNBOOST_PP_WHILE_85(p, o, s) NDNBOOST_PP_WHILE_85_I(p, o, s)
+# define NDNBOOST_PP_WHILE_86(p, o, s) NDNBOOST_PP_WHILE_86_I(p, o, s)
+# define NDNBOOST_PP_WHILE_87(p, o, s) NDNBOOST_PP_WHILE_87_I(p, o, s)
+# define NDNBOOST_PP_WHILE_88(p, o, s) NDNBOOST_PP_WHILE_88_I(p, o, s)
+# define NDNBOOST_PP_WHILE_89(p, o, s) NDNBOOST_PP_WHILE_89_I(p, o, s)
+# define NDNBOOST_PP_WHILE_90(p, o, s) NDNBOOST_PP_WHILE_90_I(p, o, s)
+# define NDNBOOST_PP_WHILE_91(p, o, s) NDNBOOST_PP_WHILE_91_I(p, o, s)
+# define NDNBOOST_PP_WHILE_92(p, o, s) NDNBOOST_PP_WHILE_92_I(p, o, s)
+# define NDNBOOST_PP_WHILE_93(p, o, s) NDNBOOST_PP_WHILE_93_I(p, o, s)
+# define NDNBOOST_PP_WHILE_94(p, o, s) NDNBOOST_PP_WHILE_94_I(p, o, s)
+# define NDNBOOST_PP_WHILE_95(p, o, s) NDNBOOST_PP_WHILE_95_I(p, o, s)
+# define NDNBOOST_PP_WHILE_96(p, o, s) NDNBOOST_PP_WHILE_96_I(p, o, s)
+# define NDNBOOST_PP_WHILE_97(p, o, s) NDNBOOST_PP_WHILE_97_I(p, o, s)
+# define NDNBOOST_PP_WHILE_98(p, o, s) NDNBOOST_PP_WHILE_98_I(p, o, s)
+# define NDNBOOST_PP_WHILE_99(p, o, s) NDNBOOST_PP_WHILE_99_I(p, o, s)
+# define NDNBOOST_PP_WHILE_100(p, o, s) NDNBOOST_PP_WHILE_100_I(p, o, s)
+# define NDNBOOST_PP_WHILE_101(p, o, s) NDNBOOST_PP_WHILE_101_I(p, o, s)
+# define NDNBOOST_PP_WHILE_102(p, o, s) NDNBOOST_PP_WHILE_102_I(p, o, s)
+# define NDNBOOST_PP_WHILE_103(p, o, s) NDNBOOST_PP_WHILE_103_I(p, o, s)
+# define NDNBOOST_PP_WHILE_104(p, o, s) NDNBOOST_PP_WHILE_104_I(p, o, s)
+# define NDNBOOST_PP_WHILE_105(p, o, s) NDNBOOST_PP_WHILE_105_I(p, o, s)
+# define NDNBOOST_PP_WHILE_106(p, o, s) NDNBOOST_PP_WHILE_106_I(p, o, s)
+# define NDNBOOST_PP_WHILE_107(p, o, s) NDNBOOST_PP_WHILE_107_I(p, o, s)
+# define NDNBOOST_PP_WHILE_108(p, o, s) NDNBOOST_PP_WHILE_108_I(p, o, s)
+# define NDNBOOST_PP_WHILE_109(p, o, s) NDNBOOST_PP_WHILE_109_I(p, o, s)
+# define NDNBOOST_PP_WHILE_110(p, o, s) NDNBOOST_PP_WHILE_110_I(p, o, s)
+# define NDNBOOST_PP_WHILE_111(p, o, s) NDNBOOST_PP_WHILE_111_I(p, o, s)
+# define NDNBOOST_PP_WHILE_112(p, o, s) NDNBOOST_PP_WHILE_112_I(p, o, s)
+# define NDNBOOST_PP_WHILE_113(p, o, s) NDNBOOST_PP_WHILE_113_I(p, o, s)
+# define NDNBOOST_PP_WHILE_114(p, o, s) NDNBOOST_PP_WHILE_114_I(p, o, s)
+# define NDNBOOST_PP_WHILE_115(p, o, s) NDNBOOST_PP_WHILE_115_I(p, o, s)
+# define NDNBOOST_PP_WHILE_116(p, o, s) NDNBOOST_PP_WHILE_116_I(p, o, s)
+# define NDNBOOST_PP_WHILE_117(p, o, s) NDNBOOST_PP_WHILE_117_I(p, o, s)
+# define NDNBOOST_PP_WHILE_118(p, o, s) NDNBOOST_PP_WHILE_118_I(p, o, s)
+# define NDNBOOST_PP_WHILE_119(p, o, s) NDNBOOST_PP_WHILE_119_I(p, o, s)
+# define NDNBOOST_PP_WHILE_120(p, o, s) NDNBOOST_PP_WHILE_120_I(p, o, s)
+# define NDNBOOST_PP_WHILE_121(p, o, s) NDNBOOST_PP_WHILE_121_I(p, o, s)
+# define NDNBOOST_PP_WHILE_122(p, o, s) NDNBOOST_PP_WHILE_122_I(p, o, s)
+# define NDNBOOST_PP_WHILE_123(p, o, s) NDNBOOST_PP_WHILE_123_I(p, o, s)
+# define NDNBOOST_PP_WHILE_124(p, o, s) NDNBOOST_PP_WHILE_124_I(p, o, s)
+# define NDNBOOST_PP_WHILE_125(p, o, s) NDNBOOST_PP_WHILE_125_I(p, o, s)
+# define NDNBOOST_PP_WHILE_126(p, o, s) NDNBOOST_PP_WHILE_126_I(p, o, s)
+# define NDNBOOST_PP_WHILE_127(p, o, s) NDNBOOST_PP_WHILE_127_I(p, o, s)
+# define NDNBOOST_PP_WHILE_128(p, o, s) NDNBOOST_PP_WHILE_128_I(p, o, s)
+# define NDNBOOST_PP_WHILE_129(p, o, s) NDNBOOST_PP_WHILE_129_I(p, o, s)
+# define NDNBOOST_PP_WHILE_130(p, o, s) NDNBOOST_PP_WHILE_130_I(p, o, s)
+# define NDNBOOST_PP_WHILE_131(p, o, s) NDNBOOST_PP_WHILE_131_I(p, o, s)
+# define NDNBOOST_PP_WHILE_132(p, o, s) NDNBOOST_PP_WHILE_132_I(p, o, s)
+# define NDNBOOST_PP_WHILE_133(p, o, s) NDNBOOST_PP_WHILE_133_I(p, o, s)
+# define NDNBOOST_PP_WHILE_134(p, o, s) NDNBOOST_PP_WHILE_134_I(p, o, s)
+# define NDNBOOST_PP_WHILE_135(p, o, s) NDNBOOST_PP_WHILE_135_I(p, o, s)
+# define NDNBOOST_PP_WHILE_136(p, o, s) NDNBOOST_PP_WHILE_136_I(p, o, s)
+# define NDNBOOST_PP_WHILE_137(p, o, s) NDNBOOST_PP_WHILE_137_I(p, o, s)
+# define NDNBOOST_PP_WHILE_138(p, o, s) NDNBOOST_PP_WHILE_138_I(p, o, s)
+# define NDNBOOST_PP_WHILE_139(p, o, s) NDNBOOST_PP_WHILE_139_I(p, o, s)
+# define NDNBOOST_PP_WHILE_140(p, o, s) NDNBOOST_PP_WHILE_140_I(p, o, s)
+# define NDNBOOST_PP_WHILE_141(p, o, s) NDNBOOST_PP_WHILE_141_I(p, o, s)
+# define NDNBOOST_PP_WHILE_142(p, o, s) NDNBOOST_PP_WHILE_142_I(p, o, s)
+# define NDNBOOST_PP_WHILE_143(p, o, s) NDNBOOST_PP_WHILE_143_I(p, o, s)
+# define NDNBOOST_PP_WHILE_144(p, o, s) NDNBOOST_PP_WHILE_144_I(p, o, s)
+# define NDNBOOST_PP_WHILE_145(p, o, s) NDNBOOST_PP_WHILE_145_I(p, o, s)
+# define NDNBOOST_PP_WHILE_146(p, o, s) NDNBOOST_PP_WHILE_146_I(p, o, s)
+# define NDNBOOST_PP_WHILE_147(p, o, s) NDNBOOST_PP_WHILE_147_I(p, o, s)
+# define NDNBOOST_PP_WHILE_148(p, o, s) NDNBOOST_PP_WHILE_148_I(p, o, s)
+# define NDNBOOST_PP_WHILE_149(p, o, s) NDNBOOST_PP_WHILE_149_I(p, o, s)
+# define NDNBOOST_PP_WHILE_150(p, o, s) NDNBOOST_PP_WHILE_150_I(p, o, s)
+# define NDNBOOST_PP_WHILE_151(p, o, s) NDNBOOST_PP_WHILE_151_I(p, o, s)
+# define NDNBOOST_PP_WHILE_152(p, o, s) NDNBOOST_PP_WHILE_152_I(p, o, s)
+# define NDNBOOST_PP_WHILE_153(p, o, s) NDNBOOST_PP_WHILE_153_I(p, o, s)
+# define NDNBOOST_PP_WHILE_154(p, o, s) NDNBOOST_PP_WHILE_154_I(p, o, s)
+# define NDNBOOST_PP_WHILE_155(p, o, s) NDNBOOST_PP_WHILE_155_I(p, o, s)
+# define NDNBOOST_PP_WHILE_156(p, o, s) NDNBOOST_PP_WHILE_156_I(p, o, s)
+# define NDNBOOST_PP_WHILE_157(p, o, s) NDNBOOST_PP_WHILE_157_I(p, o, s)
+# define NDNBOOST_PP_WHILE_158(p, o, s) NDNBOOST_PP_WHILE_158_I(p, o, s)
+# define NDNBOOST_PP_WHILE_159(p, o, s) NDNBOOST_PP_WHILE_159_I(p, o, s)
+# define NDNBOOST_PP_WHILE_160(p, o, s) NDNBOOST_PP_WHILE_160_I(p, o, s)
+# define NDNBOOST_PP_WHILE_161(p, o, s) NDNBOOST_PP_WHILE_161_I(p, o, s)
+# define NDNBOOST_PP_WHILE_162(p, o, s) NDNBOOST_PP_WHILE_162_I(p, o, s)
+# define NDNBOOST_PP_WHILE_163(p, o, s) NDNBOOST_PP_WHILE_163_I(p, o, s)
+# define NDNBOOST_PP_WHILE_164(p, o, s) NDNBOOST_PP_WHILE_164_I(p, o, s)
+# define NDNBOOST_PP_WHILE_165(p, o, s) NDNBOOST_PP_WHILE_165_I(p, o, s)
+# define NDNBOOST_PP_WHILE_166(p, o, s) NDNBOOST_PP_WHILE_166_I(p, o, s)
+# define NDNBOOST_PP_WHILE_167(p, o, s) NDNBOOST_PP_WHILE_167_I(p, o, s)
+# define NDNBOOST_PP_WHILE_168(p, o, s) NDNBOOST_PP_WHILE_168_I(p, o, s)
+# define NDNBOOST_PP_WHILE_169(p, o, s) NDNBOOST_PP_WHILE_169_I(p, o, s)
+# define NDNBOOST_PP_WHILE_170(p, o, s) NDNBOOST_PP_WHILE_170_I(p, o, s)
+# define NDNBOOST_PP_WHILE_171(p, o, s) NDNBOOST_PP_WHILE_171_I(p, o, s)
+# define NDNBOOST_PP_WHILE_172(p, o, s) NDNBOOST_PP_WHILE_172_I(p, o, s)
+# define NDNBOOST_PP_WHILE_173(p, o, s) NDNBOOST_PP_WHILE_173_I(p, o, s)
+# define NDNBOOST_PP_WHILE_174(p, o, s) NDNBOOST_PP_WHILE_174_I(p, o, s)
+# define NDNBOOST_PP_WHILE_175(p, o, s) NDNBOOST_PP_WHILE_175_I(p, o, s)
+# define NDNBOOST_PP_WHILE_176(p, o, s) NDNBOOST_PP_WHILE_176_I(p, o, s)
+# define NDNBOOST_PP_WHILE_177(p, o, s) NDNBOOST_PP_WHILE_177_I(p, o, s)
+# define NDNBOOST_PP_WHILE_178(p, o, s) NDNBOOST_PP_WHILE_178_I(p, o, s)
+# define NDNBOOST_PP_WHILE_179(p, o, s) NDNBOOST_PP_WHILE_179_I(p, o, s)
+# define NDNBOOST_PP_WHILE_180(p, o, s) NDNBOOST_PP_WHILE_180_I(p, o, s)
+# define NDNBOOST_PP_WHILE_181(p, o, s) NDNBOOST_PP_WHILE_181_I(p, o, s)
+# define NDNBOOST_PP_WHILE_182(p, o, s) NDNBOOST_PP_WHILE_182_I(p, o, s)
+# define NDNBOOST_PP_WHILE_183(p, o, s) NDNBOOST_PP_WHILE_183_I(p, o, s)
+# define NDNBOOST_PP_WHILE_184(p, o, s) NDNBOOST_PP_WHILE_184_I(p, o, s)
+# define NDNBOOST_PP_WHILE_185(p, o, s) NDNBOOST_PP_WHILE_185_I(p, o, s)
+# define NDNBOOST_PP_WHILE_186(p, o, s) NDNBOOST_PP_WHILE_186_I(p, o, s)
+# define NDNBOOST_PP_WHILE_187(p, o, s) NDNBOOST_PP_WHILE_187_I(p, o, s)
+# define NDNBOOST_PP_WHILE_188(p, o, s) NDNBOOST_PP_WHILE_188_I(p, o, s)
+# define NDNBOOST_PP_WHILE_189(p, o, s) NDNBOOST_PP_WHILE_189_I(p, o, s)
+# define NDNBOOST_PP_WHILE_190(p, o, s) NDNBOOST_PP_WHILE_190_I(p, o, s)
+# define NDNBOOST_PP_WHILE_191(p, o, s) NDNBOOST_PP_WHILE_191_I(p, o, s)
+# define NDNBOOST_PP_WHILE_192(p, o, s) NDNBOOST_PP_WHILE_192_I(p, o, s)
+# define NDNBOOST_PP_WHILE_193(p, o, s) NDNBOOST_PP_WHILE_193_I(p, o, s)
+# define NDNBOOST_PP_WHILE_194(p, o, s) NDNBOOST_PP_WHILE_194_I(p, o, s)
+# define NDNBOOST_PP_WHILE_195(p, o, s) NDNBOOST_PP_WHILE_195_I(p, o, s)
+# define NDNBOOST_PP_WHILE_196(p, o, s) NDNBOOST_PP_WHILE_196_I(p, o, s)
+# define NDNBOOST_PP_WHILE_197(p, o, s) NDNBOOST_PP_WHILE_197_I(p, o, s)
+# define NDNBOOST_PP_WHILE_198(p, o, s) NDNBOOST_PP_WHILE_198_I(p, o, s)
+# define NDNBOOST_PP_WHILE_199(p, o, s) NDNBOOST_PP_WHILE_199_I(p, o, s)
+# define NDNBOOST_PP_WHILE_200(p, o, s) NDNBOOST_PP_WHILE_200_I(p, o, s)
+# define NDNBOOST_PP_WHILE_201(p, o, s) NDNBOOST_PP_WHILE_201_I(p, o, s)
+# define NDNBOOST_PP_WHILE_202(p, o, s) NDNBOOST_PP_WHILE_202_I(p, o, s)
+# define NDNBOOST_PP_WHILE_203(p, o, s) NDNBOOST_PP_WHILE_203_I(p, o, s)
+# define NDNBOOST_PP_WHILE_204(p, o, s) NDNBOOST_PP_WHILE_204_I(p, o, s)
+# define NDNBOOST_PP_WHILE_205(p, o, s) NDNBOOST_PP_WHILE_205_I(p, o, s)
+# define NDNBOOST_PP_WHILE_206(p, o, s) NDNBOOST_PP_WHILE_206_I(p, o, s)
+# define NDNBOOST_PP_WHILE_207(p, o, s) NDNBOOST_PP_WHILE_207_I(p, o, s)
+# define NDNBOOST_PP_WHILE_208(p, o, s) NDNBOOST_PP_WHILE_208_I(p, o, s)
+# define NDNBOOST_PP_WHILE_209(p, o, s) NDNBOOST_PP_WHILE_209_I(p, o, s)
+# define NDNBOOST_PP_WHILE_210(p, o, s) NDNBOOST_PP_WHILE_210_I(p, o, s)
+# define NDNBOOST_PP_WHILE_211(p, o, s) NDNBOOST_PP_WHILE_211_I(p, o, s)
+# define NDNBOOST_PP_WHILE_212(p, o, s) NDNBOOST_PP_WHILE_212_I(p, o, s)
+# define NDNBOOST_PP_WHILE_213(p, o, s) NDNBOOST_PP_WHILE_213_I(p, o, s)
+# define NDNBOOST_PP_WHILE_214(p, o, s) NDNBOOST_PP_WHILE_214_I(p, o, s)
+# define NDNBOOST_PP_WHILE_215(p, o, s) NDNBOOST_PP_WHILE_215_I(p, o, s)
+# define NDNBOOST_PP_WHILE_216(p, o, s) NDNBOOST_PP_WHILE_216_I(p, o, s)
+# define NDNBOOST_PP_WHILE_217(p, o, s) NDNBOOST_PP_WHILE_217_I(p, o, s)
+# define NDNBOOST_PP_WHILE_218(p, o, s) NDNBOOST_PP_WHILE_218_I(p, o, s)
+# define NDNBOOST_PP_WHILE_219(p, o, s) NDNBOOST_PP_WHILE_219_I(p, o, s)
+# define NDNBOOST_PP_WHILE_220(p, o, s) NDNBOOST_PP_WHILE_220_I(p, o, s)
+# define NDNBOOST_PP_WHILE_221(p, o, s) NDNBOOST_PP_WHILE_221_I(p, o, s)
+# define NDNBOOST_PP_WHILE_222(p, o, s) NDNBOOST_PP_WHILE_222_I(p, o, s)
+# define NDNBOOST_PP_WHILE_223(p, o, s) NDNBOOST_PP_WHILE_223_I(p, o, s)
+# define NDNBOOST_PP_WHILE_224(p, o, s) NDNBOOST_PP_WHILE_224_I(p, o, s)
+# define NDNBOOST_PP_WHILE_225(p, o, s) NDNBOOST_PP_WHILE_225_I(p, o, s)
+# define NDNBOOST_PP_WHILE_226(p, o, s) NDNBOOST_PP_WHILE_226_I(p, o, s)
+# define NDNBOOST_PP_WHILE_227(p, o, s) NDNBOOST_PP_WHILE_227_I(p, o, s)
+# define NDNBOOST_PP_WHILE_228(p, o, s) NDNBOOST_PP_WHILE_228_I(p, o, s)
+# define NDNBOOST_PP_WHILE_229(p, o, s) NDNBOOST_PP_WHILE_229_I(p, o, s)
+# define NDNBOOST_PP_WHILE_230(p, o, s) NDNBOOST_PP_WHILE_230_I(p, o, s)
+# define NDNBOOST_PP_WHILE_231(p, o, s) NDNBOOST_PP_WHILE_231_I(p, o, s)
+# define NDNBOOST_PP_WHILE_232(p, o, s) NDNBOOST_PP_WHILE_232_I(p, o, s)
+# define NDNBOOST_PP_WHILE_233(p, o, s) NDNBOOST_PP_WHILE_233_I(p, o, s)
+# define NDNBOOST_PP_WHILE_234(p, o, s) NDNBOOST_PP_WHILE_234_I(p, o, s)
+# define NDNBOOST_PP_WHILE_235(p, o, s) NDNBOOST_PP_WHILE_235_I(p, o, s)
+# define NDNBOOST_PP_WHILE_236(p, o, s) NDNBOOST_PP_WHILE_236_I(p, o, s)
+# define NDNBOOST_PP_WHILE_237(p, o, s) NDNBOOST_PP_WHILE_237_I(p, o, s)
+# define NDNBOOST_PP_WHILE_238(p, o, s) NDNBOOST_PP_WHILE_238_I(p, o, s)
+# define NDNBOOST_PP_WHILE_239(p, o, s) NDNBOOST_PP_WHILE_239_I(p, o, s)
+# define NDNBOOST_PP_WHILE_240(p, o, s) NDNBOOST_PP_WHILE_240_I(p, o, s)
+# define NDNBOOST_PP_WHILE_241(p, o, s) NDNBOOST_PP_WHILE_241_I(p, o, s)
+# define NDNBOOST_PP_WHILE_242(p, o, s) NDNBOOST_PP_WHILE_242_I(p, o, s)
+# define NDNBOOST_PP_WHILE_243(p, o, s) NDNBOOST_PP_WHILE_243_I(p, o, s)
+# define NDNBOOST_PP_WHILE_244(p, o, s) NDNBOOST_PP_WHILE_244_I(p, o, s)
+# define NDNBOOST_PP_WHILE_245(p, o, s) NDNBOOST_PP_WHILE_245_I(p, o, s)
+# define NDNBOOST_PP_WHILE_246(p, o, s) NDNBOOST_PP_WHILE_246_I(p, o, s)
+# define NDNBOOST_PP_WHILE_247(p, o, s) NDNBOOST_PP_WHILE_247_I(p, o, s)
+# define NDNBOOST_PP_WHILE_248(p, o, s) NDNBOOST_PP_WHILE_248_I(p, o, s)
+# define NDNBOOST_PP_WHILE_249(p, o, s) NDNBOOST_PP_WHILE_249_I(p, o, s)
+# define NDNBOOST_PP_WHILE_250(p, o, s) NDNBOOST_PP_WHILE_250_I(p, o, s)
+# define NDNBOOST_PP_WHILE_251(p, o, s) NDNBOOST_PP_WHILE_251_I(p, o, s)
+# define NDNBOOST_PP_WHILE_252(p, o, s) NDNBOOST_PP_WHILE_252_I(p, o, s)
+# define NDNBOOST_PP_WHILE_253(p, o, s) NDNBOOST_PP_WHILE_253_I(p, o, s)
+# define NDNBOOST_PP_WHILE_254(p, o, s) NDNBOOST_PP_WHILE_254_I(p, o, s)
+# define NDNBOOST_PP_WHILE_255(p, o, s) NDNBOOST_PP_WHILE_255_I(p, o, s)
+# define NDNBOOST_PP_WHILE_256(p, o, s) NDNBOOST_PP_WHILE_256_I(p, o, s)
 #
-# define BOOST_PP_WHILE_1_I(p, o, s) BOOST_PP_IF(p(2, s), BOOST_PP_WHILE_2, s BOOST_PP_TUPLE_EAT_3)(p, o, o(2, s))
-# define BOOST_PP_WHILE_2_I(p, o, s) BOOST_PP_IF(p(3, s), BOOST_PP_WHILE_3, s BOOST_PP_TUPLE_EAT_3)(p, o, o(3, s))
-# define BOOST_PP_WHILE_3_I(p, o, s) BOOST_PP_IF(p(4, s), BOOST_PP_WHILE_4, s BOOST_PP_TUPLE_EAT_3)(p, o, o(4, s))
-# define BOOST_PP_WHILE_4_I(p, o, s) BOOST_PP_IF(p(5, s), BOOST_PP_WHILE_5, s BOOST_PP_TUPLE_EAT_3)(p, o, o(5, s))
-# define BOOST_PP_WHILE_5_I(p, o, s) BOOST_PP_IF(p(6, s), BOOST_PP_WHILE_6, s BOOST_PP_TUPLE_EAT_3)(p, o, o(6, s))
-# define BOOST_PP_WHILE_6_I(p, o, s) BOOST_PP_IF(p(7, s), BOOST_PP_WHILE_7, s BOOST_PP_TUPLE_EAT_3)(p, o, o(7, s))
-# define BOOST_PP_WHILE_7_I(p, o, s) BOOST_PP_IF(p(8, s), BOOST_PP_WHILE_8, s BOOST_PP_TUPLE_EAT_3)(p, o, o(8, s))
-# define BOOST_PP_WHILE_8_I(p, o, s) BOOST_PP_IF(p(9, s), BOOST_PP_WHILE_9, s BOOST_PP_TUPLE_EAT_3)(p, o, o(9, s))
-# define BOOST_PP_WHILE_9_I(p, o, s) BOOST_PP_IF(p(10, s), BOOST_PP_WHILE_10, s BOOST_PP_TUPLE_EAT_3)(p, o, o(10, s))
-# define BOOST_PP_WHILE_10_I(p, o, s) BOOST_PP_IF(p(11, s), BOOST_PP_WHILE_11, s BOOST_PP_TUPLE_EAT_3)(p, o, o(11, s))
-# define BOOST_PP_WHILE_11_I(p, o, s) BOOST_PP_IF(p(12, s), BOOST_PP_WHILE_12, s BOOST_PP_TUPLE_EAT_3)(p, o, o(12, s))
-# define BOOST_PP_WHILE_12_I(p, o, s) BOOST_PP_IF(p(13, s), BOOST_PP_WHILE_13, s BOOST_PP_TUPLE_EAT_3)(p, o, o(13, s))
-# define BOOST_PP_WHILE_13_I(p, o, s) BOOST_PP_IF(p(14, s), BOOST_PP_WHILE_14, s BOOST_PP_TUPLE_EAT_3)(p, o, o(14, s))
-# define BOOST_PP_WHILE_14_I(p, o, s) BOOST_PP_IF(p(15, s), BOOST_PP_WHILE_15, s BOOST_PP_TUPLE_EAT_3)(p, o, o(15, s))
-# define BOOST_PP_WHILE_15_I(p, o, s) BOOST_PP_IF(p(16, s), BOOST_PP_WHILE_16, s BOOST_PP_TUPLE_EAT_3)(p, o, o(16, s))
-# define BOOST_PP_WHILE_16_I(p, o, s) BOOST_PP_IF(p(17, s), BOOST_PP_WHILE_17, s BOOST_PP_TUPLE_EAT_3)(p, o, o(17, s))
-# define BOOST_PP_WHILE_17_I(p, o, s) BOOST_PP_IF(p(18, s), BOOST_PP_WHILE_18, s BOOST_PP_TUPLE_EAT_3)(p, o, o(18, s))
-# define BOOST_PP_WHILE_18_I(p, o, s) BOOST_PP_IF(p(19, s), BOOST_PP_WHILE_19, s BOOST_PP_TUPLE_EAT_3)(p, o, o(19, s))
-# define BOOST_PP_WHILE_19_I(p, o, s) BOOST_PP_IF(p(20, s), BOOST_PP_WHILE_20, s BOOST_PP_TUPLE_EAT_3)(p, o, o(20, s))
-# define BOOST_PP_WHILE_20_I(p, o, s) BOOST_PP_IF(p(21, s), BOOST_PP_WHILE_21, s BOOST_PP_TUPLE_EAT_3)(p, o, o(21, s))
-# define BOOST_PP_WHILE_21_I(p, o, s) BOOST_PP_IF(p(22, s), BOOST_PP_WHILE_22, s BOOST_PP_TUPLE_EAT_3)(p, o, o(22, s))
-# define BOOST_PP_WHILE_22_I(p, o, s) BOOST_PP_IF(p(23, s), BOOST_PP_WHILE_23, s BOOST_PP_TUPLE_EAT_3)(p, o, o(23, s))
-# define BOOST_PP_WHILE_23_I(p, o, s) BOOST_PP_IF(p(24, s), BOOST_PP_WHILE_24, s BOOST_PP_TUPLE_EAT_3)(p, o, o(24, s))
-# define BOOST_PP_WHILE_24_I(p, o, s) BOOST_PP_IF(p(25, s), BOOST_PP_WHILE_25, s BOOST_PP_TUPLE_EAT_3)(p, o, o(25, s))
-# define BOOST_PP_WHILE_25_I(p, o, s) BOOST_PP_IF(p(26, s), BOOST_PP_WHILE_26, s BOOST_PP_TUPLE_EAT_3)(p, o, o(26, s))
-# define BOOST_PP_WHILE_26_I(p, o, s) BOOST_PP_IF(p(27, s), BOOST_PP_WHILE_27, s BOOST_PP_TUPLE_EAT_3)(p, o, o(27, s))
-# define BOOST_PP_WHILE_27_I(p, o, s) BOOST_PP_IF(p(28, s), BOOST_PP_WHILE_28, s BOOST_PP_TUPLE_EAT_3)(p, o, o(28, s))
-# define BOOST_PP_WHILE_28_I(p, o, s) BOOST_PP_IF(p(29, s), BOOST_PP_WHILE_29, s BOOST_PP_TUPLE_EAT_3)(p, o, o(29, s))
-# define BOOST_PP_WHILE_29_I(p, o, s) BOOST_PP_IF(p(30, s), BOOST_PP_WHILE_30, s BOOST_PP_TUPLE_EAT_3)(p, o, o(30, s))
-# define BOOST_PP_WHILE_30_I(p, o, s) BOOST_PP_IF(p(31, s), BOOST_PP_WHILE_31, s BOOST_PP_TUPLE_EAT_3)(p, o, o(31, s))
-# define BOOST_PP_WHILE_31_I(p, o, s) BOOST_PP_IF(p(32, s), BOOST_PP_WHILE_32, s BOOST_PP_TUPLE_EAT_3)(p, o, o(32, s))
-# define BOOST_PP_WHILE_32_I(p, o, s) BOOST_PP_IF(p(33, s), BOOST_PP_WHILE_33, s BOOST_PP_TUPLE_EAT_3)(p, o, o(33, s))
-# define BOOST_PP_WHILE_33_I(p, o, s) BOOST_PP_IF(p(34, s), BOOST_PP_WHILE_34, s BOOST_PP_TUPLE_EAT_3)(p, o, o(34, s))
-# define BOOST_PP_WHILE_34_I(p, o, s) BOOST_PP_IF(p(35, s), BOOST_PP_WHILE_35, s BOOST_PP_TUPLE_EAT_3)(p, o, o(35, s))
-# define BOOST_PP_WHILE_35_I(p, o, s) BOOST_PP_IF(p(36, s), BOOST_PP_WHILE_36, s BOOST_PP_TUPLE_EAT_3)(p, o, o(36, s))
-# define BOOST_PP_WHILE_36_I(p, o, s) BOOST_PP_IF(p(37, s), BOOST_PP_WHILE_37, s BOOST_PP_TUPLE_EAT_3)(p, o, o(37, s))
-# define BOOST_PP_WHILE_37_I(p, o, s) BOOST_PP_IF(p(38, s), BOOST_PP_WHILE_38, s BOOST_PP_TUPLE_EAT_3)(p, o, o(38, s))
-# define BOOST_PP_WHILE_38_I(p, o, s) BOOST_PP_IF(p(39, s), BOOST_PP_WHILE_39, s BOOST_PP_TUPLE_EAT_3)(p, o, o(39, s))
-# define BOOST_PP_WHILE_39_I(p, o, s) BOOST_PP_IF(p(40, s), BOOST_PP_WHILE_40, s BOOST_PP_TUPLE_EAT_3)(p, o, o(40, s))
-# define BOOST_PP_WHILE_40_I(p, o, s) BOOST_PP_IF(p(41, s), BOOST_PP_WHILE_41, s BOOST_PP_TUPLE_EAT_3)(p, o, o(41, s))
-# define BOOST_PP_WHILE_41_I(p, o, s) BOOST_PP_IF(p(42, s), BOOST_PP_WHILE_42, s BOOST_PP_TUPLE_EAT_3)(p, o, o(42, s))
-# define BOOST_PP_WHILE_42_I(p, o, s) BOOST_PP_IF(p(43, s), BOOST_PP_WHILE_43, s BOOST_PP_TUPLE_EAT_3)(p, o, o(43, s))
-# define BOOST_PP_WHILE_43_I(p, o, s) BOOST_PP_IF(p(44, s), BOOST_PP_WHILE_44, s BOOST_PP_TUPLE_EAT_3)(p, o, o(44, s))
-# define BOOST_PP_WHILE_44_I(p, o, s) BOOST_PP_IF(p(45, s), BOOST_PP_WHILE_45, s BOOST_PP_TUPLE_EAT_3)(p, o, o(45, s))
-# define BOOST_PP_WHILE_45_I(p, o, s) BOOST_PP_IF(p(46, s), BOOST_PP_WHILE_46, s BOOST_PP_TUPLE_EAT_3)(p, o, o(46, s))
-# define BOOST_PP_WHILE_46_I(p, o, s) BOOST_PP_IF(p(47, s), BOOST_PP_WHILE_47, s BOOST_PP_TUPLE_EAT_3)(p, o, o(47, s))
-# define BOOST_PP_WHILE_47_I(p, o, s) BOOST_PP_IF(p(48, s), BOOST_PP_WHILE_48, s BOOST_PP_TUPLE_EAT_3)(p, o, o(48, s))
-# define BOOST_PP_WHILE_48_I(p, o, s) BOOST_PP_IF(p(49, s), BOOST_PP_WHILE_49, s BOOST_PP_TUPLE_EAT_3)(p, o, o(49, s))
-# define BOOST_PP_WHILE_49_I(p, o, s) BOOST_PP_IF(p(50, s), BOOST_PP_WHILE_50, s BOOST_PP_TUPLE_EAT_3)(p, o, o(50, s))
-# define BOOST_PP_WHILE_50_I(p, o, s) BOOST_PP_IF(p(51, s), BOOST_PP_WHILE_51, s BOOST_PP_TUPLE_EAT_3)(p, o, o(51, s))
-# define BOOST_PP_WHILE_51_I(p, o, s) BOOST_PP_IF(p(52, s), BOOST_PP_WHILE_52, s BOOST_PP_TUPLE_EAT_3)(p, o, o(52, s))
-# define BOOST_PP_WHILE_52_I(p, o, s) BOOST_PP_IF(p(53, s), BOOST_PP_WHILE_53, s BOOST_PP_TUPLE_EAT_3)(p, o, o(53, s))
-# define BOOST_PP_WHILE_53_I(p, o, s) BOOST_PP_IF(p(54, s), BOOST_PP_WHILE_54, s BOOST_PP_TUPLE_EAT_3)(p, o, o(54, s))
-# define BOOST_PP_WHILE_54_I(p, o, s) BOOST_PP_IF(p(55, s), BOOST_PP_WHILE_55, s BOOST_PP_TUPLE_EAT_3)(p, o, o(55, s))
-# define BOOST_PP_WHILE_55_I(p, o, s) BOOST_PP_IF(p(56, s), BOOST_PP_WHILE_56, s BOOST_PP_TUPLE_EAT_3)(p, o, o(56, s))
-# define BOOST_PP_WHILE_56_I(p, o, s) BOOST_PP_IF(p(57, s), BOOST_PP_WHILE_57, s BOOST_PP_TUPLE_EAT_3)(p, o, o(57, s))
-# define BOOST_PP_WHILE_57_I(p, o, s) BOOST_PP_IF(p(58, s), BOOST_PP_WHILE_58, s BOOST_PP_TUPLE_EAT_3)(p, o, o(58, s))
-# define BOOST_PP_WHILE_58_I(p, o, s) BOOST_PP_IF(p(59, s), BOOST_PP_WHILE_59, s BOOST_PP_TUPLE_EAT_3)(p, o, o(59, s))
-# define BOOST_PP_WHILE_59_I(p, o, s) BOOST_PP_IF(p(60, s), BOOST_PP_WHILE_60, s BOOST_PP_TUPLE_EAT_3)(p, o, o(60, s))
-# define BOOST_PP_WHILE_60_I(p, o, s) BOOST_PP_IF(p(61, s), BOOST_PP_WHILE_61, s BOOST_PP_TUPLE_EAT_3)(p, o, o(61, s))
-# define BOOST_PP_WHILE_61_I(p, o, s) BOOST_PP_IF(p(62, s), BOOST_PP_WHILE_62, s BOOST_PP_TUPLE_EAT_3)(p, o, o(62, s))
-# define BOOST_PP_WHILE_62_I(p, o, s) BOOST_PP_IF(p(63, s), BOOST_PP_WHILE_63, s BOOST_PP_TUPLE_EAT_3)(p, o, o(63, s))
-# define BOOST_PP_WHILE_63_I(p, o, s) BOOST_PP_IF(p(64, s), BOOST_PP_WHILE_64, s BOOST_PP_TUPLE_EAT_3)(p, o, o(64, s))
-# define BOOST_PP_WHILE_64_I(p, o, s) BOOST_PP_IF(p(65, s), BOOST_PP_WHILE_65, s BOOST_PP_TUPLE_EAT_3)(p, o, o(65, s))
-# define BOOST_PP_WHILE_65_I(p, o, s) BOOST_PP_IF(p(66, s), BOOST_PP_WHILE_66, s BOOST_PP_TUPLE_EAT_3)(p, o, o(66, s))
-# define BOOST_PP_WHILE_66_I(p, o, s) BOOST_PP_IF(p(67, s), BOOST_PP_WHILE_67, s BOOST_PP_TUPLE_EAT_3)(p, o, o(67, s))
-# define BOOST_PP_WHILE_67_I(p, o, s) BOOST_PP_IF(p(68, s), BOOST_PP_WHILE_68, s BOOST_PP_TUPLE_EAT_3)(p, o, o(68, s))
-# define BOOST_PP_WHILE_68_I(p, o, s) BOOST_PP_IF(p(69, s), BOOST_PP_WHILE_69, s BOOST_PP_TUPLE_EAT_3)(p, o, o(69, s))
-# define BOOST_PP_WHILE_69_I(p, o, s) BOOST_PP_IF(p(70, s), BOOST_PP_WHILE_70, s BOOST_PP_TUPLE_EAT_3)(p, o, o(70, s))
-# define BOOST_PP_WHILE_70_I(p, o, s) BOOST_PP_IF(p(71, s), BOOST_PP_WHILE_71, s BOOST_PP_TUPLE_EAT_3)(p, o, o(71, s))
-# define BOOST_PP_WHILE_71_I(p, o, s) BOOST_PP_IF(p(72, s), BOOST_PP_WHILE_72, s BOOST_PP_TUPLE_EAT_3)(p, o, o(72, s))
-# define BOOST_PP_WHILE_72_I(p, o, s) BOOST_PP_IF(p(73, s), BOOST_PP_WHILE_73, s BOOST_PP_TUPLE_EAT_3)(p, o, o(73, s))
-# define BOOST_PP_WHILE_73_I(p, o, s) BOOST_PP_IF(p(74, s), BOOST_PP_WHILE_74, s BOOST_PP_TUPLE_EAT_3)(p, o, o(74, s))
-# define BOOST_PP_WHILE_74_I(p, o, s) BOOST_PP_IF(p(75, s), BOOST_PP_WHILE_75, s BOOST_PP_TUPLE_EAT_3)(p, o, o(75, s))
-# define BOOST_PP_WHILE_75_I(p, o, s) BOOST_PP_IF(p(76, s), BOOST_PP_WHILE_76, s BOOST_PP_TUPLE_EAT_3)(p, o, o(76, s))
-# define BOOST_PP_WHILE_76_I(p, o, s) BOOST_PP_IF(p(77, s), BOOST_PP_WHILE_77, s BOOST_PP_TUPLE_EAT_3)(p, o, o(77, s))
-# define BOOST_PP_WHILE_77_I(p, o, s) BOOST_PP_IF(p(78, s), BOOST_PP_WHILE_78, s BOOST_PP_TUPLE_EAT_3)(p, o, o(78, s))
-# define BOOST_PP_WHILE_78_I(p, o, s) BOOST_PP_IF(p(79, s), BOOST_PP_WHILE_79, s BOOST_PP_TUPLE_EAT_3)(p, o, o(79, s))
-# define BOOST_PP_WHILE_79_I(p, o, s) BOOST_PP_IF(p(80, s), BOOST_PP_WHILE_80, s BOOST_PP_TUPLE_EAT_3)(p, o, o(80, s))
-# define BOOST_PP_WHILE_80_I(p, o, s) BOOST_PP_IF(p(81, s), BOOST_PP_WHILE_81, s BOOST_PP_TUPLE_EAT_3)(p, o, o(81, s))
-# define BOOST_PP_WHILE_81_I(p, o, s) BOOST_PP_IF(p(82, s), BOOST_PP_WHILE_82, s BOOST_PP_TUPLE_EAT_3)(p, o, o(82, s))
-# define BOOST_PP_WHILE_82_I(p, o, s) BOOST_PP_IF(p(83, s), BOOST_PP_WHILE_83, s BOOST_PP_TUPLE_EAT_3)(p, o, o(83, s))
-# define BOOST_PP_WHILE_83_I(p, o, s) BOOST_PP_IF(p(84, s), BOOST_PP_WHILE_84, s BOOST_PP_TUPLE_EAT_3)(p, o, o(84, s))
-# define BOOST_PP_WHILE_84_I(p, o, s) BOOST_PP_IF(p(85, s), BOOST_PP_WHILE_85, s BOOST_PP_TUPLE_EAT_3)(p, o, o(85, s))
-# define BOOST_PP_WHILE_85_I(p, o, s) BOOST_PP_IF(p(86, s), BOOST_PP_WHILE_86, s BOOST_PP_TUPLE_EAT_3)(p, o, o(86, s))
-# define BOOST_PP_WHILE_86_I(p, o, s) BOOST_PP_IF(p(87, s), BOOST_PP_WHILE_87, s BOOST_PP_TUPLE_EAT_3)(p, o, o(87, s))
-# define BOOST_PP_WHILE_87_I(p, o, s) BOOST_PP_IF(p(88, s), BOOST_PP_WHILE_88, s BOOST_PP_TUPLE_EAT_3)(p, o, o(88, s))
-# define BOOST_PP_WHILE_88_I(p, o, s) BOOST_PP_IF(p(89, s), BOOST_PP_WHILE_89, s BOOST_PP_TUPLE_EAT_3)(p, o, o(89, s))
-# define BOOST_PP_WHILE_89_I(p, o, s) BOOST_PP_IF(p(90, s), BOOST_PP_WHILE_90, s BOOST_PP_TUPLE_EAT_3)(p, o, o(90, s))
-# define BOOST_PP_WHILE_90_I(p, o, s) BOOST_PP_IF(p(91, s), BOOST_PP_WHILE_91, s BOOST_PP_TUPLE_EAT_3)(p, o, o(91, s))
-# define BOOST_PP_WHILE_91_I(p, o, s) BOOST_PP_IF(p(92, s), BOOST_PP_WHILE_92, s BOOST_PP_TUPLE_EAT_3)(p, o, o(92, s))
-# define BOOST_PP_WHILE_92_I(p, o, s) BOOST_PP_IF(p(93, s), BOOST_PP_WHILE_93, s BOOST_PP_TUPLE_EAT_3)(p, o, o(93, s))
-# define BOOST_PP_WHILE_93_I(p, o, s) BOOST_PP_IF(p(94, s), BOOST_PP_WHILE_94, s BOOST_PP_TUPLE_EAT_3)(p, o, o(94, s))
-# define BOOST_PP_WHILE_94_I(p, o, s) BOOST_PP_IF(p(95, s), BOOST_PP_WHILE_95, s BOOST_PP_TUPLE_EAT_3)(p, o, o(95, s))
-# define BOOST_PP_WHILE_95_I(p, o, s) BOOST_PP_IF(p(96, s), BOOST_PP_WHILE_96, s BOOST_PP_TUPLE_EAT_3)(p, o, o(96, s))
-# define BOOST_PP_WHILE_96_I(p, o, s) BOOST_PP_IF(p(97, s), BOOST_PP_WHILE_97, s BOOST_PP_TUPLE_EAT_3)(p, o, o(97, s))
-# define BOOST_PP_WHILE_97_I(p, o, s) BOOST_PP_IF(p(98, s), BOOST_PP_WHILE_98, s BOOST_PP_TUPLE_EAT_3)(p, o, o(98, s))
-# define BOOST_PP_WHILE_98_I(p, o, s) BOOST_PP_IF(p(99, s), BOOST_PP_WHILE_99, s BOOST_PP_TUPLE_EAT_3)(p, o, o(99, s))
-# define BOOST_PP_WHILE_99_I(p, o, s) BOOST_PP_IF(p(100, s), BOOST_PP_WHILE_100, s BOOST_PP_TUPLE_EAT_3)(p, o, o(100, s))
-# define BOOST_PP_WHILE_100_I(p, o, s) BOOST_PP_IF(p(101, s), BOOST_PP_WHILE_101, s BOOST_PP_TUPLE_EAT_3)(p, o, o(101, s))
-# define BOOST_PP_WHILE_101_I(p, o, s) BOOST_PP_IF(p(102, s), BOOST_PP_WHILE_102, s BOOST_PP_TUPLE_EAT_3)(p, o, o(102, s))
-# define BOOST_PP_WHILE_102_I(p, o, s) BOOST_PP_IF(p(103, s), BOOST_PP_WHILE_103, s BOOST_PP_TUPLE_EAT_3)(p, o, o(103, s))
-# define BOOST_PP_WHILE_103_I(p, o, s) BOOST_PP_IF(p(104, s), BOOST_PP_WHILE_104, s BOOST_PP_TUPLE_EAT_3)(p, o, o(104, s))
-# define BOOST_PP_WHILE_104_I(p, o, s) BOOST_PP_IF(p(105, s), BOOST_PP_WHILE_105, s BOOST_PP_TUPLE_EAT_3)(p, o, o(105, s))
-# define BOOST_PP_WHILE_105_I(p, o, s) BOOST_PP_IF(p(106, s), BOOST_PP_WHILE_106, s BOOST_PP_TUPLE_EAT_3)(p, o, o(106, s))
-# define BOOST_PP_WHILE_106_I(p, o, s) BOOST_PP_IF(p(107, s), BOOST_PP_WHILE_107, s BOOST_PP_TUPLE_EAT_3)(p, o, o(107, s))
-# define BOOST_PP_WHILE_107_I(p, o, s) BOOST_PP_IF(p(108, s), BOOST_PP_WHILE_108, s BOOST_PP_TUPLE_EAT_3)(p, o, o(108, s))
-# define BOOST_PP_WHILE_108_I(p, o, s) BOOST_PP_IF(p(109, s), BOOST_PP_WHILE_109, s BOOST_PP_TUPLE_EAT_3)(p, o, o(109, s))
-# define BOOST_PP_WHILE_109_I(p, o, s) BOOST_PP_IF(p(110, s), BOOST_PP_WHILE_110, s BOOST_PP_TUPLE_EAT_3)(p, o, o(110, s))
-# define BOOST_PP_WHILE_110_I(p, o, s) BOOST_PP_IF(p(111, s), BOOST_PP_WHILE_111, s BOOST_PP_TUPLE_EAT_3)(p, o, o(111, s))
-# define BOOST_PP_WHILE_111_I(p, o, s) BOOST_PP_IF(p(112, s), BOOST_PP_WHILE_112, s BOOST_PP_TUPLE_EAT_3)(p, o, o(112, s))
-# define BOOST_PP_WHILE_112_I(p, o, s) BOOST_PP_IF(p(113, s), BOOST_PP_WHILE_113, s BOOST_PP_TUPLE_EAT_3)(p, o, o(113, s))
-# define BOOST_PP_WHILE_113_I(p, o, s) BOOST_PP_IF(p(114, s), BOOST_PP_WHILE_114, s BOOST_PP_TUPLE_EAT_3)(p, o, o(114, s))
-# define BOOST_PP_WHILE_114_I(p, o, s) BOOST_PP_IF(p(115, s), BOOST_PP_WHILE_115, s BOOST_PP_TUPLE_EAT_3)(p, o, o(115, s))
-# define BOOST_PP_WHILE_115_I(p, o, s) BOOST_PP_IF(p(116, s), BOOST_PP_WHILE_116, s BOOST_PP_TUPLE_EAT_3)(p, o, o(116, s))
-# define BOOST_PP_WHILE_116_I(p, o, s) BOOST_PP_IF(p(117, s), BOOST_PP_WHILE_117, s BOOST_PP_TUPLE_EAT_3)(p, o, o(117, s))
-# define BOOST_PP_WHILE_117_I(p, o, s) BOOST_PP_IF(p(118, s), BOOST_PP_WHILE_118, s BOOST_PP_TUPLE_EAT_3)(p, o, o(118, s))
-# define BOOST_PP_WHILE_118_I(p, o, s) BOOST_PP_IF(p(119, s), BOOST_PP_WHILE_119, s BOOST_PP_TUPLE_EAT_3)(p, o, o(119, s))
-# define BOOST_PP_WHILE_119_I(p, o, s) BOOST_PP_IF(p(120, s), BOOST_PP_WHILE_120, s BOOST_PP_TUPLE_EAT_3)(p, o, o(120, s))
-# define BOOST_PP_WHILE_120_I(p, o, s) BOOST_PP_IF(p(121, s), BOOST_PP_WHILE_121, s BOOST_PP_TUPLE_EAT_3)(p, o, o(121, s))
-# define BOOST_PP_WHILE_121_I(p, o, s) BOOST_PP_IF(p(122, s), BOOST_PP_WHILE_122, s BOOST_PP_TUPLE_EAT_3)(p, o, o(122, s))
-# define BOOST_PP_WHILE_122_I(p, o, s) BOOST_PP_IF(p(123, s), BOOST_PP_WHILE_123, s BOOST_PP_TUPLE_EAT_3)(p, o, o(123, s))
-# define BOOST_PP_WHILE_123_I(p, o, s) BOOST_PP_IF(p(124, s), BOOST_PP_WHILE_124, s BOOST_PP_TUPLE_EAT_3)(p, o, o(124, s))
-# define BOOST_PP_WHILE_124_I(p, o, s) BOOST_PP_IF(p(125, s), BOOST_PP_WHILE_125, s BOOST_PP_TUPLE_EAT_3)(p, o, o(125, s))
-# define BOOST_PP_WHILE_125_I(p, o, s) BOOST_PP_IF(p(126, s), BOOST_PP_WHILE_126, s BOOST_PP_TUPLE_EAT_3)(p, o, o(126, s))
-# define BOOST_PP_WHILE_126_I(p, o, s) BOOST_PP_IF(p(127, s), BOOST_PP_WHILE_127, s BOOST_PP_TUPLE_EAT_3)(p, o, o(127, s))
-# define BOOST_PP_WHILE_127_I(p, o, s) BOOST_PP_IF(p(128, s), BOOST_PP_WHILE_128, s BOOST_PP_TUPLE_EAT_3)(p, o, o(128, s))
-# define BOOST_PP_WHILE_128_I(p, o, s) BOOST_PP_IF(p(129, s), BOOST_PP_WHILE_129, s BOOST_PP_TUPLE_EAT_3)(p, o, o(129, s))
-# define BOOST_PP_WHILE_129_I(p, o, s) BOOST_PP_IF(p(130, s), BOOST_PP_WHILE_130, s BOOST_PP_TUPLE_EAT_3)(p, o, o(130, s))
-# define BOOST_PP_WHILE_130_I(p, o, s) BOOST_PP_IF(p(131, s), BOOST_PP_WHILE_131, s BOOST_PP_TUPLE_EAT_3)(p, o, o(131, s))
-# define BOOST_PP_WHILE_131_I(p, o, s) BOOST_PP_IF(p(132, s), BOOST_PP_WHILE_132, s BOOST_PP_TUPLE_EAT_3)(p, o, o(132, s))
-# define BOOST_PP_WHILE_132_I(p, o, s) BOOST_PP_IF(p(133, s), BOOST_PP_WHILE_133, s BOOST_PP_TUPLE_EAT_3)(p, o, o(133, s))
-# define BOOST_PP_WHILE_133_I(p, o, s) BOOST_PP_IF(p(134, s), BOOST_PP_WHILE_134, s BOOST_PP_TUPLE_EAT_3)(p, o, o(134, s))
-# define BOOST_PP_WHILE_134_I(p, o, s) BOOST_PP_IF(p(135, s), BOOST_PP_WHILE_135, s BOOST_PP_TUPLE_EAT_3)(p, o, o(135, s))
-# define BOOST_PP_WHILE_135_I(p, o, s) BOOST_PP_IF(p(136, s), BOOST_PP_WHILE_136, s BOOST_PP_TUPLE_EAT_3)(p, o, o(136, s))
-# define BOOST_PP_WHILE_136_I(p, o, s) BOOST_PP_IF(p(137, s), BOOST_PP_WHILE_137, s BOOST_PP_TUPLE_EAT_3)(p, o, o(137, s))
-# define BOOST_PP_WHILE_137_I(p, o, s) BOOST_PP_IF(p(138, s), BOOST_PP_WHILE_138, s BOOST_PP_TUPLE_EAT_3)(p, o, o(138, s))
-# define BOOST_PP_WHILE_138_I(p, o, s) BOOST_PP_IF(p(139, s), BOOST_PP_WHILE_139, s BOOST_PP_TUPLE_EAT_3)(p, o, o(139, s))
-# define BOOST_PP_WHILE_139_I(p, o, s) BOOST_PP_IF(p(140, s), BOOST_PP_WHILE_140, s BOOST_PP_TUPLE_EAT_3)(p, o, o(140, s))
-# define BOOST_PP_WHILE_140_I(p, o, s) BOOST_PP_IF(p(141, s), BOOST_PP_WHILE_141, s BOOST_PP_TUPLE_EAT_3)(p, o, o(141, s))
-# define BOOST_PP_WHILE_141_I(p, o, s) BOOST_PP_IF(p(142, s), BOOST_PP_WHILE_142, s BOOST_PP_TUPLE_EAT_3)(p, o, o(142, s))
-# define BOOST_PP_WHILE_142_I(p, o, s) BOOST_PP_IF(p(143, s), BOOST_PP_WHILE_143, s BOOST_PP_TUPLE_EAT_3)(p, o, o(143, s))
-# define BOOST_PP_WHILE_143_I(p, o, s) BOOST_PP_IF(p(144, s), BOOST_PP_WHILE_144, s BOOST_PP_TUPLE_EAT_3)(p, o, o(144, s))
-# define BOOST_PP_WHILE_144_I(p, o, s) BOOST_PP_IF(p(145, s), BOOST_PP_WHILE_145, s BOOST_PP_TUPLE_EAT_3)(p, o, o(145, s))
-# define BOOST_PP_WHILE_145_I(p, o, s) BOOST_PP_IF(p(146, s), BOOST_PP_WHILE_146, s BOOST_PP_TUPLE_EAT_3)(p, o, o(146, s))
-# define BOOST_PP_WHILE_146_I(p, o, s) BOOST_PP_IF(p(147, s), BOOST_PP_WHILE_147, s BOOST_PP_TUPLE_EAT_3)(p, o, o(147, s))
-# define BOOST_PP_WHILE_147_I(p, o, s) BOOST_PP_IF(p(148, s), BOOST_PP_WHILE_148, s BOOST_PP_TUPLE_EAT_3)(p, o, o(148, s))
-# define BOOST_PP_WHILE_148_I(p, o, s) BOOST_PP_IF(p(149, s), BOOST_PP_WHILE_149, s BOOST_PP_TUPLE_EAT_3)(p, o, o(149, s))
-# define BOOST_PP_WHILE_149_I(p, o, s) BOOST_PP_IF(p(150, s), BOOST_PP_WHILE_150, s BOOST_PP_TUPLE_EAT_3)(p, o, o(150, s))
-# define BOOST_PP_WHILE_150_I(p, o, s) BOOST_PP_IF(p(151, s), BOOST_PP_WHILE_151, s BOOST_PP_TUPLE_EAT_3)(p, o, o(151, s))
-# define BOOST_PP_WHILE_151_I(p, o, s) BOOST_PP_IF(p(152, s), BOOST_PP_WHILE_152, s BOOST_PP_TUPLE_EAT_3)(p, o, o(152, s))
-# define BOOST_PP_WHILE_152_I(p, o, s) BOOST_PP_IF(p(153, s), BOOST_PP_WHILE_153, s BOOST_PP_TUPLE_EAT_3)(p, o, o(153, s))
-# define BOOST_PP_WHILE_153_I(p, o, s) BOOST_PP_IF(p(154, s), BOOST_PP_WHILE_154, s BOOST_PP_TUPLE_EAT_3)(p, o, o(154, s))
-# define BOOST_PP_WHILE_154_I(p, o, s) BOOST_PP_IF(p(155, s), BOOST_PP_WHILE_155, s BOOST_PP_TUPLE_EAT_3)(p, o, o(155, s))
-# define BOOST_PP_WHILE_155_I(p, o, s) BOOST_PP_IF(p(156, s), BOOST_PP_WHILE_156, s BOOST_PP_TUPLE_EAT_3)(p, o, o(156, s))
-# define BOOST_PP_WHILE_156_I(p, o, s) BOOST_PP_IF(p(157, s), BOOST_PP_WHILE_157, s BOOST_PP_TUPLE_EAT_3)(p, o, o(157, s))
-# define BOOST_PP_WHILE_157_I(p, o, s) BOOST_PP_IF(p(158, s), BOOST_PP_WHILE_158, s BOOST_PP_TUPLE_EAT_3)(p, o, o(158, s))
-# define BOOST_PP_WHILE_158_I(p, o, s) BOOST_PP_IF(p(159, s), BOOST_PP_WHILE_159, s BOOST_PP_TUPLE_EAT_3)(p, o, o(159, s))
-# define BOOST_PP_WHILE_159_I(p, o, s) BOOST_PP_IF(p(160, s), BOOST_PP_WHILE_160, s BOOST_PP_TUPLE_EAT_3)(p, o, o(160, s))
-# define BOOST_PP_WHILE_160_I(p, o, s) BOOST_PP_IF(p(161, s), BOOST_PP_WHILE_161, s BOOST_PP_TUPLE_EAT_3)(p, o, o(161, s))
-# define BOOST_PP_WHILE_161_I(p, o, s) BOOST_PP_IF(p(162, s), BOOST_PP_WHILE_162, s BOOST_PP_TUPLE_EAT_3)(p, o, o(162, s))
-# define BOOST_PP_WHILE_162_I(p, o, s) BOOST_PP_IF(p(163, s), BOOST_PP_WHILE_163, s BOOST_PP_TUPLE_EAT_3)(p, o, o(163, s))
-# define BOOST_PP_WHILE_163_I(p, o, s) BOOST_PP_IF(p(164, s), BOOST_PP_WHILE_164, s BOOST_PP_TUPLE_EAT_3)(p, o, o(164, s))
-# define BOOST_PP_WHILE_164_I(p, o, s) BOOST_PP_IF(p(165, s), BOOST_PP_WHILE_165, s BOOST_PP_TUPLE_EAT_3)(p, o, o(165, s))
-# define BOOST_PP_WHILE_165_I(p, o, s) BOOST_PP_IF(p(166, s), BOOST_PP_WHILE_166, s BOOST_PP_TUPLE_EAT_3)(p, o, o(166, s))
-# define BOOST_PP_WHILE_166_I(p, o, s) BOOST_PP_IF(p(167, s), BOOST_PP_WHILE_167, s BOOST_PP_TUPLE_EAT_3)(p, o, o(167, s))
-# define BOOST_PP_WHILE_167_I(p, o, s) BOOST_PP_IF(p(168, s), BOOST_PP_WHILE_168, s BOOST_PP_TUPLE_EAT_3)(p, o, o(168, s))
-# define BOOST_PP_WHILE_168_I(p, o, s) BOOST_PP_IF(p(169, s), BOOST_PP_WHILE_169, s BOOST_PP_TUPLE_EAT_3)(p, o, o(169, s))
-# define BOOST_PP_WHILE_169_I(p, o, s) BOOST_PP_IF(p(170, s), BOOST_PP_WHILE_170, s BOOST_PP_TUPLE_EAT_3)(p, o, o(170, s))
-# define BOOST_PP_WHILE_170_I(p, o, s) BOOST_PP_IF(p(171, s), BOOST_PP_WHILE_171, s BOOST_PP_TUPLE_EAT_3)(p, o, o(171, s))
-# define BOOST_PP_WHILE_171_I(p, o, s) BOOST_PP_IF(p(172, s), BOOST_PP_WHILE_172, s BOOST_PP_TUPLE_EAT_3)(p, o, o(172, s))
-# define BOOST_PP_WHILE_172_I(p, o, s) BOOST_PP_IF(p(173, s), BOOST_PP_WHILE_173, s BOOST_PP_TUPLE_EAT_3)(p, o, o(173, s))
-# define BOOST_PP_WHILE_173_I(p, o, s) BOOST_PP_IF(p(174, s), BOOST_PP_WHILE_174, s BOOST_PP_TUPLE_EAT_3)(p, o, o(174, s))
-# define BOOST_PP_WHILE_174_I(p, o, s) BOOST_PP_IF(p(175, s), BOOST_PP_WHILE_175, s BOOST_PP_TUPLE_EAT_3)(p, o, o(175, s))
-# define BOOST_PP_WHILE_175_I(p, o, s) BOOST_PP_IF(p(176, s), BOOST_PP_WHILE_176, s BOOST_PP_TUPLE_EAT_3)(p, o, o(176, s))
-# define BOOST_PP_WHILE_176_I(p, o, s) BOOST_PP_IF(p(177, s), BOOST_PP_WHILE_177, s BOOST_PP_TUPLE_EAT_3)(p, o, o(177, s))
-# define BOOST_PP_WHILE_177_I(p, o, s) BOOST_PP_IF(p(178, s), BOOST_PP_WHILE_178, s BOOST_PP_TUPLE_EAT_3)(p, o, o(178, s))
-# define BOOST_PP_WHILE_178_I(p, o, s) BOOST_PP_IF(p(179, s), BOOST_PP_WHILE_179, s BOOST_PP_TUPLE_EAT_3)(p, o, o(179, s))
-# define BOOST_PP_WHILE_179_I(p, o, s) BOOST_PP_IF(p(180, s), BOOST_PP_WHILE_180, s BOOST_PP_TUPLE_EAT_3)(p, o, o(180, s))
-# define BOOST_PP_WHILE_180_I(p, o, s) BOOST_PP_IF(p(181, s), BOOST_PP_WHILE_181, s BOOST_PP_TUPLE_EAT_3)(p, o, o(181, s))
-# define BOOST_PP_WHILE_181_I(p, o, s) BOOST_PP_IF(p(182, s), BOOST_PP_WHILE_182, s BOOST_PP_TUPLE_EAT_3)(p, o, o(182, s))
-# define BOOST_PP_WHILE_182_I(p, o, s) BOOST_PP_IF(p(183, s), BOOST_PP_WHILE_183, s BOOST_PP_TUPLE_EAT_3)(p, o, o(183, s))
-# define BOOST_PP_WHILE_183_I(p, o, s) BOOST_PP_IF(p(184, s), BOOST_PP_WHILE_184, s BOOST_PP_TUPLE_EAT_3)(p, o, o(184, s))
-# define BOOST_PP_WHILE_184_I(p, o, s) BOOST_PP_IF(p(185, s), BOOST_PP_WHILE_185, s BOOST_PP_TUPLE_EAT_3)(p, o, o(185, s))
-# define BOOST_PP_WHILE_185_I(p, o, s) BOOST_PP_IF(p(186, s), BOOST_PP_WHILE_186, s BOOST_PP_TUPLE_EAT_3)(p, o, o(186, s))
-# define BOOST_PP_WHILE_186_I(p, o, s) BOOST_PP_IF(p(187, s), BOOST_PP_WHILE_187, s BOOST_PP_TUPLE_EAT_3)(p, o, o(187, s))
-# define BOOST_PP_WHILE_187_I(p, o, s) BOOST_PP_IF(p(188, s), BOOST_PP_WHILE_188, s BOOST_PP_TUPLE_EAT_3)(p, o, o(188, s))
-# define BOOST_PP_WHILE_188_I(p, o, s) BOOST_PP_IF(p(189, s), BOOST_PP_WHILE_189, s BOOST_PP_TUPLE_EAT_3)(p, o, o(189, s))
-# define BOOST_PP_WHILE_189_I(p, o, s) BOOST_PP_IF(p(190, s), BOOST_PP_WHILE_190, s BOOST_PP_TUPLE_EAT_3)(p, o, o(190, s))
-# define BOOST_PP_WHILE_190_I(p, o, s) BOOST_PP_IF(p(191, s), BOOST_PP_WHILE_191, s BOOST_PP_TUPLE_EAT_3)(p, o, o(191, s))
-# define BOOST_PP_WHILE_191_I(p, o, s) BOOST_PP_IF(p(192, s), BOOST_PP_WHILE_192, s BOOST_PP_TUPLE_EAT_3)(p, o, o(192, s))
-# define BOOST_PP_WHILE_192_I(p, o, s) BOOST_PP_IF(p(193, s), BOOST_PP_WHILE_193, s BOOST_PP_TUPLE_EAT_3)(p, o, o(193, s))
-# define BOOST_PP_WHILE_193_I(p, o, s) BOOST_PP_IF(p(194, s), BOOST_PP_WHILE_194, s BOOST_PP_TUPLE_EAT_3)(p, o, o(194, s))
-# define BOOST_PP_WHILE_194_I(p, o, s) BOOST_PP_IF(p(195, s), BOOST_PP_WHILE_195, s BOOST_PP_TUPLE_EAT_3)(p, o, o(195, s))
-# define BOOST_PP_WHILE_195_I(p, o, s) BOOST_PP_IF(p(196, s), BOOST_PP_WHILE_196, s BOOST_PP_TUPLE_EAT_3)(p, o, o(196, s))
-# define BOOST_PP_WHILE_196_I(p, o, s) BOOST_PP_IF(p(197, s), BOOST_PP_WHILE_197, s BOOST_PP_TUPLE_EAT_3)(p, o, o(197, s))
-# define BOOST_PP_WHILE_197_I(p, o, s) BOOST_PP_IF(p(198, s), BOOST_PP_WHILE_198, s BOOST_PP_TUPLE_EAT_3)(p, o, o(198, s))
-# define BOOST_PP_WHILE_198_I(p, o, s) BOOST_PP_IF(p(199, s), BOOST_PP_WHILE_199, s BOOST_PP_TUPLE_EAT_3)(p, o, o(199, s))
-# define BOOST_PP_WHILE_199_I(p, o, s) BOOST_PP_IF(p(200, s), BOOST_PP_WHILE_200, s BOOST_PP_TUPLE_EAT_3)(p, o, o(200, s))
-# define BOOST_PP_WHILE_200_I(p, o, s) BOOST_PP_IF(p(201, s), BOOST_PP_WHILE_201, s BOOST_PP_TUPLE_EAT_3)(p, o, o(201, s))
-# define BOOST_PP_WHILE_201_I(p, o, s) BOOST_PP_IF(p(202, s), BOOST_PP_WHILE_202, s BOOST_PP_TUPLE_EAT_3)(p, o, o(202, s))
-# define BOOST_PP_WHILE_202_I(p, o, s) BOOST_PP_IF(p(203, s), BOOST_PP_WHILE_203, s BOOST_PP_TUPLE_EAT_3)(p, o, o(203, s))
-# define BOOST_PP_WHILE_203_I(p, o, s) BOOST_PP_IF(p(204, s), BOOST_PP_WHILE_204, s BOOST_PP_TUPLE_EAT_3)(p, o, o(204, s))
-# define BOOST_PP_WHILE_204_I(p, o, s) BOOST_PP_IF(p(205, s), BOOST_PP_WHILE_205, s BOOST_PP_TUPLE_EAT_3)(p, o, o(205, s))
-# define BOOST_PP_WHILE_205_I(p, o, s) BOOST_PP_IF(p(206, s), BOOST_PP_WHILE_206, s BOOST_PP_TUPLE_EAT_3)(p, o, o(206, s))
-# define BOOST_PP_WHILE_206_I(p, o, s) BOOST_PP_IF(p(207, s), BOOST_PP_WHILE_207, s BOOST_PP_TUPLE_EAT_3)(p, o, o(207, s))
-# define BOOST_PP_WHILE_207_I(p, o, s) BOOST_PP_IF(p(208, s), BOOST_PP_WHILE_208, s BOOST_PP_TUPLE_EAT_3)(p, o, o(208, s))
-# define BOOST_PP_WHILE_208_I(p, o, s) BOOST_PP_IF(p(209, s), BOOST_PP_WHILE_209, s BOOST_PP_TUPLE_EAT_3)(p, o, o(209, s))
-# define BOOST_PP_WHILE_209_I(p, o, s) BOOST_PP_IF(p(210, s), BOOST_PP_WHILE_210, s BOOST_PP_TUPLE_EAT_3)(p, o, o(210, s))
-# define BOOST_PP_WHILE_210_I(p, o, s) BOOST_PP_IF(p(211, s), BOOST_PP_WHILE_211, s BOOST_PP_TUPLE_EAT_3)(p, o, o(211, s))
-# define BOOST_PP_WHILE_211_I(p, o, s) BOOST_PP_IF(p(212, s), BOOST_PP_WHILE_212, s BOOST_PP_TUPLE_EAT_3)(p, o, o(212, s))
-# define BOOST_PP_WHILE_212_I(p, o, s) BOOST_PP_IF(p(213, s), BOOST_PP_WHILE_213, s BOOST_PP_TUPLE_EAT_3)(p, o, o(213, s))
-# define BOOST_PP_WHILE_213_I(p, o, s) BOOST_PP_IF(p(214, s), BOOST_PP_WHILE_214, s BOOST_PP_TUPLE_EAT_3)(p, o, o(214, s))
-# define BOOST_PP_WHILE_214_I(p, o, s) BOOST_PP_IF(p(215, s), BOOST_PP_WHILE_215, s BOOST_PP_TUPLE_EAT_3)(p, o, o(215, s))
-# define BOOST_PP_WHILE_215_I(p, o, s) BOOST_PP_IF(p(216, s), BOOST_PP_WHILE_216, s BOOST_PP_TUPLE_EAT_3)(p, o, o(216, s))
-# define BOOST_PP_WHILE_216_I(p, o, s) BOOST_PP_IF(p(217, s), BOOST_PP_WHILE_217, s BOOST_PP_TUPLE_EAT_3)(p, o, o(217, s))
-# define BOOST_PP_WHILE_217_I(p, o, s) BOOST_PP_IF(p(218, s), BOOST_PP_WHILE_218, s BOOST_PP_TUPLE_EAT_3)(p, o, o(218, s))
-# define BOOST_PP_WHILE_218_I(p, o, s) BOOST_PP_IF(p(219, s), BOOST_PP_WHILE_219, s BOOST_PP_TUPLE_EAT_3)(p, o, o(219, s))
-# define BOOST_PP_WHILE_219_I(p, o, s) BOOST_PP_IF(p(220, s), BOOST_PP_WHILE_220, s BOOST_PP_TUPLE_EAT_3)(p, o, o(220, s))
-# define BOOST_PP_WHILE_220_I(p, o, s) BOOST_PP_IF(p(221, s), BOOST_PP_WHILE_221, s BOOST_PP_TUPLE_EAT_3)(p, o, o(221, s))
-# define BOOST_PP_WHILE_221_I(p, o, s) BOOST_PP_IF(p(222, s), BOOST_PP_WHILE_222, s BOOST_PP_TUPLE_EAT_3)(p, o, o(222, s))
-# define BOOST_PP_WHILE_222_I(p, o, s) BOOST_PP_IF(p(223, s), BOOST_PP_WHILE_223, s BOOST_PP_TUPLE_EAT_3)(p, o, o(223, s))
-# define BOOST_PP_WHILE_223_I(p, o, s) BOOST_PP_IF(p(224, s), BOOST_PP_WHILE_224, s BOOST_PP_TUPLE_EAT_3)(p, o, o(224, s))
-# define BOOST_PP_WHILE_224_I(p, o, s) BOOST_PP_IF(p(225, s), BOOST_PP_WHILE_225, s BOOST_PP_TUPLE_EAT_3)(p, o, o(225, s))
-# define BOOST_PP_WHILE_225_I(p, o, s) BOOST_PP_IF(p(226, s), BOOST_PP_WHILE_226, s BOOST_PP_TUPLE_EAT_3)(p, o, o(226, s))
-# define BOOST_PP_WHILE_226_I(p, o, s) BOOST_PP_IF(p(227, s), BOOST_PP_WHILE_227, s BOOST_PP_TUPLE_EAT_3)(p, o, o(227, s))
-# define BOOST_PP_WHILE_227_I(p, o, s) BOOST_PP_IF(p(228, s), BOOST_PP_WHILE_228, s BOOST_PP_TUPLE_EAT_3)(p, o, o(228, s))
-# define BOOST_PP_WHILE_228_I(p, o, s) BOOST_PP_IF(p(229, s), BOOST_PP_WHILE_229, s BOOST_PP_TUPLE_EAT_3)(p, o, o(229, s))
-# define BOOST_PP_WHILE_229_I(p, o, s) BOOST_PP_IF(p(230, s), BOOST_PP_WHILE_230, s BOOST_PP_TUPLE_EAT_3)(p, o, o(230, s))
-# define BOOST_PP_WHILE_230_I(p, o, s) BOOST_PP_IF(p(231, s), BOOST_PP_WHILE_231, s BOOST_PP_TUPLE_EAT_3)(p, o, o(231, s))
-# define BOOST_PP_WHILE_231_I(p, o, s) BOOST_PP_IF(p(232, s), BOOST_PP_WHILE_232, s BOOST_PP_TUPLE_EAT_3)(p, o, o(232, s))
-# define BOOST_PP_WHILE_232_I(p, o, s) BOOST_PP_IF(p(233, s), BOOST_PP_WHILE_233, s BOOST_PP_TUPLE_EAT_3)(p, o, o(233, s))
-# define BOOST_PP_WHILE_233_I(p, o, s) BOOST_PP_IF(p(234, s), BOOST_PP_WHILE_234, s BOOST_PP_TUPLE_EAT_3)(p, o, o(234, s))
-# define BOOST_PP_WHILE_234_I(p, o, s) BOOST_PP_IF(p(235, s), BOOST_PP_WHILE_235, s BOOST_PP_TUPLE_EAT_3)(p, o, o(235, s))
-# define BOOST_PP_WHILE_235_I(p, o, s) BOOST_PP_IF(p(236, s), BOOST_PP_WHILE_236, s BOOST_PP_TUPLE_EAT_3)(p, o, o(236, s))
-# define BOOST_PP_WHILE_236_I(p, o, s) BOOST_PP_IF(p(237, s), BOOST_PP_WHILE_237, s BOOST_PP_TUPLE_EAT_3)(p, o, o(237, s))
-# define BOOST_PP_WHILE_237_I(p, o, s) BOOST_PP_IF(p(238, s), BOOST_PP_WHILE_238, s BOOST_PP_TUPLE_EAT_3)(p, o, o(238, s))
-# define BOOST_PP_WHILE_238_I(p, o, s) BOOST_PP_IF(p(239, s), BOOST_PP_WHILE_239, s BOOST_PP_TUPLE_EAT_3)(p, o, o(239, s))
-# define BOOST_PP_WHILE_239_I(p, o, s) BOOST_PP_IF(p(240, s), BOOST_PP_WHILE_240, s BOOST_PP_TUPLE_EAT_3)(p, o, o(240, s))
-# define BOOST_PP_WHILE_240_I(p, o, s) BOOST_PP_IF(p(241, s), BOOST_PP_WHILE_241, s BOOST_PP_TUPLE_EAT_3)(p, o, o(241, s))
-# define BOOST_PP_WHILE_241_I(p, o, s) BOOST_PP_IF(p(242, s), BOOST_PP_WHILE_242, s BOOST_PP_TUPLE_EAT_3)(p, o, o(242, s))
-# define BOOST_PP_WHILE_242_I(p, o, s) BOOST_PP_IF(p(243, s), BOOST_PP_WHILE_243, s BOOST_PP_TUPLE_EAT_3)(p, o, o(243, s))
-# define BOOST_PP_WHILE_243_I(p, o, s) BOOST_PP_IF(p(244, s), BOOST_PP_WHILE_244, s BOOST_PP_TUPLE_EAT_3)(p, o, o(244, s))
-# define BOOST_PP_WHILE_244_I(p, o, s) BOOST_PP_IF(p(245, s), BOOST_PP_WHILE_245, s BOOST_PP_TUPLE_EAT_3)(p, o, o(245, s))
-# define BOOST_PP_WHILE_245_I(p, o, s) BOOST_PP_IF(p(246, s), BOOST_PP_WHILE_246, s BOOST_PP_TUPLE_EAT_3)(p, o, o(246, s))
-# define BOOST_PP_WHILE_246_I(p, o, s) BOOST_PP_IF(p(247, s), BOOST_PP_WHILE_247, s BOOST_PP_TUPLE_EAT_3)(p, o, o(247, s))
-# define BOOST_PP_WHILE_247_I(p, o, s) BOOST_PP_IF(p(248, s), BOOST_PP_WHILE_248, s BOOST_PP_TUPLE_EAT_3)(p, o, o(248, s))
-# define BOOST_PP_WHILE_248_I(p, o, s) BOOST_PP_IF(p(249, s), BOOST_PP_WHILE_249, s BOOST_PP_TUPLE_EAT_3)(p, o, o(249, s))
-# define BOOST_PP_WHILE_249_I(p, o, s) BOOST_PP_IF(p(250, s), BOOST_PP_WHILE_250, s BOOST_PP_TUPLE_EAT_3)(p, o, o(250, s))
-# define BOOST_PP_WHILE_250_I(p, o, s) BOOST_PP_IF(p(251, s), BOOST_PP_WHILE_251, s BOOST_PP_TUPLE_EAT_3)(p, o, o(251, s))
-# define BOOST_PP_WHILE_251_I(p, o, s) BOOST_PP_IF(p(252, s), BOOST_PP_WHILE_252, s BOOST_PP_TUPLE_EAT_3)(p, o, o(252, s))
-# define BOOST_PP_WHILE_252_I(p, o, s) BOOST_PP_IF(p(253, s), BOOST_PP_WHILE_253, s BOOST_PP_TUPLE_EAT_3)(p, o, o(253, s))
-# define BOOST_PP_WHILE_253_I(p, o, s) BOOST_PP_IF(p(254, s), BOOST_PP_WHILE_254, s BOOST_PP_TUPLE_EAT_3)(p, o, o(254, s))
-# define BOOST_PP_WHILE_254_I(p, o, s) BOOST_PP_IF(p(255, s), BOOST_PP_WHILE_255, s BOOST_PP_TUPLE_EAT_3)(p, o, o(255, s))
-# define BOOST_PP_WHILE_255_I(p, o, s) BOOST_PP_IF(p(256, s), BOOST_PP_WHILE_256, s BOOST_PP_TUPLE_EAT_3)(p, o, o(256, s))
-# define BOOST_PP_WHILE_256_I(p, o, s) BOOST_PP_IF(p(257, s), BOOST_PP_WHILE_257, s BOOST_PP_TUPLE_EAT_3)(p, o, o(257, s))
+# define NDNBOOST_PP_WHILE_1_I(p, o, s) NDNBOOST_PP_IF(p(2, s), NDNBOOST_PP_WHILE_2, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(2, s))
+# define NDNBOOST_PP_WHILE_2_I(p, o, s) NDNBOOST_PP_IF(p(3, s), NDNBOOST_PP_WHILE_3, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(3, s))
+# define NDNBOOST_PP_WHILE_3_I(p, o, s) NDNBOOST_PP_IF(p(4, s), NDNBOOST_PP_WHILE_4, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(4, s))
+# define NDNBOOST_PP_WHILE_4_I(p, o, s) NDNBOOST_PP_IF(p(5, s), NDNBOOST_PP_WHILE_5, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(5, s))
+# define NDNBOOST_PP_WHILE_5_I(p, o, s) NDNBOOST_PP_IF(p(6, s), NDNBOOST_PP_WHILE_6, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(6, s))
+# define NDNBOOST_PP_WHILE_6_I(p, o, s) NDNBOOST_PP_IF(p(7, s), NDNBOOST_PP_WHILE_7, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(7, s))
+# define NDNBOOST_PP_WHILE_7_I(p, o, s) NDNBOOST_PP_IF(p(8, s), NDNBOOST_PP_WHILE_8, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(8, s))
+# define NDNBOOST_PP_WHILE_8_I(p, o, s) NDNBOOST_PP_IF(p(9, s), NDNBOOST_PP_WHILE_9, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(9, s))
+# define NDNBOOST_PP_WHILE_9_I(p, o, s) NDNBOOST_PP_IF(p(10, s), NDNBOOST_PP_WHILE_10, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(10, s))
+# define NDNBOOST_PP_WHILE_10_I(p, o, s) NDNBOOST_PP_IF(p(11, s), NDNBOOST_PP_WHILE_11, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(11, s))
+# define NDNBOOST_PP_WHILE_11_I(p, o, s) NDNBOOST_PP_IF(p(12, s), NDNBOOST_PP_WHILE_12, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(12, s))
+# define NDNBOOST_PP_WHILE_12_I(p, o, s) NDNBOOST_PP_IF(p(13, s), NDNBOOST_PP_WHILE_13, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(13, s))
+# define NDNBOOST_PP_WHILE_13_I(p, o, s) NDNBOOST_PP_IF(p(14, s), NDNBOOST_PP_WHILE_14, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(14, s))
+# define NDNBOOST_PP_WHILE_14_I(p, o, s) NDNBOOST_PP_IF(p(15, s), NDNBOOST_PP_WHILE_15, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(15, s))
+# define NDNBOOST_PP_WHILE_15_I(p, o, s) NDNBOOST_PP_IF(p(16, s), NDNBOOST_PP_WHILE_16, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(16, s))
+# define NDNBOOST_PP_WHILE_16_I(p, o, s) NDNBOOST_PP_IF(p(17, s), NDNBOOST_PP_WHILE_17, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(17, s))
+# define NDNBOOST_PP_WHILE_17_I(p, o, s) NDNBOOST_PP_IF(p(18, s), NDNBOOST_PP_WHILE_18, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(18, s))
+# define NDNBOOST_PP_WHILE_18_I(p, o, s) NDNBOOST_PP_IF(p(19, s), NDNBOOST_PP_WHILE_19, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(19, s))
+# define NDNBOOST_PP_WHILE_19_I(p, o, s) NDNBOOST_PP_IF(p(20, s), NDNBOOST_PP_WHILE_20, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(20, s))
+# define NDNBOOST_PP_WHILE_20_I(p, o, s) NDNBOOST_PP_IF(p(21, s), NDNBOOST_PP_WHILE_21, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(21, s))
+# define NDNBOOST_PP_WHILE_21_I(p, o, s) NDNBOOST_PP_IF(p(22, s), NDNBOOST_PP_WHILE_22, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(22, s))
+# define NDNBOOST_PP_WHILE_22_I(p, o, s) NDNBOOST_PP_IF(p(23, s), NDNBOOST_PP_WHILE_23, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(23, s))
+# define NDNBOOST_PP_WHILE_23_I(p, o, s) NDNBOOST_PP_IF(p(24, s), NDNBOOST_PP_WHILE_24, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(24, s))
+# define NDNBOOST_PP_WHILE_24_I(p, o, s) NDNBOOST_PP_IF(p(25, s), NDNBOOST_PP_WHILE_25, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(25, s))
+# define NDNBOOST_PP_WHILE_25_I(p, o, s) NDNBOOST_PP_IF(p(26, s), NDNBOOST_PP_WHILE_26, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(26, s))
+# define NDNBOOST_PP_WHILE_26_I(p, o, s) NDNBOOST_PP_IF(p(27, s), NDNBOOST_PP_WHILE_27, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(27, s))
+# define NDNBOOST_PP_WHILE_27_I(p, o, s) NDNBOOST_PP_IF(p(28, s), NDNBOOST_PP_WHILE_28, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(28, s))
+# define NDNBOOST_PP_WHILE_28_I(p, o, s) NDNBOOST_PP_IF(p(29, s), NDNBOOST_PP_WHILE_29, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(29, s))
+# define NDNBOOST_PP_WHILE_29_I(p, o, s) NDNBOOST_PP_IF(p(30, s), NDNBOOST_PP_WHILE_30, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(30, s))
+# define NDNBOOST_PP_WHILE_30_I(p, o, s) NDNBOOST_PP_IF(p(31, s), NDNBOOST_PP_WHILE_31, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(31, s))
+# define NDNBOOST_PP_WHILE_31_I(p, o, s) NDNBOOST_PP_IF(p(32, s), NDNBOOST_PP_WHILE_32, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(32, s))
+# define NDNBOOST_PP_WHILE_32_I(p, o, s) NDNBOOST_PP_IF(p(33, s), NDNBOOST_PP_WHILE_33, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(33, s))
+# define NDNBOOST_PP_WHILE_33_I(p, o, s) NDNBOOST_PP_IF(p(34, s), NDNBOOST_PP_WHILE_34, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(34, s))
+# define NDNBOOST_PP_WHILE_34_I(p, o, s) NDNBOOST_PP_IF(p(35, s), NDNBOOST_PP_WHILE_35, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(35, s))
+# define NDNBOOST_PP_WHILE_35_I(p, o, s) NDNBOOST_PP_IF(p(36, s), NDNBOOST_PP_WHILE_36, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(36, s))
+# define NDNBOOST_PP_WHILE_36_I(p, o, s) NDNBOOST_PP_IF(p(37, s), NDNBOOST_PP_WHILE_37, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(37, s))
+# define NDNBOOST_PP_WHILE_37_I(p, o, s) NDNBOOST_PP_IF(p(38, s), NDNBOOST_PP_WHILE_38, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(38, s))
+# define NDNBOOST_PP_WHILE_38_I(p, o, s) NDNBOOST_PP_IF(p(39, s), NDNBOOST_PP_WHILE_39, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(39, s))
+# define NDNBOOST_PP_WHILE_39_I(p, o, s) NDNBOOST_PP_IF(p(40, s), NDNBOOST_PP_WHILE_40, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(40, s))
+# define NDNBOOST_PP_WHILE_40_I(p, o, s) NDNBOOST_PP_IF(p(41, s), NDNBOOST_PP_WHILE_41, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(41, s))
+# define NDNBOOST_PP_WHILE_41_I(p, o, s) NDNBOOST_PP_IF(p(42, s), NDNBOOST_PP_WHILE_42, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(42, s))
+# define NDNBOOST_PP_WHILE_42_I(p, o, s) NDNBOOST_PP_IF(p(43, s), NDNBOOST_PP_WHILE_43, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(43, s))
+# define NDNBOOST_PP_WHILE_43_I(p, o, s) NDNBOOST_PP_IF(p(44, s), NDNBOOST_PP_WHILE_44, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(44, s))
+# define NDNBOOST_PP_WHILE_44_I(p, o, s) NDNBOOST_PP_IF(p(45, s), NDNBOOST_PP_WHILE_45, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(45, s))
+# define NDNBOOST_PP_WHILE_45_I(p, o, s) NDNBOOST_PP_IF(p(46, s), NDNBOOST_PP_WHILE_46, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(46, s))
+# define NDNBOOST_PP_WHILE_46_I(p, o, s) NDNBOOST_PP_IF(p(47, s), NDNBOOST_PP_WHILE_47, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(47, s))
+# define NDNBOOST_PP_WHILE_47_I(p, o, s) NDNBOOST_PP_IF(p(48, s), NDNBOOST_PP_WHILE_48, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(48, s))
+# define NDNBOOST_PP_WHILE_48_I(p, o, s) NDNBOOST_PP_IF(p(49, s), NDNBOOST_PP_WHILE_49, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(49, s))
+# define NDNBOOST_PP_WHILE_49_I(p, o, s) NDNBOOST_PP_IF(p(50, s), NDNBOOST_PP_WHILE_50, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(50, s))
+# define NDNBOOST_PP_WHILE_50_I(p, o, s) NDNBOOST_PP_IF(p(51, s), NDNBOOST_PP_WHILE_51, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(51, s))
+# define NDNBOOST_PP_WHILE_51_I(p, o, s) NDNBOOST_PP_IF(p(52, s), NDNBOOST_PP_WHILE_52, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(52, s))
+# define NDNBOOST_PP_WHILE_52_I(p, o, s) NDNBOOST_PP_IF(p(53, s), NDNBOOST_PP_WHILE_53, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(53, s))
+# define NDNBOOST_PP_WHILE_53_I(p, o, s) NDNBOOST_PP_IF(p(54, s), NDNBOOST_PP_WHILE_54, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(54, s))
+# define NDNBOOST_PP_WHILE_54_I(p, o, s) NDNBOOST_PP_IF(p(55, s), NDNBOOST_PP_WHILE_55, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(55, s))
+# define NDNBOOST_PP_WHILE_55_I(p, o, s) NDNBOOST_PP_IF(p(56, s), NDNBOOST_PP_WHILE_56, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(56, s))
+# define NDNBOOST_PP_WHILE_56_I(p, o, s) NDNBOOST_PP_IF(p(57, s), NDNBOOST_PP_WHILE_57, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(57, s))
+# define NDNBOOST_PP_WHILE_57_I(p, o, s) NDNBOOST_PP_IF(p(58, s), NDNBOOST_PP_WHILE_58, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(58, s))
+# define NDNBOOST_PP_WHILE_58_I(p, o, s) NDNBOOST_PP_IF(p(59, s), NDNBOOST_PP_WHILE_59, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(59, s))
+# define NDNBOOST_PP_WHILE_59_I(p, o, s) NDNBOOST_PP_IF(p(60, s), NDNBOOST_PP_WHILE_60, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(60, s))
+# define NDNBOOST_PP_WHILE_60_I(p, o, s) NDNBOOST_PP_IF(p(61, s), NDNBOOST_PP_WHILE_61, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(61, s))
+# define NDNBOOST_PP_WHILE_61_I(p, o, s) NDNBOOST_PP_IF(p(62, s), NDNBOOST_PP_WHILE_62, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(62, s))
+# define NDNBOOST_PP_WHILE_62_I(p, o, s) NDNBOOST_PP_IF(p(63, s), NDNBOOST_PP_WHILE_63, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(63, s))
+# define NDNBOOST_PP_WHILE_63_I(p, o, s) NDNBOOST_PP_IF(p(64, s), NDNBOOST_PP_WHILE_64, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(64, s))
+# define NDNBOOST_PP_WHILE_64_I(p, o, s) NDNBOOST_PP_IF(p(65, s), NDNBOOST_PP_WHILE_65, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(65, s))
+# define NDNBOOST_PP_WHILE_65_I(p, o, s) NDNBOOST_PP_IF(p(66, s), NDNBOOST_PP_WHILE_66, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(66, s))
+# define NDNBOOST_PP_WHILE_66_I(p, o, s) NDNBOOST_PP_IF(p(67, s), NDNBOOST_PP_WHILE_67, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(67, s))
+# define NDNBOOST_PP_WHILE_67_I(p, o, s) NDNBOOST_PP_IF(p(68, s), NDNBOOST_PP_WHILE_68, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(68, s))
+# define NDNBOOST_PP_WHILE_68_I(p, o, s) NDNBOOST_PP_IF(p(69, s), NDNBOOST_PP_WHILE_69, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(69, s))
+# define NDNBOOST_PP_WHILE_69_I(p, o, s) NDNBOOST_PP_IF(p(70, s), NDNBOOST_PP_WHILE_70, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(70, s))
+# define NDNBOOST_PP_WHILE_70_I(p, o, s) NDNBOOST_PP_IF(p(71, s), NDNBOOST_PP_WHILE_71, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(71, s))
+# define NDNBOOST_PP_WHILE_71_I(p, o, s) NDNBOOST_PP_IF(p(72, s), NDNBOOST_PP_WHILE_72, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(72, s))
+# define NDNBOOST_PP_WHILE_72_I(p, o, s) NDNBOOST_PP_IF(p(73, s), NDNBOOST_PP_WHILE_73, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(73, s))
+# define NDNBOOST_PP_WHILE_73_I(p, o, s) NDNBOOST_PP_IF(p(74, s), NDNBOOST_PP_WHILE_74, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(74, s))
+# define NDNBOOST_PP_WHILE_74_I(p, o, s) NDNBOOST_PP_IF(p(75, s), NDNBOOST_PP_WHILE_75, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(75, s))
+# define NDNBOOST_PP_WHILE_75_I(p, o, s) NDNBOOST_PP_IF(p(76, s), NDNBOOST_PP_WHILE_76, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(76, s))
+# define NDNBOOST_PP_WHILE_76_I(p, o, s) NDNBOOST_PP_IF(p(77, s), NDNBOOST_PP_WHILE_77, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(77, s))
+# define NDNBOOST_PP_WHILE_77_I(p, o, s) NDNBOOST_PP_IF(p(78, s), NDNBOOST_PP_WHILE_78, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(78, s))
+# define NDNBOOST_PP_WHILE_78_I(p, o, s) NDNBOOST_PP_IF(p(79, s), NDNBOOST_PP_WHILE_79, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(79, s))
+# define NDNBOOST_PP_WHILE_79_I(p, o, s) NDNBOOST_PP_IF(p(80, s), NDNBOOST_PP_WHILE_80, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(80, s))
+# define NDNBOOST_PP_WHILE_80_I(p, o, s) NDNBOOST_PP_IF(p(81, s), NDNBOOST_PP_WHILE_81, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(81, s))
+# define NDNBOOST_PP_WHILE_81_I(p, o, s) NDNBOOST_PP_IF(p(82, s), NDNBOOST_PP_WHILE_82, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(82, s))
+# define NDNBOOST_PP_WHILE_82_I(p, o, s) NDNBOOST_PP_IF(p(83, s), NDNBOOST_PP_WHILE_83, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(83, s))
+# define NDNBOOST_PP_WHILE_83_I(p, o, s) NDNBOOST_PP_IF(p(84, s), NDNBOOST_PP_WHILE_84, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(84, s))
+# define NDNBOOST_PP_WHILE_84_I(p, o, s) NDNBOOST_PP_IF(p(85, s), NDNBOOST_PP_WHILE_85, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(85, s))
+# define NDNBOOST_PP_WHILE_85_I(p, o, s) NDNBOOST_PP_IF(p(86, s), NDNBOOST_PP_WHILE_86, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(86, s))
+# define NDNBOOST_PP_WHILE_86_I(p, o, s) NDNBOOST_PP_IF(p(87, s), NDNBOOST_PP_WHILE_87, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(87, s))
+# define NDNBOOST_PP_WHILE_87_I(p, o, s) NDNBOOST_PP_IF(p(88, s), NDNBOOST_PP_WHILE_88, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(88, s))
+# define NDNBOOST_PP_WHILE_88_I(p, o, s) NDNBOOST_PP_IF(p(89, s), NDNBOOST_PP_WHILE_89, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(89, s))
+# define NDNBOOST_PP_WHILE_89_I(p, o, s) NDNBOOST_PP_IF(p(90, s), NDNBOOST_PP_WHILE_90, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(90, s))
+# define NDNBOOST_PP_WHILE_90_I(p, o, s) NDNBOOST_PP_IF(p(91, s), NDNBOOST_PP_WHILE_91, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(91, s))
+# define NDNBOOST_PP_WHILE_91_I(p, o, s) NDNBOOST_PP_IF(p(92, s), NDNBOOST_PP_WHILE_92, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(92, s))
+# define NDNBOOST_PP_WHILE_92_I(p, o, s) NDNBOOST_PP_IF(p(93, s), NDNBOOST_PP_WHILE_93, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(93, s))
+# define NDNBOOST_PP_WHILE_93_I(p, o, s) NDNBOOST_PP_IF(p(94, s), NDNBOOST_PP_WHILE_94, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(94, s))
+# define NDNBOOST_PP_WHILE_94_I(p, o, s) NDNBOOST_PP_IF(p(95, s), NDNBOOST_PP_WHILE_95, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(95, s))
+# define NDNBOOST_PP_WHILE_95_I(p, o, s) NDNBOOST_PP_IF(p(96, s), NDNBOOST_PP_WHILE_96, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(96, s))
+# define NDNBOOST_PP_WHILE_96_I(p, o, s) NDNBOOST_PP_IF(p(97, s), NDNBOOST_PP_WHILE_97, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(97, s))
+# define NDNBOOST_PP_WHILE_97_I(p, o, s) NDNBOOST_PP_IF(p(98, s), NDNBOOST_PP_WHILE_98, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(98, s))
+# define NDNBOOST_PP_WHILE_98_I(p, o, s) NDNBOOST_PP_IF(p(99, s), NDNBOOST_PP_WHILE_99, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(99, s))
+# define NDNBOOST_PP_WHILE_99_I(p, o, s) NDNBOOST_PP_IF(p(100, s), NDNBOOST_PP_WHILE_100, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(100, s))
+# define NDNBOOST_PP_WHILE_100_I(p, o, s) NDNBOOST_PP_IF(p(101, s), NDNBOOST_PP_WHILE_101, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(101, s))
+# define NDNBOOST_PP_WHILE_101_I(p, o, s) NDNBOOST_PP_IF(p(102, s), NDNBOOST_PP_WHILE_102, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(102, s))
+# define NDNBOOST_PP_WHILE_102_I(p, o, s) NDNBOOST_PP_IF(p(103, s), NDNBOOST_PP_WHILE_103, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(103, s))
+# define NDNBOOST_PP_WHILE_103_I(p, o, s) NDNBOOST_PP_IF(p(104, s), NDNBOOST_PP_WHILE_104, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(104, s))
+# define NDNBOOST_PP_WHILE_104_I(p, o, s) NDNBOOST_PP_IF(p(105, s), NDNBOOST_PP_WHILE_105, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(105, s))
+# define NDNBOOST_PP_WHILE_105_I(p, o, s) NDNBOOST_PP_IF(p(106, s), NDNBOOST_PP_WHILE_106, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(106, s))
+# define NDNBOOST_PP_WHILE_106_I(p, o, s) NDNBOOST_PP_IF(p(107, s), NDNBOOST_PP_WHILE_107, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(107, s))
+# define NDNBOOST_PP_WHILE_107_I(p, o, s) NDNBOOST_PP_IF(p(108, s), NDNBOOST_PP_WHILE_108, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(108, s))
+# define NDNBOOST_PP_WHILE_108_I(p, o, s) NDNBOOST_PP_IF(p(109, s), NDNBOOST_PP_WHILE_109, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(109, s))
+# define NDNBOOST_PP_WHILE_109_I(p, o, s) NDNBOOST_PP_IF(p(110, s), NDNBOOST_PP_WHILE_110, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(110, s))
+# define NDNBOOST_PP_WHILE_110_I(p, o, s) NDNBOOST_PP_IF(p(111, s), NDNBOOST_PP_WHILE_111, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(111, s))
+# define NDNBOOST_PP_WHILE_111_I(p, o, s) NDNBOOST_PP_IF(p(112, s), NDNBOOST_PP_WHILE_112, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(112, s))
+# define NDNBOOST_PP_WHILE_112_I(p, o, s) NDNBOOST_PP_IF(p(113, s), NDNBOOST_PP_WHILE_113, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(113, s))
+# define NDNBOOST_PP_WHILE_113_I(p, o, s) NDNBOOST_PP_IF(p(114, s), NDNBOOST_PP_WHILE_114, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(114, s))
+# define NDNBOOST_PP_WHILE_114_I(p, o, s) NDNBOOST_PP_IF(p(115, s), NDNBOOST_PP_WHILE_115, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(115, s))
+# define NDNBOOST_PP_WHILE_115_I(p, o, s) NDNBOOST_PP_IF(p(116, s), NDNBOOST_PP_WHILE_116, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(116, s))
+# define NDNBOOST_PP_WHILE_116_I(p, o, s) NDNBOOST_PP_IF(p(117, s), NDNBOOST_PP_WHILE_117, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(117, s))
+# define NDNBOOST_PP_WHILE_117_I(p, o, s) NDNBOOST_PP_IF(p(118, s), NDNBOOST_PP_WHILE_118, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(118, s))
+# define NDNBOOST_PP_WHILE_118_I(p, o, s) NDNBOOST_PP_IF(p(119, s), NDNBOOST_PP_WHILE_119, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(119, s))
+# define NDNBOOST_PP_WHILE_119_I(p, o, s) NDNBOOST_PP_IF(p(120, s), NDNBOOST_PP_WHILE_120, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(120, s))
+# define NDNBOOST_PP_WHILE_120_I(p, o, s) NDNBOOST_PP_IF(p(121, s), NDNBOOST_PP_WHILE_121, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(121, s))
+# define NDNBOOST_PP_WHILE_121_I(p, o, s) NDNBOOST_PP_IF(p(122, s), NDNBOOST_PP_WHILE_122, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(122, s))
+# define NDNBOOST_PP_WHILE_122_I(p, o, s) NDNBOOST_PP_IF(p(123, s), NDNBOOST_PP_WHILE_123, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(123, s))
+# define NDNBOOST_PP_WHILE_123_I(p, o, s) NDNBOOST_PP_IF(p(124, s), NDNBOOST_PP_WHILE_124, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(124, s))
+# define NDNBOOST_PP_WHILE_124_I(p, o, s) NDNBOOST_PP_IF(p(125, s), NDNBOOST_PP_WHILE_125, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(125, s))
+# define NDNBOOST_PP_WHILE_125_I(p, o, s) NDNBOOST_PP_IF(p(126, s), NDNBOOST_PP_WHILE_126, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(126, s))
+# define NDNBOOST_PP_WHILE_126_I(p, o, s) NDNBOOST_PP_IF(p(127, s), NDNBOOST_PP_WHILE_127, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(127, s))
+# define NDNBOOST_PP_WHILE_127_I(p, o, s) NDNBOOST_PP_IF(p(128, s), NDNBOOST_PP_WHILE_128, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(128, s))
+# define NDNBOOST_PP_WHILE_128_I(p, o, s) NDNBOOST_PP_IF(p(129, s), NDNBOOST_PP_WHILE_129, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(129, s))
+# define NDNBOOST_PP_WHILE_129_I(p, o, s) NDNBOOST_PP_IF(p(130, s), NDNBOOST_PP_WHILE_130, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(130, s))
+# define NDNBOOST_PP_WHILE_130_I(p, o, s) NDNBOOST_PP_IF(p(131, s), NDNBOOST_PP_WHILE_131, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(131, s))
+# define NDNBOOST_PP_WHILE_131_I(p, o, s) NDNBOOST_PP_IF(p(132, s), NDNBOOST_PP_WHILE_132, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(132, s))
+# define NDNBOOST_PP_WHILE_132_I(p, o, s) NDNBOOST_PP_IF(p(133, s), NDNBOOST_PP_WHILE_133, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(133, s))
+# define NDNBOOST_PP_WHILE_133_I(p, o, s) NDNBOOST_PP_IF(p(134, s), NDNBOOST_PP_WHILE_134, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(134, s))
+# define NDNBOOST_PP_WHILE_134_I(p, o, s) NDNBOOST_PP_IF(p(135, s), NDNBOOST_PP_WHILE_135, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(135, s))
+# define NDNBOOST_PP_WHILE_135_I(p, o, s) NDNBOOST_PP_IF(p(136, s), NDNBOOST_PP_WHILE_136, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(136, s))
+# define NDNBOOST_PP_WHILE_136_I(p, o, s) NDNBOOST_PP_IF(p(137, s), NDNBOOST_PP_WHILE_137, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(137, s))
+# define NDNBOOST_PP_WHILE_137_I(p, o, s) NDNBOOST_PP_IF(p(138, s), NDNBOOST_PP_WHILE_138, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(138, s))
+# define NDNBOOST_PP_WHILE_138_I(p, o, s) NDNBOOST_PP_IF(p(139, s), NDNBOOST_PP_WHILE_139, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(139, s))
+# define NDNBOOST_PP_WHILE_139_I(p, o, s) NDNBOOST_PP_IF(p(140, s), NDNBOOST_PP_WHILE_140, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(140, s))
+# define NDNBOOST_PP_WHILE_140_I(p, o, s) NDNBOOST_PP_IF(p(141, s), NDNBOOST_PP_WHILE_141, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(141, s))
+# define NDNBOOST_PP_WHILE_141_I(p, o, s) NDNBOOST_PP_IF(p(142, s), NDNBOOST_PP_WHILE_142, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(142, s))
+# define NDNBOOST_PP_WHILE_142_I(p, o, s) NDNBOOST_PP_IF(p(143, s), NDNBOOST_PP_WHILE_143, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(143, s))
+# define NDNBOOST_PP_WHILE_143_I(p, o, s) NDNBOOST_PP_IF(p(144, s), NDNBOOST_PP_WHILE_144, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(144, s))
+# define NDNBOOST_PP_WHILE_144_I(p, o, s) NDNBOOST_PP_IF(p(145, s), NDNBOOST_PP_WHILE_145, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(145, s))
+# define NDNBOOST_PP_WHILE_145_I(p, o, s) NDNBOOST_PP_IF(p(146, s), NDNBOOST_PP_WHILE_146, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(146, s))
+# define NDNBOOST_PP_WHILE_146_I(p, o, s) NDNBOOST_PP_IF(p(147, s), NDNBOOST_PP_WHILE_147, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(147, s))
+# define NDNBOOST_PP_WHILE_147_I(p, o, s) NDNBOOST_PP_IF(p(148, s), NDNBOOST_PP_WHILE_148, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(148, s))
+# define NDNBOOST_PP_WHILE_148_I(p, o, s) NDNBOOST_PP_IF(p(149, s), NDNBOOST_PP_WHILE_149, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(149, s))
+# define NDNBOOST_PP_WHILE_149_I(p, o, s) NDNBOOST_PP_IF(p(150, s), NDNBOOST_PP_WHILE_150, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(150, s))
+# define NDNBOOST_PP_WHILE_150_I(p, o, s) NDNBOOST_PP_IF(p(151, s), NDNBOOST_PP_WHILE_151, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(151, s))
+# define NDNBOOST_PP_WHILE_151_I(p, o, s) NDNBOOST_PP_IF(p(152, s), NDNBOOST_PP_WHILE_152, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(152, s))
+# define NDNBOOST_PP_WHILE_152_I(p, o, s) NDNBOOST_PP_IF(p(153, s), NDNBOOST_PP_WHILE_153, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(153, s))
+# define NDNBOOST_PP_WHILE_153_I(p, o, s) NDNBOOST_PP_IF(p(154, s), NDNBOOST_PP_WHILE_154, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(154, s))
+# define NDNBOOST_PP_WHILE_154_I(p, o, s) NDNBOOST_PP_IF(p(155, s), NDNBOOST_PP_WHILE_155, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(155, s))
+# define NDNBOOST_PP_WHILE_155_I(p, o, s) NDNBOOST_PP_IF(p(156, s), NDNBOOST_PP_WHILE_156, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(156, s))
+# define NDNBOOST_PP_WHILE_156_I(p, o, s) NDNBOOST_PP_IF(p(157, s), NDNBOOST_PP_WHILE_157, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(157, s))
+# define NDNBOOST_PP_WHILE_157_I(p, o, s) NDNBOOST_PP_IF(p(158, s), NDNBOOST_PP_WHILE_158, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(158, s))
+# define NDNBOOST_PP_WHILE_158_I(p, o, s) NDNBOOST_PP_IF(p(159, s), NDNBOOST_PP_WHILE_159, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(159, s))
+# define NDNBOOST_PP_WHILE_159_I(p, o, s) NDNBOOST_PP_IF(p(160, s), NDNBOOST_PP_WHILE_160, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(160, s))
+# define NDNBOOST_PP_WHILE_160_I(p, o, s) NDNBOOST_PP_IF(p(161, s), NDNBOOST_PP_WHILE_161, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(161, s))
+# define NDNBOOST_PP_WHILE_161_I(p, o, s) NDNBOOST_PP_IF(p(162, s), NDNBOOST_PP_WHILE_162, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(162, s))
+# define NDNBOOST_PP_WHILE_162_I(p, o, s) NDNBOOST_PP_IF(p(163, s), NDNBOOST_PP_WHILE_163, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(163, s))
+# define NDNBOOST_PP_WHILE_163_I(p, o, s) NDNBOOST_PP_IF(p(164, s), NDNBOOST_PP_WHILE_164, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(164, s))
+# define NDNBOOST_PP_WHILE_164_I(p, o, s) NDNBOOST_PP_IF(p(165, s), NDNBOOST_PP_WHILE_165, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(165, s))
+# define NDNBOOST_PP_WHILE_165_I(p, o, s) NDNBOOST_PP_IF(p(166, s), NDNBOOST_PP_WHILE_166, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(166, s))
+# define NDNBOOST_PP_WHILE_166_I(p, o, s) NDNBOOST_PP_IF(p(167, s), NDNBOOST_PP_WHILE_167, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(167, s))
+# define NDNBOOST_PP_WHILE_167_I(p, o, s) NDNBOOST_PP_IF(p(168, s), NDNBOOST_PP_WHILE_168, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(168, s))
+# define NDNBOOST_PP_WHILE_168_I(p, o, s) NDNBOOST_PP_IF(p(169, s), NDNBOOST_PP_WHILE_169, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(169, s))
+# define NDNBOOST_PP_WHILE_169_I(p, o, s) NDNBOOST_PP_IF(p(170, s), NDNBOOST_PP_WHILE_170, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(170, s))
+# define NDNBOOST_PP_WHILE_170_I(p, o, s) NDNBOOST_PP_IF(p(171, s), NDNBOOST_PP_WHILE_171, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(171, s))
+# define NDNBOOST_PP_WHILE_171_I(p, o, s) NDNBOOST_PP_IF(p(172, s), NDNBOOST_PP_WHILE_172, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(172, s))
+# define NDNBOOST_PP_WHILE_172_I(p, o, s) NDNBOOST_PP_IF(p(173, s), NDNBOOST_PP_WHILE_173, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(173, s))
+# define NDNBOOST_PP_WHILE_173_I(p, o, s) NDNBOOST_PP_IF(p(174, s), NDNBOOST_PP_WHILE_174, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(174, s))
+# define NDNBOOST_PP_WHILE_174_I(p, o, s) NDNBOOST_PP_IF(p(175, s), NDNBOOST_PP_WHILE_175, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(175, s))
+# define NDNBOOST_PP_WHILE_175_I(p, o, s) NDNBOOST_PP_IF(p(176, s), NDNBOOST_PP_WHILE_176, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(176, s))
+# define NDNBOOST_PP_WHILE_176_I(p, o, s) NDNBOOST_PP_IF(p(177, s), NDNBOOST_PP_WHILE_177, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(177, s))
+# define NDNBOOST_PP_WHILE_177_I(p, o, s) NDNBOOST_PP_IF(p(178, s), NDNBOOST_PP_WHILE_178, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(178, s))
+# define NDNBOOST_PP_WHILE_178_I(p, o, s) NDNBOOST_PP_IF(p(179, s), NDNBOOST_PP_WHILE_179, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(179, s))
+# define NDNBOOST_PP_WHILE_179_I(p, o, s) NDNBOOST_PP_IF(p(180, s), NDNBOOST_PP_WHILE_180, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(180, s))
+# define NDNBOOST_PP_WHILE_180_I(p, o, s) NDNBOOST_PP_IF(p(181, s), NDNBOOST_PP_WHILE_181, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(181, s))
+# define NDNBOOST_PP_WHILE_181_I(p, o, s) NDNBOOST_PP_IF(p(182, s), NDNBOOST_PP_WHILE_182, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(182, s))
+# define NDNBOOST_PP_WHILE_182_I(p, o, s) NDNBOOST_PP_IF(p(183, s), NDNBOOST_PP_WHILE_183, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(183, s))
+# define NDNBOOST_PP_WHILE_183_I(p, o, s) NDNBOOST_PP_IF(p(184, s), NDNBOOST_PP_WHILE_184, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(184, s))
+# define NDNBOOST_PP_WHILE_184_I(p, o, s) NDNBOOST_PP_IF(p(185, s), NDNBOOST_PP_WHILE_185, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(185, s))
+# define NDNBOOST_PP_WHILE_185_I(p, o, s) NDNBOOST_PP_IF(p(186, s), NDNBOOST_PP_WHILE_186, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(186, s))
+# define NDNBOOST_PP_WHILE_186_I(p, o, s) NDNBOOST_PP_IF(p(187, s), NDNBOOST_PP_WHILE_187, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(187, s))
+# define NDNBOOST_PP_WHILE_187_I(p, o, s) NDNBOOST_PP_IF(p(188, s), NDNBOOST_PP_WHILE_188, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(188, s))
+# define NDNBOOST_PP_WHILE_188_I(p, o, s) NDNBOOST_PP_IF(p(189, s), NDNBOOST_PP_WHILE_189, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(189, s))
+# define NDNBOOST_PP_WHILE_189_I(p, o, s) NDNBOOST_PP_IF(p(190, s), NDNBOOST_PP_WHILE_190, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(190, s))
+# define NDNBOOST_PP_WHILE_190_I(p, o, s) NDNBOOST_PP_IF(p(191, s), NDNBOOST_PP_WHILE_191, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(191, s))
+# define NDNBOOST_PP_WHILE_191_I(p, o, s) NDNBOOST_PP_IF(p(192, s), NDNBOOST_PP_WHILE_192, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(192, s))
+# define NDNBOOST_PP_WHILE_192_I(p, o, s) NDNBOOST_PP_IF(p(193, s), NDNBOOST_PP_WHILE_193, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(193, s))
+# define NDNBOOST_PP_WHILE_193_I(p, o, s) NDNBOOST_PP_IF(p(194, s), NDNBOOST_PP_WHILE_194, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(194, s))
+# define NDNBOOST_PP_WHILE_194_I(p, o, s) NDNBOOST_PP_IF(p(195, s), NDNBOOST_PP_WHILE_195, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(195, s))
+# define NDNBOOST_PP_WHILE_195_I(p, o, s) NDNBOOST_PP_IF(p(196, s), NDNBOOST_PP_WHILE_196, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(196, s))
+# define NDNBOOST_PP_WHILE_196_I(p, o, s) NDNBOOST_PP_IF(p(197, s), NDNBOOST_PP_WHILE_197, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(197, s))
+# define NDNBOOST_PP_WHILE_197_I(p, o, s) NDNBOOST_PP_IF(p(198, s), NDNBOOST_PP_WHILE_198, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(198, s))
+# define NDNBOOST_PP_WHILE_198_I(p, o, s) NDNBOOST_PP_IF(p(199, s), NDNBOOST_PP_WHILE_199, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(199, s))
+# define NDNBOOST_PP_WHILE_199_I(p, o, s) NDNBOOST_PP_IF(p(200, s), NDNBOOST_PP_WHILE_200, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(200, s))
+# define NDNBOOST_PP_WHILE_200_I(p, o, s) NDNBOOST_PP_IF(p(201, s), NDNBOOST_PP_WHILE_201, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(201, s))
+# define NDNBOOST_PP_WHILE_201_I(p, o, s) NDNBOOST_PP_IF(p(202, s), NDNBOOST_PP_WHILE_202, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(202, s))
+# define NDNBOOST_PP_WHILE_202_I(p, o, s) NDNBOOST_PP_IF(p(203, s), NDNBOOST_PP_WHILE_203, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(203, s))
+# define NDNBOOST_PP_WHILE_203_I(p, o, s) NDNBOOST_PP_IF(p(204, s), NDNBOOST_PP_WHILE_204, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(204, s))
+# define NDNBOOST_PP_WHILE_204_I(p, o, s) NDNBOOST_PP_IF(p(205, s), NDNBOOST_PP_WHILE_205, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(205, s))
+# define NDNBOOST_PP_WHILE_205_I(p, o, s) NDNBOOST_PP_IF(p(206, s), NDNBOOST_PP_WHILE_206, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(206, s))
+# define NDNBOOST_PP_WHILE_206_I(p, o, s) NDNBOOST_PP_IF(p(207, s), NDNBOOST_PP_WHILE_207, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(207, s))
+# define NDNBOOST_PP_WHILE_207_I(p, o, s) NDNBOOST_PP_IF(p(208, s), NDNBOOST_PP_WHILE_208, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(208, s))
+# define NDNBOOST_PP_WHILE_208_I(p, o, s) NDNBOOST_PP_IF(p(209, s), NDNBOOST_PP_WHILE_209, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(209, s))
+# define NDNBOOST_PP_WHILE_209_I(p, o, s) NDNBOOST_PP_IF(p(210, s), NDNBOOST_PP_WHILE_210, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(210, s))
+# define NDNBOOST_PP_WHILE_210_I(p, o, s) NDNBOOST_PP_IF(p(211, s), NDNBOOST_PP_WHILE_211, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(211, s))
+# define NDNBOOST_PP_WHILE_211_I(p, o, s) NDNBOOST_PP_IF(p(212, s), NDNBOOST_PP_WHILE_212, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(212, s))
+# define NDNBOOST_PP_WHILE_212_I(p, o, s) NDNBOOST_PP_IF(p(213, s), NDNBOOST_PP_WHILE_213, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(213, s))
+# define NDNBOOST_PP_WHILE_213_I(p, o, s) NDNBOOST_PP_IF(p(214, s), NDNBOOST_PP_WHILE_214, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(214, s))
+# define NDNBOOST_PP_WHILE_214_I(p, o, s) NDNBOOST_PP_IF(p(215, s), NDNBOOST_PP_WHILE_215, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(215, s))
+# define NDNBOOST_PP_WHILE_215_I(p, o, s) NDNBOOST_PP_IF(p(216, s), NDNBOOST_PP_WHILE_216, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(216, s))
+# define NDNBOOST_PP_WHILE_216_I(p, o, s) NDNBOOST_PP_IF(p(217, s), NDNBOOST_PP_WHILE_217, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(217, s))
+# define NDNBOOST_PP_WHILE_217_I(p, o, s) NDNBOOST_PP_IF(p(218, s), NDNBOOST_PP_WHILE_218, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(218, s))
+# define NDNBOOST_PP_WHILE_218_I(p, o, s) NDNBOOST_PP_IF(p(219, s), NDNBOOST_PP_WHILE_219, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(219, s))
+# define NDNBOOST_PP_WHILE_219_I(p, o, s) NDNBOOST_PP_IF(p(220, s), NDNBOOST_PP_WHILE_220, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(220, s))
+# define NDNBOOST_PP_WHILE_220_I(p, o, s) NDNBOOST_PP_IF(p(221, s), NDNBOOST_PP_WHILE_221, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(221, s))
+# define NDNBOOST_PP_WHILE_221_I(p, o, s) NDNBOOST_PP_IF(p(222, s), NDNBOOST_PP_WHILE_222, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(222, s))
+# define NDNBOOST_PP_WHILE_222_I(p, o, s) NDNBOOST_PP_IF(p(223, s), NDNBOOST_PP_WHILE_223, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(223, s))
+# define NDNBOOST_PP_WHILE_223_I(p, o, s) NDNBOOST_PP_IF(p(224, s), NDNBOOST_PP_WHILE_224, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(224, s))
+# define NDNBOOST_PP_WHILE_224_I(p, o, s) NDNBOOST_PP_IF(p(225, s), NDNBOOST_PP_WHILE_225, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(225, s))
+# define NDNBOOST_PP_WHILE_225_I(p, o, s) NDNBOOST_PP_IF(p(226, s), NDNBOOST_PP_WHILE_226, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(226, s))
+# define NDNBOOST_PP_WHILE_226_I(p, o, s) NDNBOOST_PP_IF(p(227, s), NDNBOOST_PP_WHILE_227, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(227, s))
+# define NDNBOOST_PP_WHILE_227_I(p, o, s) NDNBOOST_PP_IF(p(228, s), NDNBOOST_PP_WHILE_228, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(228, s))
+# define NDNBOOST_PP_WHILE_228_I(p, o, s) NDNBOOST_PP_IF(p(229, s), NDNBOOST_PP_WHILE_229, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(229, s))
+# define NDNBOOST_PP_WHILE_229_I(p, o, s) NDNBOOST_PP_IF(p(230, s), NDNBOOST_PP_WHILE_230, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(230, s))
+# define NDNBOOST_PP_WHILE_230_I(p, o, s) NDNBOOST_PP_IF(p(231, s), NDNBOOST_PP_WHILE_231, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(231, s))
+# define NDNBOOST_PP_WHILE_231_I(p, o, s) NDNBOOST_PP_IF(p(232, s), NDNBOOST_PP_WHILE_232, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(232, s))
+# define NDNBOOST_PP_WHILE_232_I(p, o, s) NDNBOOST_PP_IF(p(233, s), NDNBOOST_PP_WHILE_233, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(233, s))
+# define NDNBOOST_PP_WHILE_233_I(p, o, s) NDNBOOST_PP_IF(p(234, s), NDNBOOST_PP_WHILE_234, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(234, s))
+# define NDNBOOST_PP_WHILE_234_I(p, o, s) NDNBOOST_PP_IF(p(235, s), NDNBOOST_PP_WHILE_235, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(235, s))
+# define NDNBOOST_PP_WHILE_235_I(p, o, s) NDNBOOST_PP_IF(p(236, s), NDNBOOST_PP_WHILE_236, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(236, s))
+# define NDNBOOST_PP_WHILE_236_I(p, o, s) NDNBOOST_PP_IF(p(237, s), NDNBOOST_PP_WHILE_237, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(237, s))
+# define NDNBOOST_PP_WHILE_237_I(p, o, s) NDNBOOST_PP_IF(p(238, s), NDNBOOST_PP_WHILE_238, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(238, s))
+# define NDNBOOST_PP_WHILE_238_I(p, o, s) NDNBOOST_PP_IF(p(239, s), NDNBOOST_PP_WHILE_239, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(239, s))
+# define NDNBOOST_PP_WHILE_239_I(p, o, s) NDNBOOST_PP_IF(p(240, s), NDNBOOST_PP_WHILE_240, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(240, s))
+# define NDNBOOST_PP_WHILE_240_I(p, o, s) NDNBOOST_PP_IF(p(241, s), NDNBOOST_PP_WHILE_241, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(241, s))
+# define NDNBOOST_PP_WHILE_241_I(p, o, s) NDNBOOST_PP_IF(p(242, s), NDNBOOST_PP_WHILE_242, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(242, s))
+# define NDNBOOST_PP_WHILE_242_I(p, o, s) NDNBOOST_PP_IF(p(243, s), NDNBOOST_PP_WHILE_243, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(243, s))
+# define NDNBOOST_PP_WHILE_243_I(p, o, s) NDNBOOST_PP_IF(p(244, s), NDNBOOST_PP_WHILE_244, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(244, s))
+# define NDNBOOST_PP_WHILE_244_I(p, o, s) NDNBOOST_PP_IF(p(245, s), NDNBOOST_PP_WHILE_245, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(245, s))
+# define NDNBOOST_PP_WHILE_245_I(p, o, s) NDNBOOST_PP_IF(p(246, s), NDNBOOST_PP_WHILE_246, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(246, s))
+# define NDNBOOST_PP_WHILE_246_I(p, o, s) NDNBOOST_PP_IF(p(247, s), NDNBOOST_PP_WHILE_247, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(247, s))
+# define NDNBOOST_PP_WHILE_247_I(p, o, s) NDNBOOST_PP_IF(p(248, s), NDNBOOST_PP_WHILE_248, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(248, s))
+# define NDNBOOST_PP_WHILE_248_I(p, o, s) NDNBOOST_PP_IF(p(249, s), NDNBOOST_PP_WHILE_249, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(249, s))
+# define NDNBOOST_PP_WHILE_249_I(p, o, s) NDNBOOST_PP_IF(p(250, s), NDNBOOST_PP_WHILE_250, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(250, s))
+# define NDNBOOST_PP_WHILE_250_I(p, o, s) NDNBOOST_PP_IF(p(251, s), NDNBOOST_PP_WHILE_251, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(251, s))
+# define NDNBOOST_PP_WHILE_251_I(p, o, s) NDNBOOST_PP_IF(p(252, s), NDNBOOST_PP_WHILE_252, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(252, s))
+# define NDNBOOST_PP_WHILE_252_I(p, o, s) NDNBOOST_PP_IF(p(253, s), NDNBOOST_PP_WHILE_253, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(253, s))
+# define NDNBOOST_PP_WHILE_253_I(p, o, s) NDNBOOST_PP_IF(p(254, s), NDNBOOST_PP_WHILE_254, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(254, s))
+# define NDNBOOST_PP_WHILE_254_I(p, o, s) NDNBOOST_PP_IF(p(255, s), NDNBOOST_PP_WHILE_255, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(255, s))
+# define NDNBOOST_PP_WHILE_255_I(p, o, s) NDNBOOST_PP_IF(p(256, s), NDNBOOST_PP_WHILE_256, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(256, s))
+# define NDNBOOST_PP_WHILE_256_I(p, o, s) NDNBOOST_PP_IF(p(257, s), NDNBOOST_PP_WHILE_257, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(257, s))
 #
 # endif
diff --git a/include/ndnboost/preprocessor/control/detail/msvc/while.hpp b/include/ndnboost/preprocessor/control/detail/msvc/while.hpp
index bd2d461..bac9861 100644
--- a/include/ndnboost/preprocessor/control/detail/msvc/while.hpp
+++ b/include/ndnboost/preprocessor/control/detail/msvc/while.hpp
@@ -11,267 +11,267 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_CONTROL_DETAIL_MSVC_WHILE_HPP
-# define BOOST_PREPROCESSOR_CONTROL_DETAIL_MSVC_WHILE_HPP
+# ifndef NDNBOOST_PREPROCESSOR_CONTROL_DETAIL_MSVC_WHILE_HPP
+# define NDNBOOST_PREPROCESSOR_CONTROL_DETAIL_MSVC_WHILE_HPP
 #
 # include <ndnboost/preprocessor/control/if.hpp>
 # include <ndnboost/preprocessor/tuple/eat.hpp>
 #
-# define BOOST_PP_WHILE_1(p, o, s) BOOST_PP_IF(p(2, s), BOOST_PP_WHILE_2, s BOOST_PP_TUPLE_EAT_3)(p, o, o(2, s))
-# define BOOST_PP_WHILE_2(p, o, s) BOOST_PP_IF(p(3, s), BOOST_PP_WHILE_3, s BOOST_PP_TUPLE_EAT_3)(p, o, o(3, s))
-# define BOOST_PP_WHILE_3(p, o, s) BOOST_PP_IF(p(4, s), BOOST_PP_WHILE_4, s BOOST_PP_TUPLE_EAT_3)(p, o, o(4, s))
-# define BOOST_PP_WHILE_4(p, o, s) BOOST_PP_IF(p(5, s), BOOST_PP_WHILE_5, s BOOST_PP_TUPLE_EAT_3)(p, o, o(5, s))
-# define BOOST_PP_WHILE_5(p, o, s) BOOST_PP_IF(p(6, s), BOOST_PP_WHILE_6, s BOOST_PP_TUPLE_EAT_3)(p, o, o(6, s))
-# define BOOST_PP_WHILE_6(p, o, s) BOOST_PP_IF(p(7, s), BOOST_PP_WHILE_7, s BOOST_PP_TUPLE_EAT_3)(p, o, o(7, s))
-# define BOOST_PP_WHILE_7(p, o, s) BOOST_PP_IF(p(8, s), BOOST_PP_WHILE_8, s BOOST_PP_TUPLE_EAT_3)(p, o, o(8, s))
-# define BOOST_PP_WHILE_8(p, o, s) BOOST_PP_IF(p(9, s), BOOST_PP_WHILE_9, s BOOST_PP_TUPLE_EAT_3)(p, o, o(9, s))
-# define BOOST_PP_WHILE_9(p, o, s) BOOST_PP_IF(p(10, s), BOOST_PP_WHILE_10, s BOOST_PP_TUPLE_EAT_3)(p, o, o(10, s))
-# define BOOST_PP_WHILE_10(p, o, s) BOOST_PP_IF(p(11, s), BOOST_PP_WHILE_11, s BOOST_PP_TUPLE_EAT_3)(p, o, o(11, s))
-# define BOOST_PP_WHILE_11(p, o, s) BOOST_PP_IF(p(12, s), BOOST_PP_WHILE_12, s BOOST_PP_TUPLE_EAT_3)(p, o, o(12, s))
-# define BOOST_PP_WHILE_12(p, o, s) BOOST_PP_IF(p(13, s), BOOST_PP_WHILE_13, s BOOST_PP_TUPLE_EAT_3)(p, o, o(13, s))
-# define BOOST_PP_WHILE_13(p, o, s) BOOST_PP_IF(p(14, s), BOOST_PP_WHILE_14, s BOOST_PP_TUPLE_EAT_3)(p, o, o(14, s))
-# define BOOST_PP_WHILE_14(p, o, s) BOOST_PP_IF(p(15, s), BOOST_PP_WHILE_15, s BOOST_PP_TUPLE_EAT_3)(p, o, o(15, s))
-# define BOOST_PP_WHILE_15(p, o, s) BOOST_PP_IF(p(16, s), BOOST_PP_WHILE_16, s BOOST_PP_TUPLE_EAT_3)(p, o, o(16, s))
-# define BOOST_PP_WHILE_16(p, o, s) BOOST_PP_IF(p(17, s), BOOST_PP_WHILE_17, s BOOST_PP_TUPLE_EAT_3)(p, o, o(17, s))
-# define BOOST_PP_WHILE_17(p, o, s) BOOST_PP_IF(p(18, s), BOOST_PP_WHILE_18, s BOOST_PP_TUPLE_EAT_3)(p, o, o(18, s))
-# define BOOST_PP_WHILE_18(p, o, s) BOOST_PP_IF(p(19, s), BOOST_PP_WHILE_19, s BOOST_PP_TUPLE_EAT_3)(p, o, o(19, s))
-# define BOOST_PP_WHILE_19(p, o, s) BOOST_PP_IF(p(20, s), BOOST_PP_WHILE_20, s BOOST_PP_TUPLE_EAT_3)(p, o, o(20, s))
-# define BOOST_PP_WHILE_20(p, o, s) BOOST_PP_IF(p(21, s), BOOST_PP_WHILE_21, s BOOST_PP_TUPLE_EAT_3)(p, o, o(21, s))
-# define BOOST_PP_WHILE_21(p, o, s) BOOST_PP_IF(p(22, s), BOOST_PP_WHILE_22, s BOOST_PP_TUPLE_EAT_3)(p, o, o(22, s))
-# define BOOST_PP_WHILE_22(p, o, s) BOOST_PP_IF(p(23, s), BOOST_PP_WHILE_23, s BOOST_PP_TUPLE_EAT_3)(p, o, o(23, s))
-# define BOOST_PP_WHILE_23(p, o, s) BOOST_PP_IF(p(24, s), BOOST_PP_WHILE_24, s BOOST_PP_TUPLE_EAT_3)(p, o, o(24, s))
-# define BOOST_PP_WHILE_24(p, o, s) BOOST_PP_IF(p(25, s), BOOST_PP_WHILE_25, s BOOST_PP_TUPLE_EAT_3)(p, o, o(25, s))
-# define BOOST_PP_WHILE_25(p, o, s) BOOST_PP_IF(p(26, s), BOOST_PP_WHILE_26, s BOOST_PP_TUPLE_EAT_3)(p, o, o(26, s))
-# define BOOST_PP_WHILE_26(p, o, s) BOOST_PP_IF(p(27, s), BOOST_PP_WHILE_27, s BOOST_PP_TUPLE_EAT_3)(p, o, o(27, s))
-# define BOOST_PP_WHILE_27(p, o, s) BOOST_PP_IF(p(28, s), BOOST_PP_WHILE_28, s BOOST_PP_TUPLE_EAT_3)(p, o, o(28, s))
-# define BOOST_PP_WHILE_28(p, o, s) BOOST_PP_IF(p(29, s), BOOST_PP_WHILE_29, s BOOST_PP_TUPLE_EAT_3)(p, o, o(29, s))
-# define BOOST_PP_WHILE_29(p, o, s) BOOST_PP_IF(p(30, s), BOOST_PP_WHILE_30, s BOOST_PP_TUPLE_EAT_3)(p, o, o(30, s))
-# define BOOST_PP_WHILE_30(p, o, s) BOOST_PP_IF(p(31, s), BOOST_PP_WHILE_31, s BOOST_PP_TUPLE_EAT_3)(p, o, o(31, s))
-# define BOOST_PP_WHILE_31(p, o, s) BOOST_PP_IF(p(32, s), BOOST_PP_WHILE_32, s BOOST_PP_TUPLE_EAT_3)(p, o, o(32, s))
-# define BOOST_PP_WHILE_32(p, o, s) BOOST_PP_IF(p(33, s), BOOST_PP_WHILE_33, s BOOST_PP_TUPLE_EAT_3)(p, o, o(33, s))
-# define BOOST_PP_WHILE_33(p, o, s) BOOST_PP_IF(p(34, s), BOOST_PP_WHILE_34, s BOOST_PP_TUPLE_EAT_3)(p, o, o(34, s))
-# define BOOST_PP_WHILE_34(p, o, s) BOOST_PP_IF(p(35, s), BOOST_PP_WHILE_35, s BOOST_PP_TUPLE_EAT_3)(p, o, o(35, s))
-# define BOOST_PP_WHILE_35(p, o, s) BOOST_PP_IF(p(36, s), BOOST_PP_WHILE_36, s BOOST_PP_TUPLE_EAT_3)(p, o, o(36, s))
-# define BOOST_PP_WHILE_36(p, o, s) BOOST_PP_IF(p(37, s), BOOST_PP_WHILE_37, s BOOST_PP_TUPLE_EAT_3)(p, o, o(37, s))
-# define BOOST_PP_WHILE_37(p, o, s) BOOST_PP_IF(p(38, s), BOOST_PP_WHILE_38, s BOOST_PP_TUPLE_EAT_3)(p, o, o(38, s))
-# define BOOST_PP_WHILE_38(p, o, s) BOOST_PP_IF(p(39, s), BOOST_PP_WHILE_39, s BOOST_PP_TUPLE_EAT_3)(p, o, o(39, s))
-# define BOOST_PP_WHILE_39(p, o, s) BOOST_PP_IF(p(40, s), BOOST_PP_WHILE_40, s BOOST_PP_TUPLE_EAT_3)(p, o, o(40, s))
-# define BOOST_PP_WHILE_40(p, o, s) BOOST_PP_IF(p(41, s), BOOST_PP_WHILE_41, s BOOST_PP_TUPLE_EAT_3)(p, o, o(41, s))
-# define BOOST_PP_WHILE_41(p, o, s) BOOST_PP_IF(p(42, s), BOOST_PP_WHILE_42, s BOOST_PP_TUPLE_EAT_3)(p, o, o(42, s))
-# define BOOST_PP_WHILE_42(p, o, s) BOOST_PP_IF(p(43, s), BOOST_PP_WHILE_43, s BOOST_PP_TUPLE_EAT_3)(p, o, o(43, s))
-# define BOOST_PP_WHILE_43(p, o, s) BOOST_PP_IF(p(44, s), BOOST_PP_WHILE_44, s BOOST_PP_TUPLE_EAT_3)(p, o, o(44, s))
-# define BOOST_PP_WHILE_44(p, o, s) BOOST_PP_IF(p(45, s), BOOST_PP_WHILE_45, s BOOST_PP_TUPLE_EAT_3)(p, o, o(45, s))
-# define BOOST_PP_WHILE_45(p, o, s) BOOST_PP_IF(p(46, s), BOOST_PP_WHILE_46, s BOOST_PP_TUPLE_EAT_3)(p, o, o(46, s))
-# define BOOST_PP_WHILE_46(p, o, s) BOOST_PP_IF(p(47, s), BOOST_PP_WHILE_47, s BOOST_PP_TUPLE_EAT_3)(p, o, o(47, s))
-# define BOOST_PP_WHILE_47(p, o, s) BOOST_PP_IF(p(48, s), BOOST_PP_WHILE_48, s BOOST_PP_TUPLE_EAT_3)(p, o, o(48, s))
-# define BOOST_PP_WHILE_48(p, o, s) BOOST_PP_IF(p(49, s), BOOST_PP_WHILE_49, s BOOST_PP_TUPLE_EAT_3)(p, o, o(49, s))
-# define BOOST_PP_WHILE_49(p, o, s) BOOST_PP_IF(p(50, s), BOOST_PP_WHILE_50, s BOOST_PP_TUPLE_EAT_3)(p, o, o(50, s))
-# define BOOST_PP_WHILE_50(p, o, s) BOOST_PP_IF(p(51, s), BOOST_PP_WHILE_51, s BOOST_PP_TUPLE_EAT_3)(p, o, o(51, s))
-# define BOOST_PP_WHILE_51(p, o, s) BOOST_PP_IF(p(52, s), BOOST_PP_WHILE_52, s BOOST_PP_TUPLE_EAT_3)(p, o, o(52, s))
-# define BOOST_PP_WHILE_52(p, o, s) BOOST_PP_IF(p(53, s), BOOST_PP_WHILE_53, s BOOST_PP_TUPLE_EAT_3)(p, o, o(53, s))
-# define BOOST_PP_WHILE_53(p, o, s) BOOST_PP_IF(p(54, s), BOOST_PP_WHILE_54, s BOOST_PP_TUPLE_EAT_3)(p, o, o(54, s))
-# define BOOST_PP_WHILE_54(p, o, s) BOOST_PP_IF(p(55, s), BOOST_PP_WHILE_55, s BOOST_PP_TUPLE_EAT_3)(p, o, o(55, s))
-# define BOOST_PP_WHILE_55(p, o, s) BOOST_PP_IF(p(56, s), BOOST_PP_WHILE_56, s BOOST_PP_TUPLE_EAT_3)(p, o, o(56, s))
-# define BOOST_PP_WHILE_56(p, o, s) BOOST_PP_IF(p(57, s), BOOST_PP_WHILE_57, s BOOST_PP_TUPLE_EAT_3)(p, o, o(57, s))
-# define BOOST_PP_WHILE_57(p, o, s) BOOST_PP_IF(p(58, s), BOOST_PP_WHILE_58, s BOOST_PP_TUPLE_EAT_3)(p, o, o(58, s))
-# define BOOST_PP_WHILE_58(p, o, s) BOOST_PP_IF(p(59, s), BOOST_PP_WHILE_59, s BOOST_PP_TUPLE_EAT_3)(p, o, o(59, s))
-# define BOOST_PP_WHILE_59(p, o, s) BOOST_PP_IF(p(60, s), BOOST_PP_WHILE_60, s BOOST_PP_TUPLE_EAT_3)(p, o, o(60, s))
-# define BOOST_PP_WHILE_60(p, o, s) BOOST_PP_IF(p(61, s), BOOST_PP_WHILE_61, s BOOST_PP_TUPLE_EAT_3)(p, o, o(61, s))
-# define BOOST_PP_WHILE_61(p, o, s) BOOST_PP_IF(p(62, s), BOOST_PP_WHILE_62, s BOOST_PP_TUPLE_EAT_3)(p, o, o(62, s))
-# define BOOST_PP_WHILE_62(p, o, s) BOOST_PP_IF(p(63, s), BOOST_PP_WHILE_63, s BOOST_PP_TUPLE_EAT_3)(p, o, o(63, s))
-# define BOOST_PP_WHILE_63(p, o, s) BOOST_PP_IF(p(64, s), BOOST_PP_WHILE_64, s BOOST_PP_TUPLE_EAT_3)(p, o, o(64, s))
-# define BOOST_PP_WHILE_64(p, o, s) BOOST_PP_IF(p(65, s), BOOST_PP_WHILE_65, s BOOST_PP_TUPLE_EAT_3)(p, o, o(65, s))
-# define BOOST_PP_WHILE_65(p, o, s) BOOST_PP_IF(p(66, s), BOOST_PP_WHILE_66, s BOOST_PP_TUPLE_EAT_3)(p, o, o(66, s))
-# define BOOST_PP_WHILE_66(p, o, s) BOOST_PP_IF(p(67, s), BOOST_PP_WHILE_67, s BOOST_PP_TUPLE_EAT_3)(p, o, o(67, s))
-# define BOOST_PP_WHILE_67(p, o, s) BOOST_PP_IF(p(68, s), BOOST_PP_WHILE_68, s BOOST_PP_TUPLE_EAT_3)(p, o, o(68, s))
-# define BOOST_PP_WHILE_68(p, o, s) BOOST_PP_IF(p(69, s), BOOST_PP_WHILE_69, s BOOST_PP_TUPLE_EAT_3)(p, o, o(69, s))
-# define BOOST_PP_WHILE_69(p, o, s) BOOST_PP_IF(p(70, s), BOOST_PP_WHILE_70, s BOOST_PP_TUPLE_EAT_3)(p, o, o(70, s))
-# define BOOST_PP_WHILE_70(p, o, s) BOOST_PP_IF(p(71, s), BOOST_PP_WHILE_71, s BOOST_PP_TUPLE_EAT_3)(p, o, o(71, s))
-# define BOOST_PP_WHILE_71(p, o, s) BOOST_PP_IF(p(72, s), BOOST_PP_WHILE_72, s BOOST_PP_TUPLE_EAT_3)(p, o, o(72, s))
-# define BOOST_PP_WHILE_72(p, o, s) BOOST_PP_IF(p(73, s), BOOST_PP_WHILE_73, s BOOST_PP_TUPLE_EAT_3)(p, o, o(73, s))
-# define BOOST_PP_WHILE_73(p, o, s) BOOST_PP_IF(p(74, s), BOOST_PP_WHILE_74, s BOOST_PP_TUPLE_EAT_3)(p, o, o(74, s))
-# define BOOST_PP_WHILE_74(p, o, s) BOOST_PP_IF(p(75, s), BOOST_PP_WHILE_75, s BOOST_PP_TUPLE_EAT_3)(p, o, o(75, s))
-# define BOOST_PP_WHILE_75(p, o, s) BOOST_PP_IF(p(76, s), BOOST_PP_WHILE_76, s BOOST_PP_TUPLE_EAT_3)(p, o, o(76, s))
-# define BOOST_PP_WHILE_76(p, o, s) BOOST_PP_IF(p(77, s), BOOST_PP_WHILE_77, s BOOST_PP_TUPLE_EAT_3)(p, o, o(77, s))
-# define BOOST_PP_WHILE_77(p, o, s) BOOST_PP_IF(p(78, s), BOOST_PP_WHILE_78, s BOOST_PP_TUPLE_EAT_3)(p, o, o(78, s))
-# define BOOST_PP_WHILE_78(p, o, s) BOOST_PP_IF(p(79, s), BOOST_PP_WHILE_79, s BOOST_PP_TUPLE_EAT_3)(p, o, o(79, s))
-# define BOOST_PP_WHILE_79(p, o, s) BOOST_PP_IF(p(80, s), BOOST_PP_WHILE_80, s BOOST_PP_TUPLE_EAT_3)(p, o, o(80, s))
-# define BOOST_PP_WHILE_80(p, o, s) BOOST_PP_IF(p(81, s), BOOST_PP_WHILE_81, s BOOST_PP_TUPLE_EAT_3)(p, o, o(81, s))
-# define BOOST_PP_WHILE_81(p, o, s) BOOST_PP_IF(p(82, s), BOOST_PP_WHILE_82, s BOOST_PP_TUPLE_EAT_3)(p, o, o(82, s))
-# define BOOST_PP_WHILE_82(p, o, s) BOOST_PP_IF(p(83, s), BOOST_PP_WHILE_83, s BOOST_PP_TUPLE_EAT_3)(p, o, o(83, s))
-# define BOOST_PP_WHILE_83(p, o, s) BOOST_PP_IF(p(84, s), BOOST_PP_WHILE_84, s BOOST_PP_TUPLE_EAT_3)(p, o, o(84, s))
-# define BOOST_PP_WHILE_84(p, o, s) BOOST_PP_IF(p(85, s), BOOST_PP_WHILE_85, s BOOST_PP_TUPLE_EAT_3)(p, o, o(85, s))
-# define BOOST_PP_WHILE_85(p, o, s) BOOST_PP_IF(p(86, s), BOOST_PP_WHILE_86, s BOOST_PP_TUPLE_EAT_3)(p, o, o(86, s))
-# define BOOST_PP_WHILE_86(p, o, s) BOOST_PP_IF(p(87, s), BOOST_PP_WHILE_87, s BOOST_PP_TUPLE_EAT_3)(p, o, o(87, s))
-# define BOOST_PP_WHILE_87(p, o, s) BOOST_PP_IF(p(88, s), BOOST_PP_WHILE_88, s BOOST_PP_TUPLE_EAT_3)(p, o, o(88, s))
-# define BOOST_PP_WHILE_88(p, o, s) BOOST_PP_IF(p(89, s), BOOST_PP_WHILE_89, s BOOST_PP_TUPLE_EAT_3)(p, o, o(89, s))
-# define BOOST_PP_WHILE_89(p, o, s) BOOST_PP_IF(p(90, s), BOOST_PP_WHILE_90, s BOOST_PP_TUPLE_EAT_3)(p, o, o(90, s))
-# define BOOST_PP_WHILE_90(p, o, s) BOOST_PP_IF(p(91, s), BOOST_PP_WHILE_91, s BOOST_PP_TUPLE_EAT_3)(p, o, o(91, s))
-# define BOOST_PP_WHILE_91(p, o, s) BOOST_PP_IF(p(92, s), BOOST_PP_WHILE_92, s BOOST_PP_TUPLE_EAT_3)(p, o, o(92, s))
-# define BOOST_PP_WHILE_92(p, o, s) BOOST_PP_IF(p(93, s), BOOST_PP_WHILE_93, s BOOST_PP_TUPLE_EAT_3)(p, o, o(93, s))
-# define BOOST_PP_WHILE_93(p, o, s) BOOST_PP_IF(p(94, s), BOOST_PP_WHILE_94, s BOOST_PP_TUPLE_EAT_3)(p, o, o(94, s))
-# define BOOST_PP_WHILE_94(p, o, s) BOOST_PP_IF(p(95, s), BOOST_PP_WHILE_95, s BOOST_PP_TUPLE_EAT_3)(p, o, o(95, s))
-# define BOOST_PP_WHILE_95(p, o, s) BOOST_PP_IF(p(96, s), BOOST_PP_WHILE_96, s BOOST_PP_TUPLE_EAT_3)(p, o, o(96, s))
-# define BOOST_PP_WHILE_96(p, o, s) BOOST_PP_IF(p(97, s), BOOST_PP_WHILE_97, s BOOST_PP_TUPLE_EAT_3)(p, o, o(97, s))
-# define BOOST_PP_WHILE_97(p, o, s) BOOST_PP_IF(p(98, s), BOOST_PP_WHILE_98, s BOOST_PP_TUPLE_EAT_3)(p, o, o(98, s))
-# define BOOST_PP_WHILE_98(p, o, s) BOOST_PP_IF(p(99, s), BOOST_PP_WHILE_99, s BOOST_PP_TUPLE_EAT_3)(p, o, o(99, s))
-# define BOOST_PP_WHILE_99(p, o, s) BOOST_PP_IF(p(100, s), BOOST_PP_WHILE_100, s BOOST_PP_TUPLE_EAT_3)(p, o, o(100, s))
-# define BOOST_PP_WHILE_100(p, o, s) BOOST_PP_IF(p(101, s), BOOST_PP_WHILE_101, s BOOST_PP_TUPLE_EAT_3)(p, o, o(101, s))
-# define BOOST_PP_WHILE_101(p, o, s) BOOST_PP_IF(p(102, s), BOOST_PP_WHILE_102, s BOOST_PP_TUPLE_EAT_3)(p, o, o(102, s))
-# define BOOST_PP_WHILE_102(p, o, s) BOOST_PP_IF(p(103, s), BOOST_PP_WHILE_103, s BOOST_PP_TUPLE_EAT_3)(p, o, o(103, s))
-# define BOOST_PP_WHILE_103(p, o, s) BOOST_PP_IF(p(104, s), BOOST_PP_WHILE_104, s BOOST_PP_TUPLE_EAT_3)(p, o, o(104, s))
-# define BOOST_PP_WHILE_104(p, o, s) BOOST_PP_IF(p(105, s), BOOST_PP_WHILE_105, s BOOST_PP_TUPLE_EAT_3)(p, o, o(105, s))
-# define BOOST_PP_WHILE_105(p, o, s) BOOST_PP_IF(p(106, s), BOOST_PP_WHILE_106, s BOOST_PP_TUPLE_EAT_3)(p, o, o(106, s))
-# define BOOST_PP_WHILE_106(p, o, s) BOOST_PP_IF(p(107, s), BOOST_PP_WHILE_107, s BOOST_PP_TUPLE_EAT_3)(p, o, o(107, s))
-# define BOOST_PP_WHILE_107(p, o, s) BOOST_PP_IF(p(108, s), BOOST_PP_WHILE_108, s BOOST_PP_TUPLE_EAT_3)(p, o, o(108, s))
-# define BOOST_PP_WHILE_108(p, o, s) BOOST_PP_IF(p(109, s), BOOST_PP_WHILE_109, s BOOST_PP_TUPLE_EAT_3)(p, o, o(109, s))
-# define BOOST_PP_WHILE_109(p, o, s) BOOST_PP_IF(p(110, s), BOOST_PP_WHILE_110, s BOOST_PP_TUPLE_EAT_3)(p, o, o(110, s))
-# define BOOST_PP_WHILE_110(p, o, s) BOOST_PP_IF(p(111, s), BOOST_PP_WHILE_111, s BOOST_PP_TUPLE_EAT_3)(p, o, o(111, s))
-# define BOOST_PP_WHILE_111(p, o, s) BOOST_PP_IF(p(112, s), BOOST_PP_WHILE_112, s BOOST_PP_TUPLE_EAT_3)(p, o, o(112, s))
-# define BOOST_PP_WHILE_112(p, o, s) BOOST_PP_IF(p(113, s), BOOST_PP_WHILE_113, s BOOST_PP_TUPLE_EAT_3)(p, o, o(113, s))
-# define BOOST_PP_WHILE_113(p, o, s) BOOST_PP_IF(p(114, s), BOOST_PP_WHILE_114, s BOOST_PP_TUPLE_EAT_3)(p, o, o(114, s))
-# define BOOST_PP_WHILE_114(p, o, s) BOOST_PP_IF(p(115, s), BOOST_PP_WHILE_115, s BOOST_PP_TUPLE_EAT_3)(p, o, o(115, s))
-# define BOOST_PP_WHILE_115(p, o, s) BOOST_PP_IF(p(116, s), BOOST_PP_WHILE_116, s BOOST_PP_TUPLE_EAT_3)(p, o, o(116, s))
-# define BOOST_PP_WHILE_116(p, o, s) BOOST_PP_IF(p(117, s), BOOST_PP_WHILE_117, s BOOST_PP_TUPLE_EAT_3)(p, o, o(117, s))
-# define BOOST_PP_WHILE_117(p, o, s) BOOST_PP_IF(p(118, s), BOOST_PP_WHILE_118, s BOOST_PP_TUPLE_EAT_3)(p, o, o(118, s))
-# define BOOST_PP_WHILE_118(p, o, s) BOOST_PP_IF(p(119, s), BOOST_PP_WHILE_119, s BOOST_PP_TUPLE_EAT_3)(p, o, o(119, s))
-# define BOOST_PP_WHILE_119(p, o, s) BOOST_PP_IF(p(120, s), BOOST_PP_WHILE_120, s BOOST_PP_TUPLE_EAT_3)(p, o, o(120, s))
-# define BOOST_PP_WHILE_120(p, o, s) BOOST_PP_IF(p(121, s), BOOST_PP_WHILE_121, s BOOST_PP_TUPLE_EAT_3)(p, o, o(121, s))
-# define BOOST_PP_WHILE_121(p, o, s) BOOST_PP_IF(p(122, s), BOOST_PP_WHILE_122, s BOOST_PP_TUPLE_EAT_3)(p, o, o(122, s))
-# define BOOST_PP_WHILE_122(p, o, s) BOOST_PP_IF(p(123, s), BOOST_PP_WHILE_123, s BOOST_PP_TUPLE_EAT_3)(p, o, o(123, s))
-# define BOOST_PP_WHILE_123(p, o, s) BOOST_PP_IF(p(124, s), BOOST_PP_WHILE_124, s BOOST_PP_TUPLE_EAT_3)(p, o, o(124, s))
-# define BOOST_PP_WHILE_124(p, o, s) BOOST_PP_IF(p(125, s), BOOST_PP_WHILE_125, s BOOST_PP_TUPLE_EAT_3)(p, o, o(125, s))
-# define BOOST_PP_WHILE_125(p, o, s) BOOST_PP_IF(p(126, s), BOOST_PP_WHILE_126, s BOOST_PP_TUPLE_EAT_3)(p, o, o(126, s))
-# define BOOST_PP_WHILE_126(p, o, s) BOOST_PP_IF(p(127, s), BOOST_PP_WHILE_127, s BOOST_PP_TUPLE_EAT_3)(p, o, o(127, s))
-# define BOOST_PP_WHILE_127(p, o, s) BOOST_PP_IF(p(128, s), BOOST_PP_WHILE_128, s BOOST_PP_TUPLE_EAT_3)(p, o, o(128, s))
-# define BOOST_PP_WHILE_128(p, o, s) BOOST_PP_IF(p(129, s), BOOST_PP_WHILE_129, s BOOST_PP_TUPLE_EAT_3)(p, o, o(129, s))
-# define BOOST_PP_WHILE_129(p, o, s) BOOST_PP_IF(p(130, s), BOOST_PP_WHILE_130, s BOOST_PP_TUPLE_EAT_3)(p, o, o(130, s))
-# define BOOST_PP_WHILE_130(p, o, s) BOOST_PP_IF(p(131, s), BOOST_PP_WHILE_131, s BOOST_PP_TUPLE_EAT_3)(p, o, o(131, s))
-# define BOOST_PP_WHILE_131(p, o, s) BOOST_PP_IF(p(132, s), BOOST_PP_WHILE_132, s BOOST_PP_TUPLE_EAT_3)(p, o, o(132, s))
-# define BOOST_PP_WHILE_132(p, o, s) BOOST_PP_IF(p(133, s), BOOST_PP_WHILE_133, s BOOST_PP_TUPLE_EAT_3)(p, o, o(133, s))
-# define BOOST_PP_WHILE_133(p, o, s) BOOST_PP_IF(p(134, s), BOOST_PP_WHILE_134, s BOOST_PP_TUPLE_EAT_3)(p, o, o(134, s))
-# define BOOST_PP_WHILE_134(p, o, s) BOOST_PP_IF(p(135, s), BOOST_PP_WHILE_135, s BOOST_PP_TUPLE_EAT_3)(p, o, o(135, s))
-# define BOOST_PP_WHILE_135(p, o, s) BOOST_PP_IF(p(136, s), BOOST_PP_WHILE_136, s BOOST_PP_TUPLE_EAT_3)(p, o, o(136, s))
-# define BOOST_PP_WHILE_136(p, o, s) BOOST_PP_IF(p(137, s), BOOST_PP_WHILE_137, s BOOST_PP_TUPLE_EAT_3)(p, o, o(137, s))
-# define BOOST_PP_WHILE_137(p, o, s) BOOST_PP_IF(p(138, s), BOOST_PP_WHILE_138, s BOOST_PP_TUPLE_EAT_3)(p, o, o(138, s))
-# define BOOST_PP_WHILE_138(p, o, s) BOOST_PP_IF(p(139, s), BOOST_PP_WHILE_139, s BOOST_PP_TUPLE_EAT_3)(p, o, o(139, s))
-# define BOOST_PP_WHILE_139(p, o, s) BOOST_PP_IF(p(140, s), BOOST_PP_WHILE_140, s BOOST_PP_TUPLE_EAT_3)(p, o, o(140, s))
-# define BOOST_PP_WHILE_140(p, o, s) BOOST_PP_IF(p(141, s), BOOST_PP_WHILE_141, s BOOST_PP_TUPLE_EAT_3)(p, o, o(141, s))
-# define BOOST_PP_WHILE_141(p, o, s) BOOST_PP_IF(p(142, s), BOOST_PP_WHILE_142, s BOOST_PP_TUPLE_EAT_3)(p, o, o(142, s))
-# define BOOST_PP_WHILE_142(p, o, s) BOOST_PP_IF(p(143, s), BOOST_PP_WHILE_143, s BOOST_PP_TUPLE_EAT_3)(p, o, o(143, s))
-# define BOOST_PP_WHILE_143(p, o, s) BOOST_PP_IF(p(144, s), BOOST_PP_WHILE_144, s BOOST_PP_TUPLE_EAT_3)(p, o, o(144, s))
-# define BOOST_PP_WHILE_144(p, o, s) BOOST_PP_IF(p(145, s), BOOST_PP_WHILE_145, s BOOST_PP_TUPLE_EAT_3)(p, o, o(145, s))
-# define BOOST_PP_WHILE_145(p, o, s) BOOST_PP_IF(p(146, s), BOOST_PP_WHILE_146, s BOOST_PP_TUPLE_EAT_3)(p, o, o(146, s))
-# define BOOST_PP_WHILE_146(p, o, s) BOOST_PP_IF(p(147, s), BOOST_PP_WHILE_147, s BOOST_PP_TUPLE_EAT_3)(p, o, o(147, s))
-# define BOOST_PP_WHILE_147(p, o, s) BOOST_PP_IF(p(148, s), BOOST_PP_WHILE_148, s BOOST_PP_TUPLE_EAT_3)(p, o, o(148, s))
-# define BOOST_PP_WHILE_148(p, o, s) BOOST_PP_IF(p(149, s), BOOST_PP_WHILE_149, s BOOST_PP_TUPLE_EAT_3)(p, o, o(149, s))
-# define BOOST_PP_WHILE_149(p, o, s) BOOST_PP_IF(p(150, s), BOOST_PP_WHILE_150, s BOOST_PP_TUPLE_EAT_3)(p, o, o(150, s))
-# define BOOST_PP_WHILE_150(p, o, s) BOOST_PP_IF(p(151, s), BOOST_PP_WHILE_151, s BOOST_PP_TUPLE_EAT_3)(p, o, o(151, s))
-# define BOOST_PP_WHILE_151(p, o, s) BOOST_PP_IF(p(152, s), BOOST_PP_WHILE_152, s BOOST_PP_TUPLE_EAT_3)(p, o, o(152, s))
-# define BOOST_PP_WHILE_152(p, o, s) BOOST_PP_IF(p(153, s), BOOST_PP_WHILE_153, s BOOST_PP_TUPLE_EAT_3)(p, o, o(153, s))
-# define BOOST_PP_WHILE_153(p, o, s) BOOST_PP_IF(p(154, s), BOOST_PP_WHILE_154, s BOOST_PP_TUPLE_EAT_3)(p, o, o(154, s))
-# define BOOST_PP_WHILE_154(p, o, s) BOOST_PP_IF(p(155, s), BOOST_PP_WHILE_155, s BOOST_PP_TUPLE_EAT_3)(p, o, o(155, s))
-# define BOOST_PP_WHILE_155(p, o, s) BOOST_PP_IF(p(156, s), BOOST_PP_WHILE_156, s BOOST_PP_TUPLE_EAT_3)(p, o, o(156, s))
-# define BOOST_PP_WHILE_156(p, o, s) BOOST_PP_IF(p(157, s), BOOST_PP_WHILE_157, s BOOST_PP_TUPLE_EAT_3)(p, o, o(157, s))
-# define BOOST_PP_WHILE_157(p, o, s) BOOST_PP_IF(p(158, s), BOOST_PP_WHILE_158, s BOOST_PP_TUPLE_EAT_3)(p, o, o(158, s))
-# define BOOST_PP_WHILE_158(p, o, s) BOOST_PP_IF(p(159, s), BOOST_PP_WHILE_159, s BOOST_PP_TUPLE_EAT_3)(p, o, o(159, s))
-# define BOOST_PP_WHILE_159(p, o, s) BOOST_PP_IF(p(160, s), BOOST_PP_WHILE_160, s BOOST_PP_TUPLE_EAT_3)(p, o, o(160, s))
-# define BOOST_PP_WHILE_160(p, o, s) BOOST_PP_IF(p(161, s), BOOST_PP_WHILE_161, s BOOST_PP_TUPLE_EAT_3)(p, o, o(161, s))
-# define BOOST_PP_WHILE_161(p, o, s) BOOST_PP_IF(p(162, s), BOOST_PP_WHILE_162, s BOOST_PP_TUPLE_EAT_3)(p, o, o(162, s))
-# define BOOST_PP_WHILE_162(p, o, s) BOOST_PP_IF(p(163, s), BOOST_PP_WHILE_163, s BOOST_PP_TUPLE_EAT_3)(p, o, o(163, s))
-# define BOOST_PP_WHILE_163(p, o, s) BOOST_PP_IF(p(164, s), BOOST_PP_WHILE_164, s BOOST_PP_TUPLE_EAT_3)(p, o, o(164, s))
-# define BOOST_PP_WHILE_164(p, o, s) BOOST_PP_IF(p(165, s), BOOST_PP_WHILE_165, s BOOST_PP_TUPLE_EAT_3)(p, o, o(165, s))
-# define BOOST_PP_WHILE_165(p, o, s) BOOST_PP_IF(p(166, s), BOOST_PP_WHILE_166, s BOOST_PP_TUPLE_EAT_3)(p, o, o(166, s))
-# define BOOST_PP_WHILE_166(p, o, s) BOOST_PP_IF(p(167, s), BOOST_PP_WHILE_167, s BOOST_PP_TUPLE_EAT_3)(p, o, o(167, s))
-# define BOOST_PP_WHILE_167(p, o, s) BOOST_PP_IF(p(168, s), BOOST_PP_WHILE_168, s BOOST_PP_TUPLE_EAT_3)(p, o, o(168, s))
-# define BOOST_PP_WHILE_168(p, o, s) BOOST_PP_IF(p(169, s), BOOST_PP_WHILE_169, s BOOST_PP_TUPLE_EAT_3)(p, o, o(169, s))
-# define BOOST_PP_WHILE_169(p, o, s) BOOST_PP_IF(p(170, s), BOOST_PP_WHILE_170, s BOOST_PP_TUPLE_EAT_3)(p, o, o(170, s))
-# define BOOST_PP_WHILE_170(p, o, s) BOOST_PP_IF(p(171, s), BOOST_PP_WHILE_171, s BOOST_PP_TUPLE_EAT_3)(p, o, o(171, s))
-# define BOOST_PP_WHILE_171(p, o, s) BOOST_PP_IF(p(172, s), BOOST_PP_WHILE_172, s BOOST_PP_TUPLE_EAT_3)(p, o, o(172, s))
-# define BOOST_PP_WHILE_172(p, o, s) BOOST_PP_IF(p(173, s), BOOST_PP_WHILE_173, s BOOST_PP_TUPLE_EAT_3)(p, o, o(173, s))
-# define BOOST_PP_WHILE_173(p, o, s) BOOST_PP_IF(p(174, s), BOOST_PP_WHILE_174, s BOOST_PP_TUPLE_EAT_3)(p, o, o(174, s))
-# define BOOST_PP_WHILE_174(p, o, s) BOOST_PP_IF(p(175, s), BOOST_PP_WHILE_175, s BOOST_PP_TUPLE_EAT_3)(p, o, o(175, s))
-# define BOOST_PP_WHILE_175(p, o, s) BOOST_PP_IF(p(176, s), BOOST_PP_WHILE_176, s BOOST_PP_TUPLE_EAT_3)(p, o, o(176, s))
-# define BOOST_PP_WHILE_176(p, o, s) BOOST_PP_IF(p(177, s), BOOST_PP_WHILE_177, s BOOST_PP_TUPLE_EAT_3)(p, o, o(177, s))
-# define BOOST_PP_WHILE_177(p, o, s) BOOST_PP_IF(p(178, s), BOOST_PP_WHILE_178, s BOOST_PP_TUPLE_EAT_3)(p, o, o(178, s))
-# define BOOST_PP_WHILE_178(p, o, s) BOOST_PP_IF(p(179, s), BOOST_PP_WHILE_179, s BOOST_PP_TUPLE_EAT_3)(p, o, o(179, s))
-# define BOOST_PP_WHILE_179(p, o, s) BOOST_PP_IF(p(180, s), BOOST_PP_WHILE_180, s BOOST_PP_TUPLE_EAT_3)(p, o, o(180, s))
-# define BOOST_PP_WHILE_180(p, o, s) BOOST_PP_IF(p(181, s), BOOST_PP_WHILE_181, s BOOST_PP_TUPLE_EAT_3)(p, o, o(181, s))
-# define BOOST_PP_WHILE_181(p, o, s) BOOST_PP_IF(p(182, s), BOOST_PP_WHILE_182, s BOOST_PP_TUPLE_EAT_3)(p, o, o(182, s))
-# define BOOST_PP_WHILE_182(p, o, s) BOOST_PP_IF(p(183, s), BOOST_PP_WHILE_183, s BOOST_PP_TUPLE_EAT_3)(p, o, o(183, s))
-# define BOOST_PP_WHILE_183(p, o, s) BOOST_PP_IF(p(184, s), BOOST_PP_WHILE_184, s BOOST_PP_TUPLE_EAT_3)(p, o, o(184, s))
-# define BOOST_PP_WHILE_184(p, o, s) BOOST_PP_IF(p(185, s), BOOST_PP_WHILE_185, s BOOST_PP_TUPLE_EAT_3)(p, o, o(185, s))
-# define BOOST_PP_WHILE_185(p, o, s) BOOST_PP_IF(p(186, s), BOOST_PP_WHILE_186, s BOOST_PP_TUPLE_EAT_3)(p, o, o(186, s))
-# define BOOST_PP_WHILE_186(p, o, s) BOOST_PP_IF(p(187, s), BOOST_PP_WHILE_187, s BOOST_PP_TUPLE_EAT_3)(p, o, o(187, s))
-# define BOOST_PP_WHILE_187(p, o, s) BOOST_PP_IF(p(188, s), BOOST_PP_WHILE_188, s BOOST_PP_TUPLE_EAT_3)(p, o, o(188, s))
-# define BOOST_PP_WHILE_188(p, o, s) BOOST_PP_IF(p(189, s), BOOST_PP_WHILE_189, s BOOST_PP_TUPLE_EAT_3)(p, o, o(189, s))
-# define BOOST_PP_WHILE_189(p, o, s) BOOST_PP_IF(p(190, s), BOOST_PP_WHILE_190, s BOOST_PP_TUPLE_EAT_3)(p, o, o(190, s))
-# define BOOST_PP_WHILE_190(p, o, s) BOOST_PP_IF(p(191, s), BOOST_PP_WHILE_191, s BOOST_PP_TUPLE_EAT_3)(p, o, o(191, s))
-# define BOOST_PP_WHILE_191(p, o, s) BOOST_PP_IF(p(192, s), BOOST_PP_WHILE_192, s BOOST_PP_TUPLE_EAT_3)(p, o, o(192, s))
-# define BOOST_PP_WHILE_192(p, o, s) BOOST_PP_IF(p(193, s), BOOST_PP_WHILE_193, s BOOST_PP_TUPLE_EAT_3)(p, o, o(193, s))
-# define BOOST_PP_WHILE_193(p, o, s) BOOST_PP_IF(p(194, s), BOOST_PP_WHILE_194, s BOOST_PP_TUPLE_EAT_3)(p, o, o(194, s))
-# define BOOST_PP_WHILE_194(p, o, s) BOOST_PP_IF(p(195, s), BOOST_PP_WHILE_195, s BOOST_PP_TUPLE_EAT_3)(p, o, o(195, s))
-# define BOOST_PP_WHILE_195(p, o, s) BOOST_PP_IF(p(196, s), BOOST_PP_WHILE_196, s BOOST_PP_TUPLE_EAT_3)(p, o, o(196, s))
-# define BOOST_PP_WHILE_196(p, o, s) BOOST_PP_IF(p(197, s), BOOST_PP_WHILE_197, s BOOST_PP_TUPLE_EAT_3)(p, o, o(197, s))
-# define BOOST_PP_WHILE_197(p, o, s) BOOST_PP_IF(p(198, s), BOOST_PP_WHILE_198, s BOOST_PP_TUPLE_EAT_3)(p, o, o(198, s))
-# define BOOST_PP_WHILE_198(p, o, s) BOOST_PP_IF(p(199, s), BOOST_PP_WHILE_199, s BOOST_PP_TUPLE_EAT_3)(p, o, o(199, s))
-# define BOOST_PP_WHILE_199(p, o, s) BOOST_PP_IF(p(200, s), BOOST_PP_WHILE_200, s BOOST_PP_TUPLE_EAT_3)(p, o, o(200, s))
-# define BOOST_PP_WHILE_200(p, o, s) BOOST_PP_IF(p(201, s), BOOST_PP_WHILE_201, s BOOST_PP_TUPLE_EAT_3)(p, o, o(201, s))
-# define BOOST_PP_WHILE_201(p, o, s) BOOST_PP_IF(p(202, s), BOOST_PP_WHILE_202, s BOOST_PP_TUPLE_EAT_3)(p, o, o(202, s))
-# define BOOST_PP_WHILE_202(p, o, s) BOOST_PP_IF(p(203, s), BOOST_PP_WHILE_203, s BOOST_PP_TUPLE_EAT_3)(p, o, o(203, s))
-# define BOOST_PP_WHILE_203(p, o, s) BOOST_PP_IF(p(204, s), BOOST_PP_WHILE_204, s BOOST_PP_TUPLE_EAT_3)(p, o, o(204, s))
-# define BOOST_PP_WHILE_204(p, o, s) BOOST_PP_IF(p(205, s), BOOST_PP_WHILE_205, s BOOST_PP_TUPLE_EAT_3)(p, o, o(205, s))
-# define BOOST_PP_WHILE_205(p, o, s) BOOST_PP_IF(p(206, s), BOOST_PP_WHILE_206, s BOOST_PP_TUPLE_EAT_3)(p, o, o(206, s))
-# define BOOST_PP_WHILE_206(p, o, s) BOOST_PP_IF(p(207, s), BOOST_PP_WHILE_207, s BOOST_PP_TUPLE_EAT_3)(p, o, o(207, s))
-# define BOOST_PP_WHILE_207(p, o, s) BOOST_PP_IF(p(208, s), BOOST_PP_WHILE_208, s BOOST_PP_TUPLE_EAT_3)(p, o, o(208, s))
-# define BOOST_PP_WHILE_208(p, o, s) BOOST_PP_IF(p(209, s), BOOST_PP_WHILE_209, s BOOST_PP_TUPLE_EAT_3)(p, o, o(209, s))
-# define BOOST_PP_WHILE_209(p, o, s) BOOST_PP_IF(p(210, s), BOOST_PP_WHILE_210, s BOOST_PP_TUPLE_EAT_3)(p, o, o(210, s))
-# define BOOST_PP_WHILE_210(p, o, s) BOOST_PP_IF(p(211, s), BOOST_PP_WHILE_211, s BOOST_PP_TUPLE_EAT_3)(p, o, o(211, s))
-# define BOOST_PP_WHILE_211(p, o, s) BOOST_PP_IF(p(212, s), BOOST_PP_WHILE_212, s BOOST_PP_TUPLE_EAT_3)(p, o, o(212, s))
-# define BOOST_PP_WHILE_212(p, o, s) BOOST_PP_IF(p(213, s), BOOST_PP_WHILE_213, s BOOST_PP_TUPLE_EAT_3)(p, o, o(213, s))
-# define BOOST_PP_WHILE_213(p, o, s) BOOST_PP_IF(p(214, s), BOOST_PP_WHILE_214, s BOOST_PP_TUPLE_EAT_3)(p, o, o(214, s))
-# define BOOST_PP_WHILE_214(p, o, s) BOOST_PP_IF(p(215, s), BOOST_PP_WHILE_215, s BOOST_PP_TUPLE_EAT_3)(p, o, o(215, s))
-# define BOOST_PP_WHILE_215(p, o, s) BOOST_PP_IF(p(216, s), BOOST_PP_WHILE_216, s BOOST_PP_TUPLE_EAT_3)(p, o, o(216, s))
-# define BOOST_PP_WHILE_216(p, o, s) BOOST_PP_IF(p(217, s), BOOST_PP_WHILE_217, s BOOST_PP_TUPLE_EAT_3)(p, o, o(217, s))
-# define BOOST_PP_WHILE_217(p, o, s) BOOST_PP_IF(p(218, s), BOOST_PP_WHILE_218, s BOOST_PP_TUPLE_EAT_3)(p, o, o(218, s))
-# define BOOST_PP_WHILE_218(p, o, s) BOOST_PP_IF(p(219, s), BOOST_PP_WHILE_219, s BOOST_PP_TUPLE_EAT_3)(p, o, o(219, s))
-# define BOOST_PP_WHILE_219(p, o, s) BOOST_PP_IF(p(220, s), BOOST_PP_WHILE_220, s BOOST_PP_TUPLE_EAT_3)(p, o, o(220, s))
-# define BOOST_PP_WHILE_220(p, o, s) BOOST_PP_IF(p(221, s), BOOST_PP_WHILE_221, s BOOST_PP_TUPLE_EAT_3)(p, o, o(221, s))
-# define BOOST_PP_WHILE_221(p, o, s) BOOST_PP_IF(p(222, s), BOOST_PP_WHILE_222, s BOOST_PP_TUPLE_EAT_3)(p, o, o(222, s))
-# define BOOST_PP_WHILE_222(p, o, s) BOOST_PP_IF(p(223, s), BOOST_PP_WHILE_223, s BOOST_PP_TUPLE_EAT_3)(p, o, o(223, s))
-# define BOOST_PP_WHILE_223(p, o, s) BOOST_PP_IF(p(224, s), BOOST_PP_WHILE_224, s BOOST_PP_TUPLE_EAT_3)(p, o, o(224, s))
-# define BOOST_PP_WHILE_224(p, o, s) BOOST_PP_IF(p(225, s), BOOST_PP_WHILE_225, s BOOST_PP_TUPLE_EAT_3)(p, o, o(225, s))
-# define BOOST_PP_WHILE_225(p, o, s) BOOST_PP_IF(p(226, s), BOOST_PP_WHILE_226, s BOOST_PP_TUPLE_EAT_3)(p, o, o(226, s))
-# define BOOST_PP_WHILE_226(p, o, s) BOOST_PP_IF(p(227, s), BOOST_PP_WHILE_227, s BOOST_PP_TUPLE_EAT_3)(p, o, o(227, s))
-# define BOOST_PP_WHILE_227(p, o, s) BOOST_PP_IF(p(228, s), BOOST_PP_WHILE_228, s BOOST_PP_TUPLE_EAT_3)(p, o, o(228, s))
-# define BOOST_PP_WHILE_228(p, o, s) BOOST_PP_IF(p(229, s), BOOST_PP_WHILE_229, s BOOST_PP_TUPLE_EAT_3)(p, o, o(229, s))
-# define BOOST_PP_WHILE_229(p, o, s) BOOST_PP_IF(p(230, s), BOOST_PP_WHILE_230, s BOOST_PP_TUPLE_EAT_3)(p, o, o(230, s))
-# define BOOST_PP_WHILE_230(p, o, s) BOOST_PP_IF(p(231, s), BOOST_PP_WHILE_231, s BOOST_PP_TUPLE_EAT_3)(p, o, o(231, s))
-# define BOOST_PP_WHILE_231(p, o, s) BOOST_PP_IF(p(232, s), BOOST_PP_WHILE_232, s BOOST_PP_TUPLE_EAT_3)(p, o, o(232, s))
-# define BOOST_PP_WHILE_232(p, o, s) BOOST_PP_IF(p(233, s), BOOST_PP_WHILE_233, s BOOST_PP_TUPLE_EAT_3)(p, o, o(233, s))
-# define BOOST_PP_WHILE_233(p, o, s) BOOST_PP_IF(p(234, s), BOOST_PP_WHILE_234, s BOOST_PP_TUPLE_EAT_3)(p, o, o(234, s))
-# define BOOST_PP_WHILE_234(p, o, s) BOOST_PP_IF(p(235, s), BOOST_PP_WHILE_235, s BOOST_PP_TUPLE_EAT_3)(p, o, o(235, s))
-# define BOOST_PP_WHILE_235(p, o, s) BOOST_PP_IF(p(236, s), BOOST_PP_WHILE_236, s BOOST_PP_TUPLE_EAT_3)(p, o, o(236, s))
-# define BOOST_PP_WHILE_236(p, o, s) BOOST_PP_IF(p(237, s), BOOST_PP_WHILE_237, s BOOST_PP_TUPLE_EAT_3)(p, o, o(237, s))
-# define BOOST_PP_WHILE_237(p, o, s) BOOST_PP_IF(p(238, s), BOOST_PP_WHILE_238, s BOOST_PP_TUPLE_EAT_3)(p, o, o(238, s))
-# define BOOST_PP_WHILE_238(p, o, s) BOOST_PP_IF(p(239, s), BOOST_PP_WHILE_239, s BOOST_PP_TUPLE_EAT_3)(p, o, o(239, s))
-# define BOOST_PP_WHILE_239(p, o, s) BOOST_PP_IF(p(240, s), BOOST_PP_WHILE_240, s BOOST_PP_TUPLE_EAT_3)(p, o, o(240, s))
-# define BOOST_PP_WHILE_240(p, o, s) BOOST_PP_IF(p(241, s), BOOST_PP_WHILE_241, s BOOST_PP_TUPLE_EAT_3)(p, o, o(241, s))
-# define BOOST_PP_WHILE_241(p, o, s) BOOST_PP_IF(p(242, s), BOOST_PP_WHILE_242, s BOOST_PP_TUPLE_EAT_3)(p, o, o(242, s))
-# define BOOST_PP_WHILE_242(p, o, s) BOOST_PP_IF(p(243, s), BOOST_PP_WHILE_243, s BOOST_PP_TUPLE_EAT_3)(p, o, o(243, s))
-# define BOOST_PP_WHILE_243(p, o, s) BOOST_PP_IF(p(244, s), BOOST_PP_WHILE_244, s BOOST_PP_TUPLE_EAT_3)(p, o, o(244, s))
-# define BOOST_PP_WHILE_244(p, o, s) BOOST_PP_IF(p(245, s), BOOST_PP_WHILE_245, s BOOST_PP_TUPLE_EAT_3)(p, o, o(245, s))
-# define BOOST_PP_WHILE_245(p, o, s) BOOST_PP_IF(p(246, s), BOOST_PP_WHILE_246, s BOOST_PP_TUPLE_EAT_3)(p, o, o(246, s))
-# define BOOST_PP_WHILE_246(p, o, s) BOOST_PP_IF(p(247, s), BOOST_PP_WHILE_247, s BOOST_PP_TUPLE_EAT_3)(p, o, o(247, s))
-# define BOOST_PP_WHILE_247(p, o, s) BOOST_PP_IF(p(248, s), BOOST_PP_WHILE_248, s BOOST_PP_TUPLE_EAT_3)(p, o, o(248, s))
-# define BOOST_PP_WHILE_248(p, o, s) BOOST_PP_IF(p(249, s), BOOST_PP_WHILE_249, s BOOST_PP_TUPLE_EAT_3)(p, o, o(249, s))
-# define BOOST_PP_WHILE_249(p, o, s) BOOST_PP_IF(p(250, s), BOOST_PP_WHILE_250, s BOOST_PP_TUPLE_EAT_3)(p, o, o(250, s))
-# define BOOST_PP_WHILE_250(p, o, s) BOOST_PP_IF(p(251, s), BOOST_PP_WHILE_251, s BOOST_PP_TUPLE_EAT_3)(p, o, o(251, s))
-# define BOOST_PP_WHILE_251(p, o, s) BOOST_PP_IF(p(252, s), BOOST_PP_WHILE_252, s BOOST_PP_TUPLE_EAT_3)(p, o, o(252, s))
-# define BOOST_PP_WHILE_252(p, o, s) BOOST_PP_IF(p(253, s), BOOST_PP_WHILE_253, s BOOST_PP_TUPLE_EAT_3)(p, o, o(253, s))
-# define BOOST_PP_WHILE_253(p, o, s) BOOST_PP_IF(p(254, s), BOOST_PP_WHILE_254, s BOOST_PP_TUPLE_EAT_3)(p, o, o(254, s))
-# define BOOST_PP_WHILE_254(p, o, s) BOOST_PP_IF(p(255, s), BOOST_PP_WHILE_255, s BOOST_PP_TUPLE_EAT_3)(p, o, o(255, s))
-# define BOOST_PP_WHILE_255(p, o, s) BOOST_PP_IF(p(256, s), BOOST_PP_WHILE_256, s BOOST_PP_TUPLE_EAT_3)(p, o, o(256, s))
-# define BOOST_PP_WHILE_256(p, o, s) BOOST_PP_IF(p(257, s), BOOST_PP_WHILE_257, s BOOST_PP_TUPLE_EAT_3)(p, o, o(257, s))
+# define NDNBOOST_PP_WHILE_1(p, o, s) NDNBOOST_PP_IF(p(2, s), NDNBOOST_PP_WHILE_2, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(2, s))
+# define NDNBOOST_PP_WHILE_2(p, o, s) NDNBOOST_PP_IF(p(3, s), NDNBOOST_PP_WHILE_3, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(3, s))
+# define NDNBOOST_PP_WHILE_3(p, o, s) NDNBOOST_PP_IF(p(4, s), NDNBOOST_PP_WHILE_4, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(4, s))
+# define NDNBOOST_PP_WHILE_4(p, o, s) NDNBOOST_PP_IF(p(5, s), NDNBOOST_PP_WHILE_5, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(5, s))
+# define NDNBOOST_PP_WHILE_5(p, o, s) NDNBOOST_PP_IF(p(6, s), NDNBOOST_PP_WHILE_6, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(6, s))
+# define NDNBOOST_PP_WHILE_6(p, o, s) NDNBOOST_PP_IF(p(7, s), NDNBOOST_PP_WHILE_7, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(7, s))
+# define NDNBOOST_PP_WHILE_7(p, o, s) NDNBOOST_PP_IF(p(8, s), NDNBOOST_PP_WHILE_8, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(8, s))
+# define NDNBOOST_PP_WHILE_8(p, o, s) NDNBOOST_PP_IF(p(9, s), NDNBOOST_PP_WHILE_9, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(9, s))
+# define NDNBOOST_PP_WHILE_9(p, o, s) NDNBOOST_PP_IF(p(10, s), NDNBOOST_PP_WHILE_10, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(10, s))
+# define NDNBOOST_PP_WHILE_10(p, o, s) NDNBOOST_PP_IF(p(11, s), NDNBOOST_PP_WHILE_11, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(11, s))
+# define NDNBOOST_PP_WHILE_11(p, o, s) NDNBOOST_PP_IF(p(12, s), NDNBOOST_PP_WHILE_12, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(12, s))
+# define NDNBOOST_PP_WHILE_12(p, o, s) NDNBOOST_PP_IF(p(13, s), NDNBOOST_PP_WHILE_13, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(13, s))
+# define NDNBOOST_PP_WHILE_13(p, o, s) NDNBOOST_PP_IF(p(14, s), NDNBOOST_PP_WHILE_14, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(14, s))
+# define NDNBOOST_PP_WHILE_14(p, o, s) NDNBOOST_PP_IF(p(15, s), NDNBOOST_PP_WHILE_15, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(15, s))
+# define NDNBOOST_PP_WHILE_15(p, o, s) NDNBOOST_PP_IF(p(16, s), NDNBOOST_PP_WHILE_16, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(16, s))
+# define NDNBOOST_PP_WHILE_16(p, o, s) NDNBOOST_PP_IF(p(17, s), NDNBOOST_PP_WHILE_17, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(17, s))
+# define NDNBOOST_PP_WHILE_17(p, o, s) NDNBOOST_PP_IF(p(18, s), NDNBOOST_PP_WHILE_18, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(18, s))
+# define NDNBOOST_PP_WHILE_18(p, o, s) NDNBOOST_PP_IF(p(19, s), NDNBOOST_PP_WHILE_19, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(19, s))
+# define NDNBOOST_PP_WHILE_19(p, o, s) NDNBOOST_PP_IF(p(20, s), NDNBOOST_PP_WHILE_20, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(20, s))
+# define NDNBOOST_PP_WHILE_20(p, o, s) NDNBOOST_PP_IF(p(21, s), NDNBOOST_PP_WHILE_21, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(21, s))
+# define NDNBOOST_PP_WHILE_21(p, o, s) NDNBOOST_PP_IF(p(22, s), NDNBOOST_PP_WHILE_22, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(22, s))
+# define NDNBOOST_PP_WHILE_22(p, o, s) NDNBOOST_PP_IF(p(23, s), NDNBOOST_PP_WHILE_23, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(23, s))
+# define NDNBOOST_PP_WHILE_23(p, o, s) NDNBOOST_PP_IF(p(24, s), NDNBOOST_PP_WHILE_24, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(24, s))
+# define NDNBOOST_PP_WHILE_24(p, o, s) NDNBOOST_PP_IF(p(25, s), NDNBOOST_PP_WHILE_25, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(25, s))
+# define NDNBOOST_PP_WHILE_25(p, o, s) NDNBOOST_PP_IF(p(26, s), NDNBOOST_PP_WHILE_26, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(26, s))
+# define NDNBOOST_PP_WHILE_26(p, o, s) NDNBOOST_PP_IF(p(27, s), NDNBOOST_PP_WHILE_27, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(27, s))
+# define NDNBOOST_PP_WHILE_27(p, o, s) NDNBOOST_PP_IF(p(28, s), NDNBOOST_PP_WHILE_28, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(28, s))
+# define NDNBOOST_PP_WHILE_28(p, o, s) NDNBOOST_PP_IF(p(29, s), NDNBOOST_PP_WHILE_29, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(29, s))
+# define NDNBOOST_PP_WHILE_29(p, o, s) NDNBOOST_PP_IF(p(30, s), NDNBOOST_PP_WHILE_30, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(30, s))
+# define NDNBOOST_PP_WHILE_30(p, o, s) NDNBOOST_PP_IF(p(31, s), NDNBOOST_PP_WHILE_31, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(31, s))
+# define NDNBOOST_PP_WHILE_31(p, o, s) NDNBOOST_PP_IF(p(32, s), NDNBOOST_PP_WHILE_32, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(32, s))
+# define NDNBOOST_PP_WHILE_32(p, o, s) NDNBOOST_PP_IF(p(33, s), NDNBOOST_PP_WHILE_33, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(33, s))
+# define NDNBOOST_PP_WHILE_33(p, o, s) NDNBOOST_PP_IF(p(34, s), NDNBOOST_PP_WHILE_34, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(34, s))
+# define NDNBOOST_PP_WHILE_34(p, o, s) NDNBOOST_PP_IF(p(35, s), NDNBOOST_PP_WHILE_35, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(35, s))
+# define NDNBOOST_PP_WHILE_35(p, o, s) NDNBOOST_PP_IF(p(36, s), NDNBOOST_PP_WHILE_36, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(36, s))
+# define NDNBOOST_PP_WHILE_36(p, o, s) NDNBOOST_PP_IF(p(37, s), NDNBOOST_PP_WHILE_37, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(37, s))
+# define NDNBOOST_PP_WHILE_37(p, o, s) NDNBOOST_PP_IF(p(38, s), NDNBOOST_PP_WHILE_38, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(38, s))
+# define NDNBOOST_PP_WHILE_38(p, o, s) NDNBOOST_PP_IF(p(39, s), NDNBOOST_PP_WHILE_39, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(39, s))
+# define NDNBOOST_PP_WHILE_39(p, o, s) NDNBOOST_PP_IF(p(40, s), NDNBOOST_PP_WHILE_40, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(40, s))
+# define NDNBOOST_PP_WHILE_40(p, o, s) NDNBOOST_PP_IF(p(41, s), NDNBOOST_PP_WHILE_41, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(41, s))
+# define NDNBOOST_PP_WHILE_41(p, o, s) NDNBOOST_PP_IF(p(42, s), NDNBOOST_PP_WHILE_42, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(42, s))
+# define NDNBOOST_PP_WHILE_42(p, o, s) NDNBOOST_PP_IF(p(43, s), NDNBOOST_PP_WHILE_43, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(43, s))
+# define NDNBOOST_PP_WHILE_43(p, o, s) NDNBOOST_PP_IF(p(44, s), NDNBOOST_PP_WHILE_44, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(44, s))
+# define NDNBOOST_PP_WHILE_44(p, o, s) NDNBOOST_PP_IF(p(45, s), NDNBOOST_PP_WHILE_45, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(45, s))
+# define NDNBOOST_PP_WHILE_45(p, o, s) NDNBOOST_PP_IF(p(46, s), NDNBOOST_PP_WHILE_46, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(46, s))
+# define NDNBOOST_PP_WHILE_46(p, o, s) NDNBOOST_PP_IF(p(47, s), NDNBOOST_PP_WHILE_47, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(47, s))
+# define NDNBOOST_PP_WHILE_47(p, o, s) NDNBOOST_PP_IF(p(48, s), NDNBOOST_PP_WHILE_48, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(48, s))
+# define NDNBOOST_PP_WHILE_48(p, o, s) NDNBOOST_PP_IF(p(49, s), NDNBOOST_PP_WHILE_49, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(49, s))
+# define NDNBOOST_PP_WHILE_49(p, o, s) NDNBOOST_PP_IF(p(50, s), NDNBOOST_PP_WHILE_50, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(50, s))
+# define NDNBOOST_PP_WHILE_50(p, o, s) NDNBOOST_PP_IF(p(51, s), NDNBOOST_PP_WHILE_51, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(51, s))
+# define NDNBOOST_PP_WHILE_51(p, o, s) NDNBOOST_PP_IF(p(52, s), NDNBOOST_PP_WHILE_52, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(52, s))
+# define NDNBOOST_PP_WHILE_52(p, o, s) NDNBOOST_PP_IF(p(53, s), NDNBOOST_PP_WHILE_53, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(53, s))
+# define NDNBOOST_PP_WHILE_53(p, o, s) NDNBOOST_PP_IF(p(54, s), NDNBOOST_PP_WHILE_54, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(54, s))
+# define NDNBOOST_PP_WHILE_54(p, o, s) NDNBOOST_PP_IF(p(55, s), NDNBOOST_PP_WHILE_55, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(55, s))
+# define NDNBOOST_PP_WHILE_55(p, o, s) NDNBOOST_PP_IF(p(56, s), NDNBOOST_PP_WHILE_56, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(56, s))
+# define NDNBOOST_PP_WHILE_56(p, o, s) NDNBOOST_PP_IF(p(57, s), NDNBOOST_PP_WHILE_57, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(57, s))
+# define NDNBOOST_PP_WHILE_57(p, o, s) NDNBOOST_PP_IF(p(58, s), NDNBOOST_PP_WHILE_58, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(58, s))
+# define NDNBOOST_PP_WHILE_58(p, o, s) NDNBOOST_PP_IF(p(59, s), NDNBOOST_PP_WHILE_59, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(59, s))
+# define NDNBOOST_PP_WHILE_59(p, o, s) NDNBOOST_PP_IF(p(60, s), NDNBOOST_PP_WHILE_60, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(60, s))
+# define NDNBOOST_PP_WHILE_60(p, o, s) NDNBOOST_PP_IF(p(61, s), NDNBOOST_PP_WHILE_61, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(61, s))
+# define NDNBOOST_PP_WHILE_61(p, o, s) NDNBOOST_PP_IF(p(62, s), NDNBOOST_PP_WHILE_62, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(62, s))
+# define NDNBOOST_PP_WHILE_62(p, o, s) NDNBOOST_PP_IF(p(63, s), NDNBOOST_PP_WHILE_63, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(63, s))
+# define NDNBOOST_PP_WHILE_63(p, o, s) NDNBOOST_PP_IF(p(64, s), NDNBOOST_PP_WHILE_64, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(64, s))
+# define NDNBOOST_PP_WHILE_64(p, o, s) NDNBOOST_PP_IF(p(65, s), NDNBOOST_PP_WHILE_65, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(65, s))
+# define NDNBOOST_PP_WHILE_65(p, o, s) NDNBOOST_PP_IF(p(66, s), NDNBOOST_PP_WHILE_66, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(66, s))
+# define NDNBOOST_PP_WHILE_66(p, o, s) NDNBOOST_PP_IF(p(67, s), NDNBOOST_PP_WHILE_67, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(67, s))
+# define NDNBOOST_PP_WHILE_67(p, o, s) NDNBOOST_PP_IF(p(68, s), NDNBOOST_PP_WHILE_68, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(68, s))
+# define NDNBOOST_PP_WHILE_68(p, o, s) NDNBOOST_PP_IF(p(69, s), NDNBOOST_PP_WHILE_69, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(69, s))
+# define NDNBOOST_PP_WHILE_69(p, o, s) NDNBOOST_PP_IF(p(70, s), NDNBOOST_PP_WHILE_70, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(70, s))
+# define NDNBOOST_PP_WHILE_70(p, o, s) NDNBOOST_PP_IF(p(71, s), NDNBOOST_PP_WHILE_71, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(71, s))
+# define NDNBOOST_PP_WHILE_71(p, o, s) NDNBOOST_PP_IF(p(72, s), NDNBOOST_PP_WHILE_72, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(72, s))
+# define NDNBOOST_PP_WHILE_72(p, o, s) NDNBOOST_PP_IF(p(73, s), NDNBOOST_PP_WHILE_73, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(73, s))
+# define NDNBOOST_PP_WHILE_73(p, o, s) NDNBOOST_PP_IF(p(74, s), NDNBOOST_PP_WHILE_74, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(74, s))
+# define NDNBOOST_PP_WHILE_74(p, o, s) NDNBOOST_PP_IF(p(75, s), NDNBOOST_PP_WHILE_75, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(75, s))
+# define NDNBOOST_PP_WHILE_75(p, o, s) NDNBOOST_PP_IF(p(76, s), NDNBOOST_PP_WHILE_76, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(76, s))
+# define NDNBOOST_PP_WHILE_76(p, o, s) NDNBOOST_PP_IF(p(77, s), NDNBOOST_PP_WHILE_77, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(77, s))
+# define NDNBOOST_PP_WHILE_77(p, o, s) NDNBOOST_PP_IF(p(78, s), NDNBOOST_PP_WHILE_78, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(78, s))
+# define NDNBOOST_PP_WHILE_78(p, o, s) NDNBOOST_PP_IF(p(79, s), NDNBOOST_PP_WHILE_79, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(79, s))
+# define NDNBOOST_PP_WHILE_79(p, o, s) NDNBOOST_PP_IF(p(80, s), NDNBOOST_PP_WHILE_80, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(80, s))
+# define NDNBOOST_PP_WHILE_80(p, o, s) NDNBOOST_PP_IF(p(81, s), NDNBOOST_PP_WHILE_81, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(81, s))
+# define NDNBOOST_PP_WHILE_81(p, o, s) NDNBOOST_PP_IF(p(82, s), NDNBOOST_PP_WHILE_82, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(82, s))
+# define NDNBOOST_PP_WHILE_82(p, o, s) NDNBOOST_PP_IF(p(83, s), NDNBOOST_PP_WHILE_83, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(83, s))
+# define NDNBOOST_PP_WHILE_83(p, o, s) NDNBOOST_PP_IF(p(84, s), NDNBOOST_PP_WHILE_84, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(84, s))
+# define NDNBOOST_PP_WHILE_84(p, o, s) NDNBOOST_PP_IF(p(85, s), NDNBOOST_PP_WHILE_85, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(85, s))
+# define NDNBOOST_PP_WHILE_85(p, o, s) NDNBOOST_PP_IF(p(86, s), NDNBOOST_PP_WHILE_86, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(86, s))
+# define NDNBOOST_PP_WHILE_86(p, o, s) NDNBOOST_PP_IF(p(87, s), NDNBOOST_PP_WHILE_87, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(87, s))
+# define NDNBOOST_PP_WHILE_87(p, o, s) NDNBOOST_PP_IF(p(88, s), NDNBOOST_PP_WHILE_88, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(88, s))
+# define NDNBOOST_PP_WHILE_88(p, o, s) NDNBOOST_PP_IF(p(89, s), NDNBOOST_PP_WHILE_89, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(89, s))
+# define NDNBOOST_PP_WHILE_89(p, o, s) NDNBOOST_PP_IF(p(90, s), NDNBOOST_PP_WHILE_90, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(90, s))
+# define NDNBOOST_PP_WHILE_90(p, o, s) NDNBOOST_PP_IF(p(91, s), NDNBOOST_PP_WHILE_91, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(91, s))
+# define NDNBOOST_PP_WHILE_91(p, o, s) NDNBOOST_PP_IF(p(92, s), NDNBOOST_PP_WHILE_92, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(92, s))
+# define NDNBOOST_PP_WHILE_92(p, o, s) NDNBOOST_PP_IF(p(93, s), NDNBOOST_PP_WHILE_93, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(93, s))
+# define NDNBOOST_PP_WHILE_93(p, o, s) NDNBOOST_PP_IF(p(94, s), NDNBOOST_PP_WHILE_94, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(94, s))
+# define NDNBOOST_PP_WHILE_94(p, o, s) NDNBOOST_PP_IF(p(95, s), NDNBOOST_PP_WHILE_95, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(95, s))
+# define NDNBOOST_PP_WHILE_95(p, o, s) NDNBOOST_PP_IF(p(96, s), NDNBOOST_PP_WHILE_96, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(96, s))
+# define NDNBOOST_PP_WHILE_96(p, o, s) NDNBOOST_PP_IF(p(97, s), NDNBOOST_PP_WHILE_97, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(97, s))
+# define NDNBOOST_PP_WHILE_97(p, o, s) NDNBOOST_PP_IF(p(98, s), NDNBOOST_PP_WHILE_98, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(98, s))
+# define NDNBOOST_PP_WHILE_98(p, o, s) NDNBOOST_PP_IF(p(99, s), NDNBOOST_PP_WHILE_99, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(99, s))
+# define NDNBOOST_PP_WHILE_99(p, o, s) NDNBOOST_PP_IF(p(100, s), NDNBOOST_PP_WHILE_100, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(100, s))
+# define NDNBOOST_PP_WHILE_100(p, o, s) NDNBOOST_PP_IF(p(101, s), NDNBOOST_PP_WHILE_101, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(101, s))
+# define NDNBOOST_PP_WHILE_101(p, o, s) NDNBOOST_PP_IF(p(102, s), NDNBOOST_PP_WHILE_102, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(102, s))
+# define NDNBOOST_PP_WHILE_102(p, o, s) NDNBOOST_PP_IF(p(103, s), NDNBOOST_PP_WHILE_103, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(103, s))
+# define NDNBOOST_PP_WHILE_103(p, o, s) NDNBOOST_PP_IF(p(104, s), NDNBOOST_PP_WHILE_104, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(104, s))
+# define NDNBOOST_PP_WHILE_104(p, o, s) NDNBOOST_PP_IF(p(105, s), NDNBOOST_PP_WHILE_105, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(105, s))
+# define NDNBOOST_PP_WHILE_105(p, o, s) NDNBOOST_PP_IF(p(106, s), NDNBOOST_PP_WHILE_106, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(106, s))
+# define NDNBOOST_PP_WHILE_106(p, o, s) NDNBOOST_PP_IF(p(107, s), NDNBOOST_PP_WHILE_107, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(107, s))
+# define NDNBOOST_PP_WHILE_107(p, o, s) NDNBOOST_PP_IF(p(108, s), NDNBOOST_PP_WHILE_108, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(108, s))
+# define NDNBOOST_PP_WHILE_108(p, o, s) NDNBOOST_PP_IF(p(109, s), NDNBOOST_PP_WHILE_109, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(109, s))
+# define NDNBOOST_PP_WHILE_109(p, o, s) NDNBOOST_PP_IF(p(110, s), NDNBOOST_PP_WHILE_110, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(110, s))
+# define NDNBOOST_PP_WHILE_110(p, o, s) NDNBOOST_PP_IF(p(111, s), NDNBOOST_PP_WHILE_111, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(111, s))
+# define NDNBOOST_PP_WHILE_111(p, o, s) NDNBOOST_PP_IF(p(112, s), NDNBOOST_PP_WHILE_112, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(112, s))
+# define NDNBOOST_PP_WHILE_112(p, o, s) NDNBOOST_PP_IF(p(113, s), NDNBOOST_PP_WHILE_113, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(113, s))
+# define NDNBOOST_PP_WHILE_113(p, o, s) NDNBOOST_PP_IF(p(114, s), NDNBOOST_PP_WHILE_114, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(114, s))
+# define NDNBOOST_PP_WHILE_114(p, o, s) NDNBOOST_PP_IF(p(115, s), NDNBOOST_PP_WHILE_115, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(115, s))
+# define NDNBOOST_PP_WHILE_115(p, o, s) NDNBOOST_PP_IF(p(116, s), NDNBOOST_PP_WHILE_116, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(116, s))
+# define NDNBOOST_PP_WHILE_116(p, o, s) NDNBOOST_PP_IF(p(117, s), NDNBOOST_PP_WHILE_117, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(117, s))
+# define NDNBOOST_PP_WHILE_117(p, o, s) NDNBOOST_PP_IF(p(118, s), NDNBOOST_PP_WHILE_118, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(118, s))
+# define NDNBOOST_PP_WHILE_118(p, o, s) NDNBOOST_PP_IF(p(119, s), NDNBOOST_PP_WHILE_119, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(119, s))
+# define NDNBOOST_PP_WHILE_119(p, o, s) NDNBOOST_PP_IF(p(120, s), NDNBOOST_PP_WHILE_120, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(120, s))
+# define NDNBOOST_PP_WHILE_120(p, o, s) NDNBOOST_PP_IF(p(121, s), NDNBOOST_PP_WHILE_121, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(121, s))
+# define NDNBOOST_PP_WHILE_121(p, o, s) NDNBOOST_PP_IF(p(122, s), NDNBOOST_PP_WHILE_122, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(122, s))
+# define NDNBOOST_PP_WHILE_122(p, o, s) NDNBOOST_PP_IF(p(123, s), NDNBOOST_PP_WHILE_123, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(123, s))
+# define NDNBOOST_PP_WHILE_123(p, o, s) NDNBOOST_PP_IF(p(124, s), NDNBOOST_PP_WHILE_124, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(124, s))
+# define NDNBOOST_PP_WHILE_124(p, o, s) NDNBOOST_PP_IF(p(125, s), NDNBOOST_PP_WHILE_125, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(125, s))
+# define NDNBOOST_PP_WHILE_125(p, o, s) NDNBOOST_PP_IF(p(126, s), NDNBOOST_PP_WHILE_126, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(126, s))
+# define NDNBOOST_PP_WHILE_126(p, o, s) NDNBOOST_PP_IF(p(127, s), NDNBOOST_PP_WHILE_127, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(127, s))
+# define NDNBOOST_PP_WHILE_127(p, o, s) NDNBOOST_PP_IF(p(128, s), NDNBOOST_PP_WHILE_128, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(128, s))
+# define NDNBOOST_PP_WHILE_128(p, o, s) NDNBOOST_PP_IF(p(129, s), NDNBOOST_PP_WHILE_129, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(129, s))
+# define NDNBOOST_PP_WHILE_129(p, o, s) NDNBOOST_PP_IF(p(130, s), NDNBOOST_PP_WHILE_130, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(130, s))
+# define NDNBOOST_PP_WHILE_130(p, o, s) NDNBOOST_PP_IF(p(131, s), NDNBOOST_PP_WHILE_131, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(131, s))
+# define NDNBOOST_PP_WHILE_131(p, o, s) NDNBOOST_PP_IF(p(132, s), NDNBOOST_PP_WHILE_132, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(132, s))
+# define NDNBOOST_PP_WHILE_132(p, o, s) NDNBOOST_PP_IF(p(133, s), NDNBOOST_PP_WHILE_133, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(133, s))
+# define NDNBOOST_PP_WHILE_133(p, o, s) NDNBOOST_PP_IF(p(134, s), NDNBOOST_PP_WHILE_134, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(134, s))
+# define NDNBOOST_PP_WHILE_134(p, o, s) NDNBOOST_PP_IF(p(135, s), NDNBOOST_PP_WHILE_135, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(135, s))
+# define NDNBOOST_PP_WHILE_135(p, o, s) NDNBOOST_PP_IF(p(136, s), NDNBOOST_PP_WHILE_136, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(136, s))
+# define NDNBOOST_PP_WHILE_136(p, o, s) NDNBOOST_PP_IF(p(137, s), NDNBOOST_PP_WHILE_137, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(137, s))
+# define NDNBOOST_PP_WHILE_137(p, o, s) NDNBOOST_PP_IF(p(138, s), NDNBOOST_PP_WHILE_138, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(138, s))
+# define NDNBOOST_PP_WHILE_138(p, o, s) NDNBOOST_PP_IF(p(139, s), NDNBOOST_PP_WHILE_139, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(139, s))
+# define NDNBOOST_PP_WHILE_139(p, o, s) NDNBOOST_PP_IF(p(140, s), NDNBOOST_PP_WHILE_140, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(140, s))
+# define NDNBOOST_PP_WHILE_140(p, o, s) NDNBOOST_PP_IF(p(141, s), NDNBOOST_PP_WHILE_141, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(141, s))
+# define NDNBOOST_PP_WHILE_141(p, o, s) NDNBOOST_PP_IF(p(142, s), NDNBOOST_PP_WHILE_142, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(142, s))
+# define NDNBOOST_PP_WHILE_142(p, o, s) NDNBOOST_PP_IF(p(143, s), NDNBOOST_PP_WHILE_143, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(143, s))
+# define NDNBOOST_PP_WHILE_143(p, o, s) NDNBOOST_PP_IF(p(144, s), NDNBOOST_PP_WHILE_144, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(144, s))
+# define NDNBOOST_PP_WHILE_144(p, o, s) NDNBOOST_PP_IF(p(145, s), NDNBOOST_PP_WHILE_145, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(145, s))
+# define NDNBOOST_PP_WHILE_145(p, o, s) NDNBOOST_PP_IF(p(146, s), NDNBOOST_PP_WHILE_146, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(146, s))
+# define NDNBOOST_PP_WHILE_146(p, o, s) NDNBOOST_PP_IF(p(147, s), NDNBOOST_PP_WHILE_147, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(147, s))
+# define NDNBOOST_PP_WHILE_147(p, o, s) NDNBOOST_PP_IF(p(148, s), NDNBOOST_PP_WHILE_148, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(148, s))
+# define NDNBOOST_PP_WHILE_148(p, o, s) NDNBOOST_PP_IF(p(149, s), NDNBOOST_PP_WHILE_149, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(149, s))
+# define NDNBOOST_PP_WHILE_149(p, o, s) NDNBOOST_PP_IF(p(150, s), NDNBOOST_PP_WHILE_150, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(150, s))
+# define NDNBOOST_PP_WHILE_150(p, o, s) NDNBOOST_PP_IF(p(151, s), NDNBOOST_PP_WHILE_151, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(151, s))
+# define NDNBOOST_PP_WHILE_151(p, o, s) NDNBOOST_PP_IF(p(152, s), NDNBOOST_PP_WHILE_152, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(152, s))
+# define NDNBOOST_PP_WHILE_152(p, o, s) NDNBOOST_PP_IF(p(153, s), NDNBOOST_PP_WHILE_153, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(153, s))
+# define NDNBOOST_PP_WHILE_153(p, o, s) NDNBOOST_PP_IF(p(154, s), NDNBOOST_PP_WHILE_154, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(154, s))
+# define NDNBOOST_PP_WHILE_154(p, o, s) NDNBOOST_PP_IF(p(155, s), NDNBOOST_PP_WHILE_155, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(155, s))
+# define NDNBOOST_PP_WHILE_155(p, o, s) NDNBOOST_PP_IF(p(156, s), NDNBOOST_PP_WHILE_156, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(156, s))
+# define NDNBOOST_PP_WHILE_156(p, o, s) NDNBOOST_PP_IF(p(157, s), NDNBOOST_PP_WHILE_157, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(157, s))
+# define NDNBOOST_PP_WHILE_157(p, o, s) NDNBOOST_PP_IF(p(158, s), NDNBOOST_PP_WHILE_158, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(158, s))
+# define NDNBOOST_PP_WHILE_158(p, o, s) NDNBOOST_PP_IF(p(159, s), NDNBOOST_PP_WHILE_159, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(159, s))
+# define NDNBOOST_PP_WHILE_159(p, o, s) NDNBOOST_PP_IF(p(160, s), NDNBOOST_PP_WHILE_160, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(160, s))
+# define NDNBOOST_PP_WHILE_160(p, o, s) NDNBOOST_PP_IF(p(161, s), NDNBOOST_PP_WHILE_161, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(161, s))
+# define NDNBOOST_PP_WHILE_161(p, o, s) NDNBOOST_PP_IF(p(162, s), NDNBOOST_PP_WHILE_162, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(162, s))
+# define NDNBOOST_PP_WHILE_162(p, o, s) NDNBOOST_PP_IF(p(163, s), NDNBOOST_PP_WHILE_163, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(163, s))
+# define NDNBOOST_PP_WHILE_163(p, o, s) NDNBOOST_PP_IF(p(164, s), NDNBOOST_PP_WHILE_164, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(164, s))
+# define NDNBOOST_PP_WHILE_164(p, o, s) NDNBOOST_PP_IF(p(165, s), NDNBOOST_PP_WHILE_165, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(165, s))
+# define NDNBOOST_PP_WHILE_165(p, o, s) NDNBOOST_PP_IF(p(166, s), NDNBOOST_PP_WHILE_166, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(166, s))
+# define NDNBOOST_PP_WHILE_166(p, o, s) NDNBOOST_PP_IF(p(167, s), NDNBOOST_PP_WHILE_167, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(167, s))
+# define NDNBOOST_PP_WHILE_167(p, o, s) NDNBOOST_PP_IF(p(168, s), NDNBOOST_PP_WHILE_168, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(168, s))
+# define NDNBOOST_PP_WHILE_168(p, o, s) NDNBOOST_PP_IF(p(169, s), NDNBOOST_PP_WHILE_169, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(169, s))
+# define NDNBOOST_PP_WHILE_169(p, o, s) NDNBOOST_PP_IF(p(170, s), NDNBOOST_PP_WHILE_170, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(170, s))
+# define NDNBOOST_PP_WHILE_170(p, o, s) NDNBOOST_PP_IF(p(171, s), NDNBOOST_PP_WHILE_171, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(171, s))
+# define NDNBOOST_PP_WHILE_171(p, o, s) NDNBOOST_PP_IF(p(172, s), NDNBOOST_PP_WHILE_172, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(172, s))
+# define NDNBOOST_PP_WHILE_172(p, o, s) NDNBOOST_PP_IF(p(173, s), NDNBOOST_PP_WHILE_173, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(173, s))
+# define NDNBOOST_PP_WHILE_173(p, o, s) NDNBOOST_PP_IF(p(174, s), NDNBOOST_PP_WHILE_174, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(174, s))
+# define NDNBOOST_PP_WHILE_174(p, o, s) NDNBOOST_PP_IF(p(175, s), NDNBOOST_PP_WHILE_175, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(175, s))
+# define NDNBOOST_PP_WHILE_175(p, o, s) NDNBOOST_PP_IF(p(176, s), NDNBOOST_PP_WHILE_176, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(176, s))
+# define NDNBOOST_PP_WHILE_176(p, o, s) NDNBOOST_PP_IF(p(177, s), NDNBOOST_PP_WHILE_177, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(177, s))
+# define NDNBOOST_PP_WHILE_177(p, o, s) NDNBOOST_PP_IF(p(178, s), NDNBOOST_PP_WHILE_178, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(178, s))
+# define NDNBOOST_PP_WHILE_178(p, o, s) NDNBOOST_PP_IF(p(179, s), NDNBOOST_PP_WHILE_179, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(179, s))
+# define NDNBOOST_PP_WHILE_179(p, o, s) NDNBOOST_PP_IF(p(180, s), NDNBOOST_PP_WHILE_180, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(180, s))
+# define NDNBOOST_PP_WHILE_180(p, o, s) NDNBOOST_PP_IF(p(181, s), NDNBOOST_PP_WHILE_181, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(181, s))
+# define NDNBOOST_PP_WHILE_181(p, o, s) NDNBOOST_PP_IF(p(182, s), NDNBOOST_PP_WHILE_182, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(182, s))
+# define NDNBOOST_PP_WHILE_182(p, o, s) NDNBOOST_PP_IF(p(183, s), NDNBOOST_PP_WHILE_183, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(183, s))
+# define NDNBOOST_PP_WHILE_183(p, o, s) NDNBOOST_PP_IF(p(184, s), NDNBOOST_PP_WHILE_184, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(184, s))
+# define NDNBOOST_PP_WHILE_184(p, o, s) NDNBOOST_PP_IF(p(185, s), NDNBOOST_PP_WHILE_185, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(185, s))
+# define NDNBOOST_PP_WHILE_185(p, o, s) NDNBOOST_PP_IF(p(186, s), NDNBOOST_PP_WHILE_186, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(186, s))
+# define NDNBOOST_PP_WHILE_186(p, o, s) NDNBOOST_PP_IF(p(187, s), NDNBOOST_PP_WHILE_187, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(187, s))
+# define NDNBOOST_PP_WHILE_187(p, o, s) NDNBOOST_PP_IF(p(188, s), NDNBOOST_PP_WHILE_188, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(188, s))
+# define NDNBOOST_PP_WHILE_188(p, o, s) NDNBOOST_PP_IF(p(189, s), NDNBOOST_PP_WHILE_189, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(189, s))
+# define NDNBOOST_PP_WHILE_189(p, o, s) NDNBOOST_PP_IF(p(190, s), NDNBOOST_PP_WHILE_190, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(190, s))
+# define NDNBOOST_PP_WHILE_190(p, o, s) NDNBOOST_PP_IF(p(191, s), NDNBOOST_PP_WHILE_191, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(191, s))
+# define NDNBOOST_PP_WHILE_191(p, o, s) NDNBOOST_PP_IF(p(192, s), NDNBOOST_PP_WHILE_192, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(192, s))
+# define NDNBOOST_PP_WHILE_192(p, o, s) NDNBOOST_PP_IF(p(193, s), NDNBOOST_PP_WHILE_193, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(193, s))
+# define NDNBOOST_PP_WHILE_193(p, o, s) NDNBOOST_PP_IF(p(194, s), NDNBOOST_PP_WHILE_194, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(194, s))
+# define NDNBOOST_PP_WHILE_194(p, o, s) NDNBOOST_PP_IF(p(195, s), NDNBOOST_PP_WHILE_195, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(195, s))
+# define NDNBOOST_PP_WHILE_195(p, o, s) NDNBOOST_PP_IF(p(196, s), NDNBOOST_PP_WHILE_196, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(196, s))
+# define NDNBOOST_PP_WHILE_196(p, o, s) NDNBOOST_PP_IF(p(197, s), NDNBOOST_PP_WHILE_197, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(197, s))
+# define NDNBOOST_PP_WHILE_197(p, o, s) NDNBOOST_PP_IF(p(198, s), NDNBOOST_PP_WHILE_198, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(198, s))
+# define NDNBOOST_PP_WHILE_198(p, o, s) NDNBOOST_PP_IF(p(199, s), NDNBOOST_PP_WHILE_199, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(199, s))
+# define NDNBOOST_PP_WHILE_199(p, o, s) NDNBOOST_PP_IF(p(200, s), NDNBOOST_PP_WHILE_200, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(200, s))
+# define NDNBOOST_PP_WHILE_200(p, o, s) NDNBOOST_PP_IF(p(201, s), NDNBOOST_PP_WHILE_201, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(201, s))
+# define NDNBOOST_PP_WHILE_201(p, o, s) NDNBOOST_PP_IF(p(202, s), NDNBOOST_PP_WHILE_202, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(202, s))
+# define NDNBOOST_PP_WHILE_202(p, o, s) NDNBOOST_PP_IF(p(203, s), NDNBOOST_PP_WHILE_203, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(203, s))
+# define NDNBOOST_PP_WHILE_203(p, o, s) NDNBOOST_PP_IF(p(204, s), NDNBOOST_PP_WHILE_204, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(204, s))
+# define NDNBOOST_PP_WHILE_204(p, o, s) NDNBOOST_PP_IF(p(205, s), NDNBOOST_PP_WHILE_205, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(205, s))
+# define NDNBOOST_PP_WHILE_205(p, o, s) NDNBOOST_PP_IF(p(206, s), NDNBOOST_PP_WHILE_206, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(206, s))
+# define NDNBOOST_PP_WHILE_206(p, o, s) NDNBOOST_PP_IF(p(207, s), NDNBOOST_PP_WHILE_207, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(207, s))
+# define NDNBOOST_PP_WHILE_207(p, o, s) NDNBOOST_PP_IF(p(208, s), NDNBOOST_PP_WHILE_208, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(208, s))
+# define NDNBOOST_PP_WHILE_208(p, o, s) NDNBOOST_PP_IF(p(209, s), NDNBOOST_PP_WHILE_209, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(209, s))
+# define NDNBOOST_PP_WHILE_209(p, o, s) NDNBOOST_PP_IF(p(210, s), NDNBOOST_PP_WHILE_210, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(210, s))
+# define NDNBOOST_PP_WHILE_210(p, o, s) NDNBOOST_PP_IF(p(211, s), NDNBOOST_PP_WHILE_211, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(211, s))
+# define NDNBOOST_PP_WHILE_211(p, o, s) NDNBOOST_PP_IF(p(212, s), NDNBOOST_PP_WHILE_212, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(212, s))
+# define NDNBOOST_PP_WHILE_212(p, o, s) NDNBOOST_PP_IF(p(213, s), NDNBOOST_PP_WHILE_213, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(213, s))
+# define NDNBOOST_PP_WHILE_213(p, o, s) NDNBOOST_PP_IF(p(214, s), NDNBOOST_PP_WHILE_214, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(214, s))
+# define NDNBOOST_PP_WHILE_214(p, o, s) NDNBOOST_PP_IF(p(215, s), NDNBOOST_PP_WHILE_215, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(215, s))
+# define NDNBOOST_PP_WHILE_215(p, o, s) NDNBOOST_PP_IF(p(216, s), NDNBOOST_PP_WHILE_216, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(216, s))
+# define NDNBOOST_PP_WHILE_216(p, o, s) NDNBOOST_PP_IF(p(217, s), NDNBOOST_PP_WHILE_217, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(217, s))
+# define NDNBOOST_PP_WHILE_217(p, o, s) NDNBOOST_PP_IF(p(218, s), NDNBOOST_PP_WHILE_218, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(218, s))
+# define NDNBOOST_PP_WHILE_218(p, o, s) NDNBOOST_PP_IF(p(219, s), NDNBOOST_PP_WHILE_219, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(219, s))
+# define NDNBOOST_PP_WHILE_219(p, o, s) NDNBOOST_PP_IF(p(220, s), NDNBOOST_PP_WHILE_220, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(220, s))
+# define NDNBOOST_PP_WHILE_220(p, o, s) NDNBOOST_PP_IF(p(221, s), NDNBOOST_PP_WHILE_221, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(221, s))
+# define NDNBOOST_PP_WHILE_221(p, o, s) NDNBOOST_PP_IF(p(222, s), NDNBOOST_PP_WHILE_222, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(222, s))
+# define NDNBOOST_PP_WHILE_222(p, o, s) NDNBOOST_PP_IF(p(223, s), NDNBOOST_PP_WHILE_223, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(223, s))
+# define NDNBOOST_PP_WHILE_223(p, o, s) NDNBOOST_PP_IF(p(224, s), NDNBOOST_PP_WHILE_224, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(224, s))
+# define NDNBOOST_PP_WHILE_224(p, o, s) NDNBOOST_PP_IF(p(225, s), NDNBOOST_PP_WHILE_225, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(225, s))
+# define NDNBOOST_PP_WHILE_225(p, o, s) NDNBOOST_PP_IF(p(226, s), NDNBOOST_PP_WHILE_226, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(226, s))
+# define NDNBOOST_PP_WHILE_226(p, o, s) NDNBOOST_PP_IF(p(227, s), NDNBOOST_PP_WHILE_227, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(227, s))
+# define NDNBOOST_PP_WHILE_227(p, o, s) NDNBOOST_PP_IF(p(228, s), NDNBOOST_PP_WHILE_228, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(228, s))
+# define NDNBOOST_PP_WHILE_228(p, o, s) NDNBOOST_PP_IF(p(229, s), NDNBOOST_PP_WHILE_229, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(229, s))
+# define NDNBOOST_PP_WHILE_229(p, o, s) NDNBOOST_PP_IF(p(230, s), NDNBOOST_PP_WHILE_230, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(230, s))
+# define NDNBOOST_PP_WHILE_230(p, o, s) NDNBOOST_PP_IF(p(231, s), NDNBOOST_PP_WHILE_231, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(231, s))
+# define NDNBOOST_PP_WHILE_231(p, o, s) NDNBOOST_PP_IF(p(232, s), NDNBOOST_PP_WHILE_232, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(232, s))
+# define NDNBOOST_PP_WHILE_232(p, o, s) NDNBOOST_PP_IF(p(233, s), NDNBOOST_PP_WHILE_233, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(233, s))
+# define NDNBOOST_PP_WHILE_233(p, o, s) NDNBOOST_PP_IF(p(234, s), NDNBOOST_PP_WHILE_234, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(234, s))
+# define NDNBOOST_PP_WHILE_234(p, o, s) NDNBOOST_PP_IF(p(235, s), NDNBOOST_PP_WHILE_235, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(235, s))
+# define NDNBOOST_PP_WHILE_235(p, o, s) NDNBOOST_PP_IF(p(236, s), NDNBOOST_PP_WHILE_236, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(236, s))
+# define NDNBOOST_PP_WHILE_236(p, o, s) NDNBOOST_PP_IF(p(237, s), NDNBOOST_PP_WHILE_237, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(237, s))
+# define NDNBOOST_PP_WHILE_237(p, o, s) NDNBOOST_PP_IF(p(238, s), NDNBOOST_PP_WHILE_238, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(238, s))
+# define NDNBOOST_PP_WHILE_238(p, o, s) NDNBOOST_PP_IF(p(239, s), NDNBOOST_PP_WHILE_239, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(239, s))
+# define NDNBOOST_PP_WHILE_239(p, o, s) NDNBOOST_PP_IF(p(240, s), NDNBOOST_PP_WHILE_240, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(240, s))
+# define NDNBOOST_PP_WHILE_240(p, o, s) NDNBOOST_PP_IF(p(241, s), NDNBOOST_PP_WHILE_241, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(241, s))
+# define NDNBOOST_PP_WHILE_241(p, o, s) NDNBOOST_PP_IF(p(242, s), NDNBOOST_PP_WHILE_242, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(242, s))
+# define NDNBOOST_PP_WHILE_242(p, o, s) NDNBOOST_PP_IF(p(243, s), NDNBOOST_PP_WHILE_243, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(243, s))
+# define NDNBOOST_PP_WHILE_243(p, o, s) NDNBOOST_PP_IF(p(244, s), NDNBOOST_PP_WHILE_244, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(244, s))
+# define NDNBOOST_PP_WHILE_244(p, o, s) NDNBOOST_PP_IF(p(245, s), NDNBOOST_PP_WHILE_245, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(245, s))
+# define NDNBOOST_PP_WHILE_245(p, o, s) NDNBOOST_PP_IF(p(246, s), NDNBOOST_PP_WHILE_246, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(246, s))
+# define NDNBOOST_PP_WHILE_246(p, o, s) NDNBOOST_PP_IF(p(247, s), NDNBOOST_PP_WHILE_247, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(247, s))
+# define NDNBOOST_PP_WHILE_247(p, o, s) NDNBOOST_PP_IF(p(248, s), NDNBOOST_PP_WHILE_248, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(248, s))
+# define NDNBOOST_PP_WHILE_248(p, o, s) NDNBOOST_PP_IF(p(249, s), NDNBOOST_PP_WHILE_249, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(249, s))
+# define NDNBOOST_PP_WHILE_249(p, o, s) NDNBOOST_PP_IF(p(250, s), NDNBOOST_PP_WHILE_250, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(250, s))
+# define NDNBOOST_PP_WHILE_250(p, o, s) NDNBOOST_PP_IF(p(251, s), NDNBOOST_PP_WHILE_251, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(251, s))
+# define NDNBOOST_PP_WHILE_251(p, o, s) NDNBOOST_PP_IF(p(252, s), NDNBOOST_PP_WHILE_252, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(252, s))
+# define NDNBOOST_PP_WHILE_252(p, o, s) NDNBOOST_PP_IF(p(253, s), NDNBOOST_PP_WHILE_253, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(253, s))
+# define NDNBOOST_PP_WHILE_253(p, o, s) NDNBOOST_PP_IF(p(254, s), NDNBOOST_PP_WHILE_254, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(254, s))
+# define NDNBOOST_PP_WHILE_254(p, o, s) NDNBOOST_PP_IF(p(255, s), NDNBOOST_PP_WHILE_255, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(255, s))
+# define NDNBOOST_PP_WHILE_255(p, o, s) NDNBOOST_PP_IF(p(256, s), NDNBOOST_PP_WHILE_256, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(256, s))
+# define NDNBOOST_PP_WHILE_256(p, o, s) NDNBOOST_PP_IF(p(257, s), NDNBOOST_PP_WHILE_257, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, o(257, s))
 #
 # endif
diff --git a/include/ndnboost/preprocessor/control/detail/while.hpp b/include/ndnboost/preprocessor/control/detail/while.hpp
index bc81737..a1e9ee1 100644
--- a/include/ndnboost/preprocessor/control/detail/while.hpp
+++ b/include/ndnboost/preprocessor/control/detail/while.hpp
@@ -11,526 +11,526 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_CONTROL_DETAIL_WHILE_HPP
-# define BOOST_PREPROCESSOR_CONTROL_DETAIL_WHILE_HPP
+# ifndef NDNBOOST_PREPROCESSOR_CONTROL_DETAIL_WHILE_HPP
+# define NDNBOOST_PREPROCESSOR_CONTROL_DETAIL_WHILE_HPP
 #
 # include <ndnboost/preprocessor/control/iif.hpp>
 # include <ndnboost/preprocessor/logical/bool.hpp>
 # include <ndnboost/preprocessor/tuple/eat.hpp>
 #
-# define BOOST_PP_WHILE_1(p, o, s) BOOST_PP_WHILE_1_C(BOOST_PP_BOOL(p(2, s)), p, o, s)
-# define BOOST_PP_WHILE_2(p, o, s) BOOST_PP_WHILE_2_C(BOOST_PP_BOOL(p(3, s)), p, o, s)
-# define BOOST_PP_WHILE_3(p, o, s) BOOST_PP_WHILE_3_C(BOOST_PP_BOOL(p(4, s)), p, o, s)
-# define BOOST_PP_WHILE_4(p, o, s) BOOST_PP_WHILE_4_C(BOOST_PP_BOOL(p(5, s)), p, o, s)
-# define BOOST_PP_WHILE_5(p, o, s) BOOST_PP_WHILE_5_C(BOOST_PP_BOOL(p(6, s)), p, o, s)
-# define BOOST_PP_WHILE_6(p, o, s) BOOST_PP_WHILE_6_C(BOOST_PP_BOOL(p(7, s)), p, o, s)
-# define BOOST_PP_WHILE_7(p, o, s) BOOST_PP_WHILE_7_C(BOOST_PP_BOOL(p(8, s)), p, o, s)
-# define BOOST_PP_WHILE_8(p, o, s) BOOST_PP_WHILE_8_C(BOOST_PP_BOOL(p(9, s)), p, o, s)
-# define BOOST_PP_WHILE_9(p, o, s) BOOST_PP_WHILE_9_C(BOOST_PP_BOOL(p(10, s)), p, o, s)
-# define BOOST_PP_WHILE_10(p, o, s) BOOST_PP_WHILE_10_C(BOOST_PP_BOOL(p(11, s)), p, o, s)
-# define BOOST_PP_WHILE_11(p, o, s) BOOST_PP_WHILE_11_C(BOOST_PP_BOOL(p(12, s)), p, o, s)
-# define BOOST_PP_WHILE_12(p, o, s) BOOST_PP_WHILE_12_C(BOOST_PP_BOOL(p(13, s)), p, o, s)
-# define BOOST_PP_WHILE_13(p, o, s) BOOST_PP_WHILE_13_C(BOOST_PP_BOOL(p(14, s)), p, o, s)
-# define BOOST_PP_WHILE_14(p, o, s) BOOST_PP_WHILE_14_C(BOOST_PP_BOOL(p(15, s)), p, o, s)
-# define BOOST_PP_WHILE_15(p, o, s) BOOST_PP_WHILE_15_C(BOOST_PP_BOOL(p(16, s)), p, o, s)
-# define BOOST_PP_WHILE_16(p, o, s) BOOST_PP_WHILE_16_C(BOOST_PP_BOOL(p(17, s)), p, o, s)
-# define BOOST_PP_WHILE_17(p, o, s) BOOST_PP_WHILE_17_C(BOOST_PP_BOOL(p(18, s)), p, o, s)
-# define BOOST_PP_WHILE_18(p, o, s) BOOST_PP_WHILE_18_C(BOOST_PP_BOOL(p(19, s)), p, o, s)
-# define BOOST_PP_WHILE_19(p, o, s) BOOST_PP_WHILE_19_C(BOOST_PP_BOOL(p(20, s)), p, o, s)
-# define BOOST_PP_WHILE_20(p, o, s) BOOST_PP_WHILE_20_C(BOOST_PP_BOOL(p(21, s)), p, o, s)
-# define BOOST_PP_WHILE_21(p, o, s) BOOST_PP_WHILE_21_C(BOOST_PP_BOOL(p(22, s)), p, o, s)
-# define BOOST_PP_WHILE_22(p, o, s) BOOST_PP_WHILE_22_C(BOOST_PP_BOOL(p(23, s)), p, o, s)
-# define BOOST_PP_WHILE_23(p, o, s) BOOST_PP_WHILE_23_C(BOOST_PP_BOOL(p(24, s)), p, o, s)
-# define BOOST_PP_WHILE_24(p, o, s) BOOST_PP_WHILE_24_C(BOOST_PP_BOOL(p(25, s)), p, o, s)
-# define BOOST_PP_WHILE_25(p, o, s) BOOST_PP_WHILE_25_C(BOOST_PP_BOOL(p(26, s)), p, o, s)
-# define BOOST_PP_WHILE_26(p, o, s) BOOST_PP_WHILE_26_C(BOOST_PP_BOOL(p(27, s)), p, o, s)
-# define BOOST_PP_WHILE_27(p, o, s) BOOST_PP_WHILE_27_C(BOOST_PP_BOOL(p(28, s)), p, o, s)
-# define BOOST_PP_WHILE_28(p, o, s) BOOST_PP_WHILE_28_C(BOOST_PP_BOOL(p(29, s)), p, o, s)
-# define BOOST_PP_WHILE_29(p, o, s) BOOST_PP_WHILE_29_C(BOOST_PP_BOOL(p(30, s)), p, o, s)
-# define BOOST_PP_WHILE_30(p, o, s) BOOST_PP_WHILE_30_C(BOOST_PP_BOOL(p(31, s)), p, o, s)
-# define BOOST_PP_WHILE_31(p, o, s) BOOST_PP_WHILE_31_C(BOOST_PP_BOOL(p(32, s)), p, o, s)
-# define BOOST_PP_WHILE_32(p, o, s) BOOST_PP_WHILE_32_C(BOOST_PP_BOOL(p(33, s)), p, o, s)
-# define BOOST_PP_WHILE_33(p, o, s) BOOST_PP_WHILE_33_C(BOOST_PP_BOOL(p(34, s)), p, o, s)
-# define BOOST_PP_WHILE_34(p, o, s) BOOST_PP_WHILE_34_C(BOOST_PP_BOOL(p(35, s)), p, o, s)
-# define BOOST_PP_WHILE_35(p, o, s) BOOST_PP_WHILE_35_C(BOOST_PP_BOOL(p(36, s)), p, o, s)
-# define BOOST_PP_WHILE_36(p, o, s) BOOST_PP_WHILE_36_C(BOOST_PP_BOOL(p(37, s)), p, o, s)
-# define BOOST_PP_WHILE_37(p, o, s) BOOST_PP_WHILE_37_C(BOOST_PP_BOOL(p(38, s)), p, o, s)
-# define BOOST_PP_WHILE_38(p, o, s) BOOST_PP_WHILE_38_C(BOOST_PP_BOOL(p(39, s)), p, o, s)
-# define BOOST_PP_WHILE_39(p, o, s) BOOST_PP_WHILE_39_C(BOOST_PP_BOOL(p(40, s)), p, o, s)
-# define BOOST_PP_WHILE_40(p, o, s) BOOST_PP_WHILE_40_C(BOOST_PP_BOOL(p(41, s)), p, o, s)
-# define BOOST_PP_WHILE_41(p, o, s) BOOST_PP_WHILE_41_C(BOOST_PP_BOOL(p(42, s)), p, o, s)
-# define BOOST_PP_WHILE_42(p, o, s) BOOST_PP_WHILE_42_C(BOOST_PP_BOOL(p(43, s)), p, o, s)
-# define BOOST_PP_WHILE_43(p, o, s) BOOST_PP_WHILE_43_C(BOOST_PP_BOOL(p(44, s)), p, o, s)
-# define BOOST_PP_WHILE_44(p, o, s) BOOST_PP_WHILE_44_C(BOOST_PP_BOOL(p(45, s)), p, o, s)
-# define BOOST_PP_WHILE_45(p, o, s) BOOST_PP_WHILE_45_C(BOOST_PP_BOOL(p(46, s)), p, o, s)
-# define BOOST_PP_WHILE_46(p, o, s) BOOST_PP_WHILE_46_C(BOOST_PP_BOOL(p(47, s)), p, o, s)
-# define BOOST_PP_WHILE_47(p, o, s) BOOST_PP_WHILE_47_C(BOOST_PP_BOOL(p(48, s)), p, o, s)
-# define BOOST_PP_WHILE_48(p, o, s) BOOST_PP_WHILE_48_C(BOOST_PP_BOOL(p(49, s)), p, o, s)
-# define BOOST_PP_WHILE_49(p, o, s) BOOST_PP_WHILE_49_C(BOOST_PP_BOOL(p(50, s)), p, o, s)
-# define BOOST_PP_WHILE_50(p, o, s) BOOST_PP_WHILE_50_C(BOOST_PP_BOOL(p(51, s)), p, o, s)
-# define BOOST_PP_WHILE_51(p, o, s) BOOST_PP_WHILE_51_C(BOOST_PP_BOOL(p(52, s)), p, o, s)
-# define BOOST_PP_WHILE_52(p, o, s) BOOST_PP_WHILE_52_C(BOOST_PP_BOOL(p(53, s)), p, o, s)
-# define BOOST_PP_WHILE_53(p, o, s) BOOST_PP_WHILE_53_C(BOOST_PP_BOOL(p(54, s)), p, o, s)
-# define BOOST_PP_WHILE_54(p, o, s) BOOST_PP_WHILE_54_C(BOOST_PP_BOOL(p(55, s)), p, o, s)
-# define BOOST_PP_WHILE_55(p, o, s) BOOST_PP_WHILE_55_C(BOOST_PP_BOOL(p(56, s)), p, o, s)
-# define BOOST_PP_WHILE_56(p, o, s) BOOST_PP_WHILE_56_C(BOOST_PP_BOOL(p(57, s)), p, o, s)
-# define BOOST_PP_WHILE_57(p, o, s) BOOST_PP_WHILE_57_C(BOOST_PP_BOOL(p(58, s)), p, o, s)
-# define BOOST_PP_WHILE_58(p, o, s) BOOST_PP_WHILE_58_C(BOOST_PP_BOOL(p(59, s)), p, o, s)
-# define BOOST_PP_WHILE_59(p, o, s) BOOST_PP_WHILE_59_C(BOOST_PP_BOOL(p(60, s)), p, o, s)
-# define BOOST_PP_WHILE_60(p, o, s) BOOST_PP_WHILE_60_C(BOOST_PP_BOOL(p(61, s)), p, o, s)
-# define BOOST_PP_WHILE_61(p, o, s) BOOST_PP_WHILE_61_C(BOOST_PP_BOOL(p(62, s)), p, o, s)
-# define BOOST_PP_WHILE_62(p, o, s) BOOST_PP_WHILE_62_C(BOOST_PP_BOOL(p(63, s)), p, o, s)
-# define BOOST_PP_WHILE_63(p, o, s) BOOST_PP_WHILE_63_C(BOOST_PP_BOOL(p(64, s)), p, o, s)
-# define BOOST_PP_WHILE_64(p, o, s) BOOST_PP_WHILE_64_C(BOOST_PP_BOOL(p(65, s)), p, o, s)
-# define BOOST_PP_WHILE_65(p, o, s) BOOST_PP_WHILE_65_C(BOOST_PP_BOOL(p(66, s)), p, o, s)
-# define BOOST_PP_WHILE_66(p, o, s) BOOST_PP_WHILE_66_C(BOOST_PP_BOOL(p(67, s)), p, o, s)
-# define BOOST_PP_WHILE_67(p, o, s) BOOST_PP_WHILE_67_C(BOOST_PP_BOOL(p(68, s)), p, o, s)
-# define BOOST_PP_WHILE_68(p, o, s) BOOST_PP_WHILE_68_C(BOOST_PP_BOOL(p(69, s)), p, o, s)
-# define BOOST_PP_WHILE_69(p, o, s) BOOST_PP_WHILE_69_C(BOOST_PP_BOOL(p(70, s)), p, o, s)
-# define BOOST_PP_WHILE_70(p, o, s) BOOST_PP_WHILE_70_C(BOOST_PP_BOOL(p(71, s)), p, o, s)
-# define BOOST_PP_WHILE_71(p, o, s) BOOST_PP_WHILE_71_C(BOOST_PP_BOOL(p(72, s)), p, o, s)
-# define BOOST_PP_WHILE_72(p, o, s) BOOST_PP_WHILE_72_C(BOOST_PP_BOOL(p(73, s)), p, o, s)
-# define BOOST_PP_WHILE_73(p, o, s) BOOST_PP_WHILE_73_C(BOOST_PP_BOOL(p(74, s)), p, o, s)
-# define BOOST_PP_WHILE_74(p, o, s) BOOST_PP_WHILE_74_C(BOOST_PP_BOOL(p(75, s)), p, o, s)
-# define BOOST_PP_WHILE_75(p, o, s) BOOST_PP_WHILE_75_C(BOOST_PP_BOOL(p(76, s)), p, o, s)
-# define BOOST_PP_WHILE_76(p, o, s) BOOST_PP_WHILE_76_C(BOOST_PP_BOOL(p(77, s)), p, o, s)
-# define BOOST_PP_WHILE_77(p, o, s) BOOST_PP_WHILE_77_C(BOOST_PP_BOOL(p(78, s)), p, o, s)
-# define BOOST_PP_WHILE_78(p, o, s) BOOST_PP_WHILE_78_C(BOOST_PP_BOOL(p(79, s)), p, o, s)
-# define BOOST_PP_WHILE_79(p, o, s) BOOST_PP_WHILE_79_C(BOOST_PP_BOOL(p(80, s)), p, o, s)
-# define BOOST_PP_WHILE_80(p, o, s) BOOST_PP_WHILE_80_C(BOOST_PP_BOOL(p(81, s)), p, o, s)
-# define BOOST_PP_WHILE_81(p, o, s) BOOST_PP_WHILE_81_C(BOOST_PP_BOOL(p(82, s)), p, o, s)
-# define BOOST_PP_WHILE_82(p, o, s) BOOST_PP_WHILE_82_C(BOOST_PP_BOOL(p(83, s)), p, o, s)
-# define BOOST_PP_WHILE_83(p, o, s) BOOST_PP_WHILE_83_C(BOOST_PP_BOOL(p(84, s)), p, o, s)
-# define BOOST_PP_WHILE_84(p, o, s) BOOST_PP_WHILE_84_C(BOOST_PP_BOOL(p(85, s)), p, o, s)
-# define BOOST_PP_WHILE_85(p, o, s) BOOST_PP_WHILE_85_C(BOOST_PP_BOOL(p(86, s)), p, o, s)
-# define BOOST_PP_WHILE_86(p, o, s) BOOST_PP_WHILE_86_C(BOOST_PP_BOOL(p(87, s)), p, o, s)
-# define BOOST_PP_WHILE_87(p, o, s) BOOST_PP_WHILE_87_C(BOOST_PP_BOOL(p(88, s)), p, o, s)
-# define BOOST_PP_WHILE_88(p, o, s) BOOST_PP_WHILE_88_C(BOOST_PP_BOOL(p(89, s)), p, o, s)
-# define BOOST_PP_WHILE_89(p, o, s) BOOST_PP_WHILE_89_C(BOOST_PP_BOOL(p(90, s)), p, o, s)
-# define BOOST_PP_WHILE_90(p, o, s) BOOST_PP_WHILE_90_C(BOOST_PP_BOOL(p(91, s)), p, o, s)
-# define BOOST_PP_WHILE_91(p, o, s) BOOST_PP_WHILE_91_C(BOOST_PP_BOOL(p(92, s)), p, o, s)
-# define BOOST_PP_WHILE_92(p, o, s) BOOST_PP_WHILE_92_C(BOOST_PP_BOOL(p(93, s)), p, o, s)
-# define BOOST_PP_WHILE_93(p, o, s) BOOST_PP_WHILE_93_C(BOOST_PP_BOOL(p(94, s)), p, o, s)
-# define BOOST_PP_WHILE_94(p, o, s) BOOST_PP_WHILE_94_C(BOOST_PP_BOOL(p(95, s)), p, o, s)
-# define BOOST_PP_WHILE_95(p, o, s) BOOST_PP_WHILE_95_C(BOOST_PP_BOOL(p(96, s)), p, o, s)
-# define BOOST_PP_WHILE_96(p, o, s) BOOST_PP_WHILE_96_C(BOOST_PP_BOOL(p(97, s)), p, o, s)
-# define BOOST_PP_WHILE_97(p, o, s) BOOST_PP_WHILE_97_C(BOOST_PP_BOOL(p(98, s)), p, o, s)
-# define BOOST_PP_WHILE_98(p, o, s) BOOST_PP_WHILE_98_C(BOOST_PP_BOOL(p(99, s)), p, o, s)
-# define BOOST_PP_WHILE_99(p, o, s) BOOST_PP_WHILE_99_C(BOOST_PP_BOOL(p(100, s)), p, o, s)
-# define BOOST_PP_WHILE_100(p, o, s) BOOST_PP_WHILE_100_C(BOOST_PP_BOOL(p(101, s)), p, o, s)
-# define BOOST_PP_WHILE_101(p, o, s) BOOST_PP_WHILE_101_C(BOOST_PP_BOOL(p(102, s)), p, o, s)
-# define BOOST_PP_WHILE_102(p, o, s) BOOST_PP_WHILE_102_C(BOOST_PP_BOOL(p(103, s)), p, o, s)
-# define BOOST_PP_WHILE_103(p, o, s) BOOST_PP_WHILE_103_C(BOOST_PP_BOOL(p(104, s)), p, o, s)
-# define BOOST_PP_WHILE_104(p, o, s) BOOST_PP_WHILE_104_C(BOOST_PP_BOOL(p(105, s)), p, o, s)
-# define BOOST_PP_WHILE_105(p, o, s) BOOST_PP_WHILE_105_C(BOOST_PP_BOOL(p(106, s)), p, o, s)
-# define BOOST_PP_WHILE_106(p, o, s) BOOST_PP_WHILE_106_C(BOOST_PP_BOOL(p(107, s)), p, o, s)
-# define BOOST_PP_WHILE_107(p, o, s) BOOST_PP_WHILE_107_C(BOOST_PP_BOOL(p(108, s)), p, o, s)
-# define BOOST_PP_WHILE_108(p, o, s) BOOST_PP_WHILE_108_C(BOOST_PP_BOOL(p(109, s)), p, o, s)
-# define BOOST_PP_WHILE_109(p, o, s) BOOST_PP_WHILE_109_C(BOOST_PP_BOOL(p(110, s)), p, o, s)
-# define BOOST_PP_WHILE_110(p, o, s) BOOST_PP_WHILE_110_C(BOOST_PP_BOOL(p(111, s)), p, o, s)
-# define BOOST_PP_WHILE_111(p, o, s) BOOST_PP_WHILE_111_C(BOOST_PP_BOOL(p(112, s)), p, o, s)
-# define BOOST_PP_WHILE_112(p, o, s) BOOST_PP_WHILE_112_C(BOOST_PP_BOOL(p(113, s)), p, o, s)
-# define BOOST_PP_WHILE_113(p, o, s) BOOST_PP_WHILE_113_C(BOOST_PP_BOOL(p(114, s)), p, o, s)
-# define BOOST_PP_WHILE_114(p, o, s) BOOST_PP_WHILE_114_C(BOOST_PP_BOOL(p(115, s)), p, o, s)
-# define BOOST_PP_WHILE_115(p, o, s) BOOST_PP_WHILE_115_C(BOOST_PP_BOOL(p(116, s)), p, o, s)
-# define BOOST_PP_WHILE_116(p, o, s) BOOST_PP_WHILE_116_C(BOOST_PP_BOOL(p(117, s)), p, o, s)
-# define BOOST_PP_WHILE_117(p, o, s) BOOST_PP_WHILE_117_C(BOOST_PP_BOOL(p(118, s)), p, o, s)
-# define BOOST_PP_WHILE_118(p, o, s) BOOST_PP_WHILE_118_C(BOOST_PP_BOOL(p(119, s)), p, o, s)
-# define BOOST_PP_WHILE_119(p, o, s) BOOST_PP_WHILE_119_C(BOOST_PP_BOOL(p(120, s)), p, o, s)
-# define BOOST_PP_WHILE_120(p, o, s) BOOST_PP_WHILE_120_C(BOOST_PP_BOOL(p(121, s)), p, o, s)
-# define BOOST_PP_WHILE_121(p, o, s) BOOST_PP_WHILE_121_C(BOOST_PP_BOOL(p(122, s)), p, o, s)
-# define BOOST_PP_WHILE_122(p, o, s) BOOST_PP_WHILE_122_C(BOOST_PP_BOOL(p(123, s)), p, o, s)
-# define BOOST_PP_WHILE_123(p, o, s) BOOST_PP_WHILE_123_C(BOOST_PP_BOOL(p(124, s)), p, o, s)
-# define BOOST_PP_WHILE_124(p, o, s) BOOST_PP_WHILE_124_C(BOOST_PP_BOOL(p(125, s)), p, o, s)
-# define BOOST_PP_WHILE_125(p, o, s) BOOST_PP_WHILE_125_C(BOOST_PP_BOOL(p(126, s)), p, o, s)
-# define BOOST_PP_WHILE_126(p, o, s) BOOST_PP_WHILE_126_C(BOOST_PP_BOOL(p(127, s)), p, o, s)
-# define BOOST_PP_WHILE_127(p, o, s) BOOST_PP_WHILE_127_C(BOOST_PP_BOOL(p(128, s)), p, o, s)
-# define BOOST_PP_WHILE_128(p, o, s) BOOST_PP_WHILE_128_C(BOOST_PP_BOOL(p(129, s)), p, o, s)
-# define BOOST_PP_WHILE_129(p, o, s) BOOST_PP_WHILE_129_C(BOOST_PP_BOOL(p(130, s)), p, o, s)
-# define BOOST_PP_WHILE_130(p, o, s) BOOST_PP_WHILE_130_C(BOOST_PP_BOOL(p(131, s)), p, o, s)
-# define BOOST_PP_WHILE_131(p, o, s) BOOST_PP_WHILE_131_C(BOOST_PP_BOOL(p(132, s)), p, o, s)
-# define BOOST_PP_WHILE_132(p, o, s) BOOST_PP_WHILE_132_C(BOOST_PP_BOOL(p(133, s)), p, o, s)
-# define BOOST_PP_WHILE_133(p, o, s) BOOST_PP_WHILE_133_C(BOOST_PP_BOOL(p(134, s)), p, o, s)
-# define BOOST_PP_WHILE_134(p, o, s) BOOST_PP_WHILE_134_C(BOOST_PP_BOOL(p(135, s)), p, o, s)
-# define BOOST_PP_WHILE_135(p, o, s) BOOST_PP_WHILE_135_C(BOOST_PP_BOOL(p(136, s)), p, o, s)
-# define BOOST_PP_WHILE_136(p, o, s) BOOST_PP_WHILE_136_C(BOOST_PP_BOOL(p(137, s)), p, o, s)
-# define BOOST_PP_WHILE_137(p, o, s) BOOST_PP_WHILE_137_C(BOOST_PP_BOOL(p(138, s)), p, o, s)
-# define BOOST_PP_WHILE_138(p, o, s) BOOST_PP_WHILE_138_C(BOOST_PP_BOOL(p(139, s)), p, o, s)
-# define BOOST_PP_WHILE_139(p, o, s) BOOST_PP_WHILE_139_C(BOOST_PP_BOOL(p(140, s)), p, o, s)
-# define BOOST_PP_WHILE_140(p, o, s) BOOST_PP_WHILE_140_C(BOOST_PP_BOOL(p(141, s)), p, o, s)
-# define BOOST_PP_WHILE_141(p, o, s) BOOST_PP_WHILE_141_C(BOOST_PP_BOOL(p(142, s)), p, o, s)
-# define BOOST_PP_WHILE_142(p, o, s) BOOST_PP_WHILE_142_C(BOOST_PP_BOOL(p(143, s)), p, o, s)
-# define BOOST_PP_WHILE_143(p, o, s) BOOST_PP_WHILE_143_C(BOOST_PP_BOOL(p(144, s)), p, o, s)
-# define BOOST_PP_WHILE_144(p, o, s) BOOST_PP_WHILE_144_C(BOOST_PP_BOOL(p(145, s)), p, o, s)
-# define BOOST_PP_WHILE_145(p, o, s) BOOST_PP_WHILE_145_C(BOOST_PP_BOOL(p(146, s)), p, o, s)
-# define BOOST_PP_WHILE_146(p, o, s) BOOST_PP_WHILE_146_C(BOOST_PP_BOOL(p(147, s)), p, o, s)
-# define BOOST_PP_WHILE_147(p, o, s) BOOST_PP_WHILE_147_C(BOOST_PP_BOOL(p(148, s)), p, o, s)
-# define BOOST_PP_WHILE_148(p, o, s) BOOST_PP_WHILE_148_C(BOOST_PP_BOOL(p(149, s)), p, o, s)
-# define BOOST_PP_WHILE_149(p, o, s) BOOST_PP_WHILE_149_C(BOOST_PP_BOOL(p(150, s)), p, o, s)
-# define BOOST_PP_WHILE_150(p, o, s) BOOST_PP_WHILE_150_C(BOOST_PP_BOOL(p(151, s)), p, o, s)
-# define BOOST_PP_WHILE_151(p, o, s) BOOST_PP_WHILE_151_C(BOOST_PP_BOOL(p(152, s)), p, o, s)
-# define BOOST_PP_WHILE_152(p, o, s) BOOST_PP_WHILE_152_C(BOOST_PP_BOOL(p(153, s)), p, o, s)
-# define BOOST_PP_WHILE_153(p, o, s) BOOST_PP_WHILE_153_C(BOOST_PP_BOOL(p(154, s)), p, o, s)
-# define BOOST_PP_WHILE_154(p, o, s) BOOST_PP_WHILE_154_C(BOOST_PP_BOOL(p(155, s)), p, o, s)
-# define BOOST_PP_WHILE_155(p, o, s) BOOST_PP_WHILE_155_C(BOOST_PP_BOOL(p(156, s)), p, o, s)
-# define BOOST_PP_WHILE_156(p, o, s) BOOST_PP_WHILE_156_C(BOOST_PP_BOOL(p(157, s)), p, o, s)
-# define BOOST_PP_WHILE_157(p, o, s) BOOST_PP_WHILE_157_C(BOOST_PP_BOOL(p(158, s)), p, o, s)
-# define BOOST_PP_WHILE_158(p, o, s) BOOST_PP_WHILE_158_C(BOOST_PP_BOOL(p(159, s)), p, o, s)
-# define BOOST_PP_WHILE_159(p, o, s) BOOST_PP_WHILE_159_C(BOOST_PP_BOOL(p(160, s)), p, o, s)
-# define BOOST_PP_WHILE_160(p, o, s) BOOST_PP_WHILE_160_C(BOOST_PP_BOOL(p(161, s)), p, o, s)
-# define BOOST_PP_WHILE_161(p, o, s) BOOST_PP_WHILE_161_C(BOOST_PP_BOOL(p(162, s)), p, o, s)
-# define BOOST_PP_WHILE_162(p, o, s) BOOST_PP_WHILE_162_C(BOOST_PP_BOOL(p(163, s)), p, o, s)
-# define BOOST_PP_WHILE_163(p, o, s) BOOST_PP_WHILE_163_C(BOOST_PP_BOOL(p(164, s)), p, o, s)
-# define BOOST_PP_WHILE_164(p, o, s) BOOST_PP_WHILE_164_C(BOOST_PP_BOOL(p(165, s)), p, o, s)
-# define BOOST_PP_WHILE_165(p, o, s) BOOST_PP_WHILE_165_C(BOOST_PP_BOOL(p(166, s)), p, o, s)
-# define BOOST_PP_WHILE_166(p, o, s) BOOST_PP_WHILE_166_C(BOOST_PP_BOOL(p(167, s)), p, o, s)
-# define BOOST_PP_WHILE_167(p, o, s) BOOST_PP_WHILE_167_C(BOOST_PP_BOOL(p(168, s)), p, o, s)
-# define BOOST_PP_WHILE_168(p, o, s) BOOST_PP_WHILE_168_C(BOOST_PP_BOOL(p(169, s)), p, o, s)
-# define BOOST_PP_WHILE_169(p, o, s) BOOST_PP_WHILE_169_C(BOOST_PP_BOOL(p(170, s)), p, o, s)
-# define BOOST_PP_WHILE_170(p, o, s) BOOST_PP_WHILE_170_C(BOOST_PP_BOOL(p(171, s)), p, o, s)
-# define BOOST_PP_WHILE_171(p, o, s) BOOST_PP_WHILE_171_C(BOOST_PP_BOOL(p(172, s)), p, o, s)
-# define BOOST_PP_WHILE_172(p, o, s) BOOST_PP_WHILE_172_C(BOOST_PP_BOOL(p(173, s)), p, o, s)
-# define BOOST_PP_WHILE_173(p, o, s) BOOST_PP_WHILE_173_C(BOOST_PP_BOOL(p(174, s)), p, o, s)
-# define BOOST_PP_WHILE_174(p, o, s) BOOST_PP_WHILE_174_C(BOOST_PP_BOOL(p(175, s)), p, o, s)
-# define BOOST_PP_WHILE_175(p, o, s) BOOST_PP_WHILE_175_C(BOOST_PP_BOOL(p(176, s)), p, o, s)
-# define BOOST_PP_WHILE_176(p, o, s) BOOST_PP_WHILE_176_C(BOOST_PP_BOOL(p(177, s)), p, o, s)
-# define BOOST_PP_WHILE_177(p, o, s) BOOST_PP_WHILE_177_C(BOOST_PP_BOOL(p(178, s)), p, o, s)
-# define BOOST_PP_WHILE_178(p, o, s) BOOST_PP_WHILE_178_C(BOOST_PP_BOOL(p(179, s)), p, o, s)
-# define BOOST_PP_WHILE_179(p, o, s) BOOST_PP_WHILE_179_C(BOOST_PP_BOOL(p(180, s)), p, o, s)
-# define BOOST_PP_WHILE_180(p, o, s) BOOST_PP_WHILE_180_C(BOOST_PP_BOOL(p(181, s)), p, o, s)
-# define BOOST_PP_WHILE_181(p, o, s) BOOST_PP_WHILE_181_C(BOOST_PP_BOOL(p(182, s)), p, o, s)
-# define BOOST_PP_WHILE_182(p, o, s) BOOST_PP_WHILE_182_C(BOOST_PP_BOOL(p(183, s)), p, o, s)
-# define BOOST_PP_WHILE_183(p, o, s) BOOST_PP_WHILE_183_C(BOOST_PP_BOOL(p(184, s)), p, o, s)
-# define BOOST_PP_WHILE_184(p, o, s) BOOST_PP_WHILE_184_C(BOOST_PP_BOOL(p(185, s)), p, o, s)
-# define BOOST_PP_WHILE_185(p, o, s) BOOST_PP_WHILE_185_C(BOOST_PP_BOOL(p(186, s)), p, o, s)
-# define BOOST_PP_WHILE_186(p, o, s) BOOST_PP_WHILE_186_C(BOOST_PP_BOOL(p(187, s)), p, o, s)
-# define BOOST_PP_WHILE_187(p, o, s) BOOST_PP_WHILE_187_C(BOOST_PP_BOOL(p(188, s)), p, o, s)
-# define BOOST_PP_WHILE_188(p, o, s) BOOST_PP_WHILE_188_C(BOOST_PP_BOOL(p(189, s)), p, o, s)
-# define BOOST_PP_WHILE_189(p, o, s) BOOST_PP_WHILE_189_C(BOOST_PP_BOOL(p(190, s)), p, o, s)
-# define BOOST_PP_WHILE_190(p, o, s) BOOST_PP_WHILE_190_C(BOOST_PP_BOOL(p(191, s)), p, o, s)
-# define BOOST_PP_WHILE_191(p, o, s) BOOST_PP_WHILE_191_C(BOOST_PP_BOOL(p(192, s)), p, o, s)
-# define BOOST_PP_WHILE_192(p, o, s) BOOST_PP_WHILE_192_C(BOOST_PP_BOOL(p(193, s)), p, o, s)
-# define BOOST_PP_WHILE_193(p, o, s) BOOST_PP_WHILE_193_C(BOOST_PP_BOOL(p(194, s)), p, o, s)
-# define BOOST_PP_WHILE_194(p, o, s) BOOST_PP_WHILE_194_C(BOOST_PP_BOOL(p(195, s)), p, o, s)
-# define BOOST_PP_WHILE_195(p, o, s) BOOST_PP_WHILE_195_C(BOOST_PP_BOOL(p(196, s)), p, o, s)
-# define BOOST_PP_WHILE_196(p, o, s) BOOST_PP_WHILE_196_C(BOOST_PP_BOOL(p(197, s)), p, o, s)
-# define BOOST_PP_WHILE_197(p, o, s) BOOST_PP_WHILE_197_C(BOOST_PP_BOOL(p(198, s)), p, o, s)
-# define BOOST_PP_WHILE_198(p, o, s) BOOST_PP_WHILE_198_C(BOOST_PP_BOOL(p(199, s)), p, o, s)
-# define BOOST_PP_WHILE_199(p, o, s) BOOST_PP_WHILE_199_C(BOOST_PP_BOOL(p(200, s)), p, o, s)
-# define BOOST_PP_WHILE_200(p, o, s) BOOST_PP_WHILE_200_C(BOOST_PP_BOOL(p(201, s)), p, o, s)
-# define BOOST_PP_WHILE_201(p, o, s) BOOST_PP_WHILE_201_C(BOOST_PP_BOOL(p(202, s)), p, o, s)
-# define BOOST_PP_WHILE_202(p, o, s) BOOST_PP_WHILE_202_C(BOOST_PP_BOOL(p(203, s)), p, o, s)
-# define BOOST_PP_WHILE_203(p, o, s) BOOST_PP_WHILE_203_C(BOOST_PP_BOOL(p(204, s)), p, o, s)
-# define BOOST_PP_WHILE_204(p, o, s) BOOST_PP_WHILE_204_C(BOOST_PP_BOOL(p(205, s)), p, o, s)
-# define BOOST_PP_WHILE_205(p, o, s) BOOST_PP_WHILE_205_C(BOOST_PP_BOOL(p(206, s)), p, o, s)
-# define BOOST_PP_WHILE_206(p, o, s) BOOST_PP_WHILE_206_C(BOOST_PP_BOOL(p(207, s)), p, o, s)
-# define BOOST_PP_WHILE_207(p, o, s) BOOST_PP_WHILE_207_C(BOOST_PP_BOOL(p(208, s)), p, o, s)
-# define BOOST_PP_WHILE_208(p, o, s) BOOST_PP_WHILE_208_C(BOOST_PP_BOOL(p(209, s)), p, o, s)
-# define BOOST_PP_WHILE_209(p, o, s) BOOST_PP_WHILE_209_C(BOOST_PP_BOOL(p(210, s)), p, o, s)
-# define BOOST_PP_WHILE_210(p, o, s) BOOST_PP_WHILE_210_C(BOOST_PP_BOOL(p(211, s)), p, o, s)
-# define BOOST_PP_WHILE_211(p, o, s) BOOST_PP_WHILE_211_C(BOOST_PP_BOOL(p(212, s)), p, o, s)
-# define BOOST_PP_WHILE_212(p, o, s) BOOST_PP_WHILE_212_C(BOOST_PP_BOOL(p(213, s)), p, o, s)
-# define BOOST_PP_WHILE_213(p, o, s) BOOST_PP_WHILE_213_C(BOOST_PP_BOOL(p(214, s)), p, o, s)
-# define BOOST_PP_WHILE_214(p, o, s) BOOST_PP_WHILE_214_C(BOOST_PP_BOOL(p(215, s)), p, o, s)
-# define BOOST_PP_WHILE_215(p, o, s) BOOST_PP_WHILE_215_C(BOOST_PP_BOOL(p(216, s)), p, o, s)
-# define BOOST_PP_WHILE_216(p, o, s) BOOST_PP_WHILE_216_C(BOOST_PP_BOOL(p(217, s)), p, o, s)
-# define BOOST_PP_WHILE_217(p, o, s) BOOST_PP_WHILE_217_C(BOOST_PP_BOOL(p(218, s)), p, o, s)
-# define BOOST_PP_WHILE_218(p, o, s) BOOST_PP_WHILE_218_C(BOOST_PP_BOOL(p(219, s)), p, o, s)
-# define BOOST_PP_WHILE_219(p, o, s) BOOST_PP_WHILE_219_C(BOOST_PP_BOOL(p(220, s)), p, o, s)
-# define BOOST_PP_WHILE_220(p, o, s) BOOST_PP_WHILE_220_C(BOOST_PP_BOOL(p(221, s)), p, o, s)
-# define BOOST_PP_WHILE_221(p, o, s) BOOST_PP_WHILE_221_C(BOOST_PP_BOOL(p(222, s)), p, o, s)
-# define BOOST_PP_WHILE_222(p, o, s) BOOST_PP_WHILE_222_C(BOOST_PP_BOOL(p(223, s)), p, o, s)
-# define BOOST_PP_WHILE_223(p, o, s) BOOST_PP_WHILE_223_C(BOOST_PP_BOOL(p(224, s)), p, o, s)
-# define BOOST_PP_WHILE_224(p, o, s) BOOST_PP_WHILE_224_C(BOOST_PP_BOOL(p(225, s)), p, o, s)
-# define BOOST_PP_WHILE_225(p, o, s) BOOST_PP_WHILE_225_C(BOOST_PP_BOOL(p(226, s)), p, o, s)
-# define BOOST_PP_WHILE_226(p, o, s) BOOST_PP_WHILE_226_C(BOOST_PP_BOOL(p(227, s)), p, o, s)
-# define BOOST_PP_WHILE_227(p, o, s) BOOST_PP_WHILE_227_C(BOOST_PP_BOOL(p(228, s)), p, o, s)
-# define BOOST_PP_WHILE_228(p, o, s) BOOST_PP_WHILE_228_C(BOOST_PP_BOOL(p(229, s)), p, o, s)
-# define BOOST_PP_WHILE_229(p, o, s) BOOST_PP_WHILE_229_C(BOOST_PP_BOOL(p(230, s)), p, o, s)
-# define BOOST_PP_WHILE_230(p, o, s) BOOST_PP_WHILE_230_C(BOOST_PP_BOOL(p(231, s)), p, o, s)
-# define BOOST_PP_WHILE_231(p, o, s) BOOST_PP_WHILE_231_C(BOOST_PP_BOOL(p(232, s)), p, o, s)
-# define BOOST_PP_WHILE_232(p, o, s) BOOST_PP_WHILE_232_C(BOOST_PP_BOOL(p(233, s)), p, o, s)
-# define BOOST_PP_WHILE_233(p, o, s) BOOST_PP_WHILE_233_C(BOOST_PP_BOOL(p(234, s)), p, o, s)
-# define BOOST_PP_WHILE_234(p, o, s) BOOST_PP_WHILE_234_C(BOOST_PP_BOOL(p(235, s)), p, o, s)
-# define BOOST_PP_WHILE_235(p, o, s) BOOST_PP_WHILE_235_C(BOOST_PP_BOOL(p(236, s)), p, o, s)
-# define BOOST_PP_WHILE_236(p, o, s) BOOST_PP_WHILE_236_C(BOOST_PP_BOOL(p(237, s)), p, o, s)
-# define BOOST_PP_WHILE_237(p, o, s) BOOST_PP_WHILE_237_C(BOOST_PP_BOOL(p(238, s)), p, o, s)
-# define BOOST_PP_WHILE_238(p, o, s) BOOST_PP_WHILE_238_C(BOOST_PP_BOOL(p(239, s)), p, o, s)
-# define BOOST_PP_WHILE_239(p, o, s) BOOST_PP_WHILE_239_C(BOOST_PP_BOOL(p(240, s)), p, o, s)
-# define BOOST_PP_WHILE_240(p, o, s) BOOST_PP_WHILE_240_C(BOOST_PP_BOOL(p(241, s)), p, o, s)
-# define BOOST_PP_WHILE_241(p, o, s) BOOST_PP_WHILE_241_C(BOOST_PP_BOOL(p(242, s)), p, o, s)
-# define BOOST_PP_WHILE_242(p, o, s) BOOST_PP_WHILE_242_C(BOOST_PP_BOOL(p(243, s)), p, o, s)
-# define BOOST_PP_WHILE_243(p, o, s) BOOST_PP_WHILE_243_C(BOOST_PP_BOOL(p(244, s)), p, o, s)
-# define BOOST_PP_WHILE_244(p, o, s) BOOST_PP_WHILE_244_C(BOOST_PP_BOOL(p(245, s)), p, o, s)
-# define BOOST_PP_WHILE_245(p, o, s) BOOST_PP_WHILE_245_C(BOOST_PP_BOOL(p(246, s)), p, o, s)
-# define BOOST_PP_WHILE_246(p, o, s) BOOST_PP_WHILE_246_C(BOOST_PP_BOOL(p(247, s)), p, o, s)
-# define BOOST_PP_WHILE_247(p, o, s) BOOST_PP_WHILE_247_C(BOOST_PP_BOOL(p(248, s)), p, o, s)
-# define BOOST_PP_WHILE_248(p, o, s) BOOST_PP_WHILE_248_C(BOOST_PP_BOOL(p(249, s)), p, o, s)
-# define BOOST_PP_WHILE_249(p, o, s) BOOST_PP_WHILE_249_C(BOOST_PP_BOOL(p(250, s)), p, o, s)
-# define BOOST_PP_WHILE_250(p, o, s) BOOST_PP_WHILE_250_C(BOOST_PP_BOOL(p(251, s)), p, o, s)
-# define BOOST_PP_WHILE_251(p, o, s) BOOST_PP_WHILE_251_C(BOOST_PP_BOOL(p(252, s)), p, o, s)
-# define BOOST_PP_WHILE_252(p, o, s) BOOST_PP_WHILE_252_C(BOOST_PP_BOOL(p(253, s)), p, o, s)
-# define BOOST_PP_WHILE_253(p, o, s) BOOST_PP_WHILE_253_C(BOOST_PP_BOOL(p(254, s)), p, o, s)
-# define BOOST_PP_WHILE_254(p, o, s) BOOST_PP_WHILE_254_C(BOOST_PP_BOOL(p(255, s)), p, o, s)
-# define BOOST_PP_WHILE_255(p, o, s) BOOST_PP_WHILE_255_C(BOOST_PP_BOOL(p(256, s)), p, o, s)
-# define BOOST_PP_WHILE_256(p, o, s) BOOST_PP_WHILE_256_C(BOOST_PP_BOOL(p(257, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_1(p, o, s) NDNBOOST_PP_WHILE_1_C(NDNBOOST_PP_BOOL(p(2, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_2(p, o, s) NDNBOOST_PP_WHILE_2_C(NDNBOOST_PP_BOOL(p(3, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_3(p, o, s) NDNBOOST_PP_WHILE_3_C(NDNBOOST_PP_BOOL(p(4, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_4(p, o, s) NDNBOOST_PP_WHILE_4_C(NDNBOOST_PP_BOOL(p(5, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_5(p, o, s) NDNBOOST_PP_WHILE_5_C(NDNBOOST_PP_BOOL(p(6, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_6(p, o, s) NDNBOOST_PP_WHILE_6_C(NDNBOOST_PP_BOOL(p(7, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_7(p, o, s) NDNBOOST_PP_WHILE_7_C(NDNBOOST_PP_BOOL(p(8, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_8(p, o, s) NDNBOOST_PP_WHILE_8_C(NDNBOOST_PP_BOOL(p(9, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_9(p, o, s) NDNBOOST_PP_WHILE_9_C(NDNBOOST_PP_BOOL(p(10, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_10(p, o, s) NDNBOOST_PP_WHILE_10_C(NDNBOOST_PP_BOOL(p(11, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_11(p, o, s) NDNBOOST_PP_WHILE_11_C(NDNBOOST_PP_BOOL(p(12, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_12(p, o, s) NDNBOOST_PP_WHILE_12_C(NDNBOOST_PP_BOOL(p(13, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_13(p, o, s) NDNBOOST_PP_WHILE_13_C(NDNBOOST_PP_BOOL(p(14, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_14(p, o, s) NDNBOOST_PP_WHILE_14_C(NDNBOOST_PP_BOOL(p(15, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_15(p, o, s) NDNBOOST_PP_WHILE_15_C(NDNBOOST_PP_BOOL(p(16, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_16(p, o, s) NDNBOOST_PP_WHILE_16_C(NDNBOOST_PP_BOOL(p(17, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_17(p, o, s) NDNBOOST_PP_WHILE_17_C(NDNBOOST_PP_BOOL(p(18, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_18(p, o, s) NDNBOOST_PP_WHILE_18_C(NDNBOOST_PP_BOOL(p(19, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_19(p, o, s) NDNBOOST_PP_WHILE_19_C(NDNBOOST_PP_BOOL(p(20, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_20(p, o, s) NDNBOOST_PP_WHILE_20_C(NDNBOOST_PP_BOOL(p(21, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_21(p, o, s) NDNBOOST_PP_WHILE_21_C(NDNBOOST_PP_BOOL(p(22, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_22(p, o, s) NDNBOOST_PP_WHILE_22_C(NDNBOOST_PP_BOOL(p(23, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_23(p, o, s) NDNBOOST_PP_WHILE_23_C(NDNBOOST_PP_BOOL(p(24, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_24(p, o, s) NDNBOOST_PP_WHILE_24_C(NDNBOOST_PP_BOOL(p(25, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_25(p, o, s) NDNBOOST_PP_WHILE_25_C(NDNBOOST_PP_BOOL(p(26, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_26(p, o, s) NDNBOOST_PP_WHILE_26_C(NDNBOOST_PP_BOOL(p(27, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_27(p, o, s) NDNBOOST_PP_WHILE_27_C(NDNBOOST_PP_BOOL(p(28, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_28(p, o, s) NDNBOOST_PP_WHILE_28_C(NDNBOOST_PP_BOOL(p(29, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_29(p, o, s) NDNBOOST_PP_WHILE_29_C(NDNBOOST_PP_BOOL(p(30, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_30(p, o, s) NDNBOOST_PP_WHILE_30_C(NDNBOOST_PP_BOOL(p(31, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_31(p, o, s) NDNBOOST_PP_WHILE_31_C(NDNBOOST_PP_BOOL(p(32, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_32(p, o, s) NDNBOOST_PP_WHILE_32_C(NDNBOOST_PP_BOOL(p(33, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_33(p, o, s) NDNBOOST_PP_WHILE_33_C(NDNBOOST_PP_BOOL(p(34, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_34(p, o, s) NDNBOOST_PP_WHILE_34_C(NDNBOOST_PP_BOOL(p(35, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_35(p, o, s) NDNBOOST_PP_WHILE_35_C(NDNBOOST_PP_BOOL(p(36, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_36(p, o, s) NDNBOOST_PP_WHILE_36_C(NDNBOOST_PP_BOOL(p(37, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_37(p, o, s) NDNBOOST_PP_WHILE_37_C(NDNBOOST_PP_BOOL(p(38, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_38(p, o, s) NDNBOOST_PP_WHILE_38_C(NDNBOOST_PP_BOOL(p(39, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_39(p, o, s) NDNBOOST_PP_WHILE_39_C(NDNBOOST_PP_BOOL(p(40, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_40(p, o, s) NDNBOOST_PP_WHILE_40_C(NDNBOOST_PP_BOOL(p(41, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_41(p, o, s) NDNBOOST_PP_WHILE_41_C(NDNBOOST_PP_BOOL(p(42, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_42(p, o, s) NDNBOOST_PP_WHILE_42_C(NDNBOOST_PP_BOOL(p(43, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_43(p, o, s) NDNBOOST_PP_WHILE_43_C(NDNBOOST_PP_BOOL(p(44, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_44(p, o, s) NDNBOOST_PP_WHILE_44_C(NDNBOOST_PP_BOOL(p(45, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_45(p, o, s) NDNBOOST_PP_WHILE_45_C(NDNBOOST_PP_BOOL(p(46, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_46(p, o, s) NDNBOOST_PP_WHILE_46_C(NDNBOOST_PP_BOOL(p(47, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_47(p, o, s) NDNBOOST_PP_WHILE_47_C(NDNBOOST_PP_BOOL(p(48, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_48(p, o, s) NDNBOOST_PP_WHILE_48_C(NDNBOOST_PP_BOOL(p(49, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_49(p, o, s) NDNBOOST_PP_WHILE_49_C(NDNBOOST_PP_BOOL(p(50, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_50(p, o, s) NDNBOOST_PP_WHILE_50_C(NDNBOOST_PP_BOOL(p(51, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_51(p, o, s) NDNBOOST_PP_WHILE_51_C(NDNBOOST_PP_BOOL(p(52, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_52(p, o, s) NDNBOOST_PP_WHILE_52_C(NDNBOOST_PP_BOOL(p(53, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_53(p, o, s) NDNBOOST_PP_WHILE_53_C(NDNBOOST_PP_BOOL(p(54, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_54(p, o, s) NDNBOOST_PP_WHILE_54_C(NDNBOOST_PP_BOOL(p(55, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_55(p, o, s) NDNBOOST_PP_WHILE_55_C(NDNBOOST_PP_BOOL(p(56, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_56(p, o, s) NDNBOOST_PP_WHILE_56_C(NDNBOOST_PP_BOOL(p(57, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_57(p, o, s) NDNBOOST_PP_WHILE_57_C(NDNBOOST_PP_BOOL(p(58, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_58(p, o, s) NDNBOOST_PP_WHILE_58_C(NDNBOOST_PP_BOOL(p(59, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_59(p, o, s) NDNBOOST_PP_WHILE_59_C(NDNBOOST_PP_BOOL(p(60, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_60(p, o, s) NDNBOOST_PP_WHILE_60_C(NDNBOOST_PP_BOOL(p(61, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_61(p, o, s) NDNBOOST_PP_WHILE_61_C(NDNBOOST_PP_BOOL(p(62, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_62(p, o, s) NDNBOOST_PP_WHILE_62_C(NDNBOOST_PP_BOOL(p(63, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_63(p, o, s) NDNBOOST_PP_WHILE_63_C(NDNBOOST_PP_BOOL(p(64, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_64(p, o, s) NDNBOOST_PP_WHILE_64_C(NDNBOOST_PP_BOOL(p(65, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_65(p, o, s) NDNBOOST_PP_WHILE_65_C(NDNBOOST_PP_BOOL(p(66, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_66(p, o, s) NDNBOOST_PP_WHILE_66_C(NDNBOOST_PP_BOOL(p(67, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_67(p, o, s) NDNBOOST_PP_WHILE_67_C(NDNBOOST_PP_BOOL(p(68, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_68(p, o, s) NDNBOOST_PP_WHILE_68_C(NDNBOOST_PP_BOOL(p(69, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_69(p, o, s) NDNBOOST_PP_WHILE_69_C(NDNBOOST_PP_BOOL(p(70, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_70(p, o, s) NDNBOOST_PP_WHILE_70_C(NDNBOOST_PP_BOOL(p(71, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_71(p, o, s) NDNBOOST_PP_WHILE_71_C(NDNBOOST_PP_BOOL(p(72, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_72(p, o, s) NDNBOOST_PP_WHILE_72_C(NDNBOOST_PP_BOOL(p(73, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_73(p, o, s) NDNBOOST_PP_WHILE_73_C(NDNBOOST_PP_BOOL(p(74, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_74(p, o, s) NDNBOOST_PP_WHILE_74_C(NDNBOOST_PP_BOOL(p(75, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_75(p, o, s) NDNBOOST_PP_WHILE_75_C(NDNBOOST_PP_BOOL(p(76, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_76(p, o, s) NDNBOOST_PP_WHILE_76_C(NDNBOOST_PP_BOOL(p(77, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_77(p, o, s) NDNBOOST_PP_WHILE_77_C(NDNBOOST_PP_BOOL(p(78, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_78(p, o, s) NDNBOOST_PP_WHILE_78_C(NDNBOOST_PP_BOOL(p(79, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_79(p, o, s) NDNBOOST_PP_WHILE_79_C(NDNBOOST_PP_BOOL(p(80, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_80(p, o, s) NDNBOOST_PP_WHILE_80_C(NDNBOOST_PP_BOOL(p(81, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_81(p, o, s) NDNBOOST_PP_WHILE_81_C(NDNBOOST_PP_BOOL(p(82, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_82(p, o, s) NDNBOOST_PP_WHILE_82_C(NDNBOOST_PP_BOOL(p(83, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_83(p, o, s) NDNBOOST_PP_WHILE_83_C(NDNBOOST_PP_BOOL(p(84, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_84(p, o, s) NDNBOOST_PP_WHILE_84_C(NDNBOOST_PP_BOOL(p(85, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_85(p, o, s) NDNBOOST_PP_WHILE_85_C(NDNBOOST_PP_BOOL(p(86, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_86(p, o, s) NDNBOOST_PP_WHILE_86_C(NDNBOOST_PP_BOOL(p(87, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_87(p, o, s) NDNBOOST_PP_WHILE_87_C(NDNBOOST_PP_BOOL(p(88, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_88(p, o, s) NDNBOOST_PP_WHILE_88_C(NDNBOOST_PP_BOOL(p(89, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_89(p, o, s) NDNBOOST_PP_WHILE_89_C(NDNBOOST_PP_BOOL(p(90, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_90(p, o, s) NDNBOOST_PP_WHILE_90_C(NDNBOOST_PP_BOOL(p(91, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_91(p, o, s) NDNBOOST_PP_WHILE_91_C(NDNBOOST_PP_BOOL(p(92, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_92(p, o, s) NDNBOOST_PP_WHILE_92_C(NDNBOOST_PP_BOOL(p(93, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_93(p, o, s) NDNBOOST_PP_WHILE_93_C(NDNBOOST_PP_BOOL(p(94, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_94(p, o, s) NDNBOOST_PP_WHILE_94_C(NDNBOOST_PP_BOOL(p(95, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_95(p, o, s) NDNBOOST_PP_WHILE_95_C(NDNBOOST_PP_BOOL(p(96, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_96(p, o, s) NDNBOOST_PP_WHILE_96_C(NDNBOOST_PP_BOOL(p(97, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_97(p, o, s) NDNBOOST_PP_WHILE_97_C(NDNBOOST_PP_BOOL(p(98, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_98(p, o, s) NDNBOOST_PP_WHILE_98_C(NDNBOOST_PP_BOOL(p(99, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_99(p, o, s) NDNBOOST_PP_WHILE_99_C(NDNBOOST_PP_BOOL(p(100, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_100(p, o, s) NDNBOOST_PP_WHILE_100_C(NDNBOOST_PP_BOOL(p(101, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_101(p, o, s) NDNBOOST_PP_WHILE_101_C(NDNBOOST_PP_BOOL(p(102, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_102(p, o, s) NDNBOOST_PP_WHILE_102_C(NDNBOOST_PP_BOOL(p(103, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_103(p, o, s) NDNBOOST_PP_WHILE_103_C(NDNBOOST_PP_BOOL(p(104, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_104(p, o, s) NDNBOOST_PP_WHILE_104_C(NDNBOOST_PP_BOOL(p(105, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_105(p, o, s) NDNBOOST_PP_WHILE_105_C(NDNBOOST_PP_BOOL(p(106, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_106(p, o, s) NDNBOOST_PP_WHILE_106_C(NDNBOOST_PP_BOOL(p(107, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_107(p, o, s) NDNBOOST_PP_WHILE_107_C(NDNBOOST_PP_BOOL(p(108, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_108(p, o, s) NDNBOOST_PP_WHILE_108_C(NDNBOOST_PP_BOOL(p(109, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_109(p, o, s) NDNBOOST_PP_WHILE_109_C(NDNBOOST_PP_BOOL(p(110, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_110(p, o, s) NDNBOOST_PP_WHILE_110_C(NDNBOOST_PP_BOOL(p(111, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_111(p, o, s) NDNBOOST_PP_WHILE_111_C(NDNBOOST_PP_BOOL(p(112, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_112(p, o, s) NDNBOOST_PP_WHILE_112_C(NDNBOOST_PP_BOOL(p(113, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_113(p, o, s) NDNBOOST_PP_WHILE_113_C(NDNBOOST_PP_BOOL(p(114, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_114(p, o, s) NDNBOOST_PP_WHILE_114_C(NDNBOOST_PP_BOOL(p(115, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_115(p, o, s) NDNBOOST_PP_WHILE_115_C(NDNBOOST_PP_BOOL(p(116, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_116(p, o, s) NDNBOOST_PP_WHILE_116_C(NDNBOOST_PP_BOOL(p(117, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_117(p, o, s) NDNBOOST_PP_WHILE_117_C(NDNBOOST_PP_BOOL(p(118, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_118(p, o, s) NDNBOOST_PP_WHILE_118_C(NDNBOOST_PP_BOOL(p(119, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_119(p, o, s) NDNBOOST_PP_WHILE_119_C(NDNBOOST_PP_BOOL(p(120, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_120(p, o, s) NDNBOOST_PP_WHILE_120_C(NDNBOOST_PP_BOOL(p(121, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_121(p, o, s) NDNBOOST_PP_WHILE_121_C(NDNBOOST_PP_BOOL(p(122, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_122(p, o, s) NDNBOOST_PP_WHILE_122_C(NDNBOOST_PP_BOOL(p(123, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_123(p, o, s) NDNBOOST_PP_WHILE_123_C(NDNBOOST_PP_BOOL(p(124, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_124(p, o, s) NDNBOOST_PP_WHILE_124_C(NDNBOOST_PP_BOOL(p(125, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_125(p, o, s) NDNBOOST_PP_WHILE_125_C(NDNBOOST_PP_BOOL(p(126, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_126(p, o, s) NDNBOOST_PP_WHILE_126_C(NDNBOOST_PP_BOOL(p(127, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_127(p, o, s) NDNBOOST_PP_WHILE_127_C(NDNBOOST_PP_BOOL(p(128, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_128(p, o, s) NDNBOOST_PP_WHILE_128_C(NDNBOOST_PP_BOOL(p(129, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_129(p, o, s) NDNBOOST_PP_WHILE_129_C(NDNBOOST_PP_BOOL(p(130, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_130(p, o, s) NDNBOOST_PP_WHILE_130_C(NDNBOOST_PP_BOOL(p(131, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_131(p, o, s) NDNBOOST_PP_WHILE_131_C(NDNBOOST_PP_BOOL(p(132, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_132(p, o, s) NDNBOOST_PP_WHILE_132_C(NDNBOOST_PP_BOOL(p(133, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_133(p, o, s) NDNBOOST_PP_WHILE_133_C(NDNBOOST_PP_BOOL(p(134, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_134(p, o, s) NDNBOOST_PP_WHILE_134_C(NDNBOOST_PP_BOOL(p(135, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_135(p, o, s) NDNBOOST_PP_WHILE_135_C(NDNBOOST_PP_BOOL(p(136, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_136(p, o, s) NDNBOOST_PP_WHILE_136_C(NDNBOOST_PP_BOOL(p(137, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_137(p, o, s) NDNBOOST_PP_WHILE_137_C(NDNBOOST_PP_BOOL(p(138, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_138(p, o, s) NDNBOOST_PP_WHILE_138_C(NDNBOOST_PP_BOOL(p(139, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_139(p, o, s) NDNBOOST_PP_WHILE_139_C(NDNBOOST_PP_BOOL(p(140, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_140(p, o, s) NDNBOOST_PP_WHILE_140_C(NDNBOOST_PP_BOOL(p(141, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_141(p, o, s) NDNBOOST_PP_WHILE_141_C(NDNBOOST_PP_BOOL(p(142, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_142(p, o, s) NDNBOOST_PP_WHILE_142_C(NDNBOOST_PP_BOOL(p(143, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_143(p, o, s) NDNBOOST_PP_WHILE_143_C(NDNBOOST_PP_BOOL(p(144, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_144(p, o, s) NDNBOOST_PP_WHILE_144_C(NDNBOOST_PP_BOOL(p(145, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_145(p, o, s) NDNBOOST_PP_WHILE_145_C(NDNBOOST_PP_BOOL(p(146, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_146(p, o, s) NDNBOOST_PP_WHILE_146_C(NDNBOOST_PP_BOOL(p(147, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_147(p, o, s) NDNBOOST_PP_WHILE_147_C(NDNBOOST_PP_BOOL(p(148, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_148(p, o, s) NDNBOOST_PP_WHILE_148_C(NDNBOOST_PP_BOOL(p(149, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_149(p, o, s) NDNBOOST_PP_WHILE_149_C(NDNBOOST_PP_BOOL(p(150, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_150(p, o, s) NDNBOOST_PP_WHILE_150_C(NDNBOOST_PP_BOOL(p(151, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_151(p, o, s) NDNBOOST_PP_WHILE_151_C(NDNBOOST_PP_BOOL(p(152, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_152(p, o, s) NDNBOOST_PP_WHILE_152_C(NDNBOOST_PP_BOOL(p(153, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_153(p, o, s) NDNBOOST_PP_WHILE_153_C(NDNBOOST_PP_BOOL(p(154, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_154(p, o, s) NDNBOOST_PP_WHILE_154_C(NDNBOOST_PP_BOOL(p(155, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_155(p, o, s) NDNBOOST_PP_WHILE_155_C(NDNBOOST_PP_BOOL(p(156, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_156(p, o, s) NDNBOOST_PP_WHILE_156_C(NDNBOOST_PP_BOOL(p(157, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_157(p, o, s) NDNBOOST_PP_WHILE_157_C(NDNBOOST_PP_BOOL(p(158, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_158(p, o, s) NDNBOOST_PP_WHILE_158_C(NDNBOOST_PP_BOOL(p(159, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_159(p, o, s) NDNBOOST_PP_WHILE_159_C(NDNBOOST_PP_BOOL(p(160, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_160(p, o, s) NDNBOOST_PP_WHILE_160_C(NDNBOOST_PP_BOOL(p(161, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_161(p, o, s) NDNBOOST_PP_WHILE_161_C(NDNBOOST_PP_BOOL(p(162, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_162(p, o, s) NDNBOOST_PP_WHILE_162_C(NDNBOOST_PP_BOOL(p(163, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_163(p, o, s) NDNBOOST_PP_WHILE_163_C(NDNBOOST_PP_BOOL(p(164, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_164(p, o, s) NDNBOOST_PP_WHILE_164_C(NDNBOOST_PP_BOOL(p(165, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_165(p, o, s) NDNBOOST_PP_WHILE_165_C(NDNBOOST_PP_BOOL(p(166, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_166(p, o, s) NDNBOOST_PP_WHILE_166_C(NDNBOOST_PP_BOOL(p(167, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_167(p, o, s) NDNBOOST_PP_WHILE_167_C(NDNBOOST_PP_BOOL(p(168, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_168(p, o, s) NDNBOOST_PP_WHILE_168_C(NDNBOOST_PP_BOOL(p(169, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_169(p, o, s) NDNBOOST_PP_WHILE_169_C(NDNBOOST_PP_BOOL(p(170, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_170(p, o, s) NDNBOOST_PP_WHILE_170_C(NDNBOOST_PP_BOOL(p(171, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_171(p, o, s) NDNBOOST_PP_WHILE_171_C(NDNBOOST_PP_BOOL(p(172, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_172(p, o, s) NDNBOOST_PP_WHILE_172_C(NDNBOOST_PP_BOOL(p(173, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_173(p, o, s) NDNBOOST_PP_WHILE_173_C(NDNBOOST_PP_BOOL(p(174, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_174(p, o, s) NDNBOOST_PP_WHILE_174_C(NDNBOOST_PP_BOOL(p(175, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_175(p, o, s) NDNBOOST_PP_WHILE_175_C(NDNBOOST_PP_BOOL(p(176, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_176(p, o, s) NDNBOOST_PP_WHILE_176_C(NDNBOOST_PP_BOOL(p(177, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_177(p, o, s) NDNBOOST_PP_WHILE_177_C(NDNBOOST_PP_BOOL(p(178, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_178(p, o, s) NDNBOOST_PP_WHILE_178_C(NDNBOOST_PP_BOOL(p(179, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_179(p, o, s) NDNBOOST_PP_WHILE_179_C(NDNBOOST_PP_BOOL(p(180, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_180(p, o, s) NDNBOOST_PP_WHILE_180_C(NDNBOOST_PP_BOOL(p(181, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_181(p, o, s) NDNBOOST_PP_WHILE_181_C(NDNBOOST_PP_BOOL(p(182, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_182(p, o, s) NDNBOOST_PP_WHILE_182_C(NDNBOOST_PP_BOOL(p(183, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_183(p, o, s) NDNBOOST_PP_WHILE_183_C(NDNBOOST_PP_BOOL(p(184, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_184(p, o, s) NDNBOOST_PP_WHILE_184_C(NDNBOOST_PP_BOOL(p(185, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_185(p, o, s) NDNBOOST_PP_WHILE_185_C(NDNBOOST_PP_BOOL(p(186, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_186(p, o, s) NDNBOOST_PP_WHILE_186_C(NDNBOOST_PP_BOOL(p(187, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_187(p, o, s) NDNBOOST_PP_WHILE_187_C(NDNBOOST_PP_BOOL(p(188, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_188(p, o, s) NDNBOOST_PP_WHILE_188_C(NDNBOOST_PP_BOOL(p(189, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_189(p, o, s) NDNBOOST_PP_WHILE_189_C(NDNBOOST_PP_BOOL(p(190, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_190(p, o, s) NDNBOOST_PP_WHILE_190_C(NDNBOOST_PP_BOOL(p(191, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_191(p, o, s) NDNBOOST_PP_WHILE_191_C(NDNBOOST_PP_BOOL(p(192, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_192(p, o, s) NDNBOOST_PP_WHILE_192_C(NDNBOOST_PP_BOOL(p(193, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_193(p, o, s) NDNBOOST_PP_WHILE_193_C(NDNBOOST_PP_BOOL(p(194, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_194(p, o, s) NDNBOOST_PP_WHILE_194_C(NDNBOOST_PP_BOOL(p(195, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_195(p, o, s) NDNBOOST_PP_WHILE_195_C(NDNBOOST_PP_BOOL(p(196, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_196(p, o, s) NDNBOOST_PP_WHILE_196_C(NDNBOOST_PP_BOOL(p(197, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_197(p, o, s) NDNBOOST_PP_WHILE_197_C(NDNBOOST_PP_BOOL(p(198, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_198(p, o, s) NDNBOOST_PP_WHILE_198_C(NDNBOOST_PP_BOOL(p(199, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_199(p, o, s) NDNBOOST_PP_WHILE_199_C(NDNBOOST_PP_BOOL(p(200, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_200(p, o, s) NDNBOOST_PP_WHILE_200_C(NDNBOOST_PP_BOOL(p(201, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_201(p, o, s) NDNBOOST_PP_WHILE_201_C(NDNBOOST_PP_BOOL(p(202, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_202(p, o, s) NDNBOOST_PP_WHILE_202_C(NDNBOOST_PP_BOOL(p(203, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_203(p, o, s) NDNBOOST_PP_WHILE_203_C(NDNBOOST_PP_BOOL(p(204, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_204(p, o, s) NDNBOOST_PP_WHILE_204_C(NDNBOOST_PP_BOOL(p(205, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_205(p, o, s) NDNBOOST_PP_WHILE_205_C(NDNBOOST_PP_BOOL(p(206, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_206(p, o, s) NDNBOOST_PP_WHILE_206_C(NDNBOOST_PP_BOOL(p(207, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_207(p, o, s) NDNBOOST_PP_WHILE_207_C(NDNBOOST_PP_BOOL(p(208, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_208(p, o, s) NDNBOOST_PP_WHILE_208_C(NDNBOOST_PP_BOOL(p(209, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_209(p, o, s) NDNBOOST_PP_WHILE_209_C(NDNBOOST_PP_BOOL(p(210, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_210(p, o, s) NDNBOOST_PP_WHILE_210_C(NDNBOOST_PP_BOOL(p(211, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_211(p, o, s) NDNBOOST_PP_WHILE_211_C(NDNBOOST_PP_BOOL(p(212, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_212(p, o, s) NDNBOOST_PP_WHILE_212_C(NDNBOOST_PP_BOOL(p(213, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_213(p, o, s) NDNBOOST_PP_WHILE_213_C(NDNBOOST_PP_BOOL(p(214, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_214(p, o, s) NDNBOOST_PP_WHILE_214_C(NDNBOOST_PP_BOOL(p(215, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_215(p, o, s) NDNBOOST_PP_WHILE_215_C(NDNBOOST_PP_BOOL(p(216, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_216(p, o, s) NDNBOOST_PP_WHILE_216_C(NDNBOOST_PP_BOOL(p(217, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_217(p, o, s) NDNBOOST_PP_WHILE_217_C(NDNBOOST_PP_BOOL(p(218, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_218(p, o, s) NDNBOOST_PP_WHILE_218_C(NDNBOOST_PP_BOOL(p(219, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_219(p, o, s) NDNBOOST_PP_WHILE_219_C(NDNBOOST_PP_BOOL(p(220, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_220(p, o, s) NDNBOOST_PP_WHILE_220_C(NDNBOOST_PP_BOOL(p(221, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_221(p, o, s) NDNBOOST_PP_WHILE_221_C(NDNBOOST_PP_BOOL(p(222, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_222(p, o, s) NDNBOOST_PP_WHILE_222_C(NDNBOOST_PP_BOOL(p(223, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_223(p, o, s) NDNBOOST_PP_WHILE_223_C(NDNBOOST_PP_BOOL(p(224, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_224(p, o, s) NDNBOOST_PP_WHILE_224_C(NDNBOOST_PP_BOOL(p(225, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_225(p, o, s) NDNBOOST_PP_WHILE_225_C(NDNBOOST_PP_BOOL(p(226, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_226(p, o, s) NDNBOOST_PP_WHILE_226_C(NDNBOOST_PP_BOOL(p(227, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_227(p, o, s) NDNBOOST_PP_WHILE_227_C(NDNBOOST_PP_BOOL(p(228, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_228(p, o, s) NDNBOOST_PP_WHILE_228_C(NDNBOOST_PP_BOOL(p(229, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_229(p, o, s) NDNBOOST_PP_WHILE_229_C(NDNBOOST_PP_BOOL(p(230, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_230(p, o, s) NDNBOOST_PP_WHILE_230_C(NDNBOOST_PP_BOOL(p(231, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_231(p, o, s) NDNBOOST_PP_WHILE_231_C(NDNBOOST_PP_BOOL(p(232, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_232(p, o, s) NDNBOOST_PP_WHILE_232_C(NDNBOOST_PP_BOOL(p(233, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_233(p, o, s) NDNBOOST_PP_WHILE_233_C(NDNBOOST_PP_BOOL(p(234, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_234(p, o, s) NDNBOOST_PP_WHILE_234_C(NDNBOOST_PP_BOOL(p(235, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_235(p, o, s) NDNBOOST_PP_WHILE_235_C(NDNBOOST_PP_BOOL(p(236, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_236(p, o, s) NDNBOOST_PP_WHILE_236_C(NDNBOOST_PP_BOOL(p(237, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_237(p, o, s) NDNBOOST_PP_WHILE_237_C(NDNBOOST_PP_BOOL(p(238, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_238(p, o, s) NDNBOOST_PP_WHILE_238_C(NDNBOOST_PP_BOOL(p(239, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_239(p, o, s) NDNBOOST_PP_WHILE_239_C(NDNBOOST_PP_BOOL(p(240, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_240(p, o, s) NDNBOOST_PP_WHILE_240_C(NDNBOOST_PP_BOOL(p(241, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_241(p, o, s) NDNBOOST_PP_WHILE_241_C(NDNBOOST_PP_BOOL(p(242, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_242(p, o, s) NDNBOOST_PP_WHILE_242_C(NDNBOOST_PP_BOOL(p(243, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_243(p, o, s) NDNBOOST_PP_WHILE_243_C(NDNBOOST_PP_BOOL(p(244, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_244(p, o, s) NDNBOOST_PP_WHILE_244_C(NDNBOOST_PP_BOOL(p(245, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_245(p, o, s) NDNBOOST_PP_WHILE_245_C(NDNBOOST_PP_BOOL(p(246, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_246(p, o, s) NDNBOOST_PP_WHILE_246_C(NDNBOOST_PP_BOOL(p(247, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_247(p, o, s) NDNBOOST_PP_WHILE_247_C(NDNBOOST_PP_BOOL(p(248, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_248(p, o, s) NDNBOOST_PP_WHILE_248_C(NDNBOOST_PP_BOOL(p(249, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_249(p, o, s) NDNBOOST_PP_WHILE_249_C(NDNBOOST_PP_BOOL(p(250, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_250(p, o, s) NDNBOOST_PP_WHILE_250_C(NDNBOOST_PP_BOOL(p(251, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_251(p, o, s) NDNBOOST_PP_WHILE_251_C(NDNBOOST_PP_BOOL(p(252, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_252(p, o, s) NDNBOOST_PP_WHILE_252_C(NDNBOOST_PP_BOOL(p(253, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_253(p, o, s) NDNBOOST_PP_WHILE_253_C(NDNBOOST_PP_BOOL(p(254, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_254(p, o, s) NDNBOOST_PP_WHILE_254_C(NDNBOOST_PP_BOOL(p(255, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_255(p, o, s) NDNBOOST_PP_WHILE_255_C(NDNBOOST_PP_BOOL(p(256, s)), p, o, s)
+# define NDNBOOST_PP_WHILE_256(p, o, s) NDNBOOST_PP_WHILE_256_C(NDNBOOST_PP_BOOL(p(257, s)), p, o, s)
 #
-# define BOOST_PP_WHILE_1_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_2, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(2, s))
-# define BOOST_PP_WHILE_2_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_3, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(3, s))
-# define BOOST_PP_WHILE_3_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_4, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(4, s))
-# define BOOST_PP_WHILE_4_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_5, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(5, s))
-# define BOOST_PP_WHILE_5_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_6, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(6, s))
-# define BOOST_PP_WHILE_6_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_7, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(7, s))
-# define BOOST_PP_WHILE_7_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_8, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(8, s))
-# define BOOST_PP_WHILE_8_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_9, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(9, s))
-# define BOOST_PP_WHILE_9_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_10, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(10, s))
-# define BOOST_PP_WHILE_10_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_11, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(11, s))
-# define BOOST_PP_WHILE_11_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_12, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(12, s))
-# define BOOST_PP_WHILE_12_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_13, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(13, s))
-# define BOOST_PP_WHILE_13_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_14, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(14, s))
-# define BOOST_PP_WHILE_14_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_15, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(15, s))
-# define BOOST_PP_WHILE_15_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_16, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(16, s))
-# define BOOST_PP_WHILE_16_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_17, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(17, s))
-# define BOOST_PP_WHILE_17_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_18, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(18, s))
-# define BOOST_PP_WHILE_18_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_19, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(19, s))
-# define BOOST_PP_WHILE_19_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_20, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(20, s))
-# define BOOST_PP_WHILE_20_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_21, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(21, s))
-# define BOOST_PP_WHILE_21_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_22, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(22, s))
-# define BOOST_PP_WHILE_22_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_23, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(23, s))
-# define BOOST_PP_WHILE_23_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_24, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(24, s))
-# define BOOST_PP_WHILE_24_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_25, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(25, s))
-# define BOOST_PP_WHILE_25_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_26, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(26, s))
-# define BOOST_PP_WHILE_26_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_27, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(27, s))
-# define BOOST_PP_WHILE_27_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_28, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(28, s))
-# define BOOST_PP_WHILE_28_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_29, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(29, s))
-# define BOOST_PP_WHILE_29_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_30, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(30, s))
-# define BOOST_PP_WHILE_30_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_31, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(31, s))
-# define BOOST_PP_WHILE_31_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_32, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(32, s))
-# define BOOST_PP_WHILE_32_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_33, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(33, s))
-# define BOOST_PP_WHILE_33_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_34, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(34, s))
-# define BOOST_PP_WHILE_34_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_35, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(35, s))
-# define BOOST_PP_WHILE_35_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_36, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(36, s))
-# define BOOST_PP_WHILE_36_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_37, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(37, s))
-# define BOOST_PP_WHILE_37_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_38, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(38, s))
-# define BOOST_PP_WHILE_38_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_39, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(39, s))
-# define BOOST_PP_WHILE_39_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_40, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(40, s))
-# define BOOST_PP_WHILE_40_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_41, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(41, s))
-# define BOOST_PP_WHILE_41_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_42, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(42, s))
-# define BOOST_PP_WHILE_42_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_43, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(43, s))
-# define BOOST_PP_WHILE_43_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_44, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(44, s))
-# define BOOST_PP_WHILE_44_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_45, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(45, s))
-# define BOOST_PP_WHILE_45_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_46, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(46, s))
-# define BOOST_PP_WHILE_46_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_47, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(47, s))
-# define BOOST_PP_WHILE_47_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_48, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(48, s))
-# define BOOST_PP_WHILE_48_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_49, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(49, s))
-# define BOOST_PP_WHILE_49_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_50, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(50, s))
-# define BOOST_PP_WHILE_50_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_51, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(51, s))
-# define BOOST_PP_WHILE_51_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_52, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(52, s))
-# define BOOST_PP_WHILE_52_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_53, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(53, s))
-# define BOOST_PP_WHILE_53_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_54, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(54, s))
-# define BOOST_PP_WHILE_54_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_55, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(55, s))
-# define BOOST_PP_WHILE_55_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_56, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(56, s))
-# define BOOST_PP_WHILE_56_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_57, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(57, s))
-# define BOOST_PP_WHILE_57_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_58, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(58, s))
-# define BOOST_PP_WHILE_58_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_59, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(59, s))
-# define BOOST_PP_WHILE_59_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_60, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(60, s))
-# define BOOST_PP_WHILE_60_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_61, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(61, s))
-# define BOOST_PP_WHILE_61_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_62, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(62, s))
-# define BOOST_PP_WHILE_62_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_63, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(63, s))
-# define BOOST_PP_WHILE_63_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_64, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(64, s))
-# define BOOST_PP_WHILE_64_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_65, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(65, s))
-# define BOOST_PP_WHILE_65_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_66, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(66, s))
-# define BOOST_PP_WHILE_66_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_67, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(67, s))
-# define BOOST_PP_WHILE_67_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_68, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(68, s))
-# define BOOST_PP_WHILE_68_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_69, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(69, s))
-# define BOOST_PP_WHILE_69_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_70, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(70, s))
-# define BOOST_PP_WHILE_70_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_71, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(71, s))
-# define BOOST_PP_WHILE_71_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_72, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(72, s))
-# define BOOST_PP_WHILE_72_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_73, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(73, s))
-# define BOOST_PP_WHILE_73_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_74, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(74, s))
-# define BOOST_PP_WHILE_74_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_75, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(75, s))
-# define BOOST_PP_WHILE_75_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_76, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(76, s))
-# define BOOST_PP_WHILE_76_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_77, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(77, s))
-# define BOOST_PP_WHILE_77_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_78, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(78, s))
-# define BOOST_PP_WHILE_78_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_79, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(79, s))
-# define BOOST_PP_WHILE_79_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_80, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(80, s))
-# define BOOST_PP_WHILE_80_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_81, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(81, s))
-# define BOOST_PP_WHILE_81_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_82, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(82, s))
-# define BOOST_PP_WHILE_82_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_83, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(83, s))
-# define BOOST_PP_WHILE_83_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_84, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(84, s))
-# define BOOST_PP_WHILE_84_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_85, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(85, s))
-# define BOOST_PP_WHILE_85_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_86, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(86, s))
-# define BOOST_PP_WHILE_86_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_87, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(87, s))
-# define BOOST_PP_WHILE_87_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_88, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(88, s))
-# define BOOST_PP_WHILE_88_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_89, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(89, s))
-# define BOOST_PP_WHILE_89_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_90, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(90, s))
-# define BOOST_PP_WHILE_90_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_91, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(91, s))
-# define BOOST_PP_WHILE_91_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_92, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(92, s))
-# define BOOST_PP_WHILE_92_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_93, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(93, s))
-# define BOOST_PP_WHILE_93_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_94, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(94, s))
-# define BOOST_PP_WHILE_94_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_95, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(95, s))
-# define BOOST_PP_WHILE_95_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_96, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(96, s))
-# define BOOST_PP_WHILE_96_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_97, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(97, s))
-# define BOOST_PP_WHILE_97_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_98, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(98, s))
-# define BOOST_PP_WHILE_98_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_99, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(99, s))
-# define BOOST_PP_WHILE_99_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_100, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(100, s))
-# define BOOST_PP_WHILE_100_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_101, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(101, s))
-# define BOOST_PP_WHILE_101_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_102, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(102, s))
-# define BOOST_PP_WHILE_102_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_103, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(103, s))
-# define BOOST_PP_WHILE_103_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_104, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(104, s))
-# define BOOST_PP_WHILE_104_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_105, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(105, s))
-# define BOOST_PP_WHILE_105_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_106, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(106, s))
-# define BOOST_PP_WHILE_106_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_107, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(107, s))
-# define BOOST_PP_WHILE_107_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_108, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(108, s))
-# define BOOST_PP_WHILE_108_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_109, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(109, s))
-# define BOOST_PP_WHILE_109_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_110, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(110, s))
-# define BOOST_PP_WHILE_110_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_111, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(111, s))
-# define BOOST_PP_WHILE_111_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_112, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(112, s))
-# define BOOST_PP_WHILE_112_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_113, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(113, s))
-# define BOOST_PP_WHILE_113_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_114, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(114, s))
-# define BOOST_PP_WHILE_114_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_115, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(115, s))
-# define BOOST_PP_WHILE_115_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_116, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(116, s))
-# define BOOST_PP_WHILE_116_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_117, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(117, s))
-# define BOOST_PP_WHILE_117_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_118, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(118, s))
-# define BOOST_PP_WHILE_118_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_119, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(119, s))
-# define BOOST_PP_WHILE_119_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_120, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(120, s))
-# define BOOST_PP_WHILE_120_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_121, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(121, s))
-# define BOOST_PP_WHILE_121_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_122, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(122, s))
-# define BOOST_PP_WHILE_122_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_123, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(123, s))
-# define BOOST_PP_WHILE_123_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_124, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(124, s))
-# define BOOST_PP_WHILE_124_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_125, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(125, s))
-# define BOOST_PP_WHILE_125_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_126, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(126, s))
-# define BOOST_PP_WHILE_126_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_127, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(127, s))
-# define BOOST_PP_WHILE_127_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_128, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(128, s))
-# define BOOST_PP_WHILE_128_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_129, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(129, s))
-# define BOOST_PP_WHILE_129_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_130, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(130, s))
-# define BOOST_PP_WHILE_130_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_131, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(131, s))
-# define BOOST_PP_WHILE_131_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_132, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(132, s))
-# define BOOST_PP_WHILE_132_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_133, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(133, s))
-# define BOOST_PP_WHILE_133_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_134, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(134, s))
-# define BOOST_PP_WHILE_134_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_135, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(135, s))
-# define BOOST_PP_WHILE_135_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_136, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(136, s))
-# define BOOST_PP_WHILE_136_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_137, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(137, s))
-# define BOOST_PP_WHILE_137_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_138, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(138, s))
-# define BOOST_PP_WHILE_138_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_139, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(139, s))
-# define BOOST_PP_WHILE_139_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_140, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(140, s))
-# define BOOST_PP_WHILE_140_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_141, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(141, s))
-# define BOOST_PP_WHILE_141_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_142, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(142, s))
-# define BOOST_PP_WHILE_142_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_143, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(143, s))
-# define BOOST_PP_WHILE_143_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_144, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(144, s))
-# define BOOST_PP_WHILE_144_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_145, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(145, s))
-# define BOOST_PP_WHILE_145_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_146, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(146, s))
-# define BOOST_PP_WHILE_146_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_147, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(147, s))
-# define BOOST_PP_WHILE_147_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_148, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(148, s))
-# define BOOST_PP_WHILE_148_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_149, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(149, s))
-# define BOOST_PP_WHILE_149_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_150, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(150, s))
-# define BOOST_PP_WHILE_150_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_151, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(151, s))
-# define BOOST_PP_WHILE_151_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_152, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(152, s))
-# define BOOST_PP_WHILE_152_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_153, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(153, s))
-# define BOOST_PP_WHILE_153_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_154, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(154, s))
-# define BOOST_PP_WHILE_154_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_155, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(155, s))
-# define BOOST_PP_WHILE_155_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_156, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(156, s))
-# define BOOST_PP_WHILE_156_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_157, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(157, s))
-# define BOOST_PP_WHILE_157_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_158, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(158, s))
-# define BOOST_PP_WHILE_158_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_159, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(159, s))
-# define BOOST_PP_WHILE_159_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_160, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(160, s))
-# define BOOST_PP_WHILE_160_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_161, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(161, s))
-# define BOOST_PP_WHILE_161_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_162, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(162, s))
-# define BOOST_PP_WHILE_162_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_163, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(163, s))
-# define BOOST_PP_WHILE_163_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_164, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(164, s))
-# define BOOST_PP_WHILE_164_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_165, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(165, s))
-# define BOOST_PP_WHILE_165_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_166, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(166, s))
-# define BOOST_PP_WHILE_166_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_167, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(167, s))
-# define BOOST_PP_WHILE_167_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_168, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(168, s))
-# define BOOST_PP_WHILE_168_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_169, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(169, s))
-# define BOOST_PP_WHILE_169_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_170, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(170, s))
-# define BOOST_PP_WHILE_170_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_171, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(171, s))
-# define BOOST_PP_WHILE_171_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_172, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(172, s))
-# define BOOST_PP_WHILE_172_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_173, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(173, s))
-# define BOOST_PP_WHILE_173_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_174, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(174, s))
-# define BOOST_PP_WHILE_174_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_175, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(175, s))
-# define BOOST_PP_WHILE_175_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_176, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(176, s))
-# define BOOST_PP_WHILE_176_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_177, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(177, s))
-# define BOOST_PP_WHILE_177_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_178, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(178, s))
-# define BOOST_PP_WHILE_178_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_179, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(179, s))
-# define BOOST_PP_WHILE_179_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_180, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(180, s))
-# define BOOST_PP_WHILE_180_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_181, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(181, s))
-# define BOOST_PP_WHILE_181_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_182, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(182, s))
-# define BOOST_PP_WHILE_182_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_183, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(183, s))
-# define BOOST_PP_WHILE_183_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_184, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(184, s))
-# define BOOST_PP_WHILE_184_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_185, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(185, s))
-# define BOOST_PP_WHILE_185_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_186, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(186, s))
-# define BOOST_PP_WHILE_186_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_187, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(187, s))
-# define BOOST_PP_WHILE_187_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_188, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(188, s))
-# define BOOST_PP_WHILE_188_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_189, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(189, s))
-# define BOOST_PP_WHILE_189_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_190, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(190, s))
-# define BOOST_PP_WHILE_190_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_191, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(191, s))
-# define BOOST_PP_WHILE_191_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_192, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(192, s))
-# define BOOST_PP_WHILE_192_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_193, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(193, s))
-# define BOOST_PP_WHILE_193_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_194, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(194, s))
-# define BOOST_PP_WHILE_194_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_195, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(195, s))
-# define BOOST_PP_WHILE_195_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_196, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(196, s))
-# define BOOST_PP_WHILE_196_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_197, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(197, s))
-# define BOOST_PP_WHILE_197_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_198, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(198, s))
-# define BOOST_PP_WHILE_198_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_199, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(199, s))
-# define BOOST_PP_WHILE_199_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_200, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(200, s))
-# define BOOST_PP_WHILE_200_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_201, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(201, s))
-# define BOOST_PP_WHILE_201_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_202, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(202, s))
-# define BOOST_PP_WHILE_202_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_203, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(203, s))
-# define BOOST_PP_WHILE_203_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_204, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(204, s))
-# define BOOST_PP_WHILE_204_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_205, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(205, s))
-# define BOOST_PP_WHILE_205_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_206, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(206, s))
-# define BOOST_PP_WHILE_206_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_207, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(207, s))
-# define BOOST_PP_WHILE_207_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_208, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(208, s))
-# define BOOST_PP_WHILE_208_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_209, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(209, s))
-# define BOOST_PP_WHILE_209_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_210, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(210, s))
-# define BOOST_PP_WHILE_210_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_211, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(211, s))
-# define BOOST_PP_WHILE_211_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_212, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(212, s))
-# define BOOST_PP_WHILE_212_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_213, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(213, s))
-# define BOOST_PP_WHILE_213_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_214, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(214, s))
-# define BOOST_PP_WHILE_214_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_215, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(215, s))
-# define BOOST_PP_WHILE_215_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_216, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(216, s))
-# define BOOST_PP_WHILE_216_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_217, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(217, s))
-# define BOOST_PP_WHILE_217_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_218, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(218, s))
-# define BOOST_PP_WHILE_218_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_219, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(219, s))
-# define BOOST_PP_WHILE_219_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_220, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(220, s))
-# define BOOST_PP_WHILE_220_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_221, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(221, s))
-# define BOOST_PP_WHILE_221_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_222, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(222, s))
-# define BOOST_PP_WHILE_222_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_223, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(223, s))
-# define BOOST_PP_WHILE_223_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_224, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(224, s))
-# define BOOST_PP_WHILE_224_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_225, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(225, s))
-# define BOOST_PP_WHILE_225_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_226, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(226, s))
-# define BOOST_PP_WHILE_226_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_227, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(227, s))
-# define BOOST_PP_WHILE_227_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_228, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(228, s))
-# define BOOST_PP_WHILE_228_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_229, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(229, s))
-# define BOOST_PP_WHILE_229_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_230, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(230, s))
-# define BOOST_PP_WHILE_230_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_231, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(231, s))
-# define BOOST_PP_WHILE_231_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_232, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(232, s))
-# define BOOST_PP_WHILE_232_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_233, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(233, s))
-# define BOOST_PP_WHILE_233_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_234, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(234, s))
-# define BOOST_PP_WHILE_234_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_235, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(235, s))
-# define BOOST_PP_WHILE_235_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_236, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(236, s))
-# define BOOST_PP_WHILE_236_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_237, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(237, s))
-# define BOOST_PP_WHILE_237_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_238, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(238, s))
-# define BOOST_PP_WHILE_238_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_239, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(239, s))
-# define BOOST_PP_WHILE_239_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_240, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(240, s))
-# define BOOST_PP_WHILE_240_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_241, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(241, s))
-# define BOOST_PP_WHILE_241_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_242, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(242, s))
-# define BOOST_PP_WHILE_242_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_243, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(243, s))
-# define BOOST_PP_WHILE_243_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_244, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(244, s))
-# define BOOST_PP_WHILE_244_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_245, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(245, s))
-# define BOOST_PP_WHILE_245_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_246, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(246, s))
-# define BOOST_PP_WHILE_246_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_247, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(247, s))
-# define BOOST_PP_WHILE_247_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_248, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(248, s))
-# define BOOST_PP_WHILE_248_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_249, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(249, s))
-# define BOOST_PP_WHILE_249_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_250, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(250, s))
-# define BOOST_PP_WHILE_250_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_251, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(251, s))
-# define BOOST_PP_WHILE_251_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_252, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(252, s))
-# define BOOST_PP_WHILE_252_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_253, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(253, s))
-# define BOOST_PP_WHILE_253_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_254, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(254, s))
-# define BOOST_PP_WHILE_254_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_255, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(255, s))
-# define BOOST_PP_WHILE_255_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_256, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(256, s))
-# define BOOST_PP_WHILE_256_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_257, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(257, s))
+# define NDNBOOST_PP_WHILE_1_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_2, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(2, s))
+# define NDNBOOST_PP_WHILE_2_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_3, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(3, s))
+# define NDNBOOST_PP_WHILE_3_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_4, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(4, s))
+# define NDNBOOST_PP_WHILE_4_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_5, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(5, s))
+# define NDNBOOST_PP_WHILE_5_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_6, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(6, s))
+# define NDNBOOST_PP_WHILE_6_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_7, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(7, s))
+# define NDNBOOST_PP_WHILE_7_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_8, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(8, s))
+# define NDNBOOST_PP_WHILE_8_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_9, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(9, s))
+# define NDNBOOST_PP_WHILE_9_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_10, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(10, s))
+# define NDNBOOST_PP_WHILE_10_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_11, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(11, s))
+# define NDNBOOST_PP_WHILE_11_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_12, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(12, s))
+# define NDNBOOST_PP_WHILE_12_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_13, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(13, s))
+# define NDNBOOST_PP_WHILE_13_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_14, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(14, s))
+# define NDNBOOST_PP_WHILE_14_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_15, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(15, s))
+# define NDNBOOST_PP_WHILE_15_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_16, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(16, s))
+# define NDNBOOST_PP_WHILE_16_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_17, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(17, s))
+# define NDNBOOST_PP_WHILE_17_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_18, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(18, s))
+# define NDNBOOST_PP_WHILE_18_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_19, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(19, s))
+# define NDNBOOST_PP_WHILE_19_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_20, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(20, s))
+# define NDNBOOST_PP_WHILE_20_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_21, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(21, s))
+# define NDNBOOST_PP_WHILE_21_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_22, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(22, s))
+# define NDNBOOST_PP_WHILE_22_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_23, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(23, s))
+# define NDNBOOST_PP_WHILE_23_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_24, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(24, s))
+# define NDNBOOST_PP_WHILE_24_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_25, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(25, s))
+# define NDNBOOST_PP_WHILE_25_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_26, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(26, s))
+# define NDNBOOST_PP_WHILE_26_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_27, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(27, s))
+# define NDNBOOST_PP_WHILE_27_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_28, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(28, s))
+# define NDNBOOST_PP_WHILE_28_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_29, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(29, s))
+# define NDNBOOST_PP_WHILE_29_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_30, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(30, s))
+# define NDNBOOST_PP_WHILE_30_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_31, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(31, s))
+# define NDNBOOST_PP_WHILE_31_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_32, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(32, s))
+# define NDNBOOST_PP_WHILE_32_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_33, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(33, s))
+# define NDNBOOST_PP_WHILE_33_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_34, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(34, s))
+# define NDNBOOST_PP_WHILE_34_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_35, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(35, s))
+# define NDNBOOST_PP_WHILE_35_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_36, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(36, s))
+# define NDNBOOST_PP_WHILE_36_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_37, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(37, s))
+# define NDNBOOST_PP_WHILE_37_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_38, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(38, s))
+# define NDNBOOST_PP_WHILE_38_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_39, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(39, s))
+# define NDNBOOST_PP_WHILE_39_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_40, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(40, s))
+# define NDNBOOST_PP_WHILE_40_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_41, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(41, s))
+# define NDNBOOST_PP_WHILE_41_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_42, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(42, s))
+# define NDNBOOST_PP_WHILE_42_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_43, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(43, s))
+# define NDNBOOST_PP_WHILE_43_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_44, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(44, s))
+# define NDNBOOST_PP_WHILE_44_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_45, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(45, s))
+# define NDNBOOST_PP_WHILE_45_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_46, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(46, s))
+# define NDNBOOST_PP_WHILE_46_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_47, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(47, s))
+# define NDNBOOST_PP_WHILE_47_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_48, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(48, s))
+# define NDNBOOST_PP_WHILE_48_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_49, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(49, s))
+# define NDNBOOST_PP_WHILE_49_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_50, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(50, s))
+# define NDNBOOST_PP_WHILE_50_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_51, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(51, s))
+# define NDNBOOST_PP_WHILE_51_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_52, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(52, s))
+# define NDNBOOST_PP_WHILE_52_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_53, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(53, s))
+# define NDNBOOST_PP_WHILE_53_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_54, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(54, s))
+# define NDNBOOST_PP_WHILE_54_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_55, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(55, s))
+# define NDNBOOST_PP_WHILE_55_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_56, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(56, s))
+# define NDNBOOST_PP_WHILE_56_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_57, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(57, s))
+# define NDNBOOST_PP_WHILE_57_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_58, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(58, s))
+# define NDNBOOST_PP_WHILE_58_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_59, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(59, s))
+# define NDNBOOST_PP_WHILE_59_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_60, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(60, s))
+# define NDNBOOST_PP_WHILE_60_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_61, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(61, s))
+# define NDNBOOST_PP_WHILE_61_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_62, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(62, s))
+# define NDNBOOST_PP_WHILE_62_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_63, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(63, s))
+# define NDNBOOST_PP_WHILE_63_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_64, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(64, s))
+# define NDNBOOST_PP_WHILE_64_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_65, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(65, s))
+# define NDNBOOST_PP_WHILE_65_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_66, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(66, s))
+# define NDNBOOST_PP_WHILE_66_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_67, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(67, s))
+# define NDNBOOST_PP_WHILE_67_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_68, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(68, s))
+# define NDNBOOST_PP_WHILE_68_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_69, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(69, s))
+# define NDNBOOST_PP_WHILE_69_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_70, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(70, s))
+# define NDNBOOST_PP_WHILE_70_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_71, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(71, s))
+# define NDNBOOST_PP_WHILE_71_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_72, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(72, s))
+# define NDNBOOST_PP_WHILE_72_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_73, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(73, s))
+# define NDNBOOST_PP_WHILE_73_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_74, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(74, s))
+# define NDNBOOST_PP_WHILE_74_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_75, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(75, s))
+# define NDNBOOST_PP_WHILE_75_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_76, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(76, s))
+# define NDNBOOST_PP_WHILE_76_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_77, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(77, s))
+# define NDNBOOST_PP_WHILE_77_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_78, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(78, s))
+# define NDNBOOST_PP_WHILE_78_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_79, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(79, s))
+# define NDNBOOST_PP_WHILE_79_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_80, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(80, s))
+# define NDNBOOST_PP_WHILE_80_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_81, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(81, s))
+# define NDNBOOST_PP_WHILE_81_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_82, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(82, s))
+# define NDNBOOST_PP_WHILE_82_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_83, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(83, s))
+# define NDNBOOST_PP_WHILE_83_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_84, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(84, s))
+# define NDNBOOST_PP_WHILE_84_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_85, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(85, s))
+# define NDNBOOST_PP_WHILE_85_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_86, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(86, s))
+# define NDNBOOST_PP_WHILE_86_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_87, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(87, s))
+# define NDNBOOST_PP_WHILE_87_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_88, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(88, s))
+# define NDNBOOST_PP_WHILE_88_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_89, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(89, s))
+# define NDNBOOST_PP_WHILE_89_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_90, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(90, s))
+# define NDNBOOST_PP_WHILE_90_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_91, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(91, s))
+# define NDNBOOST_PP_WHILE_91_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_92, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(92, s))
+# define NDNBOOST_PP_WHILE_92_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_93, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(93, s))
+# define NDNBOOST_PP_WHILE_93_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_94, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(94, s))
+# define NDNBOOST_PP_WHILE_94_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_95, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(95, s))
+# define NDNBOOST_PP_WHILE_95_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_96, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(96, s))
+# define NDNBOOST_PP_WHILE_96_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_97, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(97, s))
+# define NDNBOOST_PP_WHILE_97_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_98, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(98, s))
+# define NDNBOOST_PP_WHILE_98_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_99, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(99, s))
+# define NDNBOOST_PP_WHILE_99_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_100, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(100, s))
+# define NDNBOOST_PP_WHILE_100_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_101, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(101, s))
+# define NDNBOOST_PP_WHILE_101_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_102, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(102, s))
+# define NDNBOOST_PP_WHILE_102_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_103, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(103, s))
+# define NDNBOOST_PP_WHILE_103_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_104, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(104, s))
+# define NDNBOOST_PP_WHILE_104_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_105, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(105, s))
+# define NDNBOOST_PP_WHILE_105_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_106, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(106, s))
+# define NDNBOOST_PP_WHILE_106_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_107, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(107, s))
+# define NDNBOOST_PP_WHILE_107_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_108, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(108, s))
+# define NDNBOOST_PP_WHILE_108_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_109, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(109, s))
+# define NDNBOOST_PP_WHILE_109_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_110, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(110, s))
+# define NDNBOOST_PP_WHILE_110_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_111, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(111, s))
+# define NDNBOOST_PP_WHILE_111_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_112, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(112, s))
+# define NDNBOOST_PP_WHILE_112_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_113, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(113, s))
+# define NDNBOOST_PP_WHILE_113_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_114, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(114, s))
+# define NDNBOOST_PP_WHILE_114_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_115, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(115, s))
+# define NDNBOOST_PP_WHILE_115_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_116, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(116, s))
+# define NDNBOOST_PP_WHILE_116_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_117, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(117, s))
+# define NDNBOOST_PP_WHILE_117_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_118, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(118, s))
+# define NDNBOOST_PP_WHILE_118_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_119, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(119, s))
+# define NDNBOOST_PP_WHILE_119_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_120, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(120, s))
+# define NDNBOOST_PP_WHILE_120_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_121, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(121, s))
+# define NDNBOOST_PP_WHILE_121_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_122, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(122, s))
+# define NDNBOOST_PP_WHILE_122_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_123, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(123, s))
+# define NDNBOOST_PP_WHILE_123_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_124, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(124, s))
+# define NDNBOOST_PP_WHILE_124_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_125, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(125, s))
+# define NDNBOOST_PP_WHILE_125_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_126, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(126, s))
+# define NDNBOOST_PP_WHILE_126_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_127, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(127, s))
+# define NDNBOOST_PP_WHILE_127_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_128, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(128, s))
+# define NDNBOOST_PP_WHILE_128_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_129, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(129, s))
+# define NDNBOOST_PP_WHILE_129_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_130, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(130, s))
+# define NDNBOOST_PP_WHILE_130_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_131, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(131, s))
+# define NDNBOOST_PP_WHILE_131_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_132, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(132, s))
+# define NDNBOOST_PP_WHILE_132_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_133, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(133, s))
+# define NDNBOOST_PP_WHILE_133_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_134, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(134, s))
+# define NDNBOOST_PP_WHILE_134_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_135, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(135, s))
+# define NDNBOOST_PP_WHILE_135_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_136, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(136, s))
+# define NDNBOOST_PP_WHILE_136_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_137, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(137, s))
+# define NDNBOOST_PP_WHILE_137_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_138, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(138, s))
+# define NDNBOOST_PP_WHILE_138_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_139, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(139, s))
+# define NDNBOOST_PP_WHILE_139_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_140, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(140, s))
+# define NDNBOOST_PP_WHILE_140_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_141, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(141, s))
+# define NDNBOOST_PP_WHILE_141_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_142, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(142, s))
+# define NDNBOOST_PP_WHILE_142_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_143, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(143, s))
+# define NDNBOOST_PP_WHILE_143_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_144, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(144, s))
+# define NDNBOOST_PP_WHILE_144_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_145, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(145, s))
+# define NDNBOOST_PP_WHILE_145_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_146, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(146, s))
+# define NDNBOOST_PP_WHILE_146_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_147, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(147, s))
+# define NDNBOOST_PP_WHILE_147_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_148, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(148, s))
+# define NDNBOOST_PP_WHILE_148_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_149, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(149, s))
+# define NDNBOOST_PP_WHILE_149_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_150, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(150, s))
+# define NDNBOOST_PP_WHILE_150_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_151, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(151, s))
+# define NDNBOOST_PP_WHILE_151_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_152, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(152, s))
+# define NDNBOOST_PP_WHILE_152_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_153, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(153, s))
+# define NDNBOOST_PP_WHILE_153_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_154, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(154, s))
+# define NDNBOOST_PP_WHILE_154_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_155, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(155, s))
+# define NDNBOOST_PP_WHILE_155_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_156, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(156, s))
+# define NDNBOOST_PP_WHILE_156_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_157, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(157, s))
+# define NDNBOOST_PP_WHILE_157_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_158, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(158, s))
+# define NDNBOOST_PP_WHILE_158_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_159, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(159, s))
+# define NDNBOOST_PP_WHILE_159_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_160, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(160, s))
+# define NDNBOOST_PP_WHILE_160_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_161, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(161, s))
+# define NDNBOOST_PP_WHILE_161_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_162, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(162, s))
+# define NDNBOOST_PP_WHILE_162_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_163, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(163, s))
+# define NDNBOOST_PP_WHILE_163_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_164, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(164, s))
+# define NDNBOOST_PP_WHILE_164_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_165, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(165, s))
+# define NDNBOOST_PP_WHILE_165_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_166, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(166, s))
+# define NDNBOOST_PP_WHILE_166_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_167, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(167, s))
+# define NDNBOOST_PP_WHILE_167_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_168, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(168, s))
+# define NDNBOOST_PP_WHILE_168_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_169, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(169, s))
+# define NDNBOOST_PP_WHILE_169_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_170, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(170, s))
+# define NDNBOOST_PP_WHILE_170_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_171, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(171, s))
+# define NDNBOOST_PP_WHILE_171_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_172, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(172, s))
+# define NDNBOOST_PP_WHILE_172_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_173, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(173, s))
+# define NDNBOOST_PP_WHILE_173_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_174, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(174, s))
+# define NDNBOOST_PP_WHILE_174_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_175, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(175, s))
+# define NDNBOOST_PP_WHILE_175_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_176, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(176, s))
+# define NDNBOOST_PP_WHILE_176_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_177, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(177, s))
+# define NDNBOOST_PP_WHILE_177_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_178, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(178, s))
+# define NDNBOOST_PP_WHILE_178_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_179, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(179, s))
+# define NDNBOOST_PP_WHILE_179_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_180, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(180, s))
+# define NDNBOOST_PP_WHILE_180_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_181, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(181, s))
+# define NDNBOOST_PP_WHILE_181_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_182, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(182, s))
+# define NDNBOOST_PP_WHILE_182_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_183, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(183, s))
+# define NDNBOOST_PP_WHILE_183_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_184, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(184, s))
+# define NDNBOOST_PP_WHILE_184_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_185, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(185, s))
+# define NDNBOOST_PP_WHILE_185_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_186, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(186, s))
+# define NDNBOOST_PP_WHILE_186_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_187, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(187, s))
+# define NDNBOOST_PP_WHILE_187_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_188, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(188, s))
+# define NDNBOOST_PP_WHILE_188_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_189, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(189, s))
+# define NDNBOOST_PP_WHILE_189_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_190, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(190, s))
+# define NDNBOOST_PP_WHILE_190_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_191, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(191, s))
+# define NDNBOOST_PP_WHILE_191_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_192, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(192, s))
+# define NDNBOOST_PP_WHILE_192_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_193, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(193, s))
+# define NDNBOOST_PP_WHILE_193_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_194, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(194, s))
+# define NDNBOOST_PP_WHILE_194_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_195, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(195, s))
+# define NDNBOOST_PP_WHILE_195_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_196, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(196, s))
+# define NDNBOOST_PP_WHILE_196_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_197, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(197, s))
+# define NDNBOOST_PP_WHILE_197_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_198, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(198, s))
+# define NDNBOOST_PP_WHILE_198_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_199, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(199, s))
+# define NDNBOOST_PP_WHILE_199_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_200, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(200, s))
+# define NDNBOOST_PP_WHILE_200_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_201, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(201, s))
+# define NDNBOOST_PP_WHILE_201_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_202, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(202, s))
+# define NDNBOOST_PP_WHILE_202_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_203, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(203, s))
+# define NDNBOOST_PP_WHILE_203_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_204, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(204, s))
+# define NDNBOOST_PP_WHILE_204_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_205, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(205, s))
+# define NDNBOOST_PP_WHILE_205_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_206, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(206, s))
+# define NDNBOOST_PP_WHILE_206_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_207, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(207, s))
+# define NDNBOOST_PP_WHILE_207_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_208, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(208, s))
+# define NDNBOOST_PP_WHILE_208_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_209, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(209, s))
+# define NDNBOOST_PP_WHILE_209_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_210, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(210, s))
+# define NDNBOOST_PP_WHILE_210_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_211, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(211, s))
+# define NDNBOOST_PP_WHILE_211_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_212, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(212, s))
+# define NDNBOOST_PP_WHILE_212_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_213, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(213, s))
+# define NDNBOOST_PP_WHILE_213_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_214, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(214, s))
+# define NDNBOOST_PP_WHILE_214_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_215, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(215, s))
+# define NDNBOOST_PP_WHILE_215_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_216, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(216, s))
+# define NDNBOOST_PP_WHILE_216_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_217, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(217, s))
+# define NDNBOOST_PP_WHILE_217_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_218, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(218, s))
+# define NDNBOOST_PP_WHILE_218_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_219, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(219, s))
+# define NDNBOOST_PP_WHILE_219_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_220, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(220, s))
+# define NDNBOOST_PP_WHILE_220_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_221, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(221, s))
+# define NDNBOOST_PP_WHILE_221_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_222, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(222, s))
+# define NDNBOOST_PP_WHILE_222_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_223, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(223, s))
+# define NDNBOOST_PP_WHILE_223_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_224, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(224, s))
+# define NDNBOOST_PP_WHILE_224_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_225, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(225, s))
+# define NDNBOOST_PP_WHILE_225_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_226, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(226, s))
+# define NDNBOOST_PP_WHILE_226_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_227, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(227, s))
+# define NDNBOOST_PP_WHILE_227_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_228, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(228, s))
+# define NDNBOOST_PP_WHILE_228_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_229, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(229, s))
+# define NDNBOOST_PP_WHILE_229_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_230, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(230, s))
+# define NDNBOOST_PP_WHILE_230_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_231, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(231, s))
+# define NDNBOOST_PP_WHILE_231_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_232, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(232, s))
+# define NDNBOOST_PP_WHILE_232_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_233, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(233, s))
+# define NDNBOOST_PP_WHILE_233_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_234, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(234, s))
+# define NDNBOOST_PP_WHILE_234_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_235, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(235, s))
+# define NDNBOOST_PP_WHILE_235_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_236, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(236, s))
+# define NDNBOOST_PP_WHILE_236_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_237, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(237, s))
+# define NDNBOOST_PP_WHILE_237_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_238, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(238, s))
+# define NDNBOOST_PP_WHILE_238_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_239, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(239, s))
+# define NDNBOOST_PP_WHILE_239_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_240, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(240, s))
+# define NDNBOOST_PP_WHILE_240_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_241, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(241, s))
+# define NDNBOOST_PP_WHILE_241_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_242, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(242, s))
+# define NDNBOOST_PP_WHILE_242_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_243, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(243, s))
+# define NDNBOOST_PP_WHILE_243_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_244, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(244, s))
+# define NDNBOOST_PP_WHILE_244_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_245, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(245, s))
+# define NDNBOOST_PP_WHILE_245_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_246, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(246, s))
+# define NDNBOOST_PP_WHILE_246_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_247, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(247, s))
+# define NDNBOOST_PP_WHILE_247_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_248, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(248, s))
+# define NDNBOOST_PP_WHILE_248_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_249, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(249, s))
+# define NDNBOOST_PP_WHILE_249_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_250, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(250, s))
+# define NDNBOOST_PP_WHILE_250_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_251, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(251, s))
+# define NDNBOOST_PP_WHILE_251_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_252, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(252, s))
+# define NDNBOOST_PP_WHILE_252_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_253, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(253, s))
+# define NDNBOOST_PP_WHILE_253_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_254, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(254, s))
+# define NDNBOOST_PP_WHILE_254_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_255, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(255, s))
+# define NDNBOOST_PP_WHILE_255_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_256, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(256, s))
+# define NDNBOOST_PP_WHILE_256_C(c, p, o, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_WHILE_257, s NDNBOOST_PP_TUPLE_EAT_3)(p, o, NDNBOOST_PP_IIF(c, o, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_2)(257, s))
 #
 #
 # endif
diff --git a/include/ndnboost/preprocessor/control/expr_if.hpp b/include/ndnboost/preprocessor/control/expr_if.hpp
index 364ef59..b51a326 100644
--- a/include/ndnboost/preprocessor/control/expr_if.hpp
+++ b/include/ndnboost/preprocessor/control/expr_if.hpp
@@ -11,20 +11,20 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_CONTROL_EXPR_IF_HPP
-# define BOOST_PREPROCESSOR_CONTROL_EXPR_IF_HPP
+# ifndef NDNBOOST_PREPROCESSOR_CONTROL_EXPR_IF_HPP
+# define NDNBOOST_PREPROCESSOR_CONTROL_EXPR_IF_HPP
 #
 # include <ndnboost/preprocessor/config/config.hpp>
 # include <ndnboost/preprocessor/control/expr_iif.hpp>
 # include <ndnboost/preprocessor/logical/bool.hpp>
 #
-# /* BOOST_PP_EXPR_IF */
+# /* NDNBOOST_PP_EXPR_IF */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_EXPR_IF(cond, expr) BOOST_PP_EXPR_IIF(BOOST_PP_BOOL(cond), expr)
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_EXPR_IF(cond, expr) NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_BOOL(cond), expr)
 # else
-#    define BOOST_PP_EXPR_IF(cond, expr) BOOST_PP_EXPR_IF_I(cond, expr)
-#    define BOOST_PP_EXPR_IF_I(cond, expr) BOOST_PP_EXPR_IIF(BOOST_PP_BOOL(cond), expr)
+#    define NDNBOOST_PP_EXPR_IF(cond, expr) NDNBOOST_PP_EXPR_IF_I(cond, expr)
+#    define NDNBOOST_PP_EXPR_IF_I(cond, expr) NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_BOOL(cond), expr)
 # endif
 #
 # endif
diff --git a/include/ndnboost/preprocessor/control/expr_iif.hpp b/include/ndnboost/preprocessor/control/expr_iif.hpp
index acd4c15..0fa4aea 100644
--- a/include/ndnboost/preprocessor/control/expr_iif.hpp
+++ b/include/ndnboost/preprocessor/control/expr_iif.hpp
@@ -9,23 +9,23 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_CONTROL_EXPR_IIF_HPP
-# define BOOST_PREPROCESSOR_CONTROL_EXPR_IIF_HPP
+# ifndef NDNBOOST_PREPROCESSOR_CONTROL_EXPR_IIF_HPP
+# define NDNBOOST_PREPROCESSOR_CONTROL_EXPR_IIF_HPP
 #
 # include <ndnboost/preprocessor/config/config.hpp>
 #
-# /* BOOST_PP_EXPR_IIF */
+# /* NDNBOOST_PP_EXPR_IIF */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_EXPR_IIF(bit, expr) BOOST_PP_EXPR_IIF_I(bit, expr)
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MWCC()
+#    define NDNBOOST_PP_EXPR_IIF(bit, expr) NDNBOOST_PP_EXPR_IIF_I(bit, expr)
 # else
-#    define BOOST_PP_EXPR_IIF(bit, expr) BOOST_PP_EXPR_IIF_OO((bit, expr))
-#    define BOOST_PP_EXPR_IIF_OO(par) BOOST_PP_EXPR_IIF_I ## par
+#    define NDNBOOST_PP_EXPR_IIF(bit, expr) NDNBOOST_PP_EXPR_IIF_OO((bit, expr))
+#    define NDNBOOST_PP_EXPR_IIF_OO(par) NDNBOOST_PP_EXPR_IIF_I ## par
 # endif
 #
-# define BOOST_PP_EXPR_IIF_I(bit, expr) BOOST_PP_EXPR_IIF_ ## bit(expr)
+# define NDNBOOST_PP_EXPR_IIF_I(bit, expr) NDNBOOST_PP_EXPR_IIF_ ## bit(expr)
 #
-# define BOOST_PP_EXPR_IIF_0(expr)
-# define BOOST_PP_EXPR_IIF_1(expr) expr
+# define NDNBOOST_PP_EXPR_IIF_0(expr)
+# define NDNBOOST_PP_EXPR_IIF_1(expr) expr
 #
 # endif
diff --git a/include/ndnboost/preprocessor/control/if.hpp b/include/ndnboost/preprocessor/control/if.hpp
index 92ea96d..2b2f1c7 100644
--- a/include/ndnboost/preprocessor/control/if.hpp
+++ b/include/ndnboost/preprocessor/control/if.hpp
@@ -11,20 +11,20 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_CONTROL_IF_HPP
-# define BOOST_PREPROCESSOR_CONTROL_IF_HPP
+# ifndef NDNBOOST_PREPROCESSOR_CONTROL_IF_HPP
+# define NDNBOOST_PREPROCESSOR_CONTROL_IF_HPP
 #
 # include <ndnboost/preprocessor/config/config.hpp>
 # include <ndnboost/preprocessor/control/iif.hpp>
 # include <ndnboost/preprocessor/logical/bool.hpp>
 #
-# /* BOOST_PP_IF */
+# /* NDNBOOST_PP_IF */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_IF(cond, t, f) BOOST_PP_IIF(BOOST_PP_BOOL(cond), t, f)
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_IF(cond, t, f) NDNBOOST_PP_IIF(NDNBOOST_PP_BOOL(cond), t, f)
 # else
-#    define BOOST_PP_IF(cond, t, f) BOOST_PP_IF_I(cond, t, f)
-#    define BOOST_PP_IF_I(cond, t, f) BOOST_PP_IIF(BOOST_PP_BOOL(cond), t, f)
+#    define NDNBOOST_PP_IF(cond, t, f) NDNBOOST_PP_IF_I(cond, t, f)
+#    define NDNBOOST_PP_IF_I(cond, t, f) NDNBOOST_PP_IIF(NDNBOOST_PP_BOOL(cond), t, f)
 # endif
 #
 # endif
diff --git a/include/ndnboost/preprocessor/control/iif.hpp b/include/ndnboost/preprocessor/control/iif.hpp
index b5e33cf..5cc6f22 100644
--- a/include/ndnboost/preprocessor/control/iif.hpp
+++ b/include/ndnboost/preprocessor/control/iif.hpp
@@ -9,26 +9,26 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_CONTROL_IIF_HPP
-# define BOOST_PREPROCESSOR_CONTROL_IIF_HPP
+# ifndef NDNBOOST_PREPROCESSOR_CONTROL_IIF_HPP
+# define NDNBOOST_PREPROCESSOR_CONTROL_IIF_HPP
 #
 # include <ndnboost/preprocessor/config/config.hpp>
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_IIF(bit, t, f) BOOST_PP_IIF_I(bit, t, f)
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MWCC()
+#    define NDNBOOST_PP_IIF(bit, t, f) NDNBOOST_PP_IIF_I(bit, t, f)
 # else
-#    define BOOST_PP_IIF(bit, t, f) BOOST_PP_IIF_OO((bit, t, f))
-#    define BOOST_PP_IIF_OO(par) BOOST_PP_IIF_I ## par
+#    define NDNBOOST_PP_IIF(bit, t, f) NDNBOOST_PP_IIF_OO((bit, t, f))
+#    define NDNBOOST_PP_IIF_OO(par) NDNBOOST_PP_IIF_I ## par
 # endif
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-#    define BOOST_PP_IIF_I(bit, t, f) BOOST_PP_IIF_ ## bit(t, f)
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MSVC()
+#    define NDNBOOST_PP_IIF_I(bit, t, f) NDNBOOST_PP_IIF_ ## bit(t, f)
 # else
-#    define BOOST_PP_IIF_I(bit, t, f) BOOST_PP_IIF_II(BOOST_PP_IIF_ ## bit(t, f))
-#    define BOOST_PP_IIF_II(id) id
+#    define NDNBOOST_PP_IIF_I(bit, t, f) NDNBOOST_PP_IIF_II(NDNBOOST_PP_IIF_ ## bit(t, f))
+#    define NDNBOOST_PP_IIF_II(id) id
 # endif
 #
-# define BOOST_PP_IIF_0(t, f) f
-# define BOOST_PP_IIF_1(t, f) t
+# define NDNBOOST_PP_IIF_0(t, f) f
+# define NDNBOOST_PP_IIF_1(t, f) t
 #
 # endif
diff --git a/include/ndnboost/preprocessor/control/while.hpp b/include/ndnboost/preprocessor/control/while.hpp
index 20dd37f..a53c398 100644
--- a/include/ndnboost/preprocessor/control/while.hpp
+++ b/include/ndnboost/preprocessor/control/while.hpp
@@ -11,8 +11,8 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_CONTROL_WHILE_HPP
-# define BOOST_PREPROCESSOR_CONTROL_WHILE_HPP
+# ifndef NDNBOOST_PREPROCESSOR_CONTROL_WHILE_HPP
+# define NDNBOOST_PREPROCESSOR_CONTROL_WHILE_HPP
 #
 # include <ndnboost/preprocessor/cat.hpp>
 # include <ndnboost/preprocessor/config/config.hpp>
@@ -22,291 +22,291 @@
 # include <ndnboost/preprocessor/list/fold_right.hpp>
 # include <ndnboost/preprocessor/logical/bitand.hpp>
 #
-# /* BOOST_PP_WHILE */
+# /* NDNBOOST_PP_WHILE */
 #
 # if 0
-#    define BOOST_PP_WHILE(pred, op, state)
+#    define NDNBOOST_PP_WHILE(pred, op, state)
 # endif
 #
-# define BOOST_PP_WHILE BOOST_PP_CAT(BOOST_PP_WHILE_, BOOST_PP_AUTO_REC(BOOST_PP_WHILE_P, 256))
+# define NDNBOOST_PP_WHILE NDNBOOST_PP_CAT(NDNBOOST_PP_WHILE_, NDNBOOST_PP_AUTO_REC(NDNBOOST_PP_WHILE_P, 256))
 #
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_WHILE_P(n) BOOST_PP_BITAND(BOOST_PP_CAT(BOOST_PP_WHILE_CHECK_, BOOST_PP_WHILE_ ## n(BOOST_PP_WHILE_F, BOOST_PP_NIL, BOOST_PP_NIL)), BOOST_PP_BITAND(BOOST_PP_CAT(BOOST_PP_LIST_FOLD_LEFT_CHECK_, BOOST_PP_LIST_FOLD_LEFT_ ## n(BOOST_PP_NIL, BOOST_PP_NIL, BOOST_PP_NIL)), BOOST_PP_CAT(BOOST_PP_LIST_FOLD_RIGHT_CHECK_, BOOST_PP_LIST_FOLD_RIGHT_ ## n(BOOST_PP_NIL, BOOST_PP_NIL, BOOST_PP_NIL))))
+# if NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_WHILE_P(n) NDNBOOST_PP_BITAND(NDNBOOST_PP_CAT(NDNBOOST_PP_WHILE_CHECK_, NDNBOOST_PP_WHILE_ ## n(NDNBOOST_PP_WHILE_F, NDNBOOST_PP_NIL, NDNBOOST_PP_NIL)), NDNBOOST_PP_BITAND(NDNBOOST_PP_CAT(NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_, NDNBOOST_PP_LIST_FOLD_LEFT_ ## n(NDNBOOST_PP_NIL, NDNBOOST_PP_NIL, NDNBOOST_PP_NIL)), NDNBOOST_PP_CAT(NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_, NDNBOOST_PP_LIST_FOLD_RIGHT_ ## n(NDNBOOST_PP_NIL, NDNBOOST_PP_NIL, NDNBOOST_PP_NIL))))
 # else
-#    define BOOST_PP_WHILE_P(n) BOOST_PP_BITAND(BOOST_PP_CAT(BOOST_PP_WHILE_CHECK_, BOOST_PP_WHILE_ ## n(BOOST_PP_WHILE_F, BOOST_PP_NIL, BOOST_PP_NIL)), BOOST_PP_CAT(BOOST_PP_LIST_FOLD_LEFT_CHECK_, BOOST_PP_LIST_FOLD_LEFT_ ## n(BOOST_PP_NIL, BOOST_PP_NIL, BOOST_PP_NIL)))
+#    define NDNBOOST_PP_WHILE_P(n) NDNBOOST_PP_BITAND(NDNBOOST_PP_CAT(NDNBOOST_PP_WHILE_CHECK_, NDNBOOST_PP_WHILE_ ## n(NDNBOOST_PP_WHILE_F, NDNBOOST_PP_NIL, NDNBOOST_PP_NIL)), NDNBOOST_PP_CAT(NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_, NDNBOOST_PP_LIST_FOLD_LEFT_ ## n(NDNBOOST_PP_NIL, NDNBOOST_PP_NIL, NDNBOOST_PP_NIL)))
 # endif
 #
-# define BOOST_PP_WHILE_F(d, _) 0
+# define NDNBOOST_PP_WHILE_F(d, _) 0
 #
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+# if NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
 #    include <ndnboost/preprocessor/control/detail/edg/while.hpp>
-# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
+# elif NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MSVC()
 #    include <ndnboost/preprocessor/control/detail/msvc/while.hpp>
-# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC()
+# elif NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_DMC()
 #    include <ndnboost/preprocessor/control/detail/dmc/while.hpp>
 # else
 #    include <ndnboost/preprocessor/control/detail/while.hpp>
 # endif
 #
-# define BOOST_PP_WHILE_257(p, o, s) BOOST_PP_ERROR(0x0001)
+# define NDNBOOST_PP_WHILE_257(p, o, s) NDNBOOST_PP_ERROR(0x0001)
 #
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_NIL 1
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_NIL 1
 #
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_1(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_2(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_3(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_4(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_5(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_6(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_7(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_8(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_9(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_10(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_11(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_12(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_13(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_14(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_15(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_16(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_17(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_18(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_19(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_20(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_21(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_22(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_23(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_24(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_25(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_26(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_27(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_28(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_29(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_30(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_31(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_32(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_33(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_34(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_35(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_36(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_37(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_38(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_39(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_40(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_41(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_42(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_43(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_44(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_45(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_46(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_47(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_48(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_49(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_50(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_51(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_52(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_53(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_54(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_55(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_56(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_57(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_58(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_59(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_60(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_61(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_62(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_63(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_64(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_65(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_66(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_67(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_68(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_69(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_70(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_71(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_72(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_73(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_74(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_75(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_76(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_77(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_78(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_79(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_80(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_81(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_82(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_83(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_84(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_85(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_86(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_87(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_88(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_89(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_90(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_91(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_92(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_93(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_94(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_95(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_96(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_97(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_98(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_99(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_100(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_101(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_102(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_103(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_104(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_105(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_106(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_107(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_108(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_109(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_110(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_111(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_112(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_113(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_114(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_115(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_116(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_117(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_118(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_119(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_120(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_121(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_122(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_123(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_124(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_125(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_126(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_127(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_128(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_129(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_130(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_131(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_132(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_133(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_134(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_135(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_136(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_137(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_138(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_139(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_140(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_141(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_142(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_143(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_144(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_145(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_146(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_147(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_148(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_149(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_150(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_151(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_152(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_153(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_154(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_155(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_156(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_157(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_158(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_159(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_160(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_161(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_162(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_163(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_164(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_165(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_166(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_167(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_168(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_169(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_170(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_171(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_172(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_173(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_174(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_175(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_176(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_177(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_178(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_179(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_180(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_181(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_182(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_183(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_184(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_185(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_186(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_187(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_188(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_189(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_190(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_191(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_192(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_193(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_194(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_195(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_196(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_197(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_198(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_199(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_200(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_201(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_202(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_203(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_204(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_205(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_206(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_207(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_208(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_209(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_210(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_211(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_212(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_213(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_214(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_215(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_216(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_217(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_218(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_219(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_220(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_221(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_222(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_223(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_224(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_225(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_226(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_227(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_228(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_229(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_230(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_231(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_232(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_233(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_234(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_235(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_236(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_237(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_238(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_239(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_240(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_241(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_242(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_243(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_244(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_245(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_246(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_247(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_248(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_249(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_250(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_251(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_252(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_253(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_254(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_255(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_256(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_1(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_2(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_3(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_4(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_5(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_6(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_7(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_8(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_9(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_10(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_11(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_12(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_13(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_14(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_15(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_16(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_17(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_18(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_19(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_20(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_21(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_22(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_23(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_24(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_25(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_26(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_27(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_28(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_29(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_30(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_31(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_32(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_33(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_34(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_35(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_36(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_37(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_38(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_39(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_40(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_41(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_42(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_43(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_44(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_45(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_46(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_47(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_48(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_49(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_50(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_51(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_52(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_53(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_54(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_55(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_56(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_57(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_58(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_59(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_60(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_61(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_62(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_63(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_64(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_65(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_66(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_67(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_68(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_69(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_70(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_71(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_72(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_73(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_74(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_75(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_76(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_77(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_78(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_79(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_80(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_81(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_82(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_83(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_84(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_85(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_86(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_87(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_88(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_89(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_90(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_91(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_92(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_93(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_94(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_95(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_96(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_97(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_98(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_99(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_100(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_101(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_102(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_103(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_104(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_105(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_106(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_107(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_108(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_109(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_110(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_111(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_112(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_113(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_114(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_115(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_116(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_117(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_118(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_119(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_120(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_121(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_122(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_123(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_124(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_125(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_126(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_127(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_128(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_129(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_130(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_131(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_132(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_133(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_134(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_135(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_136(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_137(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_138(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_139(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_140(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_141(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_142(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_143(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_144(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_145(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_146(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_147(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_148(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_149(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_150(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_151(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_152(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_153(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_154(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_155(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_156(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_157(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_158(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_159(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_160(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_161(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_162(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_163(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_164(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_165(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_166(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_167(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_168(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_169(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_170(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_171(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_172(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_173(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_174(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_175(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_176(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_177(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_178(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_179(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_180(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_181(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_182(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_183(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_184(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_185(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_186(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_187(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_188(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_189(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_190(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_191(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_192(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_193(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_194(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_195(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_196(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_197(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_198(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_199(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_200(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_201(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_202(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_203(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_204(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_205(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_206(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_207(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_208(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_209(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_210(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_211(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_212(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_213(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_214(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_215(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_216(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_217(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_218(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_219(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_220(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_221(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_222(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_223(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_224(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_225(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_226(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_227(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_228(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_229(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_230(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_231(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_232(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_233(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_234(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_235(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_236(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_237(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_238(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_239(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_240(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_241(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_242(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_243(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_244(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_245(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_246(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_247(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_248(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_249(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_250(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_251(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_252(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_253(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_254(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_255(p, o, s) 0
+# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_WHILE_256(p, o, s) 0
 #
 # endif
diff --git a/include/ndnboost/preprocessor/debug/error.hpp b/include/ndnboost/preprocessor/debug/error.hpp
index 5adb571..69f1358 100644
--- a/include/ndnboost/preprocessor/debug/error.hpp
+++ b/include/ndnboost/preprocessor/debug/error.hpp
@@ -9,25 +9,25 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_DEBUG_ERROR_HPP
-# define BOOST_PREPROCESSOR_DEBUG_ERROR_HPP
+# ifndef NDNBOOST_PREPROCESSOR_DEBUG_ERROR_HPP
+# define NDNBOOST_PREPROCESSOR_DEBUG_ERROR_HPP
 #
 # include <ndnboost/preprocessor/cat.hpp>
 # include <ndnboost/preprocessor/config/config.hpp>
 #
-# /* BOOST_PP_ERROR */
+# /* NDNBOOST_PP_ERROR */
 #
-# if BOOST_PP_CONFIG_ERRORS
-#    define BOOST_PP_ERROR(code) BOOST_PP_CAT(BOOST_PP_ERROR_, code)
+# if NDNBOOST_PP_CONFIG_ERRORS
+#    define NDNBOOST_PP_ERROR(code) NDNBOOST_PP_CAT(NDNBOOST_PP_ERROR_, code)
 # endif
 #
-# define BOOST_PP_ERROR_0x0000 BOOST_PP_ERROR(0x0000, BOOST_PP_INDEX_OUT_OF_BOUNDS)
-# define BOOST_PP_ERROR_0x0001 BOOST_PP_ERROR(0x0001, BOOST_PP_WHILE_OVERFLOW)
-# define BOOST_PP_ERROR_0x0002 BOOST_PP_ERROR(0x0002, BOOST_PP_FOR_OVERFLOW)
-# define BOOST_PP_ERROR_0x0003 BOOST_PP_ERROR(0x0003, BOOST_PP_REPEAT_OVERFLOW)
-# define BOOST_PP_ERROR_0x0004 BOOST_PP_ERROR(0x0004, BOOST_PP_LIST_FOLD_OVERFLOW)
-# define BOOST_PP_ERROR_0x0005 BOOST_PP_ERROR(0x0005, BOOST_PP_SEQ_FOLD_OVERFLOW)
-# define BOOST_PP_ERROR_0x0006 BOOST_PP_ERROR(0x0006, BOOST_PP_ARITHMETIC_OVERFLOW)
-# define BOOST_PP_ERROR_0x0007 BOOST_PP_ERROR(0x0007, BOOST_PP_DIVISION_BY_ZERO)
+# define NDNBOOST_PP_ERROR_0x0000 NDNBOOST_PP_ERROR(0x0000, NDNBOOST_PP_INDEX_OUT_OF_BOUNDS)
+# define NDNBOOST_PP_ERROR_0x0001 NDNBOOST_PP_ERROR(0x0001, NDNBOOST_PP_WHILE_OVERFLOW)
+# define NDNBOOST_PP_ERROR_0x0002 NDNBOOST_PP_ERROR(0x0002, NDNBOOST_PP_FOR_OVERFLOW)
+# define NDNBOOST_PP_ERROR_0x0003 NDNBOOST_PP_ERROR(0x0003, NDNBOOST_PP_REPEAT_OVERFLOW)
+# define NDNBOOST_PP_ERROR_0x0004 NDNBOOST_PP_ERROR(0x0004, NDNBOOST_PP_LIST_FOLD_OVERFLOW)
+# define NDNBOOST_PP_ERROR_0x0005 NDNBOOST_PP_ERROR(0x0005, NDNBOOST_PP_SEQ_FOLD_OVERFLOW)
+# define NDNBOOST_PP_ERROR_0x0006 NDNBOOST_PP_ERROR(0x0006, NDNBOOST_PP_ARITHMETIC_OVERFLOW)
+# define NDNBOOST_PP_ERROR_0x0007 NDNBOOST_PP_ERROR(0x0007, NDNBOOST_PP_DIVISION_BY_ZERO)
 #
 # endif
diff --git a/include/ndnboost/preprocessor/dec.hpp b/include/ndnboost/preprocessor/dec.hpp
index a5678ad..148e739 100644
--- a/include/ndnboost/preprocessor/dec.hpp
+++ b/include/ndnboost/preprocessor/dec.hpp
@@ -9,8 +9,8 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_DEC_HPP
-# define BOOST_PREPROCESSOR_DEC_HPP
+# ifndef NDNBOOST_PREPROCESSOR_DEC_HPP
+# define NDNBOOST_PREPROCESSOR_DEC_HPP
 #
 # include <ndnboost/preprocessor/arithmetic/dec.hpp>
 #
diff --git a/include/ndnboost/preprocessor/detail/auto_rec.hpp b/include/ndnboost/preprocessor/detail/auto_rec.hpp
index 8167a15..0bf4ace 100644
--- a/include/ndnboost/preprocessor/detail/auto_rec.hpp
+++ b/include/ndnboost/preprocessor/detail/auto_rec.hpp
@@ -11,283 +11,283 @@
 #
 # include <ndnboost/preprocessor/config/config.hpp>
 #
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC()
+# if NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_DMC()
 #     include <ndnboost/preprocessor/detail/dmc/auto_rec.hpp>
 # else
 #
-# ifndef BOOST_PREPROCESSOR_DETAIL_AUTO_REC_HPP
-# define BOOST_PREPROCESSOR_DETAIL_AUTO_REC_HPP
+# ifndef NDNBOOST_PREPROCESSOR_DETAIL_AUTO_REC_HPP
+# define NDNBOOST_PREPROCESSOR_DETAIL_AUTO_REC_HPP
 #
 # include <ndnboost/preprocessor/control/iif.hpp>
 #
-# /* BOOST_PP_AUTO_REC */
+# /* NDNBOOST_PP_AUTO_REC */
 #
-# define BOOST_PP_AUTO_REC(pred, n) BOOST_PP_NODE_ENTRY_ ## n(pred)
+# define NDNBOOST_PP_AUTO_REC(pred, n) NDNBOOST_PP_NODE_ENTRY_ ## n(pred)
 #
-# define BOOST_PP_NODE_ENTRY_256(p) BOOST_PP_NODE_128(p)(p)(p)(p)(p)(p)(p)(p)
-# define BOOST_PP_NODE_ENTRY_128(p) BOOST_PP_NODE_64(p)(p)(p)(p)(p)(p)(p)
-# define BOOST_PP_NODE_ENTRY_64(p) BOOST_PP_NODE_32(p)(p)(p)(p)(p)(p)
-# define BOOST_PP_NODE_ENTRY_32(p) BOOST_PP_NODE_16(p)(p)(p)(p)(p)
-# define BOOST_PP_NODE_ENTRY_16(p) BOOST_PP_NODE_8(p)(p)(p)(p)
-# define BOOST_PP_NODE_ENTRY_8(p) BOOST_PP_NODE_4(p)(p)(p)
-# define BOOST_PP_NODE_ENTRY_4(p) BOOST_PP_NODE_2(p)(p)
-# define BOOST_PP_NODE_ENTRY_2(p) BOOST_PP_NODE_1(p)
+# define NDNBOOST_PP_NODE_ENTRY_256(p) NDNBOOST_PP_NODE_128(p)(p)(p)(p)(p)(p)(p)(p)
+# define NDNBOOST_PP_NODE_ENTRY_128(p) NDNBOOST_PP_NODE_64(p)(p)(p)(p)(p)(p)(p)
+# define NDNBOOST_PP_NODE_ENTRY_64(p) NDNBOOST_PP_NODE_32(p)(p)(p)(p)(p)(p)
+# define NDNBOOST_PP_NODE_ENTRY_32(p) NDNBOOST_PP_NODE_16(p)(p)(p)(p)(p)
+# define NDNBOOST_PP_NODE_ENTRY_16(p) NDNBOOST_PP_NODE_8(p)(p)(p)(p)
+# define NDNBOOST_PP_NODE_ENTRY_8(p) NDNBOOST_PP_NODE_4(p)(p)(p)
+# define NDNBOOST_PP_NODE_ENTRY_4(p) NDNBOOST_PP_NODE_2(p)(p)
+# define NDNBOOST_PP_NODE_ENTRY_2(p) NDNBOOST_PP_NODE_1(p)
 #
-# define BOOST_PP_NODE_128(p) BOOST_PP_IIF(p(128), BOOST_PP_NODE_64, BOOST_PP_NODE_192)
-#    define BOOST_PP_NODE_64(p) BOOST_PP_IIF(p(64), BOOST_PP_NODE_32, BOOST_PP_NODE_96)
-#        define BOOST_PP_NODE_32(p) BOOST_PP_IIF(p(32), BOOST_PP_NODE_16, BOOST_PP_NODE_48)
-#            define BOOST_PP_NODE_16(p) BOOST_PP_IIF(p(16), BOOST_PP_NODE_8, BOOST_PP_NODE_24)
-#                define BOOST_PP_NODE_8(p) BOOST_PP_IIF(p(8), BOOST_PP_NODE_4, BOOST_PP_NODE_12)
-#                    define BOOST_PP_NODE_4(p) BOOST_PP_IIF(p(4), BOOST_PP_NODE_2, BOOST_PP_NODE_6)
-#                        define BOOST_PP_NODE_2(p) BOOST_PP_IIF(p(2), BOOST_PP_NODE_1, BOOST_PP_NODE_3)
-#                            define BOOST_PP_NODE_1(p) BOOST_PP_IIF(p(1), 1, 2)
-#                            define BOOST_PP_NODE_3(p) BOOST_PP_IIF(p(3), 3, 4)
-#                        define BOOST_PP_NODE_6(p) BOOST_PP_IIF(p(6), BOOST_PP_NODE_5, BOOST_PP_NODE_7)
-#                            define BOOST_PP_NODE_5(p) BOOST_PP_IIF(p(5), 5, 6)
-#                            define BOOST_PP_NODE_7(p) BOOST_PP_IIF(p(7), 7, 8)
-#                    define BOOST_PP_NODE_12(p) BOOST_PP_IIF(p(12), BOOST_PP_NODE_10, BOOST_PP_NODE_14)
-#                        define BOOST_PP_NODE_10(p) BOOST_PP_IIF(p(10), BOOST_PP_NODE_9, BOOST_PP_NODE_11)
-#                            define BOOST_PP_NODE_9(p) BOOST_PP_IIF(p(9), 9, 10)
-#                            define BOOST_PP_NODE_11(p) BOOST_PP_IIF(p(11), 11, 12)
-#                        define BOOST_PP_NODE_14(p) BOOST_PP_IIF(p(14), BOOST_PP_NODE_13, BOOST_PP_NODE_15)
-#                            define BOOST_PP_NODE_13(p) BOOST_PP_IIF(p(13), 13, 14)
-#                            define BOOST_PP_NODE_15(p) BOOST_PP_IIF(p(15), 15, 16)
-#                define BOOST_PP_NODE_24(p) BOOST_PP_IIF(p(24), BOOST_PP_NODE_20, BOOST_PP_NODE_28)
-#                    define BOOST_PP_NODE_20(p) BOOST_PP_IIF(p(20), BOOST_PP_NODE_18, BOOST_PP_NODE_22)
-#                        define BOOST_PP_NODE_18(p) BOOST_PP_IIF(p(18), BOOST_PP_NODE_17, BOOST_PP_NODE_19)
-#                            define BOOST_PP_NODE_17(p) BOOST_PP_IIF(p(17), 17, 18)
-#                            define BOOST_PP_NODE_19(p) BOOST_PP_IIF(p(19), 19, 20)
-#                        define BOOST_PP_NODE_22(p) BOOST_PP_IIF(p(22), BOOST_PP_NODE_21, BOOST_PP_NODE_23)
-#                            define BOOST_PP_NODE_21(p) BOOST_PP_IIF(p(21), 21, 22)
-#                            define BOOST_PP_NODE_23(p) BOOST_PP_IIF(p(23), 23, 24)
-#                    define BOOST_PP_NODE_28(p) BOOST_PP_IIF(p(28), BOOST_PP_NODE_26, BOOST_PP_NODE_30)
-#                        define BOOST_PP_NODE_26(p) BOOST_PP_IIF(p(26), BOOST_PP_NODE_25, BOOST_PP_NODE_27)
-#                            define BOOST_PP_NODE_25(p) BOOST_PP_IIF(p(25), 25, 26)
-#                            define BOOST_PP_NODE_27(p) BOOST_PP_IIF(p(27), 27, 28)
-#                        define BOOST_PP_NODE_30(p) BOOST_PP_IIF(p(30), BOOST_PP_NODE_29, BOOST_PP_NODE_31)
-#                            define BOOST_PP_NODE_29(p) BOOST_PP_IIF(p(29), 29, 30)
-#                            define BOOST_PP_NODE_31(p) BOOST_PP_IIF(p(31), 31, 32)
-#            define BOOST_PP_NODE_48(p) BOOST_PP_IIF(p(48), BOOST_PP_NODE_40, BOOST_PP_NODE_56)
-#                define BOOST_PP_NODE_40(p) BOOST_PP_IIF(p(40), BOOST_PP_NODE_36, BOOST_PP_NODE_44)
-#                    define BOOST_PP_NODE_36(p) BOOST_PP_IIF(p(36), BOOST_PP_NODE_34, BOOST_PP_NODE_38)
-#                        define BOOST_PP_NODE_34(p) BOOST_PP_IIF(p(34), BOOST_PP_NODE_33, BOOST_PP_NODE_35)
-#                            define BOOST_PP_NODE_33(p) BOOST_PP_IIF(p(33), 33, 34)
-#                            define BOOST_PP_NODE_35(p) BOOST_PP_IIF(p(35), 35, 36)
-#                        define BOOST_PP_NODE_38(p) BOOST_PP_IIF(p(38), BOOST_PP_NODE_37, BOOST_PP_NODE_39)
-#                            define BOOST_PP_NODE_37(p) BOOST_PP_IIF(p(37), 37, 38)
-#                            define BOOST_PP_NODE_39(p) BOOST_PP_IIF(p(39), 39, 40)
-#                    define BOOST_PP_NODE_44(p) BOOST_PP_IIF(p(44), BOOST_PP_NODE_42, BOOST_PP_NODE_46)
-#                        define BOOST_PP_NODE_42(p) BOOST_PP_IIF(p(42), BOOST_PP_NODE_41, BOOST_PP_NODE_43)
-#                            define BOOST_PP_NODE_41(p) BOOST_PP_IIF(p(41), 41, 42)
-#                            define BOOST_PP_NODE_43(p) BOOST_PP_IIF(p(43), 43, 44)
-#                        define BOOST_PP_NODE_46(p) BOOST_PP_IIF(p(46), BOOST_PP_NODE_45, BOOST_PP_NODE_47)
-#                            define BOOST_PP_NODE_45(p) BOOST_PP_IIF(p(45), 45, 46)
-#                            define BOOST_PP_NODE_47(p) BOOST_PP_IIF(p(47), 47, 48)
-#                define BOOST_PP_NODE_56(p) BOOST_PP_IIF(p(56), BOOST_PP_NODE_52, BOOST_PP_NODE_60)
-#                    define BOOST_PP_NODE_52(p) BOOST_PP_IIF(p(52), BOOST_PP_NODE_50, BOOST_PP_NODE_54)
-#                        define BOOST_PP_NODE_50(p) BOOST_PP_IIF(p(50), BOOST_PP_NODE_49, BOOST_PP_NODE_51)
-#                            define BOOST_PP_NODE_49(p) BOOST_PP_IIF(p(49), 49, 50)
-#                            define BOOST_PP_NODE_51(p) BOOST_PP_IIF(p(51), 51, 52)
-#                        define BOOST_PP_NODE_54(p) BOOST_PP_IIF(p(54), BOOST_PP_NODE_53, BOOST_PP_NODE_55)
-#                            define BOOST_PP_NODE_53(p) BOOST_PP_IIF(p(53), 53, 54)
-#                            define BOOST_PP_NODE_55(p) BOOST_PP_IIF(p(55), 55, 56)
-#                    define BOOST_PP_NODE_60(p) BOOST_PP_IIF(p(60), BOOST_PP_NODE_58, BOOST_PP_NODE_62)
-#                        define BOOST_PP_NODE_58(p) BOOST_PP_IIF(p(58), BOOST_PP_NODE_57, BOOST_PP_NODE_59)
-#                            define BOOST_PP_NODE_57(p) BOOST_PP_IIF(p(57), 57, 58)
-#                            define BOOST_PP_NODE_59(p) BOOST_PP_IIF(p(59), 59, 60)
-#                        define BOOST_PP_NODE_62(p) BOOST_PP_IIF(p(62), BOOST_PP_NODE_61, BOOST_PP_NODE_63)
-#                            define BOOST_PP_NODE_61(p) BOOST_PP_IIF(p(61), 61, 62)
-#                            define BOOST_PP_NODE_63(p) BOOST_PP_IIF(p(63), 63, 64)
-#        define BOOST_PP_NODE_96(p) BOOST_PP_IIF(p(96), BOOST_PP_NODE_80, BOOST_PP_NODE_112)
-#            define BOOST_PP_NODE_80(p) BOOST_PP_IIF(p(80), BOOST_PP_NODE_72, BOOST_PP_NODE_88)
-#                define BOOST_PP_NODE_72(p) BOOST_PP_IIF(p(72), BOOST_PP_NODE_68, BOOST_PP_NODE_76)
-#                    define BOOST_PP_NODE_68(p) BOOST_PP_IIF(p(68), BOOST_PP_NODE_66, BOOST_PP_NODE_70)
-#                        define BOOST_PP_NODE_66(p) BOOST_PP_IIF(p(66), BOOST_PP_NODE_65, BOOST_PP_NODE_67)
-#                            define BOOST_PP_NODE_65(p) BOOST_PP_IIF(p(65), 65, 66)
-#                            define BOOST_PP_NODE_67(p) BOOST_PP_IIF(p(67), 67, 68)
-#                        define BOOST_PP_NODE_70(p) BOOST_PP_IIF(p(70), BOOST_PP_NODE_69, BOOST_PP_NODE_71)
-#                            define BOOST_PP_NODE_69(p) BOOST_PP_IIF(p(69), 69, 70)
-#                            define BOOST_PP_NODE_71(p) BOOST_PP_IIF(p(71), 71, 72)
-#                    define BOOST_PP_NODE_76(p) BOOST_PP_IIF(p(76), BOOST_PP_NODE_74, BOOST_PP_NODE_78)
-#                        define BOOST_PP_NODE_74(p) BOOST_PP_IIF(p(74), BOOST_PP_NODE_73, BOOST_PP_NODE_75)
-#                            define BOOST_PP_NODE_73(p) BOOST_PP_IIF(p(73), 73, 74)
-#                            define BOOST_PP_NODE_75(p) BOOST_PP_IIF(p(75), 75, 76)
-#                        define BOOST_PP_NODE_78(p) BOOST_PP_IIF(p(78), BOOST_PP_NODE_77, BOOST_PP_NODE_79)
-#                            define BOOST_PP_NODE_77(p) BOOST_PP_IIF(p(77), 77, 78)
-#                            define BOOST_PP_NODE_79(p) BOOST_PP_IIF(p(79), 79, 80)
-#                define BOOST_PP_NODE_88(p) BOOST_PP_IIF(p(88), BOOST_PP_NODE_84, BOOST_PP_NODE_92)
-#                    define BOOST_PP_NODE_84(p) BOOST_PP_IIF(p(84), BOOST_PP_NODE_82, BOOST_PP_NODE_86)
-#                        define BOOST_PP_NODE_82(p) BOOST_PP_IIF(p(82), BOOST_PP_NODE_81, BOOST_PP_NODE_83)
-#                            define BOOST_PP_NODE_81(p) BOOST_PP_IIF(p(81), 81, 82)
-#                            define BOOST_PP_NODE_83(p) BOOST_PP_IIF(p(83), 83, 84)
-#                        define BOOST_PP_NODE_86(p) BOOST_PP_IIF(p(86), BOOST_PP_NODE_85, BOOST_PP_NODE_87)
-#                            define BOOST_PP_NODE_85(p) BOOST_PP_IIF(p(85), 85, 86)
-#                            define BOOST_PP_NODE_87(p) BOOST_PP_IIF(p(87), 87, 88)
-#                    define BOOST_PP_NODE_92(p) BOOST_PP_IIF(p(92), BOOST_PP_NODE_90, BOOST_PP_NODE_94)
-#                        define BOOST_PP_NODE_90(p) BOOST_PP_IIF(p(90), BOOST_PP_NODE_89, BOOST_PP_NODE_91)
-#                            define BOOST_PP_NODE_89(p) BOOST_PP_IIF(p(89), 89, 90)
-#                            define BOOST_PP_NODE_91(p) BOOST_PP_IIF(p(91), 91, 92)
-#                        define BOOST_PP_NODE_94(p) BOOST_PP_IIF(p(94), BOOST_PP_NODE_93, BOOST_PP_NODE_95)
-#                            define BOOST_PP_NODE_93(p) BOOST_PP_IIF(p(93), 93, 94)
-#                            define BOOST_PP_NODE_95(p) BOOST_PP_IIF(p(95), 95, 96)
-#            define BOOST_PP_NODE_112(p) BOOST_PP_IIF(p(112), BOOST_PP_NODE_104, BOOST_PP_NODE_120)
-#                define BOOST_PP_NODE_104(p) BOOST_PP_IIF(p(104), BOOST_PP_NODE_100, BOOST_PP_NODE_108)
-#                    define BOOST_PP_NODE_100(p) BOOST_PP_IIF(p(100), BOOST_PP_NODE_98, BOOST_PP_NODE_102)
-#                        define BOOST_PP_NODE_98(p) BOOST_PP_IIF(p(98), BOOST_PP_NODE_97, BOOST_PP_NODE_99)
-#                            define BOOST_PP_NODE_97(p) BOOST_PP_IIF(p(97), 97, 98)
-#                            define BOOST_PP_NODE_99(p) BOOST_PP_IIF(p(99), 99, 100)
-#                        define BOOST_PP_NODE_102(p) BOOST_PP_IIF(p(102), BOOST_PP_NODE_101, BOOST_PP_NODE_103)
-#                            define BOOST_PP_NODE_101(p) BOOST_PP_IIF(p(101), 101, 102)
-#                            define BOOST_PP_NODE_103(p) BOOST_PP_IIF(p(103), 103, 104)
-#                    define BOOST_PP_NODE_108(p) BOOST_PP_IIF(p(108), BOOST_PP_NODE_106, BOOST_PP_NODE_110)
-#                        define BOOST_PP_NODE_106(p) BOOST_PP_IIF(p(106), BOOST_PP_NODE_105, BOOST_PP_NODE_107)
-#                            define BOOST_PP_NODE_105(p) BOOST_PP_IIF(p(105), 105, 106)
-#                            define BOOST_PP_NODE_107(p) BOOST_PP_IIF(p(107), 107, 108)
-#                        define BOOST_PP_NODE_110(p) BOOST_PP_IIF(p(110), BOOST_PP_NODE_109, BOOST_PP_NODE_111)
-#                            define BOOST_PP_NODE_109(p) BOOST_PP_IIF(p(109), 109, 110)
-#                            define BOOST_PP_NODE_111(p) BOOST_PP_IIF(p(111), 111, 112)
-#                define BOOST_PP_NODE_120(p) BOOST_PP_IIF(p(120), BOOST_PP_NODE_116, BOOST_PP_NODE_124)
-#                    define BOOST_PP_NODE_116(p) BOOST_PP_IIF(p(116), BOOST_PP_NODE_114, BOOST_PP_NODE_118)
-#                        define BOOST_PP_NODE_114(p) BOOST_PP_IIF(p(114), BOOST_PP_NODE_113, BOOST_PP_NODE_115)
-#                            define BOOST_PP_NODE_113(p) BOOST_PP_IIF(p(113), 113, 114)
-#                            define BOOST_PP_NODE_115(p) BOOST_PP_IIF(p(115), 115, 116)
-#                        define BOOST_PP_NODE_118(p) BOOST_PP_IIF(p(118), BOOST_PP_NODE_117, BOOST_PP_NODE_119)
-#                            define BOOST_PP_NODE_117(p) BOOST_PP_IIF(p(117), 117, 118)
-#                            define BOOST_PP_NODE_119(p) BOOST_PP_IIF(p(119), 119, 120)
-#                    define BOOST_PP_NODE_124(p) BOOST_PP_IIF(p(124), BOOST_PP_NODE_122, BOOST_PP_NODE_126)
-#                        define BOOST_PP_NODE_122(p) BOOST_PP_IIF(p(122), BOOST_PP_NODE_121, BOOST_PP_NODE_123)
-#                            define BOOST_PP_NODE_121(p) BOOST_PP_IIF(p(121), 121, 122)
-#                            define BOOST_PP_NODE_123(p) BOOST_PP_IIF(p(123), 123, 124)
-#                        define BOOST_PP_NODE_126(p) BOOST_PP_IIF(p(126), BOOST_PP_NODE_125, BOOST_PP_NODE_127)
-#                            define BOOST_PP_NODE_125(p) BOOST_PP_IIF(p(125), 125, 126)
-#                            define BOOST_PP_NODE_127(p) BOOST_PP_IIF(p(127), 127, 128)
-#    define BOOST_PP_NODE_192(p) BOOST_PP_IIF(p(192), BOOST_PP_NODE_160, BOOST_PP_NODE_224)
-#        define BOOST_PP_NODE_160(p) BOOST_PP_IIF(p(160), BOOST_PP_NODE_144, BOOST_PP_NODE_176)
-#            define BOOST_PP_NODE_144(p) BOOST_PP_IIF(p(144), BOOST_PP_NODE_136, BOOST_PP_NODE_152)
-#                define BOOST_PP_NODE_136(p) BOOST_PP_IIF(p(136), BOOST_PP_NODE_132, BOOST_PP_NODE_140)
-#                    define BOOST_PP_NODE_132(p) BOOST_PP_IIF(p(132), BOOST_PP_NODE_130, BOOST_PP_NODE_134)
-#                        define BOOST_PP_NODE_130(p) BOOST_PP_IIF(p(130), BOOST_PP_NODE_129, BOOST_PP_NODE_131)
-#                            define BOOST_PP_NODE_129(p) BOOST_PP_IIF(p(129), 129, 130)
-#                            define BOOST_PP_NODE_131(p) BOOST_PP_IIF(p(131), 131, 132)
-#                        define BOOST_PP_NODE_134(p) BOOST_PP_IIF(p(134), BOOST_PP_NODE_133, BOOST_PP_NODE_135)
-#                            define BOOST_PP_NODE_133(p) BOOST_PP_IIF(p(133), 133, 134)
-#                            define BOOST_PP_NODE_135(p) BOOST_PP_IIF(p(135), 135, 136)
-#                    define BOOST_PP_NODE_140(p) BOOST_PP_IIF(p(140), BOOST_PP_NODE_138, BOOST_PP_NODE_142)
-#                        define BOOST_PP_NODE_138(p) BOOST_PP_IIF(p(138), BOOST_PP_NODE_137, BOOST_PP_NODE_139)
-#                            define BOOST_PP_NODE_137(p) BOOST_PP_IIF(p(137), 137, 138)
-#                            define BOOST_PP_NODE_139(p) BOOST_PP_IIF(p(139), 139, 140)
-#                        define BOOST_PP_NODE_142(p) BOOST_PP_IIF(p(142), BOOST_PP_NODE_141, BOOST_PP_NODE_143)
-#                            define BOOST_PP_NODE_141(p) BOOST_PP_IIF(p(141), 141, 142)
-#                            define BOOST_PP_NODE_143(p) BOOST_PP_IIF(p(143), 143, 144)
-#                define BOOST_PP_NODE_152(p) BOOST_PP_IIF(p(152), BOOST_PP_NODE_148, BOOST_PP_NODE_156)
-#                    define BOOST_PP_NODE_148(p) BOOST_PP_IIF(p(148), BOOST_PP_NODE_146, BOOST_PP_NODE_150)
-#                        define BOOST_PP_NODE_146(p) BOOST_PP_IIF(p(146), BOOST_PP_NODE_145, BOOST_PP_NODE_147)
-#                            define BOOST_PP_NODE_145(p) BOOST_PP_IIF(p(145), 145, 146)
-#                            define BOOST_PP_NODE_147(p) BOOST_PP_IIF(p(147), 147, 148)
-#                        define BOOST_PP_NODE_150(p) BOOST_PP_IIF(p(150), BOOST_PP_NODE_149, BOOST_PP_NODE_151)
-#                            define BOOST_PP_NODE_149(p) BOOST_PP_IIF(p(149), 149, 150)
-#                            define BOOST_PP_NODE_151(p) BOOST_PP_IIF(p(151), 151, 152)
-#                    define BOOST_PP_NODE_156(p) BOOST_PP_IIF(p(156), BOOST_PP_NODE_154, BOOST_PP_NODE_158)
-#                        define BOOST_PP_NODE_154(p) BOOST_PP_IIF(p(154), BOOST_PP_NODE_153, BOOST_PP_NODE_155)
-#                            define BOOST_PP_NODE_153(p) BOOST_PP_IIF(p(153), 153, 154)
-#                            define BOOST_PP_NODE_155(p) BOOST_PP_IIF(p(155), 155, 156)
-#                        define BOOST_PP_NODE_158(p) BOOST_PP_IIF(p(158), BOOST_PP_NODE_157, BOOST_PP_NODE_159)
-#                            define BOOST_PP_NODE_157(p) BOOST_PP_IIF(p(157), 157, 158)
-#                            define BOOST_PP_NODE_159(p) BOOST_PP_IIF(p(159), 159, 160)
-#            define BOOST_PP_NODE_176(p) BOOST_PP_IIF(p(176), BOOST_PP_NODE_168, BOOST_PP_NODE_184)
-#                define BOOST_PP_NODE_168(p) BOOST_PP_IIF(p(168), BOOST_PP_NODE_164, BOOST_PP_NODE_172)
-#                    define BOOST_PP_NODE_164(p) BOOST_PP_IIF(p(164), BOOST_PP_NODE_162, BOOST_PP_NODE_166)
-#                        define BOOST_PP_NODE_162(p) BOOST_PP_IIF(p(162), BOOST_PP_NODE_161, BOOST_PP_NODE_163)
-#                            define BOOST_PP_NODE_161(p) BOOST_PP_IIF(p(161), 161, 162)
-#                            define BOOST_PP_NODE_163(p) BOOST_PP_IIF(p(163), 163, 164)
-#                        define BOOST_PP_NODE_166(p) BOOST_PP_IIF(p(166), BOOST_PP_NODE_165, BOOST_PP_NODE_167)
-#                            define BOOST_PP_NODE_165(p) BOOST_PP_IIF(p(165), 165, 166)
-#                            define BOOST_PP_NODE_167(p) BOOST_PP_IIF(p(167), 167, 168)
-#                    define BOOST_PP_NODE_172(p) BOOST_PP_IIF(p(172), BOOST_PP_NODE_170, BOOST_PP_NODE_174)
-#                        define BOOST_PP_NODE_170(p) BOOST_PP_IIF(p(170), BOOST_PP_NODE_169, BOOST_PP_NODE_171)
-#                            define BOOST_PP_NODE_169(p) BOOST_PP_IIF(p(169), 169, 170)
-#                            define BOOST_PP_NODE_171(p) BOOST_PP_IIF(p(171), 171, 172)
-#                        define BOOST_PP_NODE_174(p) BOOST_PP_IIF(p(174), BOOST_PP_NODE_173, BOOST_PP_NODE_175)
-#                            define BOOST_PP_NODE_173(p) BOOST_PP_IIF(p(173), 173, 174)
-#                            define BOOST_PP_NODE_175(p) BOOST_PP_IIF(p(175), 175, 176)
-#                define BOOST_PP_NODE_184(p) BOOST_PP_IIF(p(184), BOOST_PP_NODE_180, BOOST_PP_NODE_188)
-#                    define BOOST_PP_NODE_180(p) BOOST_PP_IIF(p(180), BOOST_PP_NODE_178, BOOST_PP_NODE_182)
-#                        define BOOST_PP_NODE_178(p) BOOST_PP_IIF(p(178), BOOST_PP_NODE_177, BOOST_PP_NODE_179)
-#                            define BOOST_PP_NODE_177(p) BOOST_PP_IIF(p(177), 177, 178)
-#                            define BOOST_PP_NODE_179(p) BOOST_PP_IIF(p(179), 179, 180)
-#                        define BOOST_PP_NODE_182(p) BOOST_PP_IIF(p(182), BOOST_PP_NODE_181, BOOST_PP_NODE_183)
-#                            define BOOST_PP_NODE_181(p) BOOST_PP_IIF(p(181), 181, 182)
-#                            define BOOST_PP_NODE_183(p) BOOST_PP_IIF(p(183), 183, 184)
-#                    define BOOST_PP_NODE_188(p) BOOST_PP_IIF(p(188), BOOST_PP_NODE_186, BOOST_PP_NODE_190)
-#                        define BOOST_PP_NODE_186(p) BOOST_PP_IIF(p(186), BOOST_PP_NODE_185, BOOST_PP_NODE_187)
-#                            define BOOST_PP_NODE_185(p) BOOST_PP_IIF(p(185), 185, 186)
-#                            define BOOST_PP_NODE_187(p) BOOST_PP_IIF(p(187), 187, 188)
-#                        define BOOST_PP_NODE_190(p) BOOST_PP_IIF(p(190), BOOST_PP_NODE_189, BOOST_PP_NODE_191)
-#                            define BOOST_PP_NODE_189(p) BOOST_PP_IIF(p(189), 189, 190)
-#                            define BOOST_PP_NODE_191(p) BOOST_PP_IIF(p(191), 191, 192)
-#        define BOOST_PP_NODE_224(p) BOOST_PP_IIF(p(224), BOOST_PP_NODE_208, BOOST_PP_NODE_240)
-#            define BOOST_PP_NODE_208(p) BOOST_PP_IIF(p(208), BOOST_PP_NODE_200, BOOST_PP_NODE_216)
-#                define BOOST_PP_NODE_200(p) BOOST_PP_IIF(p(200), BOOST_PP_NODE_196, BOOST_PP_NODE_204)
-#                    define BOOST_PP_NODE_196(p) BOOST_PP_IIF(p(196), BOOST_PP_NODE_194, BOOST_PP_NODE_198)
-#                        define BOOST_PP_NODE_194(p) BOOST_PP_IIF(p(194), BOOST_PP_NODE_193, BOOST_PP_NODE_195)
-#                            define BOOST_PP_NODE_193(p) BOOST_PP_IIF(p(193), 193, 194)
-#                            define BOOST_PP_NODE_195(p) BOOST_PP_IIF(p(195), 195, 196)
-#                        define BOOST_PP_NODE_198(p) BOOST_PP_IIF(p(198), BOOST_PP_NODE_197, BOOST_PP_NODE_199)
-#                            define BOOST_PP_NODE_197(p) BOOST_PP_IIF(p(197), 197, 198)
-#                            define BOOST_PP_NODE_199(p) BOOST_PP_IIF(p(199), 199, 200)
-#                    define BOOST_PP_NODE_204(p) BOOST_PP_IIF(p(204), BOOST_PP_NODE_202, BOOST_PP_NODE_206)
-#                        define BOOST_PP_NODE_202(p) BOOST_PP_IIF(p(202), BOOST_PP_NODE_201, BOOST_PP_NODE_203)
-#                            define BOOST_PP_NODE_201(p) BOOST_PP_IIF(p(201), 201, 202)
-#                            define BOOST_PP_NODE_203(p) BOOST_PP_IIF(p(203), 203, 204)
-#                        define BOOST_PP_NODE_206(p) BOOST_PP_IIF(p(206), BOOST_PP_NODE_205, BOOST_PP_NODE_207)
-#                            define BOOST_PP_NODE_205(p) BOOST_PP_IIF(p(205), 205, 206)
-#                            define BOOST_PP_NODE_207(p) BOOST_PP_IIF(p(207), 207, 208)
-#                define BOOST_PP_NODE_216(p) BOOST_PP_IIF(p(216), BOOST_PP_NODE_212, BOOST_PP_NODE_220)
-#                    define BOOST_PP_NODE_212(p) BOOST_PP_IIF(p(212), BOOST_PP_NODE_210, BOOST_PP_NODE_214)
-#                        define BOOST_PP_NODE_210(p) BOOST_PP_IIF(p(210), BOOST_PP_NODE_209, BOOST_PP_NODE_211)
-#                            define BOOST_PP_NODE_209(p) BOOST_PP_IIF(p(209), 209, 210)
-#                            define BOOST_PP_NODE_211(p) BOOST_PP_IIF(p(211), 211, 212)
-#                        define BOOST_PP_NODE_214(p) BOOST_PP_IIF(p(214), BOOST_PP_NODE_213, BOOST_PP_NODE_215)
-#                            define BOOST_PP_NODE_213(p) BOOST_PP_IIF(p(213), 213, 214)
-#                            define BOOST_PP_NODE_215(p) BOOST_PP_IIF(p(215), 215, 216)
-#                    define BOOST_PP_NODE_220(p) BOOST_PP_IIF(p(220), BOOST_PP_NODE_218, BOOST_PP_NODE_222)
-#                        define BOOST_PP_NODE_218(p) BOOST_PP_IIF(p(218), BOOST_PP_NODE_217, BOOST_PP_NODE_219)
-#                            define BOOST_PP_NODE_217(p) BOOST_PP_IIF(p(217), 217, 218)
-#                            define BOOST_PP_NODE_219(p) BOOST_PP_IIF(p(219), 219, 220)
-#                        define BOOST_PP_NODE_222(p) BOOST_PP_IIF(p(222), BOOST_PP_NODE_221, BOOST_PP_NODE_223)
-#                            define BOOST_PP_NODE_221(p) BOOST_PP_IIF(p(221), 221, 222)
-#                            define BOOST_PP_NODE_223(p) BOOST_PP_IIF(p(223), 223, 224)
-#            define BOOST_PP_NODE_240(p) BOOST_PP_IIF(p(240), BOOST_PP_NODE_232, BOOST_PP_NODE_248)
-#                define BOOST_PP_NODE_232(p) BOOST_PP_IIF(p(232), BOOST_PP_NODE_228, BOOST_PP_NODE_236)
-#                    define BOOST_PP_NODE_228(p) BOOST_PP_IIF(p(228), BOOST_PP_NODE_226, BOOST_PP_NODE_230)
-#                        define BOOST_PP_NODE_226(p) BOOST_PP_IIF(p(226), BOOST_PP_NODE_225, BOOST_PP_NODE_227)
-#                            define BOOST_PP_NODE_225(p) BOOST_PP_IIF(p(225), 225, 226)
-#                            define BOOST_PP_NODE_227(p) BOOST_PP_IIF(p(227), 227, 228)
-#                        define BOOST_PP_NODE_230(p) BOOST_PP_IIF(p(230), BOOST_PP_NODE_229, BOOST_PP_NODE_231)
-#                            define BOOST_PP_NODE_229(p) BOOST_PP_IIF(p(229), 229, 230)
-#                            define BOOST_PP_NODE_231(p) BOOST_PP_IIF(p(231), 231, 232)
-#                    define BOOST_PP_NODE_236(p) BOOST_PP_IIF(p(236), BOOST_PP_NODE_234, BOOST_PP_NODE_238)
-#                        define BOOST_PP_NODE_234(p) BOOST_PP_IIF(p(234), BOOST_PP_NODE_233, BOOST_PP_NODE_235)
-#                            define BOOST_PP_NODE_233(p) BOOST_PP_IIF(p(233), 233, 234)
-#                            define BOOST_PP_NODE_235(p) BOOST_PP_IIF(p(235), 235, 236)
-#                        define BOOST_PP_NODE_238(p) BOOST_PP_IIF(p(238), BOOST_PP_NODE_237, BOOST_PP_NODE_239)
-#                            define BOOST_PP_NODE_237(p) BOOST_PP_IIF(p(237), 237, 238)
-#                            define BOOST_PP_NODE_239(p) BOOST_PP_IIF(p(239), 239, 240)
-#                define BOOST_PP_NODE_248(p) BOOST_PP_IIF(p(248), BOOST_PP_NODE_244, BOOST_PP_NODE_252)
-#                    define BOOST_PP_NODE_244(p) BOOST_PP_IIF(p(244), BOOST_PP_NODE_242, BOOST_PP_NODE_246)
-#                        define BOOST_PP_NODE_242(p) BOOST_PP_IIF(p(242), BOOST_PP_NODE_241, BOOST_PP_NODE_243)
-#                            define BOOST_PP_NODE_241(p) BOOST_PP_IIF(p(241), 241, 242)
-#                            define BOOST_PP_NODE_243(p) BOOST_PP_IIF(p(243), 243, 244)
-#                        define BOOST_PP_NODE_246(p) BOOST_PP_IIF(p(246), BOOST_PP_NODE_245, BOOST_PP_NODE_247)
-#                            define BOOST_PP_NODE_245(p) BOOST_PP_IIF(p(245), 245, 246)
-#                            define BOOST_PP_NODE_247(p) BOOST_PP_IIF(p(247), 247, 248)
-#                    define BOOST_PP_NODE_252(p) BOOST_PP_IIF(p(252), BOOST_PP_NODE_250, BOOST_PP_NODE_254)
-#                        define BOOST_PP_NODE_250(p) BOOST_PP_IIF(p(250), BOOST_PP_NODE_249, BOOST_PP_NODE_251)
-#                            define BOOST_PP_NODE_249(p) BOOST_PP_IIF(p(249), 249, 250)
-#                            define BOOST_PP_NODE_251(p) BOOST_PP_IIF(p(251), 251, 252)
-#                        define BOOST_PP_NODE_254(p) BOOST_PP_IIF(p(254), BOOST_PP_NODE_253, BOOST_PP_NODE_255)
-#                            define BOOST_PP_NODE_253(p) BOOST_PP_IIF(p(253), 253, 254)
-#                            define BOOST_PP_NODE_255(p) BOOST_PP_IIF(p(255), 255, 256)
+# define NDNBOOST_PP_NODE_128(p) NDNBOOST_PP_IIF(p(128), NDNBOOST_PP_NODE_64, NDNBOOST_PP_NODE_192)
+#    define NDNBOOST_PP_NODE_64(p) NDNBOOST_PP_IIF(p(64), NDNBOOST_PP_NODE_32, NDNBOOST_PP_NODE_96)
+#        define NDNBOOST_PP_NODE_32(p) NDNBOOST_PP_IIF(p(32), NDNBOOST_PP_NODE_16, NDNBOOST_PP_NODE_48)
+#            define NDNBOOST_PP_NODE_16(p) NDNBOOST_PP_IIF(p(16), NDNBOOST_PP_NODE_8, NDNBOOST_PP_NODE_24)
+#                define NDNBOOST_PP_NODE_8(p) NDNBOOST_PP_IIF(p(8), NDNBOOST_PP_NODE_4, NDNBOOST_PP_NODE_12)
+#                    define NDNBOOST_PP_NODE_4(p) NDNBOOST_PP_IIF(p(4), NDNBOOST_PP_NODE_2, NDNBOOST_PP_NODE_6)
+#                        define NDNBOOST_PP_NODE_2(p) NDNBOOST_PP_IIF(p(2), NDNBOOST_PP_NODE_1, NDNBOOST_PP_NODE_3)
+#                            define NDNBOOST_PP_NODE_1(p) NDNBOOST_PP_IIF(p(1), 1, 2)
+#                            define NDNBOOST_PP_NODE_3(p) NDNBOOST_PP_IIF(p(3), 3, 4)
+#                        define NDNBOOST_PP_NODE_6(p) NDNBOOST_PP_IIF(p(6), NDNBOOST_PP_NODE_5, NDNBOOST_PP_NODE_7)
+#                            define NDNBOOST_PP_NODE_5(p) NDNBOOST_PP_IIF(p(5), 5, 6)
+#                            define NDNBOOST_PP_NODE_7(p) NDNBOOST_PP_IIF(p(7), 7, 8)
+#                    define NDNBOOST_PP_NODE_12(p) NDNBOOST_PP_IIF(p(12), NDNBOOST_PP_NODE_10, NDNBOOST_PP_NODE_14)
+#                        define NDNBOOST_PP_NODE_10(p) NDNBOOST_PP_IIF(p(10), NDNBOOST_PP_NODE_9, NDNBOOST_PP_NODE_11)
+#                            define NDNBOOST_PP_NODE_9(p) NDNBOOST_PP_IIF(p(9), 9, 10)
+#                            define NDNBOOST_PP_NODE_11(p) NDNBOOST_PP_IIF(p(11), 11, 12)
+#                        define NDNBOOST_PP_NODE_14(p) NDNBOOST_PP_IIF(p(14), NDNBOOST_PP_NODE_13, NDNBOOST_PP_NODE_15)
+#                            define NDNBOOST_PP_NODE_13(p) NDNBOOST_PP_IIF(p(13), 13, 14)
+#                            define NDNBOOST_PP_NODE_15(p) NDNBOOST_PP_IIF(p(15), 15, 16)
+#                define NDNBOOST_PP_NODE_24(p) NDNBOOST_PP_IIF(p(24), NDNBOOST_PP_NODE_20, NDNBOOST_PP_NODE_28)
+#                    define NDNBOOST_PP_NODE_20(p) NDNBOOST_PP_IIF(p(20), NDNBOOST_PP_NODE_18, NDNBOOST_PP_NODE_22)
+#                        define NDNBOOST_PP_NODE_18(p) NDNBOOST_PP_IIF(p(18), NDNBOOST_PP_NODE_17, NDNBOOST_PP_NODE_19)
+#                            define NDNBOOST_PP_NODE_17(p) NDNBOOST_PP_IIF(p(17), 17, 18)
+#                            define NDNBOOST_PP_NODE_19(p) NDNBOOST_PP_IIF(p(19), 19, 20)
+#                        define NDNBOOST_PP_NODE_22(p) NDNBOOST_PP_IIF(p(22), NDNBOOST_PP_NODE_21, NDNBOOST_PP_NODE_23)
+#                            define NDNBOOST_PP_NODE_21(p) NDNBOOST_PP_IIF(p(21), 21, 22)
+#                            define NDNBOOST_PP_NODE_23(p) NDNBOOST_PP_IIF(p(23), 23, 24)
+#                    define NDNBOOST_PP_NODE_28(p) NDNBOOST_PP_IIF(p(28), NDNBOOST_PP_NODE_26, NDNBOOST_PP_NODE_30)
+#                        define NDNBOOST_PP_NODE_26(p) NDNBOOST_PP_IIF(p(26), NDNBOOST_PP_NODE_25, NDNBOOST_PP_NODE_27)
+#                            define NDNBOOST_PP_NODE_25(p) NDNBOOST_PP_IIF(p(25), 25, 26)
+#                            define NDNBOOST_PP_NODE_27(p) NDNBOOST_PP_IIF(p(27), 27, 28)
+#                        define NDNBOOST_PP_NODE_30(p) NDNBOOST_PP_IIF(p(30), NDNBOOST_PP_NODE_29, NDNBOOST_PP_NODE_31)
+#                            define NDNBOOST_PP_NODE_29(p) NDNBOOST_PP_IIF(p(29), 29, 30)
+#                            define NDNBOOST_PP_NODE_31(p) NDNBOOST_PP_IIF(p(31), 31, 32)
+#            define NDNBOOST_PP_NODE_48(p) NDNBOOST_PP_IIF(p(48), NDNBOOST_PP_NODE_40, NDNBOOST_PP_NODE_56)
+#                define NDNBOOST_PP_NODE_40(p) NDNBOOST_PP_IIF(p(40), NDNBOOST_PP_NODE_36, NDNBOOST_PP_NODE_44)
+#                    define NDNBOOST_PP_NODE_36(p) NDNBOOST_PP_IIF(p(36), NDNBOOST_PP_NODE_34, NDNBOOST_PP_NODE_38)
+#                        define NDNBOOST_PP_NODE_34(p) NDNBOOST_PP_IIF(p(34), NDNBOOST_PP_NODE_33, NDNBOOST_PP_NODE_35)
+#                            define NDNBOOST_PP_NODE_33(p) NDNBOOST_PP_IIF(p(33), 33, 34)
+#                            define NDNBOOST_PP_NODE_35(p) NDNBOOST_PP_IIF(p(35), 35, 36)
+#                        define NDNBOOST_PP_NODE_38(p) NDNBOOST_PP_IIF(p(38), NDNBOOST_PP_NODE_37, NDNBOOST_PP_NODE_39)
+#                            define NDNBOOST_PP_NODE_37(p) NDNBOOST_PP_IIF(p(37), 37, 38)
+#                            define NDNBOOST_PP_NODE_39(p) NDNBOOST_PP_IIF(p(39), 39, 40)
+#                    define NDNBOOST_PP_NODE_44(p) NDNBOOST_PP_IIF(p(44), NDNBOOST_PP_NODE_42, NDNBOOST_PP_NODE_46)
+#                        define NDNBOOST_PP_NODE_42(p) NDNBOOST_PP_IIF(p(42), NDNBOOST_PP_NODE_41, NDNBOOST_PP_NODE_43)
+#                            define NDNBOOST_PP_NODE_41(p) NDNBOOST_PP_IIF(p(41), 41, 42)
+#                            define NDNBOOST_PP_NODE_43(p) NDNBOOST_PP_IIF(p(43), 43, 44)
+#                        define NDNBOOST_PP_NODE_46(p) NDNBOOST_PP_IIF(p(46), NDNBOOST_PP_NODE_45, NDNBOOST_PP_NODE_47)
+#                            define NDNBOOST_PP_NODE_45(p) NDNBOOST_PP_IIF(p(45), 45, 46)
+#                            define NDNBOOST_PP_NODE_47(p) NDNBOOST_PP_IIF(p(47), 47, 48)
+#                define NDNBOOST_PP_NODE_56(p) NDNBOOST_PP_IIF(p(56), NDNBOOST_PP_NODE_52, NDNBOOST_PP_NODE_60)
+#                    define NDNBOOST_PP_NODE_52(p) NDNBOOST_PP_IIF(p(52), NDNBOOST_PP_NODE_50, NDNBOOST_PP_NODE_54)
+#                        define NDNBOOST_PP_NODE_50(p) NDNBOOST_PP_IIF(p(50), NDNBOOST_PP_NODE_49, NDNBOOST_PP_NODE_51)
+#                            define NDNBOOST_PP_NODE_49(p) NDNBOOST_PP_IIF(p(49), 49, 50)
+#                            define NDNBOOST_PP_NODE_51(p) NDNBOOST_PP_IIF(p(51), 51, 52)
+#                        define NDNBOOST_PP_NODE_54(p) NDNBOOST_PP_IIF(p(54), NDNBOOST_PP_NODE_53, NDNBOOST_PP_NODE_55)
+#                            define NDNBOOST_PP_NODE_53(p) NDNBOOST_PP_IIF(p(53), 53, 54)
+#                            define NDNBOOST_PP_NODE_55(p) NDNBOOST_PP_IIF(p(55), 55, 56)
+#                    define NDNBOOST_PP_NODE_60(p) NDNBOOST_PP_IIF(p(60), NDNBOOST_PP_NODE_58, NDNBOOST_PP_NODE_62)
+#                        define NDNBOOST_PP_NODE_58(p) NDNBOOST_PP_IIF(p(58), NDNBOOST_PP_NODE_57, NDNBOOST_PP_NODE_59)
+#                            define NDNBOOST_PP_NODE_57(p) NDNBOOST_PP_IIF(p(57), 57, 58)
+#                            define NDNBOOST_PP_NODE_59(p) NDNBOOST_PP_IIF(p(59), 59, 60)
+#                        define NDNBOOST_PP_NODE_62(p) NDNBOOST_PP_IIF(p(62), NDNBOOST_PP_NODE_61, NDNBOOST_PP_NODE_63)
+#                            define NDNBOOST_PP_NODE_61(p) NDNBOOST_PP_IIF(p(61), 61, 62)
+#                            define NDNBOOST_PP_NODE_63(p) NDNBOOST_PP_IIF(p(63), 63, 64)
+#        define NDNBOOST_PP_NODE_96(p) NDNBOOST_PP_IIF(p(96), NDNBOOST_PP_NODE_80, NDNBOOST_PP_NODE_112)
+#            define NDNBOOST_PP_NODE_80(p) NDNBOOST_PP_IIF(p(80), NDNBOOST_PP_NODE_72, NDNBOOST_PP_NODE_88)
+#                define NDNBOOST_PP_NODE_72(p) NDNBOOST_PP_IIF(p(72), NDNBOOST_PP_NODE_68, NDNBOOST_PP_NODE_76)
+#                    define NDNBOOST_PP_NODE_68(p) NDNBOOST_PP_IIF(p(68), NDNBOOST_PP_NODE_66, NDNBOOST_PP_NODE_70)
+#                        define NDNBOOST_PP_NODE_66(p) NDNBOOST_PP_IIF(p(66), NDNBOOST_PP_NODE_65, NDNBOOST_PP_NODE_67)
+#                            define NDNBOOST_PP_NODE_65(p) NDNBOOST_PP_IIF(p(65), 65, 66)
+#                            define NDNBOOST_PP_NODE_67(p) NDNBOOST_PP_IIF(p(67), 67, 68)
+#                        define NDNBOOST_PP_NODE_70(p) NDNBOOST_PP_IIF(p(70), NDNBOOST_PP_NODE_69, NDNBOOST_PP_NODE_71)
+#                            define NDNBOOST_PP_NODE_69(p) NDNBOOST_PP_IIF(p(69), 69, 70)
+#                            define NDNBOOST_PP_NODE_71(p) NDNBOOST_PP_IIF(p(71), 71, 72)
+#                    define NDNBOOST_PP_NODE_76(p) NDNBOOST_PP_IIF(p(76), NDNBOOST_PP_NODE_74, NDNBOOST_PP_NODE_78)
+#                        define NDNBOOST_PP_NODE_74(p) NDNBOOST_PP_IIF(p(74), NDNBOOST_PP_NODE_73, NDNBOOST_PP_NODE_75)
+#                            define NDNBOOST_PP_NODE_73(p) NDNBOOST_PP_IIF(p(73), 73, 74)
+#                            define NDNBOOST_PP_NODE_75(p) NDNBOOST_PP_IIF(p(75), 75, 76)
+#                        define NDNBOOST_PP_NODE_78(p) NDNBOOST_PP_IIF(p(78), NDNBOOST_PP_NODE_77, NDNBOOST_PP_NODE_79)
+#                            define NDNBOOST_PP_NODE_77(p) NDNBOOST_PP_IIF(p(77), 77, 78)
+#                            define NDNBOOST_PP_NODE_79(p) NDNBOOST_PP_IIF(p(79), 79, 80)
+#                define NDNBOOST_PP_NODE_88(p) NDNBOOST_PP_IIF(p(88), NDNBOOST_PP_NODE_84, NDNBOOST_PP_NODE_92)
+#                    define NDNBOOST_PP_NODE_84(p) NDNBOOST_PP_IIF(p(84), NDNBOOST_PP_NODE_82, NDNBOOST_PP_NODE_86)
+#                        define NDNBOOST_PP_NODE_82(p) NDNBOOST_PP_IIF(p(82), NDNBOOST_PP_NODE_81, NDNBOOST_PP_NODE_83)
+#                            define NDNBOOST_PP_NODE_81(p) NDNBOOST_PP_IIF(p(81), 81, 82)
+#                            define NDNBOOST_PP_NODE_83(p) NDNBOOST_PP_IIF(p(83), 83, 84)
+#                        define NDNBOOST_PP_NODE_86(p) NDNBOOST_PP_IIF(p(86), NDNBOOST_PP_NODE_85, NDNBOOST_PP_NODE_87)
+#                            define NDNBOOST_PP_NODE_85(p) NDNBOOST_PP_IIF(p(85), 85, 86)
+#                            define NDNBOOST_PP_NODE_87(p) NDNBOOST_PP_IIF(p(87), 87, 88)
+#                    define NDNBOOST_PP_NODE_92(p) NDNBOOST_PP_IIF(p(92), NDNBOOST_PP_NODE_90, NDNBOOST_PP_NODE_94)
+#                        define NDNBOOST_PP_NODE_90(p) NDNBOOST_PP_IIF(p(90), NDNBOOST_PP_NODE_89, NDNBOOST_PP_NODE_91)
+#                            define NDNBOOST_PP_NODE_89(p) NDNBOOST_PP_IIF(p(89), 89, 90)
+#                            define NDNBOOST_PP_NODE_91(p) NDNBOOST_PP_IIF(p(91), 91, 92)
+#                        define NDNBOOST_PP_NODE_94(p) NDNBOOST_PP_IIF(p(94), NDNBOOST_PP_NODE_93, NDNBOOST_PP_NODE_95)
+#                            define NDNBOOST_PP_NODE_93(p) NDNBOOST_PP_IIF(p(93), 93, 94)
+#                            define NDNBOOST_PP_NODE_95(p) NDNBOOST_PP_IIF(p(95), 95, 96)
+#            define NDNBOOST_PP_NODE_112(p) NDNBOOST_PP_IIF(p(112), NDNBOOST_PP_NODE_104, NDNBOOST_PP_NODE_120)
+#                define NDNBOOST_PP_NODE_104(p) NDNBOOST_PP_IIF(p(104), NDNBOOST_PP_NODE_100, NDNBOOST_PP_NODE_108)
+#                    define NDNBOOST_PP_NODE_100(p) NDNBOOST_PP_IIF(p(100), NDNBOOST_PP_NODE_98, NDNBOOST_PP_NODE_102)
+#                        define NDNBOOST_PP_NODE_98(p) NDNBOOST_PP_IIF(p(98), NDNBOOST_PP_NODE_97, NDNBOOST_PP_NODE_99)
+#                            define NDNBOOST_PP_NODE_97(p) NDNBOOST_PP_IIF(p(97), 97, 98)
+#                            define NDNBOOST_PP_NODE_99(p) NDNBOOST_PP_IIF(p(99), 99, 100)
+#                        define NDNBOOST_PP_NODE_102(p) NDNBOOST_PP_IIF(p(102), NDNBOOST_PP_NODE_101, NDNBOOST_PP_NODE_103)
+#                            define NDNBOOST_PP_NODE_101(p) NDNBOOST_PP_IIF(p(101), 101, 102)
+#                            define NDNBOOST_PP_NODE_103(p) NDNBOOST_PP_IIF(p(103), 103, 104)
+#                    define NDNBOOST_PP_NODE_108(p) NDNBOOST_PP_IIF(p(108), NDNBOOST_PP_NODE_106, NDNBOOST_PP_NODE_110)
+#                        define NDNBOOST_PP_NODE_106(p) NDNBOOST_PP_IIF(p(106), NDNBOOST_PP_NODE_105, NDNBOOST_PP_NODE_107)
+#                            define NDNBOOST_PP_NODE_105(p) NDNBOOST_PP_IIF(p(105), 105, 106)
+#                            define NDNBOOST_PP_NODE_107(p) NDNBOOST_PP_IIF(p(107), 107, 108)
+#                        define NDNBOOST_PP_NODE_110(p) NDNBOOST_PP_IIF(p(110), NDNBOOST_PP_NODE_109, NDNBOOST_PP_NODE_111)
+#                            define NDNBOOST_PP_NODE_109(p) NDNBOOST_PP_IIF(p(109), 109, 110)
+#                            define NDNBOOST_PP_NODE_111(p) NDNBOOST_PP_IIF(p(111), 111, 112)
+#                define NDNBOOST_PP_NODE_120(p) NDNBOOST_PP_IIF(p(120), NDNBOOST_PP_NODE_116, NDNBOOST_PP_NODE_124)
+#                    define NDNBOOST_PP_NODE_116(p) NDNBOOST_PP_IIF(p(116), NDNBOOST_PP_NODE_114, NDNBOOST_PP_NODE_118)
+#                        define NDNBOOST_PP_NODE_114(p) NDNBOOST_PP_IIF(p(114), NDNBOOST_PP_NODE_113, NDNBOOST_PP_NODE_115)
+#                            define NDNBOOST_PP_NODE_113(p) NDNBOOST_PP_IIF(p(113), 113, 114)
+#                            define NDNBOOST_PP_NODE_115(p) NDNBOOST_PP_IIF(p(115), 115, 116)
+#                        define NDNBOOST_PP_NODE_118(p) NDNBOOST_PP_IIF(p(118), NDNBOOST_PP_NODE_117, NDNBOOST_PP_NODE_119)
+#                            define NDNBOOST_PP_NODE_117(p) NDNBOOST_PP_IIF(p(117), 117, 118)
+#                            define NDNBOOST_PP_NODE_119(p) NDNBOOST_PP_IIF(p(119), 119, 120)
+#                    define NDNBOOST_PP_NODE_124(p) NDNBOOST_PP_IIF(p(124), NDNBOOST_PP_NODE_122, NDNBOOST_PP_NODE_126)
+#                        define NDNBOOST_PP_NODE_122(p) NDNBOOST_PP_IIF(p(122), NDNBOOST_PP_NODE_121, NDNBOOST_PP_NODE_123)
+#                            define NDNBOOST_PP_NODE_121(p) NDNBOOST_PP_IIF(p(121), 121, 122)
+#                            define NDNBOOST_PP_NODE_123(p) NDNBOOST_PP_IIF(p(123), 123, 124)
+#                        define NDNBOOST_PP_NODE_126(p) NDNBOOST_PP_IIF(p(126), NDNBOOST_PP_NODE_125, NDNBOOST_PP_NODE_127)
+#                            define NDNBOOST_PP_NODE_125(p) NDNBOOST_PP_IIF(p(125), 125, 126)
+#                            define NDNBOOST_PP_NODE_127(p) NDNBOOST_PP_IIF(p(127), 127, 128)
+#    define NDNBOOST_PP_NODE_192(p) NDNBOOST_PP_IIF(p(192), NDNBOOST_PP_NODE_160, NDNBOOST_PP_NODE_224)
+#        define NDNBOOST_PP_NODE_160(p) NDNBOOST_PP_IIF(p(160), NDNBOOST_PP_NODE_144, NDNBOOST_PP_NODE_176)
+#            define NDNBOOST_PP_NODE_144(p) NDNBOOST_PP_IIF(p(144), NDNBOOST_PP_NODE_136, NDNBOOST_PP_NODE_152)
+#                define NDNBOOST_PP_NODE_136(p) NDNBOOST_PP_IIF(p(136), NDNBOOST_PP_NODE_132, NDNBOOST_PP_NODE_140)
+#                    define NDNBOOST_PP_NODE_132(p) NDNBOOST_PP_IIF(p(132), NDNBOOST_PP_NODE_130, NDNBOOST_PP_NODE_134)
+#                        define NDNBOOST_PP_NODE_130(p) NDNBOOST_PP_IIF(p(130), NDNBOOST_PP_NODE_129, NDNBOOST_PP_NODE_131)
+#                            define NDNBOOST_PP_NODE_129(p) NDNBOOST_PP_IIF(p(129), 129, 130)
+#                            define NDNBOOST_PP_NODE_131(p) NDNBOOST_PP_IIF(p(131), 131, 132)
+#                        define NDNBOOST_PP_NODE_134(p) NDNBOOST_PP_IIF(p(134), NDNBOOST_PP_NODE_133, NDNBOOST_PP_NODE_135)
+#                            define NDNBOOST_PP_NODE_133(p) NDNBOOST_PP_IIF(p(133), 133, 134)
+#                            define NDNBOOST_PP_NODE_135(p) NDNBOOST_PP_IIF(p(135), 135, 136)
+#                    define NDNBOOST_PP_NODE_140(p) NDNBOOST_PP_IIF(p(140), NDNBOOST_PP_NODE_138, NDNBOOST_PP_NODE_142)
+#                        define NDNBOOST_PP_NODE_138(p) NDNBOOST_PP_IIF(p(138), NDNBOOST_PP_NODE_137, NDNBOOST_PP_NODE_139)
+#                            define NDNBOOST_PP_NODE_137(p) NDNBOOST_PP_IIF(p(137), 137, 138)
+#                            define NDNBOOST_PP_NODE_139(p) NDNBOOST_PP_IIF(p(139), 139, 140)
+#                        define NDNBOOST_PP_NODE_142(p) NDNBOOST_PP_IIF(p(142), NDNBOOST_PP_NODE_141, NDNBOOST_PP_NODE_143)
+#                            define NDNBOOST_PP_NODE_141(p) NDNBOOST_PP_IIF(p(141), 141, 142)
+#                            define NDNBOOST_PP_NODE_143(p) NDNBOOST_PP_IIF(p(143), 143, 144)
+#                define NDNBOOST_PP_NODE_152(p) NDNBOOST_PP_IIF(p(152), NDNBOOST_PP_NODE_148, NDNBOOST_PP_NODE_156)
+#                    define NDNBOOST_PP_NODE_148(p) NDNBOOST_PP_IIF(p(148), NDNBOOST_PP_NODE_146, NDNBOOST_PP_NODE_150)
+#                        define NDNBOOST_PP_NODE_146(p) NDNBOOST_PP_IIF(p(146), NDNBOOST_PP_NODE_145, NDNBOOST_PP_NODE_147)
+#                            define NDNBOOST_PP_NODE_145(p) NDNBOOST_PP_IIF(p(145), 145, 146)
+#                            define NDNBOOST_PP_NODE_147(p) NDNBOOST_PP_IIF(p(147), 147, 148)
+#                        define NDNBOOST_PP_NODE_150(p) NDNBOOST_PP_IIF(p(150), NDNBOOST_PP_NODE_149, NDNBOOST_PP_NODE_151)
+#                            define NDNBOOST_PP_NODE_149(p) NDNBOOST_PP_IIF(p(149), 149, 150)
+#                            define NDNBOOST_PP_NODE_151(p) NDNBOOST_PP_IIF(p(151), 151, 152)
+#                    define NDNBOOST_PP_NODE_156(p) NDNBOOST_PP_IIF(p(156), NDNBOOST_PP_NODE_154, NDNBOOST_PP_NODE_158)
+#                        define NDNBOOST_PP_NODE_154(p) NDNBOOST_PP_IIF(p(154), NDNBOOST_PP_NODE_153, NDNBOOST_PP_NODE_155)
+#                            define NDNBOOST_PP_NODE_153(p) NDNBOOST_PP_IIF(p(153), 153, 154)
+#                            define NDNBOOST_PP_NODE_155(p) NDNBOOST_PP_IIF(p(155), 155, 156)
+#                        define NDNBOOST_PP_NODE_158(p) NDNBOOST_PP_IIF(p(158), NDNBOOST_PP_NODE_157, NDNBOOST_PP_NODE_159)
+#                            define NDNBOOST_PP_NODE_157(p) NDNBOOST_PP_IIF(p(157), 157, 158)
+#                            define NDNBOOST_PP_NODE_159(p) NDNBOOST_PP_IIF(p(159), 159, 160)
+#            define NDNBOOST_PP_NODE_176(p) NDNBOOST_PP_IIF(p(176), NDNBOOST_PP_NODE_168, NDNBOOST_PP_NODE_184)
+#                define NDNBOOST_PP_NODE_168(p) NDNBOOST_PP_IIF(p(168), NDNBOOST_PP_NODE_164, NDNBOOST_PP_NODE_172)
+#                    define NDNBOOST_PP_NODE_164(p) NDNBOOST_PP_IIF(p(164), NDNBOOST_PP_NODE_162, NDNBOOST_PP_NODE_166)
+#                        define NDNBOOST_PP_NODE_162(p) NDNBOOST_PP_IIF(p(162), NDNBOOST_PP_NODE_161, NDNBOOST_PP_NODE_163)
+#                            define NDNBOOST_PP_NODE_161(p) NDNBOOST_PP_IIF(p(161), 161, 162)
+#                            define NDNBOOST_PP_NODE_163(p) NDNBOOST_PP_IIF(p(163), 163, 164)
+#                        define NDNBOOST_PP_NODE_166(p) NDNBOOST_PP_IIF(p(166), NDNBOOST_PP_NODE_165, NDNBOOST_PP_NODE_167)
+#                            define NDNBOOST_PP_NODE_165(p) NDNBOOST_PP_IIF(p(165), 165, 166)
+#                            define NDNBOOST_PP_NODE_167(p) NDNBOOST_PP_IIF(p(167), 167, 168)
+#                    define NDNBOOST_PP_NODE_172(p) NDNBOOST_PP_IIF(p(172), NDNBOOST_PP_NODE_170, NDNBOOST_PP_NODE_174)
+#                        define NDNBOOST_PP_NODE_170(p) NDNBOOST_PP_IIF(p(170), NDNBOOST_PP_NODE_169, NDNBOOST_PP_NODE_171)
+#                            define NDNBOOST_PP_NODE_169(p) NDNBOOST_PP_IIF(p(169), 169, 170)
+#                            define NDNBOOST_PP_NODE_171(p) NDNBOOST_PP_IIF(p(171), 171, 172)
+#                        define NDNBOOST_PP_NODE_174(p) NDNBOOST_PP_IIF(p(174), NDNBOOST_PP_NODE_173, NDNBOOST_PP_NODE_175)
+#                            define NDNBOOST_PP_NODE_173(p) NDNBOOST_PP_IIF(p(173), 173, 174)
+#                            define NDNBOOST_PP_NODE_175(p) NDNBOOST_PP_IIF(p(175), 175, 176)
+#                define NDNBOOST_PP_NODE_184(p) NDNBOOST_PP_IIF(p(184), NDNBOOST_PP_NODE_180, NDNBOOST_PP_NODE_188)
+#                    define NDNBOOST_PP_NODE_180(p) NDNBOOST_PP_IIF(p(180), NDNBOOST_PP_NODE_178, NDNBOOST_PP_NODE_182)
+#                        define NDNBOOST_PP_NODE_178(p) NDNBOOST_PP_IIF(p(178), NDNBOOST_PP_NODE_177, NDNBOOST_PP_NODE_179)
+#                            define NDNBOOST_PP_NODE_177(p) NDNBOOST_PP_IIF(p(177), 177, 178)
+#                            define NDNBOOST_PP_NODE_179(p) NDNBOOST_PP_IIF(p(179), 179, 180)
+#                        define NDNBOOST_PP_NODE_182(p) NDNBOOST_PP_IIF(p(182), NDNBOOST_PP_NODE_181, NDNBOOST_PP_NODE_183)
+#                            define NDNBOOST_PP_NODE_181(p) NDNBOOST_PP_IIF(p(181), 181, 182)
+#                            define NDNBOOST_PP_NODE_183(p) NDNBOOST_PP_IIF(p(183), 183, 184)
+#                    define NDNBOOST_PP_NODE_188(p) NDNBOOST_PP_IIF(p(188), NDNBOOST_PP_NODE_186, NDNBOOST_PP_NODE_190)
+#                        define NDNBOOST_PP_NODE_186(p) NDNBOOST_PP_IIF(p(186), NDNBOOST_PP_NODE_185, NDNBOOST_PP_NODE_187)
+#                            define NDNBOOST_PP_NODE_185(p) NDNBOOST_PP_IIF(p(185), 185, 186)
+#                            define NDNBOOST_PP_NODE_187(p) NDNBOOST_PP_IIF(p(187), 187, 188)
+#                        define NDNBOOST_PP_NODE_190(p) NDNBOOST_PP_IIF(p(190), NDNBOOST_PP_NODE_189, NDNBOOST_PP_NODE_191)
+#                            define NDNBOOST_PP_NODE_189(p) NDNBOOST_PP_IIF(p(189), 189, 190)
+#                            define NDNBOOST_PP_NODE_191(p) NDNBOOST_PP_IIF(p(191), 191, 192)
+#        define NDNBOOST_PP_NODE_224(p) NDNBOOST_PP_IIF(p(224), NDNBOOST_PP_NODE_208, NDNBOOST_PP_NODE_240)
+#            define NDNBOOST_PP_NODE_208(p) NDNBOOST_PP_IIF(p(208), NDNBOOST_PP_NODE_200, NDNBOOST_PP_NODE_216)
+#                define NDNBOOST_PP_NODE_200(p) NDNBOOST_PP_IIF(p(200), NDNBOOST_PP_NODE_196, NDNBOOST_PP_NODE_204)
+#                    define NDNBOOST_PP_NODE_196(p) NDNBOOST_PP_IIF(p(196), NDNBOOST_PP_NODE_194, NDNBOOST_PP_NODE_198)
+#                        define NDNBOOST_PP_NODE_194(p) NDNBOOST_PP_IIF(p(194), NDNBOOST_PP_NODE_193, NDNBOOST_PP_NODE_195)
+#                            define NDNBOOST_PP_NODE_193(p) NDNBOOST_PP_IIF(p(193), 193, 194)
+#                            define NDNBOOST_PP_NODE_195(p) NDNBOOST_PP_IIF(p(195), 195, 196)
+#                        define NDNBOOST_PP_NODE_198(p) NDNBOOST_PP_IIF(p(198), NDNBOOST_PP_NODE_197, NDNBOOST_PP_NODE_199)
+#                            define NDNBOOST_PP_NODE_197(p) NDNBOOST_PP_IIF(p(197), 197, 198)
+#                            define NDNBOOST_PP_NODE_199(p) NDNBOOST_PP_IIF(p(199), 199, 200)
+#                    define NDNBOOST_PP_NODE_204(p) NDNBOOST_PP_IIF(p(204), NDNBOOST_PP_NODE_202, NDNBOOST_PP_NODE_206)
+#                        define NDNBOOST_PP_NODE_202(p) NDNBOOST_PP_IIF(p(202), NDNBOOST_PP_NODE_201, NDNBOOST_PP_NODE_203)
+#                            define NDNBOOST_PP_NODE_201(p) NDNBOOST_PP_IIF(p(201), 201, 202)
+#                            define NDNBOOST_PP_NODE_203(p) NDNBOOST_PP_IIF(p(203), 203, 204)
+#                        define NDNBOOST_PP_NODE_206(p) NDNBOOST_PP_IIF(p(206), NDNBOOST_PP_NODE_205, NDNBOOST_PP_NODE_207)
+#                            define NDNBOOST_PP_NODE_205(p) NDNBOOST_PP_IIF(p(205), 205, 206)
+#                            define NDNBOOST_PP_NODE_207(p) NDNBOOST_PP_IIF(p(207), 207, 208)
+#                define NDNBOOST_PP_NODE_216(p) NDNBOOST_PP_IIF(p(216), NDNBOOST_PP_NODE_212, NDNBOOST_PP_NODE_220)
+#                    define NDNBOOST_PP_NODE_212(p) NDNBOOST_PP_IIF(p(212), NDNBOOST_PP_NODE_210, NDNBOOST_PP_NODE_214)
+#                        define NDNBOOST_PP_NODE_210(p) NDNBOOST_PP_IIF(p(210), NDNBOOST_PP_NODE_209, NDNBOOST_PP_NODE_211)
+#                            define NDNBOOST_PP_NODE_209(p) NDNBOOST_PP_IIF(p(209), 209, 210)
+#                            define NDNBOOST_PP_NODE_211(p) NDNBOOST_PP_IIF(p(211), 211, 212)
+#                        define NDNBOOST_PP_NODE_214(p) NDNBOOST_PP_IIF(p(214), NDNBOOST_PP_NODE_213, NDNBOOST_PP_NODE_215)
+#                            define NDNBOOST_PP_NODE_213(p) NDNBOOST_PP_IIF(p(213), 213, 214)
+#                            define NDNBOOST_PP_NODE_215(p) NDNBOOST_PP_IIF(p(215), 215, 216)
+#                    define NDNBOOST_PP_NODE_220(p) NDNBOOST_PP_IIF(p(220), NDNBOOST_PP_NODE_218, NDNBOOST_PP_NODE_222)
+#                        define NDNBOOST_PP_NODE_218(p) NDNBOOST_PP_IIF(p(218), NDNBOOST_PP_NODE_217, NDNBOOST_PP_NODE_219)
+#                            define NDNBOOST_PP_NODE_217(p) NDNBOOST_PP_IIF(p(217), 217, 218)
+#                            define NDNBOOST_PP_NODE_219(p) NDNBOOST_PP_IIF(p(219), 219, 220)
+#                        define NDNBOOST_PP_NODE_222(p) NDNBOOST_PP_IIF(p(222), NDNBOOST_PP_NODE_221, NDNBOOST_PP_NODE_223)
+#                            define NDNBOOST_PP_NODE_221(p) NDNBOOST_PP_IIF(p(221), 221, 222)
+#                            define NDNBOOST_PP_NODE_223(p) NDNBOOST_PP_IIF(p(223), 223, 224)
+#            define NDNBOOST_PP_NODE_240(p) NDNBOOST_PP_IIF(p(240), NDNBOOST_PP_NODE_232, NDNBOOST_PP_NODE_248)
+#                define NDNBOOST_PP_NODE_232(p) NDNBOOST_PP_IIF(p(232), NDNBOOST_PP_NODE_228, NDNBOOST_PP_NODE_236)
+#                    define NDNBOOST_PP_NODE_228(p) NDNBOOST_PP_IIF(p(228), NDNBOOST_PP_NODE_226, NDNBOOST_PP_NODE_230)
+#                        define NDNBOOST_PP_NODE_226(p) NDNBOOST_PP_IIF(p(226), NDNBOOST_PP_NODE_225, NDNBOOST_PP_NODE_227)
+#                            define NDNBOOST_PP_NODE_225(p) NDNBOOST_PP_IIF(p(225), 225, 226)
+#                            define NDNBOOST_PP_NODE_227(p) NDNBOOST_PP_IIF(p(227), 227, 228)
+#                        define NDNBOOST_PP_NODE_230(p) NDNBOOST_PP_IIF(p(230), NDNBOOST_PP_NODE_229, NDNBOOST_PP_NODE_231)
+#                            define NDNBOOST_PP_NODE_229(p) NDNBOOST_PP_IIF(p(229), 229, 230)
+#                            define NDNBOOST_PP_NODE_231(p) NDNBOOST_PP_IIF(p(231), 231, 232)
+#                    define NDNBOOST_PP_NODE_236(p) NDNBOOST_PP_IIF(p(236), NDNBOOST_PP_NODE_234, NDNBOOST_PP_NODE_238)
+#                        define NDNBOOST_PP_NODE_234(p) NDNBOOST_PP_IIF(p(234), NDNBOOST_PP_NODE_233, NDNBOOST_PP_NODE_235)
+#                            define NDNBOOST_PP_NODE_233(p) NDNBOOST_PP_IIF(p(233), 233, 234)
+#                            define NDNBOOST_PP_NODE_235(p) NDNBOOST_PP_IIF(p(235), 235, 236)
+#                        define NDNBOOST_PP_NODE_238(p) NDNBOOST_PP_IIF(p(238), NDNBOOST_PP_NODE_237, NDNBOOST_PP_NODE_239)
+#                            define NDNBOOST_PP_NODE_237(p) NDNBOOST_PP_IIF(p(237), 237, 238)
+#                            define NDNBOOST_PP_NODE_239(p) NDNBOOST_PP_IIF(p(239), 239, 240)
+#                define NDNBOOST_PP_NODE_248(p) NDNBOOST_PP_IIF(p(248), NDNBOOST_PP_NODE_244, NDNBOOST_PP_NODE_252)
+#                    define NDNBOOST_PP_NODE_244(p) NDNBOOST_PP_IIF(p(244), NDNBOOST_PP_NODE_242, NDNBOOST_PP_NODE_246)
+#                        define NDNBOOST_PP_NODE_242(p) NDNBOOST_PP_IIF(p(242), NDNBOOST_PP_NODE_241, NDNBOOST_PP_NODE_243)
+#                            define NDNBOOST_PP_NODE_241(p) NDNBOOST_PP_IIF(p(241), 241, 242)
+#                            define NDNBOOST_PP_NODE_243(p) NDNBOOST_PP_IIF(p(243), 243, 244)
+#                        define NDNBOOST_PP_NODE_246(p) NDNBOOST_PP_IIF(p(246), NDNBOOST_PP_NODE_245, NDNBOOST_PP_NODE_247)
+#                            define NDNBOOST_PP_NODE_245(p) NDNBOOST_PP_IIF(p(245), 245, 246)
+#                            define NDNBOOST_PP_NODE_247(p) NDNBOOST_PP_IIF(p(247), 247, 248)
+#                    define NDNBOOST_PP_NODE_252(p) NDNBOOST_PP_IIF(p(252), NDNBOOST_PP_NODE_250, NDNBOOST_PP_NODE_254)
+#                        define NDNBOOST_PP_NODE_250(p) NDNBOOST_PP_IIF(p(250), NDNBOOST_PP_NODE_249, NDNBOOST_PP_NODE_251)
+#                            define NDNBOOST_PP_NODE_249(p) NDNBOOST_PP_IIF(p(249), 249, 250)
+#                            define NDNBOOST_PP_NODE_251(p) NDNBOOST_PP_IIF(p(251), 251, 252)
+#                        define NDNBOOST_PP_NODE_254(p) NDNBOOST_PP_IIF(p(254), NDNBOOST_PP_NODE_253, NDNBOOST_PP_NODE_255)
+#                            define NDNBOOST_PP_NODE_253(p) NDNBOOST_PP_IIF(p(253), 253, 254)
+#                            define NDNBOOST_PP_NODE_255(p) NDNBOOST_PP_IIF(p(255), 255, 256)
 #
 # endif
 # endif
diff --git a/include/ndnboost/preprocessor/detail/check.hpp b/include/ndnboost/preprocessor/detail/check.hpp
index 3a908d4..8a08e3e 100644
--- a/include/ndnboost/preprocessor/detail/check.hpp
+++ b/include/ndnboost/preprocessor/detail/check.hpp
@@ -9,40 +9,40 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_DETAIL_CHECK_HPP
-# define BOOST_PREPROCESSOR_DETAIL_CHECK_HPP
+# ifndef NDNBOOST_PREPROCESSOR_DETAIL_CHECK_HPP
+# define NDNBOOST_PREPROCESSOR_DETAIL_CHECK_HPP
 #
 # include <ndnboost/preprocessor/cat.hpp>
 # include <ndnboost/preprocessor/config/config.hpp>
 #
-# /* BOOST_PP_CHECK */
+# /* NDNBOOST_PP_CHECK */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_CHECK(x, type) BOOST_PP_CHECK_D(x, type)
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MWCC()
+#    define NDNBOOST_PP_CHECK(x, type) NDNBOOST_PP_CHECK_D(x, type)
 # else
-#    define BOOST_PP_CHECK(x, type) BOOST_PP_CHECK_OO((x, type))
-#    define BOOST_PP_CHECK_OO(par) BOOST_PP_CHECK_D ## par
+#    define NDNBOOST_PP_CHECK(x, type) NDNBOOST_PP_CHECK_OO((x, type))
+#    define NDNBOOST_PP_CHECK_OO(par) NDNBOOST_PP_CHECK_D ## par
 # endif
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() && ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC()
-#    define BOOST_PP_CHECK_D(x, type) BOOST_PP_CHECK_1(BOOST_PP_CAT(BOOST_PP_CHECK_RESULT_, type x))
-#    define BOOST_PP_CHECK_1(chk) BOOST_PP_CHECK_2(chk)
-#    define BOOST_PP_CHECK_2(res, _) res
-# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-#    define BOOST_PP_CHECK_D(x, type) BOOST_PP_CHECK_1(type x)
-#    define BOOST_PP_CHECK_1(chk) BOOST_PP_CHECK_2(chk)
-#    define BOOST_PP_CHECK_2(chk) BOOST_PP_CHECK_3((BOOST_PP_CHECK_RESULT_ ## chk))
-#    define BOOST_PP_CHECK_3(im) BOOST_PP_CHECK_5(BOOST_PP_CHECK_4 im)
-#    define BOOST_PP_CHECK_4(res, _) res
-#    define BOOST_PP_CHECK_5(res) res
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MSVC() && ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_DMC()
+#    define NDNBOOST_PP_CHECK_D(x, type) NDNBOOST_PP_CHECK_1(NDNBOOST_PP_CAT(NDNBOOST_PP_CHECK_RESULT_, type x))
+#    define NDNBOOST_PP_CHECK_1(chk) NDNBOOST_PP_CHECK_2(chk)
+#    define NDNBOOST_PP_CHECK_2(res, _) res
+# elif NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MSVC()
+#    define NDNBOOST_PP_CHECK_D(x, type) NDNBOOST_PP_CHECK_1(type x)
+#    define NDNBOOST_PP_CHECK_1(chk) NDNBOOST_PP_CHECK_2(chk)
+#    define NDNBOOST_PP_CHECK_2(chk) NDNBOOST_PP_CHECK_3((NDNBOOST_PP_CHECK_RESULT_ ## chk))
+#    define NDNBOOST_PP_CHECK_3(im) NDNBOOST_PP_CHECK_5(NDNBOOST_PP_CHECK_4 im)
+#    define NDNBOOST_PP_CHECK_4(res, _) res
+#    define NDNBOOST_PP_CHECK_5(res) res
 # else /* DMC */
-#    define BOOST_PP_CHECK_D(x, type) BOOST_PP_CHECK_OO((type x))
-#    define BOOST_PP_CHECK_OO(par) BOOST_PP_CHECK_0 ## par
-#    define BOOST_PP_CHECK_0(chk) BOOST_PP_CHECK_1(BOOST_PP_CAT(BOOST_PP_CHECK_RESULT_, chk))
-#    define BOOST_PP_CHECK_1(chk) BOOST_PP_CHECK_2(chk)
-#    define BOOST_PP_CHECK_2(res, _) res
+#    define NDNBOOST_PP_CHECK_D(x, type) NDNBOOST_PP_CHECK_OO((type x))
+#    define NDNBOOST_PP_CHECK_OO(par) NDNBOOST_PP_CHECK_0 ## par
+#    define NDNBOOST_PP_CHECK_0(chk) NDNBOOST_PP_CHECK_1(NDNBOOST_PP_CAT(NDNBOOST_PP_CHECK_RESULT_, chk))
+#    define NDNBOOST_PP_CHECK_1(chk) NDNBOOST_PP_CHECK_2(chk)
+#    define NDNBOOST_PP_CHECK_2(res, _) res
 # endif
 #
-# define BOOST_PP_CHECK_RESULT_1 1, BOOST_PP_NIL
+# define NDNBOOST_PP_CHECK_RESULT_1 1, NDNBOOST_PP_NIL
 #
 # endif
diff --git a/include/ndnboost/preprocessor/detail/dmc/auto_rec.hpp b/include/ndnboost/preprocessor/detail/dmc/auto_rec.hpp
index 9e40364..1f2e6b5 100644
--- a/include/ndnboost/preprocessor/detail/dmc/auto_rec.hpp
+++ b/include/ndnboost/preprocessor/detail/dmc/auto_rec.hpp
@@ -9,278 +9,278 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_DETAIL_AUTO_REC_HPP
-# define BOOST_PREPROCESSOR_DETAIL_AUTO_REC_HPP
+# ifndef NDNBOOST_PREPROCESSOR_DETAIL_AUTO_REC_HPP
+# define NDNBOOST_PREPROCESSOR_DETAIL_AUTO_REC_HPP
 #
 # include <ndnboost/preprocessor/control/iif.hpp>
 #
-# /* BOOST_PP_AUTO_REC */
+# /* NDNBOOST_PP_AUTO_REC */
 #
-# define BOOST_PP_AUTO_REC(pred, n) BOOST_PP_NODE_ENTRY_ ## n(pred)
+# define NDNBOOST_PP_AUTO_REC(pred, n) NDNBOOST_PP_NODE_ENTRY_ ## n(pred)
 #
-# define BOOST_PP_NODE_ENTRY_256(p) BOOST_PP_NODE_128(p)(p)(p)(p)(p)(p)(p)(p)
-# define BOOST_PP_NODE_ENTRY_128(p) BOOST_PP_NODE_64(p)(p)(p)(p)(p)(p)(p)
-# define BOOST_PP_NODE_ENTRY_64(p) BOOST_PP_NODE_32(p)(p)(p)(p)(p)(p)
-# define BOOST_PP_NODE_ENTRY_32(p) BOOST_PP_NODE_16(p)(p)(p)(p)(p)
-# define BOOST_PP_NODE_ENTRY_16(p) BOOST_PP_NODE_8(p)(p)(p)(p)
-# define BOOST_PP_NODE_ENTRY_8(p) BOOST_PP_NODE_4(p)(p)(p)
-# define BOOST_PP_NODE_ENTRY_4(p) BOOST_PP_NODE_2(p)(p)
-# define BOOST_PP_NODE_ENTRY_2(p) BOOST_PP_NODE_1(p)
+# define NDNBOOST_PP_NODE_ENTRY_256(p) NDNBOOST_PP_NODE_128(p)(p)(p)(p)(p)(p)(p)(p)
+# define NDNBOOST_PP_NODE_ENTRY_128(p) NDNBOOST_PP_NODE_64(p)(p)(p)(p)(p)(p)(p)
+# define NDNBOOST_PP_NODE_ENTRY_64(p) NDNBOOST_PP_NODE_32(p)(p)(p)(p)(p)(p)
+# define NDNBOOST_PP_NODE_ENTRY_32(p) NDNBOOST_PP_NODE_16(p)(p)(p)(p)(p)
+# define NDNBOOST_PP_NODE_ENTRY_16(p) NDNBOOST_PP_NODE_8(p)(p)(p)(p)
+# define NDNBOOST_PP_NODE_ENTRY_8(p) NDNBOOST_PP_NODE_4(p)(p)(p)
+# define NDNBOOST_PP_NODE_ENTRY_4(p) NDNBOOST_PP_NODE_2(p)(p)
+# define NDNBOOST_PP_NODE_ENTRY_2(p) NDNBOOST_PP_NODE_1(p)
 #
-# define BOOST_PP_NODE_128(p) BOOST_PP_IIF(p##(128), BOOST_PP_NODE_64, BOOST_PP_NODE_192)
-#    define BOOST_PP_NODE_64(p) BOOST_PP_IIF(p##(64), BOOST_PP_NODE_32, BOOST_PP_NODE_96)
-#        define BOOST_PP_NODE_32(p) BOOST_PP_IIF(p##(32), BOOST_PP_NODE_16, BOOST_PP_NODE_48)
-#            define BOOST_PP_NODE_16(p) BOOST_PP_IIF(p##(16), BOOST_PP_NODE_8, BOOST_PP_NODE_24)
-#                define BOOST_PP_NODE_8(p) BOOST_PP_IIF(p##(8), BOOST_PP_NODE_4, BOOST_PP_NODE_12)
-#                    define BOOST_PP_NODE_4(p) BOOST_PP_IIF(p##(4), BOOST_PP_NODE_2, BOOST_PP_NODE_6)
-#                        define BOOST_PP_NODE_2(p) BOOST_PP_IIF(p##(2), BOOST_PP_NODE_1, BOOST_PP_NODE_3)
-#                            define BOOST_PP_NODE_1(p) BOOST_PP_IIF(p##(1), 1, 2)
-#                            define BOOST_PP_NODE_3(p) BOOST_PP_IIF(p##(3), 3, 4)
-#                        define BOOST_PP_NODE_6(p) BOOST_PP_IIF(p##(6), BOOST_PP_NODE_5, BOOST_PP_NODE_7)
-#                            define BOOST_PP_NODE_5(p) BOOST_PP_IIF(p##(5), 5, 6)
-#                            define BOOST_PP_NODE_7(p) BOOST_PP_IIF(p##(7), 7, 8)
-#                    define BOOST_PP_NODE_12(p) BOOST_PP_IIF(p##(12), BOOST_PP_NODE_10, BOOST_PP_NODE_14)
-#                        define BOOST_PP_NODE_10(p) BOOST_PP_IIF(p##(10), BOOST_PP_NODE_9, BOOST_PP_NODE_11)
-#                            define BOOST_PP_NODE_9(p) BOOST_PP_IIF(p##(9), 9, 10)
-#                            define BOOST_PP_NODE_11(p) BOOST_PP_IIF(p##(11), 11, 12)
-#                        define BOOST_PP_NODE_14(p) BOOST_PP_IIF(p##(14), BOOST_PP_NODE_13, BOOST_PP_NODE_15)
-#                            define BOOST_PP_NODE_13(p) BOOST_PP_IIF(p##(13), 13, 14)
-#                            define BOOST_PP_NODE_15(p) BOOST_PP_IIF(p##(15), 15, 16)
-#                define BOOST_PP_NODE_24(p) BOOST_PP_IIF(p##(24), BOOST_PP_NODE_20, BOOST_PP_NODE_28)
-#                    define BOOST_PP_NODE_20(p) BOOST_PP_IIF(p##(20), BOOST_PP_NODE_18, BOOST_PP_NODE_22)
-#                        define BOOST_PP_NODE_18(p) BOOST_PP_IIF(p##(18), BOOST_PP_NODE_17, BOOST_PP_NODE_19)
-#                            define BOOST_PP_NODE_17(p) BOOST_PP_IIF(p##(17), 17, 18)
-#                            define BOOST_PP_NODE_19(p) BOOST_PP_IIF(p##(19), 19, 20)
-#                        define BOOST_PP_NODE_22(p) BOOST_PP_IIF(p##(22), BOOST_PP_NODE_21, BOOST_PP_NODE_23)
-#                            define BOOST_PP_NODE_21(p) BOOST_PP_IIF(p##(21), 21, 22)
-#                            define BOOST_PP_NODE_23(p) BOOST_PP_IIF(p##(23), 23, 24)
-#                    define BOOST_PP_NODE_28(p) BOOST_PP_IIF(p##(28), BOOST_PP_NODE_26, BOOST_PP_NODE_30)
-#                        define BOOST_PP_NODE_26(p) BOOST_PP_IIF(p##(26), BOOST_PP_NODE_25, BOOST_PP_NODE_27)
-#                            define BOOST_PP_NODE_25(p) BOOST_PP_IIF(p##(25), 25, 26)
-#                            define BOOST_PP_NODE_27(p) BOOST_PP_IIF(p##(27), 27, 28)
-#                        define BOOST_PP_NODE_30(p) BOOST_PP_IIF(p##(30), BOOST_PP_NODE_29, BOOST_PP_NODE_31)
-#                            define BOOST_PP_NODE_29(p) BOOST_PP_IIF(p##(29), 29, 30)
-#                            define BOOST_PP_NODE_31(p) BOOST_PP_IIF(p##(31), 31, 32)
-#            define BOOST_PP_NODE_48(p) BOOST_PP_IIF(p##(48), BOOST_PP_NODE_40, BOOST_PP_NODE_56)
-#                define BOOST_PP_NODE_40(p) BOOST_PP_IIF(p##(40), BOOST_PP_NODE_36, BOOST_PP_NODE_44)
-#                    define BOOST_PP_NODE_36(p) BOOST_PP_IIF(p##(36), BOOST_PP_NODE_34, BOOST_PP_NODE_38)
-#                        define BOOST_PP_NODE_34(p) BOOST_PP_IIF(p##(34), BOOST_PP_NODE_33, BOOST_PP_NODE_35)
-#                            define BOOST_PP_NODE_33(p) BOOST_PP_IIF(p##(33), 33, 34)
-#                            define BOOST_PP_NODE_35(p) BOOST_PP_IIF(p##(35), 35, 36)
-#                        define BOOST_PP_NODE_38(p) BOOST_PP_IIF(p##(38), BOOST_PP_NODE_37, BOOST_PP_NODE_39)
-#                            define BOOST_PP_NODE_37(p) BOOST_PP_IIF(p##(37), 37, 38)
-#                            define BOOST_PP_NODE_39(p) BOOST_PP_IIF(p##(39), 39, 40)
-#                    define BOOST_PP_NODE_44(p) BOOST_PP_IIF(p##(44), BOOST_PP_NODE_42, BOOST_PP_NODE_46)
-#                        define BOOST_PP_NODE_42(p) BOOST_PP_IIF(p##(42), BOOST_PP_NODE_41, BOOST_PP_NODE_43)
-#                            define BOOST_PP_NODE_41(p) BOOST_PP_IIF(p##(41), 41, 42)
-#                            define BOOST_PP_NODE_43(p) BOOST_PP_IIF(p##(43), 43, 44)
-#                        define BOOST_PP_NODE_46(p) BOOST_PP_IIF(p##(46), BOOST_PP_NODE_45, BOOST_PP_NODE_47)
-#                            define BOOST_PP_NODE_45(p) BOOST_PP_IIF(p##(45), 45, 46)
-#                            define BOOST_PP_NODE_47(p) BOOST_PP_IIF(p##(47), 47, 48)
-#                define BOOST_PP_NODE_56(p) BOOST_PP_IIF(p##(56), BOOST_PP_NODE_52, BOOST_PP_NODE_60)
-#                    define BOOST_PP_NODE_52(p) BOOST_PP_IIF(p##(52), BOOST_PP_NODE_50, BOOST_PP_NODE_54)
-#                        define BOOST_PP_NODE_50(p) BOOST_PP_IIF(p##(50), BOOST_PP_NODE_49, BOOST_PP_NODE_51)
-#                            define BOOST_PP_NODE_49(p) BOOST_PP_IIF(p##(49), 49, 50)
-#                            define BOOST_PP_NODE_51(p) BOOST_PP_IIF(p##(51), 51, 52)
-#                        define BOOST_PP_NODE_54(p) BOOST_PP_IIF(p##(54), BOOST_PP_NODE_53, BOOST_PP_NODE_55)
-#                            define BOOST_PP_NODE_53(p) BOOST_PP_IIF(p##(53), 53, 54)
-#                            define BOOST_PP_NODE_55(p) BOOST_PP_IIF(p##(55), 55, 56)
-#                    define BOOST_PP_NODE_60(p) BOOST_PP_IIF(p##(60), BOOST_PP_NODE_58, BOOST_PP_NODE_62)
-#                        define BOOST_PP_NODE_58(p) BOOST_PP_IIF(p##(58), BOOST_PP_NODE_57, BOOST_PP_NODE_59)
-#                            define BOOST_PP_NODE_57(p) BOOST_PP_IIF(p##(57), 57, 58)
-#                            define BOOST_PP_NODE_59(p) BOOST_PP_IIF(p##(59), 59, 60)
-#                        define BOOST_PP_NODE_62(p) BOOST_PP_IIF(p##(62), BOOST_PP_NODE_61, BOOST_PP_NODE_63)
-#                            define BOOST_PP_NODE_61(p) BOOST_PP_IIF(p##(61), 61, 62)
-#                            define BOOST_PP_NODE_63(p) BOOST_PP_IIF(p##(63), 63, 64)
-#        define BOOST_PP_NODE_96(p) BOOST_PP_IIF(p##(96), BOOST_PP_NODE_80, BOOST_PP_NODE_112)
-#            define BOOST_PP_NODE_80(p) BOOST_PP_IIF(p##(80), BOOST_PP_NODE_72, BOOST_PP_NODE_88)
-#                define BOOST_PP_NODE_72(p) BOOST_PP_IIF(p##(72), BOOST_PP_NODE_68, BOOST_PP_NODE_76)
-#                    define BOOST_PP_NODE_68(p) BOOST_PP_IIF(p##(68), BOOST_PP_NODE_66, BOOST_PP_NODE_70)
-#                        define BOOST_PP_NODE_66(p) BOOST_PP_IIF(p##(66), BOOST_PP_NODE_65, BOOST_PP_NODE_67)
-#                            define BOOST_PP_NODE_65(p) BOOST_PP_IIF(p##(65), 65, 66)
-#                            define BOOST_PP_NODE_67(p) BOOST_PP_IIF(p##(67), 67, 68)
-#                        define BOOST_PP_NODE_70(p) BOOST_PP_IIF(p##(70), BOOST_PP_NODE_69, BOOST_PP_NODE_71)
-#                            define BOOST_PP_NODE_69(p) BOOST_PP_IIF(p##(69), 69, 70)
-#                            define BOOST_PP_NODE_71(p) BOOST_PP_IIF(p##(71), 71, 72)
-#                    define BOOST_PP_NODE_76(p) BOOST_PP_IIF(p##(76), BOOST_PP_NODE_74, BOOST_PP_NODE_78)
-#                        define BOOST_PP_NODE_74(p) BOOST_PP_IIF(p##(74), BOOST_PP_NODE_73, BOOST_PP_NODE_75)
-#                            define BOOST_PP_NODE_73(p) BOOST_PP_IIF(p##(73), 73, 74)
-#                            define BOOST_PP_NODE_75(p) BOOST_PP_IIF(p##(75), 75, 76)
-#                        define BOOST_PP_NODE_78(p) BOOST_PP_IIF(p##(78), BOOST_PP_NODE_77, BOOST_PP_NODE_79)
-#                            define BOOST_PP_NODE_77(p) BOOST_PP_IIF(p##(77), 77, 78)
-#                            define BOOST_PP_NODE_79(p) BOOST_PP_IIF(p##(79), 79, 80)
-#                define BOOST_PP_NODE_88(p) BOOST_PP_IIF(p##(88), BOOST_PP_NODE_84, BOOST_PP_NODE_92)
-#                    define BOOST_PP_NODE_84(p) BOOST_PP_IIF(p##(84), BOOST_PP_NODE_82, BOOST_PP_NODE_86)
-#                        define BOOST_PP_NODE_82(p) BOOST_PP_IIF(p##(82), BOOST_PP_NODE_81, BOOST_PP_NODE_83)
-#                            define BOOST_PP_NODE_81(p) BOOST_PP_IIF(p##(81), 81, 82)
-#                            define BOOST_PP_NODE_83(p) BOOST_PP_IIF(p##(83), 83, 84)
-#                        define BOOST_PP_NODE_86(p) BOOST_PP_IIF(p##(86), BOOST_PP_NODE_85, BOOST_PP_NODE_87)
-#                            define BOOST_PP_NODE_85(p) BOOST_PP_IIF(p##(85), 85, 86)
-#                            define BOOST_PP_NODE_87(p) BOOST_PP_IIF(p##(87), 87, 88)
-#                    define BOOST_PP_NODE_92(p) BOOST_PP_IIF(p##(92), BOOST_PP_NODE_90, BOOST_PP_NODE_94)
-#                        define BOOST_PP_NODE_90(p) BOOST_PP_IIF(p##(90), BOOST_PP_NODE_89, BOOST_PP_NODE_91)
-#                            define BOOST_PP_NODE_89(p) BOOST_PP_IIF(p##(89), 89, 90)
-#                            define BOOST_PP_NODE_91(p) BOOST_PP_IIF(p##(91), 91, 92)
-#                        define BOOST_PP_NODE_94(p) BOOST_PP_IIF(p##(94), BOOST_PP_NODE_93, BOOST_PP_NODE_95)
-#                            define BOOST_PP_NODE_93(p) BOOST_PP_IIF(p##(93), 93, 94)
-#                            define BOOST_PP_NODE_95(p) BOOST_PP_IIF(p##(95), 95, 96)
-#            define BOOST_PP_NODE_112(p) BOOST_PP_IIF(p##(112), BOOST_PP_NODE_104, BOOST_PP_NODE_120)
-#                define BOOST_PP_NODE_104(p) BOOST_PP_IIF(p##(104), BOOST_PP_NODE_100, BOOST_PP_NODE_108)
-#                    define BOOST_PP_NODE_100(p) BOOST_PP_IIF(p##(100), BOOST_PP_NODE_98, BOOST_PP_NODE_102)
-#                        define BOOST_PP_NODE_98(p) BOOST_PP_IIF(p##(98), BOOST_PP_NODE_97, BOOST_PP_NODE_99)
-#                            define BOOST_PP_NODE_97(p) BOOST_PP_IIF(p##(97), 97, 98)
-#                            define BOOST_PP_NODE_99(p) BOOST_PP_IIF(p##(99), 99, 100)
-#                        define BOOST_PP_NODE_102(p) BOOST_PP_IIF(p##(102), BOOST_PP_NODE_101, BOOST_PP_NODE_103)
-#                            define BOOST_PP_NODE_101(p) BOOST_PP_IIF(p##(101), 101, 102)
-#                            define BOOST_PP_NODE_103(p) BOOST_PP_IIF(p##(103), 103, 104)
-#                    define BOOST_PP_NODE_108(p) BOOST_PP_IIF(p##(108), BOOST_PP_NODE_106, BOOST_PP_NODE_110)
-#                        define BOOST_PP_NODE_106(p) BOOST_PP_IIF(p##(106), BOOST_PP_NODE_105, BOOST_PP_NODE_107)
-#                            define BOOST_PP_NODE_105(p) BOOST_PP_IIF(p##(105), 105, 106)
-#                            define BOOST_PP_NODE_107(p) BOOST_PP_IIF(p##(107), 107, 108)
-#                        define BOOST_PP_NODE_110(p) BOOST_PP_IIF(p##(110), BOOST_PP_NODE_109, BOOST_PP_NODE_111)
-#                            define BOOST_PP_NODE_109(p) BOOST_PP_IIF(p##(109), 109, 110)
-#                            define BOOST_PP_NODE_111(p) BOOST_PP_IIF(p##(111), 111, 112)
-#                define BOOST_PP_NODE_120(p) BOOST_PP_IIF(p##(120), BOOST_PP_NODE_116, BOOST_PP_NODE_124)
-#                    define BOOST_PP_NODE_116(p) BOOST_PP_IIF(p##(116), BOOST_PP_NODE_114, BOOST_PP_NODE_118)
-#                        define BOOST_PP_NODE_114(p) BOOST_PP_IIF(p##(114), BOOST_PP_NODE_113, BOOST_PP_NODE_115)
-#                            define BOOST_PP_NODE_113(p) BOOST_PP_IIF(p##(113), 113, 114)
-#                            define BOOST_PP_NODE_115(p) BOOST_PP_IIF(p##(115), 115, 116)
-#                        define BOOST_PP_NODE_118(p) BOOST_PP_IIF(p##(118), BOOST_PP_NODE_117, BOOST_PP_NODE_119)
-#                            define BOOST_PP_NODE_117(p) BOOST_PP_IIF(p##(117), 117, 118)
-#                            define BOOST_PP_NODE_119(p) BOOST_PP_IIF(p##(119), 119, 120)
-#                    define BOOST_PP_NODE_124(p) BOOST_PP_IIF(p##(124), BOOST_PP_NODE_122, BOOST_PP_NODE_126)
-#                        define BOOST_PP_NODE_122(p) BOOST_PP_IIF(p##(122), BOOST_PP_NODE_121, BOOST_PP_NODE_123)
-#                            define BOOST_PP_NODE_121(p) BOOST_PP_IIF(p##(121), 121, 122)
-#                            define BOOST_PP_NODE_123(p) BOOST_PP_IIF(p##(123), 123, 124)
-#                        define BOOST_PP_NODE_126(p) BOOST_PP_IIF(p##(126), BOOST_PP_NODE_125, BOOST_PP_NODE_127)
-#                            define BOOST_PP_NODE_125(p) BOOST_PP_IIF(p##(125), 125, 126)
-#                            define BOOST_PP_NODE_127(p) BOOST_PP_IIF(p##(127), 127, 128)
-#    define BOOST_PP_NODE_192(p) BOOST_PP_IIF(p##(192), BOOST_PP_NODE_160, BOOST_PP_NODE_224)
-#        define BOOST_PP_NODE_160(p) BOOST_PP_IIF(p##(160), BOOST_PP_NODE_144, BOOST_PP_NODE_176)
-#            define BOOST_PP_NODE_144(p) BOOST_PP_IIF(p##(144), BOOST_PP_NODE_136, BOOST_PP_NODE_152)
-#                define BOOST_PP_NODE_136(p) BOOST_PP_IIF(p##(136), BOOST_PP_NODE_132, BOOST_PP_NODE_140)
-#                    define BOOST_PP_NODE_132(p) BOOST_PP_IIF(p##(132), BOOST_PP_NODE_130, BOOST_PP_NODE_134)
-#                        define BOOST_PP_NODE_130(p) BOOST_PP_IIF(p##(130), BOOST_PP_NODE_129, BOOST_PP_NODE_131)
-#                            define BOOST_PP_NODE_129(p) BOOST_PP_IIF(p##(129), 129, 130)
-#                            define BOOST_PP_NODE_131(p) BOOST_PP_IIF(p##(131), 131, 132)
-#                        define BOOST_PP_NODE_134(p) BOOST_PP_IIF(p##(134), BOOST_PP_NODE_133, BOOST_PP_NODE_135)
-#                            define BOOST_PP_NODE_133(p) BOOST_PP_IIF(p##(133), 133, 134)
-#                            define BOOST_PP_NODE_135(p) BOOST_PP_IIF(p##(135), 135, 136)
-#                    define BOOST_PP_NODE_140(p) BOOST_PP_IIF(p##(140), BOOST_PP_NODE_138, BOOST_PP_NODE_142)
-#                        define BOOST_PP_NODE_138(p) BOOST_PP_IIF(p##(138), BOOST_PP_NODE_137, BOOST_PP_NODE_139)
-#                            define BOOST_PP_NODE_137(p) BOOST_PP_IIF(p##(137), 137, 138)
-#                            define BOOST_PP_NODE_139(p) BOOST_PP_IIF(p##(139), 139, 140)
-#                        define BOOST_PP_NODE_142(p) BOOST_PP_IIF(p##(142), BOOST_PP_NODE_141, BOOST_PP_NODE_143)
-#                            define BOOST_PP_NODE_141(p) BOOST_PP_IIF(p##(141), 141, 142)
-#                            define BOOST_PP_NODE_143(p) BOOST_PP_IIF(p##(143), 143, 144)
-#                define BOOST_PP_NODE_152(p) BOOST_PP_IIF(p##(152), BOOST_PP_NODE_148, BOOST_PP_NODE_156)
-#                    define BOOST_PP_NODE_148(p) BOOST_PP_IIF(p##(148), BOOST_PP_NODE_146, BOOST_PP_NODE_150)
-#                        define BOOST_PP_NODE_146(p) BOOST_PP_IIF(p##(146), BOOST_PP_NODE_145, BOOST_PP_NODE_147)
-#                            define BOOST_PP_NODE_145(p) BOOST_PP_IIF(p##(145), 145, 146)
-#                            define BOOST_PP_NODE_147(p) BOOST_PP_IIF(p##(147), 147, 148)
-#                        define BOOST_PP_NODE_150(p) BOOST_PP_IIF(p##(150), BOOST_PP_NODE_149, BOOST_PP_NODE_151)
-#                            define BOOST_PP_NODE_149(p) BOOST_PP_IIF(p##(149), 149, 150)
-#                            define BOOST_PP_NODE_151(p) BOOST_PP_IIF(p##(151), 151, 152)
-#                    define BOOST_PP_NODE_156(p) BOOST_PP_IIF(p##(156), BOOST_PP_NODE_154, BOOST_PP_NODE_158)
-#                        define BOOST_PP_NODE_154(p) BOOST_PP_IIF(p##(154), BOOST_PP_NODE_153, BOOST_PP_NODE_155)
-#                            define BOOST_PP_NODE_153(p) BOOST_PP_IIF(p##(153), 153, 154)
-#                            define BOOST_PP_NODE_155(p) BOOST_PP_IIF(p##(155), 155, 156)
-#                        define BOOST_PP_NODE_158(p) BOOST_PP_IIF(p##(158), BOOST_PP_NODE_157, BOOST_PP_NODE_159)
-#                            define BOOST_PP_NODE_157(p) BOOST_PP_IIF(p##(157), 157, 158)
-#                            define BOOST_PP_NODE_159(p) BOOST_PP_IIF(p##(159), 159, 160)
-#            define BOOST_PP_NODE_176(p) BOOST_PP_IIF(p##(176), BOOST_PP_NODE_168, BOOST_PP_NODE_184)
-#                define BOOST_PP_NODE_168(p) BOOST_PP_IIF(p##(168), BOOST_PP_NODE_164, BOOST_PP_NODE_172)
-#                    define BOOST_PP_NODE_164(p) BOOST_PP_IIF(p##(164), BOOST_PP_NODE_162, BOOST_PP_NODE_166)
-#                        define BOOST_PP_NODE_162(p) BOOST_PP_IIF(p##(162), BOOST_PP_NODE_161, BOOST_PP_NODE_163)
-#                            define BOOST_PP_NODE_161(p) BOOST_PP_IIF(p##(161), 161, 162)
-#                            define BOOST_PP_NODE_163(p) BOOST_PP_IIF(p##(163), 163, 164)
-#                        define BOOST_PP_NODE_166(p) BOOST_PP_IIF(p##(166), BOOST_PP_NODE_165, BOOST_PP_NODE_167)
-#                            define BOOST_PP_NODE_165(p) BOOST_PP_IIF(p##(165), 165, 166)
-#                            define BOOST_PP_NODE_167(p) BOOST_PP_IIF(p##(167), 167, 168)
-#                    define BOOST_PP_NODE_172(p) BOOST_PP_IIF(p##(172), BOOST_PP_NODE_170, BOOST_PP_NODE_174)
-#                        define BOOST_PP_NODE_170(p) BOOST_PP_IIF(p##(170), BOOST_PP_NODE_169, BOOST_PP_NODE_171)
-#                            define BOOST_PP_NODE_169(p) BOOST_PP_IIF(p##(169), 169, 170)
-#                            define BOOST_PP_NODE_171(p) BOOST_PP_IIF(p##(171), 171, 172)
-#                        define BOOST_PP_NODE_174(p) BOOST_PP_IIF(p##(174), BOOST_PP_NODE_173, BOOST_PP_NODE_175)
-#                            define BOOST_PP_NODE_173(p) BOOST_PP_IIF(p##(173), 173, 174)
-#                            define BOOST_PP_NODE_175(p) BOOST_PP_IIF(p##(175), 175, 176)
-#                define BOOST_PP_NODE_184(p) BOOST_PP_IIF(p##(184), BOOST_PP_NODE_180, BOOST_PP_NODE_188)
-#                    define BOOST_PP_NODE_180(p) BOOST_PP_IIF(p##(180), BOOST_PP_NODE_178, BOOST_PP_NODE_182)
-#                        define BOOST_PP_NODE_178(p) BOOST_PP_IIF(p##(178), BOOST_PP_NODE_177, BOOST_PP_NODE_179)
-#                            define BOOST_PP_NODE_177(p) BOOST_PP_IIF(p##(177), 177, 178)
-#                            define BOOST_PP_NODE_179(p) BOOST_PP_IIF(p##(179), 179, 180)
-#                        define BOOST_PP_NODE_182(p) BOOST_PP_IIF(p##(182), BOOST_PP_NODE_181, BOOST_PP_NODE_183)
-#                            define BOOST_PP_NODE_181(p) BOOST_PP_IIF(p##(181), 181, 182)
-#                            define BOOST_PP_NODE_183(p) BOOST_PP_IIF(p##(183), 183, 184)
-#                    define BOOST_PP_NODE_188(p) BOOST_PP_IIF(p##(188), BOOST_PP_NODE_186, BOOST_PP_NODE_190)
-#                        define BOOST_PP_NODE_186(p) BOOST_PP_IIF(p##(186), BOOST_PP_NODE_185, BOOST_PP_NODE_187)
-#                            define BOOST_PP_NODE_185(p) BOOST_PP_IIF(p##(185), 185, 186)
-#                            define BOOST_PP_NODE_187(p) BOOST_PP_IIF(p##(187), 187, 188)
-#                        define BOOST_PP_NODE_190(p) BOOST_PP_IIF(p##(190), BOOST_PP_NODE_189, BOOST_PP_NODE_191)
-#                            define BOOST_PP_NODE_189(p) BOOST_PP_IIF(p##(189), 189, 190)
-#                            define BOOST_PP_NODE_191(p) BOOST_PP_IIF(p##(191), 191, 192)
-#        define BOOST_PP_NODE_224(p) BOOST_PP_IIF(p##(224), BOOST_PP_NODE_208, BOOST_PP_NODE_240)
-#            define BOOST_PP_NODE_208(p) BOOST_PP_IIF(p##(208), BOOST_PP_NODE_200, BOOST_PP_NODE_216)
-#                define BOOST_PP_NODE_200(p) BOOST_PP_IIF(p##(200), BOOST_PP_NODE_196, BOOST_PP_NODE_204)
-#                    define BOOST_PP_NODE_196(p) BOOST_PP_IIF(p##(196), BOOST_PP_NODE_194, BOOST_PP_NODE_198)
-#                        define BOOST_PP_NODE_194(p) BOOST_PP_IIF(p##(194), BOOST_PP_NODE_193, BOOST_PP_NODE_195)
-#                            define BOOST_PP_NODE_193(p) BOOST_PP_IIF(p##(193), 193, 194)
-#                            define BOOST_PP_NODE_195(p) BOOST_PP_IIF(p##(195), 195, 196)
-#                        define BOOST_PP_NODE_198(p) BOOST_PP_IIF(p##(198), BOOST_PP_NODE_197, BOOST_PP_NODE_199)
-#                            define BOOST_PP_NODE_197(p) BOOST_PP_IIF(p##(197), 197, 198)
-#                            define BOOST_PP_NODE_199(p) BOOST_PP_IIF(p##(199), 199, 200)
-#                    define BOOST_PP_NODE_204(p) BOOST_PP_IIF(p##(204), BOOST_PP_NODE_202, BOOST_PP_NODE_206)
-#                        define BOOST_PP_NODE_202(p) BOOST_PP_IIF(p##(202), BOOST_PP_NODE_201, BOOST_PP_NODE_203)
-#                            define BOOST_PP_NODE_201(p) BOOST_PP_IIF(p##(201), 201, 202)
-#                            define BOOST_PP_NODE_203(p) BOOST_PP_IIF(p##(203), 203, 204)
-#                        define BOOST_PP_NODE_206(p) BOOST_PP_IIF(p##(206), BOOST_PP_NODE_205, BOOST_PP_NODE_207)
-#                            define BOOST_PP_NODE_205(p) BOOST_PP_IIF(p##(205), 205, 206)
-#                            define BOOST_PP_NODE_207(p) BOOST_PP_IIF(p##(207), 207, 208)
-#                define BOOST_PP_NODE_216(p) BOOST_PP_IIF(p##(216), BOOST_PP_NODE_212, BOOST_PP_NODE_220)
-#                    define BOOST_PP_NODE_212(p) BOOST_PP_IIF(p##(212), BOOST_PP_NODE_210, BOOST_PP_NODE_214)
-#                        define BOOST_PP_NODE_210(p) BOOST_PP_IIF(p##(210), BOOST_PP_NODE_209, BOOST_PP_NODE_211)
-#                            define BOOST_PP_NODE_209(p) BOOST_PP_IIF(p##(209), 209, 210)
-#                            define BOOST_PP_NODE_211(p) BOOST_PP_IIF(p##(211), 211, 212)
-#                        define BOOST_PP_NODE_214(p) BOOST_PP_IIF(p##(214), BOOST_PP_NODE_213, BOOST_PP_NODE_215)
-#                            define BOOST_PP_NODE_213(p) BOOST_PP_IIF(p##(213), 213, 214)
-#                            define BOOST_PP_NODE_215(p) BOOST_PP_IIF(p##(215), 215, 216)
-#                    define BOOST_PP_NODE_220(p) BOOST_PP_IIF(p##(220), BOOST_PP_NODE_218, BOOST_PP_NODE_222)
-#                        define BOOST_PP_NODE_218(p) BOOST_PP_IIF(p##(218), BOOST_PP_NODE_217, BOOST_PP_NODE_219)
-#                            define BOOST_PP_NODE_217(p) BOOST_PP_IIF(p##(217), 217, 218)
-#                            define BOOST_PP_NODE_219(p) BOOST_PP_IIF(p##(219), 219, 220)
-#                        define BOOST_PP_NODE_222(p) BOOST_PP_IIF(p##(222), BOOST_PP_NODE_221, BOOST_PP_NODE_223)
-#                            define BOOST_PP_NODE_221(p) BOOST_PP_IIF(p##(221), 221, 222)
-#                            define BOOST_PP_NODE_223(p) BOOST_PP_IIF(p##(223), 223, 224)
-#            define BOOST_PP_NODE_240(p) BOOST_PP_IIF(p##(240), BOOST_PP_NODE_232, BOOST_PP_NODE_248)
-#                define BOOST_PP_NODE_232(p) BOOST_PP_IIF(p##(232), BOOST_PP_NODE_228, BOOST_PP_NODE_236)
-#                    define BOOST_PP_NODE_228(p) BOOST_PP_IIF(p##(228), BOOST_PP_NODE_226, BOOST_PP_NODE_230)
-#                        define BOOST_PP_NODE_226(p) BOOST_PP_IIF(p##(226), BOOST_PP_NODE_225, BOOST_PP_NODE_227)
-#                            define BOOST_PP_NODE_225(p) BOOST_PP_IIF(p##(225), 225, 226)
-#                            define BOOST_PP_NODE_227(p) BOOST_PP_IIF(p##(227), 227, 228)
-#                        define BOOST_PP_NODE_230(p) BOOST_PP_IIF(p##(230), BOOST_PP_NODE_229, BOOST_PP_NODE_231)
-#                            define BOOST_PP_NODE_229(p) BOOST_PP_IIF(p##(229), 229, 230)
-#                            define BOOST_PP_NODE_231(p) BOOST_PP_IIF(p##(231), 231, 232)
-#                    define BOOST_PP_NODE_236(p) BOOST_PP_IIF(p##(236), BOOST_PP_NODE_234, BOOST_PP_NODE_238)
-#                        define BOOST_PP_NODE_234(p) BOOST_PP_IIF(p##(234), BOOST_PP_NODE_233, BOOST_PP_NODE_235)
-#                            define BOOST_PP_NODE_233(p) BOOST_PP_IIF(p##(233), 233, 234)
-#                            define BOOST_PP_NODE_235(p) BOOST_PP_IIF(p##(235), 235, 236)
-#                        define BOOST_PP_NODE_238(p) BOOST_PP_IIF(p##(238), BOOST_PP_NODE_237, BOOST_PP_NODE_239)
-#                            define BOOST_PP_NODE_237(p) BOOST_PP_IIF(p##(237), 237, 238)
-#                            define BOOST_PP_NODE_239(p) BOOST_PP_IIF(p##(239), 239, 240)
-#                define BOOST_PP_NODE_248(p) BOOST_PP_IIF(p##(248), BOOST_PP_NODE_244, BOOST_PP_NODE_252)
-#                    define BOOST_PP_NODE_244(p) BOOST_PP_IIF(p##(244), BOOST_PP_NODE_242, BOOST_PP_NODE_246)
-#                        define BOOST_PP_NODE_242(p) BOOST_PP_IIF(p##(242), BOOST_PP_NODE_241, BOOST_PP_NODE_243)
-#                            define BOOST_PP_NODE_241(p) BOOST_PP_IIF(p##(241), 241, 242)
-#                            define BOOST_PP_NODE_243(p) BOOST_PP_IIF(p##(243), 243, 244)
-#                        define BOOST_PP_NODE_246(p) BOOST_PP_IIF(p##(246), BOOST_PP_NODE_245, BOOST_PP_NODE_247)
-#                            define BOOST_PP_NODE_245(p) BOOST_PP_IIF(p##(245), 245, 246)
-#                            define BOOST_PP_NODE_247(p) BOOST_PP_IIF(p##(247), 247, 248)
-#                    define BOOST_PP_NODE_252(p) BOOST_PP_IIF(p##(252), BOOST_PP_NODE_250, BOOST_PP_NODE_254)
-#                        define BOOST_PP_NODE_250(p) BOOST_PP_IIF(p##(250), BOOST_PP_NODE_249, BOOST_PP_NODE_251)
-#                            define BOOST_PP_NODE_249(p) BOOST_PP_IIF(p##(249), 249, 250)
-#                            define BOOST_PP_NODE_251(p) BOOST_PP_IIF(p##(251), 251, 252)
-#                        define BOOST_PP_NODE_254(p) BOOST_PP_IIF(p##(254), BOOST_PP_NODE_253, BOOST_PP_NODE_255)
-#                            define BOOST_PP_NODE_253(p) BOOST_PP_IIF(p##(253), 253, 254)
-#                            define BOOST_PP_NODE_255(p) BOOST_PP_IIF(p##(255), 255, 256)
+# define NDNBOOST_PP_NODE_128(p) NDNBOOST_PP_IIF(p##(128), NDNBOOST_PP_NODE_64, NDNBOOST_PP_NODE_192)
+#    define NDNBOOST_PP_NODE_64(p) NDNBOOST_PP_IIF(p##(64), NDNBOOST_PP_NODE_32, NDNBOOST_PP_NODE_96)
+#        define NDNBOOST_PP_NODE_32(p) NDNBOOST_PP_IIF(p##(32), NDNBOOST_PP_NODE_16, NDNBOOST_PP_NODE_48)
+#            define NDNBOOST_PP_NODE_16(p) NDNBOOST_PP_IIF(p##(16), NDNBOOST_PP_NODE_8, NDNBOOST_PP_NODE_24)
+#                define NDNBOOST_PP_NODE_8(p) NDNBOOST_PP_IIF(p##(8), NDNBOOST_PP_NODE_4, NDNBOOST_PP_NODE_12)
+#                    define NDNBOOST_PP_NODE_4(p) NDNBOOST_PP_IIF(p##(4), NDNBOOST_PP_NODE_2, NDNBOOST_PP_NODE_6)
+#                        define NDNBOOST_PP_NODE_2(p) NDNBOOST_PP_IIF(p##(2), NDNBOOST_PP_NODE_1, NDNBOOST_PP_NODE_3)
+#                            define NDNBOOST_PP_NODE_1(p) NDNBOOST_PP_IIF(p##(1), 1, 2)
+#                            define NDNBOOST_PP_NODE_3(p) NDNBOOST_PP_IIF(p##(3), 3, 4)
+#                        define NDNBOOST_PP_NODE_6(p) NDNBOOST_PP_IIF(p##(6), NDNBOOST_PP_NODE_5, NDNBOOST_PP_NODE_7)
+#                            define NDNBOOST_PP_NODE_5(p) NDNBOOST_PP_IIF(p##(5), 5, 6)
+#                            define NDNBOOST_PP_NODE_7(p) NDNBOOST_PP_IIF(p##(7), 7, 8)
+#                    define NDNBOOST_PP_NODE_12(p) NDNBOOST_PP_IIF(p##(12), NDNBOOST_PP_NODE_10, NDNBOOST_PP_NODE_14)
+#                        define NDNBOOST_PP_NODE_10(p) NDNBOOST_PP_IIF(p##(10), NDNBOOST_PP_NODE_9, NDNBOOST_PP_NODE_11)
+#                            define NDNBOOST_PP_NODE_9(p) NDNBOOST_PP_IIF(p##(9), 9, 10)
+#                            define NDNBOOST_PP_NODE_11(p) NDNBOOST_PP_IIF(p##(11), 11, 12)
+#                        define NDNBOOST_PP_NODE_14(p) NDNBOOST_PP_IIF(p##(14), NDNBOOST_PP_NODE_13, NDNBOOST_PP_NODE_15)
+#                            define NDNBOOST_PP_NODE_13(p) NDNBOOST_PP_IIF(p##(13), 13, 14)
+#                            define NDNBOOST_PP_NODE_15(p) NDNBOOST_PP_IIF(p##(15), 15, 16)
+#                define NDNBOOST_PP_NODE_24(p) NDNBOOST_PP_IIF(p##(24), NDNBOOST_PP_NODE_20, NDNBOOST_PP_NODE_28)
+#                    define NDNBOOST_PP_NODE_20(p) NDNBOOST_PP_IIF(p##(20), NDNBOOST_PP_NODE_18, NDNBOOST_PP_NODE_22)
+#                        define NDNBOOST_PP_NODE_18(p) NDNBOOST_PP_IIF(p##(18), NDNBOOST_PP_NODE_17, NDNBOOST_PP_NODE_19)
+#                            define NDNBOOST_PP_NODE_17(p) NDNBOOST_PP_IIF(p##(17), 17, 18)
+#                            define NDNBOOST_PP_NODE_19(p) NDNBOOST_PP_IIF(p##(19), 19, 20)
+#                        define NDNBOOST_PP_NODE_22(p) NDNBOOST_PP_IIF(p##(22), NDNBOOST_PP_NODE_21, NDNBOOST_PP_NODE_23)
+#                            define NDNBOOST_PP_NODE_21(p) NDNBOOST_PP_IIF(p##(21), 21, 22)
+#                            define NDNBOOST_PP_NODE_23(p) NDNBOOST_PP_IIF(p##(23), 23, 24)
+#                    define NDNBOOST_PP_NODE_28(p) NDNBOOST_PP_IIF(p##(28), NDNBOOST_PP_NODE_26, NDNBOOST_PP_NODE_30)
+#                        define NDNBOOST_PP_NODE_26(p) NDNBOOST_PP_IIF(p##(26), NDNBOOST_PP_NODE_25, NDNBOOST_PP_NODE_27)
+#                            define NDNBOOST_PP_NODE_25(p) NDNBOOST_PP_IIF(p##(25), 25, 26)
+#                            define NDNBOOST_PP_NODE_27(p) NDNBOOST_PP_IIF(p##(27), 27, 28)
+#                        define NDNBOOST_PP_NODE_30(p) NDNBOOST_PP_IIF(p##(30), NDNBOOST_PP_NODE_29, NDNBOOST_PP_NODE_31)
+#                            define NDNBOOST_PP_NODE_29(p) NDNBOOST_PP_IIF(p##(29), 29, 30)
+#                            define NDNBOOST_PP_NODE_31(p) NDNBOOST_PP_IIF(p##(31), 31, 32)
+#            define NDNBOOST_PP_NODE_48(p) NDNBOOST_PP_IIF(p##(48), NDNBOOST_PP_NODE_40, NDNBOOST_PP_NODE_56)
+#                define NDNBOOST_PP_NODE_40(p) NDNBOOST_PP_IIF(p##(40), NDNBOOST_PP_NODE_36, NDNBOOST_PP_NODE_44)
+#                    define NDNBOOST_PP_NODE_36(p) NDNBOOST_PP_IIF(p##(36), NDNBOOST_PP_NODE_34, NDNBOOST_PP_NODE_38)
+#                        define NDNBOOST_PP_NODE_34(p) NDNBOOST_PP_IIF(p##(34), NDNBOOST_PP_NODE_33, NDNBOOST_PP_NODE_35)
+#                            define NDNBOOST_PP_NODE_33(p) NDNBOOST_PP_IIF(p##(33), 33, 34)
+#                            define NDNBOOST_PP_NODE_35(p) NDNBOOST_PP_IIF(p##(35), 35, 36)
+#                        define NDNBOOST_PP_NODE_38(p) NDNBOOST_PP_IIF(p##(38), NDNBOOST_PP_NODE_37, NDNBOOST_PP_NODE_39)
+#                            define NDNBOOST_PP_NODE_37(p) NDNBOOST_PP_IIF(p##(37), 37, 38)
+#                            define NDNBOOST_PP_NODE_39(p) NDNBOOST_PP_IIF(p##(39), 39, 40)
+#                    define NDNBOOST_PP_NODE_44(p) NDNBOOST_PP_IIF(p##(44), NDNBOOST_PP_NODE_42, NDNBOOST_PP_NODE_46)
+#                        define NDNBOOST_PP_NODE_42(p) NDNBOOST_PP_IIF(p##(42), NDNBOOST_PP_NODE_41, NDNBOOST_PP_NODE_43)
+#                            define NDNBOOST_PP_NODE_41(p) NDNBOOST_PP_IIF(p##(41), 41, 42)
+#                            define NDNBOOST_PP_NODE_43(p) NDNBOOST_PP_IIF(p##(43), 43, 44)
+#                        define NDNBOOST_PP_NODE_46(p) NDNBOOST_PP_IIF(p##(46), NDNBOOST_PP_NODE_45, NDNBOOST_PP_NODE_47)
+#                            define NDNBOOST_PP_NODE_45(p) NDNBOOST_PP_IIF(p##(45), 45, 46)
+#                            define NDNBOOST_PP_NODE_47(p) NDNBOOST_PP_IIF(p##(47), 47, 48)
+#                define NDNBOOST_PP_NODE_56(p) NDNBOOST_PP_IIF(p##(56), NDNBOOST_PP_NODE_52, NDNBOOST_PP_NODE_60)
+#                    define NDNBOOST_PP_NODE_52(p) NDNBOOST_PP_IIF(p##(52), NDNBOOST_PP_NODE_50, NDNBOOST_PP_NODE_54)
+#                        define NDNBOOST_PP_NODE_50(p) NDNBOOST_PP_IIF(p##(50), NDNBOOST_PP_NODE_49, NDNBOOST_PP_NODE_51)
+#                            define NDNBOOST_PP_NODE_49(p) NDNBOOST_PP_IIF(p##(49), 49, 50)
+#                            define NDNBOOST_PP_NODE_51(p) NDNBOOST_PP_IIF(p##(51), 51, 52)
+#                        define NDNBOOST_PP_NODE_54(p) NDNBOOST_PP_IIF(p##(54), NDNBOOST_PP_NODE_53, NDNBOOST_PP_NODE_55)
+#                            define NDNBOOST_PP_NODE_53(p) NDNBOOST_PP_IIF(p##(53), 53, 54)
+#                            define NDNBOOST_PP_NODE_55(p) NDNBOOST_PP_IIF(p##(55), 55, 56)
+#                    define NDNBOOST_PP_NODE_60(p) NDNBOOST_PP_IIF(p##(60), NDNBOOST_PP_NODE_58, NDNBOOST_PP_NODE_62)
+#                        define NDNBOOST_PP_NODE_58(p) NDNBOOST_PP_IIF(p##(58), NDNBOOST_PP_NODE_57, NDNBOOST_PP_NODE_59)
+#                            define NDNBOOST_PP_NODE_57(p) NDNBOOST_PP_IIF(p##(57), 57, 58)
+#                            define NDNBOOST_PP_NODE_59(p) NDNBOOST_PP_IIF(p##(59), 59, 60)
+#                        define NDNBOOST_PP_NODE_62(p) NDNBOOST_PP_IIF(p##(62), NDNBOOST_PP_NODE_61, NDNBOOST_PP_NODE_63)
+#                            define NDNBOOST_PP_NODE_61(p) NDNBOOST_PP_IIF(p##(61), 61, 62)
+#                            define NDNBOOST_PP_NODE_63(p) NDNBOOST_PP_IIF(p##(63), 63, 64)
+#        define NDNBOOST_PP_NODE_96(p) NDNBOOST_PP_IIF(p##(96), NDNBOOST_PP_NODE_80, NDNBOOST_PP_NODE_112)
+#            define NDNBOOST_PP_NODE_80(p) NDNBOOST_PP_IIF(p##(80), NDNBOOST_PP_NODE_72, NDNBOOST_PP_NODE_88)
+#                define NDNBOOST_PP_NODE_72(p) NDNBOOST_PP_IIF(p##(72), NDNBOOST_PP_NODE_68, NDNBOOST_PP_NODE_76)
+#                    define NDNBOOST_PP_NODE_68(p) NDNBOOST_PP_IIF(p##(68), NDNBOOST_PP_NODE_66, NDNBOOST_PP_NODE_70)
+#                        define NDNBOOST_PP_NODE_66(p) NDNBOOST_PP_IIF(p##(66), NDNBOOST_PP_NODE_65, NDNBOOST_PP_NODE_67)
+#                            define NDNBOOST_PP_NODE_65(p) NDNBOOST_PP_IIF(p##(65), 65, 66)
+#                            define NDNBOOST_PP_NODE_67(p) NDNBOOST_PP_IIF(p##(67), 67, 68)
+#                        define NDNBOOST_PP_NODE_70(p) NDNBOOST_PP_IIF(p##(70), NDNBOOST_PP_NODE_69, NDNBOOST_PP_NODE_71)
+#                            define NDNBOOST_PP_NODE_69(p) NDNBOOST_PP_IIF(p##(69), 69, 70)
+#                            define NDNBOOST_PP_NODE_71(p) NDNBOOST_PP_IIF(p##(71), 71, 72)
+#                    define NDNBOOST_PP_NODE_76(p) NDNBOOST_PP_IIF(p##(76), NDNBOOST_PP_NODE_74, NDNBOOST_PP_NODE_78)
+#                        define NDNBOOST_PP_NODE_74(p) NDNBOOST_PP_IIF(p##(74), NDNBOOST_PP_NODE_73, NDNBOOST_PP_NODE_75)
+#                            define NDNBOOST_PP_NODE_73(p) NDNBOOST_PP_IIF(p##(73), 73, 74)
+#                            define NDNBOOST_PP_NODE_75(p) NDNBOOST_PP_IIF(p##(75), 75, 76)
+#                        define NDNBOOST_PP_NODE_78(p) NDNBOOST_PP_IIF(p##(78), NDNBOOST_PP_NODE_77, NDNBOOST_PP_NODE_79)
+#                            define NDNBOOST_PP_NODE_77(p) NDNBOOST_PP_IIF(p##(77), 77, 78)
+#                            define NDNBOOST_PP_NODE_79(p) NDNBOOST_PP_IIF(p##(79), 79, 80)
+#                define NDNBOOST_PP_NODE_88(p) NDNBOOST_PP_IIF(p##(88), NDNBOOST_PP_NODE_84, NDNBOOST_PP_NODE_92)
+#                    define NDNBOOST_PP_NODE_84(p) NDNBOOST_PP_IIF(p##(84), NDNBOOST_PP_NODE_82, NDNBOOST_PP_NODE_86)
+#                        define NDNBOOST_PP_NODE_82(p) NDNBOOST_PP_IIF(p##(82), NDNBOOST_PP_NODE_81, NDNBOOST_PP_NODE_83)
+#                            define NDNBOOST_PP_NODE_81(p) NDNBOOST_PP_IIF(p##(81), 81, 82)
+#                            define NDNBOOST_PP_NODE_83(p) NDNBOOST_PP_IIF(p##(83), 83, 84)
+#                        define NDNBOOST_PP_NODE_86(p) NDNBOOST_PP_IIF(p##(86), NDNBOOST_PP_NODE_85, NDNBOOST_PP_NODE_87)
+#                            define NDNBOOST_PP_NODE_85(p) NDNBOOST_PP_IIF(p##(85), 85, 86)
+#                            define NDNBOOST_PP_NODE_87(p) NDNBOOST_PP_IIF(p##(87), 87, 88)
+#                    define NDNBOOST_PP_NODE_92(p) NDNBOOST_PP_IIF(p##(92), NDNBOOST_PP_NODE_90, NDNBOOST_PP_NODE_94)
+#                        define NDNBOOST_PP_NODE_90(p) NDNBOOST_PP_IIF(p##(90), NDNBOOST_PP_NODE_89, NDNBOOST_PP_NODE_91)
+#                            define NDNBOOST_PP_NODE_89(p) NDNBOOST_PP_IIF(p##(89), 89, 90)
+#                            define NDNBOOST_PP_NODE_91(p) NDNBOOST_PP_IIF(p##(91), 91, 92)
+#                        define NDNBOOST_PP_NODE_94(p) NDNBOOST_PP_IIF(p##(94), NDNBOOST_PP_NODE_93, NDNBOOST_PP_NODE_95)
+#                            define NDNBOOST_PP_NODE_93(p) NDNBOOST_PP_IIF(p##(93), 93, 94)
+#                            define NDNBOOST_PP_NODE_95(p) NDNBOOST_PP_IIF(p##(95), 95, 96)
+#            define NDNBOOST_PP_NODE_112(p) NDNBOOST_PP_IIF(p##(112), NDNBOOST_PP_NODE_104, NDNBOOST_PP_NODE_120)
+#                define NDNBOOST_PP_NODE_104(p) NDNBOOST_PP_IIF(p##(104), NDNBOOST_PP_NODE_100, NDNBOOST_PP_NODE_108)
+#                    define NDNBOOST_PP_NODE_100(p) NDNBOOST_PP_IIF(p##(100), NDNBOOST_PP_NODE_98, NDNBOOST_PP_NODE_102)
+#                        define NDNBOOST_PP_NODE_98(p) NDNBOOST_PP_IIF(p##(98), NDNBOOST_PP_NODE_97, NDNBOOST_PP_NODE_99)
+#                            define NDNBOOST_PP_NODE_97(p) NDNBOOST_PP_IIF(p##(97), 97, 98)
+#                            define NDNBOOST_PP_NODE_99(p) NDNBOOST_PP_IIF(p##(99), 99, 100)
+#                        define NDNBOOST_PP_NODE_102(p) NDNBOOST_PP_IIF(p##(102), NDNBOOST_PP_NODE_101, NDNBOOST_PP_NODE_103)
+#                            define NDNBOOST_PP_NODE_101(p) NDNBOOST_PP_IIF(p##(101), 101, 102)
+#                            define NDNBOOST_PP_NODE_103(p) NDNBOOST_PP_IIF(p##(103), 103, 104)
+#                    define NDNBOOST_PP_NODE_108(p) NDNBOOST_PP_IIF(p##(108), NDNBOOST_PP_NODE_106, NDNBOOST_PP_NODE_110)
+#                        define NDNBOOST_PP_NODE_106(p) NDNBOOST_PP_IIF(p##(106), NDNBOOST_PP_NODE_105, NDNBOOST_PP_NODE_107)
+#                            define NDNBOOST_PP_NODE_105(p) NDNBOOST_PP_IIF(p##(105), 105, 106)
+#                            define NDNBOOST_PP_NODE_107(p) NDNBOOST_PP_IIF(p##(107), 107, 108)
+#                        define NDNBOOST_PP_NODE_110(p) NDNBOOST_PP_IIF(p##(110), NDNBOOST_PP_NODE_109, NDNBOOST_PP_NODE_111)
+#                            define NDNBOOST_PP_NODE_109(p) NDNBOOST_PP_IIF(p##(109), 109, 110)
+#                            define NDNBOOST_PP_NODE_111(p) NDNBOOST_PP_IIF(p##(111), 111, 112)
+#                define NDNBOOST_PP_NODE_120(p) NDNBOOST_PP_IIF(p##(120), NDNBOOST_PP_NODE_116, NDNBOOST_PP_NODE_124)
+#                    define NDNBOOST_PP_NODE_116(p) NDNBOOST_PP_IIF(p##(116), NDNBOOST_PP_NODE_114, NDNBOOST_PP_NODE_118)
+#                        define NDNBOOST_PP_NODE_114(p) NDNBOOST_PP_IIF(p##(114), NDNBOOST_PP_NODE_113, NDNBOOST_PP_NODE_115)
+#                            define NDNBOOST_PP_NODE_113(p) NDNBOOST_PP_IIF(p##(113), 113, 114)
+#                            define NDNBOOST_PP_NODE_115(p) NDNBOOST_PP_IIF(p##(115), 115, 116)
+#                        define NDNBOOST_PP_NODE_118(p) NDNBOOST_PP_IIF(p##(118), NDNBOOST_PP_NODE_117, NDNBOOST_PP_NODE_119)
+#                            define NDNBOOST_PP_NODE_117(p) NDNBOOST_PP_IIF(p##(117), 117, 118)
+#                            define NDNBOOST_PP_NODE_119(p) NDNBOOST_PP_IIF(p##(119), 119, 120)
+#                    define NDNBOOST_PP_NODE_124(p) NDNBOOST_PP_IIF(p##(124), NDNBOOST_PP_NODE_122, NDNBOOST_PP_NODE_126)
+#                        define NDNBOOST_PP_NODE_122(p) NDNBOOST_PP_IIF(p##(122), NDNBOOST_PP_NODE_121, NDNBOOST_PP_NODE_123)
+#                            define NDNBOOST_PP_NODE_121(p) NDNBOOST_PP_IIF(p##(121), 121, 122)
+#                            define NDNBOOST_PP_NODE_123(p) NDNBOOST_PP_IIF(p##(123), 123, 124)
+#                        define NDNBOOST_PP_NODE_126(p) NDNBOOST_PP_IIF(p##(126), NDNBOOST_PP_NODE_125, NDNBOOST_PP_NODE_127)
+#                            define NDNBOOST_PP_NODE_125(p) NDNBOOST_PP_IIF(p##(125), 125, 126)
+#                            define NDNBOOST_PP_NODE_127(p) NDNBOOST_PP_IIF(p##(127), 127, 128)
+#    define NDNBOOST_PP_NODE_192(p) NDNBOOST_PP_IIF(p##(192), NDNBOOST_PP_NODE_160, NDNBOOST_PP_NODE_224)
+#        define NDNBOOST_PP_NODE_160(p) NDNBOOST_PP_IIF(p##(160), NDNBOOST_PP_NODE_144, NDNBOOST_PP_NODE_176)
+#            define NDNBOOST_PP_NODE_144(p) NDNBOOST_PP_IIF(p##(144), NDNBOOST_PP_NODE_136, NDNBOOST_PP_NODE_152)
+#                define NDNBOOST_PP_NODE_136(p) NDNBOOST_PP_IIF(p##(136), NDNBOOST_PP_NODE_132, NDNBOOST_PP_NODE_140)
+#                    define NDNBOOST_PP_NODE_132(p) NDNBOOST_PP_IIF(p##(132), NDNBOOST_PP_NODE_130, NDNBOOST_PP_NODE_134)
+#                        define NDNBOOST_PP_NODE_130(p) NDNBOOST_PP_IIF(p##(130), NDNBOOST_PP_NODE_129, NDNBOOST_PP_NODE_131)
+#                            define NDNBOOST_PP_NODE_129(p) NDNBOOST_PP_IIF(p##(129), 129, 130)
+#                            define NDNBOOST_PP_NODE_131(p) NDNBOOST_PP_IIF(p##(131), 131, 132)
+#                        define NDNBOOST_PP_NODE_134(p) NDNBOOST_PP_IIF(p##(134), NDNBOOST_PP_NODE_133, NDNBOOST_PP_NODE_135)
+#                            define NDNBOOST_PP_NODE_133(p) NDNBOOST_PP_IIF(p##(133), 133, 134)
+#                            define NDNBOOST_PP_NODE_135(p) NDNBOOST_PP_IIF(p##(135), 135, 136)
+#                    define NDNBOOST_PP_NODE_140(p) NDNBOOST_PP_IIF(p##(140), NDNBOOST_PP_NODE_138, NDNBOOST_PP_NODE_142)
+#                        define NDNBOOST_PP_NODE_138(p) NDNBOOST_PP_IIF(p##(138), NDNBOOST_PP_NODE_137, NDNBOOST_PP_NODE_139)
+#                            define NDNBOOST_PP_NODE_137(p) NDNBOOST_PP_IIF(p##(137), 137, 138)
+#                            define NDNBOOST_PP_NODE_139(p) NDNBOOST_PP_IIF(p##(139), 139, 140)
+#                        define NDNBOOST_PP_NODE_142(p) NDNBOOST_PP_IIF(p##(142), NDNBOOST_PP_NODE_141, NDNBOOST_PP_NODE_143)
+#                            define NDNBOOST_PP_NODE_141(p) NDNBOOST_PP_IIF(p##(141), 141, 142)
+#                            define NDNBOOST_PP_NODE_143(p) NDNBOOST_PP_IIF(p##(143), 143, 144)
+#                define NDNBOOST_PP_NODE_152(p) NDNBOOST_PP_IIF(p##(152), NDNBOOST_PP_NODE_148, NDNBOOST_PP_NODE_156)
+#                    define NDNBOOST_PP_NODE_148(p) NDNBOOST_PP_IIF(p##(148), NDNBOOST_PP_NODE_146, NDNBOOST_PP_NODE_150)
+#                        define NDNBOOST_PP_NODE_146(p) NDNBOOST_PP_IIF(p##(146), NDNBOOST_PP_NODE_145, NDNBOOST_PP_NODE_147)
+#                            define NDNBOOST_PP_NODE_145(p) NDNBOOST_PP_IIF(p##(145), 145, 146)
+#                            define NDNBOOST_PP_NODE_147(p) NDNBOOST_PP_IIF(p##(147), 147, 148)
+#                        define NDNBOOST_PP_NODE_150(p) NDNBOOST_PP_IIF(p##(150), NDNBOOST_PP_NODE_149, NDNBOOST_PP_NODE_151)
+#                            define NDNBOOST_PP_NODE_149(p) NDNBOOST_PP_IIF(p##(149), 149, 150)
+#                            define NDNBOOST_PP_NODE_151(p) NDNBOOST_PP_IIF(p##(151), 151, 152)
+#                    define NDNBOOST_PP_NODE_156(p) NDNBOOST_PP_IIF(p##(156), NDNBOOST_PP_NODE_154, NDNBOOST_PP_NODE_158)
+#                        define NDNBOOST_PP_NODE_154(p) NDNBOOST_PP_IIF(p##(154), NDNBOOST_PP_NODE_153, NDNBOOST_PP_NODE_155)
+#                            define NDNBOOST_PP_NODE_153(p) NDNBOOST_PP_IIF(p##(153), 153, 154)
+#                            define NDNBOOST_PP_NODE_155(p) NDNBOOST_PP_IIF(p##(155), 155, 156)
+#                        define NDNBOOST_PP_NODE_158(p) NDNBOOST_PP_IIF(p##(158), NDNBOOST_PP_NODE_157, NDNBOOST_PP_NODE_159)
+#                            define NDNBOOST_PP_NODE_157(p) NDNBOOST_PP_IIF(p##(157), 157, 158)
+#                            define NDNBOOST_PP_NODE_159(p) NDNBOOST_PP_IIF(p##(159), 159, 160)
+#            define NDNBOOST_PP_NODE_176(p) NDNBOOST_PP_IIF(p##(176), NDNBOOST_PP_NODE_168, NDNBOOST_PP_NODE_184)
+#                define NDNBOOST_PP_NODE_168(p) NDNBOOST_PP_IIF(p##(168), NDNBOOST_PP_NODE_164, NDNBOOST_PP_NODE_172)
+#                    define NDNBOOST_PP_NODE_164(p) NDNBOOST_PP_IIF(p##(164), NDNBOOST_PP_NODE_162, NDNBOOST_PP_NODE_166)
+#                        define NDNBOOST_PP_NODE_162(p) NDNBOOST_PP_IIF(p##(162), NDNBOOST_PP_NODE_161, NDNBOOST_PP_NODE_163)
+#                            define NDNBOOST_PP_NODE_161(p) NDNBOOST_PP_IIF(p##(161), 161, 162)
+#                            define NDNBOOST_PP_NODE_163(p) NDNBOOST_PP_IIF(p##(163), 163, 164)
+#                        define NDNBOOST_PP_NODE_166(p) NDNBOOST_PP_IIF(p##(166), NDNBOOST_PP_NODE_165, NDNBOOST_PP_NODE_167)
+#                            define NDNBOOST_PP_NODE_165(p) NDNBOOST_PP_IIF(p##(165), 165, 166)
+#                            define NDNBOOST_PP_NODE_167(p) NDNBOOST_PP_IIF(p##(167), 167, 168)
+#                    define NDNBOOST_PP_NODE_172(p) NDNBOOST_PP_IIF(p##(172), NDNBOOST_PP_NODE_170, NDNBOOST_PP_NODE_174)
+#                        define NDNBOOST_PP_NODE_170(p) NDNBOOST_PP_IIF(p##(170), NDNBOOST_PP_NODE_169, NDNBOOST_PP_NODE_171)
+#                            define NDNBOOST_PP_NODE_169(p) NDNBOOST_PP_IIF(p##(169), 169, 170)
+#                            define NDNBOOST_PP_NODE_171(p) NDNBOOST_PP_IIF(p##(171), 171, 172)
+#                        define NDNBOOST_PP_NODE_174(p) NDNBOOST_PP_IIF(p##(174), NDNBOOST_PP_NODE_173, NDNBOOST_PP_NODE_175)
+#                            define NDNBOOST_PP_NODE_173(p) NDNBOOST_PP_IIF(p##(173), 173, 174)
+#                            define NDNBOOST_PP_NODE_175(p) NDNBOOST_PP_IIF(p##(175), 175, 176)
+#                define NDNBOOST_PP_NODE_184(p) NDNBOOST_PP_IIF(p##(184), NDNBOOST_PP_NODE_180, NDNBOOST_PP_NODE_188)
+#                    define NDNBOOST_PP_NODE_180(p) NDNBOOST_PP_IIF(p##(180), NDNBOOST_PP_NODE_178, NDNBOOST_PP_NODE_182)
+#                        define NDNBOOST_PP_NODE_178(p) NDNBOOST_PP_IIF(p##(178), NDNBOOST_PP_NODE_177, NDNBOOST_PP_NODE_179)
+#                            define NDNBOOST_PP_NODE_177(p) NDNBOOST_PP_IIF(p##(177), 177, 178)
+#                            define NDNBOOST_PP_NODE_179(p) NDNBOOST_PP_IIF(p##(179), 179, 180)
+#                        define NDNBOOST_PP_NODE_182(p) NDNBOOST_PP_IIF(p##(182), NDNBOOST_PP_NODE_181, NDNBOOST_PP_NODE_183)
+#                            define NDNBOOST_PP_NODE_181(p) NDNBOOST_PP_IIF(p##(181), 181, 182)
+#                            define NDNBOOST_PP_NODE_183(p) NDNBOOST_PP_IIF(p##(183), 183, 184)
+#                    define NDNBOOST_PP_NODE_188(p) NDNBOOST_PP_IIF(p##(188), NDNBOOST_PP_NODE_186, NDNBOOST_PP_NODE_190)
+#                        define NDNBOOST_PP_NODE_186(p) NDNBOOST_PP_IIF(p##(186), NDNBOOST_PP_NODE_185, NDNBOOST_PP_NODE_187)
+#                            define NDNBOOST_PP_NODE_185(p) NDNBOOST_PP_IIF(p##(185), 185, 186)
+#                            define NDNBOOST_PP_NODE_187(p) NDNBOOST_PP_IIF(p##(187), 187, 188)
+#                        define NDNBOOST_PP_NODE_190(p) NDNBOOST_PP_IIF(p##(190), NDNBOOST_PP_NODE_189, NDNBOOST_PP_NODE_191)
+#                            define NDNBOOST_PP_NODE_189(p) NDNBOOST_PP_IIF(p##(189), 189, 190)
+#                            define NDNBOOST_PP_NODE_191(p) NDNBOOST_PP_IIF(p##(191), 191, 192)
+#        define NDNBOOST_PP_NODE_224(p) NDNBOOST_PP_IIF(p##(224), NDNBOOST_PP_NODE_208, NDNBOOST_PP_NODE_240)
+#            define NDNBOOST_PP_NODE_208(p) NDNBOOST_PP_IIF(p##(208), NDNBOOST_PP_NODE_200, NDNBOOST_PP_NODE_216)
+#                define NDNBOOST_PP_NODE_200(p) NDNBOOST_PP_IIF(p##(200), NDNBOOST_PP_NODE_196, NDNBOOST_PP_NODE_204)
+#                    define NDNBOOST_PP_NODE_196(p) NDNBOOST_PP_IIF(p##(196), NDNBOOST_PP_NODE_194, NDNBOOST_PP_NODE_198)
+#                        define NDNBOOST_PP_NODE_194(p) NDNBOOST_PP_IIF(p##(194), NDNBOOST_PP_NODE_193, NDNBOOST_PP_NODE_195)
+#                            define NDNBOOST_PP_NODE_193(p) NDNBOOST_PP_IIF(p##(193), 193, 194)
+#                            define NDNBOOST_PP_NODE_195(p) NDNBOOST_PP_IIF(p##(195), 195, 196)
+#                        define NDNBOOST_PP_NODE_198(p) NDNBOOST_PP_IIF(p##(198), NDNBOOST_PP_NODE_197, NDNBOOST_PP_NODE_199)
+#                            define NDNBOOST_PP_NODE_197(p) NDNBOOST_PP_IIF(p##(197), 197, 198)
+#                            define NDNBOOST_PP_NODE_199(p) NDNBOOST_PP_IIF(p##(199), 199, 200)
+#                    define NDNBOOST_PP_NODE_204(p) NDNBOOST_PP_IIF(p##(204), NDNBOOST_PP_NODE_202, NDNBOOST_PP_NODE_206)
+#                        define NDNBOOST_PP_NODE_202(p) NDNBOOST_PP_IIF(p##(202), NDNBOOST_PP_NODE_201, NDNBOOST_PP_NODE_203)
+#                            define NDNBOOST_PP_NODE_201(p) NDNBOOST_PP_IIF(p##(201), 201, 202)
+#                            define NDNBOOST_PP_NODE_203(p) NDNBOOST_PP_IIF(p##(203), 203, 204)
+#                        define NDNBOOST_PP_NODE_206(p) NDNBOOST_PP_IIF(p##(206), NDNBOOST_PP_NODE_205, NDNBOOST_PP_NODE_207)
+#                            define NDNBOOST_PP_NODE_205(p) NDNBOOST_PP_IIF(p##(205), 205, 206)
+#                            define NDNBOOST_PP_NODE_207(p) NDNBOOST_PP_IIF(p##(207), 207, 208)
+#                define NDNBOOST_PP_NODE_216(p) NDNBOOST_PP_IIF(p##(216), NDNBOOST_PP_NODE_212, NDNBOOST_PP_NODE_220)
+#                    define NDNBOOST_PP_NODE_212(p) NDNBOOST_PP_IIF(p##(212), NDNBOOST_PP_NODE_210, NDNBOOST_PP_NODE_214)
+#                        define NDNBOOST_PP_NODE_210(p) NDNBOOST_PP_IIF(p##(210), NDNBOOST_PP_NODE_209, NDNBOOST_PP_NODE_211)
+#                            define NDNBOOST_PP_NODE_209(p) NDNBOOST_PP_IIF(p##(209), 209, 210)
+#                            define NDNBOOST_PP_NODE_211(p) NDNBOOST_PP_IIF(p##(211), 211, 212)
+#                        define NDNBOOST_PP_NODE_214(p) NDNBOOST_PP_IIF(p##(214), NDNBOOST_PP_NODE_213, NDNBOOST_PP_NODE_215)
+#                            define NDNBOOST_PP_NODE_213(p) NDNBOOST_PP_IIF(p##(213), 213, 214)
+#                            define NDNBOOST_PP_NODE_215(p) NDNBOOST_PP_IIF(p##(215), 215, 216)
+#                    define NDNBOOST_PP_NODE_220(p) NDNBOOST_PP_IIF(p##(220), NDNBOOST_PP_NODE_218, NDNBOOST_PP_NODE_222)
+#                        define NDNBOOST_PP_NODE_218(p) NDNBOOST_PP_IIF(p##(218), NDNBOOST_PP_NODE_217, NDNBOOST_PP_NODE_219)
+#                            define NDNBOOST_PP_NODE_217(p) NDNBOOST_PP_IIF(p##(217), 217, 218)
+#                            define NDNBOOST_PP_NODE_219(p) NDNBOOST_PP_IIF(p##(219), 219, 220)
+#                        define NDNBOOST_PP_NODE_222(p) NDNBOOST_PP_IIF(p##(222), NDNBOOST_PP_NODE_221, NDNBOOST_PP_NODE_223)
+#                            define NDNBOOST_PP_NODE_221(p) NDNBOOST_PP_IIF(p##(221), 221, 222)
+#                            define NDNBOOST_PP_NODE_223(p) NDNBOOST_PP_IIF(p##(223), 223, 224)
+#            define NDNBOOST_PP_NODE_240(p) NDNBOOST_PP_IIF(p##(240), NDNBOOST_PP_NODE_232, NDNBOOST_PP_NODE_248)
+#                define NDNBOOST_PP_NODE_232(p) NDNBOOST_PP_IIF(p##(232), NDNBOOST_PP_NODE_228, NDNBOOST_PP_NODE_236)
+#                    define NDNBOOST_PP_NODE_228(p) NDNBOOST_PP_IIF(p##(228), NDNBOOST_PP_NODE_226, NDNBOOST_PP_NODE_230)
+#                        define NDNBOOST_PP_NODE_226(p) NDNBOOST_PP_IIF(p##(226), NDNBOOST_PP_NODE_225, NDNBOOST_PP_NODE_227)
+#                            define NDNBOOST_PP_NODE_225(p) NDNBOOST_PP_IIF(p##(225), 225, 226)
+#                            define NDNBOOST_PP_NODE_227(p) NDNBOOST_PP_IIF(p##(227), 227, 228)
+#                        define NDNBOOST_PP_NODE_230(p) NDNBOOST_PP_IIF(p##(230), NDNBOOST_PP_NODE_229, NDNBOOST_PP_NODE_231)
+#                            define NDNBOOST_PP_NODE_229(p) NDNBOOST_PP_IIF(p##(229), 229, 230)
+#                            define NDNBOOST_PP_NODE_231(p) NDNBOOST_PP_IIF(p##(231), 231, 232)
+#                    define NDNBOOST_PP_NODE_236(p) NDNBOOST_PP_IIF(p##(236), NDNBOOST_PP_NODE_234, NDNBOOST_PP_NODE_238)
+#                        define NDNBOOST_PP_NODE_234(p) NDNBOOST_PP_IIF(p##(234), NDNBOOST_PP_NODE_233, NDNBOOST_PP_NODE_235)
+#                            define NDNBOOST_PP_NODE_233(p) NDNBOOST_PP_IIF(p##(233), 233, 234)
+#                            define NDNBOOST_PP_NODE_235(p) NDNBOOST_PP_IIF(p##(235), 235, 236)
+#                        define NDNBOOST_PP_NODE_238(p) NDNBOOST_PP_IIF(p##(238), NDNBOOST_PP_NODE_237, NDNBOOST_PP_NODE_239)
+#                            define NDNBOOST_PP_NODE_237(p) NDNBOOST_PP_IIF(p##(237), 237, 238)
+#                            define NDNBOOST_PP_NODE_239(p) NDNBOOST_PP_IIF(p##(239), 239, 240)
+#                define NDNBOOST_PP_NODE_248(p) NDNBOOST_PP_IIF(p##(248), NDNBOOST_PP_NODE_244, NDNBOOST_PP_NODE_252)
+#                    define NDNBOOST_PP_NODE_244(p) NDNBOOST_PP_IIF(p##(244), NDNBOOST_PP_NODE_242, NDNBOOST_PP_NODE_246)
+#                        define NDNBOOST_PP_NODE_242(p) NDNBOOST_PP_IIF(p##(242), NDNBOOST_PP_NODE_241, NDNBOOST_PP_NODE_243)
+#                            define NDNBOOST_PP_NODE_241(p) NDNBOOST_PP_IIF(p##(241), 241, 242)
+#                            define NDNBOOST_PP_NODE_243(p) NDNBOOST_PP_IIF(p##(243), 243, 244)
+#                        define NDNBOOST_PP_NODE_246(p) NDNBOOST_PP_IIF(p##(246), NDNBOOST_PP_NODE_245, NDNBOOST_PP_NODE_247)
+#                            define NDNBOOST_PP_NODE_245(p) NDNBOOST_PP_IIF(p##(245), 245, 246)
+#                            define NDNBOOST_PP_NODE_247(p) NDNBOOST_PP_IIF(p##(247), 247, 248)
+#                    define NDNBOOST_PP_NODE_252(p) NDNBOOST_PP_IIF(p##(252), NDNBOOST_PP_NODE_250, NDNBOOST_PP_NODE_254)
+#                        define NDNBOOST_PP_NODE_250(p) NDNBOOST_PP_IIF(p##(250), NDNBOOST_PP_NODE_249, NDNBOOST_PP_NODE_251)
+#                            define NDNBOOST_PP_NODE_249(p) NDNBOOST_PP_IIF(p##(249), 249, 250)
+#                            define NDNBOOST_PP_NODE_251(p) NDNBOOST_PP_IIF(p##(251), 251, 252)
+#                        define NDNBOOST_PP_NODE_254(p) NDNBOOST_PP_IIF(p##(254), NDNBOOST_PP_NODE_253, NDNBOOST_PP_NODE_255)
+#                            define NDNBOOST_PP_NODE_253(p) NDNBOOST_PP_IIF(p##(253), 253, 254)
+#                            define NDNBOOST_PP_NODE_255(p) NDNBOOST_PP_IIF(p##(255), 255, 256)
 #
 # endif
diff --git a/include/ndnboost/preprocessor/detail/is_binary.hpp b/include/ndnboost/preprocessor/detail/is_binary.hpp
index ed35dc8..c08777f 100644
--- a/include/ndnboost/preprocessor/detail/is_binary.hpp
+++ b/include/ndnboost/preprocessor/detail/is_binary.hpp
@@ -9,22 +9,22 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_DETAIL_IS_BINARY_HPP
-# define BOOST_PREPROCESSOR_DETAIL_IS_BINARY_HPP
+# ifndef NDNBOOST_PREPROCESSOR_DETAIL_IS_BINARY_HPP
+# define NDNBOOST_PREPROCESSOR_DETAIL_IS_BINARY_HPP
 #
 # include <ndnboost/preprocessor/config/config.hpp>
 # include <ndnboost/preprocessor/detail/check.hpp>
 #
-# /* BOOST_PP_IS_BINARY */
+# /* NDNBOOST_PP_IS_BINARY */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_IS_BINARY(x) BOOST_PP_CHECK(x, BOOST_PP_IS_BINARY_CHECK)
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_IS_BINARY(x) NDNBOOST_PP_CHECK(x, NDNBOOST_PP_IS_BINARY_CHECK)
 # else
-#    define BOOST_PP_IS_BINARY(x) BOOST_PP_IS_BINARY_I(x)
-#    define BOOST_PP_IS_BINARY_I(x) BOOST_PP_CHECK(x, BOOST_PP_IS_BINARY_CHECK)
+#    define NDNBOOST_PP_IS_BINARY(x) NDNBOOST_PP_IS_BINARY_I(x)
+#    define NDNBOOST_PP_IS_BINARY_I(x) NDNBOOST_PP_CHECK(x, NDNBOOST_PP_IS_BINARY_CHECK)
 # endif
 #
-# define BOOST_PP_IS_BINARY_CHECK(a, b) 1
-# define BOOST_PP_CHECK_RESULT_BOOST_PP_IS_BINARY_CHECK 0, BOOST_PP_NIL
+# define NDNBOOST_PP_IS_BINARY_CHECK(a, b) 1
+# define NDNBOOST_PP_CHECK_RESULT_NDNBOOST_PP_IS_BINARY_CHECK 0, NDNBOOST_PP_NIL
 #
 # endif
diff --git a/include/ndnboost/preprocessor/detail/is_unary.hpp b/include/ndnboost/preprocessor/detail/is_unary.hpp
index c12f008..e1aaf59 100644
--- a/include/ndnboost/preprocessor/detail/is_unary.hpp
+++ b/include/ndnboost/preprocessor/detail/is_unary.hpp
@@ -9,22 +9,22 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_DETAIL_IS_UNARY_HPP
-# define BOOST_PREPROCESSOR_DETAIL_IS_UNARY_HPP
+# ifndef NDNBOOST_PREPROCESSOR_DETAIL_IS_UNARY_HPP
+# define NDNBOOST_PREPROCESSOR_DETAIL_IS_UNARY_HPP
 #
 # include <ndnboost/preprocessor/config/config.hpp>
 # include <ndnboost/preprocessor/detail/check.hpp>
 #
-# /* BOOST_PP_IS_UNARY */
+# /* NDNBOOST_PP_IS_UNARY */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_IS_UNARY(x) BOOST_PP_CHECK(x, BOOST_PP_IS_UNARY_CHECK)
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_IS_UNARY(x) NDNBOOST_PP_CHECK(x, NDNBOOST_PP_IS_UNARY_CHECK)
 # else
-#    define BOOST_PP_IS_UNARY(x) BOOST_PP_IS_UNARY_I(x)
-#    define BOOST_PP_IS_UNARY_I(x) BOOST_PP_CHECK(x, BOOST_PP_IS_UNARY_CHECK)
+#    define NDNBOOST_PP_IS_UNARY(x) NDNBOOST_PP_IS_UNARY_I(x)
+#    define NDNBOOST_PP_IS_UNARY_I(x) NDNBOOST_PP_CHECK(x, NDNBOOST_PP_IS_UNARY_CHECK)
 # endif
 #
-# define BOOST_PP_IS_UNARY_CHECK(a) 1
-# define BOOST_PP_CHECK_RESULT_BOOST_PP_IS_UNARY_CHECK 0, BOOST_PP_NIL
+# define NDNBOOST_PP_IS_UNARY_CHECK(a) 1
+# define NDNBOOST_PP_CHECK_RESULT_NDNBOOST_PP_IS_UNARY_CHECK 0, NDNBOOST_PP_NIL
 #
 # endif
diff --git a/include/ndnboost/preprocessor/empty.hpp b/include/ndnboost/preprocessor/empty.hpp
index 4c81065..bdb9ada 100644
--- a/include/ndnboost/preprocessor/empty.hpp
+++ b/include/ndnboost/preprocessor/empty.hpp
@@ -9,8 +9,8 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_EMPTY_HPP
-# define BOOST_PREPROCESSOR_EMPTY_HPP
+# ifndef NDNBOOST_PREPROCESSOR_EMPTY_HPP
+# define NDNBOOST_PREPROCESSOR_EMPTY_HPP
 #
 # include <ndnboost/preprocessor/facilities/empty.hpp>
 #
diff --git a/include/ndnboost/preprocessor/enum.hpp b/include/ndnboost/preprocessor/enum.hpp
index 715834f..0ddb8a0 100644
--- a/include/ndnboost/preprocessor/enum.hpp
+++ b/include/ndnboost/preprocessor/enum.hpp
@@ -9,8 +9,8 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_ENUM_HPP
-# define BOOST_PREPROCESSOR_ENUM_HPP
+# ifndef NDNBOOST_PREPROCESSOR_ENUM_HPP
+# define NDNBOOST_PREPROCESSOR_ENUM_HPP
 #
 # include <ndnboost/preprocessor/repetition/enum.hpp>
 #
diff --git a/include/ndnboost/preprocessor/enum_params.hpp b/include/ndnboost/preprocessor/enum_params.hpp
index b2752ce..f11f6df 100644
--- a/include/ndnboost/preprocessor/enum_params.hpp
+++ b/include/ndnboost/preprocessor/enum_params.hpp
@@ -9,8 +9,8 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_ENUM_PARAMS_HPP
-# define BOOST_PREPROCESSOR_ENUM_PARAMS_HPP
+# ifndef NDNBOOST_PREPROCESSOR_ENUM_PARAMS_HPP
+# define NDNBOOST_PREPROCESSOR_ENUM_PARAMS_HPP
 #
 # include <ndnboost/preprocessor/repetition/enum_params.hpp>
 #
diff --git a/include/ndnboost/preprocessor/enum_params_with_a_default.hpp b/include/ndnboost/preprocessor/enum_params_with_a_default.hpp
index 96386c2..ed80fbc 100644
--- a/include/ndnboost/preprocessor/enum_params_with_a_default.hpp
+++ b/include/ndnboost/preprocessor/enum_params_with_a_default.hpp
@@ -9,8 +9,8 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_A_DEFAULT_HPP
-# define BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_A_DEFAULT_HPP
+# ifndef NDNBOOST_PREPROCESSOR_ENUM_PARAMS_WITH_A_DEFAULT_HPP
+# define NDNBOOST_PREPROCESSOR_ENUM_PARAMS_WITH_A_DEFAULT_HPP
 #
 # include <ndnboost/preprocessor/repetition/enum_params_with_a_default.hpp>
 #
diff --git a/include/ndnboost/preprocessor/enum_shifted_params.hpp b/include/ndnboost/preprocessor/enum_shifted_params.hpp
index cad9fda..497a22a 100644
--- a/include/ndnboost/preprocessor/enum_shifted_params.hpp
+++ b/include/ndnboost/preprocessor/enum_shifted_params.hpp
@@ -9,8 +9,8 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_ENUM_SHIFTED_PARAMS_HPP
-# define BOOST_PREPROCESSOR_ENUM_SHIFTED_PARAMS_HPP
+# ifndef NDNBOOST_PREPROCESSOR_ENUM_SHIFTED_PARAMS_HPP
+# define NDNBOOST_PREPROCESSOR_ENUM_SHIFTED_PARAMS_HPP
 #
 # include <ndnboost/preprocessor/repetition/enum_shifted_params.hpp>
 #
diff --git a/include/ndnboost/preprocessor/expr_if.hpp b/include/ndnboost/preprocessor/expr_if.hpp
index 6fedfb3..0bd3027 100644
--- a/include/ndnboost/preprocessor/expr_if.hpp
+++ b/include/ndnboost/preprocessor/expr_if.hpp
@@ -9,8 +9,8 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_EXPR_IF_HPP
-# define BOOST_PREPROCESSOR_EXPR_IF_HPP
+# ifndef NDNBOOST_PREPROCESSOR_EXPR_IF_HPP
+# define NDNBOOST_PREPROCESSOR_EXPR_IF_HPP
 #
 # include <ndnboost/preprocessor/control/expr_if.hpp>
 #
diff --git a/include/ndnboost/preprocessor/facilities/empty.hpp b/include/ndnboost/preprocessor/facilities/empty.hpp
index 46db190..e3fd3ea 100644
--- a/include/ndnboost/preprocessor/facilities/empty.hpp
+++ b/include/ndnboost/preprocessor/facilities/empty.hpp
@@ -11,11 +11,11 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_FACILITIES_EMPTY_HPP
-# define BOOST_PREPROCESSOR_FACILITIES_EMPTY_HPP
+# ifndef NDNBOOST_PREPROCESSOR_FACILITIES_EMPTY_HPP
+# define NDNBOOST_PREPROCESSOR_FACILITIES_EMPTY_HPP
 #
-# /* BOOST_PP_EMPTY */
+# /* NDNBOOST_PP_EMPTY */
 #
-# define BOOST_PP_EMPTY()
+# define NDNBOOST_PP_EMPTY()
 #
 # endif
diff --git a/include/ndnboost/preprocessor/facilities/identity.hpp b/include/ndnboost/preprocessor/facilities/identity.hpp
index 4f48d28..6e14af4 100644
--- a/include/ndnboost/preprocessor/facilities/identity.hpp
+++ b/include/ndnboost/preprocessor/facilities/identity.hpp
@@ -11,13 +11,13 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_FACILITIES_IDENTITY_HPP
-# define BOOST_PREPROCESSOR_FACILITIES_IDENTITY_HPP
+# ifndef NDNBOOST_PREPROCESSOR_FACILITIES_IDENTITY_HPP
+# define NDNBOOST_PREPROCESSOR_FACILITIES_IDENTITY_HPP
 #
 # include <ndnboost/preprocessor/facilities/empty.hpp>
 #
-# /* BOOST_PP_IDENTITY */
+# /* NDNBOOST_PP_IDENTITY */
 #
-# define BOOST_PP_IDENTITY(item) item BOOST_PP_EMPTY
+# define NDNBOOST_PP_IDENTITY(item) item NDNBOOST_PP_EMPTY
 #
 # endif
diff --git a/include/ndnboost/preprocessor/facilities/intercept.hpp b/include/ndnboost/preprocessor/facilities/intercept.hpp
index 41dcc6a..8a22566 100644
--- a/include/ndnboost/preprocessor/facilities/intercept.hpp
+++ b/include/ndnboost/preprocessor/facilities/intercept.hpp
@@ -9,269 +9,269 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_FACILITIES_INTERCEPT_HPP
-# define BOOST_PREPROCESSOR_FACILITIES_INTERCEPT_HPP
+# ifndef NDNBOOST_PREPROCESSOR_FACILITIES_INTERCEPT_HPP
+# define NDNBOOST_PREPROCESSOR_FACILITIES_INTERCEPT_HPP
 #
-# /* BOOST_PP_INTERCEPT */
+# /* NDNBOOST_PP_INTERCEPT */
 #
-# define BOOST_PP_INTERCEPT BOOST_PP_INTERCEPT_
+# define NDNBOOST_PP_INTERCEPT NDNBOOST_PP_INTERCEPT_
 #
-# define BOOST_PP_INTERCEPT_0
-# define BOOST_PP_INTERCEPT_1
-# define BOOST_PP_INTERCEPT_2
-# define BOOST_PP_INTERCEPT_3
-# define BOOST_PP_INTERCEPT_4
-# define BOOST_PP_INTERCEPT_5
-# define BOOST_PP_INTERCEPT_6
-# define BOOST_PP_INTERCEPT_7
-# define BOOST_PP_INTERCEPT_8
-# define BOOST_PP_INTERCEPT_9
-# define BOOST_PP_INTERCEPT_10
-# define BOOST_PP_INTERCEPT_11
-# define BOOST_PP_INTERCEPT_12
-# define BOOST_PP_INTERCEPT_13
-# define BOOST_PP_INTERCEPT_14
-# define BOOST_PP_INTERCEPT_15
-# define BOOST_PP_INTERCEPT_16
-# define BOOST_PP_INTERCEPT_17
-# define BOOST_PP_INTERCEPT_18
-# define BOOST_PP_INTERCEPT_19
-# define BOOST_PP_INTERCEPT_20
-# define BOOST_PP_INTERCEPT_21
-# define BOOST_PP_INTERCEPT_22
-# define BOOST_PP_INTERCEPT_23
-# define BOOST_PP_INTERCEPT_24
-# define BOOST_PP_INTERCEPT_25
-# define BOOST_PP_INTERCEPT_26
-# define BOOST_PP_INTERCEPT_27
-# define BOOST_PP_INTERCEPT_28
-# define BOOST_PP_INTERCEPT_29
-# define BOOST_PP_INTERCEPT_30
-# define BOOST_PP_INTERCEPT_31
-# define BOOST_PP_INTERCEPT_32
-# define BOOST_PP_INTERCEPT_33
-# define BOOST_PP_INTERCEPT_34
-# define BOOST_PP_INTERCEPT_35
-# define BOOST_PP_INTERCEPT_36
-# define BOOST_PP_INTERCEPT_37
-# define BOOST_PP_INTERCEPT_38
-# define BOOST_PP_INTERCEPT_39
-# define BOOST_PP_INTERCEPT_40
-# define BOOST_PP_INTERCEPT_41
-# define BOOST_PP_INTERCEPT_42
-# define BOOST_PP_INTERCEPT_43
-# define BOOST_PP_INTERCEPT_44
-# define BOOST_PP_INTERCEPT_45
-# define BOOST_PP_INTERCEPT_46
-# define BOOST_PP_INTERCEPT_47
-# define BOOST_PP_INTERCEPT_48
-# define BOOST_PP_INTERCEPT_49
-# define BOOST_PP_INTERCEPT_50
-# define BOOST_PP_INTERCEPT_51
-# define BOOST_PP_INTERCEPT_52
-# define BOOST_PP_INTERCEPT_53
-# define BOOST_PP_INTERCEPT_54
-# define BOOST_PP_INTERCEPT_55
-# define BOOST_PP_INTERCEPT_56
-# define BOOST_PP_INTERCEPT_57
-# define BOOST_PP_INTERCEPT_58
-# define BOOST_PP_INTERCEPT_59
-# define BOOST_PP_INTERCEPT_60
-# define BOOST_PP_INTERCEPT_61
-# define BOOST_PP_INTERCEPT_62
-# define BOOST_PP_INTERCEPT_63
-# define BOOST_PP_INTERCEPT_64
-# define BOOST_PP_INTERCEPT_65
-# define BOOST_PP_INTERCEPT_66
-# define BOOST_PP_INTERCEPT_67
-# define BOOST_PP_INTERCEPT_68
-# define BOOST_PP_INTERCEPT_69
-# define BOOST_PP_INTERCEPT_70
-# define BOOST_PP_INTERCEPT_71
-# define BOOST_PP_INTERCEPT_72
-# define BOOST_PP_INTERCEPT_73
-# define BOOST_PP_INTERCEPT_74
-# define BOOST_PP_INTERCEPT_75
-# define BOOST_PP_INTERCEPT_76
-# define BOOST_PP_INTERCEPT_77
-# define BOOST_PP_INTERCEPT_78
-# define BOOST_PP_INTERCEPT_79
-# define BOOST_PP_INTERCEPT_80
-# define BOOST_PP_INTERCEPT_81
-# define BOOST_PP_INTERCEPT_82
-# define BOOST_PP_INTERCEPT_83
-# define BOOST_PP_INTERCEPT_84
-# define BOOST_PP_INTERCEPT_85
-# define BOOST_PP_INTERCEPT_86
-# define BOOST_PP_INTERCEPT_87
-# define BOOST_PP_INTERCEPT_88
-# define BOOST_PP_INTERCEPT_89
-# define BOOST_PP_INTERCEPT_90
-# define BOOST_PP_INTERCEPT_91
-# define BOOST_PP_INTERCEPT_92
-# define BOOST_PP_INTERCEPT_93
-# define BOOST_PP_INTERCEPT_94
-# define BOOST_PP_INTERCEPT_95
-# define BOOST_PP_INTERCEPT_96
-# define BOOST_PP_INTERCEPT_97
-# define BOOST_PP_INTERCEPT_98
-# define BOOST_PP_INTERCEPT_99
-# define BOOST_PP_INTERCEPT_100
-# define BOOST_PP_INTERCEPT_101
-# define BOOST_PP_INTERCEPT_102
-# define BOOST_PP_INTERCEPT_103
-# define BOOST_PP_INTERCEPT_104
-# define BOOST_PP_INTERCEPT_105
-# define BOOST_PP_INTERCEPT_106
-# define BOOST_PP_INTERCEPT_107
-# define BOOST_PP_INTERCEPT_108
-# define BOOST_PP_INTERCEPT_109
-# define BOOST_PP_INTERCEPT_110
-# define BOOST_PP_INTERCEPT_111
-# define BOOST_PP_INTERCEPT_112
-# define BOOST_PP_INTERCEPT_113
-# define BOOST_PP_INTERCEPT_114
-# define BOOST_PP_INTERCEPT_115
-# define BOOST_PP_INTERCEPT_116
-# define BOOST_PP_INTERCEPT_117
-# define BOOST_PP_INTERCEPT_118
-# define BOOST_PP_INTERCEPT_119
-# define BOOST_PP_INTERCEPT_120
-# define BOOST_PP_INTERCEPT_121
-# define BOOST_PP_INTERCEPT_122
-# define BOOST_PP_INTERCEPT_123
-# define BOOST_PP_INTERCEPT_124
-# define BOOST_PP_INTERCEPT_125
-# define BOOST_PP_INTERCEPT_126
-# define BOOST_PP_INTERCEPT_127
-# define BOOST_PP_INTERCEPT_128
-# define BOOST_PP_INTERCEPT_129
-# define BOOST_PP_INTERCEPT_130
-# define BOOST_PP_INTERCEPT_131
-# define BOOST_PP_INTERCEPT_132
-# define BOOST_PP_INTERCEPT_133
-# define BOOST_PP_INTERCEPT_134
-# define BOOST_PP_INTERCEPT_135
-# define BOOST_PP_INTERCEPT_136
-# define BOOST_PP_INTERCEPT_137
-# define BOOST_PP_INTERCEPT_138
-# define BOOST_PP_INTERCEPT_139
-# define BOOST_PP_INTERCEPT_140
-# define BOOST_PP_INTERCEPT_141
-# define BOOST_PP_INTERCEPT_142
-# define BOOST_PP_INTERCEPT_143
-# define BOOST_PP_INTERCEPT_144
-# define BOOST_PP_INTERCEPT_145
-# define BOOST_PP_INTERCEPT_146
-# define BOOST_PP_INTERCEPT_147
-# define BOOST_PP_INTERCEPT_148
-# define BOOST_PP_INTERCEPT_149
-# define BOOST_PP_INTERCEPT_150
-# define BOOST_PP_INTERCEPT_151
-# define BOOST_PP_INTERCEPT_152
-# define BOOST_PP_INTERCEPT_153
-# define BOOST_PP_INTERCEPT_154
-# define BOOST_PP_INTERCEPT_155
-# define BOOST_PP_INTERCEPT_156
-# define BOOST_PP_INTERCEPT_157
-# define BOOST_PP_INTERCEPT_158
-# define BOOST_PP_INTERCEPT_159
-# define BOOST_PP_INTERCEPT_160
-# define BOOST_PP_INTERCEPT_161
-# define BOOST_PP_INTERCEPT_162
-# define BOOST_PP_INTERCEPT_163
-# define BOOST_PP_INTERCEPT_164
-# define BOOST_PP_INTERCEPT_165
-# define BOOST_PP_INTERCEPT_166
-# define BOOST_PP_INTERCEPT_167
-# define BOOST_PP_INTERCEPT_168
-# define BOOST_PP_INTERCEPT_169
-# define BOOST_PP_INTERCEPT_170
-# define BOOST_PP_INTERCEPT_171
-# define BOOST_PP_INTERCEPT_172
-# define BOOST_PP_INTERCEPT_173
-# define BOOST_PP_INTERCEPT_174
-# define BOOST_PP_INTERCEPT_175
-# define BOOST_PP_INTERCEPT_176
-# define BOOST_PP_INTERCEPT_177
-# define BOOST_PP_INTERCEPT_178
-# define BOOST_PP_INTERCEPT_179
-# define BOOST_PP_INTERCEPT_180
-# define BOOST_PP_INTERCEPT_181
-# define BOOST_PP_INTERCEPT_182
-# define BOOST_PP_INTERCEPT_183
-# define BOOST_PP_INTERCEPT_184
-# define BOOST_PP_INTERCEPT_185
-# define BOOST_PP_INTERCEPT_186
-# define BOOST_PP_INTERCEPT_187
-# define BOOST_PP_INTERCEPT_188
-# define BOOST_PP_INTERCEPT_189
-# define BOOST_PP_INTERCEPT_190
-# define BOOST_PP_INTERCEPT_191
-# define BOOST_PP_INTERCEPT_192
-# define BOOST_PP_INTERCEPT_193
-# define BOOST_PP_INTERCEPT_194
-# define BOOST_PP_INTERCEPT_195
-# define BOOST_PP_INTERCEPT_196
-# define BOOST_PP_INTERCEPT_197
-# define BOOST_PP_INTERCEPT_198
-# define BOOST_PP_INTERCEPT_199
-# define BOOST_PP_INTERCEPT_200
-# define BOOST_PP_INTERCEPT_201
-# define BOOST_PP_INTERCEPT_202
-# define BOOST_PP_INTERCEPT_203
-# define BOOST_PP_INTERCEPT_204
-# define BOOST_PP_INTERCEPT_205
-# define BOOST_PP_INTERCEPT_206
-# define BOOST_PP_INTERCEPT_207
-# define BOOST_PP_INTERCEPT_208
-# define BOOST_PP_INTERCEPT_209
-# define BOOST_PP_INTERCEPT_210
-# define BOOST_PP_INTERCEPT_211
-# define BOOST_PP_INTERCEPT_212
-# define BOOST_PP_INTERCEPT_213
-# define BOOST_PP_INTERCEPT_214
-# define BOOST_PP_INTERCEPT_215
-# define BOOST_PP_INTERCEPT_216
-# define BOOST_PP_INTERCEPT_217
-# define BOOST_PP_INTERCEPT_218
-# define BOOST_PP_INTERCEPT_219
-# define BOOST_PP_INTERCEPT_220
-# define BOOST_PP_INTERCEPT_221
-# define BOOST_PP_INTERCEPT_222
-# define BOOST_PP_INTERCEPT_223
-# define BOOST_PP_INTERCEPT_224
-# define BOOST_PP_INTERCEPT_225
-# define BOOST_PP_INTERCEPT_226
-# define BOOST_PP_INTERCEPT_227
-# define BOOST_PP_INTERCEPT_228
-# define BOOST_PP_INTERCEPT_229
-# define BOOST_PP_INTERCEPT_230
-# define BOOST_PP_INTERCEPT_231
-# define BOOST_PP_INTERCEPT_232
-# define BOOST_PP_INTERCEPT_233
-# define BOOST_PP_INTERCEPT_234
-# define BOOST_PP_INTERCEPT_235
-# define BOOST_PP_INTERCEPT_236
-# define BOOST_PP_INTERCEPT_237
-# define BOOST_PP_INTERCEPT_238
-# define BOOST_PP_INTERCEPT_239
-# define BOOST_PP_INTERCEPT_240
-# define BOOST_PP_INTERCEPT_241
-# define BOOST_PP_INTERCEPT_242
-# define BOOST_PP_INTERCEPT_243
-# define BOOST_PP_INTERCEPT_244
-# define BOOST_PP_INTERCEPT_245
-# define BOOST_PP_INTERCEPT_246
-# define BOOST_PP_INTERCEPT_247
-# define BOOST_PP_INTERCEPT_248
-# define BOOST_PP_INTERCEPT_249
-# define BOOST_PP_INTERCEPT_250
-# define BOOST_PP_INTERCEPT_251
-# define BOOST_PP_INTERCEPT_252
-# define BOOST_PP_INTERCEPT_253
-# define BOOST_PP_INTERCEPT_254
-# define BOOST_PP_INTERCEPT_255
-# define BOOST_PP_INTERCEPT_256
+# define NDNBOOST_PP_INTERCEPT_0
+# define NDNBOOST_PP_INTERCEPT_1
+# define NDNBOOST_PP_INTERCEPT_2
+# define NDNBOOST_PP_INTERCEPT_3
+# define NDNBOOST_PP_INTERCEPT_4
+# define NDNBOOST_PP_INTERCEPT_5
+# define NDNBOOST_PP_INTERCEPT_6
+# define NDNBOOST_PP_INTERCEPT_7
+# define NDNBOOST_PP_INTERCEPT_8
+# define NDNBOOST_PP_INTERCEPT_9
+# define NDNBOOST_PP_INTERCEPT_10
+# define NDNBOOST_PP_INTERCEPT_11
+# define NDNBOOST_PP_INTERCEPT_12
+# define NDNBOOST_PP_INTERCEPT_13
+# define NDNBOOST_PP_INTERCEPT_14
+# define NDNBOOST_PP_INTERCEPT_15
+# define NDNBOOST_PP_INTERCEPT_16
+# define NDNBOOST_PP_INTERCEPT_17
+# define NDNBOOST_PP_INTERCEPT_18
+# define NDNBOOST_PP_INTERCEPT_19
+# define NDNBOOST_PP_INTERCEPT_20
+# define NDNBOOST_PP_INTERCEPT_21
+# define NDNBOOST_PP_INTERCEPT_22
+# define NDNBOOST_PP_INTERCEPT_23
+# define NDNBOOST_PP_INTERCEPT_24
+# define NDNBOOST_PP_INTERCEPT_25
+# define NDNBOOST_PP_INTERCEPT_26
+# define NDNBOOST_PP_INTERCEPT_27
+# define NDNBOOST_PP_INTERCEPT_28
+# define NDNBOOST_PP_INTERCEPT_29
+# define NDNBOOST_PP_INTERCEPT_30
+# define NDNBOOST_PP_INTERCEPT_31
+# define NDNBOOST_PP_INTERCEPT_32
+# define NDNBOOST_PP_INTERCEPT_33
+# define NDNBOOST_PP_INTERCEPT_34
+# define NDNBOOST_PP_INTERCEPT_35
+# define NDNBOOST_PP_INTERCEPT_36
+# define NDNBOOST_PP_INTERCEPT_37
+# define NDNBOOST_PP_INTERCEPT_38
+# define NDNBOOST_PP_INTERCEPT_39
+# define NDNBOOST_PP_INTERCEPT_40
+# define NDNBOOST_PP_INTERCEPT_41
+# define NDNBOOST_PP_INTERCEPT_42
+# define NDNBOOST_PP_INTERCEPT_43
+# define NDNBOOST_PP_INTERCEPT_44
+# define NDNBOOST_PP_INTERCEPT_45
+# define NDNBOOST_PP_INTERCEPT_46
+# define NDNBOOST_PP_INTERCEPT_47
+# define NDNBOOST_PP_INTERCEPT_48
+# define NDNBOOST_PP_INTERCEPT_49
+# define NDNBOOST_PP_INTERCEPT_50
+# define NDNBOOST_PP_INTERCEPT_51
+# define NDNBOOST_PP_INTERCEPT_52
+# define NDNBOOST_PP_INTERCEPT_53
+# define NDNBOOST_PP_INTERCEPT_54
+# define NDNBOOST_PP_INTERCEPT_55
+# define NDNBOOST_PP_INTERCEPT_56
+# define NDNBOOST_PP_INTERCEPT_57
+# define NDNBOOST_PP_INTERCEPT_58
+# define NDNBOOST_PP_INTERCEPT_59
+# define NDNBOOST_PP_INTERCEPT_60
+# define NDNBOOST_PP_INTERCEPT_61
+# define NDNBOOST_PP_INTERCEPT_62
+# define NDNBOOST_PP_INTERCEPT_63
+# define NDNBOOST_PP_INTERCEPT_64
+# define NDNBOOST_PP_INTERCEPT_65
+# define NDNBOOST_PP_INTERCEPT_66
+# define NDNBOOST_PP_INTERCEPT_67
+# define NDNBOOST_PP_INTERCEPT_68
+# define NDNBOOST_PP_INTERCEPT_69
+# define NDNBOOST_PP_INTERCEPT_70
+# define NDNBOOST_PP_INTERCEPT_71
+# define NDNBOOST_PP_INTERCEPT_72
+# define NDNBOOST_PP_INTERCEPT_73
+# define NDNBOOST_PP_INTERCEPT_74
+# define NDNBOOST_PP_INTERCEPT_75
+# define NDNBOOST_PP_INTERCEPT_76
+# define NDNBOOST_PP_INTERCEPT_77
+# define NDNBOOST_PP_INTERCEPT_78
+# define NDNBOOST_PP_INTERCEPT_79
+# define NDNBOOST_PP_INTERCEPT_80
+# define NDNBOOST_PP_INTERCEPT_81
+# define NDNBOOST_PP_INTERCEPT_82
+# define NDNBOOST_PP_INTERCEPT_83
+# define NDNBOOST_PP_INTERCEPT_84
+# define NDNBOOST_PP_INTERCEPT_85
+# define NDNBOOST_PP_INTERCEPT_86
+# define NDNBOOST_PP_INTERCEPT_87
+# define NDNBOOST_PP_INTERCEPT_88
+# define NDNBOOST_PP_INTERCEPT_89
+# define NDNBOOST_PP_INTERCEPT_90
+# define NDNBOOST_PP_INTERCEPT_91
+# define NDNBOOST_PP_INTERCEPT_92
+# define NDNBOOST_PP_INTERCEPT_93
+# define NDNBOOST_PP_INTERCEPT_94
+# define NDNBOOST_PP_INTERCEPT_95
+# define NDNBOOST_PP_INTERCEPT_96
+# define NDNBOOST_PP_INTERCEPT_97
+# define NDNBOOST_PP_INTERCEPT_98
+# define NDNBOOST_PP_INTERCEPT_99
+# define NDNBOOST_PP_INTERCEPT_100
+# define NDNBOOST_PP_INTERCEPT_101
+# define NDNBOOST_PP_INTERCEPT_102
+# define NDNBOOST_PP_INTERCEPT_103
+# define NDNBOOST_PP_INTERCEPT_104
+# define NDNBOOST_PP_INTERCEPT_105
+# define NDNBOOST_PP_INTERCEPT_106
+# define NDNBOOST_PP_INTERCEPT_107
+# define NDNBOOST_PP_INTERCEPT_108
+# define NDNBOOST_PP_INTERCEPT_109
+# define NDNBOOST_PP_INTERCEPT_110
+# define NDNBOOST_PP_INTERCEPT_111
+# define NDNBOOST_PP_INTERCEPT_112
+# define NDNBOOST_PP_INTERCEPT_113
+# define NDNBOOST_PP_INTERCEPT_114
+# define NDNBOOST_PP_INTERCEPT_115
+# define NDNBOOST_PP_INTERCEPT_116
+# define NDNBOOST_PP_INTERCEPT_117
+# define NDNBOOST_PP_INTERCEPT_118
+# define NDNBOOST_PP_INTERCEPT_119
+# define NDNBOOST_PP_INTERCEPT_120
+# define NDNBOOST_PP_INTERCEPT_121
+# define NDNBOOST_PP_INTERCEPT_122
+# define NDNBOOST_PP_INTERCEPT_123
+# define NDNBOOST_PP_INTERCEPT_124
+# define NDNBOOST_PP_INTERCEPT_125
+# define NDNBOOST_PP_INTERCEPT_126
+# define NDNBOOST_PP_INTERCEPT_127
+# define NDNBOOST_PP_INTERCEPT_128
+# define NDNBOOST_PP_INTERCEPT_129
+# define NDNBOOST_PP_INTERCEPT_130
+# define NDNBOOST_PP_INTERCEPT_131
+# define NDNBOOST_PP_INTERCEPT_132
+# define NDNBOOST_PP_INTERCEPT_133
+# define NDNBOOST_PP_INTERCEPT_134
+# define NDNBOOST_PP_INTERCEPT_135
+# define NDNBOOST_PP_INTERCEPT_136
+# define NDNBOOST_PP_INTERCEPT_137
+# define NDNBOOST_PP_INTERCEPT_138
+# define NDNBOOST_PP_INTERCEPT_139
+# define NDNBOOST_PP_INTERCEPT_140
+# define NDNBOOST_PP_INTERCEPT_141
+# define NDNBOOST_PP_INTERCEPT_142
+# define NDNBOOST_PP_INTERCEPT_143
+# define NDNBOOST_PP_INTERCEPT_144
+# define NDNBOOST_PP_INTERCEPT_145
+# define NDNBOOST_PP_INTERCEPT_146
+# define NDNBOOST_PP_INTERCEPT_147
+# define NDNBOOST_PP_INTERCEPT_148
+# define NDNBOOST_PP_INTERCEPT_149
+# define NDNBOOST_PP_INTERCEPT_150
+# define NDNBOOST_PP_INTERCEPT_151
+# define NDNBOOST_PP_INTERCEPT_152
+# define NDNBOOST_PP_INTERCEPT_153
+# define NDNBOOST_PP_INTERCEPT_154
+# define NDNBOOST_PP_INTERCEPT_155
+# define NDNBOOST_PP_INTERCEPT_156
+# define NDNBOOST_PP_INTERCEPT_157
+# define NDNBOOST_PP_INTERCEPT_158
+# define NDNBOOST_PP_INTERCEPT_159
+# define NDNBOOST_PP_INTERCEPT_160
+# define NDNBOOST_PP_INTERCEPT_161
+# define NDNBOOST_PP_INTERCEPT_162
+# define NDNBOOST_PP_INTERCEPT_163
+# define NDNBOOST_PP_INTERCEPT_164
+# define NDNBOOST_PP_INTERCEPT_165
+# define NDNBOOST_PP_INTERCEPT_166
+# define NDNBOOST_PP_INTERCEPT_167
+# define NDNBOOST_PP_INTERCEPT_168
+# define NDNBOOST_PP_INTERCEPT_169
+# define NDNBOOST_PP_INTERCEPT_170
+# define NDNBOOST_PP_INTERCEPT_171
+# define NDNBOOST_PP_INTERCEPT_172
+# define NDNBOOST_PP_INTERCEPT_173
+# define NDNBOOST_PP_INTERCEPT_174
+# define NDNBOOST_PP_INTERCEPT_175
+# define NDNBOOST_PP_INTERCEPT_176
+# define NDNBOOST_PP_INTERCEPT_177
+# define NDNBOOST_PP_INTERCEPT_178
+# define NDNBOOST_PP_INTERCEPT_179
+# define NDNBOOST_PP_INTERCEPT_180
+# define NDNBOOST_PP_INTERCEPT_181
+# define NDNBOOST_PP_INTERCEPT_182
+# define NDNBOOST_PP_INTERCEPT_183
+# define NDNBOOST_PP_INTERCEPT_184
+# define NDNBOOST_PP_INTERCEPT_185
+# define NDNBOOST_PP_INTERCEPT_186
+# define NDNBOOST_PP_INTERCEPT_187
+# define NDNBOOST_PP_INTERCEPT_188
+# define NDNBOOST_PP_INTERCEPT_189
+# define NDNBOOST_PP_INTERCEPT_190
+# define NDNBOOST_PP_INTERCEPT_191
+# define NDNBOOST_PP_INTERCEPT_192
+# define NDNBOOST_PP_INTERCEPT_193
+# define NDNBOOST_PP_INTERCEPT_194
+# define NDNBOOST_PP_INTERCEPT_195
+# define NDNBOOST_PP_INTERCEPT_196
+# define NDNBOOST_PP_INTERCEPT_197
+# define NDNBOOST_PP_INTERCEPT_198
+# define NDNBOOST_PP_INTERCEPT_199
+# define NDNBOOST_PP_INTERCEPT_200
+# define NDNBOOST_PP_INTERCEPT_201
+# define NDNBOOST_PP_INTERCEPT_202
+# define NDNBOOST_PP_INTERCEPT_203
+# define NDNBOOST_PP_INTERCEPT_204
+# define NDNBOOST_PP_INTERCEPT_205
+# define NDNBOOST_PP_INTERCEPT_206
+# define NDNBOOST_PP_INTERCEPT_207
+# define NDNBOOST_PP_INTERCEPT_208
+# define NDNBOOST_PP_INTERCEPT_209
+# define NDNBOOST_PP_INTERCEPT_210
+# define NDNBOOST_PP_INTERCEPT_211
+# define NDNBOOST_PP_INTERCEPT_212
+# define NDNBOOST_PP_INTERCEPT_213
+# define NDNBOOST_PP_INTERCEPT_214
+# define NDNBOOST_PP_INTERCEPT_215
+# define NDNBOOST_PP_INTERCEPT_216
+# define NDNBOOST_PP_INTERCEPT_217
+# define NDNBOOST_PP_INTERCEPT_218
+# define NDNBOOST_PP_INTERCEPT_219
+# define NDNBOOST_PP_INTERCEPT_220
+# define NDNBOOST_PP_INTERCEPT_221
+# define NDNBOOST_PP_INTERCEPT_222
+# define NDNBOOST_PP_INTERCEPT_223
+# define NDNBOOST_PP_INTERCEPT_224
+# define NDNBOOST_PP_INTERCEPT_225
+# define NDNBOOST_PP_INTERCEPT_226
+# define NDNBOOST_PP_INTERCEPT_227
+# define NDNBOOST_PP_INTERCEPT_228
+# define NDNBOOST_PP_INTERCEPT_229
+# define NDNBOOST_PP_INTERCEPT_230
+# define NDNBOOST_PP_INTERCEPT_231
+# define NDNBOOST_PP_INTERCEPT_232
+# define NDNBOOST_PP_INTERCEPT_233
+# define NDNBOOST_PP_INTERCEPT_234
+# define NDNBOOST_PP_INTERCEPT_235
+# define NDNBOOST_PP_INTERCEPT_236
+# define NDNBOOST_PP_INTERCEPT_237
+# define NDNBOOST_PP_INTERCEPT_238
+# define NDNBOOST_PP_INTERCEPT_239
+# define NDNBOOST_PP_INTERCEPT_240
+# define NDNBOOST_PP_INTERCEPT_241
+# define NDNBOOST_PP_INTERCEPT_242
+# define NDNBOOST_PP_INTERCEPT_243
+# define NDNBOOST_PP_INTERCEPT_244
+# define NDNBOOST_PP_INTERCEPT_245
+# define NDNBOOST_PP_INTERCEPT_246
+# define NDNBOOST_PP_INTERCEPT_247
+# define NDNBOOST_PP_INTERCEPT_248
+# define NDNBOOST_PP_INTERCEPT_249
+# define NDNBOOST_PP_INTERCEPT_250
+# define NDNBOOST_PP_INTERCEPT_251
+# define NDNBOOST_PP_INTERCEPT_252
+# define NDNBOOST_PP_INTERCEPT_253
+# define NDNBOOST_PP_INTERCEPT_254
+# define NDNBOOST_PP_INTERCEPT_255
+# define NDNBOOST_PP_INTERCEPT_256
 #
 # endif
diff --git a/include/ndnboost/preprocessor/facilities/overload.hpp b/include/ndnboost/preprocessor/facilities/overload.hpp
index 2d26d6b..769eedd 100644
--- a/include/ndnboost/preprocessor/facilities/overload.hpp
+++ b/include/ndnboost/preprocessor/facilities/overload.hpp
@@ -10,16 +10,16 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_FACILITIES_OVERLOAD_HPP
-# define BOOST_PREPROCESSOR_FACILITIES_OVERLOAD_HPP
+# ifndef NDNBOOST_PREPROCESSOR_FACILITIES_OVERLOAD_HPP
+# define NDNBOOST_PREPROCESSOR_FACILITIES_OVERLOAD_HPP
 #
 # include <ndnboost/preprocessor/cat.hpp>
 # include <ndnboost/preprocessor/variadic/size.hpp>
 #
-# /* BOOST_PP_OVERLOAD */
+# /* NDNBOOST_PP_OVERLOAD */
 #
-# if BOOST_PP_VARIADICS
-#    define BOOST_PP_OVERLOAD(prefix, ...) BOOST_PP_CAT(prefix, BOOST_PP_VARIADIC_SIZE(__VA_ARGS__))
+# if NDNBOOST_PP_VARIADICS
+#    define NDNBOOST_PP_OVERLOAD(prefix, ...) NDNBOOST_PP_CAT(prefix, NDNBOOST_PP_VARIADIC_SIZE(__VA_ARGS__))
 # endif
 #
 # endif
diff --git a/include/ndnboost/preprocessor/identity.hpp b/include/ndnboost/preprocessor/identity.hpp
index 3101d21..e06bd58 100644
--- a/include/ndnboost/preprocessor/identity.hpp
+++ b/include/ndnboost/preprocessor/identity.hpp
@@ -9,8 +9,8 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_IDENTITY_HPP
-# define BOOST_PREPROCESSOR_IDENTITY_HPP
+# ifndef NDNBOOST_PREPROCESSOR_IDENTITY_HPP
+# define NDNBOOST_PREPROCESSOR_IDENTITY_HPP
 #
 # include <ndnboost/preprocessor/facilities/identity.hpp>
 #
diff --git a/include/ndnboost/preprocessor/if.hpp b/include/ndnboost/preprocessor/if.hpp
index a51d169..8a44ed0 100644
--- a/include/ndnboost/preprocessor/if.hpp
+++ b/include/ndnboost/preprocessor/if.hpp
@@ -9,8 +9,8 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_IF_HPP
-# define BOOST_PREPROCESSOR_IF_HPP
+# ifndef NDNBOOST_PREPROCESSOR_IF_HPP
+# define NDNBOOST_PREPROCESSOR_IF_HPP
 #
 # include <ndnboost/preprocessor/control/if.hpp>
 #
diff --git a/include/ndnboost/preprocessor/inc.hpp b/include/ndnboost/preprocessor/inc.hpp
index 143930d..c45b668 100644
--- a/include/ndnboost/preprocessor/inc.hpp
+++ b/include/ndnboost/preprocessor/inc.hpp
@@ -9,8 +9,8 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_INC_HPP
-# define BOOST_PREPROCESSOR_INC_HPP
+# ifndef NDNBOOST_PREPROCESSOR_INC_HPP
+# define NDNBOOST_PREPROCESSOR_INC_HPP
 #
 # include <ndnboost/preprocessor/arithmetic/inc.hpp>
 #
diff --git a/include/ndnboost/preprocessor/iterate.hpp b/include/ndnboost/preprocessor/iterate.hpp
index 0d2d058..10b2f37 100644
--- a/include/ndnboost/preprocessor/iterate.hpp
+++ b/include/ndnboost/preprocessor/iterate.hpp
@@ -9,8 +9,8 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_ITERATE_HPP
-# define BOOST_PREPROCESSOR_ITERATE_HPP
+# ifndef NDNBOOST_PREPROCESSOR_ITERATE_HPP
+# define NDNBOOST_PREPROCESSOR_ITERATE_HPP
 #
 # include <ndnboost/preprocessor/iteration/iterate.hpp>
 #
diff --git a/include/ndnboost/preprocessor/iteration/detail/bounds/lower1.hpp b/include/ndnboost/preprocessor/iteration/detail/bounds/lower1.hpp
index 576e070..4d7166e 100644
--- a/include/ndnboost/preprocessor/iteration/detail/bounds/lower1.hpp
+++ b/include/ndnboost/preprocessor/iteration/detail/bounds/lower1.hpp
@@ -11,89 +11,89 @@
 #
 # include <ndnboost/preprocessor/slot/detail/shared.hpp>
 #
-# undef BOOST_PP_ITERATION_START_1
+# undef NDNBOOST_PP_ITERATION_START_1
 #
-# undef BOOST_PP_ITERATION_START_1_DIGIT_1
-# undef BOOST_PP_ITERATION_START_1_DIGIT_2
-# undef BOOST_PP_ITERATION_START_1_DIGIT_3
-# undef BOOST_PP_ITERATION_START_1_DIGIT_4
-# undef BOOST_PP_ITERATION_START_1_DIGIT_5
-# undef BOOST_PP_ITERATION_START_1_DIGIT_6
-# undef BOOST_PP_ITERATION_START_1_DIGIT_7
-# undef BOOST_PP_ITERATION_START_1_DIGIT_8
-# undef BOOST_PP_ITERATION_START_1_DIGIT_9
-# undef BOOST_PP_ITERATION_START_1_DIGIT_10
+# undef NDNBOOST_PP_ITERATION_START_1_DIGIT_1
+# undef NDNBOOST_PP_ITERATION_START_1_DIGIT_2
+# undef NDNBOOST_PP_ITERATION_START_1_DIGIT_3
+# undef NDNBOOST_PP_ITERATION_START_1_DIGIT_4
+# undef NDNBOOST_PP_ITERATION_START_1_DIGIT_5
+# undef NDNBOOST_PP_ITERATION_START_1_DIGIT_6
+# undef NDNBOOST_PP_ITERATION_START_1_DIGIT_7
+# undef NDNBOOST_PP_ITERATION_START_1_DIGIT_8
+# undef NDNBOOST_PP_ITERATION_START_1_DIGIT_9
+# undef NDNBOOST_PP_ITERATION_START_1_DIGIT_10
 #
-# if BOOST_PP_SLOT_TEMP_3 == 0
-#    define BOOST_PP_ITERATION_START_1_DIGIT_3 0
-# elif BOOST_PP_SLOT_TEMP_3 == 1
-#    define BOOST_PP_ITERATION_START_1_DIGIT_3 1
-# elif BOOST_PP_SLOT_TEMP_3 == 2
-#    define BOOST_PP_ITERATION_START_1_DIGIT_3 2
-# elif BOOST_PP_SLOT_TEMP_3 == 3
-#    define BOOST_PP_ITERATION_START_1_DIGIT_3 3
-# elif BOOST_PP_SLOT_TEMP_3 == 4
-#    define BOOST_PP_ITERATION_START_1_DIGIT_3 4
-# elif BOOST_PP_SLOT_TEMP_3 == 5
-#    define BOOST_PP_ITERATION_START_1_DIGIT_3 5
-# elif BOOST_PP_SLOT_TEMP_3 == 6
-#    define BOOST_PP_ITERATION_START_1_DIGIT_3 6
-# elif BOOST_PP_SLOT_TEMP_3 == 7
-#    define BOOST_PP_ITERATION_START_1_DIGIT_3 7
-# elif BOOST_PP_SLOT_TEMP_3 == 8
-#    define BOOST_PP_ITERATION_START_1_DIGIT_3 8
-# elif BOOST_PP_SLOT_TEMP_3 == 9
-#    define BOOST_PP_ITERATION_START_1_DIGIT_3 9
+# if NDNBOOST_PP_SLOT_TEMP_3 == 0
+#    define NDNBOOST_PP_ITERATION_START_1_DIGIT_3 0
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 1
+#    define NDNBOOST_PP_ITERATION_START_1_DIGIT_3 1
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 2
+#    define NDNBOOST_PP_ITERATION_START_1_DIGIT_3 2
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 3
+#    define NDNBOOST_PP_ITERATION_START_1_DIGIT_3 3
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 4
+#    define NDNBOOST_PP_ITERATION_START_1_DIGIT_3 4
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 5
+#    define NDNBOOST_PP_ITERATION_START_1_DIGIT_3 5
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 6
+#    define NDNBOOST_PP_ITERATION_START_1_DIGIT_3 6
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 7
+#    define NDNBOOST_PP_ITERATION_START_1_DIGIT_3 7
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 8
+#    define NDNBOOST_PP_ITERATION_START_1_DIGIT_3 8
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 9
+#    define NDNBOOST_PP_ITERATION_START_1_DIGIT_3 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_2 == 0
-#    define BOOST_PP_ITERATION_START_1_DIGIT_2 0
-# elif BOOST_PP_SLOT_TEMP_2 == 1
-#    define BOOST_PP_ITERATION_START_1_DIGIT_2 1
-# elif BOOST_PP_SLOT_TEMP_2 == 2
-#    define BOOST_PP_ITERATION_START_1_DIGIT_2 2
-# elif BOOST_PP_SLOT_TEMP_2 == 3
-#    define BOOST_PP_ITERATION_START_1_DIGIT_2 3
-# elif BOOST_PP_SLOT_TEMP_2 == 4
-#    define BOOST_PP_ITERATION_START_1_DIGIT_2 4
-# elif BOOST_PP_SLOT_TEMP_2 == 5
-#    define BOOST_PP_ITERATION_START_1_DIGIT_2 5
-# elif BOOST_PP_SLOT_TEMP_2 == 6
-#    define BOOST_PP_ITERATION_START_1_DIGIT_2 6
-# elif BOOST_PP_SLOT_TEMP_2 == 7
-#    define BOOST_PP_ITERATION_START_1_DIGIT_2 7
-# elif BOOST_PP_SLOT_TEMP_2 == 8
-#    define BOOST_PP_ITERATION_START_1_DIGIT_2 8
-# elif BOOST_PP_SLOT_TEMP_2 == 9
-#    define BOOST_PP_ITERATION_START_1_DIGIT_2 9
+# if NDNBOOST_PP_SLOT_TEMP_2 == 0
+#    define NDNBOOST_PP_ITERATION_START_1_DIGIT_2 0
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 1
+#    define NDNBOOST_PP_ITERATION_START_1_DIGIT_2 1
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 2
+#    define NDNBOOST_PP_ITERATION_START_1_DIGIT_2 2
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 3
+#    define NDNBOOST_PP_ITERATION_START_1_DIGIT_2 3
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 4
+#    define NDNBOOST_PP_ITERATION_START_1_DIGIT_2 4
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 5
+#    define NDNBOOST_PP_ITERATION_START_1_DIGIT_2 5
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 6
+#    define NDNBOOST_PP_ITERATION_START_1_DIGIT_2 6
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 7
+#    define NDNBOOST_PP_ITERATION_START_1_DIGIT_2 7
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 8
+#    define NDNBOOST_PP_ITERATION_START_1_DIGIT_2 8
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 9
+#    define NDNBOOST_PP_ITERATION_START_1_DIGIT_2 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_1 == 0
-#    define BOOST_PP_ITERATION_START_1_DIGIT_1 0
-# elif BOOST_PP_SLOT_TEMP_1 == 1
-#    define BOOST_PP_ITERATION_START_1_DIGIT_1 1
-# elif BOOST_PP_SLOT_TEMP_1 == 2
-#    define BOOST_PP_ITERATION_START_1_DIGIT_1 2
-# elif BOOST_PP_SLOT_TEMP_1 == 3
-#    define BOOST_PP_ITERATION_START_1_DIGIT_1 3
-# elif BOOST_PP_SLOT_TEMP_1 == 4
-#    define BOOST_PP_ITERATION_START_1_DIGIT_1 4
-# elif BOOST_PP_SLOT_TEMP_1 == 5
-#    define BOOST_PP_ITERATION_START_1_DIGIT_1 5
-# elif BOOST_PP_SLOT_TEMP_1 == 6
-#    define BOOST_PP_ITERATION_START_1_DIGIT_1 6
-# elif BOOST_PP_SLOT_TEMP_1 == 7
-#    define BOOST_PP_ITERATION_START_1_DIGIT_1 7
-# elif BOOST_PP_SLOT_TEMP_1 == 8
-#    define BOOST_PP_ITERATION_START_1_DIGIT_1 8
-# elif BOOST_PP_SLOT_TEMP_1 == 9
-#    define BOOST_PP_ITERATION_START_1_DIGIT_1 9
+# if NDNBOOST_PP_SLOT_TEMP_1 == 0
+#    define NDNBOOST_PP_ITERATION_START_1_DIGIT_1 0
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 1
+#    define NDNBOOST_PP_ITERATION_START_1_DIGIT_1 1
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 2
+#    define NDNBOOST_PP_ITERATION_START_1_DIGIT_1 2
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 3
+#    define NDNBOOST_PP_ITERATION_START_1_DIGIT_1 3
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 4
+#    define NDNBOOST_PP_ITERATION_START_1_DIGIT_1 4
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 5
+#    define NDNBOOST_PP_ITERATION_START_1_DIGIT_1 5
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 6
+#    define NDNBOOST_PP_ITERATION_START_1_DIGIT_1 6
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 7
+#    define NDNBOOST_PP_ITERATION_START_1_DIGIT_1 7
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 8
+#    define NDNBOOST_PP_ITERATION_START_1_DIGIT_1 8
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 9
+#    define NDNBOOST_PP_ITERATION_START_1_DIGIT_1 9
 # endif
 #
-# if BOOST_PP_ITERATION_START_1_DIGIT_3
-#    define BOOST_PP_ITERATION_START_1 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_START_1_DIGIT_3, BOOST_PP_ITERATION_START_1_DIGIT_2, BOOST_PP_ITERATION_START_1_DIGIT_1)
-# elif BOOST_PP_ITERATION_START_1_DIGIT_2
-#    define BOOST_PP_ITERATION_START_1 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_START_1_DIGIT_2, BOOST_PP_ITERATION_START_1_DIGIT_1)
+# if NDNBOOST_PP_ITERATION_START_1_DIGIT_3
+#    define NDNBOOST_PP_ITERATION_START_1 NDNBOOST_PP_SLOT_CC_3(NDNBOOST_PP_ITERATION_START_1_DIGIT_3, NDNBOOST_PP_ITERATION_START_1_DIGIT_2, NDNBOOST_PP_ITERATION_START_1_DIGIT_1)
+# elif NDNBOOST_PP_ITERATION_START_1_DIGIT_2
+#    define NDNBOOST_PP_ITERATION_START_1 NDNBOOST_PP_SLOT_CC_2(NDNBOOST_PP_ITERATION_START_1_DIGIT_2, NDNBOOST_PP_ITERATION_START_1_DIGIT_1)
 # else
-#    define BOOST_PP_ITERATION_START_1 BOOST_PP_ITERATION_START_1_DIGIT_1
+#    define NDNBOOST_PP_ITERATION_START_1 NDNBOOST_PP_ITERATION_START_1_DIGIT_1
 # endif
diff --git a/include/ndnboost/preprocessor/iteration/detail/bounds/lower2.hpp b/include/ndnboost/preprocessor/iteration/detail/bounds/lower2.hpp
index 50c430c..379b2dd 100644
--- a/include/ndnboost/preprocessor/iteration/detail/bounds/lower2.hpp
+++ b/include/ndnboost/preprocessor/iteration/detail/bounds/lower2.hpp
@@ -11,89 +11,89 @@
 #
 # include <ndnboost/preprocessor/slot/detail/shared.hpp>
 #
-# undef BOOST_PP_ITERATION_START_2
+# undef NDNBOOST_PP_ITERATION_START_2
 #
-# undef BOOST_PP_ITERATION_START_2_DIGIT_1
-# undef BOOST_PP_ITERATION_START_2_DIGIT_2
-# undef BOOST_PP_ITERATION_START_2_DIGIT_3
-# undef BOOST_PP_ITERATION_START_2_DIGIT_4
-# undef BOOST_PP_ITERATION_START_2_DIGIT_5
-# undef BOOST_PP_ITERATION_START_2_DIGIT_6
-# undef BOOST_PP_ITERATION_START_2_DIGIT_7
-# undef BOOST_PP_ITERATION_START_2_DIGIT_8
-# undef BOOST_PP_ITERATION_START_2_DIGIT_9
-# undef BOOST_PP_ITERATION_START_2_DIGIT_10
+# undef NDNBOOST_PP_ITERATION_START_2_DIGIT_1
+# undef NDNBOOST_PP_ITERATION_START_2_DIGIT_2
+# undef NDNBOOST_PP_ITERATION_START_2_DIGIT_3
+# undef NDNBOOST_PP_ITERATION_START_2_DIGIT_4
+# undef NDNBOOST_PP_ITERATION_START_2_DIGIT_5
+# undef NDNBOOST_PP_ITERATION_START_2_DIGIT_6
+# undef NDNBOOST_PP_ITERATION_START_2_DIGIT_7
+# undef NDNBOOST_PP_ITERATION_START_2_DIGIT_8
+# undef NDNBOOST_PP_ITERATION_START_2_DIGIT_9
+# undef NDNBOOST_PP_ITERATION_START_2_DIGIT_10
 #
-# if BOOST_PP_SLOT_TEMP_3 == 0
-#    define BOOST_PP_ITERATION_START_2_DIGIT_3 0
-# elif BOOST_PP_SLOT_TEMP_3 == 1
-#    define BOOST_PP_ITERATION_START_2_DIGIT_3 1
-# elif BOOST_PP_SLOT_TEMP_3 == 2
-#    define BOOST_PP_ITERATION_START_2_DIGIT_3 2
-# elif BOOST_PP_SLOT_TEMP_3 == 3
-#    define BOOST_PP_ITERATION_START_2_DIGIT_3 3
-# elif BOOST_PP_SLOT_TEMP_3 == 4
-#    define BOOST_PP_ITERATION_START_2_DIGIT_3 4
-# elif BOOST_PP_SLOT_TEMP_3 == 5
-#    define BOOST_PP_ITERATION_START_2_DIGIT_3 5
-# elif BOOST_PP_SLOT_TEMP_3 == 6
-#    define BOOST_PP_ITERATION_START_2_DIGIT_3 6
-# elif BOOST_PP_SLOT_TEMP_3 == 7
-#    define BOOST_PP_ITERATION_START_2_DIGIT_3 7
-# elif BOOST_PP_SLOT_TEMP_3 == 8
-#    define BOOST_PP_ITERATION_START_2_DIGIT_3 8
-# elif BOOST_PP_SLOT_TEMP_3 == 9
-#    define BOOST_PP_ITERATION_START_2_DIGIT_3 9
+# if NDNBOOST_PP_SLOT_TEMP_3 == 0
+#    define NDNBOOST_PP_ITERATION_START_2_DIGIT_3 0
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 1
+#    define NDNBOOST_PP_ITERATION_START_2_DIGIT_3 1
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 2
+#    define NDNBOOST_PP_ITERATION_START_2_DIGIT_3 2
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 3
+#    define NDNBOOST_PP_ITERATION_START_2_DIGIT_3 3
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 4
+#    define NDNBOOST_PP_ITERATION_START_2_DIGIT_3 4
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 5
+#    define NDNBOOST_PP_ITERATION_START_2_DIGIT_3 5
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 6
+#    define NDNBOOST_PP_ITERATION_START_2_DIGIT_3 6
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 7
+#    define NDNBOOST_PP_ITERATION_START_2_DIGIT_3 7
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 8
+#    define NDNBOOST_PP_ITERATION_START_2_DIGIT_3 8
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 9
+#    define NDNBOOST_PP_ITERATION_START_2_DIGIT_3 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_2 == 0
-#    define BOOST_PP_ITERATION_START_2_DIGIT_2 0
-# elif BOOST_PP_SLOT_TEMP_2 == 1
-#    define BOOST_PP_ITERATION_START_2_DIGIT_2 1
-# elif BOOST_PP_SLOT_TEMP_2 == 2
-#    define BOOST_PP_ITERATION_START_2_DIGIT_2 2
-# elif BOOST_PP_SLOT_TEMP_2 == 3
-#    define BOOST_PP_ITERATION_START_2_DIGIT_2 3
-# elif BOOST_PP_SLOT_TEMP_2 == 4
-#    define BOOST_PP_ITERATION_START_2_DIGIT_2 4
-# elif BOOST_PP_SLOT_TEMP_2 == 5
-#    define BOOST_PP_ITERATION_START_2_DIGIT_2 5
-# elif BOOST_PP_SLOT_TEMP_2 == 6
-#    define BOOST_PP_ITERATION_START_2_DIGIT_2 6
-# elif BOOST_PP_SLOT_TEMP_2 == 7
-#    define BOOST_PP_ITERATION_START_2_DIGIT_2 7
-# elif BOOST_PP_SLOT_TEMP_2 == 8
-#    define BOOST_PP_ITERATION_START_2_DIGIT_2 8
-# elif BOOST_PP_SLOT_TEMP_2 == 9
-#    define BOOST_PP_ITERATION_START_2_DIGIT_2 9
+# if NDNBOOST_PP_SLOT_TEMP_2 == 0
+#    define NDNBOOST_PP_ITERATION_START_2_DIGIT_2 0
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 1
+#    define NDNBOOST_PP_ITERATION_START_2_DIGIT_2 1
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 2
+#    define NDNBOOST_PP_ITERATION_START_2_DIGIT_2 2
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 3
+#    define NDNBOOST_PP_ITERATION_START_2_DIGIT_2 3
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 4
+#    define NDNBOOST_PP_ITERATION_START_2_DIGIT_2 4
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 5
+#    define NDNBOOST_PP_ITERATION_START_2_DIGIT_2 5
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 6
+#    define NDNBOOST_PP_ITERATION_START_2_DIGIT_2 6
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 7
+#    define NDNBOOST_PP_ITERATION_START_2_DIGIT_2 7
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 8
+#    define NDNBOOST_PP_ITERATION_START_2_DIGIT_2 8
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 9
+#    define NDNBOOST_PP_ITERATION_START_2_DIGIT_2 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_1 == 0
-#    define BOOST_PP_ITERATION_START_2_DIGIT_1 0
-# elif BOOST_PP_SLOT_TEMP_1 == 1
-#    define BOOST_PP_ITERATION_START_2_DIGIT_1 1
-# elif BOOST_PP_SLOT_TEMP_1 == 2
-#    define BOOST_PP_ITERATION_START_2_DIGIT_1 2
-# elif BOOST_PP_SLOT_TEMP_1 == 3
-#    define BOOST_PP_ITERATION_START_2_DIGIT_1 3
-# elif BOOST_PP_SLOT_TEMP_1 == 4
-#    define BOOST_PP_ITERATION_START_2_DIGIT_1 4
-# elif BOOST_PP_SLOT_TEMP_1 == 5
-#    define BOOST_PP_ITERATION_START_2_DIGIT_1 5
-# elif BOOST_PP_SLOT_TEMP_1 == 6
-#    define BOOST_PP_ITERATION_START_2_DIGIT_1 6
-# elif BOOST_PP_SLOT_TEMP_1 == 7
-#    define BOOST_PP_ITERATION_START_2_DIGIT_1 7
-# elif BOOST_PP_SLOT_TEMP_1 == 8
-#    define BOOST_PP_ITERATION_START_2_DIGIT_1 8
-# elif BOOST_PP_SLOT_TEMP_1 == 9
-#    define BOOST_PP_ITERATION_START_2_DIGIT_1 9
+# if NDNBOOST_PP_SLOT_TEMP_1 == 0
+#    define NDNBOOST_PP_ITERATION_START_2_DIGIT_1 0
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 1
+#    define NDNBOOST_PP_ITERATION_START_2_DIGIT_1 1
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 2
+#    define NDNBOOST_PP_ITERATION_START_2_DIGIT_1 2
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 3
+#    define NDNBOOST_PP_ITERATION_START_2_DIGIT_1 3
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 4
+#    define NDNBOOST_PP_ITERATION_START_2_DIGIT_1 4
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 5
+#    define NDNBOOST_PP_ITERATION_START_2_DIGIT_1 5
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 6
+#    define NDNBOOST_PP_ITERATION_START_2_DIGIT_1 6
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 7
+#    define NDNBOOST_PP_ITERATION_START_2_DIGIT_1 7
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 8
+#    define NDNBOOST_PP_ITERATION_START_2_DIGIT_1 8
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 9
+#    define NDNBOOST_PP_ITERATION_START_2_DIGIT_1 9
 # endif
 #
-# if BOOST_PP_ITERATION_START_2_DIGIT_3
-#    define BOOST_PP_ITERATION_START_2 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_START_2_DIGIT_3, BOOST_PP_ITERATION_START_2_DIGIT_2, BOOST_PP_ITERATION_START_2_DIGIT_1)
-# elif BOOST_PP_ITERATION_START_2_DIGIT_2
-#    define BOOST_PP_ITERATION_START_2 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_START_2_DIGIT_2, BOOST_PP_ITERATION_START_2_DIGIT_1)
+# if NDNBOOST_PP_ITERATION_START_2_DIGIT_3
+#    define NDNBOOST_PP_ITERATION_START_2 NDNBOOST_PP_SLOT_CC_3(NDNBOOST_PP_ITERATION_START_2_DIGIT_3, NDNBOOST_PP_ITERATION_START_2_DIGIT_2, NDNBOOST_PP_ITERATION_START_2_DIGIT_1)
+# elif NDNBOOST_PP_ITERATION_START_2_DIGIT_2
+#    define NDNBOOST_PP_ITERATION_START_2 NDNBOOST_PP_SLOT_CC_2(NDNBOOST_PP_ITERATION_START_2_DIGIT_2, NDNBOOST_PP_ITERATION_START_2_DIGIT_1)
 # else
-#    define BOOST_PP_ITERATION_START_2 BOOST_PP_ITERATION_START_2_DIGIT_1
+#    define NDNBOOST_PP_ITERATION_START_2 NDNBOOST_PP_ITERATION_START_2_DIGIT_1
 # endif
diff --git a/include/ndnboost/preprocessor/iteration/detail/bounds/lower3.hpp b/include/ndnboost/preprocessor/iteration/detail/bounds/lower3.hpp
index f90cd0e..b4e3453 100644
--- a/include/ndnboost/preprocessor/iteration/detail/bounds/lower3.hpp
+++ b/include/ndnboost/preprocessor/iteration/detail/bounds/lower3.hpp
@@ -11,89 +11,89 @@
 #
 # include <ndnboost/preprocessor/slot/detail/shared.hpp>
 #
-# undef BOOST_PP_ITERATION_START_3
+# undef NDNBOOST_PP_ITERATION_START_3
 #
-# undef BOOST_PP_ITERATION_START_3_DIGIT_1
-# undef BOOST_PP_ITERATION_START_3_DIGIT_2
-# undef BOOST_PP_ITERATION_START_3_DIGIT_3
-# undef BOOST_PP_ITERATION_START_3_DIGIT_4
-# undef BOOST_PP_ITERATION_START_3_DIGIT_5
-# undef BOOST_PP_ITERATION_START_3_DIGIT_6
-# undef BOOST_PP_ITERATION_START_3_DIGIT_7
-# undef BOOST_PP_ITERATION_START_3_DIGIT_8
-# undef BOOST_PP_ITERATION_START_3_DIGIT_9
-# undef BOOST_PP_ITERATION_START_3_DIGIT_10
+# undef NDNBOOST_PP_ITERATION_START_3_DIGIT_1
+# undef NDNBOOST_PP_ITERATION_START_3_DIGIT_2
+# undef NDNBOOST_PP_ITERATION_START_3_DIGIT_3
+# undef NDNBOOST_PP_ITERATION_START_3_DIGIT_4
+# undef NDNBOOST_PP_ITERATION_START_3_DIGIT_5
+# undef NDNBOOST_PP_ITERATION_START_3_DIGIT_6
+# undef NDNBOOST_PP_ITERATION_START_3_DIGIT_7
+# undef NDNBOOST_PP_ITERATION_START_3_DIGIT_8
+# undef NDNBOOST_PP_ITERATION_START_3_DIGIT_9
+# undef NDNBOOST_PP_ITERATION_START_3_DIGIT_10
 #
-# if BOOST_PP_SLOT_TEMP_3 == 0
-#    define BOOST_PP_ITERATION_START_3_DIGIT_3 0
-# elif BOOST_PP_SLOT_TEMP_3 == 1
-#    define BOOST_PP_ITERATION_START_3_DIGIT_3 1
-# elif BOOST_PP_SLOT_TEMP_3 == 2
-#    define BOOST_PP_ITERATION_START_3_DIGIT_3 2
-# elif BOOST_PP_SLOT_TEMP_3 == 3
-#    define BOOST_PP_ITERATION_START_3_DIGIT_3 3
-# elif BOOST_PP_SLOT_TEMP_3 == 4
-#    define BOOST_PP_ITERATION_START_3_DIGIT_3 4
-# elif BOOST_PP_SLOT_TEMP_3 == 5
-#    define BOOST_PP_ITERATION_START_3_DIGIT_3 5
-# elif BOOST_PP_SLOT_TEMP_3 == 6
-#    define BOOST_PP_ITERATION_START_3_DIGIT_3 6
-# elif BOOST_PP_SLOT_TEMP_3 == 7
-#    define BOOST_PP_ITERATION_START_3_DIGIT_3 7
-# elif BOOST_PP_SLOT_TEMP_3 == 8
-#    define BOOST_PP_ITERATION_START_3_DIGIT_3 8
-# elif BOOST_PP_SLOT_TEMP_3 == 9
-#    define BOOST_PP_ITERATION_START_3_DIGIT_3 9
+# if NDNBOOST_PP_SLOT_TEMP_3 == 0
+#    define NDNBOOST_PP_ITERATION_START_3_DIGIT_3 0
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 1
+#    define NDNBOOST_PP_ITERATION_START_3_DIGIT_3 1
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 2
+#    define NDNBOOST_PP_ITERATION_START_3_DIGIT_3 2
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 3
+#    define NDNBOOST_PP_ITERATION_START_3_DIGIT_3 3
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 4
+#    define NDNBOOST_PP_ITERATION_START_3_DIGIT_3 4
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 5
+#    define NDNBOOST_PP_ITERATION_START_3_DIGIT_3 5
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 6
+#    define NDNBOOST_PP_ITERATION_START_3_DIGIT_3 6
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 7
+#    define NDNBOOST_PP_ITERATION_START_3_DIGIT_3 7
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 8
+#    define NDNBOOST_PP_ITERATION_START_3_DIGIT_3 8
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 9
+#    define NDNBOOST_PP_ITERATION_START_3_DIGIT_3 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_2 == 0
-#    define BOOST_PP_ITERATION_START_3_DIGIT_2 0
-# elif BOOST_PP_SLOT_TEMP_2 == 1
-#    define BOOST_PP_ITERATION_START_3_DIGIT_2 1
-# elif BOOST_PP_SLOT_TEMP_2 == 2
-#    define BOOST_PP_ITERATION_START_3_DIGIT_2 2
-# elif BOOST_PP_SLOT_TEMP_2 == 3
-#    define BOOST_PP_ITERATION_START_3_DIGIT_2 3
-# elif BOOST_PP_SLOT_TEMP_2 == 4
-#    define BOOST_PP_ITERATION_START_3_DIGIT_2 4
-# elif BOOST_PP_SLOT_TEMP_2 == 5
-#    define BOOST_PP_ITERATION_START_3_DIGIT_2 5
-# elif BOOST_PP_SLOT_TEMP_2 == 6
-#    define BOOST_PP_ITERATION_START_3_DIGIT_2 6
-# elif BOOST_PP_SLOT_TEMP_2 == 7
-#    define BOOST_PP_ITERATION_START_3_DIGIT_2 7
-# elif BOOST_PP_SLOT_TEMP_2 == 8
-#    define BOOST_PP_ITERATION_START_3_DIGIT_2 8
-# elif BOOST_PP_SLOT_TEMP_2 == 9
-#    define BOOST_PP_ITERATION_START_3_DIGIT_2 9
+# if NDNBOOST_PP_SLOT_TEMP_2 == 0
+#    define NDNBOOST_PP_ITERATION_START_3_DIGIT_2 0
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 1
+#    define NDNBOOST_PP_ITERATION_START_3_DIGIT_2 1
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 2
+#    define NDNBOOST_PP_ITERATION_START_3_DIGIT_2 2
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 3
+#    define NDNBOOST_PP_ITERATION_START_3_DIGIT_2 3
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 4
+#    define NDNBOOST_PP_ITERATION_START_3_DIGIT_2 4
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 5
+#    define NDNBOOST_PP_ITERATION_START_3_DIGIT_2 5
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 6
+#    define NDNBOOST_PP_ITERATION_START_3_DIGIT_2 6
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 7
+#    define NDNBOOST_PP_ITERATION_START_3_DIGIT_2 7
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 8
+#    define NDNBOOST_PP_ITERATION_START_3_DIGIT_2 8
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 9
+#    define NDNBOOST_PP_ITERATION_START_3_DIGIT_2 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_1 == 0
-#    define BOOST_PP_ITERATION_START_3_DIGIT_1 0
-# elif BOOST_PP_SLOT_TEMP_1 == 1
-#    define BOOST_PP_ITERATION_START_3_DIGIT_1 1
-# elif BOOST_PP_SLOT_TEMP_1 == 2
-#    define BOOST_PP_ITERATION_START_3_DIGIT_1 2
-# elif BOOST_PP_SLOT_TEMP_1 == 3
-#    define BOOST_PP_ITERATION_START_3_DIGIT_1 3
-# elif BOOST_PP_SLOT_TEMP_1 == 4
-#    define BOOST_PP_ITERATION_START_3_DIGIT_1 4
-# elif BOOST_PP_SLOT_TEMP_1 == 5
-#    define BOOST_PP_ITERATION_START_3_DIGIT_1 5
-# elif BOOST_PP_SLOT_TEMP_1 == 6
-#    define BOOST_PP_ITERATION_START_3_DIGIT_1 6
-# elif BOOST_PP_SLOT_TEMP_1 == 7
-#    define BOOST_PP_ITERATION_START_3_DIGIT_1 7
-# elif BOOST_PP_SLOT_TEMP_1 == 8
-#    define BOOST_PP_ITERATION_START_3_DIGIT_1 8
-# elif BOOST_PP_SLOT_TEMP_1 == 9
-#    define BOOST_PP_ITERATION_START_3_DIGIT_1 9
+# if NDNBOOST_PP_SLOT_TEMP_1 == 0
+#    define NDNBOOST_PP_ITERATION_START_3_DIGIT_1 0
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 1
+#    define NDNBOOST_PP_ITERATION_START_3_DIGIT_1 1
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 2
+#    define NDNBOOST_PP_ITERATION_START_3_DIGIT_1 2
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 3
+#    define NDNBOOST_PP_ITERATION_START_3_DIGIT_1 3
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 4
+#    define NDNBOOST_PP_ITERATION_START_3_DIGIT_1 4
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 5
+#    define NDNBOOST_PP_ITERATION_START_3_DIGIT_1 5
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 6
+#    define NDNBOOST_PP_ITERATION_START_3_DIGIT_1 6
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 7
+#    define NDNBOOST_PP_ITERATION_START_3_DIGIT_1 7
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 8
+#    define NDNBOOST_PP_ITERATION_START_3_DIGIT_1 8
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 9
+#    define NDNBOOST_PP_ITERATION_START_3_DIGIT_1 9
 # endif
 #
-# if BOOST_PP_ITERATION_START_3_DIGIT_3
-#    define BOOST_PP_ITERATION_START_3 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_START_3_DIGIT_3, BOOST_PP_ITERATION_START_3_DIGIT_2, BOOST_PP_ITERATION_START_3_DIGIT_1)
-# elif BOOST_PP_ITERATION_START_3_DIGIT_2
-#    define BOOST_PP_ITERATION_START_3 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_START_3_DIGIT_2, BOOST_PP_ITERATION_START_3_DIGIT_1)
+# if NDNBOOST_PP_ITERATION_START_3_DIGIT_3
+#    define NDNBOOST_PP_ITERATION_START_3 NDNBOOST_PP_SLOT_CC_3(NDNBOOST_PP_ITERATION_START_3_DIGIT_3, NDNBOOST_PP_ITERATION_START_3_DIGIT_2, NDNBOOST_PP_ITERATION_START_3_DIGIT_1)
+# elif NDNBOOST_PP_ITERATION_START_3_DIGIT_2
+#    define NDNBOOST_PP_ITERATION_START_3 NDNBOOST_PP_SLOT_CC_2(NDNBOOST_PP_ITERATION_START_3_DIGIT_2, NDNBOOST_PP_ITERATION_START_3_DIGIT_1)
 # else
-#    define BOOST_PP_ITERATION_START_3 BOOST_PP_ITERATION_START_3_DIGIT_1
+#    define NDNBOOST_PP_ITERATION_START_3 NDNBOOST_PP_ITERATION_START_3_DIGIT_1
 # endif
diff --git a/include/ndnboost/preprocessor/iteration/detail/bounds/lower4.hpp b/include/ndnboost/preprocessor/iteration/detail/bounds/lower4.hpp
index 4617e5c..4ecd799 100644
--- a/include/ndnboost/preprocessor/iteration/detail/bounds/lower4.hpp
+++ b/include/ndnboost/preprocessor/iteration/detail/bounds/lower4.hpp
@@ -11,89 +11,89 @@
 #
 # include <ndnboost/preprocessor/slot/detail/shared.hpp>
 #
-# undef BOOST_PP_ITERATION_START_4
+# undef NDNBOOST_PP_ITERATION_START_4
 #
-# undef BOOST_PP_ITERATION_START_4_DIGIT_1
-# undef BOOST_PP_ITERATION_START_4_DIGIT_2
-# undef BOOST_PP_ITERATION_START_4_DIGIT_3
-# undef BOOST_PP_ITERATION_START_4_DIGIT_4
-# undef BOOST_PP_ITERATION_START_4_DIGIT_5
-# undef BOOST_PP_ITERATION_START_4_DIGIT_6
-# undef BOOST_PP_ITERATION_START_4_DIGIT_7
-# undef BOOST_PP_ITERATION_START_4_DIGIT_8
-# undef BOOST_PP_ITERATION_START_4_DIGIT_9
-# undef BOOST_PP_ITERATION_START_4_DIGIT_10
+# undef NDNBOOST_PP_ITERATION_START_4_DIGIT_1
+# undef NDNBOOST_PP_ITERATION_START_4_DIGIT_2
+# undef NDNBOOST_PP_ITERATION_START_4_DIGIT_3
+# undef NDNBOOST_PP_ITERATION_START_4_DIGIT_4
+# undef NDNBOOST_PP_ITERATION_START_4_DIGIT_5
+# undef NDNBOOST_PP_ITERATION_START_4_DIGIT_6
+# undef NDNBOOST_PP_ITERATION_START_4_DIGIT_7
+# undef NDNBOOST_PP_ITERATION_START_4_DIGIT_8
+# undef NDNBOOST_PP_ITERATION_START_4_DIGIT_9
+# undef NDNBOOST_PP_ITERATION_START_4_DIGIT_10
 #
-# if BOOST_PP_SLOT_TEMP_3 == 0
-#    define BOOST_PP_ITERATION_START_4_DIGIT_3 0
-# elif BOOST_PP_SLOT_TEMP_3 == 1
-#    define BOOST_PP_ITERATION_START_4_DIGIT_3 1
-# elif BOOST_PP_SLOT_TEMP_3 == 2
-#    define BOOST_PP_ITERATION_START_4_DIGIT_3 2
-# elif BOOST_PP_SLOT_TEMP_3 == 3
-#    define BOOST_PP_ITERATION_START_4_DIGIT_3 3
-# elif BOOST_PP_SLOT_TEMP_3 == 4
-#    define BOOST_PP_ITERATION_START_4_DIGIT_3 4
-# elif BOOST_PP_SLOT_TEMP_3 == 5
-#    define BOOST_PP_ITERATION_START_4_DIGIT_3 5
-# elif BOOST_PP_SLOT_TEMP_3 == 6
-#    define BOOST_PP_ITERATION_START_4_DIGIT_3 6
-# elif BOOST_PP_SLOT_TEMP_3 == 7
-#    define BOOST_PP_ITERATION_START_4_DIGIT_3 7
-# elif BOOST_PP_SLOT_TEMP_3 == 8
-#    define BOOST_PP_ITERATION_START_4_DIGIT_3 8
-# elif BOOST_PP_SLOT_TEMP_3 == 9
-#    define BOOST_PP_ITERATION_START_4_DIGIT_3 9
+# if NDNBOOST_PP_SLOT_TEMP_3 == 0
+#    define NDNBOOST_PP_ITERATION_START_4_DIGIT_3 0
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 1
+#    define NDNBOOST_PP_ITERATION_START_4_DIGIT_3 1
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 2
+#    define NDNBOOST_PP_ITERATION_START_4_DIGIT_3 2
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 3
+#    define NDNBOOST_PP_ITERATION_START_4_DIGIT_3 3
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 4
+#    define NDNBOOST_PP_ITERATION_START_4_DIGIT_3 4
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 5
+#    define NDNBOOST_PP_ITERATION_START_4_DIGIT_3 5
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 6
+#    define NDNBOOST_PP_ITERATION_START_4_DIGIT_3 6
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 7
+#    define NDNBOOST_PP_ITERATION_START_4_DIGIT_3 7
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 8
+#    define NDNBOOST_PP_ITERATION_START_4_DIGIT_3 8
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 9
+#    define NDNBOOST_PP_ITERATION_START_4_DIGIT_3 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_2 == 0
-#    define BOOST_PP_ITERATION_START_4_DIGIT_2 0
-# elif BOOST_PP_SLOT_TEMP_2 == 1
-#    define BOOST_PP_ITERATION_START_4_DIGIT_2 1
-# elif BOOST_PP_SLOT_TEMP_2 == 2
-#    define BOOST_PP_ITERATION_START_4_DIGIT_2 2
-# elif BOOST_PP_SLOT_TEMP_2 == 3
-#    define BOOST_PP_ITERATION_START_4_DIGIT_2 3
-# elif BOOST_PP_SLOT_TEMP_2 == 4
-#    define BOOST_PP_ITERATION_START_4_DIGIT_2 4
-# elif BOOST_PP_SLOT_TEMP_2 == 5
-#    define BOOST_PP_ITERATION_START_4_DIGIT_2 5
-# elif BOOST_PP_SLOT_TEMP_2 == 6
-#    define BOOST_PP_ITERATION_START_4_DIGIT_2 6
-# elif BOOST_PP_SLOT_TEMP_2 == 7
-#    define BOOST_PP_ITERATION_START_4_DIGIT_2 7
-# elif BOOST_PP_SLOT_TEMP_2 == 8
-#    define BOOST_PP_ITERATION_START_4_DIGIT_2 8
-# elif BOOST_PP_SLOT_TEMP_2 == 9
-#    define BOOST_PP_ITERATION_START_4_DIGIT_2 9
+# if NDNBOOST_PP_SLOT_TEMP_2 == 0
+#    define NDNBOOST_PP_ITERATION_START_4_DIGIT_2 0
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 1
+#    define NDNBOOST_PP_ITERATION_START_4_DIGIT_2 1
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 2
+#    define NDNBOOST_PP_ITERATION_START_4_DIGIT_2 2
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 3
+#    define NDNBOOST_PP_ITERATION_START_4_DIGIT_2 3
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 4
+#    define NDNBOOST_PP_ITERATION_START_4_DIGIT_2 4
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 5
+#    define NDNBOOST_PP_ITERATION_START_4_DIGIT_2 5
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 6
+#    define NDNBOOST_PP_ITERATION_START_4_DIGIT_2 6
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 7
+#    define NDNBOOST_PP_ITERATION_START_4_DIGIT_2 7
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 8
+#    define NDNBOOST_PP_ITERATION_START_4_DIGIT_2 8
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 9
+#    define NDNBOOST_PP_ITERATION_START_4_DIGIT_2 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_1 == 0
-#    define BOOST_PP_ITERATION_START_4_DIGIT_1 0
-# elif BOOST_PP_SLOT_TEMP_1 == 1
-#    define BOOST_PP_ITERATION_START_4_DIGIT_1 1
-# elif BOOST_PP_SLOT_TEMP_1 == 2
-#    define BOOST_PP_ITERATION_START_4_DIGIT_1 2
-# elif BOOST_PP_SLOT_TEMP_1 == 3
-#    define BOOST_PP_ITERATION_START_4_DIGIT_1 3
-# elif BOOST_PP_SLOT_TEMP_1 == 4
-#    define BOOST_PP_ITERATION_START_4_DIGIT_1 4
-# elif BOOST_PP_SLOT_TEMP_1 == 5
-#    define BOOST_PP_ITERATION_START_4_DIGIT_1 5
-# elif BOOST_PP_SLOT_TEMP_1 == 6
-#    define BOOST_PP_ITERATION_START_4_DIGIT_1 6
-# elif BOOST_PP_SLOT_TEMP_1 == 7
-#    define BOOST_PP_ITERATION_START_4_DIGIT_1 7
-# elif BOOST_PP_SLOT_TEMP_1 == 8
-#    define BOOST_PP_ITERATION_START_4_DIGIT_1 8
-# elif BOOST_PP_SLOT_TEMP_1 == 9
-#    define BOOST_PP_ITERATION_START_4_DIGIT_1 9
+# if NDNBOOST_PP_SLOT_TEMP_1 == 0
+#    define NDNBOOST_PP_ITERATION_START_4_DIGIT_1 0
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 1
+#    define NDNBOOST_PP_ITERATION_START_4_DIGIT_1 1
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 2
+#    define NDNBOOST_PP_ITERATION_START_4_DIGIT_1 2
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 3
+#    define NDNBOOST_PP_ITERATION_START_4_DIGIT_1 3
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 4
+#    define NDNBOOST_PP_ITERATION_START_4_DIGIT_1 4
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 5
+#    define NDNBOOST_PP_ITERATION_START_4_DIGIT_1 5
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 6
+#    define NDNBOOST_PP_ITERATION_START_4_DIGIT_1 6
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 7
+#    define NDNBOOST_PP_ITERATION_START_4_DIGIT_1 7
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 8
+#    define NDNBOOST_PP_ITERATION_START_4_DIGIT_1 8
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 9
+#    define NDNBOOST_PP_ITERATION_START_4_DIGIT_1 9
 # endif
 #
-# if BOOST_PP_ITERATION_START_4_DIGIT_3
-#    define BOOST_PP_ITERATION_START_4 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_START_4_DIGIT_3, BOOST_PP_ITERATION_START_4_DIGIT_2, BOOST_PP_ITERATION_START_4_DIGIT_1)
-# elif BOOST_PP_ITERATION_START_4_DIGIT_2
-#    define BOOST_PP_ITERATION_START_4 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_START_4_DIGIT_2, BOOST_PP_ITERATION_START_4_DIGIT_1)
+# if NDNBOOST_PP_ITERATION_START_4_DIGIT_3
+#    define NDNBOOST_PP_ITERATION_START_4 NDNBOOST_PP_SLOT_CC_3(NDNBOOST_PP_ITERATION_START_4_DIGIT_3, NDNBOOST_PP_ITERATION_START_4_DIGIT_2, NDNBOOST_PP_ITERATION_START_4_DIGIT_1)
+# elif NDNBOOST_PP_ITERATION_START_4_DIGIT_2
+#    define NDNBOOST_PP_ITERATION_START_4 NDNBOOST_PP_SLOT_CC_2(NDNBOOST_PP_ITERATION_START_4_DIGIT_2, NDNBOOST_PP_ITERATION_START_4_DIGIT_1)
 # else
-#    define BOOST_PP_ITERATION_START_4 BOOST_PP_ITERATION_START_4_DIGIT_1
+#    define NDNBOOST_PP_ITERATION_START_4 NDNBOOST_PP_ITERATION_START_4_DIGIT_1
 # endif
diff --git a/include/ndnboost/preprocessor/iteration/detail/bounds/lower5.hpp b/include/ndnboost/preprocessor/iteration/detail/bounds/lower5.hpp
index b7ae8d6..120c539 100644
--- a/include/ndnboost/preprocessor/iteration/detail/bounds/lower5.hpp
+++ b/include/ndnboost/preprocessor/iteration/detail/bounds/lower5.hpp
@@ -11,89 +11,89 @@
 #
 # include <ndnboost/preprocessor/slot/detail/shared.hpp>
 #
-# undef BOOST_PP_ITERATION_START_5
+# undef NDNBOOST_PP_ITERATION_START_5
 #
-# undef BOOST_PP_ITERATION_START_5_DIGIT_1
-# undef BOOST_PP_ITERATION_START_5_DIGIT_2
-# undef BOOST_PP_ITERATION_START_5_DIGIT_3
-# undef BOOST_PP_ITERATION_START_5_DIGIT_4
-# undef BOOST_PP_ITERATION_START_5_DIGIT_5
-# undef BOOST_PP_ITERATION_START_5_DIGIT_6
-# undef BOOST_PP_ITERATION_START_5_DIGIT_7
-# undef BOOST_PP_ITERATION_START_5_DIGIT_8
-# undef BOOST_PP_ITERATION_START_5_DIGIT_9
-# undef BOOST_PP_ITERATION_START_5_DIGIT_10
+# undef NDNBOOST_PP_ITERATION_START_5_DIGIT_1
+# undef NDNBOOST_PP_ITERATION_START_5_DIGIT_2
+# undef NDNBOOST_PP_ITERATION_START_5_DIGIT_3
+# undef NDNBOOST_PP_ITERATION_START_5_DIGIT_4
+# undef NDNBOOST_PP_ITERATION_START_5_DIGIT_5
+# undef NDNBOOST_PP_ITERATION_START_5_DIGIT_6
+# undef NDNBOOST_PP_ITERATION_START_5_DIGIT_7
+# undef NDNBOOST_PP_ITERATION_START_5_DIGIT_8
+# undef NDNBOOST_PP_ITERATION_START_5_DIGIT_9
+# undef NDNBOOST_PP_ITERATION_START_5_DIGIT_10
 #
-# if BOOST_PP_SLOT_TEMP_3 == 0
-#    define BOOST_PP_ITERATION_START_5_DIGIT_3 0
-# elif BOOST_PP_SLOT_TEMP_3 == 1
-#    define BOOST_PP_ITERATION_START_5_DIGIT_3 1
-# elif BOOST_PP_SLOT_TEMP_3 == 2
-#    define BOOST_PP_ITERATION_START_5_DIGIT_3 2
-# elif BOOST_PP_SLOT_TEMP_3 == 3
-#    define BOOST_PP_ITERATION_START_5_DIGIT_3 3
-# elif BOOST_PP_SLOT_TEMP_3 == 4
-#    define BOOST_PP_ITERATION_START_5_DIGIT_3 4
-# elif BOOST_PP_SLOT_TEMP_3 == 5
-#    define BOOST_PP_ITERATION_START_5_DIGIT_3 5
-# elif BOOST_PP_SLOT_TEMP_3 == 6
-#    define BOOST_PP_ITERATION_START_5_DIGIT_3 6
-# elif BOOST_PP_SLOT_TEMP_3 == 7
-#    define BOOST_PP_ITERATION_START_5_DIGIT_3 7
-# elif BOOST_PP_SLOT_TEMP_3 == 8
-#    define BOOST_PP_ITERATION_START_5_DIGIT_3 8
-# elif BOOST_PP_SLOT_TEMP_3 == 9
-#    define BOOST_PP_ITERATION_START_5_DIGIT_3 9
+# if NDNBOOST_PP_SLOT_TEMP_3 == 0
+#    define NDNBOOST_PP_ITERATION_START_5_DIGIT_3 0
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 1
+#    define NDNBOOST_PP_ITERATION_START_5_DIGIT_3 1
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 2
+#    define NDNBOOST_PP_ITERATION_START_5_DIGIT_3 2
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 3
+#    define NDNBOOST_PP_ITERATION_START_5_DIGIT_3 3
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 4
+#    define NDNBOOST_PP_ITERATION_START_5_DIGIT_3 4
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 5
+#    define NDNBOOST_PP_ITERATION_START_5_DIGIT_3 5
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 6
+#    define NDNBOOST_PP_ITERATION_START_5_DIGIT_3 6
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 7
+#    define NDNBOOST_PP_ITERATION_START_5_DIGIT_3 7
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 8
+#    define NDNBOOST_PP_ITERATION_START_5_DIGIT_3 8
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 9
+#    define NDNBOOST_PP_ITERATION_START_5_DIGIT_3 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_2 == 0
-#    define BOOST_PP_ITERATION_START_5_DIGIT_2 0
-# elif BOOST_PP_SLOT_TEMP_2 == 1
-#    define BOOST_PP_ITERATION_START_5_DIGIT_2 1
-# elif BOOST_PP_SLOT_TEMP_2 == 2
-#    define BOOST_PP_ITERATION_START_5_DIGIT_2 2
-# elif BOOST_PP_SLOT_TEMP_2 == 3
-#    define BOOST_PP_ITERATION_START_5_DIGIT_2 3
-# elif BOOST_PP_SLOT_TEMP_2 == 4
-#    define BOOST_PP_ITERATION_START_5_DIGIT_2 4
-# elif BOOST_PP_SLOT_TEMP_2 == 5
-#    define BOOST_PP_ITERATION_START_5_DIGIT_2 5
-# elif BOOST_PP_SLOT_TEMP_2 == 6
-#    define BOOST_PP_ITERATION_START_5_DIGIT_2 6
-# elif BOOST_PP_SLOT_TEMP_2 == 7
-#    define BOOST_PP_ITERATION_START_5_DIGIT_2 7
-# elif BOOST_PP_SLOT_TEMP_2 == 8
-#    define BOOST_PP_ITERATION_START_5_DIGIT_2 8
-# elif BOOST_PP_SLOT_TEMP_2 == 9
-#    define BOOST_PP_ITERATION_START_5_DIGIT_2 9
+# if NDNBOOST_PP_SLOT_TEMP_2 == 0
+#    define NDNBOOST_PP_ITERATION_START_5_DIGIT_2 0
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 1
+#    define NDNBOOST_PP_ITERATION_START_5_DIGIT_2 1
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 2
+#    define NDNBOOST_PP_ITERATION_START_5_DIGIT_2 2
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 3
+#    define NDNBOOST_PP_ITERATION_START_5_DIGIT_2 3
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 4
+#    define NDNBOOST_PP_ITERATION_START_5_DIGIT_2 4
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 5
+#    define NDNBOOST_PP_ITERATION_START_5_DIGIT_2 5
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 6
+#    define NDNBOOST_PP_ITERATION_START_5_DIGIT_2 6
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 7
+#    define NDNBOOST_PP_ITERATION_START_5_DIGIT_2 7
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 8
+#    define NDNBOOST_PP_ITERATION_START_5_DIGIT_2 8
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 9
+#    define NDNBOOST_PP_ITERATION_START_5_DIGIT_2 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_1 == 0
-#    define BOOST_PP_ITERATION_START_5_DIGIT_1 0
-# elif BOOST_PP_SLOT_TEMP_1 == 1
-#    define BOOST_PP_ITERATION_START_5_DIGIT_1 1
-# elif BOOST_PP_SLOT_TEMP_1 == 2
-#    define BOOST_PP_ITERATION_START_5_DIGIT_1 2
-# elif BOOST_PP_SLOT_TEMP_1 == 3
-#    define BOOST_PP_ITERATION_START_5_DIGIT_1 3
-# elif BOOST_PP_SLOT_TEMP_1 == 4
-#    define BOOST_PP_ITERATION_START_5_DIGIT_1 4
-# elif BOOST_PP_SLOT_TEMP_1 == 5
-#    define BOOST_PP_ITERATION_START_5_DIGIT_1 5
-# elif BOOST_PP_SLOT_TEMP_1 == 6
-#    define BOOST_PP_ITERATION_START_5_DIGIT_1 6
-# elif BOOST_PP_SLOT_TEMP_1 == 7
-#    define BOOST_PP_ITERATION_START_5_DIGIT_1 7
-# elif BOOST_PP_SLOT_TEMP_1 == 8
-#    define BOOST_PP_ITERATION_START_5_DIGIT_1 8
-# elif BOOST_PP_SLOT_TEMP_1 == 9
-#    define BOOST_PP_ITERATION_START_5_DIGIT_1 9
+# if NDNBOOST_PP_SLOT_TEMP_1 == 0
+#    define NDNBOOST_PP_ITERATION_START_5_DIGIT_1 0
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 1
+#    define NDNBOOST_PP_ITERATION_START_5_DIGIT_1 1
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 2
+#    define NDNBOOST_PP_ITERATION_START_5_DIGIT_1 2
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 3
+#    define NDNBOOST_PP_ITERATION_START_5_DIGIT_1 3
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 4
+#    define NDNBOOST_PP_ITERATION_START_5_DIGIT_1 4
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 5
+#    define NDNBOOST_PP_ITERATION_START_5_DIGIT_1 5
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 6
+#    define NDNBOOST_PP_ITERATION_START_5_DIGIT_1 6
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 7
+#    define NDNBOOST_PP_ITERATION_START_5_DIGIT_1 7
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 8
+#    define NDNBOOST_PP_ITERATION_START_5_DIGIT_1 8
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 9
+#    define NDNBOOST_PP_ITERATION_START_5_DIGIT_1 9
 # endif
 #
-# if BOOST_PP_ITERATION_START_5_DIGIT_3
-#    define BOOST_PP_ITERATION_START_5 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_START_5_DIGIT_3, BOOST_PP_ITERATION_START_5_DIGIT_2, BOOST_PP_ITERATION_START_5_DIGIT_1)
-# elif BOOST_PP_ITERATION_START_5_DIGIT_2
-#    define BOOST_PP_ITERATION_START_5 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_START_5_DIGIT_2, BOOST_PP_ITERATION_START_5_DIGIT_1)
+# if NDNBOOST_PP_ITERATION_START_5_DIGIT_3
+#    define NDNBOOST_PP_ITERATION_START_5 NDNBOOST_PP_SLOT_CC_3(NDNBOOST_PP_ITERATION_START_5_DIGIT_3, NDNBOOST_PP_ITERATION_START_5_DIGIT_2, NDNBOOST_PP_ITERATION_START_5_DIGIT_1)
+# elif NDNBOOST_PP_ITERATION_START_5_DIGIT_2
+#    define NDNBOOST_PP_ITERATION_START_5 NDNBOOST_PP_SLOT_CC_2(NDNBOOST_PP_ITERATION_START_5_DIGIT_2, NDNBOOST_PP_ITERATION_START_5_DIGIT_1)
 # else
-#    define BOOST_PP_ITERATION_START_5 BOOST_PP_ITERATION_START_5_DIGIT_1
+#    define NDNBOOST_PP_ITERATION_START_5 NDNBOOST_PP_ITERATION_START_5_DIGIT_1
 # endif
diff --git a/include/ndnboost/preprocessor/iteration/detail/bounds/upper1.hpp b/include/ndnboost/preprocessor/iteration/detail/bounds/upper1.hpp
index f7b1a0f..a8547fd 100644
--- a/include/ndnboost/preprocessor/iteration/detail/bounds/upper1.hpp
+++ b/include/ndnboost/preprocessor/iteration/detail/bounds/upper1.hpp
@@ -11,89 +11,89 @@
 #
 # include <ndnboost/preprocessor/slot/detail/shared.hpp>
 #
-# undef BOOST_PP_ITERATION_FINISH_1
+# undef NDNBOOST_PP_ITERATION_FINISH_1
 #
-# undef BOOST_PP_ITERATION_FINISH_1_DIGIT_1
-# undef BOOST_PP_ITERATION_FINISH_1_DIGIT_2
-# undef BOOST_PP_ITERATION_FINISH_1_DIGIT_3
-# undef BOOST_PP_ITERATION_FINISH_1_DIGIT_4
-# undef BOOST_PP_ITERATION_FINISH_1_DIGIT_5
-# undef BOOST_PP_ITERATION_FINISH_1_DIGIT_6
-# undef BOOST_PP_ITERATION_FINISH_1_DIGIT_7
-# undef BOOST_PP_ITERATION_FINISH_1_DIGIT_8
-# undef BOOST_PP_ITERATION_FINISH_1_DIGIT_9
-# undef BOOST_PP_ITERATION_FINISH_1_DIGIT_10
+# undef NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_1
+# undef NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_2
+# undef NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_3
+# undef NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_4
+# undef NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_5
+# undef NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_6
+# undef NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_7
+# undef NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_8
+# undef NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_9
+# undef NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_10
 #
-# if BOOST_PP_SLOT_TEMP_3 == 0
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_3 0
-# elif BOOST_PP_SLOT_TEMP_3 == 1
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_3 1
-# elif BOOST_PP_SLOT_TEMP_3 == 2
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_3 2
-# elif BOOST_PP_SLOT_TEMP_3 == 3
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_3 3
-# elif BOOST_PP_SLOT_TEMP_3 == 4
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_3 4
-# elif BOOST_PP_SLOT_TEMP_3 == 5
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_3 5
-# elif BOOST_PP_SLOT_TEMP_3 == 6
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_3 6
-# elif BOOST_PP_SLOT_TEMP_3 == 7
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_3 7
-# elif BOOST_PP_SLOT_TEMP_3 == 8
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_3 8
-# elif BOOST_PP_SLOT_TEMP_3 == 9
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_3 9
+# if NDNBOOST_PP_SLOT_TEMP_3 == 0
+#    define NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_3 0
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 1
+#    define NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_3 1
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 2
+#    define NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_3 2
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 3
+#    define NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_3 3
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 4
+#    define NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_3 4
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 5
+#    define NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_3 5
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 6
+#    define NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_3 6
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 7
+#    define NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_3 7
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 8
+#    define NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_3 8
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 9
+#    define NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_3 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_2 == 0
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_2 0
-# elif BOOST_PP_SLOT_TEMP_2 == 1
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_2 1
-# elif BOOST_PP_SLOT_TEMP_2 == 2
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_2 2
-# elif BOOST_PP_SLOT_TEMP_2 == 3
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_2 3
-# elif BOOST_PP_SLOT_TEMP_2 == 4
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_2 4
-# elif BOOST_PP_SLOT_TEMP_2 == 5
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_2 5
-# elif BOOST_PP_SLOT_TEMP_2 == 6
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_2 6
-# elif BOOST_PP_SLOT_TEMP_2 == 7
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_2 7
-# elif BOOST_PP_SLOT_TEMP_2 == 8
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_2 8
-# elif BOOST_PP_SLOT_TEMP_2 == 9
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_2 9
+# if NDNBOOST_PP_SLOT_TEMP_2 == 0
+#    define NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_2 0
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 1
+#    define NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_2 1
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 2
+#    define NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_2 2
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 3
+#    define NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_2 3
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 4
+#    define NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_2 4
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 5
+#    define NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_2 5
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 6
+#    define NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_2 6
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 7
+#    define NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_2 7
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 8
+#    define NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_2 8
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 9
+#    define NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_2 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_1 == 0
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_1 0
-# elif BOOST_PP_SLOT_TEMP_1 == 1
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_1 1
-# elif BOOST_PP_SLOT_TEMP_1 == 2
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_1 2
-# elif BOOST_PP_SLOT_TEMP_1 == 3
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_1 3
-# elif BOOST_PP_SLOT_TEMP_1 == 4
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_1 4
-# elif BOOST_PP_SLOT_TEMP_1 == 5
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_1 5
-# elif BOOST_PP_SLOT_TEMP_1 == 6
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_1 6
-# elif BOOST_PP_SLOT_TEMP_1 == 7
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_1 7
-# elif BOOST_PP_SLOT_TEMP_1 == 8
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_1 8
-# elif BOOST_PP_SLOT_TEMP_1 == 9
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_1 9
+# if NDNBOOST_PP_SLOT_TEMP_1 == 0
+#    define NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_1 0
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 1
+#    define NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_1 1
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 2
+#    define NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_1 2
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 3
+#    define NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_1 3
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 4
+#    define NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_1 4
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 5
+#    define NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_1 5
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 6
+#    define NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_1 6
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 7
+#    define NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_1 7
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 8
+#    define NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_1 8
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 9
+#    define NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_1 9
 # endif
 #
-# if BOOST_PP_ITERATION_FINISH_1_DIGIT_3
-#    define BOOST_PP_ITERATION_FINISH_1 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_FINISH_1_DIGIT_3, BOOST_PP_ITERATION_FINISH_1_DIGIT_2, BOOST_PP_ITERATION_FINISH_1_DIGIT_1)
-# elif BOOST_PP_ITERATION_FINISH_1_DIGIT_2
-#    define BOOST_PP_ITERATION_FINISH_1 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_FINISH_1_DIGIT_2, BOOST_PP_ITERATION_FINISH_1_DIGIT_1)
+# if NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_3
+#    define NDNBOOST_PP_ITERATION_FINISH_1 NDNBOOST_PP_SLOT_CC_3(NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_3, NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_2, NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_1)
+# elif NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_2
+#    define NDNBOOST_PP_ITERATION_FINISH_1 NDNBOOST_PP_SLOT_CC_2(NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_2, NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_1)
 # else
-#    define BOOST_PP_ITERATION_FINISH_1 BOOST_PP_ITERATION_FINISH_1_DIGIT_1
+#    define NDNBOOST_PP_ITERATION_FINISH_1 NDNBOOST_PP_ITERATION_FINISH_1_DIGIT_1
 # endif
diff --git a/include/ndnboost/preprocessor/iteration/detail/bounds/upper2.hpp b/include/ndnboost/preprocessor/iteration/detail/bounds/upper2.hpp
index 7960ef9..5d82aaf 100644
--- a/include/ndnboost/preprocessor/iteration/detail/bounds/upper2.hpp
+++ b/include/ndnboost/preprocessor/iteration/detail/bounds/upper2.hpp
@@ -11,89 +11,89 @@
 #
 # include <ndnboost/preprocessor/slot/detail/shared.hpp>
 #
-# undef BOOST_PP_ITERATION_FINISH_2
+# undef NDNBOOST_PP_ITERATION_FINISH_2
 #
-# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_1
-# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_2
-# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_3
-# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_4
-# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_5
-# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_6
-# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_7
-# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_8
-# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_9
-# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_10
+# undef NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_1
+# undef NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_2
+# undef NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_3
+# undef NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_4
+# undef NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_5
+# undef NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_6
+# undef NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_7
+# undef NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_8
+# undef NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_9
+# undef NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_10
 #
-# if BOOST_PP_SLOT_TEMP_3 == 0
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 0
-# elif BOOST_PP_SLOT_TEMP_3 == 1
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 1
-# elif BOOST_PP_SLOT_TEMP_3 == 2
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 2
-# elif BOOST_PP_SLOT_TEMP_3 == 3
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 3
-# elif BOOST_PP_SLOT_TEMP_3 == 4
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 4
-# elif BOOST_PP_SLOT_TEMP_3 == 5
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 5
-# elif BOOST_PP_SLOT_TEMP_3 == 6
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 6
-# elif BOOST_PP_SLOT_TEMP_3 == 7
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 7
-# elif BOOST_PP_SLOT_TEMP_3 == 8
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 8
-# elif BOOST_PP_SLOT_TEMP_3 == 9
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 9
+# if NDNBOOST_PP_SLOT_TEMP_3 == 0
+#    define NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_3 0
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 1
+#    define NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_3 1
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 2
+#    define NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_3 2
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 3
+#    define NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_3 3
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 4
+#    define NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_3 4
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 5
+#    define NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_3 5
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 6
+#    define NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_3 6
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 7
+#    define NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_3 7
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 8
+#    define NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_3 8
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 9
+#    define NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_3 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_2 == 0
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 0
-# elif BOOST_PP_SLOT_TEMP_2 == 1
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 1
-# elif BOOST_PP_SLOT_TEMP_2 == 2
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 2
-# elif BOOST_PP_SLOT_TEMP_2 == 3
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 3
-# elif BOOST_PP_SLOT_TEMP_2 == 4
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 4
-# elif BOOST_PP_SLOT_TEMP_2 == 5
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 5
-# elif BOOST_PP_SLOT_TEMP_2 == 6
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 6
-# elif BOOST_PP_SLOT_TEMP_2 == 7
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 7
-# elif BOOST_PP_SLOT_TEMP_2 == 8
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 8
-# elif BOOST_PP_SLOT_TEMP_2 == 9
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 9
+# if NDNBOOST_PP_SLOT_TEMP_2 == 0
+#    define NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_2 0
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 1
+#    define NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_2 1
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 2
+#    define NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_2 2
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 3
+#    define NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_2 3
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 4
+#    define NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_2 4
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 5
+#    define NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_2 5
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 6
+#    define NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_2 6
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 7
+#    define NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_2 7
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 8
+#    define NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_2 8
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 9
+#    define NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_2 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_1 == 0
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 0
-# elif BOOST_PP_SLOT_TEMP_1 == 1
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 1
-# elif BOOST_PP_SLOT_TEMP_1 == 2
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 2
-# elif BOOST_PP_SLOT_TEMP_1 == 3
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 3
-# elif BOOST_PP_SLOT_TEMP_1 == 4
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 4
-# elif BOOST_PP_SLOT_TEMP_1 == 5
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 5
-# elif BOOST_PP_SLOT_TEMP_1 == 6
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 6
-# elif BOOST_PP_SLOT_TEMP_1 == 7
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 7
-# elif BOOST_PP_SLOT_TEMP_1 == 8
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 8
-# elif BOOST_PP_SLOT_TEMP_1 == 9
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 9
+# if NDNBOOST_PP_SLOT_TEMP_1 == 0
+#    define NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_1 0
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 1
+#    define NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_1 1
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 2
+#    define NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_1 2
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 3
+#    define NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_1 3
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 4
+#    define NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_1 4
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 5
+#    define NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_1 5
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 6
+#    define NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_1 6
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 7
+#    define NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_1 7
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 8
+#    define NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_1 8
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 9
+#    define NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_1 9
 # endif
 #
-# if BOOST_PP_ITERATION_FINISH_2_DIGIT_3
-#    define BOOST_PP_ITERATION_FINISH_2 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_FINISH_2_DIGIT_3, BOOST_PP_ITERATION_FINISH_2_DIGIT_2, BOOST_PP_ITERATION_FINISH_2_DIGIT_1)
-# elif BOOST_PP_ITERATION_FINISH_2_DIGIT_2
-#    define BOOST_PP_ITERATION_FINISH_2 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_FINISH_2_DIGIT_2, BOOST_PP_ITERATION_FINISH_2_DIGIT_1)
+# if NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_3
+#    define NDNBOOST_PP_ITERATION_FINISH_2 NDNBOOST_PP_SLOT_CC_3(NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_3, NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_2, NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_1)
+# elif NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_2
+#    define NDNBOOST_PP_ITERATION_FINISH_2 NDNBOOST_PP_SLOT_CC_2(NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_2, NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_1)
 # else
-#    define BOOST_PP_ITERATION_FINISH_2 BOOST_PP_ITERATION_FINISH_2_DIGIT_1
+#    define NDNBOOST_PP_ITERATION_FINISH_2 NDNBOOST_PP_ITERATION_FINISH_2_DIGIT_1
 # endif
diff --git a/include/ndnboost/preprocessor/iteration/detail/bounds/upper3.hpp b/include/ndnboost/preprocessor/iteration/detail/bounds/upper3.hpp
index fa4aaef..b285717 100644
--- a/include/ndnboost/preprocessor/iteration/detail/bounds/upper3.hpp
+++ b/include/ndnboost/preprocessor/iteration/detail/bounds/upper3.hpp
@@ -11,89 +11,89 @@
 #
 # include <ndnboost/preprocessor/slot/detail/shared.hpp>
 #
-# undef BOOST_PP_ITERATION_FINISH_3
+# undef NDNBOOST_PP_ITERATION_FINISH_3
 #
-# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_1
-# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_2
-# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_3
-# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_4
-# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_5
-# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_6
-# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_7
-# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_8
-# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_9
-# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_10
+# undef NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_1
+# undef NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_2
+# undef NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_3
+# undef NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_4
+# undef NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_5
+# undef NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_6
+# undef NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_7
+# undef NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_8
+# undef NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_9
+# undef NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_10
 #
-# if BOOST_PP_SLOT_TEMP_3 == 0
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 0
-# elif BOOST_PP_SLOT_TEMP_3 == 1
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 1
-# elif BOOST_PP_SLOT_TEMP_3 == 2
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 2
-# elif BOOST_PP_SLOT_TEMP_3 == 3
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 3
-# elif BOOST_PP_SLOT_TEMP_3 == 4
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 4
-# elif BOOST_PP_SLOT_TEMP_3 == 5
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 5
-# elif BOOST_PP_SLOT_TEMP_3 == 6
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 6
-# elif BOOST_PP_SLOT_TEMP_3 == 7
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 7
-# elif BOOST_PP_SLOT_TEMP_3 == 8
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 8
-# elif BOOST_PP_SLOT_TEMP_3 == 9
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 9
+# if NDNBOOST_PP_SLOT_TEMP_3 == 0
+#    define NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_3 0
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 1
+#    define NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_3 1
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 2
+#    define NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_3 2
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 3
+#    define NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_3 3
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 4
+#    define NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_3 4
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 5
+#    define NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_3 5
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 6
+#    define NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_3 6
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 7
+#    define NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_3 7
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 8
+#    define NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_3 8
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 9
+#    define NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_3 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_2 == 0
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 0
-# elif BOOST_PP_SLOT_TEMP_2 == 1
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 1
-# elif BOOST_PP_SLOT_TEMP_2 == 2
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 2
-# elif BOOST_PP_SLOT_TEMP_2 == 3
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 3
-# elif BOOST_PP_SLOT_TEMP_2 == 4
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 4
-# elif BOOST_PP_SLOT_TEMP_2 == 5
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 5
-# elif BOOST_PP_SLOT_TEMP_2 == 6
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 6
-# elif BOOST_PP_SLOT_TEMP_2 == 7
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 7
-# elif BOOST_PP_SLOT_TEMP_2 == 8
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 8
-# elif BOOST_PP_SLOT_TEMP_2 == 9
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 9
+# if NDNBOOST_PP_SLOT_TEMP_2 == 0
+#    define NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_2 0
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 1
+#    define NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_2 1
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 2
+#    define NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_2 2
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 3
+#    define NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_2 3
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 4
+#    define NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_2 4
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 5
+#    define NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_2 5
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 6
+#    define NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_2 6
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 7
+#    define NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_2 7
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 8
+#    define NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_2 8
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 9
+#    define NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_2 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_1 == 0
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 0
-# elif BOOST_PP_SLOT_TEMP_1 == 1
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 1
-# elif BOOST_PP_SLOT_TEMP_1 == 2
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 2
-# elif BOOST_PP_SLOT_TEMP_1 == 3
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 3
-# elif BOOST_PP_SLOT_TEMP_1 == 4
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 4
-# elif BOOST_PP_SLOT_TEMP_1 == 5
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 5
-# elif BOOST_PP_SLOT_TEMP_1 == 6
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 6
-# elif BOOST_PP_SLOT_TEMP_1 == 7
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 7
-# elif BOOST_PP_SLOT_TEMP_1 == 8
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 8
-# elif BOOST_PP_SLOT_TEMP_1 == 9
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 9
+# if NDNBOOST_PP_SLOT_TEMP_1 == 0
+#    define NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_1 0
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 1
+#    define NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_1 1
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 2
+#    define NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_1 2
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 3
+#    define NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_1 3
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 4
+#    define NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_1 4
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 5
+#    define NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_1 5
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 6
+#    define NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_1 6
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 7
+#    define NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_1 7
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 8
+#    define NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_1 8
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 9
+#    define NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_1 9
 # endif
 #
-# if BOOST_PP_ITERATION_FINISH_3_DIGIT_3
-#    define BOOST_PP_ITERATION_FINISH_3 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_FINISH_3_DIGIT_3, BOOST_PP_ITERATION_FINISH_3_DIGIT_2, BOOST_PP_ITERATION_FINISH_3_DIGIT_1)
-# elif BOOST_PP_ITERATION_FINISH_3_DIGIT_2
-#    define BOOST_PP_ITERATION_FINISH_3 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_FINISH_3_DIGIT_2, BOOST_PP_ITERATION_FINISH_3_DIGIT_1)
+# if NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_3
+#    define NDNBOOST_PP_ITERATION_FINISH_3 NDNBOOST_PP_SLOT_CC_3(NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_3, NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_2, NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_1)
+# elif NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_2
+#    define NDNBOOST_PP_ITERATION_FINISH_3 NDNBOOST_PP_SLOT_CC_2(NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_2, NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_1)
 # else
-#    define BOOST_PP_ITERATION_FINISH_3 BOOST_PP_ITERATION_FINISH_3_DIGIT_1
+#    define NDNBOOST_PP_ITERATION_FINISH_3 NDNBOOST_PP_ITERATION_FINISH_3_DIGIT_1
 # endif
diff --git a/include/ndnboost/preprocessor/iteration/detail/bounds/upper4.hpp b/include/ndnboost/preprocessor/iteration/detail/bounds/upper4.hpp
index 820031e..b8610c0 100644
--- a/include/ndnboost/preprocessor/iteration/detail/bounds/upper4.hpp
+++ b/include/ndnboost/preprocessor/iteration/detail/bounds/upper4.hpp
@@ -11,89 +11,89 @@
 #
 # include <ndnboost/preprocessor/slot/detail/shared.hpp>
 #
-# undef BOOST_PP_ITERATION_FINISH_4
+# undef NDNBOOST_PP_ITERATION_FINISH_4
 #
-# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_1
-# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_2
-# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_3
-# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_4
-# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_5
-# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_6
-# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_7
-# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_8
-# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_9
-# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_10
+# undef NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_1
+# undef NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_2
+# undef NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_3
+# undef NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_4
+# undef NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_5
+# undef NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_6
+# undef NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_7
+# undef NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_8
+# undef NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_9
+# undef NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_10
 #
-# if BOOST_PP_SLOT_TEMP_3 == 0
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 0
-# elif BOOST_PP_SLOT_TEMP_3 == 1
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 1
-# elif BOOST_PP_SLOT_TEMP_3 == 2
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 2
-# elif BOOST_PP_SLOT_TEMP_3 == 3
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 3
-# elif BOOST_PP_SLOT_TEMP_3 == 4
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 4
-# elif BOOST_PP_SLOT_TEMP_3 == 5
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 5
-# elif BOOST_PP_SLOT_TEMP_3 == 6
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 6
-# elif BOOST_PP_SLOT_TEMP_3 == 7
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 7
-# elif BOOST_PP_SLOT_TEMP_3 == 8
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 8
-# elif BOOST_PP_SLOT_TEMP_3 == 9
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 9
+# if NDNBOOST_PP_SLOT_TEMP_3 == 0
+#    define NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_3 0
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 1
+#    define NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_3 1
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 2
+#    define NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_3 2
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 3
+#    define NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_3 3
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 4
+#    define NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_3 4
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 5
+#    define NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_3 5
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 6
+#    define NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_3 6
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 7
+#    define NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_3 7
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 8
+#    define NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_3 8
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 9
+#    define NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_3 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_2 == 0
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 0
-# elif BOOST_PP_SLOT_TEMP_2 == 1
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 1
-# elif BOOST_PP_SLOT_TEMP_2 == 2
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 2
-# elif BOOST_PP_SLOT_TEMP_2 == 3
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 3
-# elif BOOST_PP_SLOT_TEMP_2 == 4
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 4
-# elif BOOST_PP_SLOT_TEMP_2 == 5
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 5
-# elif BOOST_PP_SLOT_TEMP_2 == 6
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 6
-# elif BOOST_PP_SLOT_TEMP_2 == 7
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 7
-# elif BOOST_PP_SLOT_TEMP_2 == 8
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 8
-# elif BOOST_PP_SLOT_TEMP_2 == 9
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 9
+# if NDNBOOST_PP_SLOT_TEMP_2 == 0
+#    define NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_2 0
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 1
+#    define NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_2 1
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 2
+#    define NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_2 2
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 3
+#    define NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_2 3
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 4
+#    define NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_2 4
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 5
+#    define NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_2 5
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 6
+#    define NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_2 6
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 7
+#    define NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_2 7
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 8
+#    define NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_2 8
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 9
+#    define NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_2 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_1 == 0
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 0
-# elif BOOST_PP_SLOT_TEMP_1 == 1
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 1
-# elif BOOST_PP_SLOT_TEMP_1 == 2
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 2
-# elif BOOST_PP_SLOT_TEMP_1 == 3
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 3
-# elif BOOST_PP_SLOT_TEMP_1 == 4
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 4
-# elif BOOST_PP_SLOT_TEMP_1 == 5
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 5
-# elif BOOST_PP_SLOT_TEMP_1 == 6
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 6
-# elif BOOST_PP_SLOT_TEMP_1 == 7
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 7
-# elif BOOST_PP_SLOT_TEMP_1 == 8
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 8
-# elif BOOST_PP_SLOT_TEMP_1 == 9
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 9
+# if NDNBOOST_PP_SLOT_TEMP_1 == 0
+#    define NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_1 0
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 1
+#    define NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_1 1
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 2
+#    define NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_1 2
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 3
+#    define NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_1 3
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 4
+#    define NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_1 4
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 5
+#    define NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_1 5
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 6
+#    define NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_1 6
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 7
+#    define NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_1 7
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 8
+#    define NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_1 8
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 9
+#    define NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_1 9
 # endif
 #
-# if BOOST_PP_ITERATION_FINISH_4_DIGIT_3
-#    define BOOST_PP_ITERATION_FINISH_4 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_FINISH_4_DIGIT_3, BOOST_PP_ITERATION_FINISH_4_DIGIT_2, BOOST_PP_ITERATION_FINISH_4_DIGIT_1)
-# elif BOOST_PP_ITERATION_FINISH_4_DIGIT_2
-#    define BOOST_PP_ITERATION_FINISH_4 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_FINISH_4_DIGIT_2, BOOST_PP_ITERATION_FINISH_4_DIGIT_1)
+# if NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_3
+#    define NDNBOOST_PP_ITERATION_FINISH_4 NDNBOOST_PP_SLOT_CC_3(NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_3, NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_2, NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_1)
+# elif NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_2
+#    define NDNBOOST_PP_ITERATION_FINISH_4 NDNBOOST_PP_SLOT_CC_2(NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_2, NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_1)
 # else
-#    define BOOST_PP_ITERATION_FINISH_4 BOOST_PP_ITERATION_FINISH_4_DIGIT_1
+#    define NDNBOOST_PP_ITERATION_FINISH_4 NDNBOOST_PP_ITERATION_FINISH_4_DIGIT_1
 # endif
diff --git a/include/ndnboost/preprocessor/iteration/detail/bounds/upper5.hpp b/include/ndnboost/preprocessor/iteration/detail/bounds/upper5.hpp
index 6cd5e2a..d787c7f 100644
--- a/include/ndnboost/preprocessor/iteration/detail/bounds/upper5.hpp
+++ b/include/ndnboost/preprocessor/iteration/detail/bounds/upper5.hpp
@@ -11,89 +11,89 @@
 #
 # include <ndnboost/preprocessor/slot/detail/shared.hpp>
 #
-# undef BOOST_PP_ITERATION_FINISH_5
+# undef NDNBOOST_PP_ITERATION_FINISH_5
 #
-# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_1
-# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_2
-# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_3
-# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_4
-# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_5
-# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_6
-# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_7
-# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_8
-# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_9
-# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_10
+# undef NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_1
+# undef NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_2
+# undef NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_3
+# undef NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_4
+# undef NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_5
+# undef NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_6
+# undef NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_7
+# undef NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_8
+# undef NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_9
+# undef NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_10
 #
-# if BOOST_PP_SLOT_TEMP_3 == 0
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 0
-# elif BOOST_PP_SLOT_TEMP_3 == 1
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 1
-# elif BOOST_PP_SLOT_TEMP_3 == 2
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 2
-# elif BOOST_PP_SLOT_TEMP_3 == 3
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 3
-# elif BOOST_PP_SLOT_TEMP_3 == 4
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 4
-# elif BOOST_PP_SLOT_TEMP_3 == 5
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 5
-# elif BOOST_PP_SLOT_TEMP_3 == 6
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 6
-# elif BOOST_PP_SLOT_TEMP_3 == 7
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 7
-# elif BOOST_PP_SLOT_TEMP_3 == 8
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 8
-# elif BOOST_PP_SLOT_TEMP_3 == 9
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 9
+# if NDNBOOST_PP_SLOT_TEMP_3 == 0
+#    define NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_3 0
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 1
+#    define NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_3 1
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 2
+#    define NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_3 2
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 3
+#    define NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_3 3
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 4
+#    define NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_3 4
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 5
+#    define NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_3 5
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 6
+#    define NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_3 6
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 7
+#    define NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_3 7
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 8
+#    define NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_3 8
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 9
+#    define NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_3 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_2 == 0
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 0
-# elif BOOST_PP_SLOT_TEMP_2 == 1
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 1
-# elif BOOST_PP_SLOT_TEMP_2 == 2
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 2
-# elif BOOST_PP_SLOT_TEMP_2 == 3
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 3
-# elif BOOST_PP_SLOT_TEMP_2 == 4
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 4
-# elif BOOST_PP_SLOT_TEMP_2 == 5
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 5
-# elif BOOST_PP_SLOT_TEMP_2 == 6
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 6
-# elif BOOST_PP_SLOT_TEMP_2 == 7
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 7
-# elif BOOST_PP_SLOT_TEMP_2 == 8
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 8
-# elif BOOST_PP_SLOT_TEMP_2 == 9
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 9
+# if NDNBOOST_PP_SLOT_TEMP_2 == 0
+#    define NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_2 0
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 1
+#    define NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_2 1
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 2
+#    define NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_2 2
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 3
+#    define NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_2 3
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 4
+#    define NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_2 4
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 5
+#    define NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_2 5
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 6
+#    define NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_2 6
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 7
+#    define NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_2 7
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 8
+#    define NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_2 8
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 9
+#    define NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_2 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_1 == 0
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 0
-# elif BOOST_PP_SLOT_TEMP_1 == 1
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 1
-# elif BOOST_PP_SLOT_TEMP_1 == 2
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 2
-# elif BOOST_PP_SLOT_TEMP_1 == 3
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 3
-# elif BOOST_PP_SLOT_TEMP_1 == 4
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 4
-# elif BOOST_PP_SLOT_TEMP_1 == 5
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 5
-# elif BOOST_PP_SLOT_TEMP_1 == 6
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 6
-# elif BOOST_PP_SLOT_TEMP_1 == 7
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 7
-# elif BOOST_PP_SLOT_TEMP_1 == 8
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 8
-# elif BOOST_PP_SLOT_TEMP_1 == 9
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 9
+# if NDNBOOST_PP_SLOT_TEMP_1 == 0
+#    define NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_1 0
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 1
+#    define NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_1 1
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 2
+#    define NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_1 2
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 3
+#    define NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_1 3
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 4
+#    define NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_1 4
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 5
+#    define NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_1 5
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 6
+#    define NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_1 6
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 7
+#    define NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_1 7
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 8
+#    define NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_1 8
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 9
+#    define NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_1 9
 # endif
 #
-# if BOOST_PP_ITERATION_FINISH_5_DIGIT_3
-#    define BOOST_PP_ITERATION_FINISH_5 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_FINISH_5_DIGIT_3, BOOST_PP_ITERATION_FINISH_5_DIGIT_2, BOOST_PP_ITERATION_FINISH_5_DIGIT_1)
-# elif BOOST_PP_ITERATION_FINISH_5_DIGIT_2
-#    define BOOST_PP_ITERATION_FINISH_5 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_FINISH_5_DIGIT_2, BOOST_PP_ITERATION_FINISH_5_DIGIT_1)
+# if NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_3
+#    define NDNBOOST_PP_ITERATION_FINISH_5 NDNBOOST_PP_SLOT_CC_3(NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_3, NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_2, NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_1)
+# elif NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_2
+#    define NDNBOOST_PP_ITERATION_FINISH_5 NDNBOOST_PP_SLOT_CC_2(NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_2, NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_1)
 # else
-#    define BOOST_PP_ITERATION_FINISH_5 BOOST_PP_ITERATION_FINISH_5_DIGIT_1
+#    define NDNBOOST_PP_ITERATION_FINISH_5 NDNBOOST_PP_ITERATION_FINISH_5_DIGIT_1
 # endif
diff --git a/include/ndnboost/preprocessor/iteration/detail/finish.hpp b/include/ndnboost/preprocessor/iteration/detail/finish.hpp
index bcd6ca9..738172c 100644
--- a/include/ndnboost/preprocessor/iteration/detail/finish.hpp
+++ b/include/ndnboost/preprocessor/iteration/detail/finish.hpp
@@ -11,89 +11,89 @@
 #
 # include <ndnboost/preprocessor/slot/detail/shared.hpp>
 #
-# undef BOOST_PP_LOCAL_FE
+# undef NDNBOOST_PP_LOCAL_FE
 #
-# undef BOOST_PP_LOCAL_FE_DIGIT_1
-# undef BOOST_PP_LOCAL_FE_DIGIT_2
-# undef BOOST_PP_LOCAL_FE_DIGIT_3
-# undef BOOST_PP_LOCAL_FE_DIGIT_4
-# undef BOOST_PP_LOCAL_FE_DIGIT_5
-# undef BOOST_PP_LOCAL_FE_DIGIT_6
-# undef BOOST_PP_LOCAL_FE_DIGIT_7
-# undef BOOST_PP_LOCAL_FE_DIGIT_8
-# undef BOOST_PP_LOCAL_FE_DIGIT_9
-# undef BOOST_PP_LOCAL_FE_DIGIT_10
+# undef NDNBOOST_PP_LOCAL_FE_DIGIT_1
+# undef NDNBOOST_PP_LOCAL_FE_DIGIT_2
+# undef NDNBOOST_PP_LOCAL_FE_DIGIT_3
+# undef NDNBOOST_PP_LOCAL_FE_DIGIT_4
+# undef NDNBOOST_PP_LOCAL_FE_DIGIT_5
+# undef NDNBOOST_PP_LOCAL_FE_DIGIT_6
+# undef NDNBOOST_PP_LOCAL_FE_DIGIT_7
+# undef NDNBOOST_PP_LOCAL_FE_DIGIT_8
+# undef NDNBOOST_PP_LOCAL_FE_DIGIT_9
+# undef NDNBOOST_PP_LOCAL_FE_DIGIT_10
 #
-# if BOOST_PP_SLOT_TEMP_3 == 0
-#    define BOOST_PP_LOCAL_FE_DIGIT_3 0
-# elif BOOST_PP_SLOT_TEMP_3 == 1
-#    define BOOST_PP_LOCAL_FE_DIGIT_3 1
-# elif BOOST_PP_SLOT_TEMP_3 == 2
-#    define BOOST_PP_LOCAL_FE_DIGIT_3 2
-# elif BOOST_PP_SLOT_TEMP_3 == 3
-#    define BOOST_PP_LOCAL_FE_DIGIT_3 3
-# elif BOOST_PP_SLOT_TEMP_3 == 4
-#    define BOOST_PP_LOCAL_FE_DIGIT_3 4
-# elif BOOST_PP_SLOT_TEMP_3 == 5
-#    define BOOST_PP_LOCAL_FE_DIGIT_3 5
-# elif BOOST_PP_SLOT_TEMP_3 == 6
-#    define BOOST_PP_LOCAL_FE_DIGIT_3 6
-# elif BOOST_PP_SLOT_TEMP_3 == 7
-#    define BOOST_PP_LOCAL_FE_DIGIT_3 7
-# elif BOOST_PP_SLOT_TEMP_3 == 8
-#    define BOOST_PP_LOCAL_FE_DIGIT_3 8
-# elif BOOST_PP_SLOT_TEMP_3 == 9
-#    define BOOST_PP_LOCAL_FE_DIGIT_3 9
+# if NDNBOOST_PP_SLOT_TEMP_3 == 0
+#    define NDNBOOST_PP_LOCAL_FE_DIGIT_3 0
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 1
+#    define NDNBOOST_PP_LOCAL_FE_DIGIT_3 1
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 2
+#    define NDNBOOST_PP_LOCAL_FE_DIGIT_3 2
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 3
+#    define NDNBOOST_PP_LOCAL_FE_DIGIT_3 3
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 4
+#    define NDNBOOST_PP_LOCAL_FE_DIGIT_3 4
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 5
+#    define NDNBOOST_PP_LOCAL_FE_DIGIT_3 5
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 6
+#    define NDNBOOST_PP_LOCAL_FE_DIGIT_3 6
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 7
+#    define NDNBOOST_PP_LOCAL_FE_DIGIT_3 7
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 8
+#    define NDNBOOST_PP_LOCAL_FE_DIGIT_3 8
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 9
+#    define NDNBOOST_PP_LOCAL_FE_DIGIT_3 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_2 == 0
-#    define BOOST_PP_LOCAL_FE_DIGIT_2 0
-# elif BOOST_PP_SLOT_TEMP_2 == 1
-#    define BOOST_PP_LOCAL_FE_DIGIT_2 1
-# elif BOOST_PP_SLOT_TEMP_2 == 2
-#    define BOOST_PP_LOCAL_FE_DIGIT_2 2
-# elif BOOST_PP_SLOT_TEMP_2 == 3
-#    define BOOST_PP_LOCAL_FE_DIGIT_2 3
-# elif BOOST_PP_SLOT_TEMP_2 == 4
-#    define BOOST_PP_LOCAL_FE_DIGIT_2 4
-# elif BOOST_PP_SLOT_TEMP_2 == 5
-#    define BOOST_PP_LOCAL_FE_DIGIT_2 5
-# elif BOOST_PP_SLOT_TEMP_2 == 6
-#    define BOOST_PP_LOCAL_FE_DIGIT_2 6
-# elif BOOST_PP_SLOT_TEMP_2 == 7
-#    define BOOST_PP_LOCAL_FE_DIGIT_2 7
-# elif BOOST_PP_SLOT_TEMP_2 == 8
-#    define BOOST_PP_LOCAL_FE_DIGIT_2 8
-# elif BOOST_PP_SLOT_TEMP_2 == 9
-#    define BOOST_PP_LOCAL_FE_DIGIT_2 9
+# if NDNBOOST_PP_SLOT_TEMP_2 == 0
+#    define NDNBOOST_PP_LOCAL_FE_DIGIT_2 0
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 1
+#    define NDNBOOST_PP_LOCAL_FE_DIGIT_2 1
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 2
+#    define NDNBOOST_PP_LOCAL_FE_DIGIT_2 2
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 3
+#    define NDNBOOST_PP_LOCAL_FE_DIGIT_2 3
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 4
+#    define NDNBOOST_PP_LOCAL_FE_DIGIT_2 4
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 5
+#    define NDNBOOST_PP_LOCAL_FE_DIGIT_2 5
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 6
+#    define NDNBOOST_PP_LOCAL_FE_DIGIT_2 6
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 7
+#    define NDNBOOST_PP_LOCAL_FE_DIGIT_2 7
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 8
+#    define NDNBOOST_PP_LOCAL_FE_DIGIT_2 8
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 9
+#    define NDNBOOST_PP_LOCAL_FE_DIGIT_2 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_1 == 0
-#    define BOOST_PP_LOCAL_FE_DIGIT_1 0
-# elif BOOST_PP_SLOT_TEMP_1 == 1
-#    define BOOST_PP_LOCAL_FE_DIGIT_1 1
-# elif BOOST_PP_SLOT_TEMP_1 == 2
-#    define BOOST_PP_LOCAL_FE_DIGIT_1 2
-# elif BOOST_PP_SLOT_TEMP_1 == 3
-#    define BOOST_PP_LOCAL_FE_DIGIT_1 3
-# elif BOOST_PP_SLOT_TEMP_1 == 4
-#    define BOOST_PP_LOCAL_FE_DIGIT_1 4
-# elif BOOST_PP_SLOT_TEMP_1 == 5
-#    define BOOST_PP_LOCAL_FE_DIGIT_1 5
-# elif BOOST_PP_SLOT_TEMP_1 == 6
-#    define BOOST_PP_LOCAL_FE_DIGIT_1 6
-# elif BOOST_PP_SLOT_TEMP_1 == 7
-#    define BOOST_PP_LOCAL_FE_DIGIT_1 7
-# elif BOOST_PP_SLOT_TEMP_1 == 8
-#    define BOOST_PP_LOCAL_FE_DIGIT_1 8
-# elif BOOST_PP_SLOT_TEMP_1 == 9
-#    define BOOST_PP_LOCAL_FE_DIGIT_1 9
+# if NDNBOOST_PP_SLOT_TEMP_1 == 0
+#    define NDNBOOST_PP_LOCAL_FE_DIGIT_1 0
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 1
+#    define NDNBOOST_PP_LOCAL_FE_DIGIT_1 1
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 2
+#    define NDNBOOST_PP_LOCAL_FE_DIGIT_1 2
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 3
+#    define NDNBOOST_PP_LOCAL_FE_DIGIT_1 3
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 4
+#    define NDNBOOST_PP_LOCAL_FE_DIGIT_1 4
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 5
+#    define NDNBOOST_PP_LOCAL_FE_DIGIT_1 5
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 6
+#    define NDNBOOST_PP_LOCAL_FE_DIGIT_1 6
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 7
+#    define NDNBOOST_PP_LOCAL_FE_DIGIT_1 7
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 8
+#    define NDNBOOST_PP_LOCAL_FE_DIGIT_1 8
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 9
+#    define NDNBOOST_PP_LOCAL_FE_DIGIT_1 9
 # endif
 #
-# if BOOST_PP_LOCAL_FE_DIGIT_3
-#    define BOOST_PP_LOCAL_FE() BOOST_PP_SLOT_CC_3(BOOST_PP_LOCAL_FE_DIGIT_3, BOOST_PP_LOCAL_FE_DIGIT_2, BOOST_PP_LOCAL_FE_DIGIT_1)
-# elif BOOST_PP_LOCAL_FE_DIGIT_2
-#    define BOOST_PP_LOCAL_FE() BOOST_PP_SLOT_CC_2(BOOST_PP_LOCAL_FE_DIGIT_2, BOOST_PP_LOCAL_FE_DIGIT_1)
+# if NDNBOOST_PP_LOCAL_FE_DIGIT_3
+#    define NDNBOOST_PP_LOCAL_FE() NDNBOOST_PP_SLOT_CC_3(NDNBOOST_PP_LOCAL_FE_DIGIT_3, NDNBOOST_PP_LOCAL_FE_DIGIT_2, NDNBOOST_PP_LOCAL_FE_DIGIT_1)
+# elif NDNBOOST_PP_LOCAL_FE_DIGIT_2
+#    define NDNBOOST_PP_LOCAL_FE() NDNBOOST_PP_SLOT_CC_2(NDNBOOST_PP_LOCAL_FE_DIGIT_2, NDNBOOST_PP_LOCAL_FE_DIGIT_1)
 # else
-#    define BOOST_PP_LOCAL_FE() BOOST_PP_LOCAL_FE_DIGIT_1
+#    define NDNBOOST_PP_LOCAL_FE() NDNBOOST_PP_LOCAL_FE_DIGIT_1
 # endif
diff --git a/include/ndnboost/preprocessor/iteration/detail/iter/forward1.hpp b/include/ndnboost/preprocessor/iteration/detail/iter/forward1.hpp
index 542e1c3..dd29460 100644
--- a/include/ndnboost/preprocessor/iteration/detail/iter/forward1.hpp
+++ b/include/ndnboost/preprocessor/iteration/detail/iter/forward1.hpp
@@ -9,1334 +9,1334 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# if defined(BOOST_PP_ITERATION_LIMITS)
-#    if !defined(BOOST_PP_FILENAME_1)
-#        error BOOST_PP_ERROR:  depth #1 filename is not defined
+# if defined(NDNBOOST_PP_ITERATION_LIMITS)
+#    if !defined(NDNBOOST_PP_FILENAME_1)
+#        error NDNBOOST_PP_ERROR:  depth #1 filename is not defined
 #    endif
-#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_ITERATION_LIMITS)
+#    define NDNBOOST_PP_VALUE NDNBOOST_PP_TUPLE_ELEM(2, 0, NDNBOOST_PP_ITERATION_LIMITS)
 #    include <ndnboost/preprocessor/iteration/detail/bounds/lower1.hpp>
-#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS)
+#    define NDNBOOST_PP_VALUE NDNBOOST_PP_TUPLE_ELEM(2, 1, NDNBOOST_PP_ITERATION_LIMITS)
 #    include <ndnboost/preprocessor/iteration/detail/bounds/upper1.hpp>
-#    define BOOST_PP_ITERATION_FLAGS_1() 0
-#    undef BOOST_PP_ITERATION_LIMITS
-# elif defined(BOOST_PP_ITERATION_PARAMS_1)
-#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_1)
+#    define NDNBOOST_PP_ITERATION_FLAGS_1() 0
+#    undef NDNBOOST_PP_ITERATION_LIMITS
+# elif defined(NDNBOOST_PP_ITERATION_PARAMS_1)
+#    define NDNBOOST_PP_VALUE NDNBOOST_PP_ARRAY_ELEM(0, NDNBOOST_PP_ITERATION_PARAMS_1)
 #    include <ndnboost/preprocessor/iteration/detail/bounds/lower1.hpp>
-#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ITERATION_PARAMS_1)
+#    define NDNBOOST_PP_VALUE NDNBOOST_PP_ARRAY_ELEM(1, NDNBOOST_PP_ITERATION_PARAMS_1)
 #    include <ndnboost/preprocessor/iteration/detail/bounds/upper1.hpp>
-#    define BOOST_PP_FILENAME_1 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_1)
-#    if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_1) >= 4
-#        define BOOST_PP_ITERATION_FLAGS_1() BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_1)
+#    define NDNBOOST_PP_FILENAME_1 NDNBOOST_PP_ARRAY_ELEM(2, NDNBOOST_PP_ITERATION_PARAMS_1)
+#    if NDNBOOST_PP_ARRAY_SIZE(NDNBOOST_PP_ITERATION_PARAMS_1) >= 4
+#        define NDNBOOST_PP_ITERATION_FLAGS_1() NDNBOOST_PP_ARRAY_ELEM(3, NDNBOOST_PP_ITERATION_PARAMS_1)
 #    else
-#        define BOOST_PP_ITERATION_FLAGS_1() 0
+#        define NDNBOOST_PP_ITERATION_FLAGS_1() 0
 #    endif
 # else
-#    error BOOST_PP_ERROR:  depth #1 iteration boundaries or filename not defined
+#    error NDNBOOST_PP_ERROR:  depth #1 iteration boundaries or filename not defined
 # endif
 #
-# undef BOOST_PP_ITERATION_DEPTH
-# define BOOST_PP_ITERATION_DEPTH() 1
+# undef NDNBOOST_PP_ITERATION_DEPTH
+# define NDNBOOST_PP_ITERATION_DEPTH() 1
 #
-# define BOOST_PP_IS_ITERATING 1
+# define NDNBOOST_PP_IS_ITERATING 1
 #
-# if (BOOST_PP_ITERATION_START_1) > (BOOST_PP_ITERATION_FINISH_1)
+# if (NDNBOOST_PP_ITERATION_START_1) > (NDNBOOST_PP_ITERATION_FINISH_1)
 #    include <ndnboost/preprocessor/iteration/detail/iter/reverse1.hpp>
 # else
-#    if BOOST_PP_ITERATION_START_1 <= 0 && BOOST_PP_ITERATION_FINISH_1 >= 0
-#        define BOOST_PP_ITERATION_1 0
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 0 && NDNBOOST_PP_ITERATION_FINISH_1 >= 0
+#        define NDNBOOST_PP_ITERATION_1 0
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 1 && BOOST_PP_ITERATION_FINISH_1 >= 1
-#        define BOOST_PP_ITERATION_1 1
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 1 && NDNBOOST_PP_ITERATION_FINISH_1 >= 1
+#        define NDNBOOST_PP_ITERATION_1 1
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 2 && BOOST_PP_ITERATION_FINISH_1 >= 2
-#        define BOOST_PP_ITERATION_1 2
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 2 && NDNBOOST_PP_ITERATION_FINISH_1 >= 2
+#        define NDNBOOST_PP_ITERATION_1 2
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 3 && BOOST_PP_ITERATION_FINISH_1 >= 3
-#        define BOOST_PP_ITERATION_1 3
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 3 && NDNBOOST_PP_ITERATION_FINISH_1 >= 3
+#        define NDNBOOST_PP_ITERATION_1 3
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 4 && BOOST_PP_ITERATION_FINISH_1 >= 4
-#        define BOOST_PP_ITERATION_1 4
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 4 && NDNBOOST_PP_ITERATION_FINISH_1 >= 4
+#        define NDNBOOST_PP_ITERATION_1 4
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 5 && BOOST_PP_ITERATION_FINISH_1 >= 5
-#        define BOOST_PP_ITERATION_1 5
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 5 && NDNBOOST_PP_ITERATION_FINISH_1 >= 5
+#        define NDNBOOST_PP_ITERATION_1 5
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 6 && BOOST_PP_ITERATION_FINISH_1 >= 6
-#        define BOOST_PP_ITERATION_1 6
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 6 && NDNBOOST_PP_ITERATION_FINISH_1 >= 6
+#        define NDNBOOST_PP_ITERATION_1 6
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 7 && BOOST_PP_ITERATION_FINISH_1 >= 7
-#        define BOOST_PP_ITERATION_1 7
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 7 && NDNBOOST_PP_ITERATION_FINISH_1 >= 7
+#        define NDNBOOST_PP_ITERATION_1 7
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 8 && BOOST_PP_ITERATION_FINISH_1 >= 8
-#        define BOOST_PP_ITERATION_1 8
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 8 && NDNBOOST_PP_ITERATION_FINISH_1 >= 8
+#        define NDNBOOST_PP_ITERATION_1 8
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 9 && BOOST_PP_ITERATION_FINISH_1 >= 9
-#        define BOOST_PP_ITERATION_1 9
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 9 && NDNBOOST_PP_ITERATION_FINISH_1 >= 9
+#        define NDNBOOST_PP_ITERATION_1 9
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 10 && BOOST_PP_ITERATION_FINISH_1 >= 10
-#        define BOOST_PP_ITERATION_1 10
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 10 && NDNBOOST_PP_ITERATION_FINISH_1 >= 10
+#        define NDNBOOST_PP_ITERATION_1 10
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 11 && BOOST_PP_ITERATION_FINISH_1 >= 11
-#        define BOOST_PP_ITERATION_1 11
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 11 && NDNBOOST_PP_ITERATION_FINISH_1 >= 11
+#        define NDNBOOST_PP_ITERATION_1 11
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 12 && BOOST_PP_ITERATION_FINISH_1 >= 12
-#        define BOOST_PP_ITERATION_1 12
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 12 && NDNBOOST_PP_ITERATION_FINISH_1 >= 12
+#        define NDNBOOST_PP_ITERATION_1 12
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 13 && BOOST_PP_ITERATION_FINISH_1 >= 13
-#        define BOOST_PP_ITERATION_1 13
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 13 && NDNBOOST_PP_ITERATION_FINISH_1 >= 13
+#        define NDNBOOST_PP_ITERATION_1 13
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 14 && BOOST_PP_ITERATION_FINISH_1 >= 14
-#        define BOOST_PP_ITERATION_1 14
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 14 && NDNBOOST_PP_ITERATION_FINISH_1 >= 14
+#        define NDNBOOST_PP_ITERATION_1 14
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 15 && BOOST_PP_ITERATION_FINISH_1 >= 15
-#        define BOOST_PP_ITERATION_1 15
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 15 && NDNBOOST_PP_ITERATION_FINISH_1 >= 15
+#        define NDNBOOST_PP_ITERATION_1 15
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 16 && BOOST_PP_ITERATION_FINISH_1 >= 16
-#        define BOOST_PP_ITERATION_1 16
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 16 && NDNBOOST_PP_ITERATION_FINISH_1 >= 16
+#        define NDNBOOST_PP_ITERATION_1 16
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 17 && BOOST_PP_ITERATION_FINISH_1 >= 17
-#        define BOOST_PP_ITERATION_1 17
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 17 && NDNBOOST_PP_ITERATION_FINISH_1 >= 17
+#        define NDNBOOST_PP_ITERATION_1 17
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 18 && BOOST_PP_ITERATION_FINISH_1 >= 18
-#        define BOOST_PP_ITERATION_1 18
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 18 && NDNBOOST_PP_ITERATION_FINISH_1 >= 18
+#        define NDNBOOST_PP_ITERATION_1 18
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 19 && BOOST_PP_ITERATION_FINISH_1 >= 19
-#        define BOOST_PP_ITERATION_1 19
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 19 && NDNBOOST_PP_ITERATION_FINISH_1 >= 19
+#        define NDNBOOST_PP_ITERATION_1 19
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 20 && BOOST_PP_ITERATION_FINISH_1 >= 20
-#        define BOOST_PP_ITERATION_1 20
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 20 && NDNBOOST_PP_ITERATION_FINISH_1 >= 20
+#        define NDNBOOST_PP_ITERATION_1 20
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 21 && BOOST_PP_ITERATION_FINISH_1 >= 21
-#        define BOOST_PP_ITERATION_1 21
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 21 && NDNBOOST_PP_ITERATION_FINISH_1 >= 21
+#        define NDNBOOST_PP_ITERATION_1 21
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 22 && BOOST_PP_ITERATION_FINISH_1 >= 22
-#        define BOOST_PP_ITERATION_1 22
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 22 && NDNBOOST_PP_ITERATION_FINISH_1 >= 22
+#        define NDNBOOST_PP_ITERATION_1 22
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 23 && BOOST_PP_ITERATION_FINISH_1 >= 23
-#        define BOOST_PP_ITERATION_1 23
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 23 && NDNBOOST_PP_ITERATION_FINISH_1 >= 23
+#        define NDNBOOST_PP_ITERATION_1 23
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 24 && BOOST_PP_ITERATION_FINISH_1 >= 24
-#        define BOOST_PP_ITERATION_1 24
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 24 && NDNBOOST_PP_ITERATION_FINISH_1 >= 24
+#        define NDNBOOST_PP_ITERATION_1 24
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 25 && BOOST_PP_ITERATION_FINISH_1 >= 25
-#        define BOOST_PP_ITERATION_1 25
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 25 && NDNBOOST_PP_ITERATION_FINISH_1 >= 25
+#        define NDNBOOST_PP_ITERATION_1 25
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 26 && BOOST_PP_ITERATION_FINISH_1 >= 26
-#        define BOOST_PP_ITERATION_1 26
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 26 && NDNBOOST_PP_ITERATION_FINISH_1 >= 26
+#        define NDNBOOST_PP_ITERATION_1 26
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 27 && BOOST_PP_ITERATION_FINISH_1 >= 27
-#        define BOOST_PP_ITERATION_1 27
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 27 && NDNBOOST_PP_ITERATION_FINISH_1 >= 27
+#        define NDNBOOST_PP_ITERATION_1 27
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 28 && BOOST_PP_ITERATION_FINISH_1 >= 28
-#        define BOOST_PP_ITERATION_1 28
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 28 && NDNBOOST_PP_ITERATION_FINISH_1 >= 28
+#        define NDNBOOST_PP_ITERATION_1 28
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 29 && BOOST_PP_ITERATION_FINISH_1 >= 29
-#        define BOOST_PP_ITERATION_1 29
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 29 && NDNBOOST_PP_ITERATION_FINISH_1 >= 29
+#        define NDNBOOST_PP_ITERATION_1 29
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 30 && BOOST_PP_ITERATION_FINISH_1 >= 30
-#        define BOOST_PP_ITERATION_1 30
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 30 && NDNBOOST_PP_ITERATION_FINISH_1 >= 30
+#        define NDNBOOST_PP_ITERATION_1 30
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 31 && BOOST_PP_ITERATION_FINISH_1 >= 31
-#        define BOOST_PP_ITERATION_1 31
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 31 && NDNBOOST_PP_ITERATION_FINISH_1 >= 31
+#        define NDNBOOST_PP_ITERATION_1 31
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 32 && BOOST_PP_ITERATION_FINISH_1 >= 32
-#        define BOOST_PP_ITERATION_1 32
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 32 && NDNBOOST_PP_ITERATION_FINISH_1 >= 32
+#        define NDNBOOST_PP_ITERATION_1 32
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 33 && BOOST_PP_ITERATION_FINISH_1 >= 33
-#        define BOOST_PP_ITERATION_1 33
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 33 && NDNBOOST_PP_ITERATION_FINISH_1 >= 33
+#        define NDNBOOST_PP_ITERATION_1 33
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 34 && BOOST_PP_ITERATION_FINISH_1 >= 34
-#        define BOOST_PP_ITERATION_1 34
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 34 && NDNBOOST_PP_ITERATION_FINISH_1 >= 34
+#        define NDNBOOST_PP_ITERATION_1 34
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 35 && BOOST_PP_ITERATION_FINISH_1 >= 35
-#        define BOOST_PP_ITERATION_1 35
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 35 && NDNBOOST_PP_ITERATION_FINISH_1 >= 35
+#        define NDNBOOST_PP_ITERATION_1 35
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 36 && BOOST_PP_ITERATION_FINISH_1 >= 36
-#        define BOOST_PP_ITERATION_1 36
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 36 && NDNBOOST_PP_ITERATION_FINISH_1 >= 36
+#        define NDNBOOST_PP_ITERATION_1 36
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 37 && BOOST_PP_ITERATION_FINISH_1 >= 37
-#        define BOOST_PP_ITERATION_1 37
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 37 && NDNBOOST_PP_ITERATION_FINISH_1 >= 37
+#        define NDNBOOST_PP_ITERATION_1 37
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 38 && BOOST_PP_ITERATION_FINISH_1 >= 38
-#        define BOOST_PP_ITERATION_1 38
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 38 && NDNBOOST_PP_ITERATION_FINISH_1 >= 38
+#        define NDNBOOST_PP_ITERATION_1 38
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 39 && BOOST_PP_ITERATION_FINISH_1 >= 39
-#        define BOOST_PP_ITERATION_1 39
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 39 && NDNBOOST_PP_ITERATION_FINISH_1 >= 39
+#        define NDNBOOST_PP_ITERATION_1 39
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 40 && BOOST_PP_ITERATION_FINISH_1 >= 40
-#        define BOOST_PP_ITERATION_1 40
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 40 && NDNBOOST_PP_ITERATION_FINISH_1 >= 40
+#        define NDNBOOST_PP_ITERATION_1 40
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 41 && BOOST_PP_ITERATION_FINISH_1 >= 41
-#        define BOOST_PP_ITERATION_1 41
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 41 && NDNBOOST_PP_ITERATION_FINISH_1 >= 41
+#        define NDNBOOST_PP_ITERATION_1 41
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 42 && BOOST_PP_ITERATION_FINISH_1 >= 42
-#        define BOOST_PP_ITERATION_1 42
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 42 && NDNBOOST_PP_ITERATION_FINISH_1 >= 42
+#        define NDNBOOST_PP_ITERATION_1 42
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 43 && BOOST_PP_ITERATION_FINISH_1 >= 43
-#        define BOOST_PP_ITERATION_1 43
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 43 && NDNBOOST_PP_ITERATION_FINISH_1 >= 43
+#        define NDNBOOST_PP_ITERATION_1 43
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 44 && BOOST_PP_ITERATION_FINISH_1 >= 44
-#        define BOOST_PP_ITERATION_1 44
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 44 && NDNBOOST_PP_ITERATION_FINISH_1 >= 44
+#        define NDNBOOST_PP_ITERATION_1 44
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 45 && BOOST_PP_ITERATION_FINISH_1 >= 45
-#        define BOOST_PP_ITERATION_1 45
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 45 && NDNBOOST_PP_ITERATION_FINISH_1 >= 45
+#        define NDNBOOST_PP_ITERATION_1 45
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 46 && BOOST_PP_ITERATION_FINISH_1 >= 46
-#        define BOOST_PP_ITERATION_1 46
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 46 && NDNBOOST_PP_ITERATION_FINISH_1 >= 46
+#        define NDNBOOST_PP_ITERATION_1 46
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 47 && BOOST_PP_ITERATION_FINISH_1 >= 47
-#        define BOOST_PP_ITERATION_1 47
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 47 && NDNBOOST_PP_ITERATION_FINISH_1 >= 47
+#        define NDNBOOST_PP_ITERATION_1 47
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 48 && BOOST_PP_ITERATION_FINISH_1 >= 48
-#        define BOOST_PP_ITERATION_1 48
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 48 && NDNBOOST_PP_ITERATION_FINISH_1 >= 48
+#        define NDNBOOST_PP_ITERATION_1 48
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 49 && BOOST_PP_ITERATION_FINISH_1 >= 49
-#        define BOOST_PP_ITERATION_1 49
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 49 && NDNBOOST_PP_ITERATION_FINISH_1 >= 49
+#        define NDNBOOST_PP_ITERATION_1 49
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 50 && BOOST_PP_ITERATION_FINISH_1 >= 50
-#        define BOOST_PP_ITERATION_1 50
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 50 && NDNBOOST_PP_ITERATION_FINISH_1 >= 50
+#        define NDNBOOST_PP_ITERATION_1 50
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 51 && BOOST_PP_ITERATION_FINISH_1 >= 51
-#        define BOOST_PP_ITERATION_1 51
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 51 && NDNBOOST_PP_ITERATION_FINISH_1 >= 51
+#        define NDNBOOST_PP_ITERATION_1 51
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 52 && BOOST_PP_ITERATION_FINISH_1 >= 52
-#        define BOOST_PP_ITERATION_1 52
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 52 && NDNBOOST_PP_ITERATION_FINISH_1 >= 52
+#        define NDNBOOST_PP_ITERATION_1 52
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 53 && BOOST_PP_ITERATION_FINISH_1 >= 53
-#        define BOOST_PP_ITERATION_1 53
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 53 && NDNBOOST_PP_ITERATION_FINISH_1 >= 53
+#        define NDNBOOST_PP_ITERATION_1 53
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 54 && BOOST_PP_ITERATION_FINISH_1 >= 54
-#        define BOOST_PP_ITERATION_1 54
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 54 && NDNBOOST_PP_ITERATION_FINISH_1 >= 54
+#        define NDNBOOST_PP_ITERATION_1 54
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 55 && BOOST_PP_ITERATION_FINISH_1 >= 55
-#        define BOOST_PP_ITERATION_1 55
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 55 && NDNBOOST_PP_ITERATION_FINISH_1 >= 55
+#        define NDNBOOST_PP_ITERATION_1 55
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 56 && BOOST_PP_ITERATION_FINISH_1 >= 56
-#        define BOOST_PP_ITERATION_1 56
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 56 && NDNBOOST_PP_ITERATION_FINISH_1 >= 56
+#        define NDNBOOST_PP_ITERATION_1 56
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 57 && BOOST_PP_ITERATION_FINISH_1 >= 57
-#        define BOOST_PP_ITERATION_1 57
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 57 && NDNBOOST_PP_ITERATION_FINISH_1 >= 57
+#        define NDNBOOST_PP_ITERATION_1 57
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 58 && BOOST_PP_ITERATION_FINISH_1 >= 58
-#        define BOOST_PP_ITERATION_1 58
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 58 && NDNBOOST_PP_ITERATION_FINISH_1 >= 58
+#        define NDNBOOST_PP_ITERATION_1 58
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 59 && BOOST_PP_ITERATION_FINISH_1 >= 59
-#        define BOOST_PP_ITERATION_1 59
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 59 && NDNBOOST_PP_ITERATION_FINISH_1 >= 59
+#        define NDNBOOST_PP_ITERATION_1 59
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 60 && BOOST_PP_ITERATION_FINISH_1 >= 60
-#        define BOOST_PP_ITERATION_1 60
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 60 && NDNBOOST_PP_ITERATION_FINISH_1 >= 60
+#        define NDNBOOST_PP_ITERATION_1 60
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 61 && BOOST_PP_ITERATION_FINISH_1 >= 61
-#        define BOOST_PP_ITERATION_1 61
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 61 && NDNBOOST_PP_ITERATION_FINISH_1 >= 61
+#        define NDNBOOST_PP_ITERATION_1 61
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 62 && BOOST_PP_ITERATION_FINISH_1 >= 62
-#        define BOOST_PP_ITERATION_1 62
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 62 && NDNBOOST_PP_ITERATION_FINISH_1 >= 62
+#        define NDNBOOST_PP_ITERATION_1 62
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 63 && BOOST_PP_ITERATION_FINISH_1 >= 63
-#        define BOOST_PP_ITERATION_1 63
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 63 && NDNBOOST_PP_ITERATION_FINISH_1 >= 63
+#        define NDNBOOST_PP_ITERATION_1 63
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 64 && BOOST_PP_ITERATION_FINISH_1 >= 64
-#        define BOOST_PP_ITERATION_1 64
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 64 && NDNBOOST_PP_ITERATION_FINISH_1 >= 64
+#        define NDNBOOST_PP_ITERATION_1 64
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 65 && BOOST_PP_ITERATION_FINISH_1 >= 65
-#        define BOOST_PP_ITERATION_1 65
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 65 && NDNBOOST_PP_ITERATION_FINISH_1 >= 65
+#        define NDNBOOST_PP_ITERATION_1 65
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 66 && BOOST_PP_ITERATION_FINISH_1 >= 66
-#        define BOOST_PP_ITERATION_1 66
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 66 && NDNBOOST_PP_ITERATION_FINISH_1 >= 66
+#        define NDNBOOST_PP_ITERATION_1 66
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 67 && BOOST_PP_ITERATION_FINISH_1 >= 67
-#        define BOOST_PP_ITERATION_1 67
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 67 && NDNBOOST_PP_ITERATION_FINISH_1 >= 67
+#        define NDNBOOST_PP_ITERATION_1 67
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 68 && BOOST_PP_ITERATION_FINISH_1 >= 68
-#        define BOOST_PP_ITERATION_1 68
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 68 && NDNBOOST_PP_ITERATION_FINISH_1 >= 68
+#        define NDNBOOST_PP_ITERATION_1 68
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 69 && BOOST_PP_ITERATION_FINISH_1 >= 69
-#        define BOOST_PP_ITERATION_1 69
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 69 && NDNBOOST_PP_ITERATION_FINISH_1 >= 69
+#        define NDNBOOST_PP_ITERATION_1 69
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 70 && BOOST_PP_ITERATION_FINISH_1 >= 70
-#        define BOOST_PP_ITERATION_1 70
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 70 && NDNBOOST_PP_ITERATION_FINISH_1 >= 70
+#        define NDNBOOST_PP_ITERATION_1 70
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 71 && BOOST_PP_ITERATION_FINISH_1 >= 71
-#        define BOOST_PP_ITERATION_1 71
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 71 && NDNBOOST_PP_ITERATION_FINISH_1 >= 71
+#        define NDNBOOST_PP_ITERATION_1 71
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 72 && BOOST_PP_ITERATION_FINISH_1 >= 72
-#        define BOOST_PP_ITERATION_1 72
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 72 && NDNBOOST_PP_ITERATION_FINISH_1 >= 72
+#        define NDNBOOST_PP_ITERATION_1 72
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 73 && BOOST_PP_ITERATION_FINISH_1 >= 73
-#        define BOOST_PP_ITERATION_1 73
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 73 && NDNBOOST_PP_ITERATION_FINISH_1 >= 73
+#        define NDNBOOST_PP_ITERATION_1 73
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 74 && BOOST_PP_ITERATION_FINISH_1 >= 74
-#        define BOOST_PP_ITERATION_1 74
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 74 && NDNBOOST_PP_ITERATION_FINISH_1 >= 74
+#        define NDNBOOST_PP_ITERATION_1 74
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 75 && BOOST_PP_ITERATION_FINISH_1 >= 75
-#        define BOOST_PP_ITERATION_1 75
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 75 && NDNBOOST_PP_ITERATION_FINISH_1 >= 75
+#        define NDNBOOST_PP_ITERATION_1 75
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 76 && BOOST_PP_ITERATION_FINISH_1 >= 76
-#        define BOOST_PP_ITERATION_1 76
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 76 && NDNBOOST_PP_ITERATION_FINISH_1 >= 76
+#        define NDNBOOST_PP_ITERATION_1 76
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 77 && BOOST_PP_ITERATION_FINISH_1 >= 77
-#        define BOOST_PP_ITERATION_1 77
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 77 && NDNBOOST_PP_ITERATION_FINISH_1 >= 77
+#        define NDNBOOST_PP_ITERATION_1 77
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 78 && BOOST_PP_ITERATION_FINISH_1 >= 78
-#        define BOOST_PP_ITERATION_1 78
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 78 && NDNBOOST_PP_ITERATION_FINISH_1 >= 78
+#        define NDNBOOST_PP_ITERATION_1 78
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 79 && BOOST_PP_ITERATION_FINISH_1 >= 79
-#        define BOOST_PP_ITERATION_1 79
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 79 && NDNBOOST_PP_ITERATION_FINISH_1 >= 79
+#        define NDNBOOST_PP_ITERATION_1 79
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 80 && BOOST_PP_ITERATION_FINISH_1 >= 80
-#        define BOOST_PP_ITERATION_1 80
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 80 && NDNBOOST_PP_ITERATION_FINISH_1 >= 80
+#        define NDNBOOST_PP_ITERATION_1 80
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 81 && BOOST_PP_ITERATION_FINISH_1 >= 81
-#        define BOOST_PP_ITERATION_1 81
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 81 && NDNBOOST_PP_ITERATION_FINISH_1 >= 81
+#        define NDNBOOST_PP_ITERATION_1 81
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 82 && BOOST_PP_ITERATION_FINISH_1 >= 82
-#        define BOOST_PP_ITERATION_1 82
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 82 && NDNBOOST_PP_ITERATION_FINISH_1 >= 82
+#        define NDNBOOST_PP_ITERATION_1 82
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 83 && BOOST_PP_ITERATION_FINISH_1 >= 83
-#        define BOOST_PP_ITERATION_1 83
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 83 && NDNBOOST_PP_ITERATION_FINISH_1 >= 83
+#        define NDNBOOST_PP_ITERATION_1 83
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 84 && BOOST_PP_ITERATION_FINISH_1 >= 84
-#        define BOOST_PP_ITERATION_1 84
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 84 && NDNBOOST_PP_ITERATION_FINISH_1 >= 84
+#        define NDNBOOST_PP_ITERATION_1 84
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 85 && BOOST_PP_ITERATION_FINISH_1 >= 85
-#        define BOOST_PP_ITERATION_1 85
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 85 && NDNBOOST_PP_ITERATION_FINISH_1 >= 85
+#        define NDNBOOST_PP_ITERATION_1 85
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 86 && BOOST_PP_ITERATION_FINISH_1 >= 86
-#        define BOOST_PP_ITERATION_1 86
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 86 && NDNBOOST_PP_ITERATION_FINISH_1 >= 86
+#        define NDNBOOST_PP_ITERATION_1 86
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 87 && BOOST_PP_ITERATION_FINISH_1 >= 87
-#        define BOOST_PP_ITERATION_1 87
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 87 && NDNBOOST_PP_ITERATION_FINISH_1 >= 87
+#        define NDNBOOST_PP_ITERATION_1 87
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 88 && BOOST_PP_ITERATION_FINISH_1 >= 88
-#        define BOOST_PP_ITERATION_1 88
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 88 && NDNBOOST_PP_ITERATION_FINISH_1 >= 88
+#        define NDNBOOST_PP_ITERATION_1 88
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 89 && BOOST_PP_ITERATION_FINISH_1 >= 89
-#        define BOOST_PP_ITERATION_1 89
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 89 && NDNBOOST_PP_ITERATION_FINISH_1 >= 89
+#        define NDNBOOST_PP_ITERATION_1 89
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 90 && BOOST_PP_ITERATION_FINISH_1 >= 90
-#        define BOOST_PP_ITERATION_1 90
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 90 && NDNBOOST_PP_ITERATION_FINISH_1 >= 90
+#        define NDNBOOST_PP_ITERATION_1 90
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 91 && BOOST_PP_ITERATION_FINISH_1 >= 91
-#        define BOOST_PP_ITERATION_1 91
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 91 && NDNBOOST_PP_ITERATION_FINISH_1 >= 91
+#        define NDNBOOST_PP_ITERATION_1 91
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 92 && BOOST_PP_ITERATION_FINISH_1 >= 92
-#        define BOOST_PP_ITERATION_1 92
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 92 && NDNBOOST_PP_ITERATION_FINISH_1 >= 92
+#        define NDNBOOST_PP_ITERATION_1 92
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 93 && BOOST_PP_ITERATION_FINISH_1 >= 93
-#        define BOOST_PP_ITERATION_1 93
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 93 && NDNBOOST_PP_ITERATION_FINISH_1 >= 93
+#        define NDNBOOST_PP_ITERATION_1 93
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 94 && BOOST_PP_ITERATION_FINISH_1 >= 94
-#        define BOOST_PP_ITERATION_1 94
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 94 && NDNBOOST_PP_ITERATION_FINISH_1 >= 94
+#        define NDNBOOST_PP_ITERATION_1 94
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 95 && BOOST_PP_ITERATION_FINISH_1 >= 95
-#        define BOOST_PP_ITERATION_1 95
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 95 && NDNBOOST_PP_ITERATION_FINISH_1 >= 95
+#        define NDNBOOST_PP_ITERATION_1 95
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 96 && BOOST_PP_ITERATION_FINISH_1 >= 96
-#        define BOOST_PP_ITERATION_1 96
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 96 && NDNBOOST_PP_ITERATION_FINISH_1 >= 96
+#        define NDNBOOST_PP_ITERATION_1 96
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 97 && BOOST_PP_ITERATION_FINISH_1 >= 97
-#        define BOOST_PP_ITERATION_1 97
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 97 && NDNBOOST_PP_ITERATION_FINISH_1 >= 97
+#        define NDNBOOST_PP_ITERATION_1 97
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 98 && BOOST_PP_ITERATION_FINISH_1 >= 98
-#        define BOOST_PP_ITERATION_1 98
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 98 && NDNBOOST_PP_ITERATION_FINISH_1 >= 98
+#        define NDNBOOST_PP_ITERATION_1 98
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 99 && BOOST_PP_ITERATION_FINISH_1 >= 99
-#        define BOOST_PP_ITERATION_1 99
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 99 && NDNBOOST_PP_ITERATION_FINISH_1 >= 99
+#        define NDNBOOST_PP_ITERATION_1 99
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 100 && BOOST_PP_ITERATION_FINISH_1 >= 100
-#        define BOOST_PP_ITERATION_1 100
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 100 && NDNBOOST_PP_ITERATION_FINISH_1 >= 100
+#        define NDNBOOST_PP_ITERATION_1 100
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 101 && BOOST_PP_ITERATION_FINISH_1 >= 101
-#        define BOOST_PP_ITERATION_1 101
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 101 && NDNBOOST_PP_ITERATION_FINISH_1 >= 101
+#        define NDNBOOST_PP_ITERATION_1 101
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 102 && BOOST_PP_ITERATION_FINISH_1 >= 102
-#        define BOOST_PP_ITERATION_1 102
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 102 && NDNBOOST_PP_ITERATION_FINISH_1 >= 102
+#        define NDNBOOST_PP_ITERATION_1 102
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 103 && BOOST_PP_ITERATION_FINISH_1 >= 103
-#        define BOOST_PP_ITERATION_1 103
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 103 && NDNBOOST_PP_ITERATION_FINISH_1 >= 103
+#        define NDNBOOST_PP_ITERATION_1 103
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 104 && BOOST_PP_ITERATION_FINISH_1 >= 104
-#        define BOOST_PP_ITERATION_1 104
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 104 && NDNBOOST_PP_ITERATION_FINISH_1 >= 104
+#        define NDNBOOST_PP_ITERATION_1 104
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 105 && BOOST_PP_ITERATION_FINISH_1 >= 105
-#        define BOOST_PP_ITERATION_1 105
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 105 && NDNBOOST_PP_ITERATION_FINISH_1 >= 105
+#        define NDNBOOST_PP_ITERATION_1 105
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 106 && BOOST_PP_ITERATION_FINISH_1 >= 106
-#        define BOOST_PP_ITERATION_1 106
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 106 && NDNBOOST_PP_ITERATION_FINISH_1 >= 106
+#        define NDNBOOST_PP_ITERATION_1 106
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 107 && BOOST_PP_ITERATION_FINISH_1 >= 107
-#        define BOOST_PP_ITERATION_1 107
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 107 && NDNBOOST_PP_ITERATION_FINISH_1 >= 107
+#        define NDNBOOST_PP_ITERATION_1 107
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 108 && BOOST_PP_ITERATION_FINISH_1 >= 108
-#        define BOOST_PP_ITERATION_1 108
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 108 && NDNBOOST_PP_ITERATION_FINISH_1 >= 108
+#        define NDNBOOST_PP_ITERATION_1 108
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 109 && BOOST_PP_ITERATION_FINISH_1 >= 109
-#        define BOOST_PP_ITERATION_1 109
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 109 && NDNBOOST_PP_ITERATION_FINISH_1 >= 109
+#        define NDNBOOST_PP_ITERATION_1 109
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 110 && BOOST_PP_ITERATION_FINISH_1 >= 110
-#        define BOOST_PP_ITERATION_1 110
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 110 && NDNBOOST_PP_ITERATION_FINISH_1 >= 110
+#        define NDNBOOST_PP_ITERATION_1 110
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 111 && BOOST_PP_ITERATION_FINISH_1 >= 111
-#        define BOOST_PP_ITERATION_1 111
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 111 && NDNBOOST_PP_ITERATION_FINISH_1 >= 111
+#        define NDNBOOST_PP_ITERATION_1 111
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 112 && BOOST_PP_ITERATION_FINISH_1 >= 112
-#        define BOOST_PP_ITERATION_1 112
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 112 && NDNBOOST_PP_ITERATION_FINISH_1 >= 112
+#        define NDNBOOST_PP_ITERATION_1 112
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 113 && BOOST_PP_ITERATION_FINISH_1 >= 113
-#        define BOOST_PP_ITERATION_1 113
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 113 && NDNBOOST_PP_ITERATION_FINISH_1 >= 113
+#        define NDNBOOST_PP_ITERATION_1 113
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 114 && BOOST_PP_ITERATION_FINISH_1 >= 114
-#        define BOOST_PP_ITERATION_1 114
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 114 && NDNBOOST_PP_ITERATION_FINISH_1 >= 114
+#        define NDNBOOST_PP_ITERATION_1 114
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 115 && BOOST_PP_ITERATION_FINISH_1 >= 115
-#        define BOOST_PP_ITERATION_1 115
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 115 && NDNBOOST_PP_ITERATION_FINISH_1 >= 115
+#        define NDNBOOST_PP_ITERATION_1 115
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 116 && BOOST_PP_ITERATION_FINISH_1 >= 116
-#        define BOOST_PP_ITERATION_1 116
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 116 && NDNBOOST_PP_ITERATION_FINISH_1 >= 116
+#        define NDNBOOST_PP_ITERATION_1 116
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 117 && BOOST_PP_ITERATION_FINISH_1 >= 117
-#        define BOOST_PP_ITERATION_1 117
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 117 && NDNBOOST_PP_ITERATION_FINISH_1 >= 117
+#        define NDNBOOST_PP_ITERATION_1 117
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 118 && BOOST_PP_ITERATION_FINISH_1 >= 118
-#        define BOOST_PP_ITERATION_1 118
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 118 && NDNBOOST_PP_ITERATION_FINISH_1 >= 118
+#        define NDNBOOST_PP_ITERATION_1 118
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 119 && BOOST_PP_ITERATION_FINISH_1 >= 119
-#        define BOOST_PP_ITERATION_1 119
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 119 && NDNBOOST_PP_ITERATION_FINISH_1 >= 119
+#        define NDNBOOST_PP_ITERATION_1 119
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 120 && BOOST_PP_ITERATION_FINISH_1 >= 120
-#        define BOOST_PP_ITERATION_1 120
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 120 && NDNBOOST_PP_ITERATION_FINISH_1 >= 120
+#        define NDNBOOST_PP_ITERATION_1 120
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 121 && BOOST_PP_ITERATION_FINISH_1 >= 121
-#        define BOOST_PP_ITERATION_1 121
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 121 && NDNBOOST_PP_ITERATION_FINISH_1 >= 121
+#        define NDNBOOST_PP_ITERATION_1 121
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 122 && BOOST_PP_ITERATION_FINISH_1 >= 122
-#        define BOOST_PP_ITERATION_1 122
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 122 && NDNBOOST_PP_ITERATION_FINISH_1 >= 122
+#        define NDNBOOST_PP_ITERATION_1 122
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 123 && BOOST_PP_ITERATION_FINISH_1 >= 123
-#        define BOOST_PP_ITERATION_1 123
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 123 && NDNBOOST_PP_ITERATION_FINISH_1 >= 123
+#        define NDNBOOST_PP_ITERATION_1 123
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 124 && BOOST_PP_ITERATION_FINISH_1 >= 124
-#        define BOOST_PP_ITERATION_1 124
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 124 && NDNBOOST_PP_ITERATION_FINISH_1 >= 124
+#        define NDNBOOST_PP_ITERATION_1 124
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 125 && BOOST_PP_ITERATION_FINISH_1 >= 125
-#        define BOOST_PP_ITERATION_1 125
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 125 && NDNBOOST_PP_ITERATION_FINISH_1 >= 125
+#        define NDNBOOST_PP_ITERATION_1 125
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 126 && BOOST_PP_ITERATION_FINISH_1 >= 126
-#        define BOOST_PP_ITERATION_1 126
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 126 && NDNBOOST_PP_ITERATION_FINISH_1 >= 126
+#        define NDNBOOST_PP_ITERATION_1 126
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 127 && BOOST_PP_ITERATION_FINISH_1 >= 127
-#        define BOOST_PP_ITERATION_1 127
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 127 && NDNBOOST_PP_ITERATION_FINISH_1 >= 127
+#        define NDNBOOST_PP_ITERATION_1 127
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 128 && BOOST_PP_ITERATION_FINISH_1 >= 128
-#        define BOOST_PP_ITERATION_1 128
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 128 && NDNBOOST_PP_ITERATION_FINISH_1 >= 128
+#        define NDNBOOST_PP_ITERATION_1 128
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 129 && BOOST_PP_ITERATION_FINISH_1 >= 129
-#        define BOOST_PP_ITERATION_1 129
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 129 && NDNBOOST_PP_ITERATION_FINISH_1 >= 129
+#        define NDNBOOST_PP_ITERATION_1 129
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 130 && BOOST_PP_ITERATION_FINISH_1 >= 130
-#        define BOOST_PP_ITERATION_1 130
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 130 && NDNBOOST_PP_ITERATION_FINISH_1 >= 130
+#        define NDNBOOST_PP_ITERATION_1 130
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 131 && BOOST_PP_ITERATION_FINISH_1 >= 131
-#        define BOOST_PP_ITERATION_1 131
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 131 && NDNBOOST_PP_ITERATION_FINISH_1 >= 131
+#        define NDNBOOST_PP_ITERATION_1 131
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 132 && BOOST_PP_ITERATION_FINISH_1 >= 132
-#        define BOOST_PP_ITERATION_1 132
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 132 && NDNBOOST_PP_ITERATION_FINISH_1 >= 132
+#        define NDNBOOST_PP_ITERATION_1 132
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 133 && BOOST_PP_ITERATION_FINISH_1 >= 133
-#        define BOOST_PP_ITERATION_1 133
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 133 && NDNBOOST_PP_ITERATION_FINISH_1 >= 133
+#        define NDNBOOST_PP_ITERATION_1 133
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 134 && BOOST_PP_ITERATION_FINISH_1 >= 134
-#        define BOOST_PP_ITERATION_1 134
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 134 && NDNBOOST_PP_ITERATION_FINISH_1 >= 134
+#        define NDNBOOST_PP_ITERATION_1 134
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 135 && BOOST_PP_ITERATION_FINISH_1 >= 135
-#        define BOOST_PP_ITERATION_1 135
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 135 && NDNBOOST_PP_ITERATION_FINISH_1 >= 135
+#        define NDNBOOST_PP_ITERATION_1 135
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 136 && BOOST_PP_ITERATION_FINISH_1 >= 136
-#        define BOOST_PP_ITERATION_1 136
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 136 && NDNBOOST_PP_ITERATION_FINISH_1 >= 136
+#        define NDNBOOST_PP_ITERATION_1 136
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 137 && BOOST_PP_ITERATION_FINISH_1 >= 137
-#        define BOOST_PP_ITERATION_1 137
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 137 && NDNBOOST_PP_ITERATION_FINISH_1 >= 137
+#        define NDNBOOST_PP_ITERATION_1 137
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 138 && BOOST_PP_ITERATION_FINISH_1 >= 138
-#        define BOOST_PP_ITERATION_1 138
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 138 && NDNBOOST_PP_ITERATION_FINISH_1 >= 138
+#        define NDNBOOST_PP_ITERATION_1 138
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 139 && BOOST_PP_ITERATION_FINISH_1 >= 139
-#        define BOOST_PP_ITERATION_1 139
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 139 && NDNBOOST_PP_ITERATION_FINISH_1 >= 139
+#        define NDNBOOST_PP_ITERATION_1 139
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 140 && BOOST_PP_ITERATION_FINISH_1 >= 140
-#        define BOOST_PP_ITERATION_1 140
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 140 && NDNBOOST_PP_ITERATION_FINISH_1 >= 140
+#        define NDNBOOST_PP_ITERATION_1 140
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 141 && BOOST_PP_ITERATION_FINISH_1 >= 141
-#        define BOOST_PP_ITERATION_1 141
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 141 && NDNBOOST_PP_ITERATION_FINISH_1 >= 141
+#        define NDNBOOST_PP_ITERATION_1 141
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 142 && BOOST_PP_ITERATION_FINISH_1 >= 142
-#        define BOOST_PP_ITERATION_1 142
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 142 && NDNBOOST_PP_ITERATION_FINISH_1 >= 142
+#        define NDNBOOST_PP_ITERATION_1 142
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 143 && BOOST_PP_ITERATION_FINISH_1 >= 143
-#        define BOOST_PP_ITERATION_1 143
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 143 && NDNBOOST_PP_ITERATION_FINISH_1 >= 143
+#        define NDNBOOST_PP_ITERATION_1 143
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 144 && BOOST_PP_ITERATION_FINISH_1 >= 144
-#        define BOOST_PP_ITERATION_1 144
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 144 && NDNBOOST_PP_ITERATION_FINISH_1 >= 144
+#        define NDNBOOST_PP_ITERATION_1 144
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 145 && BOOST_PP_ITERATION_FINISH_1 >= 145
-#        define BOOST_PP_ITERATION_1 145
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 145 && NDNBOOST_PP_ITERATION_FINISH_1 >= 145
+#        define NDNBOOST_PP_ITERATION_1 145
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 146 && BOOST_PP_ITERATION_FINISH_1 >= 146
-#        define BOOST_PP_ITERATION_1 146
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 146 && NDNBOOST_PP_ITERATION_FINISH_1 >= 146
+#        define NDNBOOST_PP_ITERATION_1 146
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 147 && BOOST_PP_ITERATION_FINISH_1 >= 147
-#        define BOOST_PP_ITERATION_1 147
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 147 && NDNBOOST_PP_ITERATION_FINISH_1 >= 147
+#        define NDNBOOST_PP_ITERATION_1 147
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 148 && BOOST_PP_ITERATION_FINISH_1 >= 148
-#        define BOOST_PP_ITERATION_1 148
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 148 && NDNBOOST_PP_ITERATION_FINISH_1 >= 148
+#        define NDNBOOST_PP_ITERATION_1 148
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 149 && BOOST_PP_ITERATION_FINISH_1 >= 149
-#        define BOOST_PP_ITERATION_1 149
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 149 && NDNBOOST_PP_ITERATION_FINISH_1 >= 149
+#        define NDNBOOST_PP_ITERATION_1 149
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 150 && BOOST_PP_ITERATION_FINISH_1 >= 150
-#        define BOOST_PP_ITERATION_1 150
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 150 && NDNBOOST_PP_ITERATION_FINISH_1 >= 150
+#        define NDNBOOST_PP_ITERATION_1 150
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 151 && BOOST_PP_ITERATION_FINISH_1 >= 151
-#        define BOOST_PP_ITERATION_1 151
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 151 && NDNBOOST_PP_ITERATION_FINISH_1 >= 151
+#        define NDNBOOST_PP_ITERATION_1 151
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 152 && BOOST_PP_ITERATION_FINISH_1 >= 152
-#        define BOOST_PP_ITERATION_1 152
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 152 && NDNBOOST_PP_ITERATION_FINISH_1 >= 152
+#        define NDNBOOST_PP_ITERATION_1 152
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 153 && BOOST_PP_ITERATION_FINISH_1 >= 153
-#        define BOOST_PP_ITERATION_1 153
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 153 && NDNBOOST_PP_ITERATION_FINISH_1 >= 153
+#        define NDNBOOST_PP_ITERATION_1 153
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 154 && BOOST_PP_ITERATION_FINISH_1 >= 154
-#        define BOOST_PP_ITERATION_1 154
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 154 && NDNBOOST_PP_ITERATION_FINISH_1 >= 154
+#        define NDNBOOST_PP_ITERATION_1 154
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 155 && BOOST_PP_ITERATION_FINISH_1 >= 155
-#        define BOOST_PP_ITERATION_1 155
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 155 && NDNBOOST_PP_ITERATION_FINISH_1 >= 155
+#        define NDNBOOST_PP_ITERATION_1 155
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 156 && BOOST_PP_ITERATION_FINISH_1 >= 156
-#        define BOOST_PP_ITERATION_1 156
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 156 && NDNBOOST_PP_ITERATION_FINISH_1 >= 156
+#        define NDNBOOST_PP_ITERATION_1 156
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 157 && BOOST_PP_ITERATION_FINISH_1 >= 157
-#        define BOOST_PP_ITERATION_1 157
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 157 && NDNBOOST_PP_ITERATION_FINISH_1 >= 157
+#        define NDNBOOST_PP_ITERATION_1 157
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 158 && BOOST_PP_ITERATION_FINISH_1 >= 158
-#        define BOOST_PP_ITERATION_1 158
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 158 && NDNBOOST_PP_ITERATION_FINISH_1 >= 158
+#        define NDNBOOST_PP_ITERATION_1 158
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 159 && BOOST_PP_ITERATION_FINISH_1 >= 159
-#        define BOOST_PP_ITERATION_1 159
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 159 && NDNBOOST_PP_ITERATION_FINISH_1 >= 159
+#        define NDNBOOST_PP_ITERATION_1 159
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 160 && BOOST_PP_ITERATION_FINISH_1 >= 160
-#        define BOOST_PP_ITERATION_1 160
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 160 && NDNBOOST_PP_ITERATION_FINISH_1 >= 160
+#        define NDNBOOST_PP_ITERATION_1 160
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 161 && BOOST_PP_ITERATION_FINISH_1 >= 161
-#        define BOOST_PP_ITERATION_1 161
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 161 && NDNBOOST_PP_ITERATION_FINISH_1 >= 161
+#        define NDNBOOST_PP_ITERATION_1 161
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 162 && BOOST_PP_ITERATION_FINISH_1 >= 162
-#        define BOOST_PP_ITERATION_1 162
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 162 && NDNBOOST_PP_ITERATION_FINISH_1 >= 162
+#        define NDNBOOST_PP_ITERATION_1 162
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 163 && BOOST_PP_ITERATION_FINISH_1 >= 163
-#        define BOOST_PP_ITERATION_1 163
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 163 && NDNBOOST_PP_ITERATION_FINISH_1 >= 163
+#        define NDNBOOST_PP_ITERATION_1 163
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 164 && BOOST_PP_ITERATION_FINISH_1 >= 164
-#        define BOOST_PP_ITERATION_1 164
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 164 && NDNBOOST_PP_ITERATION_FINISH_1 >= 164
+#        define NDNBOOST_PP_ITERATION_1 164
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 165 && BOOST_PP_ITERATION_FINISH_1 >= 165
-#        define BOOST_PP_ITERATION_1 165
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 165 && NDNBOOST_PP_ITERATION_FINISH_1 >= 165
+#        define NDNBOOST_PP_ITERATION_1 165
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 166 && BOOST_PP_ITERATION_FINISH_1 >= 166
-#        define BOOST_PP_ITERATION_1 166
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 166 && NDNBOOST_PP_ITERATION_FINISH_1 >= 166
+#        define NDNBOOST_PP_ITERATION_1 166
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 167 && BOOST_PP_ITERATION_FINISH_1 >= 167
-#        define BOOST_PP_ITERATION_1 167
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 167 && NDNBOOST_PP_ITERATION_FINISH_1 >= 167
+#        define NDNBOOST_PP_ITERATION_1 167
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 168 && BOOST_PP_ITERATION_FINISH_1 >= 168
-#        define BOOST_PP_ITERATION_1 168
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 168 && NDNBOOST_PP_ITERATION_FINISH_1 >= 168
+#        define NDNBOOST_PP_ITERATION_1 168
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 169 && BOOST_PP_ITERATION_FINISH_1 >= 169
-#        define BOOST_PP_ITERATION_1 169
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 169 && NDNBOOST_PP_ITERATION_FINISH_1 >= 169
+#        define NDNBOOST_PP_ITERATION_1 169
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 170 && BOOST_PP_ITERATION_FINISH_1 >= 170
-#        define BOOST_PP_ITERATION_1 170
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 170 && NDNBOOST_PP_ITERATION_FINISH_1 >= 170
+#        define NDNBOOST_PP_ITERATION_1 170
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 171 && BOOST_PP_ITERATION_FINISH_1 >= 171
-#        define BOOST_PP_ITERATION_1 171
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 171 && NDNBOOST_PP_ITERATION_FINISH_1 >= 171
+#        define NDNBOOST_PP_ITERATION_1 171
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 172 && BOOST_PP_ITERATION_FINISH_1 >= 172
-#        define BOOST_PP_ITERATION_1 172
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 172 && NDNBOOST_PP_ITERATION_FINISH_1 >= 172
+#        define NDNBOOST_PP_ITERATION_1 172
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 173 && BOOST_PP_ITERATION_FINISH_1 >= 173
-#        define BOOST_PP_ITERATION_1 173
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 173 && NDNBOOST_PP_ITERATION_FINISH_1 >= 173
+#        define NDNBOOST_PP_ITERATION_1 173
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 174 && BOOST_PP_ITERATION_FINISH_1 >= 174
-#        define BOOST_PP_ITERATION_1 174
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 174 && NDNBOOST_PP_ITERATION_FINISH_1 >= 174
+#        define NDNBOOST_PP_ITERATION_1 174
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 175 && BOOST_PP_ITERATION_FINISH_1 >= 175
-#        define BOOST_PP_ITERATION_1 175
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 175 && NDNBOOST_PP_ITERATION_FINISH_1 >= 175
+#        define NDNBOOST_PP_ITERATION_1 175
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 176 && BOOST_PP_ITERATION_FINISH_1 >= 176
-#        define BOOST_PP_ITERATION_1 176
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 176 && NDNBOOST_PP_ITERATION_FINISH_1 >= 176
+#        define NDNBOOST_PP_ITERATION_1 176
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 177 && BOOST_PP_ITERATION_FINISH_1 >= 177
-#        define BOOST_PP_ITERATION_1 177
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 177 && NDNBOOST_PP_ITERATION_FINISH_1 >= 177
+#        define NDNBOOST_PP_ITERATION_1 177
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 178 && BOOST_PP_ITERATION_FINISH_1 >= 178
-#        define BOOST_PP_ITERATION_1 178
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 178 && NDNBOOST_PP_ITERATION_FINISH_1 >= 178
+#        define NDNBOOST_PP_ITERATION_1 178
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 179 && BOOST_PP_ITERATION_FINISH_1 >= 179
-#        define BOOST_PP_ITERATION_1 179
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 179 && NDNBOOST_PP_ITERATION_FINISH_1 >= 179
+#        define NDNBOOST_PP_ITERATION_1 179
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 180 && BOOST_PP_ITERATION_FINISH_1 >= 180
-#        define BOOST_PP_ITERATION_1 180
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 180 && NDNBOOST_PP_ITERATION_FINISH_1 >= 180
+#        define NDNBOOST_PP_ITERATION_1 180
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 181 && BOOST_PP_ITERATION_FINISH_1 >= 181
-#        define BOOST_PP_ITERATION_1 181
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 181 && NDNBOOST_PP_ITERATION_FINISH_1 >= 181
+#        define NDNBOOST_PP_ITERATION_1 181
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 182 && BOOST_PP_ITERATION_FINISH_1 >= 182
-#        define BOOST_PP_ITERATION_1 182
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 182 && NDNBOOST_PP_ITERATION_FINISH_1 >= 182
+#        define NDNBOOST_PP_ITERATION_1 182
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 183 && BOOST_PP_ITERATION_FINISH_1 >= 183
-#        define BOOST_PP_ITERATION_1 183
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 183 && NDNBOOST_PP_ITERATION_FINISH_1 >= 183
+#        define NDNBOOST_PP_ITERATION_1 183
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 184 && BOOST_PP_ITERATION_FINISH_1 >= 184
-#        define BOOST_PP_ITERATION_1 184
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 184 && NDNBOOST_PP_ITERATION_FINISH_1 >= 184
+#        define NDNBOOST_PP_ITERATION_1 184
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 185 && BOOST_PP_ITERATION_FINISH_1 >= 185
-#        define BOOST_PP_ITERATION_1 185
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 185 && NDNBOOST_PP_ITERATION_FINISH_1 >= 185
+#        define NDNBOOST_PP_ITERATION_1 185
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 186 && BOOST_PP_ITERATION_FINISH_1 >= 186
-#        define BOOST_PP_ITERATION_1 186
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 186 && NDNBOOST_PP_ITERATION_FINISH_1 >= 186
+#        define NDNBOOST_PP_ITERATION_1 186
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 187 && BOOST_PP_ITERATION_FINISH_1 >= 187
-#        define BOOST_PP_ITERATION_1 187
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 187 && NDNBOOST_PP_ITERATION_FINISH_1 >= 187
+#        define NDNBOOST_PP_ITERATION_1 187
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 188 && BOOST_PP_ITERATION_FINISH_1 >= 188
-#        define BOOST_PP_ITERATION_1 188
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 188 && NDNBOOST_PP_ITERATION_FINISH_1 >= 188
+#        define NDNBOOST_PP_ITERATION_1 188
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 189 && BOOST_PP_ITERATION_FINISH_1 >= 189
-#        define BOOST_PP_ITERATION_1 189
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 189 && NDNBOOST_PP_ITERATION_FINISH_1 >= 189
+#        define NDNBOOST_PP_ITERATION_1 189
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 190 && BOOST_PP_ITERATION_FINISH_1 >= 190
-#        define BOOST_PP_ITERATION_1 190
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 190 && NDNBOOST_PP_ITERATION_FINISH_1 >= 190
+#        define NDNBOOST_PP_ITERATION_1 190
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 191 && BOOST_PP_ITERATION_FINISH_1 >= 191
-#        define BOOST_PP_ITERATION_1 191
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 191 && NDNBOOST_PP_ITERATION_FINISH_1 >= 191
+#        define NDNBOOST_PP_ITERATION_1 191
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 192 && BOOST_PP_ITERATION_FINISH_1 >= 192
-#        define BOOST_PP_ITERATION_1 192
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 192 && NDNBOOST_PP_ITERATION_FINISH_1 >= 192
+#        define NDNBOOST_PP_ITERATION_1 192
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 193 && BOOST_PP_ITERATION_FINISH_1 >= 193
-#        define BOOST_PP_ITERATION_1 193
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 193 && NDNBOOST_PP_ITERATION_FINISH_1 >= 193
+#        define NDNBOOST_PP_ITERATION_1 193
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 194 && BOOST_PP_ITERATION_FINISH_1 >= 194
-#        define BOOST_PP_ITERATION_1 194
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 194 && NDNBOOST_PP_ITERATION_FINISH_1 >= 194
+#        define NDNBOOST_PP_ITERATION_1 194
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 195 && BOOST_PP_ITERATION_FINISH_1 >= 195
-#        define BOOST_PP_ITERATION_1 195
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 195 && NDNBOOST_PP_ITERATION_FINISH_1 >= 195
+#        define NDNBOOST_PP_ITERATION_1 195
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 196 && BOOST_PP_ITERATION_FINISH_1 >= 196
-#        define BOOST_PP_ITERATION_1 196
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 196 && NDNBOOST_PP_ITERATION_FINISH_1 >= 196
+#        define NDNBOOST_PP_ITERATION_1 196
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 197 && BOOST_PP_ITERATION_FINISH_1 >= 197
-#        define BOOST_PP_ITERATION_1 197
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 197 && NDNBOOST_PP_ITERATION_FINISH_1 >= 197
+#        define NDNBOOST_PP_ITERATION_1 197
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 198 && BOOST_PP_ITERATION_FINISH_1 >= 198
-#        define BOOST_PP_ITERATION_1 198
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 198 && NDNBOOST_PP_ITERATION_FINISH_1 >= 198
+#        define NDNBOOST_PP_ITERATION_1 198
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 199 && BOOST_PP_ITERATION_FINISH_1 >= 199
-#        define BOOST_PP_ITERATION_1 199
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 199 && NDNBOOST_PP_ITERATION_FINISH_1 >= 199
+#        define NDNBOOST_PP_ITERATION_1 199
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 200 && BOOST_PP_ITERATION_FINISH_1 >= 200
-#        define BOOST_PP_ITERATION_1 200
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 200 && NDNBOOST_PP_ITERATION_FINISH_1 >= 200
+#        define NDNBOOST_PP_ITERATION_1 200
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 201 && BOOST_PP_ITERATION_FINISH_1 >= 201
-#        define BOOST_PP_ITERATION_1 201
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 201 && NDNBOOST_PP_ITERATION_FINISH_1 >= 201
+#        define NDNBOOST_PP_ITERATION_1 201
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 202 && BOOST_PP_ITERATION_FINISH_1 >= 202
-#        define BOOST_PP_ITERATION_1 202
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 202 && NDNBOOST_PP_ITERATION_FINISH_1 >= 202
+#        define NDNBOOST_PP_ITERATION_1 202
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 203 && BOOST_PP_ITERATION_FINISH_1 >= 203
-#        define BOOST_PP_ITERATION_1 203
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 203 && NDNBOOST_PP_ITERATION_FINISH_1 >= 203
+#        define NDNBOOST_PP_ITERATION_1 203
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 204 && BOOST_PP_ITERATION_FINISH_1 >= 204
-#        define BOOST_PP_ITERATION_1 204
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 204 && NDNBOOST_PP_ITERATION_FINISH_1 >= 204
+#        define NDNBOOST_PP_ITERATION_1 204
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 205 && BOOST_PP_ITERATION_FINISH_1 >= 205
-#        define BOOST_PP_ITERATION_1 205
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 205 && NDNBOOST_PP_ITERATION_FINISH_1 >= 205
+#        define NDNBOOST_PP_ITERATION_1 205
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 206 && BOOST_PP_ITERATION_FINISH_1 >= 206
-#        define BOOST_PP_ITERATION_1 206
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 206 && NDNBOOST_PP_ITERATION_FINISH_1 >= 206
+#        define NDNBOOST_PP_ITERATION_1 206
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 207 && BOOST_PP_ITERATION_FINISH_1 >= 207
-#        define BOOST_PP_ITERATION_1 207
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 207 && NDNBOOST_PP_ITERATION_FINISH_1 >= 207
+#        define NDNBOOST_PP_ITERATION_1 207
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 208 && BOOST_PP_ITERATION_FINISH_1 >= 208
-#        define BOOST_PP_ITERATION_1 208
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 208 && NDNBOOST_PP_ITERATION_FINISH_1 >= 208
+#        define NDNBOOST_PP_ITERATION_1 208
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 209 && BOOST_PP_ITERATION_FINISH_1 >= 209
-#        define BOOST_PP_ITERATION_1 209
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 209 && NDNBOOST_PP_ITERATION_FINISH_1 >= 209
+#        define NDNBOOST_PP_ITERATION_1 209
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 210 && BOOST_PP_ITERATION_FINISH_1 >= 210
-#        define BOOST_PP_ITERATION_1 210
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 210 && NDNBOOST_PP_ITERATION_FINISH_1 >= 210
+#        define NDNBOOST_PP_ITERATION_1 210
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 211 && BOOST_PP_ITERATION_FINISH_1 >= 211
-#        define BOOST_PP_ITERATION_1 211
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 211 && NDNBOOST_PP_ITERATION_FINISH_1 >= 211
+#        define NDNBOOST_PP_ITERATION_1 211
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 212 && BOOST_PP_ITERATION_FINISH_1 >= 212
-#        define BOOST_PP_ITERATION_1 212
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 212 && NDNBOOST_PP_ITERATION_FINISH_1 >= 212
+#        define NDNBOOST_PP_ITERATION_1 212
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 213 && BOOST_PP_ITERATION_FINISH_1 >= 213
-#        define BOOST_PP_ITERATION_1 213
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 213 && NDNBOOST_PP_ITERATION_FINISH_1 >= 213
+#        define NDNBOOST_PP_ITERATION_1 213
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 214 && BOOST_PP_ITERATION_FINISH_1 >= 214
-#        define BOOST_PP_ITERATION_1 214
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 214 && NDNBOOST_PP_ITERATION_FINISH_1 >= 214
+#        define NDNBOOST_PP_ITERATION_1 214
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 215 && BOOST_PP_ITERATION_FINISH_1 >= 215
-#        define BOOST_PP_ITERATION_1 215
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 215 && NDNBOOST_PP_ITERATION_FINISH_1 >= 215
+#        define NDNBOOST_PP_ITERATION_1 215
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 216 && BOOST_PP_ITERATION_FINISH_1 >= 216
-#        define BOOST_PP_ITERATION_1 216
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 216 && NDNBOOST_PP_ITERATION_FINISH_1 >= 216
+#        define NDNBOOST_PP_ITERATION_1 216
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 217 && BOOST_PP_ITERATION_FINISH_1 >= 217
-#        define BOOST_PP_ITERATION_1 217
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 217 && NDNBOOST_PP_ITERATION_FINISH_1 >= 217
+#        define NDNBOOST_PP_ITERATION_1 217
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 218 && BOOST_PP_ITERATION_FINISH_1 >= 218
-#        define BOOST_PP_ITERATION_1 218
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 218 && NDNBOOST_PP_ITERATION_FINISH_1 >= 218
+#        define NDNBOOST_PP_ITERATION_1 218
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 219 && BOOST_PP_ITERATION_FINISH_1 >= 219
-#        define BOOST_PP_ITERATION_1 219
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 219 && NDNBOOST_PP_ITERATION_FINISH_1 >= 219
+#        define NDNBOOST_PP_ITERATION_1 219
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 220 && BOOST_PP_ITERATION_FINISH_1 >= 220
-#        define BOOST_PP_ITERATION_1 220
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 220 && NDNBOOST_PP_ITERATION_FINISH_1 >= 220
+#        define NDNBOOST_PP_ITERATION_1 220
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 221 && BOOST_PP_ITERATION_FINISH_1 >= 221
-#        define BOOST_PP_ITERATION_1 221
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 221 && NDNBOOST_PP_ITERATION_FINISH_1 >= 221
+#        define NDNBOOST_PP_ITERATION_1 221
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 222 && BOOST_PP_ITERATION_FINISH_1 >= 222
-#        define BOOST_PP_ITERATION_1 222
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 222 && NDNBOOST_PP_ITERATION_FINISH_1 >= 222
+#        define NDNBOOST_PP_ITERATION_1 222
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 223 && BOOST_PP_ITERATION_FINISH_1 >= 223
-#        define BOOST_PP_ITERATION_1 223
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 223 && NDNBOOST_PP_ITERATION_FINISH_1 >= 223
+#        define NDNBOOST_PP_ITERATION_1 223
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 224 && BOOST_PP_ITERATION_FINISH_1 >= 224
-#        define BOOST_PP_ITERATION_1 224
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 224 && NDNBOOST_PP_ITERATION_FINISH_1 >= 224
+#        define NDNBOOST_PP_ITERATION_1 224
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 225 && BOOST_PP_ITERATION_FINISH_1 >= 225
-#        define BOOST_PP_ITERATION_1 225
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 225 && NDNBOOST_PP_ITERATION_FINISH_1 >= 225
+#        define NDNBOOST_PP_ITERATION_1 225
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 226 && BOOST_PP_ITERATION_FINISH_1 >= 226
-#        define BOOST_PP_ITERATION_1 226
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 226 && NDNBOOST_PP_ITERATION_FINISH_1 >= 226
+#        define NDNBOOST_PP_ITERATION_1 226
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 227 && BOOST_PP_ITERATION_FINISH_1 >= 227
-#        define BOOST_PP_ITERATION_1 227
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 227 && NDNBOOST_PP_ITERATION_FINISH_1 >= 227
+#        define NDNBOOST_PP_ITERATION_1 227
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 228 && BOOST_PP_ITERATION_FINISH_1 >= 228
-#        define BOOST_PP_ITERATION_1 228
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 228 && NDNBOOST_PP_ITERATION_FINISH_1 >= 228
+#        define NDNBOOST_PP_ITERATION_1 228
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 229 && BOOST_PP_ITERATION_FINISH_1 >= 229
-#        define BOOST_PP_ITERATION_1 229
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 229 && NDNBOOST_PP_ITERATION_FINISH_1 >= 229
+#        define NDNBOOST_PP_ITERATION_1 229
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 230 && BOOST_PP_ITERATION_FINISH_1 >= 230
-#        define BOOST_PP_ITERATION_1 230
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 230 && NDNBOOST_PP_ITERATION_FINISH_1 >= 230
+#        define NDNBOOST_PP_ITERATION_1 230
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 231 && BOOST_PP_ITERATION_FINISH_1 >= 231
-#        define BOOST_PP_ITERATION_1 231
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 231 && NDNBOOST_PP_ITERATION_FINISH_1 >= 231
+#        define NDNBOOST_PP_ITERATION_1 231
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 232 && BOOST_PP_ITERATION_FINISH_1 >= 232
-#        define BOOST_PP_ITERATION_1 232
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 232 && NDNBOOST_PP_ITERATION_FINISH_1 >= 232
+#        define NDNBOOST_PP_ITERATION_1 232
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 233 && BOOST_PP_ITERATION_FINISH_1 >= 233
-#        define BOOST_PP_ITERATION_1 233
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 233 && NDNBOOST_PP_ITERATION_FINISH_1 >= 233
+#        define NDNBOOST_PP_ITERATION_1 233
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 234 && BOOST_PP_ITERATION_FINISH_1 >= 234
-#        define BOOST_PP_ITERATION_1 234
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 234 && NDNBOOST_PP_ITERATION_FINISH_1 >= 234
+#        define NDNBOOST_PP_ITERATION_1 234
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 235 && BOOST_PP_ITERATION_FINISH_1 >= 235
-#        define BOOST_PP_ITERATION_1 235
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 235 && NDNBOOST_PP_ITERATION_FINISH_1 >= 235
+#        define NDNBOOST_PP_ITERATION_1 235
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 236 && BOOST_PP_ITERATION_FINISH_1 >= 236
-#        define BOOST_PP_ITERATION_1 236
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 236 && NDNBOOST_PP_ITERATION_FINISH_1 >= 236
+#        define NDNBOOST_PP_ITERATION_1 236
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 237 && BOOST_PP_ITERATION_FINISH_1 >= 237
-#        define BOOST_PP_ITERATION_1 237
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 237 && NDNBOOST_PP_ITERATION_FINISH_1 >= 237
+#        define NDNBOOST_PP_ITERATION_1 237
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 238 && BOOST_PP_ITERATION_FINISH_1 >= 238
-#        define BOOST_PP_ITERATION_1 238
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 238 && NDNBOOST_PP_ITERATION_FINISH_1 >= 238
+#        define NDNBOOST_PP_ITERATION_1 238
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 239 && BOOST_PP_ITERATION_FINISH_1 >= 239
-#        define BOOST_PP_ITERATION_1 239
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 239 && NDNBOOST_PP_ITERATION_FINISH_1 >= 239
+#        define NDNBOOST_PP_ITERATION_1 239
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 240 && BOOST_PP_ITERATION_FINISH_1 >= 240
-#        define BOOST_PP_ITERATION_1 240
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 240 && NDNBOOST_PP_ITERATION_FINISH_1 >= 240
+#        define NDNBOOST_PP_ITERATION_1 240
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 241 && BOOST_PP_ITERATION_FINISH_1 >= 241
-#        define BOOST_PP_ITERATION_1 241
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 241 && NDNBOOST_PP_ITERATION_FINISH_1 >= 241
+#        define NDNBOOST_PP_ITERATION_1 241
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 242 && BOOST_PP_ITERATION_FINISH_1 >= 242
-#        define BOOST_PP_ITERATION_1 242
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 242 && NDNBOOST_PP_ITERATION_FINISH_1 >= 242
+#        define NDNBOOST_PP_ITERATION_1 242
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 243 && BOOST_PP_ITERATION_FINISH_1 >= 243
-#        define BOOST_PP_ITERATION_1 243
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 243 && NDNBOOST_PP_ITERATION_FINISH_1 >= 243
+#        define NDNBOOST_PP_ITERATION_1 243
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 244 && BOOST_PP_ITERATION_FINISH_1 >= 244
-#        define BOOST_PP_ITERATION_1 244
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 244 && NDNBOOST_PP_ITERATION_FINISH_1 >= 244
+#        define NDNBOOST_PP_ITERATION_1 244
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 245 && BOOST_PP_ITERATION_FINISH_1 >= 245
-#        define BOOST_PP_ITERATION_1 245
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 245 && NDNBOOST_PP_ITERATION_FINISH_1 >= 245
+#        define NDNBOOST_PP_ITERATION_1 245
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 246 && BOOST_PP_ITERATION_FINISH_1 >= 246
-#        define BOOST_PP_ITERATION_1 246
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 246 && NDNBOOST_PP_ITERATION_FINISH_1 >= 246
+#        define NDNBOOST_PP_ITERATION_1 246
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 247 && BOOST_PP_ITERATION_FINISH_1 >= 247
-#        define BOOST_PP_ITERATION_1 247
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 247 && NDNBOOST_PP_ITERATION_FINISH_1 >= 247
+#        define NDNBOOST_PP_ITERATION_1 247
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 248 && BOOST_PP_ITERATION_FINISH_1 >= 248
-#        define BOOST_PP_ITERATION_1 248
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 248 && NDNBOOST_PP_ITERATION_FINISH_1 >= 248
+#        define NDNBOOST_PP_ITERATION_1 248
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 249 && BOOST_PP_ITERATION_FINISH_1 >= 249
-#        define BOOST_PP_ITERATION_1 249
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 249 && NDNBOOST_PP_ITERATION_FINISH_1 >= 249
+#        define NDNBOOST_PP_ITERATION_1 249
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 250 && BOOST_PP_ITERATION_FINISH_1 >= 250
-#        define BOOST_PP_ITERATION_1 250
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 250 && NDNBOOST_PP_ITERATION_FINISH_1 >= 250
+#        define NDNBOOST_PP_ITERATION_1 250
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 251 && BOOST_PP_ITERATION_FINISH_1 >= 251
-#        define BOOST_PP_ITERATION_1 251
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 251 && NDNBOOST_PP_ITERATION_FINISH_1 >= 251
+#        define NDNBOOST_PP_ITERATION_1 251
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 252 && BOOST_PP_ITERATION_FINISH_1 >= 252
-#        define BOOST_PP_ITERATION_1 252
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 252 && NDNBOOST_PP_ITERATION_FINISH_1 >= 252
+#        define NDNBOOST_PP_ITERATION_1 252
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 253 && BOOST_PP_ITERATION_FINISH_1 >= 253
-#        define BOOST_PP_ITERATION_1 253
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 253 && NDNBOOST_PP_ITERATION_FINISH_1 >= 253
+#        define NDNBOOST_PP_ITERATION_1 253
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 254 && BOOST_PP_ITERATION_FINISH_1 >= 254
-#        define BOOST_PP_ITERATION_1 254
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 254 && NDNBOOST_PP_ITERATION_FINISH_1 >= 254
+#        define NDNBOOST_PP_ITERATION_1 254
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 255 && BOOST_PP_ITERATION_FINISH_1 >= 255
-#        define BOOST_PP_ITERATION_1 255
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 255 && NDNBOOST_PP_ITERATION_FINISH_1 >= 255
+#        define NDNBOOST_PP_ITERATION_1 255
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
-#    if BOOST_PP_ITERATION_START_1 <= 256 && BOOST_PP_ITERATION_FINISH_1 >= 256
-#        define BOOST_PP_ITERATION_1 256
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
+#    if NDNBOOST_PP_ITERATION_START_1 <= 256 && NDNBOOST_PP_ITERATION_FINISH_1 >= 256
+#        define NDNBOOST_PP_ITERATION_1 256
+#        include NDNBOOST_PP_FILENAME_1
+#        undef NDNBOOST_PP_ITERATION_1
 #    endif
 # endif
 #
-# undef BOOST_PP_IS_ITERATING
+# undef NDNBOOST_PP_IS_ITERATING
 #
-# undef BOOST_PP_ITERATION_DEPTH
-# define BOOST_PP_ITERATION_DEPTH() 0
+# undef NDNBOOST_PP_ITERATION_DEPTH
+# define NDNBOOST_PP_ITERATION_DEPTH() 0
 #
-# undef BOOST_PP_ITERATION_START_1
-# undef BOOST_PP_ITERATION_FINISH_1
-# undef BOOST_PP_FILENAME_1
+# undef NDNBOOST_PP_ITERATION_START_1
+# undef NDNBOOST_PP_ITERATION_FINISH_1
+# undef NDNBOOST_PP_FILENAME_1
 #
-# undef BOOST_PP_ITERATION_FLAGS_1
-# undef BOOST_PP_ITERATION_PARAMS_1
+# undef NDNBOOST_PP_ITERATION_FLAGS_1
+# undef NDNBOOST_PP_ITERATION_PARAMS_1
diff --git a/include/ndnboost/preprocessor/iteration/detail/iter/forward2.hpp b/include/ndnboost/preprocessor/iteration/detail/iter/forward2.hpp
index 25ad55c..09a2d9c 100644
--- a/include/ndnboost/preprocessor/iteration/detail/iter/forward2.hpp
+++ b/include/ndnboost/preprocessor/iteration/detail/iter/forward2.hpp
@@ -9,1330 +9,1330 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# if defined(BOOST_PP_ITERATION_LIMITS)
-#    if !defined(BOOST_PP_FILENAME_2)
-#        error BOOST_PP_ERROR:  depth #2 filename is not defined
+# if defined(NDNBOOST_PP_ITERATION_LIMITS)
+#    if !defined(NDNBOOST_PP_FILENAME_2)
+#        error NDNBOOST_PP_ERROR:  depth #2 filename is not defined
 #    endif
-#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_ITERATION_LIMITS)
+#    define NDNBOOST_PP_VALUE NDNBOOST_PP_TUPLE_ELEM(2, 0, NDNBOOST_PP_ITERATION_LIMITS)
 #    include <ndnboost/preprocessor/iteration/detail/bounds/lower2.hpp>
-#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS)
+#    define NDNBOOST_PP_VALUE NDNBOOST_PP_TUPLE_ELEM(2, 1, NDNBOOST_PP_ITERATION_LIMITS)
 #    include <ndnboost/preprocessor/iteration/detail/bounds/upper2.hpp>
-#    define BOOST_PP_ITERATION_FLAGS_2() 0
-#    undef BOOST_PP_ITERATION_LIMITS
-# elif defined(BOOST_PP_ITERATION_PARAMS_2)
-#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_2)
+#    define NDNBOOST_PP_ITERATION_FLAGS_2() 0
+#    undef NDNBOOST_PP_ITERATION_LIMITS
+# elif defined(NDNBOOST_PP_ITERATION_PARAMS_2)
+#    define NDNBOOST_PP_VALUE NDNBOOST_PP_ARRAY_ELEM(0, NDNBOOST_PP_ITERATION_PARAMS_2)
 #    include <ndnboost/preprocessor/iteration/detail/bounds/lower2.hpp>
-#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ITERATION_PARAMS_2)
+#    define NDNBOOST_PP_VALUE NDNBOOST_PP_ARRAY_ELEM(1, NDNBOOST_PP_ITERATION_PARAMS_2)
 #    include <ndnboost/preprocessor/iteration/detail/bounds/upper2.hpp>
-#    define BOOST_PP_FILENAME_2 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_2)
-#    if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_2) >= 4
-#        define BOOST_PP_ITERATION_FLAGS_2() BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_2)
+#    define NDNBOOST_PP_FILENAME_2 NDNBOOST_PP_ARRAY_ELEM(2, NDNBOOST_PP_ITERATION_PARAMS_2)
+#    if NDNBOOST_PP_ARRAY_SIZE(NDNBOOST_PP_ITERATION_PARAMS_2) >= 4
+#        define NDNBOOST_PP_ITERATION_FLAGS_2() NDNBOOST_PP_ARRAY_ELEM(3, NDNBOOST_PP_ITERATION_PARAMS_2)
 #    else
-#        define BOOST_PP_ITERATION_FLAGS_2() 0
+#        define NDNBOOST_PP_ITERATION_FLAGS_2() 0
 #    endif
 # else
-#    error BOOST_PP_ERROR:  depth #2 iteration boundaries or filename not defined
+#    error NDNBOOST_PP_ERROR:  depth #2 iteration boundaries or filename not defined
 # endif
 #
-# undef BOOST_PP_ITERATION_DEPTH
-# define BOOST_PP_ITERATION_DEPTH() 2
+# undef NDNBOOST_PP_ITERATION_DEPTH
+# define NDNBOOST_PP_ITERATION_DEPTH() 2
 #
-# if (BOOST_PP_ITERATION_START_2) > (BOOST_PP_ITERATION_FINISH_2)
+# if (NDNBOOST_PP_ITERATION_START_2) > (NDNBOOST_PP_ITERATION_FINISH_2)
 #    include <ndnboost/preprocessor/iteration/detail/iter/reverse2.hpp>
 # else
-#    if BOOST_PP_ITERATION_START_2 <= 0 && BOOST_PP_ITERATION_FINISH_2 >= 0
-#        define BOOST_PP_ITERATION_2 0
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 0 && NDNBOOST_PP_ITERATION_FINISH_2 >= 0
+#        define NDNBOOST_PP_ITERATION_2 0
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 1 && BOOST_PP_ITERATION_FINISH_2 >= 1
-#        define BOOST_PP_ITERATION_2 1
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 1 && NDNBOOST_PP_ITERATION_FINISH_2 >= 1
+#        define NDNBOOST_PP_ITERATION_2 1
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 2 && BOOST_PP_ITERATION_FINISH_2 >= 2
-#        define BOOST_PP_ITERATION_2 2
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 2 && NDNBOOST_PP_ITERATION_FINISH_2 >= 2
+#        define NDNBOOST_PP_ITERATION_2 2
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 3 && BOOST_PP_ITERATION_FINISH_2 >= 3
-#        define BOOST_PP_ITERATION_2 3
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 3 && NDNBOOST_PP_ITERATION_FINISH_2 >= 3
+#        define NDNBOOST_PP_ITERATION_2 3
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 4 && BOOST_PP_ITERATION_FINISH_2 >= 4
-#        define BOOST_PP_ITERATION_2 4
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 4 && NDNBOOST_PP_ITERATION_FINISH_2 >= 4
+#        define NDNBOOST_PP_ITERATION_2 4
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 5 && BOOST_PP_ITERATION_FINISH_2 >= 5
-#        define BOOST_PP_ITERATION_2 5
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 5 && NDNBOOST_PP_ITERATION_FINISH_2 >= 5
+#        define NDNBOOST_PP_ITERATION_2 5
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 6 && BOOST_PP_ITERATION_FINISH_2 >= 6
-#        define BOOST_PP_ITERATION_2 6
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 6 && NDNBOOST_PP_ITERATION_FINISH_2 >= 6
+#        define NDNBOOST_PP_ITERATION_2 6
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 7 && BOOST_PP_ITERATION_FINISH_2 >= 7
-#        define BOOST_PP_ITERATION_2 7
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 7 && NDNBOOST_PP_ITERATION_FINISH_2 >= 7
+#        define NDNBOOST_PP_ITERATION_2 7
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 8 && BOOST_PP_ITERATION_FINISH_2 >= 8
-#        define BOOST_PP_ITERATION_2 8
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 8 && NDNBOOST_PP_ITERATION_FINISH_2 >= 8
+#        define NDNBOOST_PP_ITERATION_2 8
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 9 && BOOST_PP_ITERATION_FINISH_2 >= 9
-#        define BOOST_PP_ITERATION_2 9
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 9 && NDNBOOST_PP_ITERATION_FINISH_2 >= 9
+#        define NDNBOOST_PP_ITERATION_2 9
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 10 && BOOST_PP_ITERATION_FINISH_2 >= 10
-#        define BOOST_PP_ITERATION_2 10
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 10 && NDNBOOST_PP_ITERATION_FINISH_2 >= 10
+#        define NDNBOOST_PP_ITERATION_2 10
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 11 && BOOST_PP_ITERATION_FINISH_2 >= 11
-#        define BOOST_PP_ITERATION_2 11
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 11 && NDNBOOST_PP_ITERATION_FINISH_2 >= 11
+#        define NDNBOOST_PP_ITERATION_2 11
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 12 && BOOST_PP_ITERATION_FINISH_2 >= 12
-#        define BOOST_PP_ITERATION_2 12
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 12 && NDNBOOST_PP_ITERATION_FINISH_2 >= 12
+#        define NDNBOOST_PP_ITERATION_2 12
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 13 && BOOST_PP_ITERATION_FINISH_2 >= 13
-#        define BOOST_PP_ITERATION_2 13
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 13 && NDNBOOST_PP_ITERATION_FINISH_2 >= 13
+#        define NDNBOOST_PP_ITERATION_2 13
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 14 && BOOST_PP_ITERATION_FINISH_2 >= 14
-#        define BOOST_PP_ITERATION_2 14
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 14 && NDNBOOST_PP_ITERATION_FINISH_2 >= 14
+#        define NDNBOOST_PP_ITERATION_2 14
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 15 && BOOST_PP_ITERATION_FINISH_2 >= 15
-#        define BOOST_PP_ITERATION_2 15
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 15 && NDNBOOST_PP_ITERATION_FINISH_2 >= 15
+#        define NDNBOOST_PP_ITERATION_2 15
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 16 && BOOST_PP_ITERATION_FINISH_2 >= 16
-#        define BOOST_PP_ITERATION_2 16
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 16 && NDNBOOST_PP_ITERATION_FINISH_2 >= 16
+#        define NDNBOOST_PP_ITERATION_2 16
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 17 && BOOST_PP_ITERATION_FINISH_2 >= 17
-#        define BOOST_PP_ITERATION_2 17
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 17 && NDNBOOST_PP_ITERATION_FINISH_2 >= 17
+#        define NDNBOOST_PP_ITERATION_2 17
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 18 && BOOST_PP_ITERATION_FINISH_2 >= 18
-#        define BOOST_PP_ITERATION_2 18
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 18 && NDNBOOST_PP_ITERATION_FINISH_2 >= 18
+#        define NDNBOOST_PP_ITERATION_2 18
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 19 && BOOST_PP_ITERATION_FINISH_2 >= 19
-#        define BOOST_PP_ITERATION_2 19
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 19 && NDNBOOST_PP_ITERATION_FINISH_2 >= 19
+#        define NDNBOOST_PP_ITERATION_2 19
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 20 && BOOST_PP_ITERATION_FINISH_2 >= 20
-#        define BOOST_PP_ITERATION_2 20
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 20 && NDNBOOST_PP_ITERATION_FINISH_2 >= 20
+#        define NDNBOOST_PP_ITERATION_2 20
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 21 && BOOST_PP_ITERATION_FINISH_2 >= 21
-#        define BOOST_PP_ITERATION_2 21
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 21 && NDNBOOST_PP_ITERATION_FINISH_2 >= 21
+#        define NDNBOOST_PP_ITERATION_2 21
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 22 && BOOST_PP_ITERATION_FINISH_2 >= 22
-#        define BOOST_PP_ITERATION_2 22
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 22 && NDNBOOST_PP_ITERATION_FINISH_2 >= 22
+#        define NDNBOOST_PP_ITERATION_2 22
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 23 && BOOST_PP_ITERATION_FINISH_2 >= 23
-#        define BOOST_PP_ITERATION_2 23
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 23 && NDNBOOST_PP_ITERATION_FINISH_2 >= 23
+#        define NDNBOOST_PP_ITERATION_2 23
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 24 && BOOST_PP_ITERATION_FINISH_2 >= 24
-#        define BOOST_PP_ITERATION_2 24
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 24 && NDNBOOST_PP_ITERATION_FINISH_2 >= 24
+#        define NDNBOOST_PP_ITERATION_2 24
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 25 && BOOST_PP_ITERATION_FINISH_2 >= 25
-#        define BOOST_PP_ITERATION_2 25
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 25 && NDNBOOST_PP_ITERATION_FINISH_2 >= 25
+#        define NDNBOOST_PP_ITERATION_2 25
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 26 && BOOST_PP_ITERATION_FINISH_2 >= 26
-#        define BOOST_PP_ITERATION_2 26
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 26 && NDNBOOST_PP_ITERATION_FINISH_2 >= 26
+#        define NDNBOOST_PP_ITERATION_2 26
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 27 && BOOST_PP_ITERATION_FINISH_2 >= 27
-#        define BOOST_PP_ITERATION_2 27
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 27 && NDNBOOST_PP_ITERATION_FINISH_2 >= 27
+#        define NDNBOOST_PP_ITERATION_2 27
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 28 && BOOST_PP_ITERATION_FINISH_2 >= 28
-#        define BOOST_PP_ITERATION_2 28
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 28 && NDNBOOST_PP_ITERATION_FINISH_2 >= 28
+#        define NDNBOOST_PP_ITERATION_2 28
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 29 && BOOST_PP_ITERATION_FINISH_2 >= 29
-#        define BOOST_PP_ITERATION_2 29
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 29 && NDNBOOST_PP_ITERATION_FINISH_2 >= 29
+#        define NDNBOOST_PP_ITERATION_2 29
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 30 && BOOST_PP_ITERATION_FINISH_2 >= 30
-#        define BOOST_PP_ITERATION_2 30
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 30 && NDNBOOST_PP_ITERATION_FINISH_2 >= 30
+#        define NDNBOOST_PP_ITERATION_2 30
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 31 && BOOST_PP_ITERATION_FINISH_2 >= 31
-#        define BOOST_PP_ITERATION_2 31
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 31 && NDNBOOST_PP_ITERATION_FINISH_2 >= 31
+#        define NDNBOOST_PP_ITERATION_2 31
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 32 && BOOST_PP_ITERATION_FINISH_2 >= 32
-#        define BOOST_PP_ITERATION_2 32
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 32 && NDNBOOST_PP_ITERATION_FINISH_2 >= 32
+#        define NDNBOOST_PP_ITERATION_2 32
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 33 && BOOST_PP_ITERATION_FINISH_2 >= 33
-#        define BOOST_PP_ITERATION_2 33
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 33 && NDNBOOST_PP_ITERATION_FINISH_2 >= 33
+#        define NDNBOOST_PP_ITERATION_2 33
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 34 && BOOST_PP_ITERATION_FINISH_2 >= 34
-#        define BOOST_PP_ITERATION_2 34
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 34 && NDNBOOST_PP_ITERATION_FINISH_2 >= 34
+#        define NDNBOOST_PP_ITERATION_2 34
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 35 && BOOST_PP_ITERATION_FINISH_2 >= 35
-#        define BOOST_PP_ITERATION_2 35
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 35 && NDNBOOST_PP_ITERATION_FINISH_2 >= 35
+#        define NDNBOOST_PP_ITERATION_2 35
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 36 && BOOST_PP_ITERATION_FINISH_2 >= 36
-#        define BOOST_PP_ITERATION_2 36
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 36 && NDNBOOST_PP_ITERATION_FINISH_2 >= 36
+#        define NDNBOOST_PP_ITERATION_2 36
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 37 && BOOST_PP_ITERATION_FINISH_2 >= 37
-#        define BOOST_PP_ITERATION_2 37
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 37 && NDNBOOST_PP_ITERATION_FINISH_2 >= 37
+#        define NDNBOOST_PP_ITERATION_2 37
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 38 && BOOST_PP_ITERATION_FINISH_2 >= 38
-#        define BOOST_PP_ITERATION_2 38
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 38 && NDNBOOST_PP_ITERATION_FINISH_2 >= 38
+#        define NDNBOOST_PP_ITERATION_2 38
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 39 && BOOST_PP_ITERATION_FINISH_2 >= 39
-#        define BOOST_PP_ITERATION_2 39
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 39 && NDNBOOST_PP_ITERATION_FINISH_2 >= 39
+#        define NDNBOOST_PP_ITERATION_2 39
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 40 && BOOST_PP_ITERATION_FINISH_2 >= 40
-#        define BOOST_PP_ITERATION_2 40
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 40 && NDNBOOST_PP_ITERATION_FINISH_2 >= 40
+#        define NDNBOOST_PP_ITERATION_2 40
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 41 && BOOST_PP_ITERATION_FINISH_2 >= 41
-#        define BOOST_PP_ITERATION_2 41
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 41 && NDNBOOST_PP_ITERATION_FINISH_2 >= 41
+#        define NDNBOOST_PP_ITERATION_2 41
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 42 && BOOST_PP_ITERATION_FINISH_2 >= 42
-#        define BOOST_PP_ITERATION_2 42
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 42 && NDNBOOST_PP_ITERATION_FINISH_2 >= 42
+#        define NDNBOOST_PP_ITERATION_2 42
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 43 && BOOST_PP_ITERATION_FINISH_2 >= 43
-#        define BOOST_PP_ITERATION_2 43
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 43 && NDNBOOST_PP_ITERATION_FINISH_2 >= 43
+#        define NDNBOOST_PP_ITERATION_2 43
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 44 && BOOST_PP_ITERATION_FINISH_2 >= 44
-#        define BOOST_PP_ITERATION_2 44
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 44 && NDNBOOST_PP_ITERATION_FINISH_2 >= 44
+#        define NDNBOOST_PP_ITERATION_2 44
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 45 && BOOST_PP_ITERATION_FINISH_2 >= 45
-#        define BOOST_PP_ITERATION_2 45
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 45 && NDNBOOST_PP_ITERATION_FINISH_2 >= 45
+#        define NDNBOOST_PP_ITERATION_2 45
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 46 && BOOST_PP_ITERATION_FINISH_2 >= 46
-#        define BOOST_PP_ITERATION_2 46
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 46 && NDNBOOST_PP_ITERATION_FINISH_2 >= 46
+#        define NDNBOOST_PP_ITERATION_2 46
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 47 && BOOST_PP_ITERATION_FINISH_2 >= 47
-#        define BOOST_PP_ITERATION_2 47
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 47 && NDNBOOST_PP_ITERATION_FINISH_2 >= 47
+#        define NDNBOOST_PP_ITERATION_2 47
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 48 && BOOST_PP_ITERATION_FINISH_2 >= 48
-#        define BOOST_PP_ITERATION_2 48
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 48 && NDNBOOST_PP_ITERATION_FINISH_2 >= 48
+#        define NDNBOOST_PP_ITERATION_2 48
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 49 && BOOST_PP_ITERATION_FINISH_2 >= 49
-#        define BOOST_PP_ITERATION_2 49
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 49 && NDNBOOST_PP_ITERATION_FINISH_2 >= 49
+#        define NDNBOOST_PP_ITERATION_2 49
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 50 && BOOST_PP_ITERATION_FINISH_2 >= 50
-#        define BOOST_PP_ITERATION_2 50
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 50 && NDNBOOST_PP_ITERATION_FINISH_2 >= 50
+#        define NDNBOOST_PP_ITERATION_2 50
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 51 && BOOST_PP_ITERATION_FINISH_2 >= 51
-#        define BOOST_PP_ITERATION_2 51
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 51 && NDNBOOST_PP_ITERATION_FINISH_2 >= 51
+#        define NDNBOOST_PP_ITERATION_2 51
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 52 && BOOST_PP_ITERATION_FINISH_2 >= 52
-#        define BOOST_PP_ITERATION_2 52
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 52 && NDNBOOST_PP_ITERATION_FINISH_2 >= 52
+#        define NDNBOOST_PP_ITERATION_2 52
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 53 && BOOST_PP_ITERATION_FINISH_2 >= 53
-#        define BOOST_PP_ITERATION_2 53
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 53 && NDNBOOST_PP_ITERATION_FINISH_2 >= 53
+#        define NDNBOOST_PP_ITERATION_2 53
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 54 && BOOST_PP_ITERATION_FINISH_2 >= 54
-#        define BOOST_PP_ITERATION_2 54
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 54 && NDNBOOST_PP_ITERATION_FINISH_2 >= 54
+#        define NDNBOOST_PP_ITERATION_2 54
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 55 && BOOST_PP_ITERATION_FINISH_2 >= 55
-#        define BOOST_PP_ITERATION_2 55
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 55 && NDNBOOST_PP_ITERATION_FINISH_2 >= 55
+#        define NDNBOOST_PP_ITERATION_2 55
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 56 && BOOST_PP_ITERATION_FINISH_2 >= 56
-#        define BOOST_PP_ITERATION_2 56
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 56 && NDNBOOST_PP_ITERATION_FINISH_2 >= 56
+#        define NDNBOOST_PP_ITERATION_2 56
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 57 && BOOST_PP_ITERATION_FINISH_2 >= 57
-#        define BOOST_PP_ITERATION_2 57
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 57 && NDNBOOST_PP_ITERATION_FINISH_2 >= 57
+#        define NDNBOOST_PP_ITERATION_2 57
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 58 && BOOST_PP_ITERATION_FINISH_2 >= 58
-#        define BOOST_PP_ITERATION_2 58
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 58 && NDNBOOST_PP_ITERATION_FINISH_2 >= 58
+#        define NDNBOOST_PP_ITERATION_2 58
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 59 && BOOST_PP_ITERATION_FINISH_2 >= 59
-#        define BOOST_PP_ITERATION_2 59
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 59 && NDNBOOST_PP_ITERATION_FINISH_2 >= 59
+#        define NDNBOOST_PP_ITERATION_2 59
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 60 && BOOST_PP_ITERATION_FINISH_2 >= 60
-#        define BOOST_PP_ITERATION_2 60
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 60 && NDNBOOST_PP_ITERATION_FINISH_2 >= 60
+#        define NDNBOOST_PP_ITERATION_2 60
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 61 && BOOST_PP_ITERATION_FINISH_2 >= 61
-#        define BOOST_PP_ITERATION_2 61
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 61 && NDNBOOST_PP_ITERATION_FINISH_2 >= 61
+#        define NDNBOOST_PP_ITERATION_2 61
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 62 && BOOST_PP_ITERATION_FINISH_2 >= 62
-#        define BOOST_PP_ITERATION_2 62
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 62 && NDNBOOST_PP_ITERATION_FINISH_2 >= 62
+#        define NDNBOOST_PP_ITERATION_2 62
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 63 && BOOST_PP_ITERATION_FINISH_2 >= 63
-#        define BOOST_PP_ITERATION_2 63
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 63 && NDNBOOST_PP_ITERATION_FINISH_2 >= 63
+#        define NDNBOOST_PP_ITERATION_2 63
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 64 && BOOST_PP_ITERATION_FINISH_2 >= 64
-#        define BOOST_PP_ITERATION_2 64
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 64 && NDNBOOST_PP_ITERATION_FINISH_2 >= 64
+#        define NDNBOOST_PP_ITERATION_2 64
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 65 && BOOST_PP_ITERATION_FINISH_2 >= 65
-#        define BOOST_PP_ITERATION_2 65
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 65 && NDNBOOST_PP_ITERATION_FINISH_2 >= 65
+#        define NDNBOOST_PP_ITERATION_2 65
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 66 && BOOST_PP_ITERATION_FINISH_2 >= 66
-#        define BOOST_PP_ITERATION_2 66
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 66 && NDNBOOST_PP_ITERATION_FINISH_2 >= 66
+#        define NDNBOOST_PP_ITERATION_2 66
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 67 && BOOST_PP_ITERATION_FINISH_2 >= 67
-#        define BOOST_PP_ITERATION_2 67
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 67 && NDNBOOST_PP_ITERATION_FINISH_2 >= 67
+#        define NDNBOOST_PP_ITERATION_2 67
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 68 && BOOST_PP_ITERATION_FINISH_2 >= 68
-#        define BOOST_PP_ITERATION_2 68
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 68 && NDNBOOST_PP_ITERATION_FINISH_2 >= 68
+#        define NDNBOOST_PP_ITERATION_2 68
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 69 && BOOST_PP_ITERATION_FINISH_2 >= 69
-#        define BOOST_PP_ITERATION_2 69
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 69 && NDNBOOST_PP_ITERATION_FINISH_2 >= 69
+#        define NDNBOOST_PP_ITERATION_2 69
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 70 && BOOST_PP_ITERATION_FINISH_2 >= 70
-#        define BOOST_PP_ITERATION_2 70
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 70 && NDNBOOST_PP_ITERATION_FINISH_2 >= 70
+#        define NDNBOOST_PP_ITERATION_2 70
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 71 && BOOST_PP_ITERATION_FINISH_2 >= 71
-#        define BOOST_PP_ITERATION_2 71
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 71 && NDNBOOST_PP_ITERATION_FINISH_2 >= 71
+#        define NDNBOOST_PP_ITERATION_2 71
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 72 && BOOST_PP_ITERATION_FINISH_2 >= 72
-#        define BOOST_PP_ITERATION_2 72
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 72 && NDNBOOST_PP_ITERATION_FINISH_2 >= 72
+#        define NDNBOOST_PP_ITERATION_2 72
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 73 && BOOST_PP_ITERATION_FINISH_2 >= 73
-#        define BOOST_PP_ITERATION_2 73
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 73 && NDNBOOST_PP_ITERATION_FINISH_2 >= 73
+#        define NDNBOOST_PP_ITERATION_2 73
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 74 && BOOST_PP_ITERATION_FINISH_2 >= 74
-#        define BOOST_PP_ITERATION_2 74
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 74 && NDNBOOST_PP_ITERATION_FINISH_2 >= 74
+#        define NDNBOOST_PP_ITERATION_2 74
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 75 && BOOST_PP_ITERATION_FINISH_2 >= 75
-#        define BOOST_PP_ITERATION_2 75
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 75 && NDNBOOST_PP_ITERATION_FINISH_2 >= 75
+#        define NDNBOOST_PP_ITERATION_2 75
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 76 && BOOST_PP_ITERATION_FINISH_2 >= 76
-#        define BOOST_PP_ITERATION_2 76
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 76 && NDNBOOST_PP_ITERATION_FINISH_2 >= 76
+#        define NDNBOOST_PP_ITERATION_2 76
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 77 && BOOST_PP_ITERATION_FINISH_2 >= 77
-#        define BOOST_PP_ITERATION_2 77
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 77 && NDNBOOST_PP_ITERATION_FINISH_2 >= 77
+#        define NDNBOOST_PP_ITERATION_2 77
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 78 && BOOST_PP_ITERATION_FINISH_2 >= 78
-#        define BOOST_PP_ITERATION_2 78
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 78 && NDNBOOST_PP_ITERATION_FINISH_2 >= 78
+#        define NDNBOOST_PP_ITERATION_2 78
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 79 && BOOST_PP_ITERATION_FINISH_2 >= 79
-#        define BOOST_PP_ITERATION_2 79
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 79 && NDNBOOST_PP_ITERATION_FINISH_2 >= 79
+#        define NDNBOOST_PP_ITERATION_2 79
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 80 && BOOST_PP_ITERATION_FINISH_2 >= 80
-#        define BOOST_PP_ITERATION_2 80
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 80 && NDNBOOST_PP_ITERATION_FINISH_2 >= 80
+#        define NDNBOOST_PP_ITERATION_2 80
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 81 && BOOST_PP_ITERATION_FINISH_2 >= 81
-#        define BOOST_PP_ITERATION_2 81
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 81 && NDNBOOST_PP_ITERATION_FINISH_2 >= 81
+#        define NDNBOOST_PP_ITERATION_2 81
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 82 && BOOST_PP_ITERATION_FINISH_2 >= 82
-#        define BOOST_PP_ITERATION_2 82
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 82 && NDNBOOST_PP_ITERATION_FINISH_2 >= 82
+#        define NDNBOOST_PP_ITERATION_2 82
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 83 && BOOST_PP_ITERATION_FINISH_2 >= 83
-#        define BOOST_PP_ITERATION_2 83
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 83 && NDNBOOST_PP_ITERATION_FINISH_2 >= 83
+#        define NDNBOOST_PP_ITERATION_2 83
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 84 && BOOST_PP_ITERATION_FINISH_2 >= 84
-#        define BOOST_PP_ITERATION_2 84
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 84 && NDNBOOST_PP_ITERATION_FINISH_2 >= 84
+#        define NDNBOOST_PP_ITERATION_2 84
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 85 && BOOST_PP_ITERATION_FINISH_2 >= 85
-#        define BOOST_PP_ITERATION_2 85
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 85 && NDNBOOST_PP_ITERATION_FINISH_2 >= 85
+#        define NDNBOOST_PP_ITERATION_2 85
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 86 && BOOST_PP_ITERATION_FINISH_2 >= 86
-#        define BOOST_PP_ITERATION_2 86
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 86 && NDNBOOST_PP_ITERATION_FINISH_2 >= 86
+#        define NDNBOOST_PP_ITERATION_2 86
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 87 && BOOST_PP_ITERATION_FINISH_2 >= 87
-#        define BOOST_PP_ITERATION_2 87
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 87 && NDNBOOST_PP_ITERATION_FINISH_2 >= 87
+#        define NDNBOOST_PP_ITERATION_2 87
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 88 && BOOST_PP_ITERATION_FINISH_2 >= 88
-#        define BOOST_PP_ITERATION_2 88
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 88 && NDNBOOST_PP_ITERATION_FINISH_2 >= 88
+#        define NDNBOOST_PP_ITERATION_2 88
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 89 && BOOST_PP_ITERATION_FINISH_2 >= 89
-#        define BOOST_PP_ITERATION_2 89
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 89 && NDNBOOST_PP_ITERATION_FINISH_2 >= 89
+#        define NDNBOOST_PP_ITERATION_2 89
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 90 && BOOST_PP_ITERATION_FINISH_2 >= 90
-#        define BOOST_PP_ITERATION_2 90
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 90 && NDNBOOST_PP_ITERATION_FINISH_2 >= 90
+#        define NDNBOOST_PP_ITERATION_2 90
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 91 && BOOST_PP_ITERATION_FINISH_2 >= 91
-#        define BOOST_PP_ITERATION_2 91
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 91 && NDNBOOST_PP_ITERATION_FINISH_2 >= 91
+#        define NDNBOOST_PP_ITERATION_2 91
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 92 && BOOST_PP_ITERATION_FINISH_2 >= 92
-#        define BOOST_PP_ITERATION_2 92
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 92 && NDNBOOST_PP_ITERATION_FINISH_2 >= 92
+#        define NDNBOOST_PP_ITERATION_2 92
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 93 && BOOST_PP_ITERATION_FINISH_2 >= 93
-#        define BOOST_PP_ITERATION_2 93
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 93 && NDNBOOST_PP_ITERATION_FINISH_2 >= 93
+#        define NDNBOOST_PP_ITERATION_2 93
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 94 && BOOST_PP_ITERATION_FINISH_2 >= 94
-#        define BOOST_PP_ITERATION_2 94
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 94 && NDNBOOST_PP_ITERATION_FINISH_2 >= 94
+#        define NDNBOOST_PP_ITERATION_2 94
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 95 && BOOST_PP_ITERATION_FINISH_2 >= 95
-#        define BOOST_PP_ITERATION_2 95
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 95 && NDNBOOST_PP_ITERATION_FINISH_2 >= 95
+#        define NDNBOOST_PP_ITERATION_2 95
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 96 && BOOST_PP_ITERATION_FINISH_2 >= 96
-#        define BOOST_PP_ITERATION_2 96
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 96 && NDNBOOST_PP_ITERATION_FINISH_2 >= 96
+#        define NDNBOOST_PP_ITERATION_2 96
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 97 && BOOST_PP_ITERATION_FINISH_2 >= 97
-#        define BOOST_PP_ITERATION_2 97
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 97 && NDNBOOST_PP_ITERATION_FINISH_2 >= 97
+#        define NDNBOOST_PP_ITERATION_2 97
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 98 && BOOST_PP_ITERATION_FINISH_2 >= 98
-#        define BOOST_PP_ITERATION_2 98
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 98 && NDNBOOST_PP_ITERATION_FINISH_2 >= 98
+#        define NDNBOOST_PP_ITERATION_2 98
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 99 && BOOST_PP_ITERATION_FINISH_2 >= 99
-#        define BOOST_PP_ITERATION_2 99
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 99 && NDNBOOST_PP_ITERATION_FINISH_2 >= 99
+#        define NDNBOOST_PP_ITERATION_2 99
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 100 && BOOST_PP_ITERATION_FINISH_2 >= 100
-#        define BOOST_PP_ITERATION_2 100
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 100 && NDNBOOST_PP_ITERATION_FINISH_2 >= 100
+#        define NDNBOOST_PP_ITERATION_2 100
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 101 && BOOST_PP_ITERATION_FINISH_2 >= 101
-#        define BOOST_PP_ITERATION_2 101
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 101 && NDNBOOST_PP_ITERATION_FINISH_2 >= 101
+#        define NDNBOOST_PP_ITERATION_2 101
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 102 && BOOST_PP_ITERATION_FINISH_2 >= 102
-#        define BOOST_PP_ITERATION_2 102
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 102 && NDNBOOST_PP_ITERATION_FINISH_2 >= 102
+#        define NDNBOOST_PP_ITERATION_2 102
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 103 && BOOST_PP_ITERATION_FINISH_2 >= 103
-#        define BOOST_PP_ITERATION_2 103
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 103 && NDNBOOST_PP_ITERATION_FINISH_2 >= 103
+#        define NDNBOOST_PP_ITERATION_2 103
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 104 && BOOST_PP_ITERATION_FINISH_2 >= 104
-#        define BOOST_PP_ITERATION_2 104
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 104 && NDNBOOST_PP_ITERATION_FINISH_2 >= 104
+#        define NDNBOOST_PP_ITERATION_2 104
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 105 && BOOST_PP_ITERATION_FINISH_2 >= 105
-#        define BOOST_PP_ITERATION_2 105
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 105 && NDNBOOST_PP_ITERATION_FINISH_2 >= 105
+#        define NDNBOOST_PP_ITERATION_2 105
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 106 && BOOST_PP_ITERATION_FINISH_2 >= 106
-#        define BOOST_PP_ITERATION_2 106
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 106 && NDNBOOST_PP_ITERATION_FINISH_2 >= 106
+#        define NDNBOOST_PP_ITERATION_2 106
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 107 && BOOST_PP_ITERATION_FINISH_2 >= 107
-#        define BOOST_PP_ITERATION_2 107
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 107 && NDNBOOST_PP_ITERATION_FINISH_2 >= 107
+#        define NDNBOOST_PP_ITERATION_2 107
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 108 && BOOST_PP_ITERATION_FINISH_2 >= 108
-#        define BOOST_PP_ITERATION_2 108
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 108 && NDNBOOST_PP_ITERATION_FINISH_2 >= 108
+#        define NDNBOOST_PP_ITERATION_2 108
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 109 && BOOST_PP_ITERATION_FINISH_2 >= 109
-#        define BOOST_PP_ITERATION_2 109
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 109 && NDNBOOST_PP_ITERATION_FINISH_2 >= 109
+#        define NDNBOOST_PP_ITERATION_2 109
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 110 && BOOST_PP_ITERATION_FINISH_2 >= 110
-#        define BOOST_PP_ITERATION_2 110
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 110 && NDNBOOST_PP_ITERATION_FINISH_2 >= 110
+#        define NDNBOOST_PP_ITERATION_2 110
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 111 && BOOST_PP_ITERATION_FINISH_2 >= 111
-#        define BOOST_PP_ITERATION_2 111
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 111 && NDNBOOST_PP_ITERATION_FINISH_2 >= 111
+#        define NDNBOOST_PP_ITERATION_2 111
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 112 && BOOST_PP_ITERATION_FINISH_2 >= 112
-#        define BOOST_PP_ITERATION_2 112
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 112 && NDNBOOST_PP_ITERATION_FINISH_2 >= 112
+#        define NDNBOOST_PP_ITERATION_2 112
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 113 && BOOST_PP_ITERATION_FINISH_2 >= 113
-#        define BOOST_PP_ITERATION_2 113
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 113 && NDNBOOST_PP_ITERATION_FINISH_2 >= 113
+#        define NDNBOOST_PP_ITERATION_2 113
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 114 && BOOST_PP_ITERATION_FINISH_2 >= 114
-#        define BOOST_PP_ITERATION_2 114
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 114 && NDNBOOST_PP_ITERATION_FINISH_2 >= 114
+#        define NDNBOOST_PP_ITERATION_2 114
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 115 && BOOST_PP_ITERATION_FINISH_2 >= 115
-#        define BOOST_PP_ITERATION_2 115
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 115 && NDNBOOST_PP_ITERATION_FINISH_2 >= 115
+#        define NDNBOOST_PP_ITERATION_2 115
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 116 && BOOST_PP_ITERATION_FINISH_2 >= 116
-#        define BOOST_PP_ITERATION_2 116
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 116 && NDNBOOST_PP_ITERATION_FINISH_2 >= 116
+#        define NDNBOOST_PP_ITERATION_2 116
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 117 && BOOST_PP_ITERATION_FINISH_2 >= 117
-#        define BOOST_PP_ITERATION_2 117
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 117 && NDNBOOST_PP_ITERATION_FINISH_2 >= 117
+#        define NDNBOOST_PP_ITERATION_2 117
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 118 && BOOST_PP_ITERATION_FINISH_2 >= 118
-#        define BOOST_PP_ITERATION_2 118
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 118 && NDNBOOST_PP_ITERATION_FINISH_2 >= 118
+#        define NDNBOOST_PP_ITERATION_2 118
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 119 && BOOST_PP_ITERATION_FINISH_2 >= 119
-#        define BOOST_PP_ITERATION_2 119
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 119 && NDNBOOST_PP_ITERATION_FINISH_2 >= 119
+#        define NDNBOOST_PP_ITERATION_2 119
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 120 && BOOST_PP_ITERATION_FINISH_2 >= 120
-#        define BOOST_PP_ITERATION_2 120
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 120 && NDNBOOST_PP_ITERATION_FINISH_2 >= 120
+#        define NDNBOOST_PP_ITERATION_2 120
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 121 && BOOST_PP_ITERATION_FINISH_2 >= 121
-#        define BOOST_PP_ITERATION_2 121
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 121 && NDNBOOST_PP_ITERATION_FINISH_2 >= 121
+#        define NDNBOOST_PP_ITERATION_2 121
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 122 && BOOST_PP_ITERATION_FINISH_2 >= 122
-#        define BOOST_PP_ITERATION_2 122
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 122 && NDNBOOST_PP_ITERATION_FINISH_2 >= 122
+#        define NDNBOOST_PP_ITERATION_2 122
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 123 && BOOST_PP_ITERATION_FINISH_2 >= 123
-#        define BOOST_PP_ITERATION_2 123
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 123 && NDNBOOST_PP_ITERATION_FINISH_2 >= 123
+#        define NDNBOOST_PP_ITERATION_2 123
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 124 && BOOST_PP_ITERATION_FINISH_2 >= 124
-#        define BOOST_PP_ITERATION_2 124
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 124 && NDNBOOST_PP_ITERATION_FINISH_2 >= 124
+#        define NDNBOOST_PP_ITERATION_2 124
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 125 && BOOST_PP_ITERATION_FINISH_2 >= 125
-#        define BOOST_PP_ITERATION_2 125
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 125 && NDNBOOST_PP_ITERATION_FINISH_2 >= 125
+#        define NDNBOOST_PP_ITERATION_2 125
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 126 && BOOST_PP_ITERATION_FINISH_2 >= 126
-#        define BOOST_PP_ITERATION_2 126
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 126 && NDNBOOST_PP_ITERATION_FINISH_2 >= 126
+#        define NDNBOOST_PP_ITERATION_2 126
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 127 && BOOST_PP_ITERATION_FINISH_2 >= 127
-#        define BOOST_PP_ITERATION_2 127
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 127 && NDNBOOST_PP_ITERATION_FINISH_2 >= 127
+#        define NDNBOOST_PP_ITERATION_2 127
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 128 && BOOST_PP_ITERATION_FINISH_2 >= 128
-#        define BOOST_PP_ITERATION_2 128
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 128 && NDNBOOST_PP_ITERATION_FINISH_2 >= 128
+#        define NDNBOOST_PP_ITERATION_2 128
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 129 && BOOST_PP_ITERATION_FINISH_2 >= 129
-#        define BOOST_PP_ITERATION_2 129
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 129 && NDNBOOST_PP_ITERATION_FINISH_2 >= 129
+#        define NDNBOOST_PP_ITERATION_2 129
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 130 && BOOST_PP_ITERATION_FINISH_2 >= 130
-#        define BOOST_PP_ITERATION_2 130
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 130 && NDNBOOST_PP_ITERATION_FINISH_2 >= 130
+#        define NDNBOOST_PP_ITERATION_2 130
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 131 && BOOST_PP_ITERATION_FINISH_2 >= 131
-#        define BOOST_PP_ITERATION_2 131
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 131 && NDNBOOST_PP_ITERATION_FINISH_2 >= 131
+#        define NDNBOOST_PP_ITERATION_2 131
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 132 && BOOST_PP_ITERATION_FINISH_2 >= 132
-#        define BOOST_PP_ITERATION_2 132
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 132 && NDNBOOST_PP_ITERATION_FINISH_2 >= 132
+#        define NDNBOOST_PP_ITERATION_2 132
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 133 && BOOST_PP_ITERATION_FINISH_2 >= 133
-#        define BOOST_PP_ITERATION_2 133
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 133 && NDNBOOST_PP_ITERATION_FINISH_2 >= 133
+#        define NDNBOOST_PP_ITERATION_2 133
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 134 && BOOST_PP_ITERATION_FINISH_2 >= 134
-#        define BOOST_PP_ITERATION_2 134
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 134 && NDNBOOST_PP_ITERATION_FINISH_2 >= 134
+#        define NDNBOOST_PP_ITERATION_2 134
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 135 && BOOST_PP_ITERATION_FINISH_2 >= 135
-#        define BOOST_PP_ITERATION_2 135
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 135 && NDNBOOST_PP_ITERATION_FINISH_2 >= 135
+#        define NDNBOOST_PP_ITERATION_2 135
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 136 && BOOST_PP_ITERATION_FINISH_2 >= 136
-#        define BOOST_PP_ITERATION_2 136
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 136 && NDNBOOST_PP_ITERATION_FINISH_2 >= 136
+#        define NDNBOOST_PP_ITERATION_2 136
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 137 && BOOST_PP_ITERATION_FINISH_2 >= 137
-#        define BOOST_PP_ITERATION_2 137
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 137 && NDNBOOST_PP_ITERATION_FINISH_2 >= 137
+#        define NDNBOOST_PP_ITERATION_2 137
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 138 && BOOST_PP_ITERATION_FINISH_2 >= 138
-#        define BOOST_PP_ITERATION_2 138
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 138 && NDNBOOST_PP_ITERATION_FINISH_2 >= 138
+#        define NDNBOOST_PP_ITERATION_2 138
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 139 && BOOST_PP_ITERATION_FINISH_2 >= 139
-#        define BOOST_PP_ITERATION_2 139
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 139 && NDNBOOST_PP_ITERATION_FINISH_2 >= 139
+#        define NDNBOOST_PP_ITERATION_2 139
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 140 && BOOST_PP_ITERATION_FINISH_2 >= 140
-#        define BOOST_PP_ITERATION_2 140
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 140 && NDNBOOST_PP_ITERATION_FINISH_2 >= 140
+#        define NDNBOOST_PP_ITERATION_2 140
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 141 && BOOST_PP_ITERATION_FINISH_2 >= 141
-#        define BOOST_PP_ITERATION_2 141
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 141 && NDNBOOST_PP_ITERATION_FINISH_2 >= 141
+#        define NDNBOOST_PP_ITERATION_2 141
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 142 && BOOST_PP_ITERATION_FINISH_2 >= 142
-#        define BOOST_PP_ITERATION_2 142
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 142 && NDNBOOST_PP_ITERATION_FINISH_2 >= 142
+#        define NDNBOOST_PP_ITERATION_2 142
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 143 && BOOST_PP_ITERATION_FINISH_2 >= 143
-#        define BOOST_PP_ITERATION_2 143
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 143 && NDNBOOST_PP_ITERATION_FINISH_2 >= 143
+#        define NDNBOOST_PP_ITERATION_2 143
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 144 && BOOST_PP_ITERATION_FINISH_2 >= 144
-#        define BOOST_PP_ITERATION_2 144
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 144 && NDNBOOST_PP_ITERATION_FINISH_2 >= 144
+#        define NDNBOOST_PP_ITERATION_2 144
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 145 && BOOST_PP_ITERATION_FINISH_2 >= 145
-#        define BOOST_PP_ITERATION_2 145
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 145 && NDNBOOST_PP_ITERATION_FINISH_2 >= 145
+#        define NDNBOOST_PP_ITERATION_2 145
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 146 && BOOST_PP_ITERATION_FINISH_2 >= 146
-#        define BOOST_PP_ITERATION_2 146
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 146 && NDNBOOST_PP_ITERATION_FINISH_2 >= 146
+#        define NDNBOOST_PP_ITERATION_2 146
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 147 && BOOST_PP_ITERATION_FINISH_2 >= 147
-#        define BOOST_PP_ITERATION_2 147
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 147 && NDNBOOST_PP_ITERATION_FINISH_2 >= 147
+#        define NDNBOOST_PP_ITERATION_2 147
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 148 && BOOST_PP_ITERATION_FINISH_2 >= 148
-#        define BOOST_PP_ITERATION_2 148
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 148 && NDNBOOST_PP_ITERATION_FINISH_2 >= 148
+#        define NDNBOOST_PP_ITERATION_2 148
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 149 && BOOST_PP_ITERATION_FINISH_2 >= 149
-#        define BOOST_PP_ITERATION_2 149
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 149 && NDNBOOST_PP_ITERATION_FINISH_2 >= 149
+#        define NDNBOOST_PP_ITERATION_2 149
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 150 && BOOST_PP_ITERATION_FINISH_2 >= 150
-#        define BOOST_PP_ITERATION_2 150
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 150 && NDNBOOST_PP_ITERATION_FINISH_2 >= 150
+#        define NDNBOOST_PP_ITERATION_2 150
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 151 && BOOST_PP_ITERATION_FINISH_2 >= 151
-#        define BOOST_PP_ITERATION_2 151
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 151 && NDNBOOST_PP_ITERATION_FINISH_2 >= 151
+#        define NDNBOOST_PP_ITERATION_2 151
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 152 && BOOST_PP_ITERATION_FINISH_2 >= 152
-#        define BOOST_PP_ITERATION_2 152
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 152 && NDNBOOST_PP_ITERATION_FINISH_2 >= 152
+#        define NDNBOOST_PP_ITERATION_2 152
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 153 && BOOST_PP_ITERATION_FINISH_2 >= 153
-#        define BOOST_PP_ITERATION_2 153
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 153 && NDNBOOST_PP_ITERATION_FINISH_2 >= 153
+#        define NDNBOOST_PP_ITERATION_2 153
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 154 && BOOST_PP_ITERATION_FINISH_2 >= 154
-#        define BOOST_PP_ITERATION_2 154
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 154 && NDNBOOST_PP_ITERATION_FINISH_2 >= 154
+#        define NDNBOOST_PP_ITERATION_2 154
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 155 && BOOST_PP_ITERATION_FINISH_2 >= 155
-#        define BOOST_PP_ITERATION_2 155
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 155 && NDNBOOST_PP_ITERATION_FINISH_2 >= 155
+#        define NDNBOOST_PP_ITERATION_2 155
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 156 && BOOST_PP_ITERATION_FINISH_2 >= 156
-#        define BOOST_PP_ITERATION_2 156
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 156 && NDNBOOST_PP_ITERATION_FINISH_2 >= 156
+#        define NDNBOOST_PP_ITERATION_2 156
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 157 && BOOST_PP_ITERATION_FINISH_2 >= 157
-#        define BOOST_PP_ITERATION_2 157
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 157 && NDNBOOST_PP_ITERATION_FINISH_2 >= 157
+#        define NDNBOOST_PP_ITERATION_2 157
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 158 && BOOST_PP_ITERATION_FINISH_2 >= 158
-#        define BOOST_PP_ITERATION_2 158
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 158 && NDNBOOST_PP_ITERATION_FINISH_2 >= 158
+#        define NDNBOOST_PP_ITERATION_2 158
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 159 && BOOST_PP_ITERATION_FINISH_2 >= 159
-#        define BOOST_PP_ITERATION_2 159
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 159 && NDNBOOST_PP_ITERATION_FINISH_2 >= 159
+#        define NDNBOOST_PP_ITERATION_2 159
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 160 && BOOST_PP_ITERATION_FINISH_2 >= 160
-#        define BOOST_PP_ITERATION_2 160
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 160 && NDNBOOST_PP_ITERATION_FINISH_2 >= 160
+#        define NDNBOOST_PP_ITERATION_2 160
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 161 && BOOST_PP_ITERATION_FINISH_2 >= 161
-#        define BOOST_PP_ITERATION_2 161
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 161 && NDNBOOST_PP_ITERATION_FINISH_2 >= 161
+#        define NDNBOOST_PP_ITERATION_2 161
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 162 && BOOST_PP_ITERATION_FINISH_2 >= 162
-#        define BOOST_PP_ITERATION_2 162
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 162 && NDNBOOST_PP_ITERATION_FINISH_2 >= 162
+#        define NDNBOOST_PP_ITERATION_2 162
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 163 && BOOST_PP_ITERATION_FINISH_2 >= 163
-#        define BOOST_PP_ITERATION_2 163
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 163 && NDNBOOST_PP_ITERATION_FINISH_2 >= 163
+#        define NDNBOOST_PP_ITERATION_2 163
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 164 && BOOST_PP_ITERATION_FINISH_2 >= 164
-#        define BOOST_PP_ITERATION_2 164
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 164 && NDNBOOST_PP_ITERATION_FINISH_2 >= 164
+#        define NDNBOOST_PP_ITERATION_2 164
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 165 && BOOST_PP_ITERATION_FINISH_2 >= 165
-#        define BOOST_PP_ITERATION_2 165
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 165 && NDNBOOST_PP_ITERATION_FINISH_2 >= 165
+#        define NDNBOOST_PP_ITERATION_2 165
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 166 && BOOST_PP_ITERATION_FINISH_2 >= 166
-#        define BOOST_PP_ITERATION_2 166
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 166 && NDNBOOST_PP_ITERATION_FINISH_2 >= 166
+#        define NDNBOOST_PP_ITERATION_2 166
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 167 && BOOST_PP_ITERATION_FINISH_2 >= 167
-#        define BOOST_PP_ITERATION_2 167
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 167 && NDNBOOST_PP_ITERATION_FINISH_2 >= 167
+#        define NDNBOOST_PP_ITERATION_2 167
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 168 && BOOST_PP_ITERATION_FINISH_2 >= 168
-#        define BOOST_PP_ITERATION_2 168
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 168 && NDNBOOST_PP_ITERATION_FINISH_2 >= 168
+#        define NDNBOOST_PP_ITERATION_2 168
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 169 && BOOST_PP_ITERATION_FINISH_2 >= 169
-#        define BOOST_PP_ITERATION_2 169
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 169 && NDNBOOST_PP_ITERATION_FINISH_2 >= 169
+#        define NDNBOOST_PP_ITERATION_2 169
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 170 && BOOST_PP_ITERATION_FINISH_2 >= 170
-#        define BOOST_PP_ITERATION_2 170
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 170 && NDNBOOST_PP_ITERATION_FINISH_2 >= 170
+#        define NDNBOOST_PP_ITERATION_2 170
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 171 && BOOST_PP_ITERATION_FINISH_2 >= 171
-#        define BOOST_PP_ITERATION_2 171
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 171 && NDNBOOST_PP_ITERATION_FINISH_2 >= 171
+#        define NDNBOOST_PP_ITERATION_2 171
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 172 && BOOST_PP_ITERATION_FINISH_2 >= 172
-#        define BOOST_PP_ITERATION_2 172
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 172 && NDNBOOST_PP_ITERATION_FINISH_2 >= 172
+#        define NDNBOOST_PP_ITERATION_2 172
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 173 && BOOST_PP_ITERATION_FINISH_2 >= 173
-#        define BOOST_PP_ITERATION_2 173
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 173 && NDNBOOST_PP_ITERATION_FINISH_2 >= 173
+#        define NDNBOOST_PP_ITERATION_2 173
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 174 && BOOST_PP_ITERATION_FINISH_2 >= 174
-#        define BOOST_PP_ITERATION_2 174
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 174 && NDNBOOST_PP_ITERATION_FINISH_2 >= 174
+#        define NDNBOOST_PP_ITERATION_2 174
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 175 && BOOST_PP_ITERATION_FINISH_2 >= 175
-#        define BOOST_PP_ITERATION_2 175
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 175 && NDNBOOST_PP_ITERATION_FINISH_2 >= 175
+#        define NDNBOOST_PP_ITERATION_2 175
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 176 && BOOST_PP_ITERATION_FINISH_2 >= 176
-#        define BOOST_PP_ITERATION_2 176
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 176 && NDNBOOST_PP_ITERATION_FINISH_2 >= 176
+#        define NDNBOOST_PP_ITERATION_2 176
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 177 && BOOST_PP_ITERATION_FINISH_2 >= 177
-#        define BOOST_PP_ITERATION_2 177
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 177 && NDNBOOST_PP_ITERATION_FINISH_2 >= 177
+#        define NDNBOOST_PP_ITERATION_2 177
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 178 && BOOST_PP_ITERATION_FINISH_2 >= 178
-#        define BOOST_PP_ITERATION_2 178
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 178 && NDNBOOST_PP_ITERATION_FINISH_2 >= 178
+#        define NDNBOOST_PP_ITERATION_2 178
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 179 && BOOST_PP_ITERATION_FINISH_2 >= 179
-#        define BOOST_PP_ITERATION_2 179
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 179 && NDNBOOST_PP_ITERATION_FINISH_2 >= 179
+#        define NDNBOOST_PP_ITERATION_2 179
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 180 && BOOST_PP_ITERATION_FINISH_2 >= 180
-#        define BOOST_PP_ITERATION_2 180
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 180 && NDNBOOST_PP_ITERATION_FINISH_2 >= 180
+#        define NDNBOOST_PP_ITERATION_2 180
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 181 && BOOST_PP_ITERATION_FINISH_2 >= 181
-#        define BOOST_PP_ITERATION_2 181
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 181 && NDNBOOST_PP_ITERATION_FINISH_2 >= 181
+#        define NDNBOOST_PP_ITERATION_2 181
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 182 && BOOST_PP_ITERATION_FINISH_2 >= 182
-#        define BOOST_PP_ITERATION_2 182
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 182 && NDNBOOST_PP_ITERATION_FINISH_2 >= 182
+#        define NDNBOOST_PP_ITERATION_2 182
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 183 && BOOST_PP_ITERATION_FINISH_2 >= 183
-#        define BOOST_PP_ITERATION_2 183
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 183 && NDNBOOST_PP_ITERATION_FINISH_2 >= 183
+#        define NDNBOOST_PP_ITERATION_2 183
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 184 && BOOST_PP_ITERATION_FINISH_2 >= 184
-#        define BOOST_PP_ITERATION_2 184
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 184 && NDNBOOST_PP_ITERATION_FINISH_2 >= 184
+#        define NDNBOOST_PP_ITERATION_2 184
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 185 && BOOST_PP_ITERATION_FINISH_2 >= 185
-#        define BOOST_PP_ITERATION_2 185
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 185 && NDNBOOST_PP_ITERATION_FINISH_2 >= 185
+#        define NDNBOOST_PP_ITERATION_2 185
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 186 && BOOST_PP_ITERATION_FINISH_2 >= 186
-#        define BOOST_PP_ITERATION_2 186
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 186 && NDNBOOST_PP_ITERATION_FINISH_2 >= 186
+#        define NDNBOOST_PP_ITERATION_2 186
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 187 && BOOST_PP_ITERATION_FINISH_2 >= 187
-#        define BOOST_PP_ITERATION_2 187
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 187 && NDNBOOST_PP_ITERATION_FINISH_2 >= 187
+#        define NDNBOOST_PP_ITERATION_2 187
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 188 && BOOST_PP_ITERATION_FINISH_2 >= 188
-#        define BOOST_PP_ITERATION_2 188
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 188 && NDNBOOST_PP_ITERATION_FINISH_2 >= 188
+#        define NDNBOOST_PP_ITERATION_2 188
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 189 && BOOST_PP_ITERATION_FINISH_2 >= 189
-#        define BOOST_PP_ITERATION_2 189
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 189 && NDNBOOST_PP_ITERATION_FINISH_2 >= 189
+#        define NDNBOOST_PP_ITERATION_2 189
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 190 && BOOST_PP_ITERATION_FINISH_2 >= 190
-#        define BOOST_PP_ITERATION_2 190
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 190 && NDNBOOST_PP_ITERATION_FINISH_2 >= 190
+#        define NDNBOOST_PP_ITERATION_2 190
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 191 && BOOST_PP_ITERATION_FINISH_2 >= 191
-#        define BOOST_PP_ITERATION_2 191
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 191 && NDNBOOST_PP_ITERATION_FINISH_2 >= 191
+#        define NDNBOOST_PP_ITERATION_2 191
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 192 && BOOST_PP_ITERATION_FINISH_2 >= 192
-#        define BOOST_PP_ITERATION_2 192
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 192 && NDNBOOST_PP_ITERATION_FINISH_2 >= 192
+#        define NDNBOOST_PP_ITERATION_2 192
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 193 && BOOST_PP_ITERATION_FINISH_2 >= 193
-#        define BOOST_PP_ITERATION_2 193
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 193 && NDNBOOST_PP_ITERATION_FINISH_2 >= 193
+#        define NDNBOOST_PP_ITERATION_2 193
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 194 && BOOST_PP_ITERATION_FINISH_2 >= 194
-#        define BOOST_PP_ITERATION_2 194
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 194 && NDNBOOST_PP_ITERATION_FINISH_2 >= 194
+#        define NDNBOOST_PP_ITERATION_2 194
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 195 && BOOST_PP_ITERATION_FINISH_2 >= 195
-#        define BOOST_PP_ITERATION_2 195
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 195 && NDNBOOST_PP_ITERATION_FINISH_2 >= 195
+#        define NDNBOOST_PP_ITERATION_2 195
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 196 && BOOST_PP_ITERATION_FINISH_2 >= 196
-#        define BOOST_PP_ITERATION_2 196
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 196 && NDNBOOST_PP_ITERATION_FINISH_2 >= 196
+#        define NDNBOOST_PP_ITERATION_2 196
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 197 && BOOST_PP_ITERATION_FINISH_2 >= 197
-#        define BOOST_PP_ITERATION_2 197
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 197 && NDNBOOST_PP_ITERATION_FINISH_2 >= 197
+#        define NDNBOOST_PP_ITERATION_2 197
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 198 && BOOST_PP_ITERATION_FINISH_2 >= 198
-#        define BOOST_PP_ITERATION_2 198
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 198 && NDNBOOST_PP_ITERATION_FINISH_2 >= 198
+#        define NDNBOOST_PP_ITERATION_2 198
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 199 && BOOST_PP_ITERATION_FINISH_2 >= 199
-#        define BOOST_PP_ITERATION_2 199
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 199 && NDNBOOST_PP_ITERATION_FINISH_2 >= 199
+#        define NDNBOOST_PP_ITERATION_2 199
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 200 && BOOST_PP_ITERATION_FINISH_2 >= 200
-#        define BOOST_PP_ITERATION_2 200
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 200 && NDNBOOST_PP_ITERATION_FINISH_2 >= 200
+#        define NDNBOOST_PP_ITERATION_2 200
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 201 && BOOST_PP_ITERATION_FINISH_2 >= 201
-#        define BOOST_PP_ITERATION_2 201
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 201 && NDNBOOST_PP_ITERATION_FINISH_2 >= 201
+#        define NDNBOOST_PP_ITERATION_2 201
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 202 && BOOST_PP_ITERATION_FINISH_2 >= 202
-#        define BOOST_PP_ITERATION_2 202
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 202 && NDNBOOST_PP_ITERATION_FINISH_2 >= 202
+#        define NDNBOOST_PP_ITERATION_2 202
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 203 && BOOST_PP_ITERATION_FINISH_2 >= 203
-#        define BOOST_PP_ITERATION_2 203
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 203 && NDNBOOST_PP_ITERATION_FINISH_2 >= 203
+#        define NDNBOOST_PP_ITERATION_2 203
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 204 && BOOST_PP_ITERATION_FINISH_2 >= 204
-#        define BOOST_PP_ITERATION_2 204
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 204 && NDNBOOST_PP_ITERATION_FINISH_2 >= 204
+#        define NDNBOOST_PP_ITERATION_2 204
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 205 && BOOST_PP_ITERATION_FINISH_2 >= 205
-#        define BOOST_PP_ITERATION_2 205
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 205 && NDNBOOST_PP_ITERATION_FINISH_2 >= 205
+#        define NDNBOOST_PP_ITERATION_2 205
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 206 && BOOST_PP_ITERATION_FINISH_2 >= 206
-#        define BOOST_PP_ITERATION_2 206
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 206 && NDNBOOST_PP_ITERATION_FINISH_2 >= 206
+#        define NDNBOOST_PP_ITERATION_2 206
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 207 && BOOST_PP_ITERATION_FINISH_2 >= 207
-#        define BOOST_PP_ITERATION_2 207
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 207 && NDNBOOST_PP_ITERATION_FINISH_2 >= 207
+#        define NDNBOOST_PP_ITERATION_2 207
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 208 && BOOST_PP_ITERATION_FINISH_2 >= 208
-#        define BOOST_PP_ITERATION_2 208
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 208 && NDNBOOST_PP_ITERATION_FINISH_2 >= 208
+#        define NDNBOOST_PP_ITERATION_2 208
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 209 && BOOST_PP_ITERATION_FINISH_2 >= 209
-#        define BOOST_PP_ITERATION_2 209
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 209 && NDNBOOST_PP_ITERATION_FINISH_2 >= 209
+#        define NDNBOOST_PP_ITERATION_2 209
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 210 && BOOST_PP_ITERATION_FINISH_2 >= 210
-#        define BOOST_PP_ITERATION_2 210
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 210 && NDNBOOST_PP_ITERATION_FINISH_2 >= 210
+#        define NDNBOOST_PP_ITERATION_2 210
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 211 && BOOST_PP_ITERATION_FINISH_2 >= 211
-#        define BOOST_PP_ITERATION_2 211
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 211 && NDNBOOST_PP_ITERATION_FINISH_2 >= 211
+#        define NDNBOOST_PP_ITERATION_2 211
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 212 && BOOST_PP_ITERATION_FINISH_2 >= 212
-#        define BOOST_PP_ITERATION_2 212
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 212 && NDNBOOST_PP_ITERATION_FINISH_2 >= 212
+#        define NDNBOOST_PP_ITERATION_2 212
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 213 && BOOST_PP_ITERATION_FINISH_2 >= 213
-#        define BOOST_PP_ITERATION_2 213
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 213 && NDNBOOST_PP_ITERATION_FINISH_2 >= 213
+#        define NDNBOOST_PP_ITERATION_2 213
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 214 && BOOST_PP_ITERATION_FINISH_2 >= 214
-#        define BOOST_PP_ITERATION_2 214
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 214 && NDNBOOST_PP_ITERATION_FINISH_2 >= 214
+#        define NDNBOOST_PP_ITERATION_2 214
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 215 && BOOST_PP_ITERATION_FINISH_2 >= 215
-#        define BOOST_PP_ITERATION_2 215
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 215 && NDNBOOST_PP_ITERATION_FINISH_2 >= 215
+#        define NDNBOOST_PP_ITERATION_2 215
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 216 && BOOST_PP_ITERATION_FINISH_2 >= 216
-#        define BOOST_PP_ITERATION_2 216
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 216 && NDNBOOST_PP_ITERATION_FINISH_2 >= 216
+#        define NDNBOOST_PP_ITERATION_2 216
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 217 && BOOST_PP_ITERATION_FINISH_2 >= 217
-#        define BOOST_PP_ITERATION_2 217
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 217 && NDNBOOST_PP_ITERATION_FINISH_2 >= 217
+#        define NDNBOOST_PP_ITERATION_2 217
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 218 && BOOST_PP_ITERATION_FINISH_2 >= 218
-#        define BOOST_PP_ITERATION_2 218
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 218 && NDNBOOST_PP_ITERATION_FINISH_2 >= 218
+#        define NDNBOOST_PP_ITERATION_2 218
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 219 && BOOST_PP_ITERATION_FINISH_2 >= 219
-#        define BOOST_PP_ITERATION_2 219
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 219 && NDNBOOST_PP_ITERATION_FINISH_2 >= 219
+#        define NDNBOOST_PP_ITERATION_2 219
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 220 && BOOST_PP_ITERATION_FINISH_2 >= 220
-#        define BOOST_PP_ITERATION_2 220
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 220 && NDNBOOST_PP_ITERATION_FINISH_2 >= 220
+#        define NDNBOOST_PP_ITERATION_2 220
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 221 && BOOST_PP_ITERATION_FINISH_2 >= 221
-#        define BOOST_PP_ITERATION_2 221
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 221 && NDNBOOST_PP_ITERATION_FINISH_2 >= 221
+#        define NDNBOOST_PP_ITERATION_2 221
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 222 && BOOST_PP_ITERATION_FINISH_2 >= 222
-#        define BOOST_PP_ITERATION_2 222
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 222 && NDNBOOST_PP_ITERATION_FINISH_2 >= 222
+#        define NDNBOOST_PP_ITERATION_2 222
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 223 && BOOST_PP_ITERATION_FINISH_2 >= 223
-#        define BOOST_PP_ITERATION_2 223
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 223 && NDNBOOST_PP_ITERATION_FINISH_2 >= 223
+#        define NDNBOOST_PP_ITERATION_2 223
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 224 && BOOST_PP_ITERATION_FINISH_2 >= 224
-#        define BOOST_PP_ITERATION_2 224
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 224 && NDNBOOST_PP_ITERATION_FINISH_2 >= 224
+#        define NDNBOOST_PP_ITERATION_2 224
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 225 && BOOST_PP_ITERATION_FINISH_2 >= 225
-#        define BOOST_PP_ITERATION_2 225
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 225 && NDNBOOST_PP_ITERATION_FINISH_2 >= 225
+#        define NDNBOOST_PP_ITERATION_2 225
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 226 && BOOST_PP_ITERATION_FINISH_2 >= 226
-#        define BOOST_PP_ITERATION_2 226
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 226 && NDNBOOST_PP_ITERATION_FINISH_2 >= 226
+#        define NDNBOOST_PP_ITERATION_2 226
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 227 && BOOST_PP_ITERATION_FINISH_2 >= 227
-#        define BOOST_PP_ITERATION_2 227
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 227 && NDNBOOST_PP_ITERATION_FINISH_2 >= 227
+#        define NDNBOOST_PP_ITERATION_2 227
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 228 && BOOST_PP_ITERATION_FINISH_2 >= 228
-#        define BOOST_PP_ITERATION_2 228
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 228 && NDNBOOST_PP_ITERATION_FINISH_2 >= 228
+#        define NDNBOOST_PP_ITERATION_2 228
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 229 && BOOST_PP_ITERATION_FINISH_2 >= 229
-#        define BOOST_PP_ITERATION_2 229
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 229 && NDNBOOST_PP_ITERATION_FINISH_2 >= 229
+#        define NDNBOOST_PP_ITERATION_2 229
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 230 && BOOST_PP_ITERATION_FINISH_2 >= 230
-#        define BOOST_PP_ITERATION_2 230
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 230 && NDNBOOST_PP_ITERATION_FINISH_2 >= 230
+#        define NDNBOOST_PP_ITERATION_2 230
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 231 && BOOST_PP_ITERATION_FINISH_2 >= 231
-#        define BOOST_PP_ITERATION_2 231
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 231 && NDNBOOST_PP_ITERATION_FINISH_2 >= 231
+#        define NDNBOOST_PP_ITERATION_2 231
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 232 && BOOST_PP_ITERATION_FINISH_2 >= 232
-#        define BOOST_PP_ITERATION_2 232
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 232 && NDNBOOST_PP_ITERATION_FINISH_2 >= 232
+#        define NDNBOOST_PP_ITERATION_2 232
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 233 && BOOST_PP_ITERATION_FINISH_2 >= 233
-#        define BOOST_PP_ITERATION_2 233
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 233 && NDNBOOST_PP_ITERATION_FINISH_2 >= 233
+#        define NDNBOOST_PP_ITERATION_2 233
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 234 && BOOST_PP_ITERATION_FINISH_2 >= 234
-#        define BOOST_PP_ITERATION_2 234
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 234 && NDNBOOST_PP_ITERATION_FINISH_2 >= 234
+#        define NDNBOOST_PP_ITERATION_2 234
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 235 && BOOST_PP_ITERATION_FINISH_2 >= 235
-#        define BOOST_PP_ITERATION_2 235
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 235 && NDNBOOST_PP_ITERATION_FINISH_2 >= 235
+#        define NDNBOOST_PP_ITERATION_2 235
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 236 && BOOST_PP_ITERATION_FINISH_2 >= 236
-#        define BOOST_PP_ITERATION_2 236
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 236 && NDNBOOST_PP_ITERATION_FINISH_2 >= 236
+#        define NDNBOOST_PP_ITERATION_2 236
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 237 && BOOST_PP_ITERATION_FINISH_2 >= 237
-#        define BOOST_PP_ITERATION_2 237
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 237 && NDNBOOST_PP_ITERATION_FINISH_2 >= 237
+#        define NDNBOOST_PP_ITERATION_2 237
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 238 && BOOST_PP_ITERATION_FINISH_2 >= 238
-#        define BOOST_PP_ITERATION_2 238
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 238 && NDNBOOST_PP_ITERATION_FINISH_2 >= 238
+#        define NDNBOOST_PP_ITERATION_2 238
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 239 && BOOST_PP_ITERATION_FINISH_2 >= 239
-#        define BOOST_PP_ITERATION_2 239
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 239 && NDNBOOST_PP_ITERATION_FINISH_2 >= 239
+#        define NDNBOOST_PP_ITERATION_2 239
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 240 && BOOST_PP_ITERATION_FINISH_2 >= 240
-#        define BOOST_PP_ITERATION_2 240
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 240 && NDNBOOST_PP_ITERATION_FINISH_2 >= 240
+#        define NDNBOOST_PP_ITERATION_2 240
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 241 && BOOST_PP_ITERATION_FINISH_2 >= 241
-#        define BOOST_PP_ITERATION_2 241
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 241 && NDNBOOST_PP_ITERATION_FINISH_2 >= 241
+#        define NDNBOOST_PP_ITERATION_2 241
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 242 && BOOST_PP_ITERATION_FINISH_2 >= 242
-#        define BOOST_PP_ITERATION_2 242
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 242 && NDNBOOST_PP_ITERATION_FINISH_2 >= 242
+#        define NDNBOOST_PP_ITERATION_2 242
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 243 && BOOST_PP_ITERATION_FINISH_2 >= 243
-#        define BOOST_PP_ITERATION_2 243
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 243 && NDNBOOST_PP_ITERATION_FINISH_2 >= 243
+#        define NDNBOOST_PP_ITERATION_2 243
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 244 && BOOST_PP_ITERATION_FINISH_2 >= 244
-#        define BOOST_PP_ITERATION_2 244
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 244 && NDNBOOST_PP_ITERATION_FINISH_2 >= 244
+#        define NDNBOOST_PP_ITERATION_2 244
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 245 && BOOST_PP_ITERATION_FINISH_2 >= 245
-#        define BOOST_PP_ITERATION_2 245
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 245 && NDNBOOST_PP_ITERATION_FINISH_2 >= 245
+#        define NDNBOOST_PP_ITERATION_2 245
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 246 && BOOST_PP_ITERATION_FINISH_2 >= 246
-#        define BOOST_PP_ITERATION_2 246
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 246 && NDNBOOST_PP_ITERATION_FINISH_2 >= 246
+#        define NDNBOOST_PP_ITERATION_2 246
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 247 && BOOST_PP_ITERATION_FINISH_2 >= 247
-#        define BOOST_PP_ITERATION_2 247
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 247 && NDNBOOST_PP_ITERATION_FINISH_2 >= 247
+#        define NDNBOOST_PP_ITERATION_2 247
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 248 && BOOST_PP_ITERATION_FINISH_2 >= 248
-#        define BOOST_PP_ITERATION_2 248
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 248 && NDNBOOST_PP_ITERATION_FINISH_2 >= 248
+#        define NDNBOOST_PP_ITERATION_2 248
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 249 && BOOST_PP_ITERATION_FINISH_2 >= 249
-#        define BOOST_PP_ITERATION_2 249
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 249 && NDNBOOST_PP_ITERATION_FINISH_2 >= 249
+#        define NDNBOOST_PP_ITERATION_2 249
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 250 && BOOST_PP_ITERATION_FINISH_2 >= 250
-#        define BOOST_PP_ITERATION_2 250
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 250 && NDNBOOST_PP_ITERATION_FINISH_2 >= 250
+#        define NDNBOOST_PP_ITERATION_2 250
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 251 && BOOST_PP_ITERATION_FINISH_2 >= 251
-#        define BOOST_PP_ITERATION_2 251
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 251 && NDNBOOST_PP_ITERATION_FINISH_2 >= 251
+#        define NDNBOOST_PP_ITERATION_2 251
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 252 && BOOST_PP_ITERATION_FINISH_2 >= 252
-#        define BOOST_PP_ITERATION_2 252
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 252 && NDNBOOST_PP_ITERATION_FINISH_2 >= 252
+#        define NDNBOOST_PP_ITERATION_2 252
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 253 && BOOST_PP_ITERATION_FINISH_2 >= 253
-#        define BOOST_PP_ITERATION_2 253
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 253 && NDNBOOST_PP_ITERATION_FINISH_2 >= 253
+#        define NDNBOOST_PP_ITERATION_2 253
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 254 && BOOST_PP_ITERATION_FINISH_2 >= 254
-#        define BOOST_PP_ITERATION_2 254
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 254 && NDNBOOST_PP_ITERATION_FINISH_2 >= 254
+#        define NDNBOOST_PP_ITERATION_2 254
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 255 && BOOST_PP_ITERATION_FINISH_2 >= 255
-#        define BOOST_PP_ITERATION_2 255
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 255 && NDNBOOST_PP_ITERATION_FINISH_2 >= 255
+#        define NDNBOOST_PP_ITERATION_2 255
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
-#    if BOOST_PP_ITERATION_START_2 <= 256 && BOOST_PP_ITERATION_FINISH_2 >= 256
-#        define BOOST_PP_ITERATION_2 256
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
+#    if NDNBOOST_PP_ITERATION_START_2 <= 256 && NDNBOOST_PP_ITERATION_FINISH_2 >= 256
+#        define NDNBOOST_PP_ITERATION_2 256
+#        include NDNBOOST_PP_FILENAME_2
+#        undef NDNBOOST_PP_ITERATION_2
 #    endif
 # endif
 #
-# undef BOOST_PP_ITERATION_DEPTH
-# define BOOST_PP_ITERATION_DEPTH() 1
+# undef NDNBOOST_PP_ITERATION_DEPTH
+# define NDNBOOST_PP_ITERATION_DEPTH() 1
 #
-# undef BOOST_PP_ITERATION_START_2
-# undef BOOST_PP_ITERATION_FINISH_2
-# undef BOOST_PP_FILENAME_2
+# undef NDNBOOST_PP_ITERATION_START_2
+# undef NDNBOOST_PP_ITERATION_FINISH_2
+# undef NDNBOOST_PP_FILENAME_2
 #
-# undef BOOST_PP_ITERATION_FLAGS_2
-# undef BOOST_PP_ITERATION_PARAMS_2
+# undef NDNBOOST_PP_ITERATION_FLAGS_2
+# undef NDNBOOST_PP_ITERATION_PARAMS_2
diff --git a/include/ndnboost/preprocessor/iteration/detail/iter/forward3.hpp b/include/ndnboost/preprocessor/iteration/detail/iter/forward3.hpp
index f650c18..ed79e18 100644
--- a/include/ndnboost/preprocessor/iteration/detail/iter/forward3.hpp
+++ b/include/ndnboost/preprocessor/iteration/detail/iter/forward3.hpp
@@ -9,1330 +9,1330 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# if defined(BOOST_PP_ITERATION_LIMITS)
-#    if !defined(BOOST_PP_FILENAME_3)
-#        error BOOST_PP_ERROR:  depth #3 filename is not defined
+# if defined(NDNBOOST_PP_ITERATION_LIMITS)
+#    if !defined(NDNBOOST_PP_FILENAME_3)
+#        error NDNBOOST_PP_ERROR:  depth #3 filename is not defined
 #    endif
-#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_ITERATION_LIMITS)
+#    define NDNBOOST_PP_VALUE NDNBOOST_PP_TUPLE_ELEM(2, 0, NDNBOOST_PP_ITERATION_LIMITS)
 #    include <ndnboost/preprocessor/iteration/detail/bounds/lower3.hpp>
-#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS)
+#    define NDNBOOST_PP_VALUE NDNBOOST_PP_TUPLE_ELEM(2, 1, NDNBOOST_PP_ITERATION_LIMITS)
 #    include <ndnboost/preprocessor/iteration/detail/bounds/upper3.hpp>
-#    define BOOST_PP_ITERATION_FLAGS_3() 0
-#    undef BOOST_PP_ITERATION_LIMITS
-# elif defined(BOOST_PP_ITERATION_PARAMS_3)
-#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_3)
+#    define NDNBOOST_PP_ITERATION_FLAGS_3() 0
+#    undef NDNBOOST_PP_ITERATION_LIMITS
+# elif defined(NDNBOOST_PP_ITERATION_PARAMS_3)
+#    define NDNBOOST_PP_VALUE NDNBOOST_PP_ARRAY_ELEM(0, NDNBOOST_PP_ITERATION_PARAMS_3)
 #    include <ndnboost/preprocessor/iteration/detail/bounds/lower3.hpp>
-#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ITERATION_PARAMS_3)
+#    define NDNBOOST_PP_VALUE NDNBOOST_PP_ARRAY_ELEM(1, NDNBOOST_PP_ITERATION_PARAMS_3)
 #    include <ndnboost/preprocessor/iteration/detail/bounds/upper3.hpp>
-#    define BOOST_PP_FILENAME_3 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_3)
-#    if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_3) >= 4
-#        define BOOST_PP_ITERATION_FLAGS_3() BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_3)
+#    define NDNBOOST_PP_FILENAME_3 NDNBOOST_PP_ARRAY_ELEM(2, NDNBOOST_PP_ITERATION_PARAMS_3)
+#    if NDNBOOST_PP_ARRAY_SIZE(NDNBOOST_PP_ITERATION_PARAMS_3) >= 4
+#        define NDNBOOST_PP_ITERATION_FLAGS_3() NDNBOOST_PP_ARRAY_ELEM(3, NDNBOOST_PP_ITERATION_PARAMS_3)
 #    else
-#        define BOOST_PP_ITERATION_FLAGS_3() 0
+#        define NDNBOOST_PP_ITERATION_FLAGS_3() 0
 #    endif
 # else
-#    error BOOST_PP_ERROR:  depth #3 iteration boundaries or filename not defined
+#    error NDNBOOST_PP_ERROR:  depth #3 iteration boundaries or filename not defined
 # endif
 #
-# undef BOOST_PP_ITERATION_DEPTH
-# define BOOST_PP_ITERATION_DEPTH() 3
+# undef NDNBOOST_PP_ITERATION_DEPTH
+# define NDNBOOST_PP_ITERATION_DEPTH() 3
 #
-# if (BOOST_PP_ITERATION_START_3) > (BOOST_PP_ITERATION_FINISH_3)
+# if (NDNBOOST_PP_ITERATION_START_3) > (NDNBOOST_PP_ITERATION_FINISH_3)
 #    include <ndnboost/preprocessor/iteration/detail/iter/reverse3.hpp>
 # else
-#    if BOOST_PP_ITERATION_START_3 <= 0 && BOOST_PP_ITERATION_FINISH_3 >= 0
-#        define BOOST_PP_ITERATION_3 0
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 0 && NDNBOOST_PP_ITERATION_FINISH_3 >= 0
+#        define NDNBOOST_PP_ITERATION_3 0
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 1 && BOOST_PP_ITERATION_FINISH_3 >= 1
-#        define BOOST_PP_ITERATION_3 1
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 1 && NDNBOOST_PP_ITERATION_FINISH_3 >= 1
+#        define NDNBOOST_PP_ITERATION_3 1
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 2 && BOOST_PP_ITERATION_FINISH_3 >= 2
-#        define BOOST_PP_ITERATION_3 2
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 2 && NDNBOOST_PP_ITERATION_FINISH_3 >= 2
+#        define NDNBOOST_PP_ITERATION_3 2
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 3 && BOOST_PP_ITERATION_FINISH_3 >= 3
-#        define BOOST_PP_ITERATION_3 3
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 3 && NDNBOOST_PP_ITERATION_FINISH_3 >= 3
+#        define NDNBOOST_PP_ITERATION_3 3
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 4 && BOOST_PP_ITERATION_FINISH_3 >= 4
-#        define BOOST_PP_ITERATION_3 4
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 4 && NDNBOOST_PP_ITERATION_FINISH_3 >= 4
+#        define NDNBOOST_PP_ITERATION_3 4
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 5 && BOOST_PP_ITERATION_FINISH_3 >= 5
-#        define BOOST_PP_ITERATION_3 5
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 5 && NDNBOOST_PP_ITERATION_FINISH_3 >= 5
+#        define NDNBOOST_PP_ITERATION_3 5
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 6 && BOOST_PP_ITERATION_FINISH_3 >= 6
-#        define BOOST_PP_ITERATION_3 6
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 6 && NDNBOOST_PP_ITERATION_FINISH_3 >= 6
+#        define NDNBOOST_PP_ITERATION_3 6
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 7 && BOOST_PP_ITERATION_FINISH_3 >= 7
-#        define BOOST_PP_ITERATION_3 7
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 7 && NDNBOOST_PP_ITERATION_FINISH_3 >= 7
+#        define NDNBOOST_PP_ITERATION_3 7
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 8 && BOOST_PP_ITERATION_FINISH_3 >= 8
-#        define BOOST_PP_ITERATION_3 8
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 8 && NDNBOOST_PP_ITERATION_FINISH_3 >= 8
+#        define NDNBOOST_PP_ITERATION_3 8
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 9 && BOOST_PP_ITERATION_FINISH_3 >= 9
-#        define BOOST_PP_ITERATION_3 9
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 9 && NDNBOOST_PP_ITERATION_FINISH_3 >= 9
+#        define NDNBOOST_PP_ITERATION_3 9
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 10 && BOOST_PP_ITERATION_FINISH_3 >= 10
-#        define BOOST_PP_ITERATION_3 10
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 10 && NDNBOOST_PP_ITERATION_FINISH_3 >= 10
+#        define NDNBOOST_PP_ITERATION_3 10
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 11 && BOOST_PP_ITERATION_FINISH_3 >= 11
-#        define BOOST_PP_ITERATION_3 11
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 11 && NDNBOOST_PP_ITERATION_FINISH_3 >= 11
+#        define NDNBOOST_PP_ITERATION_3 11
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 12 && BOOST_PP_ITERATION_FINISH_3 >= 12
-#        define BOOST_PP_ITERATION_3 12
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 12 && NDNBOOST_PP_ITERATION_FINISH_3 >= 12
+#        define NDNBOOST_PP_ITERATION_3 12
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 13 && BOOST_PP_ITERATION_FINISH_3 >= 13
-#        define BOOST_PP_ITERATION_3 13
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 13 && NDNBOOST_PP_ITERATION_FINISH_3 >= 13
+#        define NDNBOOST_PP_ITERATION_3 13
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 14 && BOOST_PP_ITERATION_FINISH_3 >= 14
-#        define BOOST_PP_ITERATION_3 14
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 14 && NDNBOOST_PP_ITERATION_FINISH_3 >= 14
+#        define NDNBOOST_PP_ITERATION_3 14
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 15 && BOOST_PP_ITERATION_FINISH_3 >= 15
-#        define BOOST_PP_ITERATION_3 15
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 15 && NDNBOOST_PP_ITERATION_FINISH_3 >= 15
+#        define NDNBOOST_PP_ITERATION_3 15
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 16 && BOOST_PP_ITERATION_FINISH_3 >= 16
-#        define BOOST_PP_ITERATION_3 16
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 16 && NDNBOOST_PP_ITERATION_FINISH_3 >= 16
+#        define NDNBOOST_PP_ITERATION_3 16
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 17 && BOOST_PP_ITERATION_FINISH_3 >= 17
-#        define BOOST_PP_ITERATION_3 17
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 17 && NDNBOOST_PP_ITERATION_FINISH_3 >= 17
+#        define NDNBOOST_PP_ITERATION_3 17
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 18 && BOOST_PP_ITERATION_FINISH_3 >= 18
-#        define BOOST_PP_ITERATION_3 18
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 18 && NDNBOOST_PP_ITERATION_FINISH_3 >= 18
+#        define NDNBOOST_PP_ITERATION_3 18
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 19 && BOOST_PP_ITERATION_FINISH_3 >= 19
-#        define BOOST_PP_ITERATION_3 19
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 19 && NDNBOOST_PP_ITERATION_FINISH_3 >= 19
+#        define NDNBOOST_PP_ITERATION_3 19
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 20 && BOOST_PP_ITERATION_FINISH_3 >= 20
-#        define BOOST_PP_ITERATION_3 20
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 20 && NDNBOOST_PP_ITERATION_FINISH_3 >= 20
+#        define NDNBOOST_PP_ITERATION_3 20
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 21 && BOOST_PP_ITERATION_FINISH_3 >= 21
-#        define BOOST_PP_ITERATION_3 21
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 21 && NDNBOOST_PP_ITERATION_FINISH_3 >= 21
+#        define NDNBOOST_PP_ITERATION_3 21
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 22 && BOOST_PP_ITERATION_FINISH_3 >= 22
-#        define BOOST_PP_ITERATION_3 22
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 22 && NDNBOOST_PP_ITERATION_FINISH_3 >= 22
+#        define NDNBOOST_PP_ITERATION_3 22
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 23 && BOOST_PP_ITERATION_FINISH_3 >= 23
-#        define BOOST_PP_ITERATION_3 23
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 23 && NDNBOOST_PP_ITERATION_FINISH_3 >= 23
+#        define NDNBOOST_PP_ITERATION_3 23
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 24 && BOOST_PP_ITERATION_FINISH_3 >= 24
-#        define BOOST_PP_ITERATION_3 24
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 24 && NDNBOOST_PP_ITERATION_FINISH_3 >= 24
+#        define NDNBOOST_PP_ITERATION_3 24
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 25 && BOOST_PP_ITERATION_FINISH_3 >= 25
-#        define BOOST_PP_ITERATION_3 25
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 25 && NDNBOOST_PP_ITERATION_FINISH_3 >= 25
+#        define NDNBOOST_PP_ITERATION_3 25
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 26 && BOOST_PP_ITERATION_FINISH_3 >= 26
-#        define BOOST_PP_ITERATION_3 26
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 26 && NDNBOOST_PP_ITERATION_FINISH_3 >= 26
+#        define NDNBOOST_PP_ITERATION_3 26
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 27 && BOOST_PP_ITERATION_FINISH_3 >= 27
-#        define BOOST_PP_ITERATION_3 27
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 27 && NDNBOOST_PP_ITERATION_FINISH_3 >= 27
+#        define NDNBOOST_PP_ITERATION_3 27
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 28 && BOOST_PP_ITERATION_FINISH_3 >= 28
-#        define BOOST_PP_ITERATION_3 28
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 28 && NDNBOOST_PP_ITERATION_FINISH_3 >= 28
+#        define NDNBOOST_PP_ITERATION_3 28
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 29 && BOOST_PP_ITERATION_FINISH_3 >= 29
-#        define BOOST_PP_ITERATION_3 29
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 29 && NDNBOOST_PP_ITERATION_FINISH_3 >= 29
+#        define NDNBOOST_PP_ITERATION_3 29
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 30 && BOOST_PP_ITERATION_FINISH_3 >= 30
-#        define BOOST_PP_ITERATION_3 30
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 30 && NDNBOOST_PP_ITERATION_FINISH_3 >= 30
+#        define NDNBOOST_PP_ITERATION_3 30
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 31 && BOOST_PP_ITERATION_FINISH_3 >= 31
-#        define BOOST_PP_ITERATION_3 31
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 31 && NDNBOOST_PP_ITERATION_FINISH_3 >= 31
+#        define NDNBOOST_PP_ITERATION_3 31
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 32 && BOOST_PP_ITERATION_FINISH_3 >= 32
-#        define BOOST_PP_ITERATION_3 32
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 32 && NDNBOOST_PP_ITERATION_FINISH_3 >= 32
+#        define NDNBOOST_PP_ITERATION_3 32
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 33 && BOOST_PP_ITERATION_FINISH_3 >= 33
-#        define BOOST_PP_ITERATION_3 33
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 33 && NDNBOOST_PP_ITERATION_FINISH_3 >= 33
+#        define NDNBOOST_PP_ITERATION_3 33
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 34 && BOOST_PP_ITERATION_FINISH_3 >= 34
-#        define BOOST_PP_ITERATION_3 34
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 34 && NDNBOOST_PP_ITERATION_FINISH_3 >= 34
+#        define NDNBOOST_PP_ITERATION_3 34
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 35 && BOOST_PP_ITERATION_FINISH_3 >= 35
-#        define BOOST_PP_ITERATION_3 35
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 35 && NDNBOOST_PP_ITERATION_FINISH_3 >= 35
+#        define NDNBOOST_PP_ITERATION_3 35
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 36 && BOOST_PP_ITERATION_FINISH_3 >= 36
-#        define BOOST_PP_ITERATION_3 36
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 36 && NDNBOOST_PP_ITERATION_FINISH_3 >= 36
+#        define NDNBOOST_PP_ITERATION_3 36
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 37 && BOOST_PP_ITERATION_FINISH_3 >= 37
-#        define BOOST_PP_ITERATION_3 37
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 37 && NDNBOOST_PP_ITERATION_FINISH_3 >= 37
+#        define NDNBOOST_PP_ITERATION_3 37
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 38 && BOOST_PP_ITERATION_FINISH_3 >= 38
-#        define BOOST_PP_ITERATION_3 38
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 38 && NDNBOOST_PP_ITERATION_FINISH_3 >= 38
+#        define NDNBOOST_PP_ITERATION_3 38
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 39 && BOOST_PP_ITERATION_FINISH_3 >= 39
-#        define BOOST_PP_ITERATION_3 39
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 39 && NDNBOOST_PP_ITERATION_FINISH_3 >= 39
+#        define NDNBOOST_PP_ITERATION_3 39
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 40 && BOOST_PP_ITERATION_FINISH_3 >= 40
-#        define BOOST_PP_ITERATION_3 40
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 40 && NDNBOOST_PP_ITERATION_FINISH_3 >= 40
+#        define NDNBOOST_PP_ITERATION_3 40
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 41 && BOOST_PP_ITERATION_FINISH_3 >= 41
-#        define BOOST_PP_ITERATION_3 41
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 41 && NDNBOOST_PP_ITERATION_FINISH_3 >= 41
+#        define NDNBOOST_PP_ITERATION_3 41
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 42 && BOOST_PP_ITERATION_FINISH_3 >= 42
-#        define BOOST_PP_ITERATION_3 42
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 42 && NDNBOOST_PP_ITERATION_FINISH_3 >= 42
+#        define NDNBOOST_PP_ITERATION_3 42
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 43 && BOOST_PP_ITERATION_FINISH_3 >= 43
-#        define BOOST_PP_ITERATION_3 43
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 43 && NDNBOOST_PP_ITERATION_FINISH_3 >= 43
+#        define NDNBOOST_PP_ITERATION_3 43
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 44 && BOOST_PP_ITERATION_FINISH_3 >= 44
-#        define BOOST_PP_ITERATION_3 44
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 44 && NDNBOOST_PP_ITERATION_FINISH_3 >= 44
+#        define NDNBOOST_PP_ITERATION_3 44
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 45 && BOOST_PP_ITERATION_FINISH_3 >= 45
-#        define BOOST_PP_ITERATION_3 45
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 45 && NDNBOOST_PP_ITERATION_FINISH_3 >= 45
+#        define NDNBOOST_PP_ITERATION_3 45
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 46 && BOOST_PP_ITERATION_FINISH_3 >= 46
-#        define BOOST_PP_ITERATION_3 46
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 46 && NDNBOOST_PP_ITERATION_FINISH_3 >= 46
+#        define NDNBOOST_PP_ITERATION_3 46
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 47 && BOOST_PP_ITERATION_FINISH_3 >= 47
-#        define BOOST_PP_ITERATION_3 47
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 47 && NDNBOOST_PP_ITERATION_FINISH_3 >= 47
+#        define NDNBOOST_PP_ITERATION_3 47
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 48 && BOOST_PP_ITERATION_FINISH_3 >= 48
-#        define BOOST_PP_ITERATION_3 48
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 48 && NDNBOOST_PP_ITERATION_FINISH_3 >= 48
+#        define NDNBOOST_PP_ITERATION_3 48
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 49 && BOOST_PP_ITERATION_FINISH_3 >= 49
-#        define BOOST_PP_ITERATION_3 49
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 49 && NDNBOOST_PP_ITERATION_FINISH_3 >= 49
+#        define NDNBOOST_PP_ITERATION_3 49
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 50 && BOOST_PP_ITERATION_FINISH_3 >= 50
-#        define BOOST_PP_ITERATION_3 50
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 50 && NDNBOOST_PP_ITERATION_FINISH_3 >= 50
+#        define NDNBOOST_PP_ITERATION_3 50
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 51 && BOOST_PP_ITERATION_FINISH_3 >= 51
-#        define BOOST_PP_ITERATION_3 51
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 51 && NDNBOOST_PP_ITERATION_FINISH_3 >= 51
+#        define NDNBOOST_PP_ITERATION_3 51
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 52 && BOOST_PP_ITERATION_FINISH_3 >= 52
-#        define BOOST_PP_ITERATION_3 52
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 52 && NDNBOOST_PP_ITERATION_FINISH_3 >= 52
+#        define NDNBOOST_PP_ITERATION_3 52
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 53 && BOOST_PP_ITERATION_FINISH_3 >= 53
-#        define BOOST_PP_ITERATION_3 53
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 53 && NDNBOOST_PP_ITERATION_FINISH_3 >= 53
+#        define NDNBOOST_PP_ITERATION_3 53
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 54 && BOOST_PP_ITERATION_FINISH_3 >= 54
-#        define BOOST_PP_ITERATION_3 54
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 54 && NDNBOOST_PP_ITERATION_FINISH_3 >= 54
+#        define NDNBOOST_PP_ITERATION_3 54
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 55 && BOOST_PP_ITERATION_FINISH_3 >= 55
-#        define BOOST_PP_ITERATION_3 55
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 55 && NDNBOOST_PP_ITERATION_FINISH_3 >= 55
+#        define NDNBOOST_PP_ITERATION_3 55
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 56 && BOOST_PP_ITERATION_FINISH_3 >= 56
-#        define BOOST_PP_ITERATION_3 56
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 56 && NDNBOOST_PP_ITERATION_FINISH_3 >= 56
+#        define NDNBOOST_PP_ITERATION_3 56
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 57 && BOOST_PP_ITERATION_FINISH_3 >= 57
-#        define BOOST_PP_ITERATION_3 57
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 57 && NDNBOOST_PP_ITERATION_FINISH_3 >= 57
+#        define NDNBOOST_PP_ITERATION_3 57
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 58 && BOOST_PP_ITERATION_FINISH_3 >= 58
-#        define BOOST_PP_ITERATION_3 58
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 58 && NDNBOOST_PP_ITERATION_FINISH_3 >= 58
+#        define NDNBOOST_PP_ITERATION_3 58
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 59 && BOOST_PP_ITERATION_FINISH_3 >= 59
-#        define BOOST_PP_ITERATION_3 59
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 59 && NDNBOOST_PP_ITERATION_FINISH_3 >= 59
+#        define NDNBOOST_PP_ITERATION_3 59
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 60 && BOOST_PP_ITERATION_FINISH_3 >= 60
-#        define BOOST_PP_ITERATION_3 60
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 60 && NDNBOOST_PP_ITERATION_FINISH_3 >= 60
+#        define NDNBOOST_PP_ITERATION_3 60
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 61 && BOOST_PP_ITERATION_FINISH_3 >= 61
-#        define BOOST_PP_ITERATION_3 61
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 61 && NDNBOOST_PP_ITERATION_FINISH_3 >= 61
+#        define NDNBOOST_PP_ITERATION_3 61
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 62 && BOOST_PP_ITERATION_FINISH_3 >= 62
-#        define BOOST_PP_ITERATION_3 62
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 62 && NDNBOOST_PP_ITERATION_FINISH_3 >= 62
+#        define NDNBOOST_PP_ITERATION_3 62
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 63 && BOOST_PP_ITERATION_FINISH_3 >= 63
-#        define BOOST_PP_ITERATION_3 63
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 63 && NDNBOOST_PP_ITERATION_FINISH_3 >= 63
+#        define NDNBOOST_PP_ITERATION_3 63
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 64 && BOOST_PP_ITERATION_FINISH_3 >= 64
-#        define BOOST_PP_ITERATION_3 64
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 64 && NDNBOOST_PP_ITERATION_FINISH_3 >= 64
+#        define NDNBOOST_PP_ITERATION_3 64
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 65 && BOOST_PP_ITERATION_FINISH_3 >= 65
-#        define BOOST_PP_ITERATION_3 65
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 65 && NDNBOOST_PP_ITERATION_FINISH_3 >= 65
+#        define NDNBOOST_PP_ITERATION_3 65
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 66 && BOOST_PP_ITERATION_FINISH_3 >= 66
-#        define BOOST_PP_ITERATION_3 66
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 66 && NDNBOOST_PP_ITERATION_FINISH_3 >= 66
+#        define NDNBOOST_PP_ITERATION_3 66
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 67 && BOOST_PP_ITERATION_FINISH_3 >= 67
-#        define BOOST_PP_ITERATION_3 67
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 67 && NDNBOOST_PP_ITERATION_FINISH_3 >= 67
+#        define NDNBOOST_PP_ITERATION_3 67
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 68 && BOOST_PP_ITERATION_FINISH_3 >= 68
-#        define BOOST_PP_ITERATION_3 68
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 68 && NDNBOOST_PP_ITERATION_FINISH_3 >= 68
+#        define NDNBOOST_PP_ITERATION_3 68
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 69 && BOOST_PP_ITERATION_FINISH_3 >= 69
-#        define BOOST_PP_ITERATION_3 69
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 69 && NDNBOOST_PP_ITERATION_FINISH_3 >= 69
+#        define NDNBOOST_PP_ITERATION_3 69
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 70 && BOOST_PP_ITERATION_FINISH_3 >= 70
-#        define BOOST_PP_ITERATION_3 70
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 70 && NDNBOOST_PP_ITERATION_FINISH_3 >= 70
+#        define NDNBOOST_PP_ITERATION_3 70
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 71 && BOOST_PP_ITERATION_FINISH_3 >= 71
-#        define BOOST_PP_ITERATION_3 71
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 71 && NDNBOOST_PP_ITERATION_FINISH_3 >= 71
+#        define NDNBOOST_PP_ITERATION_3 71
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 72 && BOOST_PP_ITERATION_FINISH_3 >= 72
-#        define BOOST_PP_ITERATION_3 72
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 72 && NDNBOOST_PP_ITERATION_FINISH_3 >= 72
+#        define NDNBOOST_PP_ITERATION_3 72
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 73 && BOOST_PP_ITERATION_FINISH_3 >= 73
-#        define BOOST_PP_ITERATION_3 73
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 73 && NDNBOOST_PP_ITERATION_FINISH_3 >= 73
+#        define NDNBOOST_PP_ITERATION_3 73
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 74 && BOOST_PP_ITERATION_FINISH_3 >= 74
-#        define BOOST_PP_ITERATION_3 74
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 74 && NDNBOOST_PP_ITERATION_FINISH_3 >= 74
+#        define NDNBOOST_PP_ITERATION_3 74
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 75 && BOOST_PP_ITERATION_FINISH_3 >= 75
-#        define BOOST_PP_ITERATION_3 75
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 75 && NDNBOOST_PP_ITERATION_FINISH_3 >= 75
+#        define NDNBOOST_PP_ITERATION_3 75
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 76 && BOOST_PP_ITERATION_FINISH_3 >= 76
-#        define BOOST_PP_ITERATION_3 76
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 76 && NDNBOOST_PP_ITERATION_FINISH_3 >= 76
+#        define NDNBOOST_PP_ITERATION_3 76
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 77 && BOOST_PP_ITERATION_FINISH_3 >= 77
-#        define BOOST_PP_ITERATION_3 77
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 77 && NDNBOOST_PP_ITERATION_FINISH_3 >= 77
+#        define NDNBOOST_PP_ITERATION_3 77
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 78 && BOOST_PP_ITERATION_FINISH_3 >= 78
-#        define BOOST_PP_ITERATION_3 78
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 78 && NDNBOOST_PP_ITERATION_FINISH_3 >= 78
+#        define NDNBOOST_PP_ITERATION_3 78
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 79 && BOOST_PP_ITERATION_FINISH_3 >= 79
-#        define BOOST_PP_ITERATION_3 79
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 79 && NDNBOOST_PP_ITERATION_FINISH_3 >= 79
+#        define NDNBOOST_PP_ITERATION_3 79
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 80 && BOOST_PP_ITERATION_FINISH_3 >= 80
-#        define BOOST_PP_ITERATION_3 80
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 80 && NDNBOOST_PP_ITERATION_FINISH_3 >= 80
+#        define NDNBOOST_PP_ITERATION_3 80
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 81 && BOOST_PP_ITERATION_FINISH_3 >= 81
-#        define BOOST_PP_ITERATION_3 81
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 81 && NDNBOOST_PP_ITERATION_FINISH_3 >= 81
+#        define NDNBOOST_PP_ITERATION_3 81
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 82 && BOOST_PP_ITERATION_FINISH_3 >= 82
-#        define BOOST_PP_ITERATION_3 82
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 82 && NDNBOOST_PP_ITERATION_FINISH_3 >= 82
+#        define NDNBOOST_PP_ITERATION_3 82
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 83 && BOOST_PP_ITERATION_FINISH_3 >= 83
-#        define BOOST_PP_ITERATION_3 83
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 83 && NDNBOOST_PP_ITERATION_FINISH_3 >= 83
+#        define NDNBOOST_PP_ITERATION_3 83
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 84 && BOOST_PP_ITERATION_FINISH_3 >= 84
-#        define BOOST_PP_ITERATION_3 84
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 84 && NDNBOOST_PP_ITERATION_FINISH_3 >= 84
+#        define NDNBOOST_PP_ITERATION_3 84
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 85 && BOOST_PP_ITERATION_FINISH_3 >= 85
-#        define BOOST_PP_ITERATION_3 85
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 85 && NDNBOOST_PP_ITERATION_FINISH_3 >= 85
+#        define NDNBOOST_PP_ITERATION_3 85
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 86 && BOOST_PP_ITERATION_FINISH_3 >= 86
-#        define BOOST_PP_ITERATION_3 86
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 86 && NDNBOOST_PP_ITERATION_FINISH_3 >= 86
+#        define NDNBOOST_PP_ITERATION_3 86
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 87 && BOOST_PP_ITERATION_FINISH_3 >= 87
-#        define BOOST_PP_ITERATION_3 87
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 87 && NDNBOOST_PP_ITERATION_FINISH_3 >= 87
+#        define NDNBOOST_PP_ITERATION_3 87
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 88 && BOOST_PP_ITERATION_FINISH_3 >= 88
-#        define BOOST_PP_ITERATION_3 88
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 88 && NDNBOOST_PP_ITERATION_FINISH_3 >= 88
+#        define NDNBOOST_PP_ITERATION_3 88
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 89 && BOOST_PP_ITERATION_FINISH_3 >= 89
-#        define BOOST_PP_ITERATION_3 89
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 89 && NDNBOOST_PP_ITERATION_FINISH_3 >= 89
+#        define NDNBOOST_PP_ITERATION_3 89
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 90 && BOOST_PP_ITERATION_FINISH_3 >= 90
-#        define BOOST_PP_ITERATION_3 90
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 90 && NDNBOOST_PP_ITERATION_FINISH_3 >= 90
+#        define NDNBOOST_PP_ITERATION_3 90
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 91 && BOOST_PP_ITERATION_FINISH_3 >= 91
-#        define BOOST_PP_ITERATION_3 91
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 91 && NDNBOOST_PP_ITERATION_FINISH_3 >= 91
+#        define NDNBOOST_PP_ITERATION_3 91
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 92 && BOOST_PP_ITERATION_FINISH_3 >= 92
-#        define BOOST_PP_ITERATION_3 92
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 92 && NDNBOOST_PP_ITERATION_FINISH_3 >= 92
+#        define NDNBOOST_PP_ITERATION_3 92
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 93 && BOOST_PP_ITERATION_FINISH_3 >= 93
-#        define BOOST_PP_ITERATION_3 93
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 93 && NDNBOOST_PP_ITERATION_FINISH_3 >= 93
+#        define NDNBOOST_PP_ITERATION_3 93
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 94 && BOOST_PP_ITERATION_FINISH_3 >= 94
-#        define BOOST_PP_ITERATION_3 94
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 94 && NDNBOOST_PP_ITERATION_FINISH_3 >= 94
+#        define NDNBOOST_PP_ITERATION_3 94
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 95 && BOOST_PP_ITERATION_FINISH_3 >= 95
-#        define BOOST_PP_ITERATION_3 95
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 95 && NDNBOOST_PP_ITERATION_FINISH_3 >= 95
+#        define NDNBOOST_PP_ITERATION_3 95
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 96 && BOOST_PP_ITERATION_FINISH_3 >= 96
-#        define BOOST_PP_ITERATION_3 96
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 96 && NDNBOOST_PP_ITERATION_FINISH_3 >= 96
+#        define NDNBOOST_PP_ITERATION_3 96
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 97 && BOOST_PP_ITERATION_FINISH_3 >= 97
-#        define BOOST_PP_ITERATION_3 97
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 97 && NDNBOOST_PP_ITERATION_FINISH_3 >= 97
+#        define NDNBOOST_PP_ITERATION_3 97
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 98 && BOOST_PP_ITERATION_FINISH_3 >= 98
-#        define BOOST_PP_ITERATION_3 98
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 98 && NDNBOOST_PP_ITERATION_FINISH_3 >= 98
+#        define NDNBOOST_PP_ITERATION_3 98
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 99 && BOOST_PP_ITERATION_FINISH_3 >= 99
-#        define BOOST_PP_ITERATION_3 99
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 99 && NDNBOOST_PP_ITERATION_FINISH_3 >= 99
+#        define NDNBOOST_PP_ITERATION_3 99
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 100 && BOOST_PP_ITERATION_FINISH_3 >= 100
-#        define BOOST_PP_ITERATION_3 100
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 100 && NDNBOOST_PP_ITERATION_FINISH_3 >= 100
+#        define NDNBOOST_PP_ITERATION_3 100
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 101 && BOOST_PP_ITERATION_FINISH_3 >= 101
-#        define BOOST_PP_ITERATION_3 101
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 101 && NDNBOOST_PP_ITERATION_FINISH_3 >= 101
+#        define NDNBOOST_PP_ITERATION_3 101
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 102 && BOOST_PP_ITERATION_FINISH_3 >= 102
-#        define BOOST_PP_ITERATION_3 102
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 102 && NDNBOOST_PP_ITERATION_FINISH_3 >= 102
+#        define NDNBOOST_PP_ITERATION_3 102
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 103 && BOOST_PP_ITERATION_FINISH_3 >= 103
-#        define BOOST_PP_ITERATION_3 103
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 103 && NDNBOOST_PP_ITERATION_FINISH_3 >= 103
+#        define NDNBOOST_PP_ITERATION_3 103
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 104 && BOOST_PP_ITERATION_FINISH_3 >= 104
-#        define BOOST_PP_ITERATION_3 104
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 104 && NDNBOOST_PP_ITERATION_FINISH_3 >= 104
+#        define NDNBOOST_PP_ITERATION_3 104
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 105 && BOOST_PP_ITERATION_FINISH_3 >= 105
-#        define BOOST_PP_ITERATION_3 105
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 105 && NDNBOOST_PP_ITERATION_FINISH_3 >= 105
+#        define NDNBOOST_PP_ITERATION_3 105
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 106 && BOOST_PP_ITERATION_FINISH_3 >= 106
-#        define BOOST_PP_ITERATION_3 106
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 106 && NDNBOOST_PP_ITERATION_FINISH_3 >= 106
+#        define NDNBOOST_PP_ITERATION_3 106
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 107 && BOOST_PP_ITERATION_FINISH_3 >= 107
-#        define BOOST_PP_ITERATION_3 107
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 107 && NDNBOOST_PP_ITERATION_FINISH_3 >= 107
+#        define NDNBOOST_PP_ITERATION_3 107
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 108 && BOOST_PP_ITERATION_FINISH_3 >= 108
-#        define BOOST_PP_ITERATION_3 108
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 108 && NDNBOOST_PP_ITERATION_FINISH_3 >= 108
+#        define NDNBOOST_PP_ITERATION_3 108
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 109 && BOOST_PP_ITERATION_FINISH_3 >= 109
-#        define BOOST_PP_ITERATION_3 109
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 109 && NDNBOOST_PP_ITERATION_FINISH_3 >= 109
+#        define NDNBOOST_PP_ITERATION_3 109
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 110 && BOOST_PP_ITERATION_FINISH_3 >= 110
-#        define BOOST_PP_ITERATION_3 110
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 110 && NDNBOOST_PP_ITERATION_FINISH_3 >= 110
+#        define NDNBOOST_PP_ITERATION_3 110
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 111 && BOOST_PP_ITERATION_FINISH_3 >= 111
-#        define BOOST_PP_ITERATION_3 111
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 111 && NDNBOOST_PP_ITERATION_FINISH_3 >= 111
+#        define NDNBOOST_PP_ITERATION_3 111
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 112 && BOOST_PP_ITERATION_FINISH_3 >= 112
-#        define BOOST_PP_ITERATION_3 112
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 112 && NDNBOOST_PP_ITERATION_FINISH_3 >= 112
+#        define NDNBOOST_PP_ITERATION_3 112
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 113 && BOOST_PP_ITERATION_FINISH_3 >= 113
-#        define BOOST_PP_ITERATION_3 113
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 113 && NDNBOOST_PP_ITERATION_FINISH_3 >= 113
+#        define NDNBOOST_PP_ITERATION_3 113
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 114 && BOOST_PP_ITERATION_FINISH_3 >= 114
-#        define BOOST_PP_ITERATION_3 114
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 114 && NDNBOOST_PP_ITERATION_FINISH_3 >= 114
+#        define NDNBOOST_PP_ITERATION_3 114
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 115 && BOOST_PP_ITERATION_FINISH_3 >= 115
-#        define BOOST_PP_ITERATION_3 115
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 115 && NDNBOOST_PP_ITERATION_FINISH_3 >= 115
+#        define NDNBOOST_PP_ITERATION_3 115
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 116 && BOOST_PP_ITERATION_FINISH_3 >= 116
-#        define BOOST_PP_ITERATION_3 116
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 116 && NDNBOOST_PP_ITERATION_FINISH_3 >= 116
+#        define NDNBOOST_PP_ITERATION_3 116
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 117 && BOOST_PP_ITERATION_FINISH_3 >= 117
-#        define BOOST_PP_ITERATION_3 117
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 117 && NDNBOOST_PP_ITERATION_FINISH_3 >= 117
+#        define NDNBOOST_PP_ITERATION_3 117
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 118 && BOOST_PP_ITERATION_FINISH_3 >= 118
-#        define BOOST_PP_ITERATION_3 118
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 118 && NDNBOOST_PP_ITERATION_FINISH_3 >= 118
+#        define NDNBOOST_PP_ITERATION_3 118
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 119 && BOOST_PP_ITERATION_FINISH_3 >= 119
-#        define BOOST_PP_ITERATION_3 119
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 119 && NDNBOOST_PP_ITERATION_FINISH_3 >= 119
+#        define NDNBOOST_PP_ITERATION_3 119
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 120 && BOOST_PP_ITERATION_FINISH_3 >= 120
-#        define BOOST_PP_ITERATION_3 120
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 120 && NDNBOOST_PP_ITERATION_FINISH_3 >= 120
+#        define NDNBOOST_PP_ITERATION_3 120
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 121 && BOOST_PP_ITERATION_FINISH_3 >= 121
-#        define BOOST_PP_ITERATION_3 121
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 121 && NDNBOOST_PP_ITERATION_FINISH_3 >= 121
+#        define NDNBOOST_PP_ITERATION_3 121
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 122 && BOOST_PP_ITERATION_FINISH_3 >= 122
-#        define BOOST_PP_ITERATION_3 122
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 122 && NDNBOOST_PP_ITERATION_FINISH_3 >= 122
+#        define NDNBOOST_PP_ITERATION_3 122
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 123 && BOOST_PP_ITERATION_FINISH_3 >= 123
-#        define BOOST_PP_ITERATION_3 123
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 123 && NDNBOOST_PP_ITERATION_FINISH_3 >= 123
+#        define NDNBOOST_PP_ITERATION_3 123
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 124 && BOOST_PP_ITERATION_FINISH_3 >= 124
-#        define BOOST_PP_ITERATION_3 124
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 124 && NDNBOOST_PP_ITERATION_FINISH_3 >= 124
+#        define NDNBOOST_PP_ITERATION_3 124
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 125 && BOOST_PP_ITERATION_FINISH_3 >= 125
-#        define BOOST_PP_ITERATION_3 125
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 125 && NDNBOOST_PP_ITERATION_FINISH_3 >= 125
+#        define NDNBOOST_PP_ITERATION_3 125
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 126 && BOOST_PP_ITERATION_FINISH_3 >= 126
-#        define BOOST_PP_ITERATION_3 126
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 126 && NDNBOOST_PP_ITERATION_FINISH_3 >= 126
+#        define NDNBOOST_PP_ITERATION_3 126
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 127 && BOOST_PP_ITERATION_FINISH_3 >= 127
-#        define BOOST_PP_ITERATION_3 127
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 127 && NDNBOOST_PP_ITERATION_FINISH_3 >= 127
+#        define NDNBOOST_PP_ITERATION_3 127
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 128 && BOOST_PP_ITERATION_FINISH_3 >= 128
-#        define BOOST_PP_ITERATION_3 128
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 128 && NDNBOOST_PP_ITERATION_FINISH_3 >= 128
+#        define NDNBOOST_PP_ITERATION_3 128
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 129 && BOOST_PP_ITERATION_FINISH_3 >= 129
-#        define BOOST_PP_ITERATION_3 129
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 129 && NDNBOOST_PP_ITERATION_FINISH_3 >= 129
+#        define NDNBOOST_PP_ITERATION_3 129
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 130 && BOOST_PP_ITERATION_FINISH_3 >= 130
-#        define BOOST_PP_ITERATION_3 130
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 130 && NDNBOOST_PP_ITERATION_FINISH_3 >= 130
+#        define NDNBOOST_PP_ITERATION_3 130
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 131 && BOOST_PP_ITERATION_FINISH_3 >= 131
-#        define BOOST_PP_ITERATION_3 131
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 131 && NDNBOOST_PP_ITERATION_FINISH_3 >= 131
+#        define NDNBOOST_PP_ITERATION_3 131
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 132 && BOOST_PP_ITERATION_FINISH_3 >= 132
-#        define BOOST_PP_ITERATION_3 132
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 132 && NDNBOOST_PP_ITERATION_FINISH_3 >= 132
+#        define NDNBOOST_PP_ITERATION_3 132
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 133 && BOOST_PP_ITERATION_FINISH_3 >= 133
-#        define BOOST_PP_ITERATION_3 133
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 133 && NDNBOOST_PP_ITERATION_FINISH_3 >= 133
+#        define NDNBOOST_PP_ITERATION_3 133
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 134 && BOOST_PP_ITERATION_FINISH_3 >= 134
-#        define BOOST_PP_ITERATION_3 134
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 134 && NDNBOOST_PP_ITERATION_FINISH_3 >= 134
+#        define NDNBOOST_PP_ITERATION_3 134
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 135 && BOOST_PP_ITERATION_FINISH_3 >= 135
-#        define BOOST_PP_ITERATION_3 135
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 135 && NDNBOOST_PP_ITERATION_FINISH_3 >= 135
+#        define NDNBOOST_PP_ITERATION_3 135
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 136 && BOOST_PP_ITERATION_FINISH_3 >= 136
-#        define BOOST_PP_ITERATION_3 136
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 136 && NDNBOOST_PP_ITERATION_FINISH_3 >= 136
+#        define NDNBOOST_PP_ITERATION_3 136
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 137 && BOOST_PP_ITERATION_FINISH_3 >= 137
-#        define BOOST_PP_ITERATION_3 137
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 137 && NDNBOOST_PP_ITERATION_FINISH_3 >= 137
+#        define NDNBOOST_PP_ITERATION_3 137
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 138 && BOOST_PP_ITERATION_FINISH_3 >= 138
-#        define BOOST_PP_ITERATION_3 138
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 138 && NDNBOOST_PP_ITERATION_FINISH_3 >= 138
+#        define NDNBOOST_PP_ITERATION_3 138
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 139 && BOOST_PP_ITERATION_FINISH_3 >= 139
-#        define BOOST_PP_ITERATION_3 139
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 139 && NDNBOOST_PP_ITERATION_FINISH_3 >= 139
+#        define NDNBOOST_PP_ITERATION_3 139
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 140 && BOOST_PP_ITERATION_FINISH_3 >= 140
-#        define BOOST_PP_ITERATION_3 140
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 140 && NDNBOOST_PP_ITERATION_FINISH_3 >= 140
+#        define NDNBOOST_PP_ITERATION_3 140
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 141 && BOOST_PP_ITERATION_FINISH_3 >= 141
-#        define BOOST_PP_ITERATION_3 141
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 141 && NDNBOOST_PP_ITERATION_FINISH_3 >= 141
+#        define NDNBOOST_PP_ITERATION_3 141
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 142 && BOOST_PP_ITERATION_FINISH_3 >= 142
-#        define BOOST_PP_ITERATION_3 142
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 142 && NDNBOOST_PP_ITERATION_FINISH_3 >= 142
+#        define NDNBOOST_PP_ITERATION_3 142
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 143 && BOOST_PP_ITERATION_FINISH_3 >= 143
-#        define BOOST_PP_ITERATION_3 143
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 143 && NDNBOOST_PP_ITERATION_FINISH_3 >= 143
+#        define NDNBOOST_PP_ITERATION_3 143
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 144 && BOOST_PP_ITERATION_FINISH_3 >= 144
-#        define BOOST_PP_ITERATION_3 144
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 144 && NDNBOOST_PP_ITERATION_FINISH_3 >= 144
+#        define NDNBOOST_PP_ITERATION_3 144
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 145 && BOOST_PP_ITERATION_FINISH_3 >= 145
-#        define BOOST_PP_ITERATION_3 145
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 145 && NDNBOOST_PP_ITERATION_FINISH_3 >= 145
+#        define NDNBOOST_PP_ITERATION_3 145
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 146 && BOOST_PP_ITERATION_FINISH_3 >= 146
-#        define BOOST_PP_ITERATION_3 146
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 146 && NDNBOOST_PP_ITERATION_FINISH_3 >= 146
+#        define NDNBOOST_PP_ITERATION_3 146
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 147 && BOOST_PP_ITERATION_FINISH_3 >= 147
-#        define BOOST_PP_ITERATION_3 147
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 147 && NDNBOOST_PP_ITERATION_FINISH_3 >= 147
+#        define NDNBOOST_PP_ITERATION_3 147
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 148 && BOOST_PP_ITERATION_FINISH_3 >= 148
-#        define BOOST_PP_ITERATION_3 148
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 148 && NDNBOOST_PP_ITERATION_FINISH_3 >= 148
+#        define NDNBOOST_PP_ITERATION_3 148
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 149 && BOOST_PP_ITERATION_FINISH_3 >= 149
-#        define BOOST_PP_ITERATION_3 149
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 149 && NDNBOOST_PP_ITERATION_FINISH_3 >= 149
+#        define NDNBOOST_PP_ITERATION_3 149
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 150 && BOOST_PP_ITERATION_FINISH_3 >= 150
-#        define BOOST_PP_ITERATION_3 150
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 150 && NDNBOOST_PP_ITERATION_FINISH_3 >= 150
+#        define NDNBOOST_PP_ITERATION_3 150
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 151 && BOOST_PP_ITERATION_FINISH_3 >= 151
-#        define BOOST_PP_ITERATION_3 151
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 151 && NDNBOOST_PP_ITERATION_FINISH_3 >= 151
+#        define NDNBOOST_PP_ITERATION_3 151
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 152 && BOOST_PP_ITERATION_FINISH_3 >= 152
-#        define BOOST_PP_ITERATION_3 152
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 152 && NDNBOOST_PP_ITERATION_FINISH_3 >= 152
+#        define NDNBOOST_PP_ITERATION_3 152
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 153 && BOOST_PP_ITERATION_FINISH_3 >= 153
-#        define BOOST_PP_ITERATION_3 153
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 153 && NDNBOOST_PP_ITERATION_FINISH_3 >= 153
+#        define NDNBOOST_PP_ITERATION_3 153
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 154 && BOOST_PP_ITERATION_FINISH_3 >= 154
-#        define BOOST_PP_ITERATION_3 154
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 154 && NDNBOOST_PP_ITERATION_FINISH_3 >= 154
+#        define NDNBOOST_PP_ITERATION_3 154
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 155 && BOOST_PP_ITERATION_FINISH_3 >= 155
-#        define BOOST_PP_ITERATION_3 155
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 155 && NDNBOOST_PP_ITERATION_FINISH_3 >= 155
+#        define NDNBOOST_PP_ITERATION_3 155
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 156 && BOOST_PP_ITERATION_FINISH_3 >= 156
-#        define BOOST_PP_ITERATION_3 156
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 156 && NDNBOOST_PP_ITERATION_FINISH_3 >= 156
+#        define NDNBOOST_PP_ITERATION_3 156
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 157 && BOOST_PP_ITERATION_FINISH_3 >= 157
-#        define BOOST_PP_ITERATION_3 157
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 157 && NDNBOOST_PP_ITERATION_FINISH_3 >= 157
+#        define NDNBOOST_PP_ITERATION_3 157
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 158 && BOOST_PP_ITERATION_FINISH_3 >= 158
-#        define BOOST_PP_ITERATION_3 158
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 158 && NDNBOOST_PP_ITERATION_FINISH_3 >= 158
+#        define NDNBOOST_PP_ITERATION_3 158
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 159 && BOOST_PP_ITERATION_FINISH_3 >= 159
-#        define BOOST_PP_ITERATION_3 159
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 159 && NDNBOOST_PP_ITERATION_FINISH_3 >= 159
+#        define NDNBOOST_PP_ITERATION_3 159
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 160 && BOOST_PP_ITERATION_FINISH_3 >= 160
-#        define BOOST_PP_ITERATION_3 160
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 160 && NDNBOOST_PP_ITERATION_FINISH_3 >= 160
+#        define NDNBOOST_PP_ITERATION_3 160
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 161 && BOOST_PP_ITERATION_FINISH_3 >= 161
-#        define BOOST_PP_ITERATION_3 161
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 161 && NDNBOOST_PP_ITERATION_FINISH_3 >= 161
+#        define NDNBOOST_PP_ITERATION_3 161
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 162 && BOOST_PP_ITERATION_FINISH_3 >= 162
-#        define BOOST_PP_ITERATION_3 162
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 162 && NDNBOOST_PP_ITERATION_FINISH_3 >= 162
+#        define NDNBOOST_PP_ITERATION_3 162
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 163 && BOOST_PP_ITERATION_FINISH_3 >= 163
-#        define BOOST_PP_ITERATION_3 163
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 163 && NDNBOOST_PP_ITERATION_FINISH_3 >= 163
+#        define NDNBOOST_PP_ITERATION_3 163
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 164 && BOOST_PP_ITERATION_FINISH_3 >= 164
-#        define BOOST_PP_ITERATION_3 164
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 164 && NDNBOOST_PP_ITERATION_FINISH_3 >= 164
+#        define NDNBOOST_PP_ITERATION_3 164
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 165 && BOOST_PP_ITERATION_FINISH_3 >= 165
-#        define BOOST_PP_ITERATION_3 165
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 165 && NDNBOOST_PP_ITERATION_FINISH_3 >= 165
+#        define NDNBOOST_PP_ITERATION_3 165
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 166 && BOOST_PP_ITERATION_FINISH_3 >= 166
-#        define BOOST_PP_ITERATION_3 166
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 166 && NDNBOOST_PP_ITERATION_FINISH_3 >= 166
+#        define NDNBOOST_PP_ITERATION_3 166
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 167 && BOOST_PP_ITERATION_FINISH_3 >= 167
-#        define BOOST_PP_ITERATION_3 167
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 167 && NDNBOOST_PP_ITERATION_FINISH_3 >= 167
+#        define NDNBOOST_PP_ITERATION_3 167
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 168 && BOOST_PP_ITERATION_FINISH_3 >= 168
-#        define BOOST_PP_ITERATION_3 168
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 168 && NDNBOOST_PP_ITERATION_FINISH_3 >= 168
+#        define NDNBOOST_PP_ITERATION_3 168
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 169 && BOOST_PP_ITERATION_FINISH_3 >= 169
-#        define BOOST_PP_ITERATION_3 169
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 169 && NDNBOOST_PP_ITERATION_FINISH_3 >= 169
+#        define NDNBOOST_PP_ITERATION_3 169
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 170 && BOOST_PP_ITERATION_FINISH_3 >= 170
-#        define BOOST_PP_ITERATION_3 170
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 170 && NDNBOOST_PP_ITERATION_FINISH_3 >= 170
+#        define NDNBOOST_PP_ITERATION_3 170
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 171 && BOOST_PP_ITERATION_FINISH_3 >= 171
-#        define BOOST_PP_ITERATION_3 171
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 171 && NDNBOOST_PP_ITERATION_FINISH_3 >= 171
+#        define NDNBOOST_PP_ITERATION_3 171
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 172 && BOOST_PP_ITERATION_FINISH_3 >= 172
-#        define BOOST_PP_ITERATION_3 172
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 172 && NDNBOOST_PP_ITERATION_FINISH_3 >= 172
+#        define NDNBOOST_PP_ITERATION_3 172
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 173 && BOOST_PP_ITERATION_FINISH_3 >= 173
-#        define BOOST_PP_ITERATION_3 173
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 173 && NDNBOOST_PP_ITERATION_FINISH_3 >= 173
+#        define NDNBOOST_PP_ITERATION_3 173
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 174 && BOOST_PP_ITERATION_FINISH_3 >= 174
-#        define BOOST_PP_ITERATION_3 174
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 174 && NDNBOOST_PP_ITERATION_FINISH_3 >= 174
+#        define NDNBOOST_PP_ITERATION_3 174
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 175 && BOOST_PP_ITERATION_FINISH_3 >= 175
-#        define BOOST_PP_ITERATION_3 175
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 175 && NDNBOOST_PP_ITERATION_FINISH_3 >= 175
+#        define NDNBOOST_PP_ITERATION_3 175
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 176 && BOOST_PP_ITERATION_FINISH_3 >= 176
-#        define BOOST_PP_ITERATION_3 176
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 176 && NDNBOOST_PP_ITERATION_FINISH_3 >= 176
+#        define NDNBOOST_PP_ITERATION_3 176
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 177 && BOOST_PP_ITERATION_FINISH_3 >= 177
-#        define BOOST_PP_ITERATION_3 177
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 177 && NDNBOOST_PP_ITERATION_FINISH_3 >= 177
+#        define NDNBOOST_PP_ITERATION_3 177
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 178 && BOOST_PP_ITERATION_FINISH_3 >= 178
-#        define BOOST_PP_ITERATION_3 178
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 178 && NDNBOOST_PP_ITERATION_FINISH_3 >= 178
+#        define NDNBOOST_PP_ITERATION_3 178
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 179 && BOOST_PP_ITERATION_FINISH_3 >= 179
-#        define BOOST_PP_ITERATION_3 179
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 179 && NDNBOOST_PP_ITERATION_FINISH_3 >= 179
+#        define NDNBOOST_PP_ITERATION_3 179
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 180 && BOOST_PP_ITERATION_FINISH_3 >= 180
-#        define BOOST_PP_ITERATION_3 180
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 180 && NDNBOOST_PP_ITERATION_FINISH_3 >= 180
+#        define NDNBOOST_PP_ITERATION_3 180
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 181 && BOOST_PP_ITERATION_FINISH_3 >= 181
-#        define BOOST_PP_ITERATION_3 181
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 181 && NDNBOOST_PP_ITERATION_FINISH_3 >= 181
+#        define NDNBOOST_PP_ITERATION_3 181
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 182 && BOOST_PP_ITERATION_FINISH_3 >= 182
-#        define BOOST_PP_ITERATION_3 182
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 182 && NDNBOOST_PP_ITERATION_FINISH_3 >= 182
+#        define NDNBOOST_PP_ITERATION_3 182
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 183 && BOOST_PP_ITERATION_FINISH_3 >= 183
-#        define BOOST_PP_ITERATION_3 183
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 183 && NDNBOOST_PP_ITERATION_FINISH_3 >= 183
+#        define NDNBOOST_PP_ITERATION_3 183
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 184 && BOOST_PP_ITERATION_FINISH_3 >= 184
-#        define BOOST_PP_ITERATION_3 184
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 184 && NDNBOOST_PP_ITERATION_FINISH_3 >= 184
+#        define NDNBOOST_PP_ITERATION_3 184
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 185 && BOOST_PP_ITERATION_FINISH_3 >= 185
-#        define BOOST_PP_ITERATION_3 185
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 185 && NDNBOOST_PP_ITERATION_FINISH_3 >= 185
+#        define NDNBOOST_PP_ITERATION_3 185
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 186 && BOOST_PP_ITERATION_FINISH_3 >= 186
-#        define BOOST_PP_ITERATION_3 186
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 186 && NDNBOOST_PP_ITERATION_FINISH_3 >= 186
+#        define NDNBOOST_PP_ITERATION_3 186
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 187 && BOOST_PP_ITERATION_FINISH_3 >= 187
-#        define BOOST_PP_ITERATION_3 187
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 187 && NDNBOOST_PP_ITERATION_FINISH_3 >= 187
+#        define NDNBOOST_PP_ITERATION_3 187
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 188 && BOOST_PP_ITERATION_FINISH_3 >= 188
-#        define BOOST_PP_ITERATION_3 188
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 188 && NDNBOOST_PP_ITERATION_FINISH_3 >= 188
+#        define NDNBOOST_PP_ITERATION_3 188
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 189 && BOOST_PP_ITERATION_FINISH_3 >= 189
-#        define BOOST_PP_ITERATION_3 189
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 189 && NDNBOOST_PP_ITERATION_FINISH_3 >= 189
+#        define NDNBOOST_PP_ITERATION_3 189
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 190 && BOOST_PP_ITERATION_FINISH_3 >= 190
-#        define BOOST_PP_ITERATION_3 190
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 190 && NDNBOOST_PP_ITERATION_FINISH_3 >= 190
+#        define NDNBOOST_PP_ITERATION_3 190
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 191 && BOOST_PP_ITERATION_FINISH_3 >= 191
-#        define BOOST_PP_ITERATION_3 191
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 191 && NDNBOOST_PP_ITERATION_FINISH_3 >= 191
+#        define NDNBOOST_PP_ITERATION_3 191
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 192 && BOOST_PP_ITERATION_FINISH_3 >= 192
-#        define BOOST_PP_ITERATION_3 192
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 192 && NDNBOOST_PP_ITERATION_FINISH_3 >= 192
+#        define NDNBOOST_PP_ITERATION_3 192
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 193 && BOOST_PP_ITERATION_FINISH_3 >= 193
-#        define BOOST_PP_ITERATION_3 193
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 193 && NDNBOOST_PP_ITERATION_FINISH_3 >= 193
+#        define NDNBOOST_PP_ITERATION_3 193
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 194 && BOOST_PP_ITERATION_FINISH_3 >= 194
-#        define BOOST_PP_ITERATION_3 194
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 194 && NDNBOOST_PP_ITERATION_FINISH_3 >= 194
+#        define NDNBOOST_PP_ITERATION_3 194
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 195 && BOOST_PP_ITERATION_FINISH_3 >= 195
-#        define BOOST_PP_ITERATION_3 195
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 195 && NDNBOOST_PP_ITERATION_FINISH_3 >= 195
+#        define NDNBOOST_PP_ITERATION_3 195
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 196 && BOOST_PP_ITERATION_FINISH_3 >= 196
-#        define BOOST_PP_ITERATION_3 196
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 196 && NDNBOOST_PP_ITERATION_FINISH_3 >= 196
+#        define NDNBOOST_PP_ITERATION_3 196
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 197 && BOOST_PP_ITERATION_FINISH_3 >= 197
-#        define BOOST_PP_ITERATION_3 197
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 197 && NDNBOOST_PP_ITERATION_FINISH_3 >= 197
+#        define NDNBOOST_PP_ITERATION_3 197
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 198 && BOOST_PP_ITERATION_FINISH_3 >= 198
-#        define BOOST_PP_ITERATION_3 198
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 198 && NDNBOOST_PP_ITERATION_FINISH_3 >= 198
+#        define NDNBOOST_PP_ITERATION_3 198
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 199 && BOOST_PP_ITERATION_FINISH_3 >= 199
-#        define BOOST_PP_ITERATION_3 199
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 199 && NDNBOOST_PP_ITERATION_FINISH_3 >= 199
+#        define NDNBOOST_PP_ITERATION_3 199
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 200 && BOOST_PP_ITERATION_FINISH_3 >= 200
-#        define BOOST_PP_ITERATION_3 200
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 200 && NDNBOOST_PP_ITERATION_FINISH_3 >= 200
+#        define NDNBOOST_PP_ITERATION_3 200
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 201 && BOOST_PP_ITERATION_FINISH_3 >= 201
-#        define BOOST_PP_ITERATION_3 201
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 201 && NDNBOOST_PP_ITERATION_FINISH_3 >= 201
+#        define NDNBOOST_PP_ITERATION_3 201
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 202 && BOOST_PP_ITERATION_FINISH_3 >= 202
-#        define BOOST_PP_ITERATION_3 202
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 202 && NDNBOOST_PP_ITERATION_FINISH_3 >= 202
+#        define NDNBOOST_PP_ITERATION_3 202
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 203 && BOOST_PP_ITERATION_FINISH_3 >= 203
-#        define BOOST_PP_ITERATION_3 203
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 203 && NDNBOOST_PP_ITERATION_FINISH_3 >= 203
+#        define NDNBOOST_PP_ITERATION_3 203
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 204 && BOOST_PP_ITERATION_FINISH_3 >= 204
-#        define BOOST_PP_ITERATION_3 204
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 204 && NDNBOOST_PP_ITERATION_FINISH_3 >= 204
+#        define NDNBOOST_PP_ITERATION_3 204
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 205 && BOOST_PP_ITERATION_FINISH_3 >= 205
-#        define BOOST_PP_ITERATION_3 205
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 205 && NDNBOOST_PP_ITERATION_FINISH_3 >= 205
+#        define NDNBOOST_PP_ITERATION_3 205
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 206 && BOOST_PP_ITERATION_FINISH_3 >= 206
-#        define BOOST_PP_ITERATION_3 206
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 206 && NDNBOOST_PP_ITERATION_FINISH_3 >= 206
+#        define NDNBOOST_PP_ITERATION_3 206
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 207 && BOOST_PP_ITERATION_FINISH_3 >= 207
-#        define BOOST_PP_ITERATION_3 207
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 207 && NDNBOOST_PP_ITERATION_FINISH_3 >= 207
+#        define NDNBOOST_PP_ITERATION_3 207
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 208 && BOOST_PP_ITERATION_FINISH_3 >= 208
-#        define BOOST_PP_ITERATION_3 208
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 208 && NDNBOOST_PP_ITERATION_FINISH_3 >= 208
+#        define NDNBOOST_PP_ITERATION_3 208
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 209 && BOOST_PP_ITERATION_FINISH_3 >= 209
-#        define BOOST_PP_ITERATION_3 209
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 209 && NDNBOOST_PP_ITERATION_FINISH_3 >= 209
+#        define NDNBOOST_PP_ITERATION_3 209
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 210 && BOOST_PP_ITERATION_FINISH_3 >= 210
-#        define BOOST_PP_ITERATION_3 210
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 210 && NDNBOOST_PP_ITERATION_FINISH_3 >= 210
+#        define NDNBOOST_PP_ITERATION_3 210
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 211 && BOOST_PP_ITERATION_FINISH_3 >= 211
-#        define BOOST_PP_ITERATION_3 211
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 211 && NDNBOOST_PP_ITERATION_FINISH_3 >= 211
+#        define NDNBOOST_PP_ITERATION_3 211
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 212 && BOOST_PP_ITERATION_FINISH_3 >= 212
-#        define BOOST_PP_ITERATION_3 212
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 212 && NDNBOOST_PP_ITERATION_FINISH_3 >= 212
+#        define NDNBOOST_PP_ITERATION_3 212
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 213 && BOOST_PP_ITERATION_FINISH_3 >= 213
-#        define BOOST_PP_ITERATION_3 213
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 213 && NDNBOOST_PP_ITERATION_FINISH_3 >= 213
+#        define NDNBOOST_PP_ITERATION_3 213
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 214 && BOOST_PP_ITERATION_FINISH_3 >= 214
-#        define BOOST_PP_ITERATION_3 214
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 214 && NDNBOOST_PP_ITERATION_FINISH_3 >= 214
+#        define NDNBOOST_PP_ITERATION_3 214
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 215 && BOOST_PP_ITERATION_FINISH_3 >= 215
-#        define BOOST_PP_ITERATION_3 215
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 215 && NDNBOOST_PP_ITERATION_FINISH_3 >= 215
+#        define NDNBOOST_PP_ITERATION_3 215
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 216 && BOOST_PP_ITERATION_FINISH_3 >= 216
-#        define BOOST_PP_ITERATION_3 216
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 216 && NDNBOOST_PP_ITERATION_FINISH_3 >= 216
+#        define NDNBOOST_PP_ITERATION_3 216
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 217 && BOOST_PP_ITERATION_FINISH_3 >= 217
-#        define BOOST_PP_ITERATION_3 217
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 217 && NDNBOOST_PP_ITERATION_FINISH_3 >= 217
+#        define NDNBOOST_PP_ITERATION_3 217
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 218 && BOOST_PP_ITERATION_FINISH_3 >= 218
-#        define BOOST_PP_ITERATION_3 218
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 218 && NDNBOOST_PP_ITERATION_FINISH_3 >= 218
+#        define NDNBOOST_PP_ITERATION_3 218
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 219 && BOOST_PP_ITERATION_FINISH_3 >= 219
-#        define BOOST_PP_ITERATION_3 219
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 219 && NDNBOOST_PP_ITERATION_FINISH_3 >= 219
+#        define NDNBOOST_PP_ITERATION_3 219
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 220 && BOOST_PP_ITERATION_FINISH_3 >= 220
-#        define BOOST_PP_ITERATION_3 220
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 220 && NDNBOOST_PP_ITERATION_FINISH_3 >= 220
+#        define NDNBOOST_PP_ITERATION_3 220
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 221 && BOOST_PP_ITERATION_FINISH_3 >= 221
-#        define BOOST_PP_ITERATION_3 221
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 221 && NDNBOOST_PP_ITERATION_FINISH_3 >= 221
+#        define NDNBOOST_PP_ITERATION_3 221
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 222 && BOOST_PP_ITERATION_FINISH_3 >= 222
-#        define BOOST_PP_ITERATION_3 222
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 222 && NDNBOOST_PP_ITERATION_FINISH_3 >= 222
+#        define NDNBOOST_PP_ITERATION_3 222
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 223 && BOOST_PP_ITERATION_FINISH_3 >= 223
-#        define BOOST_PP_ITERATION_3 223
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 223 && NDNBOOST_PP_ITERATION_FINISH_3 >= 223
+#        define NDNBOOST_PP_ITERATION_3 223
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 224 && BOOST_PP_ITERATION_FINISH_3 >= 224
-#        define BOOST_PP_ITERATION_3 224
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 224 && NDNBOOST_PP_ITERATION_FINISH_3 >= 224
+#        define NDNBOOST_PP_ITERATION_3 224
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 225 && BOOST_PP_ITERATION_FINISH_3 >= 225
-#        define BOOST_PP_ITERATION_3 225
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 225 && NDNBOOST_PP_ITERATION_FINISH_3 >= 225
+#        define NDNBOOST_PP_ITERATION_3 225
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 226 && BOOST_PP_ITERATION_FINISH_3 >= 226
-#        define BOOST_PP_ITERATION_3 226
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 226 && NDNBOOST_PP_ITERATION_FINISH_3 >= 226
+#        define NDNBOOST_PP_ITERATION_3 226
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 227 && BOOST_PP_ITERATION_FINISH_3 >= 227
-#        define BOOST_PP_ITERATION_3 227
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 227 && NDNBOOST_PP_ITERATION_FINISH_3 >= 227
+#        define NDNBOOST_PP_ITERATION_3 227
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 228 && BOOST_PP_ITERATION_FINISH_3 >= 228
-#        define BOOST_PP_ITERATION_3 228
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 228 && NDNBOOST_PP_ITERATION_FINISH_3 >= 228
+#        define NDNBOOST_PP_ITERATION_3 228
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 229 && BOOST_PP_ITERATION_FINISH_3 >= 229
-#        define BOOST_PP_ITERATION_3 229
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 229 && NDNBOOST_PP_ITERATION_FINISH_3 >= 229
+#        define NDNBOOST_PP_ITERATION_3 229
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 230 && BOOST_PP_ITERATION_FINISH_3 >= 230
-#        define BOOST_PP_ITERATION_3 230
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 230 && NDNBOOST_PP_ITERATION_FINISH_3 >= 230
+#        define NDNBOOST_PP_ITERATION_3 230
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 231 && BOOST_PP_ITERATION_FINISH_3 >= 231
-#        define BOOST_PP_ITERATION_3 231
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 231 && NDNBOOST_PP_ITERATION_FINISH_3 >= 231
+#        define NDNBOOST_PP_ITERATION_3 231
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 232 && BOOST_PP_ITERATION_FINISH_3 >= 232
-#        define BOOST_PP_ITERATION_3 232
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 232 && NDNBOOST_PP_ITERATION_FINISH_3 >= 232
+#        define NDNBOOST_PP_ITERATION_3 232
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 233 && BOOST_PP_ITERATION_FINISH_3 >= 233
-#        define BOOST_PP_ITERATION_3 233
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 233 && NDNBOOST_PP_ITERATION_FINISH_3 >= 233
+#        define NDNBOOST_PP_ITERATION_3 233
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 234 && BOOST_PP_ITERATION_FINISH_3 >= 234
-#        define BOOST_PP_ITERATION_3 234
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 234 && NDNBOOST_PP_ITERATION_FINISH_3 >= 234
+#        define NDNBOOST_PP_ITERATION_3 234
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 235 && BOOST_PP_ITERATION_FINISH_3 >= 235
-#        define BOOST_PP_ITERATION_3 235
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 235 && NDNBOOST_PP_ITERATION_FINISH_3 >= 235
+#        define NDNBOOST_PP_ITERATION_3 235
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 236 && BOOST_PP_ITERATION_FINISH_3 >= 236
-#        define BOOST_PP_ITERATION_3 236
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 236 && NDNBOOST_PP_ITERATION_FINISH_3 >= 236
+#        define NDNBOOST_PP_ITERATION_3 236
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 237 && BOOST_PP_ITERATION_FINISH_3 >= 237
-#        define BOOST_PP_ITERATION_3 237
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 237 && NDNBOOST_PP_ITERATION_FINISH_3 >= 237
+#        define NDNBOOST_PP_ITERATION_3 237
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 238 && BOOST_PP_ITERATION_FINISH_3 >= 238
-#        define BOOST_PP_ITERATION_3 238
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 238 && NDNBOOST_PP_ITERATION_FINISH_3 >= 238
+#        define NDNBOOST_PP_ITERATION_3 238
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 239 && BOOST_PP_ITERATION_FINISH_3 >= 239
-#        define BOOST_PP_ITERATION_3 239
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 239 && NDNBOOST_PP_ITERATION_FINISH_3 >= 239
+#        define NDNBOOST_PP_ITERATION_3 239
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 240 && BOOST_PP_ITERATION_FINISH_3 >= 240
-#        define BOOST_PP_ITERATION_3 240
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 240 && NDNBOOST_PP_ITERATION_FINISH_3 >= 240
+#        define NDNBOOST_PP_ITERATION_3 240
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 241 && BOOST_PP_ITERATION_FINISH_3 >= 241
-#        define BOOST_PP_ITERATION_3 241
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 241 && NDNBOOST_PP_ITERATION_FINISH_3 >= 241
+#        define NDNBOOST_PP_ITERATION_3 241
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 242 && BOOST_PP_ITERATION_FINISH_3 >= 242
-#        define BOOST_PP_ITERATION_3 242
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 242 && NDNBOOST_PP_ITERATION_FINISH_3 >= 242
+#        define NDNBOOST_PP_ITERATION_3 242
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 243 && BOOST_PP_ITERATION_FINISH_3 >= 243
-#        define BOOST_PP_ITERATION_3 243
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 243 && NDNBOOST_PP_ITERATION_FINISH_3 >= 243
+#        define NDNBOOST_PP_ITERATION_3 243
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 244 && BOOST_PP_ITERATION_FINISH_3 >= 244
-#        define BOOST_PP_ITERATION_3 244
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 244 && NDNBOOST_PP_ITERATION_FINISH_3 >= 244
+#        define NDNBOOST_PP_ITERATION_3 244
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 245 && BOOST_PP_ITERATION_FINISH_3 >= 245
-#        define BOOST_PP_ITERATION_3 245
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 245 && NDNBOOST_PP_ITERATION_FINISH_3 >= 245
+#        define NDNBOOST_PP_ITERATION_3 245
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 246 && BOOST_PP_ITERATION_FINISH_3 >= 246
-#        define BOOST_PP_ITERATION_3 246
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 246 && NDNBOOST_PP_ITERATION_FINISH_3 >= 246
+#        define NDNBOOST_PP_ITERATION_3 246
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 247 && BOOST_PP_ITERATION_FINISH_3 >= 247
-#        define BOOST_PP_ITERATION_3 247
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 247 && NDNBOOST_PP_ITERATION_FINISH_3 >= 247
+#        define NDNBOOST_PP_ITERATION_3 247
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 248 && BOOST_PP_ITERATION_FINISH_3 >= 248
-#        define BOOST_PP_ITERATION_3 248
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 248 && NDNBOOST_PP_ITERATION_FINISH_3 >= 248
+#        define NDNBOOST_PP_ITERATION_3 248
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 249 && BOOST_PP_ITERATION_FINISH_3 >= 249
-#        define BOOST_PP_ITERATION_3 249
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 249 && NDNBOOST_PP_ITERATION_FINISH_3 >= 249
+#        define NDNBOOST_PP_ITERATION_3 249
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 250 && BOOST_PP_ITERATION_FINISH_3 >= 250
-#        define BOOST_PP_ITERATION_3 250
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 250 && NDNBOOST_PP_ITERATION_FINISH_3 >= 250
+#        define NDNBOOST_PP_ITERATION_3 250
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 251 && BOOST_PP_ITERATION_FINISH_3 >= 251
-#        define BOOST_PP_ITERATION_3 251
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 251 && NDNBOOST_PP_ITERATION_FINISH_3 >= 251
+#        define NDNBOOST_PP_ITERATION_3 251
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 252 && BOOST_PP_ITERATION_FINISH_3 >= 252
-#        define BOOST_PP_ITERATION_3 252
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 252 && NDNBOOST_PP_ITERATION_FINISH_3 >= 252
+#        define NDNBOOST_PP_ITERATION_3 252
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 253 && BOOST_PP_ITERATION_FINISH_3 >= 253
-#        define BOOST_PP_ITERATION_3 253
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 253 && NDNBOOST_PP_ITERATION_FINISH_3 >= 253
+#        define NDNBOOST_PP_ITERATION_3 253
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 254 && BOOST_PP_ITERATION_FINISH_3 >= 254
-#        define BOOST_PP_ITERATION_3 254
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 254 && NDNBOOST_PP_ITERATION_FINISH_3 >= 254
+#        define NDNBOOST_PP_ITERATION_3 254
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 255 && BOOST_PP_ITERATION_FINISH_3 >= 255
-#        define BOOST_PP_ITERATION_3 255
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 255 && NDNBOOST_PP_ITERATION_FINISH_3 >= 255
+#        define NDNBOOST_PP_ITERATION_3 255
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
-#    if BOOST_PP_ITERATION_START_3 <= 256 && BOOST_PP_ITERATION_FINISH_3 >= 256
-#        define BOOST_PP_ITERATION_3 256
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
+#    if NDNBOOST_PP_ITERATION_START_3 <= 256 && NDNBOOST_PP_ITERATION_FINISH_3 >= 256
+#        define NDNBOOST_PP_ITERATION_3 256
+#        include NDNBOOST_PP_FILENAME_3
+#        undef NDNBOOST_PP_ITERATION_3
 #    endif
 # endif
 #
-# undef BOOST_PP_ITERATION_DEPTH
-# define BOOST_PP_ITERATION_DEPTH() 2
+# undef NDNBOOST_PP_ITERATION_DEPTH
+# define NDNBOOST_PP_ITERATION_DEPTH() 2
 #
-# undef BOOST_PP_ITERATION_START_3
-# undef BOOST_PP_ITERATION_FINISH_3
-# undef BOOST_PP_FILENAME_3
+# undef NDNBOOST_PP_ITERATION_START_3
+# undef NDNBOOST_PP_ITERATION_FINISH_3
+# undef NDNBOOST_PP_FILENAME_3
 #
-# undef BOOST_PP_ITERATION_FLAGS_3
-# undef BOOST_PP_ITERATION_PARAMS_3
+# undef NDNBOOST_PP_ITERATION_FLAGS_3
+# undef NDNBOOST_PP_ITERATION_PARAMS_3
diff --git a/include/ndnboost/preprocessor/iteration/detail/iter/forward4.hpp b/include/ndnboost/preprocessor/iteration/detail/iter/forward4.hpp
index 3ddfbf5..4bc2152 100644
--- a/include/ndnboost/preprocessor/iteration/detail/iter/forward4.hpp
+++ b/include/ndnboost/preprocessor/iteration/detail/iter/forward4.hpp
@@ -9,1330 +9,1330 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# if defined(BOOST_PP_ITERATION_LIMITS)
-#    if !defined(BOOST_PP_FILENAME_4)
-#        error BOOST_PP_ERROR:  depth #4 filename is not defined
+# if defined(NDNBOOST_PP_ITERATION_LIMITS)
+#    if !defined(NDNBOOST_PP_FILENAME_4)
+#        error NDNBOOST_PP_ERROR:  depth #4 filename is not defined
 #    endif
-#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_ITERATION_LIMITS)
+#    define NDNBOOST_PP_VALUE NDNBOOST_PP_TUPLE_ELEM(2, 0, NDNBOOST_PP_ITERATION_LIMITS)
 #    include <ndnboost/preprocessor/iteration/detail/bounds/lower4.hpp>
-#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS)
+#    define NDNBOOST_PP_VALUE NDNBOOST_PP_TUPLE_ELEM(2, 1, NDNBOOST_PP_ITERATION_LIMITS)
 #    include <ndnboost/preprocessor/iteration/detail/bounds/upper4.hpp>
-#    define BOOST_PP_ITERATION_FLAGS_4() 0
-#    undef BOOST_PP_ITERATION_LIMITS
-# elif defined(BOOST_PP_ITERATION_PARAMS_4)
-#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_4)
+#    define NDNBOOST_PP_ITERATION_FLAGS_4() 0
+#    undef NDNBOOST_PP_ITERATION_LIMITS
+# elif defined(NDNBOOST_PP_ITERATION_PARAMS_4)
+#    define NDNBOOST_PP_VALUE NDNBOOST_PP_ARRAY_ELEM(0, NDNBOOST_PP_ITERATION_PARAMS_4)
 #    include <ndnboost/preprocessor/iteration/detail/bounds/lower4.hpp>
-#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ITERATION_PARAMS_4)
+#    define NDNBOOST_PP_VALUE NDNBOOST_PP_ARRAY_ELEM(1, NDNBOOST_PP_ITERATION_PARAMS_4)
 #    include <ndnboost/preprocessor/iteration/detail/bounds/upper4.hpp>
-#    define BOOST_PP_FILENAME_4 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_4)
-#    if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_4) >= 4
-#        define BOOST_PP_ITERATION_FLAGS_4() BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_4)
+#    define NDNBOOST_PP_FILENAME_4 NDNBOOST_PP_ARRAY_ELEM(2, NDNBOOST_PP_ITERATION_PARAMS_4)
+#    if NDNBOOST_PP_ARRAY_SIZE(NDNBOOST_PP_ITERATION_PARAMS_4) >= 4
+#        define NDNBOOST_PP_ITERATION_FLAGS_4() NDNBOOST_PP_ARRAY_ELEM(3, NDNBOOST_PP_ITERATION_PARAMS_4)
 #    else
-#        define BOOST_PP_ITERATION_FLAGS_4() 0
+#        define NDNBOOST_PP_ITERATION_FLAGS_4() 0
 #    endif
 # else
-#    error BOOST_PP_ERROR:  depth #4 iteration boundaries or filename not defined
+#    error NDNBOOST_PP_ERROR:  depth #4 iteration boundaries or filename not defined
 # endif
 #
-# undef BOOST_PP_ITERATION_DEPTH
-# define BOOST_PP_ITERATION_DEPTH() 4
+# undef NDNBOOST_PP_ITERATION_DEPTH
+# define NDNBOOST_PP_ITERATION_DEPTH() 4
 #
-# if (BOOST_PP_ITERATION_START_4) > (BOOST_PP_ITERATION_FINISH_4)
+# if (NDNBOOST_PP_ITERATION_START_4) > (NDNBOOST_PP_ITERATION_FINISH_4)
 #    include <ndnboost/preprocessor/iteration/detail/iter/reverse4.hpp>
 # else
-#    if BOOST_PP_ITERATION_START_4 <= 0 && BOOST_PP_ITERATION_FINISH_4 >= 0
-#        define BOOST_PP_ITERATION_4 0
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 0 && NDNBOOST_PP_ITERATION_FINISH_4 >= 0
+#        define NDNBOOST_PP_ITERATION_4 0
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 1 && BOOST_PP_ITERATION_FINISH_4 >= 1
-#        define BOOST_PP_ITERATION_4 1
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 1 && NDNBOOST_PP_ITERATION_FINISH_4 >= 1
+#        define NDNBOOST_PP_ITERATION_4 1
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 2 && BOOST_PP_ITERATION_FINISH_4 >= 2
-#        define BOOST_PP_ITERATION_4 2
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 2 && NDNBOOST_PP_ITERATION_FINISH_4 >= 2
+#        define NDNBOOST_PP_ITERATION_4 2
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 3 && BOOST_PP_ITERATION_FINISH_4 >= 3
-#        define BOOST_PP_ITERATION_4 3
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 3 && NDNBOOST_PP_ITERATION_FINISH_4 >= 3
+#        define NDNBOOST_PP_ITERATION_4 3
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 4 && BOOST_PP_ITERATION_FINISH_4 >= 4
-#        define BOOST_PP_ITERATION_4 4
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 4 && NDNBOOST_PP_ITERATION_FINISH_4 >= 4
+#        define NDNBOOST_PP_ITERATION_4 4
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 5 && BOOST_PP_ITERATION_FINISH_4 >= 5
-#        define BOOST_PP_ITERATION_4 5
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 5 && NDNBOOST_PP_ITERATION_FINISH_4 >= 5
+#        define NDNBOOST_PP_ITERATION_4 5
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 6 && BOOST_PP_ITERATION_FINISH_4 >= 6
-#        define BOOST_PP_ITERATION_4 6
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 6 && NDNBOOST_PP_ITERATION_FINISH_4 >= 6
+#        define NDNBOOST_PP_ITERATION_4 6
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 7 && BOOST_PP_ITERATION_FINISH_4 >= 7
-#        define BOOST_PP_ITERATION_4 7
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 7 && NDNBOOST_PP_ITERATION_FINISH_4 >= 7
+#        define NDNBOOST_PP_ITERATION_4 7
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 8 && BOOST_PP_ITERATION_FINISH_4 >= 8
-#        define BOOST_PP_ITERATION_4 8
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 8 && NDNBOOST_PP_ITERATION_FINISH_4 >= 8
+#        define NDNBOOST_PP_ITERATION_4 8
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 9 && BOOST_PP_ITERATION_FINISH_4 >= 9
-#        define BOOST_PP_ITERATION_4 9
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 9 && NDNBOOST_PP_ITERATION_FINISH_4 >= 9
+#        define NDNBOOST_PP_ITERATION_4 9
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 10 && BOOST_PP_ITERATION_FINISH_4 >= 10
-#        define BOOST_PP_ITERATION_4 10
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 10 && NDNBOOST_PP_ITERATION_FINISH_4 >= 10
+#        define NDNBOOST_PP_ITERATION_4 10
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 11 && BOOST_PP_ITERATION_FINISH_4 >= 11
-#        define BOOST_PP_ITERATION_4 11
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 11 && NDNBOOST_PP_ITERATION_FINISH_4 >= 11
+#        define NDNBOOST_PP_ITERATION_4 11
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 12 && BOOST_PP_ITERATION_FINISH_4 >= 12
-#        define BOOST_PP_ITERATION_4 12
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 12 && NDNBOOST_PP_ITERATION_FINISH_4 >= 12
+#        define NDNBOOST_PP_ITERATION_4 12
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 13 && BOOST_PP_ITERATION_FINISH_4 >= 13
-#        define BOOST_PP_ITERATION_4 13
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 13 && NDNBOOST_PP_ITERATION_FINISH_4 >= 13
+#        define NDNBOOST_PP_ITERATION_4 13
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 14 && BOOST_PP_ITERATION_FINISH_4 >= 14
-#        define BOOST_PP_ITERATION_4 14
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 14 && NDNBOOST_PP_ITERATION_FINISH_4 >= 14
+#        define NDNBOOST_PP_ITERATION_4 14
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 15 && BOOST_PP_ITERATION_FINISH_4 >= 15
-#        define BOOST_PP_ITERATION_4 15
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 15 && NDNBOOST_PP_ITERATION_FINISH_4 >= 15
+#        define NDNBOOST_PP_ITERATION_4 15
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 16 && BOOST_PP_ITERATION_FINISH_4 >= 16
-#        define BOOST_PP_ITERATION_4 16
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 16 && NDNBOOST_PP_ITERATION_FINISH_4 >= 16
+#        define NDNBOOST_PP_ITERATION_4 16
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 17 && BOOST_PP_ITERATION_FINISH_4 >= 17
-#        define BOOST_PP_ITERATION_4 17
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 17 && NDNBOOST_PP_ITERATION_FINISH_4 >= 17
+#        define NDNBOOST_PP_ITERATION_4 17
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 18 && BOOST_PP_ITERATION_FINISH_4 >= 18
-#        define BOOST_PP_ITERATION_4 18
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 18 && NDNBOOST_PP_ITERATION_FINISH_4 >= 18
+#        define NDNBOOST_PP_ITERATION_4 18
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 19 && BOOST_PP_ITERATION_FINISH_4 >= 19
-#        define BOOST_PP_ITERATION_4 19
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 19 && NDNBOOST_PP_ITERATION_FINISH_4 >= 19
+#        define NDNBOOST_PP_ITERATION_4 19
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 20 && BOOST_PP_ITERATION_FINISH_4 >= 20
-#        define BOOST_PP_ITERATION_4 20
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 20 && NDNBOOST_PP_ITERATION_FINISH_4 >= 20
+#        define NDNBOOST_PP_ITERATION_4 20
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 21 && BOOST_PP_ITERATION_FINISH_4 >= 21
-#        define BOOST_PP_ITERATION_4 21
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 21 && NDNBOOST_PP_ITERATION_FINISH_4 >= 21
+#        define NDNBOOST_PP_ITERATION_4 21
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 22 && BOOST_PP_ITERATION_FINISH_4 >= 22
-#        define BOOST_PP_ITERATION_4 22
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 22 && NDNBOOST_PP_ITERATION_FINISH_4 >= 22
+#        define NDNBOOST_PP_ITERATION_4 22
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 23 && BOOST_PP_ITERATION_FINISH_4 >= 23
-#        define BOOST_PP_ITERATION_4 23
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 23 && NDNBOOST_PP_ITERATION_FINISH_4 >= 23
+#        define NDNBOOST_PP_ITERATION_4 23
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 24 && BOOST_PP_ITERATION_FINISH_4 >= 24
-#        define BOOST_PP_ITERATION_4 24
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 24 && NDNBOOST_PP_ITERATION_FINISH_4 >= 24
+#        define NDNBOOST_PP_ITERATION_4 24
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 25 && BOOST_PP_ITERATION_FINISH_4 >= 25
-#        define BOOST_PP_ITERATION_4 25
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 25 && NDNBOOST_PP_ITERATION_FINISH_4 >= 25
+#        define NDNBOOST_PP_ITERATION_4 25
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 26 && BOOST_PP_ITERATION_FINISH_4 >= 26
-#        define BOOST_PP_ITERATION_4 26
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 26 && NDNBOOST_PP_ITERATION_FINISH_4 >= 26
+#        define NDNBOOST_PP_ITERATION_4 26
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 27 && BOOST_PP_ITERATION_FINISH_4 >= 27
-#        define BOOST_PP_ITERATION_4 27
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 27 && NDNBOOST_PP_ITERATION_FINISH_4 >= 27
+#        define NDNBOOST_PP_ITERATION_4 27
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 28 && BOOST_PP_ITERATION_FINISH_4 >= 28
-#        define BOOST_PP_ITERATION_4 28
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 28 && NDNBOOST_PP_ITERATION_FINISH_4 >= 28
+#        define NDNBOOST_PP_ITERATION_4 28
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 29 && BOOST_PP_ITERATION_FINISH_4 >= 29
-#        define BOOST_PP_ITERATION_4 29
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 29 && NDNBOOST_PP_ITERATION_FINISH_4 >= 29
+#        define NDNBOOST_PP_ITERATION_4 29
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 30 && BOOST_PP_ITERATION_FINISH_4 >= 30
-#        define BOOST_PP_ITERATION_4 30
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 30 && NDNBOOST_PP_ITERATION_FINISH_4 >= 30
+#        define NDNBOOST_PP_ITERATION_4 30
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 31 && BOOST_PP_ITERATION_FINISH_4 >= 31
-#        define BOOST_PP_ITERATION_4 31
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 31 && NDNBOOST_PP_ITERATION_FINISH_4 >= 31
+#        define NDNBOOST_PP_ITERATION_4 31
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 32 && BOOST_PP_ITERATION_FINISH_4 >= 32
-#        define BOOST_PP_ITERATION_4 32
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 32 && NDNBOOST_PP_ITERATION_FINISH_4 >= 32
+#        define NDNBOOST_PP_ITERATION_4 32
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 33 && BOOST_PP_ITERATION_FINISH_4 >= 33
-#        define BOOST_PP_ITERATION_4 33
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 33 && NDNBOOST_PP_ITERATION_FINISH_4 >= 33
+#        define NDNBOOST_PP_ITERATION_4 33
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 34 && BOOST_PP_ITERATION_FINISH_4 >= 34
-#        define BOOST_PP_ITERATION_4 34
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 34 && NDNBOOST_PP_ITERATION_FINISH_4 >= 34
+#        define NDNBOOST_PP_ITERATION_4 34
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 35 && BOOST_PP_ITERATION_FINISH_4 >= 35
-#        define BOOST_PP_ITERATION_4 35
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 35 && NDNBOOST_PP_ITERATION_FINISH_4 >= 35
+#        define NDNBOOST_PP_ITERATION_4 35
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 36 && BOOST_PP_ITERATION_FINISH_4 >= 36
-#        define BOOST_PP_ITERATION_4 36
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 36 && NDNBOOST_PP_ITERATION_FINISH_4 >= 36
+#        define NDNBOOST_PP_ITERATION_4 36
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 37 && BOOST_PP_ITERATION_FINISH_4 >= 37
-#        define BOOST_PP_ITERATION_4 37
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 37 && NDNBOOST_PP_ITERATION_FINISH_4 >= 37
+#        define NDNBOOST_PP_ITERATION_4 37
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 38 && BOOST_PP_ITERATION_FINISH_4 >= 38
-#        define BOOST_PP_ITERATION_4 38
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 38 && NDNBOOST_PP_ITERATION_FINISH_4 >= 38
+#        define NDNBOOST_PP_ITERATION_4 38
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 39 && BOOST_PP_ITERATION_FINISH_4 >= 39
-#        define BOOST_PP_ITERATION_4 39
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 39 && NDNBOOST_PP_ITERATION_FINISH_4 >= 39
+#        define NDNBOOST_PP_ITERATION_4 39
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 40 && BOOST_PP_ITERATION_FINISH_4 >= 40
-#        define BOOST_PP_ITERATION_4 40
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 40 && NDNBOOST_PP_ITERATION_FINISH_4 >= 40
+#        define NDNBOOST_PP_ITERATION_4 40
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 41 && BOOST_PP_ITERATION_FINISH_4 >= 41
-#        define BOOST_PP_ITERATION_4 41
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 41 && NDNBOOST_PP_ITERATION_FINISH_4 >= 41
+#        define NDNBOOST_PP_ITERATION_4 41
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 42 && BOOST_PP_ITERATION_FINISH_4 >= 42
-#        define BOOST_PP_ITERATION_4 42
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 42 && NDNBOOST_PP_ITERATION_FINISH_4 >= 42
+#        define NDNBOOST_PP_ITERATION_4 42
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 43 && BOOST_PP_ITERATION_FINISH_4 >= 43
-#        define BOOST_PP_ITERATION_4 43
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 43 && NDNBOOST_PP_ITERATION_FINISH_4 >= 43
+#        define NDNBOOST_PP_ITERATION_4 43
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 44 && BOOST_PP_ITERATION_FINISH_4 >= 44
-#        define BOOST_PP_ITERATION_4 44
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 44 && NDNBOOST_PP_ITERATION_FINISH_4 >= 44
+#        define NDNBOOST_PP_ITERATION_4 44
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 45 && BOOST_PP_ITERATION_FINISH_4 >= 45
-#        define BOOST_PP_ITERATION_4 45
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 45 && NDNBOOST_PP_ITERATION_FINISH_4 >= 45
+#        define NDNBOOST_PP_ITERATION_4 45
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 46 && BOOST_PP_ITERATION_FINISH_4 >= 46
-#        define BOOST_PP_ITERATION_4 46
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 46 && NDNBOOST_PP_ITERATION_FINISH_4 >= 46
+#        define NDNBOOST_PP_ITERATION_4 46
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 47 && BOOST_PP_ITERATION_FINISH_4 >= 47
-#        define BOOST_PP_ITERATION_4 47
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 47 && NDNBOOST_PP_ITERATION_FINISH_4 >= 47
+#        define NDNBOOST_PP_ITERATION_4 47
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 48 && BOOST_PP_ITERATION_FINISH_4 >= 48
-#        define BOOST_PP_ITERATION_4 48
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 48 && NDNBOOST_PP_ITERATION_FINISH_4 >= 48
+#        define NDNBOOST_PP_ITERATION_4 48
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 49 && BOOST_PP_ITERATION_FINISH_4 >= 49
-#        define BOOST_PP_ITERATION_4 49
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 49 && NDNBOOST_PP_ITERATION_FINISH_4 >= 49
+#        define NDNBOOST_PP_ITERATION_4 49
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 50 && BOOST_PP_ITERATION_FINISH_4 >= 50
-#        define BOOST_PP_ITERATION_4 50
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 50 && NDNBOOST_PP_ITERATION_FINISH_4 >= 50
+#        define NDNBOOST_PP_ITERATION_4 50
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 51 && BOOST_PP_ITERATION_FINISH_4 >= 51
-#        define BOOST_PP_ITERATION_4 51
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 51 && NDNBOOST_PP_ITERATION_FINISH_4 >= 51
+#        define NDNBOOST_PP_ITERATION_4 51
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 52 && BOOST_PP_ITERATION_FINISH_4 >= 52
-#        define BOOST_PP_ITERATION_4 52
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 52 && NDNBOOST_PP_ITERATION_FINISH_4 >= 52
+#        define NDNBOOST_PP_ITERATION_4 52
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 53 && BOOST_PP_ITERATION_FINISH_4 >= 53
-#        define BOOST_PP_ITERATION_4 53
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 53 && NDNBOOST_PP_ITERATION_FINISH_4 >= 53
+#        define NDNBOOST_PP_ITERATION_4 53
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 54 && BOOST_PP_ITERATION_FINISH_4 >= 54
-#        define BOOST_PP_ITERATION_4 54
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 54 && NDNBOOST_PP_ITERATION_FINISH_4 >= 54
+#        define NDNBOOST_PP_ITERATION_4 54
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 55 && BOOST_PP_ITERATION_FINISH_4 >= 55
-#        define BOOST_PP_ITERATION_4 55
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 55 && NDNBOOST_PP_ITERATION_FINISH_4 >= 55
+#        define NDNBOOST_PP_ITERATION_4 55
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 56 && BOOST_PP_ITERATION_FINISH_4 >= 56
-#        define BOOST_PP_ITERATION_4 56
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 56 && NDNBOOST_PP_ITERATION_FINISH_4 >= 56
+#        define NDNBOOST_PP_ITERATION_4 56
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 57 && BOOST_PP_ITERATION_FINISH_4 >= 57
-#        define BOOST_PP_ITERATION_4 57
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 57 && NDNBOOST_PP_ITERATION_FINISH_4 >= 57
+#        define NDNBOOST_PP_ITERATION_4 57
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 58 && BOOST_PP_ITERATION_FINISH_4 >= 58
-#        define BOOST_PP_ITERATION_4 58
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 58 && NDNBOOST_PP_ITERATION_FINISH_4 >= 58
+#        define NDNBOOST_PP_ITERATION_4 58
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 59 && BOOST_PP_ITERATION_FINISH_4 >= 59
-#        define BOOST_PP_ITERATION_4 59
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 59 && NDNBOOST_PP_ITERATION_FINISH_4 >= 59
+#        define NDNBOOST_PP_ITERATION_4 59
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 60 && BOOST_PP_ITERATION_FINISH_4 >= 60
-#        define BOOST_PP_ITERATION_4 60
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 60 && NDNBOOST_PP_ITERATION_FINISH_4 >= 60
+#        define NDNBOOST_PP_ITERATION_4 60
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 61 && BOOST_PP_ITERATION_FINISH_4 >= 61
-#        define BOOST_PP_ITERATION_4 61
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 61 && NDNBOOST_PP_ITERATION_FINISH_4 >= 61
+#        define NDNBOOST_PP_ITERATION_4 61
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 62 && BOOST_PP_ITERATION_FINISH_4 >= 62
-#        define BOOST_PP_ITERATION_4 62
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 62 && NDNBOOST_PP_ITERATION_FINISH_4 >= 62
+#        define NDNBOOST_PP_ITERATION_4 62
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 63 && BOOST_PP_ITERATION_FINISH_4 >= 63
-#        define BOOST_PP_ITERATION_4 63
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 63 && NDNBOOST_PP_ITERATION_FINISH_4 >= 63
+#        define NDNBOOST_PP_ITERATION_4 63
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 64 && BOOST_PP_ITERATION_FINISH_4 >= 64
-#        define BOOST_PP_ITERATION_4 64
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 64 && NDNBOOST_PP_ITERATION_FINISH_4 >= 64
+#        define NDNBOOST_PP_ITERATION_4 64
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 65 && BOOST_PP_ITERATION_FINISH_4 >= 65
-#        define BOOST_PP_ITERATION_4 65
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 65 && NDNBOOST_PP_ITERATION_FINISH_4 >= 65
+#        define NDNBOOST_PP_ITERATION_4 65
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 66 && BOOST_PP_ITERATION_FINISH_4 >= 66
-#        define BOOST_PP_ITERATION_4 66
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 66 && NDNBOOST_PP_ITERATION_FINISH_4 >= 66
+#        define NDNBOOST_PP_ITERATION_4 66
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 67 && BOOST_PP_ITERATION_FINISH_4 >= 67
-#        define BOOST_PP_ITERATION_4 67
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 67 && NDNBOOST_PP_ITERATION_FINISH_4 >= 67
+#        define NDNBOOST_PP_ITERATION_4 67
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 68 && BOOST_PP_ITERATION_FINISH_4 >= 68
-#        define BOOST_PP_ITERATION_4 68
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 68 && NDNBOOST_PP_ITERATION_FINISH_4 >= 68
+#        define NDNBOOST_PP_ITERATION_4 68
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 69 && BOOST_PP_ITERATION_FINISH_4 >= 69
-#        define BOOST_PP_ITERATION_4 69
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 69 && NDNBOOST_PP_ITERATION_FINISH_4 >= 69
+#        define NDNBOOST_PP_ITERATION_4 69
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 70 && BOOST_PP_ITERATION_FINISH_4 >= 70
-#        define BOOST_PP_ITERATION_4 70
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 70 && NDNBOOST_PP_ITERATION_FINISH_4 >= 70
+#        define NDNBOOST_PP_ITERATION_4 70
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 71 && BOOST_PP_ITERATION_FINISH_4 >= 71
-#        define BOOST_PP_ITERATION_4 71
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 71 && NDNBOOST_PP_ITERATION_FINISH_4 >= 71
+#        define NDNBOOST_PP_ITERATION_4 71
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 72 && BOOST_PP_ITERATION_FINISH_4 >= 72
-#        define BOOST_PP_ITERATION_4 72
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 72 && NDNBOOST_PP_ITERATION_FINISH_4 >= 72
+#        define NDNBOOST_PP_ITERATION_4 72
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 73 && BOOST_PP_ITERATION_FINISH_4 >= 73
-#        define BOOST_PP_ITERATION_4 73
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 73 && NDNBOOST_PP_ITERATION_FINISH_4 >= 73
+#        define NDNBOOST_PP_ITERATION_4 73
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 74 && BOOST_PP_ITERATION_FINISH_4 >= 74
-#        define BOOST_PP_ITERATION_4 74
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 74 && NDNBOOST_PP_ITERATION_FINISH_4 >= 74
+#        define NDNBOOST_PP_ITERATION_4 74
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 75 && BOOST_PP_ITERATION_FINISH_4 >= 75
-#        define BOOST_PP_ITERATION_4 75
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 75 && NDNBOOST_PP_ITERATION_FINISH_4 >= 75
+#        define NDNBOOST_PP_ITERATION_4 75
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 76 && BOOST_PP_ITERATION_FINISH_4 >= 76
-#        define BOOST_PP_ITERATION_4 76
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 76 && NDNBOOST_PP_ITERATION_FINISH_4 >= 76
+#        define NDNBOOST_PP_ITERATION_4 76
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 77 && BOOST_PP_ITERATION_FINISH_4 >= 77
-#        define BOOST_PP_ITERATION_4 77
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 77 && NDNBOOST_PP_ITERATION_FINISH_4 >= 77
+#        define NDNBOOST_PP_ITERATION_4 77
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 78 && BOOST_PP_ITERATION_FINISH_4 >= 78
-#        define BOOST_PP_ITERATION_4 78
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 78 && NDNBOOST_PP_ITERATION_FINISH_4 >= 78
+#        define NDNBOOST_PP_ITERATION_4 78
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 79 && BOOST_PP_ITERATION_FINISH_4 >= 79
-#        define BOOST_PP_ITERATION_4 79
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 79 && NDNBOOST_PP_ITERATION_FINISH_4 >= 79
+#        define NDNBOOST_PP_ITERATION_4 79
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 80 && BOOST_PP_ITERATION_FINISH_4 >= 80
-#        define BOOST_PP_ITERATION_4 80
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 80 && NDNBOOST_PP_ITERATION_FINISH_4 >= 80
+#        define NDNBOOST_PP_ITERATION_4 80
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 81 && BOOST_PP_ITERATION_FINISH_4 >= 81
-#        define BOOST_PP_ITERATION_4 81
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 81 && NDNBOOST_PP_ITERATION_FINISH_4 >= 81
+#        define NDNBOOST_PP_ITERATION_4 81
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 82 && BOOST_PP_ITERATION_FINISH_4 >= 82
-#        define BOOST_PP_ITERATION_4 82
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 82 && NDNBOOST_PP_ITERATION_FINISH_4 >= 82
+#        define NDNBOOST_PP_ITERATION_4 82
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 83 && BOOST_PP_ITERATION_FINISH_4 >= 83
-#        define BOOST_PP_ITERATION_4 83
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 83 && NDNBOOST_PP_ITERATION_FINISH_4 >= 83
+#        define NDNBOOST_PP_ITERATION_4 83
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 84 && BOOST_PP_ITERATION_FINISH_4 >= 84
-#        define BOOST_PP_ITERATION_4 84
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 84 && NDNBOOST_PP_ITERATION_FINISH_4 >= 84
+#        define NDNBOOST_PP_ITERATION_4 84
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 85 && BOOST_PP_ITERATION_FINISH_4 >= 85
-#        define BOOST_PP_ITERATION_4 85
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 85 && NDNBOOST_PP_ITERATION_FINISH_4 >= 85
+#        define NDNBOOST_PP_ITERATION_4 85
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 86 && BOOST_PP_ITERATION_FINISH_4 >= 86
-#        define BOOST_PP_ITERATION_4 86
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 86 && NDNBOOST_PP_ITERATION_FINISH_4 >= 86
+#        define NDNBOOST_PP_ITERATION_4 86
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 87 && BOOST_PP_ITERATION_FINISH_4 >= 87
-#        define BOOST_PP_ITERATION_4 87
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 87 && NDNBOOST_PP_ITERATION_FINISH_4 >= 87
+#        define NDNBOOST_PP_ITERATION_4 87
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 88 && BOOST_PP_ITERATION_FINISH_4 >= 88
-#        define BOOST_PP_ITERATION_4 88
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 88 && NDNBOOST_PP_ITERATION_FINISH_4 >= 88
+#        define NDNBOOST_PP_ITERATION_4 88
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 89 && BOOST_PP_ITERATION_FINISH_4 >= 89
-#        define BOOST_PP_ITERATION_4 89
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 89 && NDNBOOST_PP_ITERATION_FINISH_4 >= 89
+#        define NDNBOOST_PP_ITERATION_4 89
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 90 && BOOST_PP_ITERATION_FINISH_4 >= 90
-#        define BOOST_PP_ITERATION_4 90
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 90 && NDNBOOST_PP_ITERATION_FINISH_4 >= 90
+#        define NDNBOOST_PP_ITERATION_4 90
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 91 && BOOST_PP_ITERATION_FINISH_4 >= 91
-#        define BOOST_PP_ITERATION_4 91
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 91 && NDNBOOST_PP_ITERATION_FINISH_4 >= 91
+#        define NDNBOOST_PP_ITERATION_4 91
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 92 && BOOST_PP_ITERATION_FINISH_4 >= 92
-#        define BOOST_PP_ITERATION_4 92
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 92 && NDNBOOST_PP_ITERATION_FINISH_4 >= 92
+#        define NDNBOOST_PP_ITERATION_4 92
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 93 && BOOST_PP_ITERATION_FINISH_4 >= 93
-#        define BOOST_PP_ITERATION_4 93
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 93 && NDNBOOST_PP_ITERATION_FINISH_4 >= 93
+#        define NDNBOOST_PP_ITERATION_4 93
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 94 && BOOST_PP_ITERATION_FINISH_4 >= 94
-#        define BOOST_PP_ITERATION_4 94
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 94 && NDNBOOST_PP_ITERATION_FINISH_4 >= 94
+#        define NDNBOOST_PP_ITERATION_4 94
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 95 && BOOST_PP_ITERATION_FINISH_4 >= 95
-#        define BOOST_PP_ITERATION_4 95
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 95 && NDNBOOST_PP_ITERATION_FINISH_4 >= 95
+#        define NDNBOOST_PP_ITERATION_4 95
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 96 && BOOST_PP_ITERATION_FINISH_4 >= 96
-#        define BOOST_PP_ITERATION_4 96
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 96 && NDNBOOST_PP_ITERATION_FINISH_4 >= 96
+#        define NDNBOOST_PP_ITERATION_4 96
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 97 && BOOST_PP_ITERATION_FINISH_4 >= 97
-#        define BOOST_PP_ITERATION_4 97
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 97 && NDNBOOST_PP_ITERATION_FINISH_4 >= 97
+#        define NDNBOOST_PP_ITERATION_4 97
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 98 && BOOST_PP_ITERATION_FINISH_4 >= 98
-#        define BOOST_PP_ITERATION_4 98
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 98 && NDNBOOST_PP_ITERATION_FINISH_4 >= 98
+#        define NDNBOOST_PP_ITERATION_4 98
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 99 && BOOST_PP_ITERATION_FINISH_4 >= 99
-#        define BOOST_PP_ITERATION_4 99
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 99 && NDNBOOST_PP_ITERATION_FINISH_4 >= 99
+#        define NDNBOOST_PP_ITERATION_4 99
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 100 && BOOST_PP_ITERATION_FINISH_4 >= 100
-#        define BOOST_PP_ITERATION_4 100
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 100 && NDNBOOST_PP_ITERATION_FINISH_4 >= 100
+#        define NDNBOOST_PP_ITERATION_4 100
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 101 && BOOST_PP_ITERATION_FINISH_4 >= 101
-#        define BOOST_PP_ITERATION_4 101
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 101 && NDNBOOST_PP_ITERATION_FINISH_4 >= 101
+#        define NDNBOOST_PP_ITERATION_4 101
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 102 && BOOST_PP_ITERATION_FINISH_4 >= 102
-#        define BOOST_PP_ITERATION_4 102
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 102 && NDNBOOST_PP_ITERATION_FINISH_4 >= 102
+#        define NDNBOOST_PP_ITERATION_4 102
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 103 && BOOST_PP_ITERATION_FINISH_4 >= 103
-#        define BOOST_PP_ITERATION_4 103
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 103 && NDNBOOST_PP_ITERATION_FINISH_4 >= 103
+#        define NDNBOOST_PP_ITERATION_4 103
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 104 && BOOST_PP_ITERATION_FINISH_4 >= 104
-#        define BOOST_PP_ITERATION_4 104
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 104 && NDNBOOST_PP_ITERATION_FINISH_4 >= 104
+#        define NDNBOOST_PP_ITERATION_4 104
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 105 && BOOST_PP_ITERATION_FINISH_4 >= 105
-#        define BOOST_PP_ITERATION_4 105
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 105 && NDNBOOST_PP_ITERATION_FINISH_4 >= 105
+#        define NDNBOOST_PP_ITERATION_4 105
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 106 && BOOST_PP_ITERATION_FINISH_4 >= 106
-#        define BOOST_PP_ITERATION_4 106
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 106 && NDNBOOST_PP_ITERATION_FINISH_4 >= 106
+#        define NDNBOOST_PP_ITERATION_4 106
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 107 && BOOST_PP_ITERATION_FINISH_4 >= 107
-#        define BOOST_PP_ITERATION_4 107
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 107 && NDNBOOST_PP_ITERATION_FINISH_4 >= 107
+#        define NDNBOOST_PP_ITERATION_4 107
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 108 && BOOST_PP_ITERATION_FINISH_4 >= 108
-#        define BOOST_PP_ITERATION_4 108
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 108 && NDNBOOST_PP_ITERATION_FINISH_4 >= 108
+#        define NDNBOOST_PP_ITERATION_4 108
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 109 && BOOST_PP_ITERATION_FINISH_4 >= 109
-#        define BOOST_PP_ITERATION_4 109
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 109 && NDNBOOST_PP_ITERATION_FINISH_4 >= 109
+#        define NDNBOOST_PP_ITERATION_4 109
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 110 && BOOST_PP_ITERATION_FINISH_4 >= 110
-#        define BOOST_PP_ITERATION_4 110
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 110 && NDNBOOST_PP_ITERATION_FINISH_4 >= 110
+#        define NDNBOOST_PP_ITERATION_4 110
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 111 && BOOST_PP_ITERATION_FINISH_4 >= 111
-#        define BOOST_PP_ITERATION_4 111
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 111 && NDNBOOST_PP_ITERATION_FINISH_4 >= 111
+#        define NDNBOOST_PP_ITERATION_4 111
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 112 && BOOST_PP_ITERATION_FINISH_4 >= 112
-#        define BOOST_PP_ITERATION_4 112
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 112 && NDNBOOST_PP_ITERATION_FINISH_4 >= 112
+#        define NDNBOOST_PP_ITERATION_4 112
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 113 && BOOST_PP_ITERATION_FINISH_4 >= 113
-#        define BOOST_PP_ITERATION_4 113
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 113 && NDNBOOST_PP_ITERATION_FINISH_4 >= 113
+#        define NDNBOOST_PP_ITERATION_4 113
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 114 && BOOST_PP_ITERATION_FINISH_4 >= 114
-#        define BOOST_PP_ITERATION_4 114
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 114 && NDNBOOST_PP_ITERATION_FINISH_4 >= 114
+#        define NDNBOOST_PP_ITERATION_4 114
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 115 && BOOST_PP_ITERATION_FINISH_4 >= 115
-#        define BOOST_PP_ITERATION_4 115
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 115 && NDNBOOST_PP_ITERATION_FINISH_4 >= 115
+#        define NDNBOOST_PP_ITERATION_4 115
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 116 && BOOST_PP_ITERATION_FINISH_4 >= 116
-#        define BOOST_PP_ITERATION_4 116
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 116 && NDNBOOST_PP_ITERATION_FINISH_4 >= 116
+#        define NDNBOOST_PP_ITERATION_4 116
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 117 && BOOST_PP_ITERATION_FINISH_4 >= 117
-#        define BOOST_PP_ITERATION_4 117
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 117 && NDNBOOST_PP_ITERATION_FINISH_4 >= 117
+#        define NDNBOOST_PP_ITERATION_4 117
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 118 && BOOST_PP_ITERATION_FINISH_4 >= 118
-#        define BOOST_PP_ITERATION_4 118
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 118 && NDNBOOST_PP_ITERATION_FINISH_4 >= 118
+#        define NDNBOOST_PP_ITERATION_4 118
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 119 && BOOST_PP_ITERATION_FINISH_4 >= 119
-#        define BOOST_PP_ITERATION_4 119
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 119 && NDNBOOST_PP_ITERATION_FINISH_4 >= 119
+#        define NDNBOOST_PP_ITERATION_4 119
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 120 && BOOST_PP_ITERATION_FINISH_4 >= 120
-#        define BOOST_PP_ITERATION_4 120
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 120 && NDNBOOST_PP_ITERATION_FINISH_4 >= 120
+#        define NDNBOOST_PP_ITERATION_4 120
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 121 && BOOST_PP_ITERATION_FINISH_4 >= 121
-#        define BOOST_PP_ITERATION_4 121
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 121 && NDNBOOST_PP_ITERATION_FINISH_4 >= 121
+#        define NDNBOOST_PP_ITERATION_4 121
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 122 && BOOST_PP_ITERATION_FINISH_4 >= 122
-#        define BOOST_PP_ITERATION_4 122
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 122 && NDNBOOST_PP_ITERATION_FINISH_4 >= 122
+#        define NDNBOOST_PP_ITERATION_4 122
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 123 && BOOST_PP_ITERATION_FINISH_4 >= 123
-#        define BOOST_PP_ITERATION_4 123
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 123 && NDNBOOST_PP_ITERATION_FINISH_4 >= 123
+#        define NDNBOOST_PP_ITERATION_4 123
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 124 && BOOST_PP_ITERATION_FINISH_4 >= 124
-#        define BOOST_PP_ITERATION_4 124
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 124 && NDNBOOST_PP_ITERATION_FINISH_4 >= 124
+#        define NDNBOOST_PP_ITERATION_4 124
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 125 && BOOST_PP_ITERATION_FINISH_4 >= 125
-#        define BOOST_PP_ITERATION_4 125
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 125 && NDNBOOST_PP_ITERATION_FINISH_4 >= 125
+#        define NDNBOOST_PP_ITERATION_4 125
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 126 && BOOST_PP_ITERATION_FINISH_4 >= 126
-#        define BOOST_PP_ITERATION_4 126
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 126 && NDNBOOST_PP_ITERATION_FINISH_4 >= 126
+#        define NDNBOOST_PP_ITERATION_4 126
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 127 && BOOST_PP_ITERATION_FINISH_4 >= 127
-#        define BOOST_PP_ITERATION_4 127
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 127 && NDNBOOST_PP_ITERATION_FINISH_4 >= 127
+#        define NDNBOOST_PP_ITERATION_4 127
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 128 && BOOST_PP_ITERATION_FINISH_4 >= 128
-#        define BOOST_PP_ITERATION_4 128
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 128 && NDNBOOST_PP_ITERATION_FINISH_4 >= 128
+#        define NDNBOOST_PP_ITERATION_4 128
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 129 && BOOST_PP_ITERATION_FINISH_4 >= 129
-#        define BOOST_PP_ITERATION_4 129
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 129 && NDNBOOST_PP_ITERATION_FINISH_4 >= 129
+#        define NDNBOOST_PP_ITERATION_4 129
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 130 && BOOST_PP_ITERATION_FINISH_4 >= 130
-#        define BOOST_PP_ITERATION_4 130
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 130 && NDNBOOST_PP_ITERATION_FINISH_4 >= 130
+#        define NDNBOOST_PP_ITERATION_4 130
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 131 && BOOST_PP_ITERATION_FINISH_4 >= 131
-#        define BOOST_PP_ITERATION_4 131
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 131 && NDNBOOST_PP_ITERATION_FINISH_4 >= 131
+#        define NDNBOOST_PP_ITERATION_4 131
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 132 && BOOST_PP_ITERATION_FINISH_4 >= 132
-#        define BOOST_PP_ITERATION_4 132
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 132 && NDNBOOST_PP_ITERATION_FINISH_4 >= 132
+#        define NDNBOOST_PP_ITERATION_4 132
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 133 && BOOST_PP_ITERATION_FINISH_4 >= 133
-#        define BOOST_PP_ITERATION_4 133
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 133 && NDNBOOST_PP_ITERATION_FINISH_4 >= 133
+#        define NDNBOOST_PP_ITERATION_4 133
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 134 && BOOST_PP_ITERATION_FINISH_4 >= 134
-#        define BOOST_PP_ITERATION_4 134
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 134 && NDNBOOST_PP_ITERATION_FINISH_4 >= 134
+#        define NDNBOOST_PP_ITERATION_4 134
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 135 && BOOST_PP_ITERATION_FINISH_4 >= 135
-#        define BOOST_PP_ITERATION_4 135
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 135 && NDNBOOST_PP_ITERATION_FINISH_4 >= 135
+#        define NDNBOOST_PP_ITERATION_4 135
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 136 && BOOST_PP_ITERATION_FINISH_4 >= 136
-#        define BOOST_PP_ITERATION_4 136
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 136 && NDNBOOST_PP_ITERATION_FINISH_4 >= 136
+#        define NDNBOOST_PP_ITERATION_4 136
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 137 && BOOST_PP_ITERATION_FINISH_4 >= 137
-#        define BOOST_PP_ITERATION_4 137
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 137 && NDNBOOST_PP_ITERATION_FINISH_4 >= 137
+#        define NDNBOOST_PP_ITERATION_4 137
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 138 && BOOST_PP_ITERATION_FINISH_4 >= 138
-#        define BOOST_PP_ITERATION_4 138
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 138 && NDNBOOST_PP_ITERATION_FINISH_4 >= 138
+#        define NDNBOOST_PP_ITERATION_4 138
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 139 && BOOST_PP_ITERATION_FINISH_4 >= 139
-#        define BOOST_PP_ITERATION_4 139
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 139 && NDNBOOST_PP_ITERATION_FINISH_4 >= 139
+#        define NDNBOOST_PP_ITERATION_4 139
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 140 && BOOST_PP_ITERATION_FINISH_4 >= 140
-#        define BOOST_PP_ITERATION_4 140
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 140 && NDNBOOST_PP_ITERATION_FINISH_4 >= 140
+#        define NDNBOOST_PP_ITERATION_4 140
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 141 && BOOST_PP_ITERATION_FINISH_4 >= 141
-#        define BOOST_PP_ITERATION_4 141
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 141 && NDNBOOST_PP_ITERATION_FINISH_4 >= 141
+#        define NDNBOOST_PP_ITERATION_4 141
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 142 && BOOST_PP_ITERATION_FINISH_4 >= 142
-#        define BOOST_PP_ITERATION_4 142
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 142 && NDNBOOST_PP_ITERATION_FINISH_4 >= 142
+#        define NDNBOOST_PP_ITERATION_4 142
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 143 && BOOST_PP_ITERATION_FINISH_4 >= 143
-#        define BOOST_PP_ITERATION_4 143
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 143 && NDNBOOST_PP_ITERATION_FINISH_4 >= 143
+#        define NDNBOOST_PP_ITERATION_4 143
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 144 && BOOST_PP_ITERATION_FINISH_4 >= 144
-#        define BOOST_PP_ITERATION_4 144
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 144 && NDNBOOST_PP_ITERATION_FINISH_4 >= 144
+#        define NDNBOOST_PP_ITERATION_4 144
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 145 && BOOST_PP_ITERATION_FINISH_4 >= 145
-#        define BOOST_PP_ITERATION_4 145
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 145 && NDNBOOST_PP_ITERATION_FINISH_4 >= 145
+#        define NDNBOOST_PP_ITERATION_4 145
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 146 && BOOST_PP_ITERATION_FINISH_4 >= 146
-#        define BOOST_PP_ITERATION_4 146
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 146 && NDNBOOST_PP_ITERATION_FINISH_4 >= 146
+#        define NDNBOOST_PP_ITERATION_4 146
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 147 && BOOST_PP_ITERATION_FINISH_4 >= 147
-#        define BOOST_PP_ITERATION_4 147
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 147 && NDNBOOST_PP_ITERATION_FINISH_4 >= 147
+#        define NDNBOOST_PP_ITERATION_4 147
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 148 && BOOST_PP_ITERATION_FINISH_4 >= 148
-#        define BOOST_PP_ITERATION_4 148
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 148 && NDNBOOST_PP_ITERATION_FINISH_4 >= 148
+#        define NDNBOOST_PP_ITERATION_4 148
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 149 && BOOST_PP_ITERATION_FINISH_4 >= 149
-#        define BOOST_PP_ITERATION_4 149
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 149 && NDNBOOST_PP_ITERATION_FINISH_4 >= 149
+#        define NDNBOOST_PP_ITERATION_4 149
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 150 && BOOST_PP_ITERATION_FINISH_4 >= 150
-#        define BOOST_PP_ITERATION_4 150
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 150 && NDNBOOST_PP_ITERATION_FINISH_4 >= 150
+#        define NDNBOOST_PP_ITERATION_4 150
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 151 && BOOST_PP_ITERATION_FINISH_4 >= 151
-#        define BOOST_PP_ITERATION_4 151
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 151 && NDNBOOST_PP_ITERATION_FINISH_4 >= 151
+#        define NDNBOOST_PP_ITERATION_4 151
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 152 && BOOST_PP_ITERATION_FINISH_4 >= 152
-#        define BOOST_PP_ITERATION_4 152
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 152 && NDNBOOST_PP_ITERATION_FINISH_4 >= 152
+#        define NDNBOOST_PP_ITERATION_4 152
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 153 && BOOST_PP_ITERATION_FINISH_4 >= 153
-#        define BOOST_PP_ITERATION_4 153
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 153 && NDNBOOST_PP_ITERATION_FINISH_4 >= 153
+#        define NDNBOOST_PP_ITERATION_4 153
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 154 && BOOST_PP_ITERATION_FINISH_4 >= 154
-#        define BOOST_PP_ITERATION_4 154
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 154 && NDNBOOST_PP_ITERATION_FINISH_4 >= 154
+#        define NDNBOOST_PP_ITERATION_4 154
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 155 && BOOST_PP_ITERATION_FINISH_4 >= 155
-#        define BOOST_PP_ITERATION_4 155
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 155 && NDNBOOST_PP_ITERATION_FINISH_4 >= 155
+#        define NDNBOOST_PP_ITERATION_4 155
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 156 && BOOST_PP_ITERATION_FINISH_4 >= 156
-#        define BOOST_PP_ITERATION_4 156
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 156 && NDNBOOST_PP_ITERATION_FINISH_4 >= 156
+#        define NDNBOOST_PP_ITERATION_4 156
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 157 && BOOST_PP_ITERATION_FINISH_4 >= 157
-#        define BOOST_PP_ITERATION_4 157
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 157 && NDNBOOST_PP_ITERATION_FINISH_4 >= 157
+#        define NDNBOOST_PP_ITERATION_4 157
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 158 && BOOST_PP_ITERATION_FINISH_4 >= 158
-#        define BOOST_PP_ITERATION_4 158
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 158 && NDNBOOST_PP_ITERATION_FINISH_4 >= 158
+#        define NDNBOOST_PP_ITERATION_4 158
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 159 && BOOST_PP_ITERATION_FINISH_4 >= 159
-#        define BOOST_PP_ITERATION_4 159
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 159 && NDNBOOST_PP_ITERATION_FINISH_4 >= 159
+#        define NDNBOOST_PP_ITERATION_4 159
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 160 && BOOST_PP_ITERATION_FINISH_4 >= 160
-#        define BOOST_PP_ITERATION_4 160
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 160 && NDNBOOST_PP_ITERATION_FINISH_4 >= 160
+#        define NDNBOOST_PP_ITERATION_4 160
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 161 && BOOST_PP_ITERATION_FINISH_4 >= 161
-#        define BOOST_PP_ITERATION_4 161
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 161 && NDNBOOST_PP_ITERATION_FINISH_4 >= 161
+#        define NDNBOOST_PP_ITERATION_4 161
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 162 && BOOST_PP_ITERATION_FINISH_4 >= 162
-#        define BOOST_PP_ITERATION_4 162
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 162 && NDNBOOST_PP_ITERATION_FINISH_4 >= 162
+#        define NDNBOOST_PP_ITERATION_4 162
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 163 && BOOST_PP_ITERATION_FINISH_4 >= 163
-#        define BOOST_PP_ITERATION_4 163
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 163 && NDNBOOST_PP_ITERATION_FINISH_4 >= 163
+#        define NDNBOOST_PP_ITERATION_4 163
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 164 && BOOST_PP_ITERATION_FINISH_4 >= 164
-#        define BOOST_PP_ITERATION_4 164
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 164 && NDNBOOST_PP_ITERATION_FINISH_4 >= 164
+#        define NDNBOOST_PP_ITERATION_4 164
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 165 && BOOST_PP_ITERATION_FINISH_4 >= 165
-#        define BOOST_PP_ITERATION_4 165
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 165 && NDNBOOST_PP_ITERATION_FINISH_4 >= 165
+#        define NDNBOOST_PP_ITERATION_4 165
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 166 && BOOST_PP_ITERATION_FINISH_4 >= 166
-#        define BOOST_PP_ITERATION_4 166
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 166 && NDNBOOST_PP_ITERATION_FINISH_4 >= 166
+#        define NDNBOOST_PP_ITERATION_4 166
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 167 && BOOST_PP_ITERATION_FINISH_4 >= 167
-#        define BOOST_PP_ITERATION_4 167
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 167 && NDNBOOST_PP_ITERATION_FINISH_4 >= 167
+#        define NDNBOOST_PP_ITERATION_4 167
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 168 && BOOST_PP_ITERATION_FINISH_4 >= 168
-#        define BOOST_PP_ITERATION_4 168
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 168 && NDNBOOST_PP_ITERATION_FINISH_4 >= 168
+#        define NDNBOOST_PP_ITERATION_4 168
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 169 && BOOST_PP_ITERATION_FINISH_4 >= 169
-#        define BOOST_PP_ITERATION_4 169
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 169 && NDNBOOST_PP_ITERATION_FINISH_4 >= 169
+#        define NDNBOOST_PP_ITERATION_4 169
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 170 && BOOST_PP_ITERATION_FINISH_4 >= 170
-#        define BOOST_PP_ITERATION_4 170
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 170 && NDNBOOST_PP_ITERATION_FINISH_4 >= 170
+#        define NDNBOOST_PP_ITERATION_4 170
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 171 && BOOST_PP_ITERATION_FINISH_4 >= 171
-#        define BOOST_PP_ITERATION_4 171
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 171 && NDNBOOST_PP_ITERATION_FINISH_4 >= 171
+#        define NDNBOOST_PP_ITERATION_4 171
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 172 && BOOST_PP_ITERATION_FINISH_4 >= 172
-#        define BOOST_PP_ITERATION_4 172
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 172 && NDNBOOST_PP_ITERATION_FINISH_4 >= 172
+#        define NDNBOOST_PP_ITERATION_4 172
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 173 && BOOST_PP_ITERATION_FINISH_4 >= 173
-#        define BOOST_PP_ITERATION_4 173
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 173 && NDNBOOST_PP_ITERATION_FINISH_4 >= 173
+#        define NDNBOOST_PP_ITERATION_4 173
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 174 && BOOST_PP_ITERATION_FINISH_4 >= 174
-#        define BOOST_PP_ITERATION_4 174
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 174 && NDNBOOST_PP_ITERATION_FINISH_4 >= 174
+#        define NDNBOOST_PP_ITERATION_4 174
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 175 && BOOST_PP_ITERATION_FINISH_4 >= 175
-#        define BOOST_PP_ITERATION_4 175
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 175 && NDNBOOST_PP_ITERATION_FINISH_4 >= 175
+#        define NDNBOOST_PP_ITERATION_4 175
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 176 && BOOST_PP_ITERATION_FINISH_4 >= 176
-#        define BOOST_PP_ITERATION_4 176
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 176 && NDNBOOST_PP_ITERATION_FINISH_4 >= 176
+#        define NDNBOOST_PP_ITERATION_4 176
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 177 && BOOST_PP_ITERATION_FINISH_4 >= 177
-#        define BOOST_PP_ITERATION_4 177
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 177 && NDNBOOST_PP_ITERATION_FINISH_4 >= 177
+#        define NDNBOOST_PP_ITERATION_4 177
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 178 && BOOST_PP_ITERATION_FINISH_4 >= 178
-#        define BOOST_PP_ITERATION_4 178
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 178 && NDNBOOST_PP_ITERATION_FINISH_4 >= 178
+#        define NDNBOOST_PP_ITERATION_4 178
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 179 && BOOST_PP_ITERATION_FINISH_4 >= 179
-#        define BOOST_PP_ITERATION_4 179
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 179 && NDNBOOST_PP_ITERATION_FINISH_4 >= 179
+#        define NDNBOOST_PP_ITERATION_4 179
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 180 && BOOST_PP_ITERATION_FINISH_4 >= 180
-#        define BOOST_PP_ITERATION_4 180
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 180 && NDNBOOST_PP_ITERATION_FINISH_4 >= 180
+#        define NDNBOOST_PP_ITERATION_4 180
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 181 && BOOST_PP_ITERATION_FINISH_4 >= 181
-#        define BOOST_PP_ITERATION_4 181
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 181 && NDNBOOST_PP_ITERATION_FINISH_4 >= 181
+#        define NDNBOOST_PP_ITERATION_4 181
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 182 && BOOST_PP_ITERATION_FINISH_4 >= 182
-#        define BOOST_PP_ITERATION_4 182
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 182 && NDNBOOST_PP_ITERATION_FINISH_4 >= 182
+#        define NDNBOOST_PP_ITERATION_4 182
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 183 && BOOST_PP_ITERATION_FINISH_4 >= 183
-#        define BOOST_PP_ITERATION_4 183
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 183 && NDNBOOST_PP_ITERATION_FINISH_4 >= 183
+#        define NDNBOOST_PP_ITERATION_4 183
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 184 && BOOST_PP_ITERATION_FINISH_4 >= 184
-#        define BOOST_PP_ITERATION_4 184
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 184 && NDNBOOST_PP_ITERATION_FINISH_4 >= 184
+#        define NDNBOOST_PP_ITERATION_4 184
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 185 && BOOST_PP_ITERATION_FINISH_4 >= 185
-#        define BOOST_PP_ITERATION_4 185
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 185 && NDNBOOST_PP_ITERATION_FINISH_4 >= 185
+#        define NDNBOOST_PP_ITERATION_4 185
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 186 && BOOST_PP_ITERATION_FINISH_4 >= 186
-#        define BOOST_PP_ITERATION_4 186
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 186 && NDNBOOST_PP_ITERATION_FINISH_4 >= 186
+#        define NDNBOOST_PP_ITERATION_4 186
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 187 && BOOST_PP_ITERATION_FINISH_4 >= 187
-#        define BOOST_PP_ITERATION_4 187
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 187 && NDNBOOST_PP_ITERATION_FINISH_4 >= 187
+#        define NDNBOOST_PP_ITERATION_4 187
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 188 && BOOST_PP_ITERATION_FINISH_4 >= 188
-#        define BOOST_PP_ITERATION_4 188
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 188 && NDNBOOST_PP_ITERATION_FINISH_4 >= 188
+#        define NDNBOOST_PP_ITERATION_4 188
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 189 && BOOST_PP_ITERATION_FINISH_4 >= 189
-#        define BOOST_PP_ITERATION_4 189
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 189 && NDNBOOST_PP_ITERATION_FINISH_4 >= 189
+#        define NDNBOOST_PP_ITERATION_4 189
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 190 && BOOST_PP_ITERATION_FINISH_4 >= 190
-#        define BOOST_PP_ITERATION_4 190
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 190 && NDNBOOST_PP_ITERATION_FINISH_4 >= 190
+#        define NDNBOOST_PP_ITERATION_4 190
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 191 && BOOST_PP_ITERATION_FINISH_4 >= 191
-#        define BOOST_PP_ITERATION_4 191
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 191 && NDNBOOST_PP_ITERATION_FINISH_4 >= 191
+#        define NDNBOOST_PP_ITERATION_4 191
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 192 && BOOST_PP_ITERATION_FINISH_4 >= 192
-#        define BOOST_PP_ITERATION_4 192
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 192 && NDNBOOST_PP_ITERATION_FINISH_4 >= 192
+#        define NDNBOOST_PP_ITERATION_4 192
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 193 && BOOST_PP_ITERATION_FINISH_4 >= 193
-#        define BOOST_PP_ITERATION_4 193
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 193 && NDNBOOST_PP_ITERATION_FINISH_4 >= 193
+#        define NDNBOOST_PP_ITERATION_4 193
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 194 && BOOST_PP_ITERATION_FINISH_4 >= 194
-#        define BOOST_PP_ITERATION_4 194
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 194 && NDNBOOST_PP_ITERATION_FINISH_4 >= 194
+#        define NDNBOOST_PP_ITERATION_4 194
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 195 && BOOST_PP_ITERATION_FINISH_4 >= 195
-#        define BOOST_PP_ITERATION_4 195
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 195 && NDNBOOST_PP_ITERATION_FINISH_4 >= 195
+#        define NDNBOOST_PP_ITERATION_4 195
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 196 && BOOST_PP_ITERATION_FINISH_4 >= 196
-#        define BOOST_PP_ITERATION_4 196
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 196 && NDNBOOST_PP_ITERATION_FINISH_4 >= 196
+#        define NDNBOOST_PP_ITERATION_4 196
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 197 && BOOST_PP_ITERATION_FINISH_4 >= 197
-#        define BOOST_PP_ITERATION_4 197
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 197 && NDNBOOST_PP_ITERATION_FINISH_4 >= 197
+#        define NDNBOOST_PP_ITERATION_4 197
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 198 && BOOST_PP_ITERATION_FINISH_4 >= 198
-#        define BOOST_PP_ITERATION_4 198
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 198 && NDNBOOST_PP_ITERATION_FINISH_4 >= 198
+#        define NDNBOOST_PP_ITERATION_4 198
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 199 && BOOST_PP_ITERATION_FINISH_4 >= 199
-#        define BOOST_PP_ITERATION_4 199
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 199 && NDNBOOST_PP_ITERATION_FINISH_4 >= 199
+#        define NDNBOOST_PP_ITERATION_4 199
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 200 && BOOST_PP_ITERATION_FINISH_4 >= 200
-#        define BOOST_PP_ITERATION_4 200
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 200 && NDNBOOST_PP_ITERATION_FINISH_4 >= 200
+#        define NDNBOOST_PP_ITERATION_4 200
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 201 && BOOST_PP_ITERATION_FINISH_4 >= 201
-#        define BOOST_PP_ITERATION_4 201
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 201 && NDNBOOST_PP_ITERATION_FINISH_4 >= 201
+#        define NDNBOOST_PP_ITERATION_4 201
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 202 && BOOST_PP_ITERATION_FINISH_4 >= 202
-#        define BOOST_PP_ITERATION_4 202
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 202 && NDNBOOST_PP_ITERATION_FINISH_4 >= 202
+#        define NDNBOOST_PP_ITERATION_4 202
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 203 && BOOST_PP_ITERATION_FINISH_4 >= 203
-#        define BOOST_PP_ITERATION_4 203
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 203 && NDNBOOST_PP_ITERATION_FINISH_4 >= 203
+#        define NDNBOOST_PP_ITERATION_4 203
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 204 && BOOST_PP_ITERATION_FINISH_4 >= 204
-#        define BOOST_PP_ITERATION_4 204
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 204 && NDNBOOST_PP_ITERATION_FINISH_4 >= 204
+#        define NDNBOOST_PP_ITERATION_4 204
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 205 && BOOST_PP_ITERATION_FINISH_4 >= 205
-#        define BOOST_PP_ITERATION_4 205
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 205 && NDNBOOST_PP_ITERATION_FINISH_4 >= 205
+#        define NDNBOOST_PP_ITERATION_4 205
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 206 && BOOST_PP_ITERATION_FINISH_4 >= 206
-#        define BOOST_PP_ITERATION_4 206
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 206 && NDNBOOST_PP_ITERATION_FINISH_4 >= 206
+#        define NDNBOOST_PP_ITERATION_4 206
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 207 && BOOST_PP_ITERATION_FINISH_4 >= 207
-#        define BOOST_PP_ITERATION_4 207
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 207 && NDNBOOST_PP_ITERATION_FINISH_4 >= 207
+#        define NDNBOOST_PP_ITERATION_4 207
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 208 && BOOST_PP_ITERATION_FINISH_4 >= 208
-#        define BOOST_PP_ITERATION_4 208
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 208 && NDNBOOST_PP_ITERATION_FINISH_4 >= 208
+#        define NDNBOOST_PP_ITERATION_4 208
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 209 && BOOST_PP_ITERATION_FINISH_4 >= 209
-#        define BOOST_PP_ITERATION_4 209
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 209 && NDNBOOST_PP_ITERATION_FINISH_4 >= 209
+#        define NDNBOOST_PP_ITERATION_4 209
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 210 && BOOST_PP_ITERATION_FINISH_4 >= 210
-#        define BOOST_PP_ITERATION_4 210
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 210 && NDNBOOST_PP_ITERATION_FINISH_4 >= 210
+#        define NDNBOOST_PP_ITERATION_4 210
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 211 && BOOST_PP_ITERATION_FINISH_4 >= 211
-#        define BOOST_PP_ITERATION_4 211
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 211 && NDNBOOST_PP_ITERATION_FINISH_4 >= 211
+#        define NDNBOOST_PP_ITERATION_4 211
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 212 && BOOST_PP_ITERATION_FINISH_4 >= 212
-#        define BOOST_PP_ITERATION_4 212
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 212 && NDNBOOST_PP_ITERATION_FINISH_4 >= 212
+#        define NDNBOOST_PP_ITERATION_4 212
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 213 && BOOST_PP_ITERATION_FINISH_4 >= 213
-#        define BOOST_PP_ITERATION_4 213
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 213 && NDNBOOST_PP_ITERATION_FINISH_4 >= 213
+#        define NDNBOOST_PP_ITERATION_4 213
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 214 && BOOST_PP_ITERATION_FINISH_4 >= 214
-#        define BOOST_PP_ITERATION_4 214
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 214 && NDNBOOST_PP_ITERATION_FINISH_4 >= 214
+#        define NDNBOOST_PP_ITERATION_4 214
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 215 && BOOST_PP_ITERATION_FINISH_4 >= 215
-#        define BOOST_PP_ITERATION_4 215
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 215 && NDNBOOST_PP_ITERATION_FINISH_4 >= 215
+#        define NDNBOOST_PP_ITERATION_4 215
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 216 && BOOST_PP_ITERATION_FINISH_4 >= 216
-#        define BOOST_PP_ITERATION_4 216
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 216 && NDNBOOST_PP_ITERATION_FINISH_4 >= 216
+#        define NDNBOOST_PP_ITERATION_4 216
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 217 && BOOST_PP_ITERATION_FINISH_4 >= 217
-#        define BOOST_PP_ITERATION_4 217
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 217 && NDNBOOST_PP_ITERATION_FINISH_4 >= 217
+#        define NDNBOOST_PP_ITERATION_4 217
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 218 && BOOST_PP_ITERATION_FINISH_4 >= 218
-#        define BOOST_PP_ITERATION_4 218
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 218 && NDNBOOST_PP_ITERATION_FINISH_4 >= 218
+#        define NDNBOOST_PP_ITERATION_4 218
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 219 && BOOST_PP_ITERATION_FINISH_4 >= 219
-#        define BOOST_PP_ITERATION_4 219
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 219 && NDNBOOST_PP_ITERATION_FINISH_4 >= 219
+#        define NDNBOOST_PP_ITERATION_4 219
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 220 && BOOST_PP_ITERATION_FINISH_4 >= 220
-#        define BOOST_PP_ITERATION_4 220
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 220 && NDNBOOST_PP_ITERATION_FINISH_4 >= 220
+#        define NDNBOOST_PP_ITERATION_4 220
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 221 && BOOST_PP_ITERATION_FINISH_4 >= 221
-#        define BOOST_PP_ITERATION_4 221
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 221 && NDNBOOST_PP_ITERATION_FINISH_4 >= 221
+#        define NDNBOOST_PP_ITERATION_4 221
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 222 && BOOST_PP_ITERATION_FINISH_4 >= 222
-#        define BOOST_PP_ITERATION_4 222
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 222 && NDNBOOST_PP_ITERATION_FINISH_4 >= 222
+#        define NDNBOOST_PP_ITERATION_4 222
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 223 && BOOST_PP_ITERATION_FINISH_4 >= 223
-#        define BOOST_PP_ITERATION_4 223
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 223 && NDNBOOST_PP_ITERATION_FINISH_4 >= 223
+#        define NDNBOOST_PP_ITERATION_4 223
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 224 && BOOST_PP_ITERATION_FINISH_4 >= 224
-#        define BOOST_PP_ITERATION_4 224
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 224 && NDNBOOST_PP_ITERATION_FINISH_4 >= 224
+#        define NDNBOOST_PP_ITERATION_4 224
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 225 && BOOST_PP_ITERATION_FINISH_4 >= 225
-#        define BOOST_PP_ITERATION_4 225
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 225 && NDNBOOST_PP_ITERATION_FINISH_4 >= 225
+#        define NDNBOOST_PP_ITERATION_4 225
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 226 && BOOST_PP_ITERATION_FINISH_4 >= 226
-#        define BOOST_PP_ITERATION_4 226
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 226 && NDNBOOST_PP_ITERATION_FINISH_4 >= 226
+#        define NDNBOOST_PP_ITERATION_4 226
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 227 && BOOST_PP_ITERATION_FINISH_4 >= 227
-#        define BOOST_PP_ITERATION_4 227
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 227 && NDNBOOST_PP_ITERATION_FINISH_4 >= 227
+#        define NDNBOOST_PP_ITERATION_4 227
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 228 && BOOST_PP_ITERATION_FINISH_4 >= 228
-#        define BOOST_PP_ITERATION_4 228
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 228 && NDNBOOST_PP_ITERATION_FINISH_4 >= 228
+#        define NDNBOOST_PP_ITERATION_4 228
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 229 && BOOST_PP_ITERATION_FINISH_4 >= 229
-#        define BOOST_PP_ITERATION_4 229
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 229 && NDNBOOST_PP_ITERATION_FINISH_4 >= 229
+#        define NDNBOOST_PP_ITERATION_4 229
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 230 && BOOST_PP_ITERATION_FINISH_4 >= 230
-#        define BOOST_PP_ITERATION_4 230
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 230 && NDNBOOST_PP_ITERATION_FINISH_4 >= 230
+#        define NDNBOOST_PP_ITERATION_4 230
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 231 && BOOST_PP_ITERATION_FINISH_4 >= 231
-#        define BOOST_PP_ITERATION_4 231
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 231 && NDNBOOST_PP_ITERATION_FINISH_4 >= 231
+#        define NDNBOOST_PP_ITERATION_4 231
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 232 && BOOST_PP_ITERATION_FINISH_4 >= 232
-#        define BOOST_PP_ITERATION_4 232
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 232 && NDNBOOST_PP_ITERATION_FINISH_4 >= 232
+#        define NDNBOOST_PP_ITERATION_4 232
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 233 && BOOST_PP_ITERATION_FINISH_4 >= 233
-#        define BOOST_PP_ITERATION_4 233
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 233 && NDNBOOST_PP_ITERATION_FINISH_4 >= 233
+#        define NDNBOOST_PP_ITERATION_4 233
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 234 && BOOST_PP_ITERATION_FINISH_4 >= 234
-#        define BOOST_PP_ITERATION_4 234
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 234 && NDNBOOST_PP_ITERATION_FINISH_4 >= 234
+#        define NDNBOOST_PP_ITERATION_4 234
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 235 && BOOST_PP_ITERATION_FINISH_4 >= 235
-#        define BOOST_PP_ITERATION_4 235
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 235 && NDNBOOST_PP_ITERATION_FINISH_4 >= 235
+#        define NDNBOOST_PP_ITERATION_4 235
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 236 && BOOST_PP_ITERATION_FINISH_4 >= 236
-#        define BOOST_PP_ITERATION_4 236
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 236 && NDNBOOST_PP_ITERATION_FINISH_4 >= 236
+#        define NDNBOOST_PP_ITERATION_4 236
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 237 && BOOST_PP_ITERATION_FINISH_4 >= 237
-#        define BOOST_PP_ITERATION_4 237
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 237 && NDNBOOST_PP_ITERATION_FINISH_4 >= 237
+#        define NDNBOOST_PP_ITERATION_4 237
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 238 && BOOST_PP_ITERATION_FINISH_4 >= 238
-#        define BOOST_PP_ITERATION_4 238
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 238 && NDNBOOST_PP_ITERATION_FINISH_4 >= 238
+#        define NDNBOOST_PP_ITERATION_4 238
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 239 && BOOST_PP_ITERATION_FINISH_4 >= 239
-#        define BOOST_PP_ITERATION_4 239
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 239 && NDNBOOST_PP_ITERATION_FINISH_4 >= 239
+#        define NDNBOOST_PP_ITERATION_4 239
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 240 && BOOST_PP_ITERATION_FINISH_4 >= 240
-#        define BOOST_PP_ITERATION_4 240
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 240 && NDNBOOST_PP_ITERATION_FINISH_4 >= 240
+#        define NDNBOOST_PP_ITERATION_4 240
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 241 && BOOST_PP_ITERATION_FINISH_4 >= 241
-#        define BOOST_PP_ITERATION_4 241
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 241 && NDNBOOST_PP_ITERATION_FINISH_4 >= 241
+#        define NDNBOOST_PP_ITERATION_4 241
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 242 && BOOST_PP_ITERATION_FINISH_4 >= 242
-#        define BOOST_PP_ITERATION_4 242
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 242 && NDNBOOST_PP_ITERATION_FINISH_4 >= 242
+#        define NDNBOOST_PP_ITERATION_4 242
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 243 && BOOST_PP_ITERATION_FINISH_4 >= 243
-#        define BOOST_PP_ITERATION_4 243
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 243 && NDNBOOST_PP_ITERATION_FINISH_4 >= 243
+#        define NDNBOOST_PP_ITERATION_4 243
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 244 && BOOST_PP_ITERATION_FINISH_4 >= 244
-#        define BOOST_PP_ITERATION_4 244
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 244 && NDNBOOST_PP_ITERATION_FINISH_4 >= 244
+#        define NDNBOOST_PP_ITERATION_4 244
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 245 && BOOST_PP_ITERATION_FINISH_4 >= 245
-#        define BOOST_PP_ITERATION_4 245
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 245 && NDNBOOST_PP_ITERATION_FINISH_4 >= 245
+#        define NDNBOOST_PP_ITERATION_4 245
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 246 && BOOST_PP_ITERATION_FINISH_4 >= 246
-#        define BOOST_PP_ITERATION_4 246
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 246 && NDNBOOST_PP_ITERATION_FINISH_4 >= 246
+#        define NDNBOOST_PP_ITERATION_4 246
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 247 && BOOST_PP_ITERATION_FINISH_4 >= 247
-#        define BOOST_PP_ITERATION_4 247
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 247 && NDNBOOST_PP_ITERATION_FINISH_4 >= 247
+#        define NDNBOOST_PP_ITERATION_4 247
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 248 && BOOST_PP_ITERATION_FINISH_4 >= 248
-#        define BOOST_PP_ITERATION_4 248
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 248 && NDNBOOST_PP_ITERATION_FINISH_4 >= 248
+#        define NDNBOOST_PP_ITERATION_4 248
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 249 && BOOST_PP_ITERATION_FINISH_4 >= 249
-#        define BOOST_PP_ITERATION_4 249
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 249 && NDNBOOST_PP_ITERATION_FINISH_4 >= 249
+#        define NDNBOOST_PP_ITERATION_4 249
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 250 && BOOST_PP_ITERATION_FINISH_4 >= 250
-#        define BOOST_PP_ITERATION_4 250
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 250 && NDNBOOST_PP_ITERATION_FINISH_4 >= 250
+#        define NDNBOOST_PP_ITERATION_4 250
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 251 && BOOST_PP_ITERATION_FINISH_4 >= 251
-#        define BOOST_PP_ITERATION_4 251
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 251 && NDNBOOST_PP_ITERATION_FINISH_4 >= 251
+#        define NDNBOOST_PP_ITERATION_4 251
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 252 && BOOST_PP_ITERATION_FINISH_4 >= 252
-#        define BOOST_PP_ITERATION_4 252
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 252 && NDNBOOST_PP_ITERATION_FINISH_4 >= 252
+#        define NDNBOOST_PP_ITERATION_4 252
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 253 && BOOST_PP_ITERATION_FINISH_4 >= 253
-#        define BOOST_PP_ITERATION_4 253
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 253 && NDNBOOST_PP_ITERATION_FINISH_4 >= 253
+#        define NDNBOOST_PP_ITERATION_4 253
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 254 && BOOST_PP_ITERATION_FINISH_4 >= 254
-#        define BOOST_PP_ITERATION_4 254
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 254 && NDNBOOST_PP_ITERATION_FINISH_4 >= 254
+#        define NDNBOOST_PP_ITERATION_4 254
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 255 && BOOST_PP_ITERATION_FINISH_4 >= 255
-#        define BOOST_PP_ITERATION_4 255
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 255 && NDNBOOST_PP_ITERATION_FINISH_4 >= 255
+#        define NDNBOOST_PP_ITERATION_4 255
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
-#    if BOOST_PP_ITERATION_START_4 <= 256 && BOOST_PP_ITERATION_FINISH_4 >= 256
-#        define BOOST_PP_ITERATION_4 256
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
+#    if NDNBOOST_PP_ITERATION_START_4 <= 256 && NDNBOOST_PP_ITERATION_FINISH_4 >= 256
+#        define NDNBOOST_PP_ITERATION_4 256
+#        include NDNBOOST_PP_FILENAME_4
+#        undef NDNBOOST_PP_ITERATION_4
 #    endif
 # endif
 #
-# undef BOOST_PP_ITERATION_DEPTH
-# define BOOST_PP_ITERATION_DEPTH() 3
+# undef NDNBOOST_PP_ITERATION_DEPTH
+# define NDNBOOST_PP_ITERATION_DEPTH() 3
 #
-# undef BOOST_PP_ITERATION_START_4
-# undef BOOST_PP_ITERATION_FINISH_4
-# undef BOOST_PP_FILENAME_4
+# undef NDNBOOST_PP_ITERATION_START_4
+# undef NDNBOOST_PP_ITERATION_FINISH_4
+# undef NDNBOOST_PP_FILENAME_4
 #
-# undef BOOST_PP_ITERATION_FLAGS_4
-# undef BOOST_PP_ITERATION_PARAMS_4
+# undef NDNBOOST_PP_ITERATION_FLAGS_4
+# undef NDNBOOST_PP_ITERATION_PARAMS_4
diff --git a/include/ndnboost/preprocessor/iteration/detail/iter/forward5.hpp b/include/ndnboost/preprocessor/iteration/detail/iter/forward5.hpp
index acefeea..e9febb1 100644
--- a/include/ndnboost/preprocessor/iteration/detail/iter/forward5.hpp
+++ b/include/ndnboost/preprocessor/iteration/detail/iter/forward5.hpp
@@ -9,1330 +9,1330 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# if defined(BOOST_PP_ITERATION_LIMITS)
-#    if !defined(BOOST_PP_FILENAME_5)
-#        error BOOST_PP_ERROR:  depth #5 filename is not defined
+# if defined(NDNBOOST_PP_ITERATION_LIMITS)
+#    if !defined(NDNBOOST_PP_FILENAME_5)
+#        error NDNBOOST_PP_ERROR:  depth #5 filename is not defined
 #    endif
-#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_ITERATION_LIMITS)
+#    define NDNBOOST_PP_VALUE NDNBOOST_PP_TUPLE_ELEM(2, 0, NDNBOOST_PP_ITERATION_LIMITS)
 #    include <ndnboost/preprocessor/iteration/detail/bounds/lower5.hpp>
-#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS)
+#    define NDNBOOST_PP_VALUE NDNBOOST_PP_TUPLE_ELEM(2, 1, NDNBOOST_PP_ITERATION_LIMITS)
 #    include <ndnboost/preprocessor/iteration/detail/bounds/upper5.hpp>
-#    define BOOST_PP_ITERATION_FLAGS_5() 0
-#    undef BOOST_PP_ITERATION_LIMITS
-# elif defined(BOOST_PP_ITERATION_PARAMS_5)
-#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_5)
+#    define NDNBOOST_PP_ITERATION_FLAGS_5() 0
+#    undef NDNBOOST_PP_ITERATION_LIMITS
+# elif defined(NDNBOOST_PP_ITERATION_PARAMS_5)
+#    define NDNBOOST_PP_VALUE NDNBOOST_PP_ARRAY_ELEM(0, NDNBOOST_PP_ITERATION_PARAMS_5)
 #    include <ndnboost/preprocessor/iteration/detail/bounds/lower5.hpp>
-#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ITERATION_PARAMS_5)
+#    define NDNBOOST_PP_VALUE NDNBOOST_PP_ARRAY_ELEM(1, NDNBOOST_PP_ITERATION_PARAMS_5)
 #    include <ndnboost/preprocessor/iteration/detail/bounds/upper5.hpp>
-#    define BOOST_PP_FILENAME_5 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_5)
-#    if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_5) >= 4
-#        define BOOST_PP_ITERATION_FLAGS_5() BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_5)
+#    define NDNBOOST_PP_FILENAME_5 NDNBOOST_PP_ARRAY_ELEM(2, NDNBOOST_PP_ITERATION_PARAMS_5)
+#    if NDNBOOST_PP_ARRAY_SIZE(NDNBOOST_PP_ITERATION_PARAMS_5) >= 4
+#        define NDNBOOST_PP_ITERATION_FLAGS_5() NDNBOOST_PP_ARRAY_ELEM(3, NDNBOOST_PP_ITERATION_PARAMS_5)
 #    else
-#        define BOOST_PP_ITERATION_FLAGS_5() 0
+#        define NDNBOOST_PP_ITERATION_FLAGS_5() 0
 #    endif
 # else
-#    error BOOST_PP_ERROR:  depth #5 iteration boundaries or filename not defined
+#    error NDNBOOST_PP_ERROR:  depth #5 iteration boundaries or filename not defined
 # endif
 #
-# undef BOOST_PP_ITERATION_DEPTH
-# define BOOST_PP_ITERATION_DEPTH() 5
+# undef NDNBOOST_PP_ITERATION_DEPTH
+# define NDNBOOST_PP_ITERATION_DEPTH() 5
 #
-# if (BOOST_PP_ITERATION_START_5) > (BOOST_PP_ITERATION_FINISH_5)
+# if (NDNBOOST_PP_ITERATION_START_5) > (NDNBOOST_PP_ITERATION_FINISH_5)
 #    include <ndnboost/preprocessor/iteration/detail/iter/reverse5.hpp>
 # else
-#    if BOOST_PP_ITERATION_START_5 <= 0 && BOOST_PP_ITERATION_FINISH_5 >= 0
-#        define BOOST_PP_ITERATION_5 0
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 0 && NDNBOOST_PP_ITERATION_FINISH_5 >= 0
+#        define NDNBOOST_PP_ITERATION_5 0
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 1 && BOOST_PP_ITERATION_FINISH_5 >= 1
-#        define BOOST_PP_ITERATION_5 1
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 1 && NDNBOOST_PP_ITERATION_FINISH_5 >= 1
+#        define NDNBOOST_PP_ITERATION_5 1
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 2 && BOOST_PP_ITERATION_FINISH_5 >= 2
-#        define BOOST_PP_ITERATION_5 2
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 2 && NDNBOOST_PP_ITERATION_FINISH_5 >= 2
+#        define NDNBOOST_PP_ITERATION_5 2
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 3 && BOOST_PP_ITERATION_FINISH_5 >= 3
-#        define BOOST_PP_ITERATION_5 3
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 3 && NDNBOOST_PP_ITERATION_FINISH_5 >= 3
+#        define NDNBOOST_PP_ITERATION_5 3
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 4 && BOOST_PP_ITERATION_FINISH_5 >= 4
-#        define BOOST_PP_ITERATION_5 4
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 4 && NDNBOOST_PP_ITERATION_FINISH_5 >= 4
+#        define NDNBOOST_PP_ITERATION_5 4
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 5 && BOOST_PP_ITERATION_FINISH_5 >= 5
-#        define BOOST_PP_ITERATION_5 5
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 5 && NDNBOOST_PP_ITERATION_FINISH_5 >= 5
+#        define NDNBOOST_PP_ITERATION_5 5
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 6 && BOOST_PP_ITERATION_FINISH_5 >= 6
-#        define BOOST_PP_ITERATION_5 6
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 6 && NDNBOOST_PP_ITERATION_FINISH_5 >= 6
+#        define NDNBOOST_PP_ITERATION_5 6
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 7 && BOOST_PP_ITERATION_FINISH_5 >= 7
-#        define BOOST_PP_ITERATION_5 7
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 7 && NDNBOOST_PP_ITERATION_FINISH_5 >= 7
+#        define NDNBOOST_PP_ITERATION_5 7
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 8 && BOOST_PP_ITERATION_FINISH_5 >= 8
-#        define BOOST_PP_ITERATION_5 8
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 8 && NDNBOOST_PP_ITERATION_FINISH_5 >= 8
+#        define NDNBOOST_PP_ITERATION_5 8
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 9 && BOOST_PP_ITERATION_FINISH_5 >= 9
-#        define BOOST_PP_ITERATION_5 9
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 9 && NDNBOOST_PP_ITERATION_FINISH_5 >= 9
+#        define NDNBOOST_PP_ITERATION_5 9
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 10 && BOOST_PP_ITERATION_FINISH_5 >= 10
-#        define BOOST_PP_ITERATION_5 10
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 10 && NDNBOOST_PP_ITERATION_FINISH_5 >= 10
+#        define NDNBOOST_PP_ITERATION_5 10
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 11 && BOOST_PP_ITERATION_FINISH_5 >= 11
-#        define BOOST_PP_ITERATION_5 11
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 11 && NDNBOOST_PP_ITERATION_FINISH_5 >= 11
+#        define NDNBOOST_PP_ITERATION_5 11
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 12 && BOOST_PP_ITERATION_FINISH_5 >= 12
-#        define BOOST_PP_ITERATION_5 12
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 12 && NDNBOOST_PP_ITERATION_FINISH_5 >= 12
+#        define NDNBOOST_PP_ITERATION_5 12
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 13 && BOOST_PP_ITERATION_FINISH_5 >= 13
-#        define BOOST_PP_ITERATION_5 13
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 13 && NDNBOOST_PP_ITERATION_FINISH_5 >= 13
+#        define NDNBOOST_PP_ITERATION_5 13
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 14 && BOOST_PP_ITERATION_FINISH_5 >= 14
-#        define BOOST_PP_ITERATION_5 14
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 14 && NDNBOOST_PP_ITERATION_FINISH_5 >= 14
+#        define NDNBOOST_PP_ITERATION_5 14
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 15 && BOOST_PP_ITERATION_FINISH_5 >= 15
-#        define BOOST_PP_ITERATION_5 15
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 15 && NDNBOOST_PP_ITERATION_FINISH_5 >= 15
+#        define NDNBOOST_PP_ITERATION_5 15
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 16 && BOOST_PP_ITERATION_FINISH_5 >= 16
-#        define BOOST_PP_ITERATION_5 16
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 16 && NDNBOOST_PP_ITERATION_FINISH_5 >= 16
+#        define NDNBOOST_PP_ITERATION_5 16
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 17 && BOOST_PP_ITERATION_FINISH_5 >= 17
-#        define BOOST_PP_ITERATION_5 17
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 17 && NDNBOOST_PP_ITERATION_FINISH_5 >= 17
+#        define NDNBOOST_PP_ITERATION_5 17
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 18 && BOOST_PP_ITERATION_FINISH_5 >= 18
-#        define BOOST_PP_ITERATION_5 18
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 18 && NDNBOOST_PP_ITERATION_FINISH_5 >= 18
+#        define NDNBOOST_PP_ITERATION_5 18
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 19 && BOOST_PP_ITERATION_FINISH_5 >= 19
-#        define BOOST_PP_ITERATION_5 19
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 19 && NDNBOOST_PP_ITERATION_FINISH_5 >= 19
+#        define NDNBOOST_PP_ITERATION_5 19
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 20 && BOOST_PP_ITERATION_FINISH_5 >= 20
-#        define BOOST_PP_ITERATION_5 20
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 20 && NDNBOOST_PP_ITERATION_FINISH_5 >= 20
+#        define NDNBOOST_PP_ITERATION_5 20
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 21 && BOOST_PP_ITERATION_FINISH_5 >= 21
-#        define BOOST_PP_ITERATION_5 21
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 21 && NDNBOOST_PP_ITERATION_FINISH_5 >= 21
+#        define NDNBOOST_PP_ITERATION_5 21
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 22 && BOOST_PP_ITERATION_FINISH_5 >= 22
-#        define BOOST_PP_ITERATION_5 22
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 22 && NDNBOOST_PP_ITERATION_FINISH_5 >= 22
+#        define NDNBOOST_PP_ITERATION_5 22
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 23 && BOOST_PP_ITERATION_FINISH_5 >= 23
-#        define BOOST_PP_ITERATION_5 23
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 23 && NDNBOOST_PP_ITERATION_FINISH_5 >= 23
+#        define NDNBOOST_PP_ITERATION_5 23
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 24 && BOOST_PP_ITERATION_FINISH_5 >= 24
-#        define BOOST_PP_ITERATION_5 24
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 24 && NDNBOOST_PP_ITERATION_FINISH_5 >= 24
+#        define NDNBOOST_PP_ITERATION_5 24
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 25 && BOOST_PP_ITERATION_FINISH_5 >= 25
-#        define BOOST_PP_ITERATION_5 25
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 25 && NDNBOOST_PP_ITERATION_FINISH_5 >= 25
+#        define NDNBOOST_PP_ITERATION_5 25
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 26 && BOOST_PP_ITERATION_FINISH_5 >= 26
-#        define BOOST_PP_ITERATION_5 26
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 26 && NDNBOOST_PP_ITERATION_FINISH_5 >= 26
+#        define NDNBOOST_PP_ITERATION_5 26
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 27 && BOOST_PP_ITERATION_FINISH_5 >= 27
-#        define BOOST_PP_ITERATION_5 27
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 27 && NDNBOOST_PP_ITERATION_FINISH_5 >= 27
+#        define NDNBOOST_PP_ITERATION_5 27
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 28 && BOOST_PP_ITERATION_FINISH_5 >= 28
-#        define BOOST_PP_ITERATION_5 28
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 28 && NDNBOOST_PP_ITERATION_FINISH_5 >= 28
+#        define NDNBOOST_PP_ITERATION_5 28
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 29 && BOOST_PP_ITERATION_FINISH_5 >= 29
-#        define BOOST_PP_ITERATION_5 29
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 29 && NDNBOOST_PP_ITERATION_FINISH_5 >= 29
+#        define NDNBOOST_PP_ITERATION_5 29
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 30 && BOOST_PP_ITERATION_FINISH_5 >= 30
-#        define BOOST_PP_ITERATION_5 30
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 30 && NDNBOOST_PP_ITERATION_FINISH_5 >= 30
+#        define NDNBOOST_PP_ITERATION_5 30
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 31 && BOOST_PP_ITERATION_FINISH_5 >= 31
-#        define BOOST_PP_ITERATION_5 31
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 31 && NDNBOOST_PP_ITERATION_FINISH_5 >= 31
+#        define NDNBOOST_PP_ITERATION_5 31
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 32 && BOOST_PP_ITERATION_FINISH_5 >= 32
-#        define BOOST_PP_ITERATION_5 32
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 32 && NDNBOOST_PP_ITERATION_FINISH_5 >= 32
+#        define NDNBOOST_PP_ITERATION_5 32
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 33 && BOOST_PP_ITERATION_FINISH_5 >= 33
-#        define BOOST_PP_ITERATION_5 33
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 33 && NDNBOOST_PP_ITERATION_FINISH_5 >= 33
+#        define NDNBOOST_PP_ITERATION_5 33
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 34 && BOOST_PP_ITERATION_FINISH_5 >= 34
-#        define BOOST_PP_ITERATION_5 34
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 34 && NDNBOOST_PP_ITERATION_FINISH_5 >= 34
+#        define NDNBOOST_PP_ITERATION_5 34
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 35 && BOOST_PP_ITERATION_FINISH_5 >= 35
-#        define BOOST_PP_ITERATION_5 35
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 35 && NDNBOOST_PP_ITERATION_FINISH_5 >= 35
+#        define NDNBOOST_PP_ITERATION_5 35
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 36 && BOOST_PP_ITERATION_FINISH_5 >= 36
-#        define BOOST_PP_ITERATION_5 36
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 36 && NDNBOOST_PP_ITERATION_FINISH_5 >= 36
+#        define NDNBOOST_PP_ITERATION_5 36
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 37 && BOOST_PP_ITERATION_FINISH_5 >= 37
-#        define BOOST_PP_ITERATION_5 37
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 37 && NDNBOOST_PP_ITERATION_FINISH_5 >= 37
+#        define NDNBOOST_PP_ITERATION_5 37
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 38 && BOOST_PP_ITERATION_FINISH_5 >= 38
-#        define BOOST_PP_ITERATION_5 38
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 38 && NDNBOOST_PP_ITERATION_FINISH_5 >= 38
+#        define NDNBOOST_PP_ITERATION_5 38
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 39 && BOOST_PP_ITERATION_FINISH_5 >= 39
-#        define BOOST_PP_ITERATION_5 39
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 39 && NDNBOOST_PP_ITERATION_FINISH_5 >= 39
+#        define NDNBOOST_PP_ITERATION_5 39
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 40 && BOOST_PP_ITERATION_FINISH_5 >= 40
-#        define BOOST_PP_ITERATION_5 40
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 40 && NDNBOOST_PP_ITERATION_FINISH_5 >= 40
+#        define NDNBOOST_PP_ITERATION_5 40
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 41 && BOOST_PP_ITERATION_FINISH_5 >= 41
-#        define BOOST_PP_ITERATION_5 41
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 41 && NDNBOOST_PP_ITERATION_FINISH_5 >= 41
+#        define NDNBOOST_PP_ITERATION_5 41
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 42 && BOOST_PP_ITERATION_FINISH_5 >= 42
-#        define BOOST_PP_ITERATION_5 42
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 42 && NDNBOOST_PP_ITERATION_FINISH_5 >= 42
+#        define NDNBOOST_PP_ITERATION_5 42
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 43 && BOOST_PP_ITERATION_FINISH_5 >= 43
-#        define BOOST_PP_ITERATION_5 43
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 43 && NDNBOOST_PP_ITERATION_FINISH_5 >= 43
+#        define NDNBOOST_PP_ITERATION_5 43
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 44 && BOOST_PP_ITERATION_FINISH_5 >= 44
-#        define BOOST_PP_ITERATION_5 44
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 44 && NDNBOOST_PP_ITERATION_FINISH_5 >= 44
+#        define NDNBOOST_PP_ITERATION_5 44
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 45 && BOOST_PP_ITERATION_FINISH_5 >= 45
-#        define BOOST_PP_ITERATION_5 45
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 45 && NDNBOOST_PP_ITERATION_FINISH_5 >= 45
+#        define NDNBOOST_PP_ITERATION_5 45
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 46 && BOOST_PP_ITERATION_FINISH_5 >= 46
-#        define BOOST_PP_ITERATION_5 46
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 46 && NDNBOOST_PP_ITERATION_FINISH_5 >= 46
+#        define NDNBOOST_PP_ITERATION_5 46
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 47 && BOOST_PP_ITERATION_FINISH_5 >= 47
-#        define BOOST_PP_ITERATION_5 47
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 47 && NDNBOOST_PP_ITERATION_FINISH_5 >= 47
+#        define NDNBOOST_PP_ITERATION_5 47
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 48 && BOOST_PP_ITERATION_FINISH_5 >= 48
-#        define BOOST_PP_ITERATION_5 48
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 48 && NDNBOOST_PP_ITERATION_FINISH_5 >= 48
+#        define NDNBOOST_PP_ITERATION_5 48
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 49 && BOOST_PP_ITERATION_FINISH_5 >= 49
-#        define BOOST_PP_ITERATION_5 49
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 49 && NDNBOOST_PP_ITERATION_FINISH_5 >= 49
+#        define NDNBOOST_PP_ITERATION_5 49
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 50 && BOOST_PP_ITERATION_FINISH_5 >= 50
-#        define BOOST_PP_ITERATION_5 50
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 50 && NDNBOOST_PP_ITERATION_FINISH_5 >= 50
+#        define NDNBOOST_PP_ITERATION_5 50
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 51 && BOOST_PP_ITERATION_FINISH_5 >= 51
-#        define BOOST_PP_ITERATION_5 51
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 51 && NDNBOOST_PP_ITERATION_FINISH_5 >= 51
+#        define NDNBOOST_PP_ITERATION_5 51
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 52 && BOOST_PP_ITERATION_FINISH_5 >= 52
-#        define BOOST_PP_ITERATION_5 52
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 52 && NDNBOOST_PP_ITERATION_FINISH_5 >= 52
+#        define NDNBOOST_PP_ITERATION_5 52
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 53 && BOOST_PP_ITERATION_FINISH_5 >= 53
-#        define BOOST_PP_ITERATION_5 53
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 53 && NDNBOOST_PP_ITERATION_FINISH_5 >= 53
+#        define NDNBOOST_PP_ITERATION_5 53
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 54 && BOOST_PP_ITERATION_FINISH_5 >= 54
-#        define BOOST_PP_ITERATION_5 54
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 54 && NDNBOOST_PP_ITERATION_FINISH_5 >= 54
+#        define NDNBOOST_PP_ITERATION_5 54
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 55 && BOOST_PP_ITERATION_FINISH_5 >= 55
-#        define BOOST_PP_ITERATION_5 55
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 55 && NDNBOOST_PP_ITERATION_FINISH_5 >= 55
+#        define NDNBOOST_PP_ITERATION_5 55
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 56 && BOOST_PP_ITERATION_FINISH_5 >= 56
-#        define BOOST_PP_ITERATION_5 56
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 56 && NDNBOOST_PP_ITERATION_FINISH_5 >= 56
+#        define NDNBOOST_PP_ITERATION_5 56
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 57 && BOOST_PP_ITERATION_FINISH_5 >= 57
-#        define BOOST_PP_ITERATION_5 57
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 57 && NDNBOOST_PP_ITERATION_FINISH_5 >= 57
+#        define NDNBOOST_PP_ITERATION_5 57
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 58 && BOOST_PP_ITERATION_FINISH_5 >= 58
-#        define BOOST_PP_ITERATION_5 58
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 58 && NDNBOOST_PP_ITERATION_FINISH_5 >= 58
+#        define NDNBOOST_PP_ITERATION_5 58
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 59 && BOOST_PP_ITERATION_FINISH_5 >= 59
-#        define BOOST_PP_ITERATION_5 59
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 59 && NDNBOOST_PP_ITERATION_FINISH_5 >= 59
+#        define NDNBOOST_PP_ITERATION_5 59
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 60 && BOOST_PP_ITERATION_FINISH_5 >= 60
-#        define BOOST_PP_ITERATION_5 60
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 60 && NDNBOOST_PP_ITERATION_FINISH_5 >= 60
+#        define NDNBOOST_PP_ITERATION_5 60
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 61 && BOOST_PP_ITERATION_FINISH_5 >= 61
-#        define BOOST_PP_ITERATION_5 61
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 61 && NDNBOOST_PP_ITERATION_FINISH_5 >= 61
+#        define NDNBOOST_PP_ITERATION_5 61
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 62 && BOOST_PP_ITERATION_FINISH_5 >= 62
-#        define BOOST_PP_ITERATION_5 62
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 62 && NDNBOOST_PP_ITERATION_FINISH_5 >= 62
+#        define NDNBOOST_PP_ITERATION_5 62
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 63 && BOOST_PP_ITERATION_FINISH_5 >= 63
-#        define BOOST_PP_ITERATION_5 63
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 63 && NDNBOOST_PP_ITERATION_FINISH_5 >= 63
+#        define NDNBOOST_PP_ITERATION_5 63
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 64 && BOOST_PP_ITERATION_FINISH_5 >= 64
-#        define BOOST_PP_ITERATION_5 64
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 64 && NDNBOOST_PP_ITERATION_FINISH_5 >= 64
+#        define NDNBOOST_PP_ITERATION_5 64
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 65 && BOOST_PP_ITERATION_FINISH_5 >= 65
-#        define BOOST_PP_ITERATION_5 65
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 65 && NDNBOOST_PP_ITERATION_FINISH_5 >= 65
+#        define NDNBOOST_PP_ITERATION_5 65
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 66 && BOOST_PP_ITERATION_FINISH_5 >= 66
-#        define BOOST_PP_ITERATION_5 66
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 66 && NDNBOOST_PP_ITERATION_FINISH_5 >= 66
+#        define NDNBOOST_PP_ITERATION_5 66
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 67 && BOOST_PP_ITERATION_FINISH_5 >= 67
-#        define BOOST_PP_ITERATION_5 67
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 67 && NDNBOOST_PP_ITERATION_FINISH_5 >= 67
+#        define NDNBOOST_PP_ITERATION_5 67
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 68 && BOOST_PP_ITERATION_FINISH_5 >= 68
-#        define BOOST_PP_ITERATION_5 68
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 68 && NDNBOOST_PP_ITERATION_FINISH_5 >= 68
+#        define NDNBOOST_PP_ITERATION_5 68
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 69 && BOOST_PP_ITERATION_FINISH_5 >= 69
-#        define BOOST_PP_ITERATION_5 69
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 69 && NDNBOOST_PP_ITERATION_FINISH_5 >= 69
+#        define NDNBOOST_PP_ITERATION_5 69
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 70 && BOOST_PP_ITERATION_FINISH_5 >= 70
-#        define BOOST_PP_ITERATION_5 70
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 70 && NDNBOOST_PP_ITERATION_FINISH_5 >= 70
+#        define NDNBOOST_PP_ITERATION_5 70
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 71 && BOOST_PP_ITERATION_FINISH_5 >= 71
-#        define BOOST_PP_ITERATION_5 71
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 71 && NDNBOOST_PP_ITERATION_FINISH_5 >= 71
+#        define NDNBOOST_PP_ITERATION_5 71
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 72 && BOOST_PP_ITERATION_FINISH_5 >= 72
-#        define BOOST_PP_ITERATION_5 72
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 72 && NDNBOOST_PP_ITERATION_FINISH_5 >= 72
+#        define NDNBOOST_PP_ITERATION_5 72
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 73 && BOOST_PP_ITERATION_FINISH_5 >= 73
-#        define BOOST_PP_ITERATION_5 73
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 73 && NDNBOOST_PP_ITERATION_FINISH_5 >= 73
+#        define NDNBOOST_PP_ITERATION_5 73
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 74 && BOOST_PP_ITERATION_FINISH_5 >= 74
-#        define BOOST_PP_ITERATION_5 74
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 74 && NDNBOOST_PP_ITERATION_FINISH_5 >= 74
+#        define NDNBOOST_PP_ITERATION_5 74
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 75 && BOOST_PP_ITERATION_FINISH_5 >= 75
-#        define BOOST_PP_ITERATION_5 75
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 75 && NDNBOOST_PP_ITERATION_FINISH_5 >= 75
+#        define NDNBOOST_PP_ITERATION_5 75
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 76 && BOOST_PP_ITERATION_FINISH_5 >= 76
-#        define BOOST_PP_ITERATION_5 76
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 76 && NDNBOOST_PP_ITERATION_FINISH_5 >= 76
+#        define NDNBOOST_PP_ITERATION_5 76
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 77 && BOOST_PP_ITERATION_FINISH_5 >= 77
-#        define BOOST_PP_ITERATION_5 77
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 77 && NDNBOOST_PP_ITERATION_FINISH_5 >= 77
+#        define NDNBOOST_PP_ITERATION_5 77
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 78 && BOOST_PP_ITERATION_FINISH_5 >= 78
-#        define BOOST_PP_ITERATION_5 78
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 78 && NDNBOOST_PP_ITERATION_FINISH_5 >= 78
+#        define NDNBOOST_PP_ITERATION_5 78
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 79 && BOOST_PP_ITERATION_FINISH_5 >= 79
-#        define BOOST_PP_ITERATION_5 79
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 79 && NDNBOOST_PP_ITERATION_FINISH_5 >= 79
+#        define NDNBOOST_PP_ITERATION_5 79
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 80 && BOOST_PP_ITERATION_FINISH_5 >= 80
-#        define BOOST_PP_ITERATION_5 80
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 80 && NDNBOOST_PP_ITERATION_FINISH_5 >= 80
+#        define NDNBOOST_PP_ITERATION_5 80
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 81 && BOOST_PP_ITERATION_FINISH_5 >= 81
-#        define BOOST_PP_ITERATION_5 81
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 81 && NDNBOOST_PP_ITERATION_FINISH_5 >= 81
+#        define NDNBOOST_PP_ITERATION_5 81
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 82 && BOOST_PP_ITERATION_FINISH_5 >= 82
-#        define BOOST_PP_ITERATION_5 82
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 82 && NDNBOOST_PP_ITERATION_FINISH_5 >= 82
+#        define NDNBOOST_PP_ITERATION_5 82
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 83 && BOOST_PP_ITERATION_FINISH_5 >= 83
-#        define BOOST_PP_ITERATION_5 83
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 83 && NDNBOOST_PP_ITERATION_FINISH_5 >= 83
+#        define NDNBOOST_PP_ITERATION_5 83
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 84 && BOOST_PP_ITERATION_FINISH_5 >= 84
-#        define BOOST_PP_ITERATION_5 84
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 84 && NDNBOOST_PP_ITERATION_FINISH_5 >= 84
+#        define NDNBOOST_PP_ITERATION_5 84
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 85 && BOOST_PP_ITERATION_FINISH_5 >= 85
-#        define BOOST_PP_ITERATION_5 85
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 85 && NDNBOOST_PP_ITERATION_FINISH_5 >= 85
+#        define NDNBOOST_PP_ITERATION_5 85
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 86 && BOOST_PP_ITERATION_FINISH_5 >= 86
-#        define BOOST_PP_ITERATION_5 86
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 86 && NDNBOOST_PP_ITERATION_FINISH_5 >= 86
+#        define NDNBOOST_PP_ITERATION_5 86
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 87 && BOOST_PP_ITERATION_FINISH_5 >= 87
-#        define BOOST_PP_ITERATION_5 87
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 87 && NDNBOOST_PP_ITERATION_FINISH_5 >= 87
+#        define NDNBOOST_PP_ITERATION_5 87
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 88 && BOOST_PP_ITERATION_FINISH_5 >= 88
-#        define BOOST_PP_ITERATION_5 88
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 88 && NDNBOOST_PP_ITERATION_FINISH_5 >= 88
+#        define NDNBOOST_PP_ITERATION_5 88
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 89 && BOOST_PP_ITERATION_FINISH_5 >= 89
-#        define BOOST_PP_ITERATION_5 89
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 89 && NDNBOOST_PP_ITERATION_FINISH_5 >= 89
+#        define NDNBOOST_PP_ITERATION_5 89
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 90 && BOOST_PP_ITERATION_FINISH_5 >= 90
-#        define BOOST_PP_ITERATION_5 90
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 90 && NDNBOOST_PP_ITERATION_FINISH_5 >= 90
+#        define NDNBOOST_PP_ITERATION_5 90
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 91 && BOOST_PP_ITERATION_FINISH_5 >= 91
-#        define BOOST_PP_ITERATION_5 91
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 91 && NDNBOOST_PP_ITERATION_FINISH_5 >= 91
+#        define NDNBOOST_PP_ITERATION_5 91
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 92 && BOOST_PP_ITERATION_FINISH_5 >= 92
-#        define BOOST_PP_ITERATION_5 92
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 92 && NDNBOOST_PP_ITERATION_FINISH_5 >= 92
+#        define NDNBOOST_PP_ITERATION_5 92
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 93 && BOOST_PP_ITERATION_FINISH_5 >= 93
-#        define BOOST_PP_ITERATION_5 93
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 93 && NDNBOOST_PP_ITERATION_FINISH_5 >= 93
+#        define NDNBOOST_PP_ITERATION_5 93
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 94 && BOOST_PP_ITERATION_FINISH_5 >= 94
-#        define BOOST_PP_ITERATION_5 94
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 94 && NDNBOOST_PP_ITERATION_FINISH_5 >= 94
+#        define NDNBOOST_PP_ITERATION_5 94
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 95 && BOOST_PP_ITERATION_FINISH_5 >= 95
-#        define BOOST_PP_ITERATION_5 95
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 95 && NDNBOOST_PP_ITERATION_FINISH_5 >= 95
+#        define NDNBOOST_PP_ITERATION_5 95
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 96 && BOOST_PP_ITERATION_FINISH_5 >= 96
-#        define BOOST_PP_ITERATION_5 96
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 96 && NDNBOOST_PP_ITERATION_FINISH_5 >= 96
+#        define NDNBOOST_PP_ITERATION_5 96
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 97 && BOOST_PP_ITERATION_FINISH_5 >= 97
-#        define BOOST_PP_ITERATION_5 97
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 97 && NDNBOOST_PP_ITERATION_FINISH_5 >= 97
+#        define NDNBOOST_PP_ITERATION_5 97
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 98 && BOOST_PP_ITERATION_FINISH_5 >= 98
-#        define BOOST_PP_ITERATION_5 98
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 98 && NDNBOOST_PP_ITERATION_FINISH_5 >= 98
+#        define NDNBOOST_PP_ITERATION_5 98
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 99 && BOOST_PP_ITERATION_FINISH_5 >= 99
-#        define BOOST_PP_ITERATION_5 99
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 99 && NDNBOOST_PP_ITERATION_FINISH_5 >= 99
+#        define NDNBOOST_PP_ITERATION_5 99
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 100 && BOOST_PP_ITERATION_FINISH_5 >= 100
-#        define BOOST_PP_ITERATION_5 100
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 100 && NDNBOOST_PP_ITERATION_FINISH_5 >= 100
+#        define NDNBOOST_PP_ITERATION_5 100
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 101 && BOOST_PP_ITERATION_FINISH_5 >= 101
-#        define BOOST_PP_ITERATION_5 101
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 101 && NDNBOOST_PP_ITERATION_FINISH_5 >= 101
+#        define NDNBOOST_PP_ITERATION_5 101
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 102 && BOOST_PP_ITERATION_FINISH_5 >= 102
-#        define BOOST_PP_ITERATION_5 102
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 102 && NDNBOOST_PP_ITERATION_FINISH_5 >= 102
+#        define NDNBOOST_PP_ITERATION_5 102
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 103 && BOOST_PP_ITERATION_FINISH_5 >= 103
-#        define BOOST_PP_ITERATION_5 103
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 103 && NDNBOOST_PP_ITERATION_FINISH_5 >= 103
+#        define NDNBOOST_PP_ITERATION_5 103
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 104 && BOOST_PP_ITERATION_FINISH_5 >= 104
-#        define BOOST_PP_ITERATION_5 104
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 104 && NDNBOOST_PP_ITERATION_FINISH_5 >= 104
+#        define NDNBOOST_PP_ITERATION_5 104
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 105 && BOOST_PP_ITERATION_FINISH_5 >= 105
-#        define BOOST_PP_ITERATION_5 105
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 105 && NDNBOOST_PP_ITERATION_FINISH_5 >= 105
+#        define NDNBOOST_PP_ITERATION_5 105
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 106 && BOOST_PP_ITERATION_FINISH_5 >= 106
-#        define BOOST_PP_ITERATION_5 106
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 106 && NDNBOOST_PP_ITERATION_FINISH_5 >= 106
+#        define NDNBOOST_PP_ITERATION_5 106
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 107 && BOOST_PP_ITERATION_FINISH_5 >= 107
-#        define BOOST_PP_ITERATION_5 107
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 107 && NDNBOOST_PP_ITERATION_FINISH_5 >= 107
+#        define NDNBOOST_PP_ITERATION_5 107
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 108 && BOOST_PP_ITERATION_FINISH_5 >= 108
-#        define BOOST_PP_ITERATION_5 108
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 108 && NDNBOOST_PP_ITERATION_FINISH_5 >= 108
+#        define NDNBOOST_PP_ITERATION_5 108
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 109 && BOOST_PP_ITERATION_FINISH_5 >= 109
-#        define BOOST_PP_ITERATION_5 109
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 109 && NDNBOOST_PP_ITERATION_FINISH_5 >= 109
+#        define NDNBOOST_PP_ITERATION_5 109
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 110 && BOOST_PP_ITERATION_FINISH_5 >= 110
-#        define BOOST_PP_ITERATION_5 110
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 110 && NDNBOOST_PP_ITERATION_FINISH_5 >= 110
+#        define NDNBOOST_PP_ITERATION_5 110
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 111 && BOOST_PP_ITERATION_FINISH_5 >= 111
-#        define BOOST_PP_ITERATION_5 111
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 111 && NDNBOOST_PP_ITERATION_FINISH_5 >= 111
+#        define NDNBOOST_PP_ITERATION_5 111
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 112 && BOOST_PP_ITERATION_FINISH_5 >= 112
-#        define BOOST_PP_ITERATION_5 112
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 112 && NDNBOOST_PP_ITERATION_FINISH_5 >= 112
+#        define NDNBOOST_PP_ITERATION_5 112
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 113 && BOOST_PP_ITERATION_FINISH_5 >= 113
-#        define BOOST_PP_ITERATION_5 113
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 113 && NDNBOOST_PP_ITERATION_FINISH_5 >= 113
+#        define NDNBOOST_PP_ITERATION_5 113
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 114 && BOOST_PP_ITERATION_FINISH_5 >= 114
-#        define BOOST_PP_ITERATION_5 114
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 114 && NDNBOOST_PP_ITERATION_FINISH_5 >= 114
+#        define NDNBOOST_PP_ITERATION_5 114
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 115 && BOOST_PP_ITERATION_FINISH_5 >= 115
-#        define BOOST_PP_ITERATION_5 115
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 115 && NDNBOOST_PP_ITERATION_FINISH_5 >= 115
+#        define NDNBOOST_PP_ITERATION_5 115
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 116 && BOOST_PP_ITERATION_FINISH_5 >= 116
-#        define BOOST_PP_ITERATION_5 116
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 116 && NDNBOOST_PP_ITERATION_FINISH_5 >= 116
+#        define NDNBOOST_PP_ITERATION_5 116
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 117 && BOOST_PP_ITERATION_FINISH_5 >= 117
-#        define BOOST_PP_ITERATION_5 117
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 117 && NDNBOOST_PP_ITERATION_FINISH_5 >= 117
+#        define NDNBOOST_PP_ITERATION_5 117
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 118 && BOOST_PP_ITERATION_FINISH_5 >= 118
-#        define BOOST_PP_ITERATION_5 118
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 118 && NDNBOOST_PP_ITERATION_FINISH_5 >= 118
+#        define NDNBOOST_PP_ITERATION_5 118
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 119 && BOOST_PP_ITERATION_FINISH_5 >= 119
-#        define BOOST_PP_ITERATION_5 119
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 119 && NDNBOOST_PP_ITERATION_FINISH_5 >= 119
+#        define NDNBOOST_PP_ITERATION_5 119
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 120 && BOOST_PP_ITERATION_FINISH_5 >= 120
-#        define BOOST_PP_ITERATION_5 120
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 120 && NDNBOOST_PP_ITERATION_FINISH_5 >= 120
+#        define NDNBOOST_PP_ITERATION_5 120
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 121 && BOOST_PP_ITERATION_FINISH_5 >= 121
-#        define BOOST_PP_ITERATION_5 121
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 121 && NDNBOOST_PP_ITERATION_FINISH_5 >= 121
+#        define NDNBOOST_PP_ITERATION_5 121
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 122 && BOOST_PP_ITERATION_FINISH_5 >= 122
-#        define BOOST_PP_ITERATION_5 122
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 122 && NDNBOOST_PP_ITERATION_FINISH_5 >= 122
+#        define NDNBOOST_PP_ITERATION_5 122
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 123 && BOOST_PP_ITERATION_FINISH_5 >= 123
-#        define BOOST_PP_ITERATION_5 123
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 123 && NDNBOOST_PP_ITERATION_FINISH_5 >= 123
+#        define NDNBOOST_PP_ITERATION_5 123
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 124 && BOOST_PP_ITERATION_FINISH_5 >= 124
-#        define BOOST_PP_ITERATION_5 124
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 124 && NDNBOOST_PP_ITERATION_FINISH_5 >= 124
+#        define NDNBOOST_PP_ITERATION_5 124
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 125 && BOOST_PP_ITERATION_FINISH_5 >= 125
-#        define BOOST_PP_ITERATION_5 125
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 125 && NDNBOOST_PP_ITERATION_FINISH_5 >= 125
+#        define NDNBOOST_PP_ITERATION_5 125
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 126 && BOOST_PP_ITERATION_FINISH_5 >= 126
-#        define BOOST_PP_ITERATION_5 126
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 126 && NDNBOOST_PP_ITERATION_FINISH_5 >= 126
+#        define NDNBOOST_PP_ITERATION_5 126
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 127 && BOOST_PP_ITERATION_FINISH_5 >= 127
-#        define BOOST_PP_ITERATION_5 127
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 127 && NDNBOOST_PP_ITERATION_FINISH_5 >= 127
+#        define NDNBOOST_PP_ITERATION_5 127
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 128 && BOOST_PP_ITERATION_FINISH_5 >= 128
-#        define BOOST_PP_ITERATION_5 128
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 128 && NDNBOOST_PP_ITERATION_FINISH_5 >= 128
+#        define NDNBOOST_PP_ITERATION_5 128
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 129 && BOOST_PP_ITERATION_FINISH_5 >= 129
-#        define BOOST_PP_ITERATION_5 129
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 129 && NDNBOOST_PP_ITERATION_FINISH_5 >= 129
+#        define NDNBOOST_PP_ITERATION_5 129
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 130 && BOOST_PP_ITERATION_FINISH_5 >= 130
-#        define BOOST_PP_ITERATION_5 130
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 130 && NDNBOOST_PP_ITERATION_FINISH_5 >= 130
+#        define NDNBOOST_PP_ITERATION_5 130
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 131 && BOOST_PP_ITERATION_FINISH_5 >= 131
-#        define BOOST_PP_ITERATION_5 131
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 131 && NDNBOOST_PP_ITERATION_FINISH_5 >= 131
+#        define NDNBOOST_PP_ITERATION_5 131
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 132 && BOOST_PP_ITERATION_FINISH_5 >= 132
-#        define BOOST_PP_ITERATION_5 132
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 132 && NDNBOOST_PP_ITERATION_FINISH_5 >= 132
+#        define NDNBOOST_PP_ITERATION_5 132
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 133 && BOOST_PP_ITERATION_FINISH_5 >= 133
-#        define BOOST_PP_ITERATION_5 133
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 133 && NDNBOOST_PP_ITERATION_FINISH_5 >= 133
+#        define NDNBOOST_PP_ITERATION_5 133
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 134 && BOOST_PP_ITERATION_FINISH_5 >= 134
-#        define BOOST_PP_ITERATION_5 134
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 134 && NDNBOOST_PP_ITERATION_FINISH_5 >= 134
+#        define NDNBOOST_PP_ITERATION_5 134
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 135 && BOOST_PP_ITERATION_FINISH_5 >= 135
-#        define BOOST_PP_ITERATION_5 135
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 135 && NDNBOOST_PP_ITERATION_FINISH_5 >= 135
+#        define NDNBOOST_PP_ITERATION_5 135
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 136 && BOOST_PP_ITERATION_FINISH_5 >= 136
-#        define BOOST_PP_ITERATION_5 136
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 136 && NDNBOOST_PP_ITERATION_FINISH_5 >= 136
+#        define NDNBOOST_PP_ITERATION_5 136
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 137 && BOOST_PP_ITERATION_FINISH_5 >= 137
-#        define BOOST_PP_ITERATION_5 137
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 137 && NDNBOOST_PP_ITERATION_FINISH_5 >= 137
+#        define NDNBOOST_PP_ITERATION_5 137
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 138 && BOOST_PP_ITERATION_FINISH_5 >= 138
-#        define BOOST_PP_ITERATION_5 138
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 138 && NDNBOOST_PP_ITERATION_FINISH_5 >= 138
+#        define NDNBOOST_PP_ITERATION_5 138
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 139 && BOOST_PP_ITERATION_FINISH_5 >= 139
-#        define BOOST_PP_ITERATION_5 139
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 139 && NDNBOOST_PP_ITERATION_FINISH_5 >= 139
+#        define NDNBOOST_PP_ITERATION_5 139
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 140 && BOOST_PP_ITERATION_FINISH_5 >= 140
-#        define BOOST_PP_ITERATION_5 140
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 140 && NDNBOOST_PP_ITERATION_FINISH_5 >= 140
+#        define NDNBOOST_PP_ITERATION_5 140
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 141 && BOOST_PP_ITERATION_FINISH_5 >= 141
-#        define BOOST_PP_ITERATION_5 141
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 141 && NDNBOOST_PP_ITERATION_FINISH_5 >= 141
+#        define NDNBOOST_PP_ITERATION_5 141
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 142 && BOOST_PP_ITERATION_FINISH_5 >= 142
-#        define BOOST_PP_ITERATION_5 142
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 142 && NDNBOOST_PP_ITERATION_FINISH_5 >= 142
+#        define NDNBOOST_PP_ITERATION_5 142
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 143 && BOOST_PP_ITERATION_FINISH_5 >= 143
-#        define BOOST_PP_ITERATION_5 143
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 143 && NDNBOOST_PP_ITERATION_FINISH_5 >= 143
+#        define NDNBOOST_PP_ITERATION_5 143
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 144 && BOOST_PP_ITERATION_FINISH_5 >= 144
-#        define BOOST_PP_ITERATION_5 144
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 144 && NDNBOOST_PP_ITERATION_FINISH_5 >= 144
+#        define NDNBOOST_PP_ITERATION_5 144
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 145 && BOOST_PP_ITERATION_FINISH_5 >= 145
-#        define BOOST_PP_ITERATION_5 145
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 145 && NDNBOOST_PP_ITERATION_FINISH_5 >= 145
+#        define NDNBOOST_PP_ITERATION_5 145
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 146 && BOOST_PP_ITERATION_FINISH_5 >= 146
-#        define BOOST_PP_ITERATION_5 146
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 146 && NDNBOOST_PP_ITERATION_FINISH_5 >= 146
+#        define NDNBOOST_PP_ITERATION_5 146
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 147 && BOOST_PP_ITERATION_FINISH_5 >= 147
-#        define BOOST_PP_ITERATION_5 147
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 147 && NDNBOOST_PP_ITERATION_FINISH_5 >= 147
+#        define NDNBOOST_PP_ITERATION_5 147
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 148 && BOOST_PP_ITERATION_FINISH_5 >= 148
-#        define BOOST_PP_ITERATION_5 148
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 148 && NDNBOOST_PP_ITERATION_FINISH_5 >= 148
+#        define NDNBOOST_PP_ITERATION_5 148
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 149 && BOOST_PP_ITERATION_FINISH_5 >= 149
-#        define BOOST_PP_ITERATION_5 149
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 149 && NDNBOOST_PP_ITERATION_FINISH_5 >= 149
+#        define NDNBOOST_PP_ITERATION_5 149
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 150 && BOOST_PP_ITERATION_FINISH_5 >= 150
-#        define BOOST_PP_ITERATION_5 150
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 150 && NDNBOOST_PP_ITERATION_FINISH_5 >= 150
+#        define NDNBOOST_PP_ITERATION_5 150
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 151 && BOOST_PP_ITERATION_FINISH_5 >= 151
-#        define BOOST_PP_ITERATION_5 151
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 151 && NDNBOOST_PP_ITERATION_FINISH_5 >= 151
+#        define NDNBOOST_PP_ITERATION_5 151
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 152 && BOOST_PP_ITERATION_FINISH_5 >= 152
-#        define BOOST_PP_ITERATION_5 152
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 152 && NDNBOOST_PP_ITERATION_FINISH_5 >= 152
+#        define NDNBOOST_PP_ITERATION_5 152
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 153 && BOOST_PP_ITERATION_FINISH_5 >= 153
-#        define BOOST_PP_ITERATION_5 153
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 153 && NDNBOOST_PP_ITERATION_FINISH_5 >= 153
+#        define NDNBOOST_PP_ITERATION_5 153
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 154 && BOOST_PP_ITERATION_FINISH_5 >= 154
-#        define BOOST_PP_ITERATION_5 154
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 154 && NDNBOOST_PP_ITERATION_FINISH_5 >= 154
+#        define NDNBOOST_PP_ITERATION_5 154
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 155 && BOOST_PP_ITERATION_FINISH_5 >= 155
-#        define BOOST_PP_ITERATION_5 155
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 155 && NDNBOOST_PP_ITERATION_FINISH_5 >= 155
+#        define NDNBOOST_PP_ITERATION_5 155
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 156 && BOOST_PP_ITERATION_FINISH_5 >= 156
-#        define BOOST_PP_ITERATION_5 156
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 156 && NDNBOOST_PP_ITERATION_FINISH_5 >= 156
+#        define NDNBOOST_PP_ITERATION_5 156
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 157 && BOOST_PP_ITERATION_FINISH_5 >= 157
-#        define BOOST_PP_ITERATION_5 157
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 157 && NDNBOOST_PP_ITERATION_FINISH_5 >= 157
+#        define NDNBOOST_PP_ITERATION_5 157
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 158 && BOOST_PP_ITERATION_FINISH_5 >= 158
-#        define BOOST_PP_ITERATION_5 158
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 158 && NDNBOOST_PP_ITERATION_FINISH_5 >= 158
+#        define NDNBOOST_PP_ITERATION_5 158
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 159 && BOOST_PP_ITERATION_FINISH_5 >= 159
-#        define BOOST_PP_ITERATION_5 159
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 159 && NDNBOOST_PP_ITERATION_FINISH_5 >= 159
+#        define NDNBOOST_PP_ITERATION_5 159
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 160 && BOOST_PP_ITERATION_FINISH_5 >= 160
-#        define BOOST_PP_ITERATION_5 160
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 160 && NDNBOOST_PP_ITERATION_FINISH_5 >= 160
+#        define NDNBOOST_PP_ITERATION_5 160
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 161 && BOOST_PP_ITERATION_FINISH_5 >= 161
-#        define BOOST_PP_ITERATION_5 161
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 161 && NDNBOOST_PP_ITERATION_FINISH_5 >= 161
+#        define NDNBOOST_PP_ITERATION_5 161
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 162 && BOOST_PP_ITERATION_FINISH_5 >= 162
-#        define BOOST_PP_ITERATION_5 162
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 162 && NDNBOOST_PP_ITERATION_FINISH_5 >= 162
+#        define NDNBOOST_PP_ITERATION_5 162
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 163 && BOOST_PP_ITERATION_FINISH_5 >= 163
-#        define BOOST_PP_ITERATION_5 163
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 163 && NDNBOOST_PP_ITERATION_FINISH_5 >= 163
+#        define NDNBOOST_PP_ITERATION_5 163
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 164 && BOOST_PP_ITERATION_FINISH_5 >= 164
-#        define BOOST_PP_ITERATION_5 164
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 164 && NDNBOOST_PP_ITERATION_FINISH_5 >= 164
+#        define NDNBOOST_PP_ITERATION_5 164
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 165 && BOOST_PP_ITERATION_FINISH_5 >= 165
-#        define BOOST_PP_ITERATION_5 165
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 165 && NDNBOOST_PP_ITERATION_FINISH_5 >= 165
+#        define NDNBOOST_PP_ITERATION_5 165
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 166 && BOOST_PP_ITERATION_FINISH_5 >= 166
-#        define BOOST_PP_ITERATION_5 166
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 166 && NDNBOOST_PP_ITERATION_FINISH_5 >= 166
+#        define NDNBOOST_PP_ITERATION_5 166
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 167 && BOOST_PP_ITERATION_FINISH_5 >= 167
-#        define BOOST_PP_ITERATION_5 167
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 167 && NDNBOOST_PP_ITERATION_FINISH_5 >= 167
+#        define NDNBOOST_PP_ITERATION_5 167
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 168 && BOOST_PP_ITERATION_FINISH_5 >= 168
-#        define BOOST_PP_ITERATION_5 168
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 168 && NDNBOOST_PP_ITERATION_FINISH_5 >= 168
+#        define NDNBOOST_PP_ITERATION_5 168
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 169 && BOOST_PP_ITERATION_FINISH_5 >= 169
-#        define BOOST_PP_ITERATION_5 169
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 169 && NDNBOOST_PP_ITERATION_FINISH_5 >= 169
+#        define NDNBOOST_PP_ITERATION_5 169
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 170 && BOOST_PP_ITERATION_FINISH_5 >= 170
-#        define BOOST_PP_ITERATION_5 170
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 170 && NDNBOOST_PP_ITERATION_FINISH_5 >= 170
+#        define NDNBOOST_PP_ITERATION_5 170
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 171 && BOOST_PP_ITERATION_FINISH_5 >= 171
-#        define BOOST_PP_ITERATION_5 171
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 171 && NDNBOOST_PP_ITERATION_FINISH_5 >= 171
+#        define NDNBOOST_PP_ITERATION_5 171
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 172 && BOOST_PP_ITERATION_FINISH_5 >= 172
-#        define BOOST_PP_ITERATION_5 172
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 172 && NDNBOOST_PP_ITERATION_FINISH_5 >= 172
+#        define NDNBOOST_PP_ITERATION_5 172
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 173 && BOOST_PP_ITERATION_FINISH_5 >= 173
-#        define BOOST_PP_ITERATION_5 173
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 173 && NDNBOOST_PP_ITERATION_FINISH_5 >= 173
+#        define NDNBOOST_PP_ITERATION_5 173
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 174 && BOOST_PP_ITERATION_FINISH_5 >= 174
-#        define BOOST_PP_ITERATION_5 174
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 174 && NDNBOOST_PP_ITERATION_FINISH_5 >= 174
+#        define NDNBOOST_PP_ITERATION_5 174
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 175 && BOOST_PP_ITERATION_FINISH_5 >= 175
-#        define BOOST_PP_ITERATION_5 175
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 175 && NDNBOOST_PP_ITERATION_FINISH_5 >= 175
+#        define NDNBOOST_PP_ITERATION_5 175
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 176 && BOOST_PP_ITERATION_FINISH_5 >= 176
-#        define BOOST_PP_ITERATION_5 176
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 176 && NDNBOOST_PP_ITERATION_FINISH_5 >= 176
+#        define NDNBOOST_PP_ITERATION_5 176
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 177 && BOOST_PP_ITERATION_FINISH_5 >= 177
-#        define BOOST_PP_ITERATION_5 177
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 177 && NDNBOOST_PP_ITERATION_FINISH_5 >= 177
+#        define NDNBOOST_PP_ITERATION_5 177
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 178 && BOOST_PP_ITERATION_FINISH_5 >= 178
-#        define BOOST_PP_ITERATION_5 178
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 178 && NDNBOOST_PP_ITERATION_FINISH_5 >= 178
+#        define NDNBOOST_PP_ITERATION_5 178
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 179 && BOOST_PP_ITERATION_FINISH_5 >= 179
-#        define BOOST_PP_ITERATION_5 179
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 179 && NDNBOOST_PP_ITERATION_FINISH_5 >= 179
+#        define NDNBOOST_PP_ITERATION_5 179
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 180 && BOOST_PP_ITERATION_FINISH_5 >= 180
-#        define BOOST_PP_ITERATION_5 180
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 180 && NDNBOOST_PP_ITERATION_FINISH_5 >= 180
+#        define NDNBOOST_PP_ITERATION_5 180
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 181 && BOOST_PP_ITERATION_FINISH_5 >= 181
-#        define BOOST_PP_ITERATION_5 181
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 181 && NDNBOOST_PP_ITERATION_FINISH_5 >= 181
+#        define NDNBOOST_PP_ITERATION_5 181
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 182 && BOOST_PP_ITERATION_FINISH_5 >= 182
-#        define BOOST_PP_ITERATION_5 182
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 182 && NDNBOOST_PP_ITERATION_FINISH_5 >= 182
+#        define NDNBOOST_PP_ITERATION_5 182
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 183 && BOOST_PP_ITERATION_FINISH_5 >= 183
-#        define BOOST_PP_ITERATION_5 183
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 183 && NDNBOOST_PP_ITERATION_FINISH_5 >= 183
+#        define NDNBOOST_PP_ITERATION_5 183
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 184 && BOOST_PP_ITERATION_FINISH_5 >= 184
-#        define BOOST_PP_ITERATION_5 184
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 184 && NDNBOOST_PP_ITERATION_FINISH_5 >= 184
+#        define NDNBOOST_PP_ITERATION_5 184
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 185 && BOOST_PP_ITERATION_FINISH_5 >= 185
-#        define BOOST_PP_ITERATION_5 185
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 185 && NDNBOOST_PP_ITERATION_FINISH_5 >= 185
+#        define NDNBOOST_PP_ITERATION_5 185
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 186 && BOOST_PP_ITERATION_FINISH_5 >= 186
-#        define BOOST_PP_ITERATION_5 186
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 186 && NDNBOOST_PP_ITERATION_FINISH_5 >= 186
+#        define NDNBOOST_PP_ITERATION_5 186
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 187 && BOOST_PP_ITERATION_FINISH_5 >= 187
-#        define BOOST_PP_ITERATION_5 187
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 187 && NDNBOOST_PP_ITERATION_FINISH_5 >= 187
+#        define NDNBOOST_PP_ITERATION_5 187
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 188 && BOOST_PP_ITERATION_FINISH_5 >= 188
-#        define BOOST_PP_ITERATION_5 188
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 188 && NDNBOOST_PP_ITERATION_FINISH_5 >= 188
+#        define NDNBOOST_PP_ITERATION_5 188
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 189 && BOOST_PP_ITERATION_FINISH_5 >= 189
-#        define BOOST_PP_ITERATION_5 189
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 189 && NDNBOOST_PP_ITERATION_FINISH_5 >= 189
+#        define NDNBOOST_PP_ITERATION_5 189
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 190 && BOOST_PP_ITERATION_FINISH_5 >= 190
-#        define BOOST_PP_ITERATION_5 190
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 190 && NDNBOOST_PP_ITERATION_FINISH_5 >= 190
+#        define NDNBOOST_PP_ITERATION_5 190
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 191 && BOOST_PP_ITERATION_FINISH_5 >= 191
-#        define BOOST_PP_ITERATION_5 191
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 191 && NDNBOOST_PP_ITERATION_FINISH_5 >= 191
+#        define NDNBOOST_PP_ITERATION_5 191
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 192 && BOOST_PP_ITERATION_FINISH_5 >= 192
-#        define BOOST_PP_ITERATION_5 192
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 192 && NDNBOOST_PP_ITERATION_FINISH_5 >= 192
+#        define NDNBOOST_PP_ITERATION_5 192
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 193 && BOOST_PP_ITERATION_FINISH_5 >= 193
-#        define BOOST_PP_ITERATION_5 193
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 193 && NDNBOOST_PP_ITERATION_FINISH_5 >= 193
+#        define NDNBOOST_PP_ITERATION_5 193
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 194 && BOOST_PP_ITERATION_FINISH_5 >= 194
-#        define BOOST_PP_ITERATION_5 194
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 194 && NDNBOOST_PP_ITERATION_FINISH_5 >= 194
+#        define NDNBOOST_PP_ITERATION_5 194
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 195 && BOOST_PP_ITERATION_FINISH_5 >= 195
-#        define BOOST_PP_ITERATION_5 195
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 195 && NDNBOOST_PP_ITERATION_FINISH_5 >= 195
+#        define NDNBOOST_PP_ITERATION_5 195
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 196 && BOOST_PP_ITERATION_FINISH_5 >= 196
-#        define BOOST_PP_ITERATION_5 196
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 196 && NDNBOOST_PP_ITERATION_FINISH_5 >= 196
+#        define NDNBOOST_PP_ITERATION_5 196
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 197 && BOOST_PP_ITERATION_FINISH_5 >= 197
-#        define BOOST_PP_ITERATION_5 197
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 197 && NDNBOOST_PP_ITERATION_FINISH_5 >= 197
+#        define NDNBOOST_PP_ITERATION_5 197
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 198 && BOOST_PP_ITERATION_FINISH_5 >= 198
-#        define BOOST_PP_ITERATION_5 198
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 198 && NDNBOOST_PP_ITERATION_FINISH_5 >= 198
+#        define NDNBOOST_PP_ITERATION_5 198
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 199 && BOOST_PP_ITERATION_FINISH_5 >= 199
-#        define BOOST_PP_ITERATION_5 199
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 199 && NDNBOOST_PP_ITERATION_FINISH_5 >= 199
+#        define NDNBOOST_PP_ITERATION_5 199
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 200 && BOOST_PP_ITERATION_FINISH_5 >= 200
-#        define BOOST_PP_ITERATION_5 200
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 200 && NDNBOOST_PP_ITERATION_FINISH_5 >= 200
+#        define NDNBOOST_PP_ITERATION_5 200
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 201 && BOOST_PP_ITERATION_FINISH_5 >= 201
-#        define BOOST_PP_ITERATION_5 201
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 201 && NDNBOOST_PP_ITERATION_FINISH_5 >= 201
+#        define NDNBOOST_PP_ITERATION_5 201
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 202 && BOOST_PP_ITERATION_FINISH_5 >= 202
-#        define BOOST_PP_ITERATION_5 202
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 202 && NDNBOOST_PP_ITERATION_FINISH_5 >= 202
+#        define NDNBOOST_PP_ITERATION_5 202
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 203 && BOOST_PP_ITERATION_FINISH_5 >= 203
-#        define BOOST_PP_ITERATION_5 203
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 203 && NDNBOOST_PP_ITERATION_FINISH_5 >= 203
+#        define NDNBOOST_PP_ITERATION_5 203
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 204 && BOOST_PP_ITERATION_FINISH_5 >= 204
-#        define BOOST_PP_ITERATION_5 204
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 204 && NDNBOOST_PP_ITERATION_FINISH_5 >= 204
+#        define NDNBOOST_PP_ITERATION_5 204
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 205 && BOOST_PP_ITERATION_FINISH_5 >= 205
-#        define BOOST_PP_ITERATION_5 205
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 205 && NDNBOOST_PP_ITERATION_FINISH_5 >= 205
+#        define NDNBOOST_PP_ITERATION_5 205
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 206 && BOOST_PP_ITERATION_FINISH_5 >= 206
-#        define BOOST_PP_ITERATION_5 206
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 206 && NDNBOOST_PP_ITERATION_FINISH_5 >= 206
+#        define NDNBOOST_PP_ITERATION_5 206
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 207 && BOOST_PP_ITERATION_FINISH_5 >= 207
-#        define BOOST_PP_ITERATION_5 207
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 207 && NDNBOOST_PP_ITERATION_FINISH_5 >= 207
+#        define NDNBOOST_PP_ITERATION_5 207
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 208 && BOOST_PP_ITERATION_FINISH_5 >= 208
-#        define BOOST_PP_ITERATION_5 208
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 208 && NDNBOOST_PP_ITERATION_FINISH_5 >= 208
+#        define NDNBOOST_PP_ITERATION_5 208
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 209 && BOOST_PP_ITERATION_FINISH_5 >= 209
-#        define BOOST_PP_ITERATION_5 209
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 209 && NDNBOOST_PP_ITERATION_FINISH_5 >= 209
+#        define NDNBOOST_PP_ITERATION_5 209
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 210 && BOOST_PP_ITERATION_FINISH_5 >= 210
-#        define BOOST_PP_ITERATION_5 210
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 210 && NDNBOOST_PP_ITERATION_FINISH_5 >= 210
+#        define NDNBOOST_PP_ITERATION_5 210
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 211 && BOOST_PP_ITERATION_FINISH_5 >= 211
-#        define BOOST_PP_ITERATION_5 211
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 211 && NDNBOOST_PP_ITERATION_FINISH_5 >= 211
+#        define NDNBOOST_PP_ITERATION_5 211
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 212 && BOOST_PP_ITERATION_FINISH_5 >= 212
-#        define BOOST_PP_ITERATION_5 212
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 212 && NDNBOOST_PP_ITERATION_FINISH_5 >= 212
+#        define NDNBOOST_PP_ITERATION_5 212
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 213 && BOOST_PP_ITERATION_FINISH_5 >= 213
-#        define BOOST_PP_ITERATION_5 213
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 213 && NDNBOOST_PP_ITERATION_FINISH_5 >= 213
+#        define NDNBOOST_PP_ITERATION_5 213
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 214 && BOOST_PP_ITERATION_FINISH_5 >= 214
-#        define BOOST_PP_ITERATION_5 214
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 214 && NDNBOOST_PP_ITERATION_FINISH_5 >= 214
+#        define NDNBOOST_PP_ITERATION_5 214
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 215 && BOOST_PP_ITERATION_FINISH_5 >= 215
-#        define BOOST_PP_ITERATION_5 215
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 215 && NDNBOOST_PP_ITERATION_FINISH_5 >= 215
+#        define NDNBOOST_PP_ITERATION_5 215
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 216 && BOOST_PP_ITERATION_FINISH_5 >= 216
-#        define BOOST_PP_ITERATION_5 216
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 216 && NDNBOOST_PP_ITERATION_FINISH_5 >= 216
+#        define NDNBOOST_PP_ITERATION_5 216
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 217 && BOOST_PP_ITERATION_FINISH_5 >= 217
-#        define BOOST_PP_ITERATION_5 217
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 217 && NDNBOOST_PP_ITERATION_FINISH_5 >= 217
+#        define NDNBOOST_PP_ITERATION_5 217
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 218 && BOOST_PP_ITERATION_FINISH_5 >= 218
-#        define BOOST_PP_ITERATION_5 218
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 218 && NDNBOOST_PP_ITERATION_FINISH_5 >= 218
+#        define NDNBOOST_PP_ITERATION_5 218
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 219 && BOOST_PP_ITERATION_FINISH_5 >= 219
-#        define BOOST_PP_ITERATION_5 219
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 219 && NDNBOOST_PP_ITERATION_FINISH_5 >= 219
+#        define NDNBOOST_PP_ITERATION_5 219
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 220 && BOOST_PP_ITERATION_FINISH_5 >= 220
-#        define BOOST_PP_ITERATION_5 220
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 220 && NDNBOOST_PP_ITERATION_FINISH_5 >= 220
+#        define NDNBOOST_PP_ITERATION_5 220
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 221 && BOOST_PP_ITERATION_FINISH_5 >= 221
-#        define BOOST_PP_ITERATION_5 221
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 221 && NDNBOOST_PP_ITERATION_FINISH_5 >= 221
+#        define NDNBOOST_PP_ITERATION_5 221
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 222 && BOOST_PP_ITERATION_FINISH_5 >= 222
-#        define BOOST_PP_ITERATION_5 222
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 222 && NDNBOOST_PP_ITERATION_FINISH_5 >= 222
+#        define NDNBOOST_PP_ITERATION_5 222
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 223 && BOOST_PP_ITERATION_FINISH_5 >= 223
-#        define BOOST_PP_ITERATION_5 223
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 223 && NDNBOOST_PP_ITERATION_FINISH_5 >= 223
+#        define NDNBOOST_PP_ITERATION_5 223
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 224 && BOOST_PP_ITERATION_FINISH_5 >= 224
-#        define BOOST_PP_ITERATION_5 224
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 224 && NDNBOOST_PP_ITERATION_FINISH_5 >= 224
+#        define NDNBOOST_PP_ITERATION_5 224
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 225 && BOOST_PP_ITERATION_FINISH_5 >= 225
-#        define BOOST_PP_ITERATION_5 225
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 225 && NDNBOOST_PP_ITERATION_FINISH_5 >= 225
+#        define NDNBOOST_PP_ITERATION_5 225
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 226 && BOOST_PP_ITERATION_FINISH_5 >= 226
-#        define BOOST_PP_ITERATION_5 226
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 226 && NDNBOOST_PP_ITERATION_FINISH_5 >= 226
+#        define NDNBOOST_PP_ITERATION_5 226
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 227 && BOOST_PP_ITERATION_FINISH_5 >= 227
-#        define BOOST_PP_ITERATION_5 227
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 227 && NDNBOOST_PP_ITERATION_FINISH_5 >= 227
+#        define NDNBOOST_PP_ITERATION_5 227
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 228 && BOOST_PP_ITERATION_FINISH_5 >= 228
-#        define BOOST_PP_ITERATION_5 228
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 228 && NDNBOOST_PP_ITERATION_FINISH_5 >= 228
+#        define NDNBOOST_PP_ITERATION_5 228
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 229 && BOOST_PP_ITERATION_FINISH_5 >= 229
-#        define BOOST_PP_ITERATION_5 229
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 229 && NDNBOOST_PP_ITERATION_FINISH_5 >= 229
+#        define NDNBOOST_PP_ITERATION_5 229
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 230 && BOOST_PP_ITERATION_FINISH_5 >= 230
-#        define BOOST_PP_ITERATION_5 230
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 230 && NDNBOOST_PP_ITERATION_FINISH_5 >= 230
+#        define NDNBOOST_PP_ITERATION_5 230
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 231 && BOOST_PP_ITERATION_FINISH_5 >= 231
-#        define BOOST_PP_ITERATION_5 231
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 231 && NDNBOOST_PP_ITERATION_FINISH_5 >= 231
+#        define NDNBOOST_PP_ITERATION_5 231
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 232 && BOOST_PP_ITERATION_FINISH_5 >= 232
-#        define BOOST_PP_ITERATION_5 232
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 232 && NDNBOOST_PP_ITERATION_FINISH_5 >= 232
+#        define NDNBOOST_PP_ITERATION_5 232
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 233 && BOOST_PP_ITERATION_FINISH_5 >= 233
-#        define BOOST_PP_ITERATION_5 233
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 233 && NDNBOOST_PP_ITERATION_FINISH_5 >= 233
+#        define NDNBOOST_PP_ITERATION_5 233
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 234 && BOOST_PP_ITERATION_FINISH_5 >= 234
-#        define BOOST_PP_ITERATION_5 234
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 234 && NDNBOOST_PP_ITERATION_FINISH_5 >= 234
+#        define NDNBOOST_PP_ITERATION_5 234
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 235 && BOOST_PP_ITERATION_FINISH_5 >= 235
-#        define BOOST_PP_ITERATION_5 235
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 235 && NDNBOOST_PP_ITERATION_FINISH_5 >= 235
+#        define NDNBOOST_PP_ITERATION_5 235
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 236 && BOOST_PP_ITERATION_FINISH_5 >= 236
-#        define BOOST_PP_ITERATION_5 236
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 236 && NDNBOOST_PP_ITERATION_FINISH_5 >= 236
+#        define NDNBOOST_PP_ITERATION_5 236
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 237 && BOOST_PP_ITERATION_FINISH_5 >= 237
-#        define BOOST_PP_ITERATION_5 237
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 237 && NDNBOOST_PP_ITERATION_FINISH_5 >= 237
+#        define NDNBOOST_PP_ITERATION_5 237
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 238 && BOOST_PP_ITERATION_FINISH_5 >= 238
-#        define BOOST_PP_ITERATION_5 238
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 238 && NDNBOOST_PP_ITERATION_FINISH_5 >= 238
+#        define NDNBOOST_PP_ITERATION_5 238
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 239 && BOOST_PP_ITERATION_FINISH_5 >= 239
-#        define BOOST_PP_ITERATION_5 239
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 239 && NDNBOOST_PP_ITERATION_FINISH_5 >= 239
+#        define NDNBOOST_PP_ITERATION_5 239
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 240 && BOOST_PP_ITERATION_FINISH_5 >= 240
-#        define BOOST_PP_ITERATION_5 240
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 240 && NDNBOOST_PP_ITERATION_FINISH_5 >= 240
+#        define NDNBOOST_PP_ITERATION_5 240
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 241 && BOOST_PP_ITERATION_FINISH_5 >= 241
-#        define BOOST_PP_ITERATION_5 241
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 241 && NDNBOOST_PP_ITERATION_FINISH_5 >= 241
+#        define NDNBOOST_PP_ITERATION_5 241
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 242 && BOOST_PP_ITERATION_FINISH_5 >= 242
-#        define BOOST_PP_ITERATION_5 242
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 242 && NDNBOOST_PP_ITERATION_FINISH_5 >= 242
+#        define NDNBOOST_PP_ITERATION_5 242
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 243 && BOOST_PP_ITERATION_FINISH_5 >= 243
-#        define BOOST_PP_ITERATION_5 243
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 243 && NDNBOOST_PP_ITERATION_FINISH_5 >= 243
+#        define NDNBOOST_PP_ITERATION_5 243
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 244 && BOOST_PP_ITERATION_FINISH_5 >= 244
-#        define BOOST_PP_ITERATION_5 244
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 244 && NDNBOOST_PP_ITERATION_FINISH_5 >= 244
+#        define NDNBOOST_PP_ITERATION_5 244
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 245 && BOOST_PP_ITERATION_FINISH_5 >= 245
-#        define BOOST_PP_ITERATION_5 245
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 245 && NDNBOOST_PP_ITERATION_FINISH_5 >= 245
+#        define NDNBOOST_PP_ITERATION_5 245
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 246 && BOOST_PP_ITERATION_FINISH_5 >= 246
-#        define BOOST_PP_ITERATION_5 246
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 246 && NDNBOOST_PP_ITERATION_FINISH_5 >= 246
+#        define NDNBOOST_PP_ITERATION_5 246
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 247 && BOOST_PP_ITERATION_FINISH_5 >= 247
-#        define BOOST_PP_ITERATION_5 247
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 247 && NDNBOOST_PP_ITERATION_FINISH_5 >= 247
+#        define NDNBOOST_PP_ITERATION_5 247
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 248 && BOOST_PP_ITERATION_FINISH_5 >= 248
-#        define BOOST_PP_ITERATION_5 248
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 248 && NDNBOOST_PP_ITERATION_FINISH_5 >= 248
+#        define NDNBOOST_PP_ITERATION_5 248
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 249 && BOOST_PP_ITERATION_FINISH_5 >= 249
-#        define BOOST_PP_ITERATION_5 249
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 249 && NDNBOOST_PP_ITERATION_FINISH_5 >= 249
+#        define NDNBOOST_PP_ITERATION_5 249
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 250 && BOOST_PP_ITERATION_FINISH_5 >= 250
-#        define BOOST_PP_ITERATION_5 250
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 250 && NDNBOOST_PP_ITERATION_FINISH_5 >= 250
+#        define NDNBOOST_PP_ITERATION_5 250
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 251 && BOOST_PP_ITERATION_FINISH_5 >= 251
-#        define BOOST_PP_ITERATION_5 251
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 251 && NDNBOOST_PP_ITERATION_FINISH_5 >= 251
+#        define NDNBOOST_PP_ITERATION_5 251
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 252 && BOOST_PP_ITERATION_FINISH_5 >= 252
-#        define BOOST_PP_ITERATION_5 252
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 252 && NDNBOOST_PP_ITERATION_FINISH_5 >= 252
+#        define NDNBOOST_PP_ITERATION_5 252
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 253 && BOOST_PP_ITERATION_FINISH_5 >= 253
-#        define BOOST_PP_ITERATION_5 253
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 253 && NDNBOOST_PP_ITERATION_FINISH_5 >= 253
+#        define NDNBOOST_PP_ITERATION_5 253
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 254 && BOOST_PP_ITERATION_FINISH_5 >= 254
-#        define BOOST_PP_ITERATION_5 254
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 254 && NDNBOOST_PP_ITERATION_FINISH_5 >= 254
+#        define NDNBOOST_PP_ITERATION_5 254
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 255 && BOOST_PP_ITERATION_FINISH_5 >= 255
-#        define BOOST_PP_ITERATION_5 255
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 255 && NDNBOOST_PP_ITERATION_FINISH_5 >= 255
+#        define NDNBOOST_PP_ITERATION_5 255
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
-#    if BOOST_PP_ITERATION_START_5 <= 256 && BOOST_PP_ITERATION_FINISH_5 >= 256
-#        define BOOST_PP_ITERATION_5 256
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
+#    if NDNBOOST_PP_ITERATION_START_5 <= 256 && NDNBOOST_PP_ITERATION_FINISH_5 >= 256
+#        define NDNBOOST_PP_ITERATION_5 256
+#        include NDNBOOST_PP_FILENAME_5
+#        undef NDNBOOST_PP_ITERATION_5
 #    endif
 # endif
 #
-# undef BOOST_PP_ITERATION_DEPTH
-# define BOOST_PP_ITERATION_DEPTH() 4
+# undef NDNBOOST_PP_ITERATION_DEPTH
+# define NDNBOOST_PP_ITERATION_DEPTH() 4
 #
-# undef BOOST_PP_ITERATION_START_5
-# undef BOOST_PP_ITERATION_FINISH_5
-# undef BOOST_PP_FILENAME_5
+# undef NDNBOOST_PP_ITERATION_START_5
+# undef NDNBOOST_PP_ITERATION_FINISH_5
+# undef NDNBOOST_PP_FILENAME_5
 #
-# undef BOOST_PP_ITERATION_FLAGS_5
-# undef BOOST_PP_ITERATION_PARAMS_5
+# undef NDNBOOST_PP_ITERATION_FLAGS_5
+# undef NDNBOOST_PP_ITERATION_PARAMS_5
diff --git a/include/ndnboost/preprocessor/iteration/detail/iter/reverse1.hpp b/include/ndnboost/preprocessor/iteration/detail/iter/reverse1.hpp
index bf88d2f..bb01af1 100644
--- a/include/ndnboost/preprocessor/iteration/detail/iter/reverse1.hpp
+++ b/include/ndnboost/preprocessor/iteration/detail/iter/reverse1.hpp
@@ -9,1288 +9,1288 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# if BOOST_PP_ITERATION_FINISH_1 <= 256 && BOOST_PP_ITERATION_START_1 >= 256
-#    define BOOST_PP_ITERATION_1 256
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 256 && NDNBOOST_PP_ITERATION_START_1 >= 256
+#    define NDNBOOST_PP_ITERATION_1 256
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 255 && BOOST_PP_ITERATION_START_1 >= 255
-#    define BOOST_PP_ITERATION_1 255
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 255 && NDNBOOST_PP_ITERATION_START_1 >= 255
+#    define NDNBOOST_PP_ITERATION_1 255
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 254 && BOOST_PP_ITERATION_START_1 >= 254
-#    define BOOST_PP_ITERATION_1 254
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 254 && NDNBOOST_PP_ITERATION_START_1 >= 254
+#    define NDNBOOST_PP_ITERATION_1 254
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 253 && BOOST_PP_ITERATION_START_1 >= 253
-#    define BOOST_PP_ITERATION_1 253
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 253 && NDNBOOST_PP_ITERATION_START_1 >= 253
+#    define NDNBOOST_PP_ITERATION_1 253
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 252 && BOOST_PP_ITERATION_START_1 >= 252
-#    define BOOST_PP_ITERATION_1 252
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 252 && NDNBOOST_PP_ITERATION_START_1 >= 252
+#    define NDNBOOST_PP_ITERATION_1 252
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 251 && BOOST_PP_ITERATION_START_1 >= 251
-#    define BOOST_PP_ITERATION_1 251
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 251 && NDNBOOST_PP_ITERATION_START_1 >= 251
+#    define NDNBOOST_PP_ITERATION_1 251
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 250 && BOOST_PP_ITERATION_START_1 >= 250
-#    define BOOST_PP_ITERATION_1 250
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 250 && NDNBOOST_PP_ITERATION_START_1 >= 250
+#    define NDNBOOST_PP_ITERATION_1 250
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 249 && BOOST_PP_ITERATION_START_1 >= 249
-#    define BOOST_PP_ITERATION_1 249
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 249 && NDNBOOST_PP_ITERATION_START_1 >= 249
+#    define NDNBOOST_PP_ITERATION_1 249
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 248 && BOOST_PP_ITERATION_START_1 >= 248
-#    define BOOST_PP_ITERATION_1 248
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 248 && NDNBOOST_PP_ITERATION_START_1 >= 248
+#    define NDNBOOST_PP_ITERATION_1 248
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 247 && BOOST_PP_ITERATION_START_1 >= 247
-#    define BOOST_PP_ITERATION_1 247
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 247 && NDNBOOST_PP_ITERATION_START_1 >= 247
+#    define NDNBOOST_PP_ITERATION_1 247
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 246 && BOOST_PP_ITERATION_START_1 >= 246
-#    define BOOST_PP_ITERATION_1 246
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 246 && NDNBOOST_PP_ITERATION_START_1 >= 246
+#    define NDNBOOST_PP_ITERATION_1 246
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 245 && BOOST_PP_ITERATION_START_1 >= 245
-#    define BOOST_PP_ITERATION_1 245
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 245 && NDNBOOST_PP_ITERATION_START_1 >= 245
+#    define NDNBOOST_PP_ITERATION_1 245
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 244 && BOOST_PP_ITERATION_START_1 >= 244
-#    define BOOST_PP_ITERATION_1 244
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 244 && NDNBOOST_PP_ITERATION_START_1 >= 244
+#    define NDNBOOST_PP_ITERATION_1 244
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 243 && BOOST_PP_ITERATION_START_1 >= 243
-#    define BOOST_PP_ITERATION_1 243
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 243 && NDNBOOST_PP_ITERATION_START_1 >= 243
+#    define NDNBOOST_PP_ITERATION_1 243
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 242 && BOOST_PP_ITERATION_START_1 >= 242
-#    define BOOST_PP_ITERATION_1 242
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 242 && NDNBOOST_PP_ITERATION_START_1 >= 242
+#    define NDNBOOST_PP_ITERATION_1 242
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 241 && BOOST_PP_ITERATION_START_1 >= 241
-#    define BOOST_PP_ITERATION_1 241
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 241 && NDNBOOST_PP_ITERATION_START_1 >= 241
+#    define NDNBOOST_PP_ITERATION_1 241
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 240 && BOOST_PP_ITERATION_START_1 >= 240
-#    define BOOST_PP_ITERATION_1 240
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 240 && NDNBOOST_PP_ITERATION_START_1 >= 240
+#    define NDNBOOST_PP_ITERATION_1 240
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 239 && BOOST_PP_ITERATION_START_1 >= 239
-#    define BOOST_PP_ITERATION_1 239
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 239 && NDNBOOST_PP_ITERATION_START_1 >= 239
+#    define NDNBOOST_PP_ITERATION_1 239
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 238 && BOOST_PP_ITERATION_START_1 >= 238
-#    define BOOST_PP_ITERATION_1 238
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 238 && NDNBOOST_PP_ITERATION_START_1 >= 238
+#    define NDNBOOST_PP_ITERATION_1 238
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 237 && BOOST_PP_ITERATION_START_1 >= 237
-#    define BOOST_PP_ITERATION_1 237
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 237 && NDNBOOST_PP_ITERATION_START_1 >= 237
+#    define NDNBOOST_PP_ITERATION_1 237
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 236 && BOOST_PP_ITERATION_START_1 >= 236
-#    define BOOST_PP_ITERATION_1 236
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 236 && NDNBOOST_PP_ITERATION_START_1 >= 236
+#    define NDNBOOST_PP_ITERATION_1 236
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 235 && BOOST_PP_ITERATION_START_1 >= 235
-#    define BOOST_PP_ITERATION_1 235
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 235 && NDNBOOST_PP_ITERATION_START_1 >= 235
+#    define NDNBOOST_PP_ITERATION_1 235
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 234 && BOOST_PP_ITERATION_START_1 >= 234
-#    define BOOST_PP_ITERATION_1 234
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 234 && NDNBOOST_PP_ITERATION_START_1 >= 234
+#    define NDNBOOST_PP_ITERATION_1 234
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 233 && BOOST_PP_ITERATION_START_1 >= 233
-#    define BOOST_PP_ITERATION_1 233
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 233 && NDNBOOST_PP_ITERATION_START_1 >= 233
+#    define NDNBOOST_PP_ITERATION_1 233
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 232 && BOOST_PP_ITERATION_START_1 >= 232
-#    define BOOST_PP_ITERATION_1 232
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 232 && NDNBOOST_PP_ITERATION_START_1 >= 232
+#    define NDNBOOST_PP_ITERATION_1 232
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 231 && BOOST_PP_ITERATION_START_1 >= 231
-#    define BOOST_PP_ITERATION_1 231
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 231 && NDNBOOST_PP_ITERATION_START_1 >= 231
+#    define NDNBOOST_PP_ITERATION_1 231
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 230 && BOOST_PP_ITERATION_START_1 >= 230
-#    define BOOST_PP_ITERATION_1 230
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 230 && NDNBOOST_PP_ITERATION_START_1 >= 230
+#    define NDNBOOST_PP_ITERATION_1 230
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 229 && BOOST_PP_ITERATION_START_1 >= 229
-#    define BOOST_PP_ITERATION_1 229
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 229 && NDNBOOST_PP_ITERATION_START_1 >= 229
+#    define NDNBOOST_PP_ITERATION_1 229
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 228 && BOOST_PP_ITERATION_START_1 >= 228
-#    define BOOST_PP_ITERATION_1 228
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 228 && NDNBOOST_PP_ITERATION_START_1 >= 228
+#    define NDNBOOST_PP_ITERATION_1 228
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 227 && BOOST_PP_ITERATION_START_1 >= 227
-#    define BOOST_PP_ITERATION_1 227
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 227 && NDNBOOST_PP_ITERATION_START_1 >= 227
+#    define NDNBOOST_PP_ITERATION_1 227
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 226 && BOOST_PP_ITERATION_START_1 >= 226
-#    define BOOST_PP_ITERATION_1 226
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 226 && NDNBOOST_PP_ITERATION_START_1 >= 226
+#    define NDNBOOST_PP_ITERATION_1 226
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 225 && BOOST_PP_ITERATION_START_1 >= 225
-#    define BOOST_PP_ITERATION_1 225
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 225 && NDNBOOST_PP_ITERATION_START_1 >= 225
+#    define NDNBOOST_PP_ITERATION_1 225
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 224 && BOOST_PP_ITERATION_START_1 >= 224
-#    define BOOST_PP_ITERATION_1 224
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 224 && NDNBOOST_PP_ITERATION_START_1 >= 224
+#    define NDNBOOST_PP_ITERATION_1 224
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 223 && BOOST_PP_ITERATION_START_1 >= 223
-#    define BOOST_PP_ITERATION_1 223
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 223 && NDNBOOST_PP_ITERATION_START_1 >= 223
+#    define NDNBOOST_PP_ITERATION_1 223
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 222 && BOOST_PP_ITERATION_START_1 >= 222
-#    define BOOST_PP_ITERATION_1 222
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 222 && NDNBOOST_PP_ITERATION_START_1 >= 222
+#    define NDNBOOST_PP_ITERATION_1 222
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 221 && BOOST_PP_ITERATION_START_1 >= 221
-#    define BOOST_PP_ITERATION_1 221
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 221 && NDNBOOST_PP_ITERATION_START_1 >= 221
+#    define NDNBOOST_PP_ITERATION_1 221
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 220 && BOOST_PP_ITERATION_START_1 >= 220
-#    define BOOST_PP_ITERATION_1 220
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 220 && NDNBOOST_PP_ITERATION_START_1 >= 220
+#    define NDNBOOST_PP_ITERATION_1 220
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 219 && BOOST_PP_ITERATION_START_1 >= 219
-#    define BOOST_PP_ITERATION_1 219
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 219 && NDNBOOST_PP_ITERATION_START_1 >= 219
+#    define NDNBOOST_PP_ITERATION_1 219
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 218 && BOOST_PP_ITERATION_START_1 >= 218
-#    define BOOST_PP_ITERATION_1 218
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 218 && NDNBOOST_PP_ITERATION_START_1 >= 218
+#    define NDNBOOST_PP_ITERATION_1 218
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 217 && BOOST_PP_ITERATION_START_1 >= 217
-#    define BOOST_PP_ITERATION_1 217
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 217 && NDNBOOST_PP_ITERATION_START_1 >= 217
+#    define NDNBOOST_PP_ITERATION_1 217
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 216 && BOOST_PP_ITERATION_START_1 >= 216
-#    define BOOST_PP_ITERATION_1 216
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 216 && NDNBOOST_PP_ITERATION_START_1 >= 216
+#    define NDNBOOST_PP_ITERATION_1 216
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 215 && BOOST_PP_ITERATION_START_1 >= 215
-#    define BOOST_PP_ITERATION_1 215
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 215 && NDNBOOST_PP_ITERATION_START_1 >= 215
+#    define NDNBOOST_PP_ITERATION_1 215
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 214 && BOOST_PP_ITERATION_START_1 >= 214
-#    define BOOST_PP_ITERATION_1 214
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 214 && NDNBOOST_PP_ITERATION_START_1 >= 214
+#    define NDNBOOST_PP_ITERATION_1 214
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 213 && BOOST_PP_ITERATION_START_1 >= 213
-#    define BOOST_PP_ITERATION_1 213
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 213 && NDNBOOST_PP_ITERATION_START_1 >= 213
+#    define NDNBOOST_PP_ITERATION_1 213
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 212 && BOOST_PP_ITERATION_START_1 >= 212
-#    define BOOST_PP_ITERATION_1 212
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 212 && NDNBOOST_PP_ITERATION_START_1 >= 212
+#    define NDNBOOST_PP_ITERATION_1 212
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 211 && BOOST_PP_ITERATION_START_1 >= 211
-#    define BOOST_PP_ITERATION_1 211
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 211 && NDNBOOST_PP_ITERATION_START_1 >= 211
+#    define NDNBOOST_PP_ITERATION_1 211
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 210 && BOOST_PP_ITERATION_START_1 >= 210
-#    define BOOST_PP_ITERATION_1 210
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 210 && NDNBOOST_PP_ITERATION_START_1 >= 210
+#    define NDNBOOST_PP_ITERATION_1 210
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 209 && BOOST_PP_ITERATION_START_1 >= 209
-#    define BOOST_PP_ITERATION_1 209
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 209 && NDNBOOST_PP_ITERATION_START_1 >= 209
+#    define NDNBOOST_PP_ITERATION_1 209
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 208 && BOOST_PP_ITERATION_START_1 >= 208
-#    define BOOST_PP_ITERATION_1 208
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 208 && NDNBOOST_PP_ITERATION_START_1 >= 208
+#    define NDNBOOST_PP_ITERATION_1 208
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 207 && BOOST_PP_ITERATION_START_1 >= 207
-#    define BOOST_PP_ITERATION_1 207
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 207 && NDNBOOST_PP_ITERATION_START_1 >= 207
+#    define NDNBOOST_PP_ITERATION_1 207
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 206 && BOOST_PP_ITERATION_START_1 >= 206
-#    define BOOST_PP_ITERATION_1 206
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 206 && NDNBOOST_PP_ITERATION_START_1 >= 206
+#    define NDNBOOST_PP_ITERATION_1 206
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 205 && BOOST_PP_ITERATION_START_1 >= 205
-#    define BOOST_PP_ITERATION_1 205
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 205 && NDNBOOST_PP_ITERATION_START_1 >= 205
+#    define NDNBOOST_PP_ITERATION_1 205
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 204 && BOOST_PP_ITERATION_START_1 >= 204
-#    define BOOST_PP_ITERATION_1 204
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 204 && NDNBOOST_PP_ITERATION_START_1 >= 204
+#    define NDNBOOST_PP_ITERATION_1 204
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 203 && BOOST_PP_ITERATION_START_1 >= 203
-#    define BOOST_PP_ITERATION_1 203
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 203 && NDNBOOST_PP_ITERATION_START_1 >= 203
+#    define NDNBOOST_PP_ITERATION_1 203
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 202 && BOOST_PP_ITERATION_START_1 >= 202
-#    define BOOST_PP_ITERATION_1 202
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 202 && NDNBOOST_PP_ITERATION_START_1 >= 202
+#    define NDNBOOST_PP_ITERATION_1 202
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 201 && BOOST_PP_ITERATION_START_1 >= 201
-#    define BOOST_PP_ITERATION_1 201
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 201 && NDNBOOST_PP_ITERATION_START_1 >= 201
+#    define NDNBOOST_PP_ITERATION_1 201
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 200 && BOOST_PP_ITERATION_START_1 >= 200
-#    define BOOST_PP_ITERATION_1 200
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 200 && NDNBOOST_PP_ITERATION_START_1 >= 200
+#    define NDNBOOST_PP_ITERATION_1 200
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 199 && BOOST_PP_ITERATION_START_1 >= 199
-#    define BOOST_PP_ITERATION_1 199
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 199 && NDNBOOST_PP_ITERATION_START_1 >= 199
+#    define NDNBOOST_PP_ITERATION_1 199
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 198 && BOOST_PP_ITERATION_START_1 >= 198
-#    define BOOST_PP_ITERATION_1 198
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 198 && NDNBOOST_PP_ITERATION_START_1 >= 198
+#    define NDNBOOST_PP_ITERATION_1 198
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 197 && BOOST_PP_ITERATION_START_1 >= 197
-#    define BOOST_PP_ITERATION_1 197
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 197 && NDNBOOST_PP_ITERATION_START_1 >= 197
+#    define NDNBOOST_PP_ITERATION_1 197
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 196 && BOOST_PP_ITERATION_START_1 >= 196
-#    define BOOST_PP_ITERATION_1 196
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 196 && NDNBOOST_PP_ITERATION_START_1 >= 196
+#    define NDNBOOST_PP_ITERATION_1 196
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 195 && BOOST_PP_ITERATION_START_1 >= 195
-#    define BOOST_PP_ITERATION_1 195
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 195 && NDNBOOST_PP_ITERATION_START_1 >= 195
+#    define NDNBOOST_PP_ITERATION_1 195
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 194 && BOOST_PP_ITERATION_START_1 >= 194
-#    define BOOST_PP_ITERATION_1 194
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 194 && NDNBOOST_PP_ITERATION_START_1 >= 194
+#    define NDNBOOST_PP_ITERATION_1 194
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 193 && BOOST_PP_ITERATION_START_1 >= 193
-#    define BOOST_PP_ITERATION_1 193
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 193 && NDNBOOST_PP_ITERATION_START_1 >= 193
+#    define NDNBOOST_PP_ITERATION_1 193
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 192 && BOOST_PP_ITERATION_START_1 >= 192
-#    define BOOST_PP_ITERATION_1 192
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 192 && NDNBOOST_PP_ITERATION_START_1 >= 192
+#    define NDNBOOST_PP_ITERATION_1 192
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 191 && BOOST_PP_ITERATION_START_1 >= 191
-#    define BOOST_PP_ITERATION_1 191
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 191 && NDNBOOST_PP_ITERATION_START_1 >= 191
+#    define NDNBOOST_PP_ITERATION_1 191
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 190 && BOOST_PP_ITERATION_START_1 >= 190
-#    define BOOST_PP_ITERATION_1 190
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 190 && NDNBOOST_PP_ITERATION_START_1 >= 190
+#    define NDNBOOST_PP_ITERATION_1 190
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 189 && BOOST_PP_ITERATION_START_1 >= 189
-#    define BOOST_PP_ITERATION_1 189
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 189 && NDNBOOST_PP_ITERATION_START_1 >= 189
+#    define NDNBOOST_PP_ITERATION_1 189
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 188 && BOOST_PP_ITERATION_START_1 >= 188
-#    define BOOST_PP_ITERATION_1 188
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 188 && NDNBOOST_PP_ITERATION_START_1 >= 188
+#    define NDNBOOST_PP_ITERATION_1 188
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 187 && BOOST_PP_ITERATION_START_1 >= 187
-#    define BOOST_PP_ITERATION_1 187
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 187 && NDNBOOST_PP_ITERATION_START_1 >= 187
+#    define NDNBOOST_PP_ITERATION_1 187
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 186 && BOOST_PP_ITERATION_START_1 >= 186
-#    define BOOST_PP_ITERATION_1 186
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 186 && NDNBOOST_PP_ITERATION_START_1 >= 186
+#    define NDNBOOST_PP_ITERATION_1 186
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 185 && BOOST_PP_ITERATION_START_1 >= 185
-#    define BOOST_PP_ITERATION_1 185
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 185 && NDNBOOST_PP_ITERATION_START_1 >= 185
+#    define NDNBOOST_PP_ITERATION_1 185
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 184 && BOOST_PP_ITERATION_START_1 >= 184
-#    define BOOST_PP_ITERATION_1 184
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 184 && NDNBOOST_PP_ITERATION_START_1 >= 184
+#    define NDNBOOST_PP_ITERATION_1 184
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 183 && BOOST_PP_ITERATION_START_1 >= 183
-#    define BOOST_PP_ITERATION_1 183
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 183 && NDNBOOST_PP_ITERATION_START_1 >= 183
+#    define NDNBOOST_PP_ITERATION_1 183
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 182 && BOOST_PP_ITERATION_START_1 >= 182
-#    define BOOST_PP_ITERATION_1 182
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 182 && NDNBOOST_PP_ITERATION_START_1 >= 182
+#    define NDNBOOST_PP_ITERATION_1 182
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 181 && BOOST_PP_ITERATION_START_1 >= 181
-#    define BOOST_PP_ITERATION_1 181
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 181 && NDNBOOST_PP_ITERATION_START_1 >= 181
+#    define NDNBOOST_PP_ITERATION_1 181
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 180 && BOOST_PP_ITERATION_START_1 >= 180
-#    define BOOST_PP_ITERATION_1 180
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 180 && NDNBOOST_PP_ITERATION_START_1 >= 180
+#    define NDNBOOST_PP_ITERATION_1 180
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 179 && BOOST_PP_ITERATION_START_1 >= 179
-#    define BOOST_PP_ITERATION_1 179
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 179 && NDNBOOST_PP_ITERATION_START_1 >= 179
+#    define NDNBOOST_PP_ITERATION_1 179
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 178 && BOOST_PP_ITERATION_START_1 >= 178
-#    define BOOST_PP_ITERATION_1 178
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 178 && NDNBOOST_PP_ITERATION_START_1 >= 178
+#    define NDNBOOST_PP_ITERATION_1 178
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 177 && BOOST_PP_ITERATION_START_1 >= 177
-#    define BOOST_PP_ITERATION_1 177
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 177 && NDNBOOST_PP_ITERATION_START_1 >= 177
+#    define NDNBOOST_PP_ITERATION_1 177
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 176 && BOOST_PP_ITERATION_START_1 >= 176
-#    define BOOST_PP_ITERATION_1 176
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 176 && NDNBOOST_PP_ITERATION_START_1 >= 176
+#    define NDNBOOST_PP_ITERATION_1 176
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 175 && BOOST_PP_ITERATION_START_1 >= 175
-#    define BOOST_PP_ITERATION_1 175
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 175 && NDNBOOST_PP_ITERATION_START_1 >= 175
+#    define NDNBOOST_PP_ITERATION_1 175
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 174 && BOOST_PP_ITERATION_START_1 >= 174
-#    define BOOST_PP_ITERATION_1 174
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 174 && NDNBOOST_PP_ITERATION_START_1 >= 174
+#    define NDNBOOST_PP_ITERATION_1 174
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 173 && BOOST_PP_ITERATION_START_1 >= 173
-#    define BOOST_PP_ITERATION_1 173
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 173 && NDNBOOST_PP_ITERATION_START_1 >= 173
+#    define NDNBOOST_PP_ITERATION_1 173
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 172 && BOOST_PP_ITERATION_START_1 >= 172
-#    define BOOST_PP_ITERATION_1 172
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 172 && NDNBOOST_PP_ITERATION_START_1 >= 172
+#    define NDNBOOST_PP_ITERATION_1 172
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 171 && BOOST_PP_ITERATION_START_1 >= 171
-#    define BOOST_PP_ITERATION_1 171
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 171 && NDNBOOST_PP_ITERATION_START_1 >= 171
+#    define NDNBOOST_PP_ITERATION_1 171
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 170 && BOOST_PP_ITERATION_START_1 >= 170
-#    define BOOST_PP_ITERATION_1 170
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 170 && NDNBOOST_PP_ITERATION_START_1 >= 170
+#    define NDNBOOST_PP_ITERATION_1 170
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 169 && BOOST_PP_ITERATION_START_1 >= 169
-#    define BOOST_PP_ITERATION_1 169
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 169 && NDNBOOST_PP_ITERATION_START_1 >= 169
+#    define NDNBOOST_PP_ITERATION_1 169
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 168 && BOOST_PP_ITERATION_START_1 >= 168
-#    define BOOST_PP_ITERATION_1 168
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 168 && NDNBOOST_PP_ITERATION_START_1 >= 168
+#    define NDNBOOST_PP_ITERATION_1 168
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 167 && BOOST_PP_ITERATION_START_1 >= 167
-#    define BOOST_PP_ITERATION_1 167
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 167 && NDNBOOST_PP_ITERATION_START_1 >= 167
+#    define NDNBOOST_PP_ITERATION_1 167
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 166 && BOOST_PP_ITERATION_START_1 >= 166
-#    define BOOST_PP_ITERATION_1 166
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 166 && NDNBOOST_PP_ITERATION_START_1 >= 166
+#    define NDNBOOST_PP_ITERATION_1 166
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 165 && BOOST_PP_ITERATION_START_1 >= 165
-#    define BOOST_PP_ITERATION_1 165
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 165 && NDNBOOST_PP_ITERATION_START_1 >= 165
+#    define NDNBOOST_PP_ITERATION_1 165
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 164 && BOOST_PP_ITERATION_START_1 >= 164
-#    define BOOST_PP_ITERATION_1 164
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 164 && NDNBOOST_PP_ITERATION_START_1 >= 164
+#    define NDNBOOST_PP_ITERATION_1 164
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 163 && BOOST_PP_ITERATION_START_1 >= 163
-#    define BOOST_PP_ITERATION_1 163
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 163 && NDNBOOST_PP_ITERATION_START_1 >= 163
+#    define NDNBOOST_PP_ITERATION_1 163
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 162 && BOOST_PP_ITERATION_START_1 >= 162
-#    define BOOST_PP_ITERATION_1 162
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 162 && NDNBOOST_PP_ITERATION_START_1 >= 162
+#    define NDNBOOST_PP_ITERATION_1 162
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 161 && BOOST_PP_ITERATION_START_1 >= 161
-#    define BOOST_PP_ITERATION_1 161
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 161 && NDNBOOST_PP_ITERATION_START_1 >= 161
+#    define NDNBOOST_PP_ITERATION_1 161
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 160 && BOOST_PP_ITERATION_START_1 >= 160
-#    define BOOST_PP_ITERATION_1 160
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 160 && NDNBOOST_PP_ITERATION_START_1 >= 160
+#    define NDNBOOST_PP_ITERATION_1 160
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 159 && BOOST_PP_ITERATION_START_1 >= 159
-#    define BOOST_PP_ITERATION_1 159
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 159 && NDNBOOST_PP_ITERATION_START_1 >= 159
+#    define NDNBOOST_PP_ITERATION_1 159
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 158 && BOOST_PP_ITERATION_START_1 >= 158
-#    define BOOST_PP_ITERATION_1 158
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 158 && NDNBOOST_PP_ITERATION_START_1 >= 158
+#    define NDNBOOST_PP_ITERATION_1 158
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 157 && BOOST_PP_ITERATION_START_1 >= 157
-#    define BOOST_PP_ITERATION_1 157
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 157 && NDNBOOST_PP_ITERATION_START_1 >= 157
+#    define NDNBOOST_PP_ITERATION_1 157
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 156 && BOOST_PP_ITERATION_START_1 >= 156
-#    define BOOST_PP_ITERATION_1 156
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 156 && NDNBOOST_PP_ITERATION_START_1 >= 156
+#    define NDNBOOST_PP_ITERATION_1 156
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 155 && BOOST_PP_ITERATION_START_1 >= 155
-#    define BOOST_PP_ITERATION_1 155
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 155 && NDNBOOST_PP_ITERATION_START_1 >= 155
+#    define NDNBOOST_PP_ITERATION_1 155
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 154 && BOOST_PP_ITERATION_START_1 >= 154
-#    define BOOST_PP_ITERATION_1 154
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 154 && NDNBOOST_PP_ITERATION_START_1 >= 154
+#    define NDNBOOST_PP_ITERATION_1 154
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 153 && BOOST_PP_ITERATION_START_1 >= 153
-#    define BOOST_PP_ITERATION_1 153
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 153 && NDNBOOST_PP_ITERATION_START_1 >= 153
+#    define NDNBOOST_PP_ITERATION_1 153
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 152 && BOOST_PP_ITERATION_START_1 >= 152
-#    define BOOST_PP_ITERATION_1 152
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 152 && NDNBOOST_PP_ITERATION_START_1 >= 152
+#    define NDNBOOST_PP_ITERATION_1 152
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 151 && BOOST_PP_ITERATION_START_1 >= 151
-#    define BOOST_PP_ITERATION_1 151
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 151 && NDNBOOST_PP_ITERATION_START_1 >= 151
+#    define NDNBOOST_PP_ITERATION_1 151
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 150 && BOOST_PP_ITERATION_START_1 >= 150
-#    define BOOST_PP_ITERATION_1 150
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 150 && NDNBOOST_PP_ITERATION_START_1 >= 150
+#    define NDNBOOST_PP_ITERATION_1 150
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 149 && BOOST_PP_ITERATION_START_1 >= 149
-#    define BOOST_PP_ITERATION_1 149
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 149 && NDNBOOST_PP_ITERATION_START_1 >= 149
+#    define NDNBOOST_PP_ITERATION_1 149
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 148 && BOOST_PP_ITERATION_START_1 >= 148
-#    define BOOST_PP_ITERATION_1 148
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 148 && NDNBOOST_PP_ITERATION_START_1 >= 148
+#    define NDNBOOST_PP_ITERATION_1 148
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 147 && BOOST_PP_ITERATION_START_1 >= 147
-#    define BOOST_PP_ITERATION_1 147
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 147 && NDNBOOST_PP_ITERATION_START_1 >= 147
+#    define NDNBOOST_PP_ITERATION_1 147
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 146 && BOOST_PP_ITERATION_START_1 >= 146
-#    define BOOST_PP_ITERATION_1 146
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 146 && NDNBOOST_PP_ITERATION_START_1 >= 146
+#    define NDNBOOST_PP_ITERATION_1 146
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 145 && BOOST_PP_ITERATION_START_1 >= 145
-#    define BOOST_PP_ITERATION_1 145
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 145 && NDNBOOST_PP_ITERATION_START_1 >= 145
+#    define NDNBOOST_PP_ITERATION_1 145
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 144 && BOOST_PP_ITERATION_START_1 >= 144
-#    define BOOST_PP_ITERATION_1 144
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 144 && NDNBOOST_PP_ITERATION_START_1 >= 144
+#    define NDNBOOST_PP_ITERATION_1 144
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 143 && BOOST_PP_ITERATION_START_1 >= 143
-#    define BOOST_PP_ITERATION_1 143
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 143 && NDNBOOST_PP_ITERATION_START_1 >= 143
+#    define NDNBOOST_PP_ITERATION_1 143
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 142 && BOOST_PP_ITERATION_START_1 >= 142
-#    define BOOST_PP_ITERATION_1 142
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 142 && NDNBOOST_PP_ITERATION_START_1 >= 142
+#    define NDNBOOST_PP_ITERATION_1 142
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 141 && BOOST_PP_ITERATION_START_1 >= 141
-#    define BOOST_PP_ITERATION_1 141
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 141 && NDNBOOST_PP_ITERATION_START_1 >= 141
+#    define NDNBOOST_PP_ITERATION_1 141
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 140 && BOOST_PP_ITERATION_START_1 >= 140
-#    define BOOST_PP_ITERATION_1 140
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 140 && NDNBOOST_PP_ITERATION_START_1 >= 140
+#    define NDNBOOST_PP_ITERATION_1 140
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 139 && BOOST_PP_ITERATION_START_1 >= 139
-#    define BOOST_PP_ITERATION_1 139
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 139 && NDNBOOST_PP_ITERATION_START_1 >= 139
+#    define NDNBOOST_PP_ITERATION_1 139
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 138 && BOOST_PP_ITERATION_START_1 >= 138
-#    define BOOST_PP_ITERATION_1 138
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 138 && NDNBOOST_PP_ITERATION_START_1 >= 138
+#    define NDNBOOST_PP_ITERATION_1 138
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 137 && BOOST_PP_ITERATION_START_1 >= 137
-#    define BOOST_PP_ITERATION_1 137
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 137 && NDNBOOST_PP_ITERATION_START_1 >= 137
+#    define NDNBOOST_PP_ITERATION_1 137
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 136 && BOOST_PP_ITERATION_START_1 >= 136
-#    define BOOST_PP_ITERATION_1 136
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 136 && NDNBOOST_PP_ITERATION_START_1 >= 136
+#    define NDNBOOST_PP_ITERATION_1 136
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 135 && BOOST_PP_ITERATION_START_1 >= 135
-#    define BOOST_PP_ITERATION_1 135
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 135 && NDNBOOST_PP_ITERATION_START_1 >= 135
+#    define NDNBOOST_PP_ITERATION_1 135
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 134 && BOOST_PP_ITERATION_START_1 >= 134
-#    define BOOST_PP_ITERATION_1 134
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 134 && NDNBOOST_PP_ITERATION_START_1 >= 134
+#    define NDNBOOST_PP_ITERATION_1 134
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 133 && BOOST_PP_ITERATION_START_1 >= 133
-#    define BOOST_PP_ITERATION_1 133
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 133 && NDNBOOST_PP_ITERATION_START_1 >= 133
+#    define NDNBOOST_PP_ITERATION_1 133
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 132 && BOOST_PP_ITERATION_START_1 >= 132
-#    define BOOST_PP_ITERATION_1 132
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 132 && NDNBOOST_PP_ITERATION_START_1 >= 132
+#    define NDNBOOST_PP_ITERATION_1 132
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 131 && BOOST_PP_ITERATION_START_1 >= 131
-#    define BOOST_PP_ITERATION_1 131
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 131 && NDNBOOST_PP_ITERATION_START_1 >= 131
+#    define NDNBOOST_PP_ITERATION_1 131
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 130 && BOOST_PP_ITERATION_START_1 >= 130
-#    define BOOST_PP_ITERATION_1 130
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 130 && NDNBOOST_PP_ITERATION_START_1 >= 130
+#    define NDNBOOST_PP_ITERATION_1 130
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 129 && BOOST_PP_ITERATION_START_1 >= 129
-#    define BOOST_PP_ITERATION_1 129
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 129 && NDNBOOST_PP_ITERATION_START_1 >= 129
+#    define NDNBOOST_PP_ITERATION_1 129
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 128 && BOOST_PP_ITERATION_START_1 >= 128
-#    define BOOST_PP_ITERATION_1 128
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 128 && NDNBOOST_PP_ITERATION_START_1 >= 128
+#    define NDNBOOST_PP_ITERATION_1 128
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 127 && BOOST_PP_ITERATION_START_1 >= 127
-#    define BOOST_PP_ITERATION_1 127
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 127 && NDNBOOST_PP_ITERATION_START_1 >= 127
+#    define NDNBOOST_PP_ITERATION_1 127
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 126 && BOOST_PP_ITERATION_START_1 >= 126
-#    define BOOST_PP_ITERATION_1 126
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 126 && NDNBOOST_PP_ITERATION_START_1 >= 126
+#    define NDNBOOST_PP_ITERATION_1 126
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 125 && BOOST_PP_ITERATION_START_1 >= 125
-#    define BOOST_PP_ITERATION_1 125
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 125 && NDNBOOST_PP_ITERATION_START_1 >= 125
+#    define NDNBOOST_PP_ITERATION_1 125
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 124 && BOOST_PP_ITERATION_START_1 >= 124
-#    define BOOST_PP_ITERATION_1 124
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 124 && NDNBOOST_PP_ITERATION_START_1 >= 124
+#    define NDNBOOST_PP_ITERATION_1 124
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 123 && BOOST_PP_ITERATION_START_1 >= 123
-#    define BOOST_PP_ITERATION_1 123
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 123 && NDNBOOST_PP_ITERATION_START_1 >= 123
+#    define NDNBOOST_PP_ITERATION_1 123
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 122 && BOOST_PP_ITERATION_START_1 >= 122
-#    define BOOST_PP_ITERATION_1 122
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 122 && NDNBOOST_PP_ITERATION_START_1 >= 122
+#    define NDNBOOST_PP_ITERATION_1 122
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 121 && BOOST_PP_ITERATION_START_1 >= 121
-#    define BOOST_PP_ITERATION_1 121
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 121 && NDNBOOST_PP_ITERATION_START_1 >= 121
+#    define NDNBOOST_PP_ITERATION_1 121
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 120 && BOOST_PP_ITERATION_START_1 >= 120
-#    define BOOST_PP_ITERATION_1 120
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 120 && NDNBOOST_PP_ITERATION_START_1 >= 120
+#    define NDNBOOST_PP_ITERATION_1 120
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 119 && BOOST_PP_ITERATION_START_1 >= 119
-#    define BOOST_PP_ITERATION_1 119
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 119 && NDNBOOST_PP_ITERATION_START_1 >= 119
+#    define NDNBOOST_PP_ITERATION_1 119
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 118 && BOOST_PP_ITERATION_START_1 >= 118
-#    define BOOST_PP_ITERATION_1 118
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 118 && NDNBOOST_PP_ITERATION_START_1 >= 118
+#    define NDNBOOST_PP_ITERATION_1 118
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 117 && BOOST_PP_ITERATION_START_1 >= 117
-#    define BOOST_PP_ITERATION_1 117
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 117 && NDNBOOST_PP_ITERATION_START_1 >= 117
+#    define NDNBOOST_PP_ITERATION_1 117
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 116 && BOOST_PP_ITERATION_START_1 >= 116
-#    define BOOST_PP_ITERATION_1 116
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 116 && NDNBOOST_PP_ITERATION_START_1 >= 116
+#    define NDNBOOST_PP_ITERATION_1 116
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 115 && BOOST_PP_ITERATION_START_1 >= 115
-#    define BOOST_PP_ITERATION_1 115
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 115 && NDNBOOST_PP_ITERATION_START_1 >= 115
+#    define NDNBOOST_PP_ITERATION_1 115
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 114 && BOOST_PP_ITERATION_START_1 >= 114
-#    define BOOST_PP_ITERATION_1 114
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 114 && NDNBOOST_PP_ITERATION_START_1 >= 114
+#    define NDNBOOST_PP_ITERATION_1 114
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 113 && BOOST_PP_ITERATION_START_1 >= 113
-#    define BOOST_PP_ITERATION_1 113
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 113 && NDNBOOST_PP_ITERATION_START_1 >= 113
+#    define NDNBOOST_PP_ITERATION_1 113
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 112 && BOOST_PP_ITERATION_START_1 >= 112
-#    define BOOST_PP_ITERATION_1 112
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 112 && NDNBOOST_PP_ITERATION_START_1 >= 112
+#    define NDNBOOST_PP_ITERATION_1 112
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 111 && BOOST_PP_ITERATION_START_1 >= 111
-#    define BOOST_PP_ITERATION_1 111
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 111 && NDNBOOST_PP_ITERATION_START_1 >= 111
+#    define NDNBOOST_PP_ITERATION_1 111
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 110 && BOOST_PP_ITERATION_START_1 >= 110
-#    define BOOST_PP_ITERATION_1 110
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 110 && NDNBOOST_PP_ITERATION_START_1 >= 110
+#    define NDNBOOST_PP_ITERATION_1 110
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 109 && BOOST_PP_ITERATION_START_1 >= 109
-#    define BOOST_PP_ITERATION_1 109
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 109 && NDNBOOST_PP_ITERATION_START_1 >= 109
+#    define NDNBOOST_PP_ITERATION_1 109
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 108 && BOOST_PP_ITERATION_START_1 >= 108
-#    define BOOST_PP_ITERATION_1 108
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 108 && NDNBOOST_PP_ITERATION_START_1 >= 108
+#    define NDNBOOST_PP_ITERATION_1 108
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 107 && BOOST_PP_ITERATION_START_1 >= 107
-#    define BOOST_PP_ITERATION_1 107
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 107 && NDNBOOST_PP_ITERATION_START_1 >= 107
+#    define NDNBOOST_PP_ITERATION_1 107
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 106 && BOOST_PP_ITERATION_START_1 >= 106
-#    define BOOST_PP_ITERATION_1 106
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 106 && NDNBOOST_PP_ITERATION_START_1 >= 106
+#    define NDNBOOST_PP_ITERATION_1 106
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 105 && BOOST_PP_ITERATION_START_1 >= 105
-#    define BOOST_PP_ITERATION_1 105
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 105 && NDNBOOST_PP_ITERATION_START_1 >= 105
+#    define NDNBOOST_PP_ITERATION_1 105
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 104 && BOOST_PP_ITERATION_START_1 >= 104
-#    define BOOST_PP_ITERATION_1 104
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 104 && NDNBOOST_PP_ITERATION_START_1 >= 104
+#    define NDNBOOST_PP_ITERATION_1 104
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 103 && BOOST_PP_ITERATION_START_1 >= 103
-#    define BOOST_PP_ITERATION_1 103
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 103 && NDNBOOST_PP_ITERATION_START_1 >= 103
+#    define NDNBOOST_PP_ITERATION_1 103
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 102 && BOOST_PP_ITERATION_START_1 >= 102
-#    define BOOST_PP_ITERATION_1 102
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 102 && NDNBOOST_PP_ITERATION_START_1 >= 102
+#    define NDNBOOST_PP_ITERATION_1 102
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 101 && BOOST_PP_ITERATION_START_1 >= 101
-#    define BOOST_PP_ITERATION_1 101
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 101 && NDNBOOST_PP_ITERATION_START_1 >= 101
+#    define NDNBOOST_PP_ITERATION_1 101
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 100 && BOOST_PP_ITERATION_START_1 >= 100
-#    define BOOST_PP_ITERATION_1 100
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 100 && NDNBOOST_PP_ITERATION_START_1 >= 100
+#    define NDNBOOST_PP_ITERATION_1 100
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 99 && BOOST_PP_ITERATION_START_1 >= 99
-#    define BOOST_PP_ITERATION_1 99
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 99 && NDNBOOST_PP_ITERATION_START_1 >= 99
+#    define NDNBOOST_PP_ITERATION_1 99
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 98 && BOOST_PP_ITERATION_START_1 >= 98
-#    define BOOST_PP_ITERATION_1 98
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 98 && NDNBOOST_PP_ITERATION_START_1 >= 98
+#    define NDNBOOST_PP_ITERATION_1 98
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 97 && BOOST_PP_ITERATION_START_1 >= 97
-#    define BOOST_PP_ITERATION_1 97
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 97 && NDNBOOST_PP_ITERATION_START_1 >= 97
+#    define NDNBOOST_PP_ITERATION_1 97
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 96 && BOOST_PP_ITERATION_START_1 >= 96
-#    define BOOST_PP_ITERATION_1 96
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 96 && NDNBOOST_PP_ITERATION_START_1 >= 96
+#    define NDNBOOST_PP_ITERATION_1 96
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 95 && BOOST_PP_ITERATION_START_1 >= 95
-#    define BOOST_PP_ITERATION_1 95
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 95 && NDNBOOST_PP_ITERATION_START_1 >= 95
+#    define NDNBOOST_PP_ITERATION_1 95
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 94 && BOOST_PP_ITERATION_START_1 >= 94
-#    define BOOST_PP_ITERATION_1 94
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 94 && NDNBOOST_PP_ITERATION_START_1 >= 94
+#    define NDNBOOST_PP_ITERATION_1 94
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 93 && BOOST_PP_ITERATION_START_1 >= 93
-#    define BOOST_PP_ITERATION_1 93
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 93 && NDNBOOST_PP_ITERATION_START_1 >= 93
+#    define NDNBOOST_PP_ITERATION_1 93
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 92 && BOOST_PP_ITERATION_START_1 >= 92
-#    define BOOST_PP_ITERATION_1 92
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 92 && NDNBOOST_PP_ITERATION_START_1 >= 92
+#    define NDNBOOST_PP_ITERATION_1 92
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 91 && BOOST_PP_ITERATION_START_1 >= 91
-#    define BOOST_PP_ITERATION_1 91
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 91 && NDNBOOST_PP_ITERATION_START_1 >= 91
+#    define NDNBOOST_PP_ITERATION_1 91
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 90 && BOOST_PP_ITERATION_START_1 >= 90
-#    define BOOST_PP_ITERATION_1 90
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 90 && NDNBOOST_PP_ITERATION_START_1 >= 90
+#    define NDNBOOST_PP_ITERATION_1 90
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 89 && BOOST_PP_ITERATION_START_1 >= 89
-#    define BOOST_PP_ITERATION_1 89
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 89 && NDNBOOST_PP_ITERATION_START_1 >= 89
+#    define NDNBOOST_PP_ITERATION_1 89
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 88 && BOOST_PP_ITERATION_START_1 >= 88
-#    define BOOST_PP_ITERATION_1 88
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 88 && NDNBOOST_PP_ITERATION_START_1 >= 88
+#    define NDNBOOST_PP_ITERATION_1 88
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 87 && BOOST_PP_ITERATION_START_1 >= 87
-#    define BOOST_PP_ITERATION_1 87
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 87 && NDNBOOST_PP_ITERATION_START_1 >= 87
+#    define NDNBOOST_PP_ITERATION_1 87
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 86 && BOOST_PP_ITERATION_START_1 >= 86
-#    define BOOST_PP_ITERATION_1 86
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 86 && NDNBOOST_PP_ITERATION_START_1 >= 86
+#    define NDNBOOST_PP_ITERATION_1 86
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 85 && BOOST_PP_ITERATION_START_1 >= 85
-#    define BOOST_PP_ITERATION_1 85
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 85 && NDNBOOST_PP_ITERATION_START_1 >= 85
+#    define NDNBOOST_PP_ITERATION_1 85
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 84 && BOOST_PP_ITERATION_START_1 >= 84
-#    define BOOST_PP_ITERATION_1 84
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 84 && NDNBOOST_PP_ITERATION_START_1 >= 84
+#    define NDNBOOST_PP_ITERATION_1 84
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 83 && BOOST_PP_ITERATION_START_1 >= 83
-#    define BOOST_PP_ITERATION_1 83
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 83 && NDNBOOST_PP_ITERATION_START_1 >= 83
+#    define NDNBOOST_PP_ITERATION_1 83
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 82 && BOOST_PP_ITERATION_START_1 >= 82
-#    define BOOST_PP_ITERATION_1 82
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 82 && NDNBOOST_PP_ITERATION_START_1 >= 82
+#    define NDNBOOST_PP_ITERATION_1 82
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 81 && BOOST_PP_ITERATION_START_1 >= 81
-#    define BOOST_PP_ITERATION_1 81
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 81 && NDNBOOST_PP_ITERATION_START_1 >= 81
+#    define NDNBOOST_PP_ITERATION_1 81
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 80 && BOOST_PP_ITERATION_START_1 >= 80
-#    define BOOST_PP_ITERATION_1 80
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 80 && NDNBOOST_PP_ITERATION_START_1 >= 80
+#    define NDNBOOST_PP_ITERATION_1 80
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 79 && BOOST_PP_ITERATION_START_1 >= 79
-#    define BOOST_PP_ITERATION_1 79
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 79 && NDNBOOST_PP_ITERATION_START_1 >= 79
+#    define NDNBOOST_PP_ITERATION_1 79
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 78 && BOOST_PP_ITERATION_START_1 >= 78
-#    define BOOST_PP_ITERATION_1 78
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 78 && NDNBOOST_PP_ITERATION_START_1 >= 78
+#    define NDNBOOST_PP_ITERATION_1 78
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 77 && BOOST_PP_ITERATION_START_1 >= 77
-#    define BOOST_PP_ITERATION_1 77
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 77 && NDNBOOST_PP_ITERATION_START_1 >= 77
+#    define NDNBOOST_PP_ITERATION_1 77
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 76 && BOOST_PP_ITERATION_START_1 >= 76
-#    define BOOST_PP_ITERATION_1 76
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 76 && NDNBOOST_PP_ITERATION_START_1 >= 76
+#    define NDNBOOST_PP_ITERATION_1 76
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 75 && BOOST_PP_ITERATION_START_1 >= 75
-#    define BOOST_PP_ITERATION_1 75
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 75 && NDNBOOST_PP_ITERATION_START_1 >= 75
+#    define NDNBOOST_PP_ITERATION_1 75
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 74 && BOOST_PP_ITERATION_START_1 >= 74
-#    define BOOST_PP_ITERATION_1 74
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 74 && NDNBOOST_PP_ITERATION_START_1 >= 74
+#    define NDNBOOST_PP_ITERATION_1 74
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 73 && BOOST_PP_ITERATION_START_1 >= 73
-#    define BOOST_PP_ITERATION_1 73
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 73 && NDNBOOST_PP_ITERATION_START_1 >= 73
+#    define NDNBOOST_PP_ITERATION_1 73
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 72 && BOOST_PP_ITERATION_START_1 >= 72
-#    define BOOST_PP_ITERATION_1 72
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 72 && NDNBOOST_PP_ITERATION_START_1 >= 72
+#    define NDNBOOST_PP_ITERATION_1 72
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 71 && BOOST_PP_ITERATION_START_1 >= 71
-#    define BOOST_PP_ITERATION_1 71
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 71 && NDNBOOST_PP_ITERATION_START_1 >= 71
+#    define NDNBOOST_PP_ITERATION_1 71
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 70 && BOOST_PP_ITERATION_START_1 >= 70
-#    define BOOST_PP_ITERATION_1 70
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 70 && NDNBOOST_PP_ITERATION_START_1 >= 70
+#    define NDNBOOST_PP_ITERATION_1 70
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 69 && BOOST_PP_ITERATION_START_1 >= 69
-#    define BOOST_PP_ITERATION_1 69
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 69 && NDNBOOST_PP_ITERATION_START_1 >= 69
+#    define NDNBOOST_PP_ITERATION_1 69
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 68 && BOOST_PP_ITERATION_START_1 >= 68
-#    define BOOST_PP_ITERATION_1 68
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 68 && NDNBOOST_PP_ITERATION_START_1 >= 68
+#    define NDNBOOST_PP_ITERATION_1 68
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 67 && BOOST_PP_ITERATION_START_1 >= 67
-#    define BOOST_PP_ITERATION_1 67
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 67 && NDNBOOST_PP_ITERATION_START_1 >= 67
+#    define NDNBOOST_PP_ITERATION_1 67
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 66 && BOOST_PP_ITERATION_START_1 >= 66
-#    define BOOST_PP_ITERATION_1 66
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 66 && NDNBOOST_PP_ITERATION_START_1 >= 66
+#    define NDNBOOST_PP_ITERATION_1 66
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 65 && BOOST_PP_ITERATION_START_1 >= 65
-#    define BOOST_PP_ITERATION_1 65
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 65 && NDNBOOST_PP_ITERATION_START_1 >= 65
+#    define NDNBOOST_PP_ITERATION_1 65
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 64 && BOOST_PP_ITERATION_START_1 >= 64
-#    define BOOST_PP_ITERATION_1 64
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 64 && NDNBOOST_PP_ITERATION_START_1 >= 64
+#    define NDNBOOST_PP_ITERATION_1 64
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 63 && BOOST_PP_ITERATION_START_1 >= 63
-#    define BOOST_PP_ITERATION_1 63
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 63 && NDNBOOST_PP_ITERATION_START_1 >= 63
+#    define NDNBOOST_PP_ITERATION_1 63
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 62 && BOOST_PP_ITERATION_START_1 >= 62
-#    define BOOST_PP_ITERATION_1 62
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 62 && NDNBOOST_PP_ITERATION_START_1 >= 62
+#    define NDNBOOST_PP_ITERATION_1 62
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 61 && BOOST_PP_ITERATION_START_1 >= 61
-#    define BOOST_PP_ITERATION_1 61
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 61 && NDNBOOST_PP_ITERATION_START_1 >= 61
+#    define NDNBOOST_PP_ITERATION_1 61
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 60 && BOOST_PP_ITERATION_START_1 >= 60
-#    define BOOST_PP_ITERATION_1 60
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 60 && NDNBOOST_PP_ITERATION_START_1 >= 60
+#    define NDNBOOST_PP_ITERATION_1 60
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 59 && BOOST_PP_ITERATION_START_1 >= 59
-#    define BOOST_PP_ITERATION_1 59
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 59 && NDNBOOST_PP_ITERATION_START_1 >= 59
+#    define NDNBOOST_PP_ITERATION_1 59
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 58 && BOOST_PP_ITERATION_START_1 >= 58
-#    define BOOST_PP_ITERATION_1 58
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 58 && NDNBOOST_PP_ITERATION_START_1 >= 58
+#    define NDNBOOST_PP_ITERATION_1 58
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 57 && BOOST_PP_ITERATION_START_1 >= 57
-#    define BOOST_PP_ITERATION_1 57
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 57 && NDNBOOST_PP_ITERATION_START_1 >= 57
+#    define NDNBOOST_PP_ITERATION_1 57
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 56 && BOOST_PP_ITERATION_START_1 >= 56
-#    define BOOST_PP_ITERATION_1 56
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 56 && NDNBOOST_PP_ITERATION_START_1 >= 56
+#    define NDNBOOST_PP_ITERATION_1 56
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 55 && BOOST_PP_ITERATION_START_1 >= 55
-#    define BOOST_PP_ITERATION_1 55
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 55 && NDNBOOST_PP_ITERATION_START_1 >= 55
+#    define NDNBOOST_PP_ITERATION_1 55
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 54 && BOOST_PP_ITERATION_START_1 >= 54
-#    define BOOST_PP_ITERATION_1 54
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 54 && NDNBOOST_PP_ITERATION_START_1 >= 54
+#    define NDNBOOST_PP_ITERATION_1 54
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 53 && BOOST_PP_ITERATION_START_1 >= 53
-#    define BOOST_PP_ITERATION_1 53
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 53 && NDNBOOST_PP_ITERATION_START_1 >= 53
+#    define NDNBOOST_PP_ITERATION_1 53
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 52 && BOOST_PP_ITERATION_START_1 >= 52
-#    define BOOST_PP_ITERATION_1 52
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 52 && NDNBOOST_PP_ITERATION_START_1 >= 52
+#    define NDNBOOST_PP_ITERATION_1 52
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 51 && BOOST_PP_ITERATION_START_1 >= 51
-#    define BOOST_PP_ITERATION_1 51
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 51 && NDNBOOST_PP_ITERATION_START_1 >= 51
+#    define NDNBOOST_PP_ITERATION_1 51
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 50 && BOOST_PP_ITERATION_START_1 >= 50
-#    define BOOST_PP_ITERATION_1 50
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 50 && NDNBOOST_PP_ITERATION_START_1 >= 50
+#    define NDNBOOST_PP_ITERATION_1 50
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 49 && BOOST_PP_ITERATION_START_1 >= 49
-#    define BOOST_PP_ITERATION_1 49
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 49 && NDNBOOST_PP_ITERATION_START_1 >= 49
+#    define NDNBOOST_PP_ITERATION_1 49
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 48 && BOOST_PP_ITERATION_START_1 >= 48
-#    define BOOST_PP_ITERATION_1 48
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 48 && NDNBOOST_PP_ITERATION_START_1 >= 48
+#    define NDNBOOST_PP_ITERATION_1 48
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 47 && BOOST_PP_ITERATION_START_1 >= 47
-#    define BOOST_PP_ITERATION_1 47
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 47 && NDNBOOST_PP_ITERATION_START_1 >= 47
+#    define NDNBOOST_PP_ITERATION_1 47
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 46 && BOOST_PP_ITERATION_START_1 >= 46
-#    define BOOST_PP_ITERATION_1 46
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 46 && NDNBOOST_PP_ITERATION_START_1 >= 46
+#    define NDNBOOST_PP_ITERATION_1 46
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 45 && BOOST_PP_ITERATION_START_1 >= 45
-#    define BOOST_PP_ITERATION_1 45
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 45 && NDNBOOST_PP_ITERATION_START_1 >= 45
+#    define NDNBOOST_PP_ITERATION_1 45
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 44 && BOOST_PP_ITERATION_START_1 >= 44
-#    define BOOST_PP_ITERATION_1 44
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 44 && NDNBOOST_PP_ITERATION_START_1 >= 44
+#    define NDNBOOST_PP_ITERATION_1 44
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 43 && BOOST_PP_ITERATION_START_1 >= 43
-#    define BOOST_PP_ITERATION_1 43
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 43 && NDNBOOST_PP_ITERATION_START_1 >= 43
+#    define NDNBOOST_PP_ITERATION_1 43
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 42 && BOOST_PP_ITERATION_START_1 >= 42
-#    define BOOST_PP_ITERATION_1 42
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 42 && NDNBOOST_PP_ITERATION_START_1 >= 42
+#    define NDNBOOST_PP_ITERATION_1 42
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 41 && BOOST_PP_ITERATION_START_1 >= 41
-#    define BOOST_PP_ITERATION_1 41
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 41 && NDNBOOST_PP_ITERATION_START_1 >= 41
+#    define NDNBOOST_PP_ITERATION_1 41
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 40 && BOOST_PP_ITERATION_START_1 >= 40
-#    define BOOST_PP_ITERATION_1 40
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 40 && NDNBOOST_PP_ITERATION_START_1 >= 40
+#    define NDNBOOST_PP_ITERATION_1 40
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 39 && BOOST_PP_ITERATION_START_1 >= 39
-#    define BOOST_PP_ITERATION_1 39
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 39 && NDNBOOST_PP_ITERATION_START_1 >= 39
+#    define NDNBOOST_PP_ITERATION_1 39
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 38 && BOOST_PP_ITERATION_START_1 >= 38
-#    define BOOST_PP_ITERATION_1 38
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 38 && NDNBOOST_PP_ITERATION_START_1 >= 38
+#    define NDNBOOST_PP_ITERATION_1 38
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 37 && BOOST_PP_ITERATION_START_1 >= 37
-#    define BOOST_PP_ITERATION_1 37
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 37 && NDNBOOST_PP_ITERATION_START_1 >= 37
+#    define NDNBOOST_PP_ITERATION_1 37
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 36 && BOOST_PP_ITERATION_START_1 >= 36
-#    define BOOST_PP_ITERATION_1 36
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 36 && NDNBOOST_PP_ITERATION_START_1 >= 36
+#    define NDNBOOST_PP_ITERATION_1 36
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 35 && BOOST_PP_ITERATION_START_1 >= 35
-#    define BOOST_PP_ITERATION_1 35
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 35 && NDNBOOST_PP_ITERATION_START_1 >= 35
+#    define NDNBOOST_PP_ITERATION_1 35
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 34 && BOOST_PP_ITERATION_START_1 >= 34
-#    define BOOST_PP_ITERATION_1 34
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 34 && NDNBOOST_PP_ITERATION_START_1 >= 34
+#    define NDNBOOST_PP_ITERATION_1 34
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 33 && BOOST_PP_ITERATION_START_1 >= 33
-#    define BOOST_PP_ITERATION_1 33
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 33 && NDNBOOST_PP_ITERATION_START_1 >= 33
+#    define NDNBOOST_PP_ITERATION_1 33
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 32 && BOOST_PP_ITERATION_START_1 >= 32
-#    define BOOST_PP_ITERATION_1 32
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 32 && NDNBOOST_PP_ITERATION_START_1 >= 32
+#    define NDNBOOST_PP_ITERATION_1 32
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 31 && BOOST_PP_ITERATION_START_1 >= 31
-#    define BOOST_PP_ITERATION_1 31
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 31 && NDNBOOST_PP_ITERATION_START_1 >= 31
+#    define NDNBOOST_PP_ITERATION_1 31
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 30 && BOOST_PP_ITERATION_START_1 >= 30
-#    define BOOST_PP_ITERATION_1 30
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 30 && NDNBOOST_PP_ITERATION_START_1 >= 30
+#    define NDNBOOST_PP_ITERATION_1 30
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 29 && BOOST_PP_ITERATION_START_1 >= 29
-#    define BOOST_PP_ITERATION_1 29
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 29 && NDNBOOST_PP_ITERATION_START_1 >= 29
+#    define NDNBOOST_PP_ITERATION_1 29
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 28 && BOOST_PP_ITERATION_START_1 >= 28
-#    define BOOST_PP_ITERATION_1 28
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 28 && NDNBOOST_PP_ITERATION_START_1 >= 28
+#    define NDNBOOST_PP_ITERATION_1 28
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 27 && BOOST_PP_ITERATION_START_1 >= 27
-#    define BOOST_PP_ITERATION_1 27
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 27 && NDNBOOST_PP_ITERATION_START_1 >= 27
+#    define NDNBOOST_PP_ITERATION_1 27
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 26 && BOOST_PP_ITERATION_START_1 >= 26
-#    define BOOST_PP_ITERATION_1 26
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 26 && NDNBOOST_PP_ITERATION_START_1 >= 26
+#    define NDNBOOST_PP_ITERATION_1 26
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 25 && BOOST_PP_ITERATION_START_1 >= 25
-#    define BOOST_PP_ITERATION_1 25
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 25 && NDNBOOST_PP_ITERATION_START_1 >= 25
+#    define NDNBOOST_PP_ITERATION_1 25
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 24 && BOOST_PP_ITERATION_START_1 >= 24
-#    define BOOST_PP_ITERATION_1 24
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 24 && NDNBOOST_PP_ITERATION_START_1 >= 24
+#    define NDNBOOST_PP_ITERATION_1 24
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 23 && BOOST_PP_ITERATION_START_1 >= 23
-#    define BOOST_PP_ITERATION_1 23
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 23 && NDNBOOST_PP_ITERATION_START_1 >= 23
+#    define NDNBOOST_PP_ITERATION_1 23
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 22 && BOOST_PP_ITERATION_START_1 >= 22
-#    define BOOST_PP_ITERATION_1 22
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 22 && NDNBOOST_PP_ITERATION_START_1 >= 22
+#    define NDNBOOST_PP_ITERATION_1 22
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 21 && BOOST_PP_ITERATION_START_1 >= 21
-#    define BOOST_PP_ITERATION_1 21
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 21 && NDNBOOST_PP_ITERATION_START_1 >= 21
+#    define NDNBOOST_PP_ITERATION_1 21
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 20 && BOOST_PP_ITERATION_START_1 >= 20
-#    define BOOST_PP_ITERATION_1 20
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 20 && NDNBOOST_PP_ITERATION_START_1 >= 20
+#    define NDNBOOST_PP_ITERATION_1 20
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 19 && BOOST_PP_ITERATION_START_1 >= 19
-#    define BOOST_PP_ITERATION_1 19
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 19 && NDNBOOST_PP_ITERATION_START_1 >= 19
+#    define NDNBOOST_PP_ITERATION_1 19
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 18 && BOOST_PP_ITERATION_START_1 >= 18
-#    define BOOST_PP_ITERATION_1 18
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 18 && NDNBOOST_PP_ITERATION_START_1 >= 18
+#    define NDNBOOST_PP_ITERATION_1 18
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 17 && BOOST_PP_ITERATION_START_1 >= 17
-#    define BOOST_PP_ITERATION_1 17
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 17 && NDNBOOST_PP_ITERATION_START_1 >= 17
+#    define NDNBOOST_PP_ITERATION_1 17
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 16 && BOOST_PP_ITERATION_START_1 >= 16
-#    define BOOST_PP_ITERATION_1 16
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 16 && NDNBOOST_PP_ITERATION_START_1 >= 16
+#    define NDNBOOST_PP_ITERATION_1 16
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 15 && BOOST_PP_ITERATION_START_1 >= 15
-#    define BOOST_PP_ITERATION_1 15
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 15 && NDNBOOST_PP_ITERATION_START_1 >= 15
+#    define NDNBOOST_PP_ITERATION_1 15
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 14 && BOOST_PP_ITERATION_START_1 >= 14
-#    define BOOST_PP_ITERATION_1 14
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 14 && NDNBOOST_PP_ITERATION_START_1 >= 14
+#    define NDNBOOST_PP_ITERATION_1 14
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 13 && BOOST_PP_ITERATION_START_1 >= 13
-#    define BOOST_PP_ITERATION_1 13
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 13 && NDNBOOST_PP_ITERATION_START_1 >= 13
+#    define NDNBOOST_PP_ITERATION_1 13
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 12 && BOOST_PP_ITERATION_START_1 >= 12
-#    define BOOST_PP_ITERATION_1 12
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 12 && NDNBOOST_PP_ITERATION_START_1 >= 12
+#    define NDNBOOST_PP_ITERATION_1 12
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 11 && BOOST_PP_ITERATION_START_1 >= 11
-#    define BOOST_PP_ITERATION_1 11
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 11 && NDNBOOST_PP_ITERATION_START_1 >= 11
+#    define NDNBOOST_PP_ITERATION_1 11
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 10 && BOOST_PP_ITERATION_START_1 >= 10
-#    define BOOST_PP_ITERATION_1 10
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 10 && NDNBOOST_PP_ITERATION_START_1 >= 10
+#    define NDNBOOST_PP_ITERATION_1 10
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 9 && BOOST_PP_ITERATION_START_1 >= 9
-#    define BOOST_PP_ITERATION_1 9
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 9 && NDNBOOST_PP_ITERATION_START_1 >= 9
+#    define NDNBOOST_PP_ITERATION_1 9
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 8 && BOOST_PP_ITERATION_START_1 >= 8
-#    define BOOST_PP_ITERATION_1 8
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 8 && NDNBOOST_PP_ITERATION_START_1 >= 8
+#    define NDNBOOST_PP_ITERATION_1 8
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 7 && BOOST_PP_ITERATION_START_1 >= 7
-#    define BOOST_PP_ITERATION_1 7
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 7 && NDNBOOST_PP_ITERATION_START_1 >= 7
+#    define NDNBOOST_PP_ITERATION_1 7
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 6 && BOOST_PP_ITERATION_START_1 >= 6
-#    define BOOST_PP_ITERATION_1 6
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 6 && NDNBOOST_PP_ITERATION_START_1 >= 6
+#    define NDNBOOST_PP_ITERATION_1 6
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 5 && BOOST_PP_ITERATION_START_1 >= 5
-#    define BOOST_PP_ITERATION_1 5
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 5 && NDNBOOST_PP_ITERATION_START_1 >= 5
+#    define NDNBOOST_PP_ITERATION_1 5
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 4 && BOOST_PP_ITERATION_START_1 >= 4
-#    define BOOST_PP_ITERATION_1 4
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 4 && NDNBOOST_PP_ITERATION_START_1 >= 4
+#    define NDNBOOST_PP_ITERATION_1 4
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 3 && BOOST_PP_ITERATION_START_1 >= 3
-#    define BOOST_PP_ITERATION_1 3
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 3 && NDNBOOST_PP_ITERATION_START_1 >= 3
+#    define NDNBOOST_PP_ITERATION_1 3
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 2 && BOOST_PP_ITERATION_START_1 >= 2
-#    define BOOST_PP_ITERATION_1 2
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 2 && NDNBOOST_PP_ITERATION_START_1 >= 2
+#    define NDNBOOST_PP_ITERATION_1 2
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 1 && BOOST_PP_ITERATION_START_1 >= 1
-#    define BOOST_PP_ITERATION_1 1
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 1 && NDNBOOST_PP_ITERATION_START_1 >= 1
+#    define NDNBOOST_PP_ITERATION_1 1
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 0 && BOOST_PP_ITERATION_START_1 >= 0
-#    define BOOST_PP_ITERATION_1 0
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
+# if NDNBOOST_PP_ITERATION_FINISH_1 <= 0 && NDNBOOST_PP_ITERATION_START_1 >= 0
+#    define NDNBOOST_PP_ITERATION_1 0
+#    include NDNBOOST_PP_FILENAME_1
+#    undef NDNBOOST_PP_ITERATION_1
 # endif
diff --git a/include/ndnboost/preprocessor/iteration/detail/iter/reverse2.hpp b/include/ndnboost/preprocessor/iteration/detail/iter/reverse2.hpp
index 521bd24..56cc6b9 100644
--- a/include/ndnboost/preprocessor/iteration/detail/iter/reverse2.hpp
+++ b/include/ndnboost/preprocessor/iteration/detail/iter/reverse2.hpp
@@ -9,1288 +9,1288 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# if BOOST_PP_ITERATION_FINISH_2 <= 256 && BOOST_PP_ITERATION_START_2 >= 256
-#    define BOOST_PP_ITERATION_2 256
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 256 && NDNBOOST_PP_ITERATION_START_2 >= 256
+#    define NDNBOOST_PP_ITERATION_2 256
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 255 && BOOST_PP_ITERATION_START_2 >= 255
-#    define BOOST_PP_ITERATION_2 255
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 255 && NDNBOOST_PP_ITERATION_START_2 >= 255
+#    define NDNBOOST_PP_ITERATION_2 255
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 254 && BOOST_PP_ITERATION_START_2 >= 254
-#    define BOOST_PP_ITERATION_2 254
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 254 && NDNBOOST_PP_ITERATION_START_2 >= 254
+#    define NDNBOOST_PP_ITERATION_2 254
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 253 && BOOST_PP_ITERATION_START_2 >= 253
-#    define BOOST_PP_ITERATION_2 253
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 253 && NDNBOOST_PP_ITERATION_START_2 >= 253
+#    define NDNBOOST_PP_ITERATION_2 253
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 252 && BOOST_PP_ITERATION_START_2 >= 252
-#    define BOOST_PP_ITERATION_2 252
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 252 && NDNBOOST_PP_ITERATION_START_2 >= 252
+#    define NDNBOOST_PP_ITERATION_2 252
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 251 && BOOST_PP_ITERATION_START_2 >= 251
-#    define BOOST_PP_ITERATION_2 251
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 251 && NDNBOOST_PP_ITERATION_START_2 >= 251
+#    define NDNBOOST_PP_ITERATION_2 251
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 250 && BOOST_PP_ITERATION_START_2 >= 250
-#    define BOOST_PP_ITERATION_2 250
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 250 && NDNBOOST_PP_ITERATION_START_2 >= 250
+#    define NDNBOOST_PP_ITERATION_2 250
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 249 && BOOST_PP_ITERATION_START_2 >= 249
-#    define BOOST_PP_ITERATION_2 249
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 249 && NDNBOOST_PP_ITERATION_START_2 >= 249
+#    define NDNBOOST_PP_ITERATION_2 249
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 248 && BOOST_PP_ITERATION_START_2 >= 248
-#    define BOOST_PP_ITERATION_2 248
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 248 && NDNBOOST_PP_ITERATION_START_2 >= 248
+#    define NDNBOOST_PP_ITERATION_2 248
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 247 && BOOST_PP_ITERATION_START_2 >= 247
-#    define BOOST_PP_ITERATION_2 247
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 247 && NDNBOOST_PP_ITERATION_START_2 >= 247
+#    define NDNBOOST_PP_ITERATION_2 247
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 246 && BOOST_PP_ITERATION_START_2 >= 246
-#    define BOOST_PP_ITERATION_2 246
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 246 && NDNBOOST_PP_ITERATION_START_2 >= 246
+#    define NDNBOOST_PP_ITERATION_2 246
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 245 && BOOST_PP_ITERATION_START_2 >= 245
-#    define BOOST_PP_ITERATION_2 245
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 245 && NDNBOOST_PP_ITERATION_START_2 >= 245
+#    define NDNBOOST_PP_ITERATION_2 245
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 244 && BOOST_PP_ITERATION_START_2 >= 244
-#    define BOOST_PP_ITERATION_2 244
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 244 && NDNBOOST_PP_ITERATION_START_2 >= 244
+#    define NDNBOOST_PP_ITERATION_2 244
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 243 && BOOST_PP_ITERATION_START_2 >= 243
-#    define BOOST_PP_ITERATION_2 243
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 243 && NDNBOOST_PP_ITERATION_START_2 >= 243
+#    define NDNBOOST_PP_ITERATION_2 243
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 242 && BOOST_PP_ITERATION_START_2 >= 242
-#    define BOOST_PP_ITERATION_2 242
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 242 && NDNBOOST_PP_ITERATION_START_2 >= 242
+#    define NDNBOOST_PP_ITERATION_2 242
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 241 && BOOST_PP_ITERATION_START_2 >= 241
-#    define BOOST_PP_ITERATION_2 241
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 241 && NDNBOOST_PP_ITERATION_START_2 >= 241
+#    define NDNBOOST_PP_ITERATION_2 241
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 240 && BOOST_PP_ITERATION_START_2 >= 240
-#    define BOOST_PP_ITERATION_2 240
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 240 && NDNBOOST_PP_ITERATION_START_2 >= 240
+#    define NDNBOOST_PP_ITERATION_2 240
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 239 && BOOST_PP_ITERATION_START_2 >= 239
-#    define BOOST_PP_ITERATION_2 239
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 239 && NDNBOOST_PP_ITERATION_START_2 >= 239
+#    define NDNBOOST_PP_ITERATION_2 239
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 238 && BOOST_PP_ITERATION_START_2 >= 238
-#    define BOOST_PP_ITERATION_2 238
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 238 && NDNBOOST_PP_ITERATION_START_2 >= 238
+#    define NDNBOOST_PP_ITERATION_2 238
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 237 && BOOST_PP_ITERATION_START_2 >= 237
-#    define BOOST_PP_ITERATION_2 237
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 237 && NDNBOOST_PP_ITERATION_START_2 >= 237
+#    define NDNBOOST_PP_ITERATION_2 237
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 236 && BOOST_PP_ITERATION_START_2 >= 236
-#    define BOOST_PP_ITERATION_2 236
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 236 && NDNBOOST_PP_ITERATION_START_2 >= 236
+#    define NDNBOOST_PP_ITERATION_2 236
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 235 && BOOST_PP_ITERATION_START_2 >= 235
-#    define BOOST_PP_ITERATION_2 235
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 235 && NDNBOOST_PP_ITERATION_START_2 >= 235
+#    define NDNBOOST_PP_ITERATION_2 235
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 234 && BOOST_PP_ITERATION_START_2 >= 234
-#    define BOOST_PP_ITERATION_2 234
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 234 && NDNBOOST_PP_ITERATION_START_2 >= 234
+#    define NDNBOOST_PP_ITERATION_2 234
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 233 && BOOST_PP_ITERATION_START_2 >= 233
-#    define BOOST_PP_ITERATION_2 233
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 233 && NDNBOOST_PP_ITERATION_START_2 >= 233
+#    define NDNBOOST_PP_ITERATION_2 233
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 232 && BOOST_PP_ITERATION_START_2 >= 232
-#    define BOOST_PP_ITERATION_2 232
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 232 && NDNBOOST_PP_ITERATION_START_2 >= 232
+#    define NDNBOOST_PP_ITERATION_2 232
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 231 && BOOST_PP_ITERATION_START_2 >= 231
-#    define BOOST_PP_ITERATION_2 231
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 231 && NDNBOOST_PP_ITERATION_START_2 >= 231
+#    define NDNBOOST_PP_ITERATION_2 231
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 230 && BOOST_PP_ITERATION_START_2 >= 230
-#    define BOOST_PP_ITERATION_2 230
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 230 && NDNBOOST_PP_ITERATION_START_2 >= 230
+#    define NDNBOOST_PP_ITERATION_2 230
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 229 && BOOST_PP_ITERATION_START_2 >= 229
-#    define BOOST_PP_ITERATION_2 229
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 229 && NDNBOOST_PP_ITERATION_START_2 >= 229
+#    define NDNBOOST_PP_ITERATION_2 229
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 228 && BOOST_PP_ITERATION_START_2 >= 228
-#    define BOOST_PP_ITERATION_2 228
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 228 && NDNBOOST_PP_ITERATION_START_2 >= 228
+#    define NDNBOOST_PP_ITERATION_2 228
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 227 && BOOST_PP_ITERATION_START_2 >= 227
-#    define BOOST_PP_ITERATION_2 227
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 227 && NDNBOOST_PP_ITERATION_START_2 >= 227
+#    define NDNBOOST_PP_ITERATION_2 227
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 226 && BOOST_PP_ITERATION_START_2 >= 226
-#    define BOOST_PP_ITERATION_2 226
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 226 && NDNBOOST_PP_ITERATION_START_2 >= 226
+#    define NDNBOOST_PP_ITERATION_2 226
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 225 && BOOST_PP_ITERATION_START_2 >= 225
-#    define BOOST_PP_ITERATION_2 225
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 225 && NDNBOOST_PP_ITERATION_START_2 >= 225
+#    define NDNBOOST_PP_ITERATION_2 225
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 224 && BOOST_PP_ITERATION_START_2 >= 224
-#    define BOOST_PP_ITERATION_2 224
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 224 && NDNBOOST_PP_ITERATION_START_2 >= 224
+#    define NDNBOOST_PP_ITERATION_2 224
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 223 && BOOST_PP_ITERATION_START_2 >= 223
-#    define BOOST_PP_ITERATION_2 223
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 223 && NDNBOOST_PP_ITERATION_START_2 >= 223
+#    define NDNBOOST_PP_ITERATION_2 223
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 222 && BOOST_PP_ITERATION_START_2 >= 222
-#    define BOOST_PP_ITERATION_2 222
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 222 && NDNBOOST_PP_ITERATION_START_2 >= 222
+#    define NDNBOOST_PP_ITERATION_2 222
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 221 && BOOST_PP_ITERATION_START_2 >= 221
-#    define BOOST_PP_ITERATION_2 221
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 221 && NDNBOOST_PP_ITERATION_START_2 >= 221
+#    define NDNBOOST_PP_ITERATION_2 221
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 220 && BOOST_PP_ITERATION_START_2 >= 220
-#    define BOOST_PP_ITERATION_2 220
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 220 && NDNBOOST_PP_ITERATION_START_2 >= 220
+#    define NDNBOOST_PP_ITERATION_2 220
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 219 && BOOST_PP_ITERATION_START_2 >= 219
-#    define BOOST_PP_ITERATION_2 219
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 219 && NDNBOOST_PP_ITERATION_START_2 >= 219
+#    define NDNBOOST_PP_ITERATION_2 219
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 218 && BOOST_PP_ITERATION_START_2 >= 218
-#    define BOOST_PP_ITERATION_2 218
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 218 && NDNBOOST_PP_ITERATION_START_2 >= 218
+#    define NDNBOOST_PP_ITERATION_2 218
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 217 && BOOST_PP_ITERATION_START_2 >= 217
-#    define BOOST_PP_ITERATION_2 217
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 217 && NDNBOOST_PP_ITERATION_START_2 >= 217
+#    define NDNBOOST_PP_ITERATION_2 217
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 216 && BOOST_PP_ITERATION_START_2 >= 216
-#    define BOOST_PP_ITERATION_2 216
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 216 && NDNBOOST_PP_ITERATION_START_2 >= 216
+#    define NDNBOOST_PP_ITERATION_2 216
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 215 && BOOST_PP_ITERATION_START_2 >= 215
-#    define BOOST_PP_ITERATION_2 215
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 215 && NDNBOOST_PP_ITERATION_START_2 >= 215
+#    define NDNBOOST_PP_ITERATION_2 215
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 214 && BOOST_PP_ITERATION_START_2 >= 214
-#    define BOOST_PP_ITERATION_2 214
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 214 && NDNBOOST_PP_ITERATION_START_2 >= 214
+#    define NDNBOOST_PP_ITERATION_2 214
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 213 && BOOST_PP_ITERATION_START_2 >= 213
-#    define BOOST_PP_ITERATION_2 213
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 213 && NDNBOOST_PP_ITERATION_START_2 >= 213
+#    define NDNBOOST_PP_ITERATION_2 213
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 212 && BOOST_PP_ITERATION_START_2 >= 212
-#    define BOOST_PP_ITERATION_2 212
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 212 && NDNBOOST_PP_ITERATION_START_2 >= 212
+#    define NDNBOOST_PP_ITERATION_2 212
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 211 && BOOST_PP_ITERATION_START_2 >= 211
-#    define BOOST_PP_ITERATION_2 211
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 211 && NDNBOOST_PP_ITERATION_START_2 >= 211
+#    define NDNBOOST_PP_ITERATION_2 211
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 210 && BOOST_PP_ITERATION_START_2 >= 210
-#    define BOOST_PP_ITERATION_2 210
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 210 && NDNBOOST_PP_ITERATION_START_2 >= 210
+#    define NDNBOOST_PP_ITERATION_2 210
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 209 && BOOST_PP_ITERATION_START_2 >= 209
-#    define BOOST_PP_ITERATION_2 209
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 209 && NDNBOOST_PP_ITERATION_START_2 >= 209
+#    define NDNBOOST_PP_ITERATION_2 209
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 208 && BOOST_PP_ITERATION_START_2 >= 208
-#    define BOOST_PP_ITERATION_2 208
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 208 && NDNBOOST_PP_ITERATION_START_2 >= 208
+#    define NDNBOOST_PP_ITERATION_2 208
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 207 && BOOST_PP_ITERATION_START_2 >= 207
-#    define BOOST_PP_ITERATION_2 207
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 207 && NDNBOOST_PP_ITERATION_START_2 >= 207
+#    define NDNBOOST_PP_ITERATION_2 207
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 206 && BOOST_PP_ITERATION_START_2 >= 206
-#    define BOOST_PP_ITERATION_2 206
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 206 && NDNBOOST_PP_ITERATION_START_2 >= 206
+#    define NDNBOOST_PP_ITERATION_2 206
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 205 && BOOST_PP_ITERATION_START_2 >= 205
-#    define BOOST_PP_ITERATION_2 205
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 205 && NDNBOOST_PP_ITERATION_START_2 >= 205
+#    define NDNBOOST_PP_ITERATION_2 205
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 204 && BOOST_PP_ITERATION_START_2 >= 204
-#    define BOOST_PP_ITERATION_2 204
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 204 && NDNBOOST_PP_ITERATION_START_2 >= 204
+#    define NDNBOOST_PP_ITERATION_2 204
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 203 && BOOST_PP_ITERATION_START_2 >= 203
-#    define BOOST_PP_ITERATION_2 203
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 203 && NDNBOOST_PP_ITERATION_START_2 >= 203
+#    define NDNBOOST_PP_ITERATION_2 203
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 202 && BOOST_PP_ITERATION_START_2 >= 202
-#    define BOOST_PP_ITERATION_2 202
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 202 && NDNBOOST_PP_ITERATION_START_2 >= 202
+#    define NDNBOOST_PP_ITERATION_2 202
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 201 && BOOST_PP_ITERATION_START_2 >= 201
-#    define BOOST_PP_ITERATION_2 201
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 201 && NDNBOOST_PP_ITERATION_START_2 >= 201
+#    define NDNBOOST_PP_ITERATION_2 201
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 200 && BOOST_PP_ITERATION_START_2 >= 200
-#    define BOOST_PP_ITERATION_2 200
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 200 && NDNBOOST_PP_ITERATION_START_2 >= 200
+#    define NDNBOOST_PP_ITERATION_2 200
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 199 && BOOST_PP_ITERATION_START_2 >= 199
-#    define BOOST_PP_ITERATION_2 199
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 199 && NDNBOOST_PP_ITERATION_START_2 >= 199
+#    define NDNBOOST_PP_ITERATION_2 199
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 198 && BOOST_PP_ITERATION_START_2 >= 198
-#    define BOOST_PP_ITERATION_2 198
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 198 && NDNBOOST_PP_ITERATION_START_2 >= 198
+#    define NDNBOOST_PP_ITERATION_2 198
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 197 && BOOST_PP_ITERATION_START_2 >= 197
-#    define BOOST_PP_ITERATION_2 197
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 197 && NDNBOOST_PP_ITERATION_START_2 >= 197
+#    define NDNBOOST_PP_ITERATION_2 197
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 196 && BOOST_PP_ITERATION_START_2 >= 196
-#    define BOOST_PP_ITERATION_2 196
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 196 && NDNBOOST_PP_ITERATION_START_2 >= 196
+#    define NDNBOOST_PP_ITERATION_2 196
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 195 && BOOST_PP_ITERATION_START_2 >= 195
-#    define BOOST_PP_ITERATION_2 195
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 195 && NDNBOOST_PP_ITERATION_START_2 >= 195
+#    define NDNBOOST_PP_ITERATION_2 195
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 194 && BOOST_PP_ITERATION_START_2 >= 194
-#    define BOOST_PP_ITERATION_2 194
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 194 && NDNBOOST_PP_ITERATION_START_2 >= 194
+#    define NDNBOOST_PP_ITERATION_2 194
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 193 && BOOST_PP_ITERATION_START_2 >= 193
-#    define BOOST_PP_ITERATION_2 193
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 193 && NDNBOOST_PP_ITERATION_START_2 >= 193
+#    define NDNBOOST_PP_ITERATION_2 193
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 192 && BOOST_PP_ITERATION_START_2 >= 192
-#    define BOOST_PP_ITERATION_2 192
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 192 && NDNBOOST_PP_ITERATION_START_2 >= 192
+#    define NDNBOOST_PP_ITERATION_2 192
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 191 && BOOST_PP_ITERATION_START_2 >= 191
-#    define BOOST_PP_ITERATION_2 191
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 191 && NDNBOOST_PP_ITERATION_START_2 >= 191
+#    define NDNBOOST_PP_ITERATION_2 191
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 190 && BOOST_PP_ITERATION_START_2 >= 190
-#    define BOOST_PP_ITERATION_2 190
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 190 && NDNBOOST_PP_ITERATION_START_2 >= 190
+#    define NDNBOOST_PP_ITERATION_2 190
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 189 && BOOST_PP_ITERATION_START_2 >= 189
-#    define BOOST_PP_ITERATION_2 189
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 189 && NDNBOOST_PP_ITERATION_START_2 >= 189
+#    define NDNBOOST_PP_ITERATION_2 189
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 188 && BOOST_PP_ITERATION_START_2 >= 188
-#    define BOOST_PP_ITERATION_2 188
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 188 && NDNBOOST_PP_ITERATION_START_2 >= 188
+#    define NDNBOOST_PP_ITERATION_2 188
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 187 && BOOST_PP_ITERATION_START_2 >= 187
-#    define BOOST_PP_ITERATION_2 187
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 187 && NDNBOOST_PP_ITERATION_START_2 >= 187
+#    define NDNBOOST_PP_ITERATION_2 187
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 186 && BOOST_PP_ITERATION_START_2 >= 186
-#    define BOOST_PP_ITERATION_2 186
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 186 && NDNBOOST_PP_ITERATION_START_2 >= 186
+#    define NDNBOOST_PP_ITERATION_2 186
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 185 && BOOST_PP_ITERATION_START_2 >= 185
-#    define BOOST_PP_ITERATION_2 185
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 185 && NDNBOOST_PP_ITERATION_START_2 >= 185
+#    define NDNBOOST_PP_ITERATION_2 185
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 184 && BOOST_PP_ITERATION_START_2 >= 184
-#    define BOOST_PP_ITERATION_2 184
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 184 && NDNBOOST_PP_ITERATION_START_2 >= 184
+#    define NDNBOOST_PP_ITERATION_2 184
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 183 && BOOST_PP_ITERATION_START_2 >= 183
-#    define BOOST_PP_ITERATION_2 183
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 183 && NDNBOOST_PP_ITERATION_START_2 >= 183
+#    define NDNBOOST_PP_ITERATION_2 183
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 182 && BOOST_PP_ITERATION_START_2 >= 182
-#    define BOOST_PP_ITERATION_2 182
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 182 && NDNBOOST_PP_ITERATION_START_2 >= 182
+#    define NDNBOOST_PP_ITERATION_2 182
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 181 && BOOST_PP_ITERATION_START_2 >= 181
-#    define BOOST_PP_ITERATION_2 181
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 181 && NDNBOOST_PP_ITERATION_START_2 >= 181
+#    define NDNBOOST_PP_ITERATION_2 181
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 180 && BOOST_PP_ITERATION_START_2 >= 180
-#    define BOOST_PP_ITERATION_2 180
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 180 && NDNBOOST_PP_ITERATION_START_2 >= 180
+#    define NDNBOOST_PP_ITERATION_2 180
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 179 && BOOST_PP_ITERATION_START_2 >= 179
-#    define BOOST_PP_ITERATION_2 179
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 179 && NDNBOOST_PP_ITERATION_START_2 >= 179
+#    define NDNBOOST_PP_ITERATION_2 179
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 178 && BOOST_PP_ITERATION_START_2 >= 178
-#    define BOOST_PP_ITERATION_2 178
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 178 && NDNBOOST_PP_ITERATION_START_2 >= 178
+#    define NDNBOOST_PP_ITERATION_2 178
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 177 && BOOST_PP_ITERATION_START_2 >= 177
-#    define BOOST_PP_ITERATION_2 177
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 177 && NDNBOOST_PP_ITERATION_START_2 >= 177
+#    define NDNBOOST_PP_ITERATION_2 177
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 176 && BOOST_PP_ITERATION_START_2 >= 176
-#    define BOOST_PP_ITERATION_2 176
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 176 && NDNBOOST_PP_ITERATION_START_2 >= 176
+#    define NDNBOOST_PP_ITERATION_2 176
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 175 && BOOST_PP_ITERATION_START_2 >= 175
-#    define BOOST_PP_ITERATION_2 175
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 175 && NDNBOOST_PP_ITERATION_START_2 >= 175
+#    define NDNBOOST_PP_ITERATION_2 175
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 174 && BOOST_PP_ITERATION_START_2 >= 174
-#    define BOOST_PP_ITERATION_2 174
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 174 && NDNBOOST_PP_ITERATION_START_2 >= 174
+#    define NDNBOOST_PP_ITERATION_2 174
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 173 && BOOST_PP_ITERATION_START_2 >= 173
-#    define BOOST_PP_ITERATION_2 173
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 173 && NDNBOOST_PP_ITERATION_START_2 >= 173
+#    define NDNBOOST_PP_ITERATION_2 173
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 172 && BOOST_PP_ITERATION_START_2 >= 172
-#    define BOOST_PP_ITERATION_2 172
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 172 && NDNBOOST_PP_ITERATION_START_2 >= 172
+#    define NDNBOOST_PP_ITERATION_2 172
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 171 && BOOST_PP_ITERATION_START_2 >= 171
-#    define BOOST_PP_ITERATION_2 171
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 171 && NDNBOOST_PP_ITERATION_START_2 >= 171
+#    define NDNBOOST_PP_ITERATION_2 171
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 170 && BOOST_PP_ITERATION_START_2 >= 170
-#    define BOOST_PP_ITERATION_2 170
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 170 && NDNBOOST_PP_ITERATION_START_2 >= 170
+#    define NDNBOOST_PP_ITERATION_2 170
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 169 && BOOST_PP_ITERATION_START_2 >= 169
-#    define BOOST_PP_ITERATION_2 169
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 169 && NDNBOOST_PP_ITERATION_START_2 >= 169
+#    define NDNBOOST_PP_ITERATION_2 169
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 168 && BOOST_PP_ITERATION_START_2 >= 168
-#    define BOOST_PP_ITERATION_2 168
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 168 && NDNBOOST_PP_ITERATION_START_2 >= 168
+#    define NDNBOOST_PP_ITERATION_2 168
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 167 && BOOST_PP_ITERATION_START_2 >= 167
-#    define BOOST_PP_ITERATION_2 167
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 167 && NDNBOOST_PP_ITERATION_START_2 >= 167
+#    define NDNBOOST_PP_ITERATION_2 167
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 166 && BOOST_PP_ITERATION_START_2 >= 166
-#    define BOOST_PP_ITERATION_2 166
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 166 && NDNBOOST_PP_ITERATION_START_2 >= 166
+#    define NDNBOOST_PP_ITERATION_2 166
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 165 && BOOST_PP_ITERATION_START_2 >= 165
-#    define BOOST_PP_ITERATION_2 165
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 165 && NDNBOOST_PP_ITERATION_START_2 >= 165
+#    define NDNBOOST_PP_ITERATION_2 165
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 164 && BOOST_PP_ITERATION_START_2 >= 164
-#    define BOOST_PP_ITERATION_2 164
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 164 && NDNBOOST_PP_ITERATION_START_2 >= 164
+#    define NDNBOOST_PP_ITERATION_2 164
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 163 && BOOST_PP_ITERATION_START_2 >= 163
-#    define BOOST_PP_ITERATION_2 163
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 163 && NDNBOOST_PP_ITERATION_START_2 >= 163
+#    define NDNBOOST_PP_ITERATION_2 163
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 162 && BOOST_PP_ITERATION_START_2 >= 162
-#    define BOOST_PP_ITERATION_2 162
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 162 && NDNBOOST_PP_ITERATION_START_2 >= 162
+#    define NDNBOOST_PP_ITERATION_2 162
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 161 && BOOST_PP_ITERATION_START_2 >= 161
-#    define BOOST_PP_ITERATION_2 161
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 161 && NDNBOOST_PP_ITERATION_START_2 >= 161
+#    define NDNBOOST_PP_ITERATION_2 161
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 160 && BOOST_PP_ITERATION_START_2 >= 160
-#    define BOOST_PP_ITERATION_2 160
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 160 && NDNBOOST_PP_ITERATION_START_2 >= 160
+#    define NDNBOOST_PP_ITERATION_2 160
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 159 && BOOST_PP_ITERATION_START_2 >= 159
-#    define BOOST_PP_ITERATION_2 159
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 159 && NDNBOOST_PP_ITERATION_START_2 >= 159
+#    define NDNBOOST_PP_ITERATION_2 159
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 158 && BOOST_PP_ITERATION_START_2 >= 158
-#    define BOOST_PP_ITERATION_2 158
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 158 && NDNBOOST_PP_ITERATION_START_2 >= 158
+#    define NDNBOOST_PP_ITERATION_2 158
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 157 && BOOST_PP_ITERATION_START_2 >= 157
-#    define BOOST_PP_ITERATION_2 157
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 157 && NDNBOOST_PP_ITERATION_START_2 >= 157
+#    define NDNBOOST_PP_ITERATION_2 157
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 156 && BOOST_PP_ITERATION_START_2 >= 156
-#    define BOOST_PP_ITERATION_2 156
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 156 && NDNBOOST_PP_ITERATION_START_2 >= 156
+#    define NDNBOOST_PP_ITERATION_2 156
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 155 && BOOST_PP_ITERATION_START_2 >= 155
-#    define BOOST_PP_ITERATION_2 155
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 155 && NDNBOOST_PP_ITERATION_START_2 >= 155
+#    define NDNBOOST_PP_ITERATION_2 155
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 154 && BOOST_PP_ITERATION_START_2 >= 154
-#    define BOOST_PP_ITERATION_2 154
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 154 && NDNBOOST_PP_ITERATION_START_2 >= 154
+#    define NDNBOOST_PP_ITERATION_2 154
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 153 && BOOST_PP_ITERATION_START_2 >= 153
-#    define BOOST_PP_ITERATION_2 153
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 153 && NDNBOOST_PP_ITERATION_START_2 >= 153
+#    define NDNBOOST_PP_ITERATION_2 153
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 152 && BOOST_PP_ITERATION_START_2 >= 152
-#    define BOOST_PP_ITERATION_2 152
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 152 && NDNBOOST_PP_ITERATION_START_2 >= 152
+#    define NDNBOOST_PP_ITERATION_2 152
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 151 && BOOST_PP_ITERATION_START_2 >= 151
-#    define BOOST_PP_ITERATION_2 151
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 151 && NDNBOOST_PP_ITERATION_START_2 >= 151
+#    define NDNBOOST_PP_ITERATION_2 151
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 150 && BOOST_PP_ITERATION_START_2 >= 150
-#    define BOOST_PP_ITERATION_2 150
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 150 && NDNBOOST_PP_ITERATION_START_2 >= 150
+#    define NDNBOOST_PP_ITERATION_2 150
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 149 && BOOST_PP_ITERATION_START_2 >= 149
-#    define BOOST_PP_ITERATION_2 149
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 149 && NDNBOOST_PP_ITERATION_START_2 >= 149
+#    define NDNBOOST_PP_ITERATION_2 149
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 148 && BOOST_PP_ITERATION_START_2 >= 148
-#    define BOOST_PP_ITERATION_2 148
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 148 && NDNBOOST_PP_ITERATION_START_2 >= 148
+#    define NDNBOOST_PP_ITERATION_2 148
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 147 && BOOST_PP_ITERATION_START_2 >= 147
-#    define BOOST_PP_ITERATION_2 147
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 147 && NDNBOOST_PP_ITERATION_START_2 >= 147
+#    define NDNBOOST_PP_ITERATION_2 147
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 146 && BOOST_PP_ITERATION_START_2 >= 146
-#    define BOOST_PP_ITERATION_2 146
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 146 && NDNBOOST_PP_ITERATION_START_2 >= 146
+#    define NDNBOOST_PP_ITERATION_2 146
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 145 && BOOST_PP_ITERATION_START_2 >= 145
-#    define BOOST_PP_ITERATION_2 145
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 145 && NDNBOOST_PP_ITERATION_START_2 >= 145
+#    define NDNBOOST_PP_ITERATION_2 145
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 144 && BOOST_PP_ITERATION_START_2 >= 144
-#    define BOOST_PP_ITERATION_2 144
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 144 && NDNBOOST_PP_ITERATION_START_2 >= 144
+#    define NDNBOOST_PP_ITERATION_2 144
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 143 && BOOST_PP_ITERATION_START_2 >= 143
-#    define BOOST_PP_ITERATION_2 143
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 143 && NDNBOOST_PP_ITERATION_START_2 >= 143
+#    define NDNBOOST_PP_ITERATION_2 143
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 142 && BOOST_PP_ITERATION_START_2 >= 142
-#    define BOOST_PP_ITERATION_2 142
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 142 && NDNBOOST_PP_ITERATION_START_2 >= 142
+#    define NDNBOOST_PP_ITERATION_2 142
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 141 && BOOST_PP_ITERATION_START_2 >= 141
-#    define BOOST_PP_ITERATION_2 141
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 141 && NDNBOOST_PP_ITERATION_START_2 >= 141
+#    define NDNBOOST_PP_ITERATION_2 141
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 140 && BOOST_PP_ITERATION_START_2 >= 140
-#    define BOOST_PP_ITERATION_2 140
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 140 && NDNBOOST_PP_ITERATION_START_2 >= 140
+#    define NDNBOOST_PP_ITERATION_2 140
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 139 && BOOST_PP_ITERATION_START_2 >= 139
-#    define BOOST_PP_ITERATION_2 139
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 139 && NDNBOOST_PP_ITERATION_START_2 >= 139
+#    define NDNBOOST_PP_ITERATION_2 139
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 138 && BOOST_PP_ITERATION_START_2 >= 138
-#    define BOOST_PP_ITERATION_2 138
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 138 && NDNBOOST_PP_ITERATION_START_2 >= 138
+#    define NDNBOOST_PP_ITERATION_2 138
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 137 && BOOST_PP_ITERATION_START_2 >= 137
-#    define BOOST_PP_ITERATION_2 137
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 137 && NDNBOOST_PP_ITERATION_START_2 >= 137
+#    define NDNBOOST_PP_ITERATION_2 137
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 136 && BOOST_PP_ITERATION_START_2 >= 136
-#    define BOOST_PP_ITERATION_2 136
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 136 && NDNBOOST_PP_ITERATION_START_2 >= 136
+#    define NDNBOOST_PP_ITERATION_2 136
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 135 && BOOST_PP_ITERATION_START_2 >= 135
-#    define BOOST_PP_ITERATION_2 135
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 135 && NDNBOOST_PP_ITERATION_START_2 >= 135
+#    define NDNBOOST_PP_ITERATION_2 135
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 134 && BOOST_PP_ITERATION_START_2 >= 134
-#    define BOOST_PP_ITERATION_2 134
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 134 && NDNBOOST_PP_ITERATION_START_2 >= 134
+#    define NDNBOOST_PP_ITERATION_2 134
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 133 && BOOST_PP_ITERATION_START_2 >= 133
-#    define BOOST_PP_ITERATION_2 133
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 133 && NDNBOOST_PP_ITERATION_START_2 >= 133
+#    define NDNBOOST_PP_ITERATION_2 133
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 132 && BOOST_PP_ITERATION_START_2 >= 132
-#    define BOOST_PP_ITERATION_2 132
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 132 && NDNBOOST_PP_ITERATION_START_2 >= 132
+#    define NDNBOOST_PP_ITERATION_2 132
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 131 && BOOST_PP_ITERATION_START_2 >= 131
-#    define BOOST_PP_ITERATION_2 131
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 131 && NDNBOOST_PP_ITERATION_START_2 >= 131
+#    define NDNBOOST_PP_ITERATION_2 131
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 130 && BOOST_PP_ITERATION_START_2 >= 130
-#    define BOOST_PP_ITERATION_2 130
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 130 && NDNBOOST_PP_ITERATION_START_2 >= 130
+#    define NDNBOOST_PP_ITERATION_2 130
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 129 && BOOST_PP_ITERATION_START_2 >= 129
-#    define BOOST_PP_ITERATION_2 129
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 129 && NDNBOOST_PP_ITERATION_START_2 >= 129
+#    define NDNBOOST_PP_ITERATION_2 129
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 128 && BOOST_PP_ITERATION_START_2 >= 128
-#    define BOOST_PP_ITERATION_2 128
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 128 && NDNBOOST_PP_ITERATION_START_2 >= 128
+#    define NDNBOOST_PP_ITERATION_2 128
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 127 && BOOST_PP_ITERATION_START_2 >= 127
-#    define BOOST_PP_ITERATION_2 127
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 127 && NDNBOOST_PP_ITERATION_START_2 >= 127
+#    define NDNBOOST_PP_ITERATION_2 127
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 126 && BOOST_PP_ITERATION_START_2 >= 126
-#    define BOOST_PP_ITERATION_2 126
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 126 && NDNBOOST_PP_ITERATION_START_2 >= 126
+#    define NDNBOOST_PP_ITERATION_2 126
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 125 && BOOST_PP_ITERATION_START_2 >= 125
-#    define BOOST_PP_ITERATION_2 125
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 125 && NDNBOOST_PP_ITERATION_START_2 >= 125
+#    define NDNBOOST_PP_ITERATION_2 125
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 124 && BOOST_PP_ITERATION_START_2 >= 124
-#    define BOOST_PP_ITERATION_2 124
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 124 && NDNBOOST_PP_ITERATION_START_2 >= 124
+#    define NDNBOOST_PP_ITERATION_2 124
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 123 && BOOST_PP_ITERATION_START_2 >= 123
-#    define BOOST_PP_ITERATION_2 123
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 123 && NDNBOOST_PP_ITERATION_START_2 >= 123
+#    define NDNBOOST_PP_ITERATION_2 123
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 122 && BOOST_PP_ITERATION_START_2 >= 122
-#    define BOOST_PP_ITERATION_2 122
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 122 && NDNBOOST_PP_ITERATION_START_2 >= 122
+#    define NDNBOOST_PP_ITERATION_2 122
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 121 && BOOST_PP_ITERATION_START_2 >= 121
-#    define BOOST_PP_ITERATION_2 121
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 121 && NDNBOOST_PP_ITERATION_START_2 >= 121
+#    define NDNBOOST_PP_ITERATION_2 121
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 120 && BOOST_PP_ITERATION_START_2 >= 120
-#    define BOOST_PP_ITERATION_2 120
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 120 && NDNBOOST_PP_ITERATION_START_2 >= 120
+#    define NDNBOOST_PP_ITERATION_2 120
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 119 && BOOST_PP_ITERATION_START_2 >= 119
-#    define BOOST_PP_ITERATION_2 119
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 119 && NDNBOOST_PP_ITERATION_START_2 >= 119
+#    define NDNBOOST_PP_ITERATION_2 119
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 118 && BOOST_PP_ITERATION_START_2 >= 118
-#    define BOOST_PP_ITERATION_2 118
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 118 && NDNBOOST_PP_ITERATION_START_2 >= 118
+#    define NDNBOOST_PP_ITERATION_2 118
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 117 && BOOST_PP_ITERATION_START_2 >= 117
-#    define BOOST_PP_ITERATION_2 117
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 117 && NDNBOOST_PP_ITERATION_START_2 >= 117
+#    define NDNBOOST_PP_ITERATION_2 117
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 116 && BOOST_PP_ITERATION_START_2 >= 116
-#    define BOOST_PP_ITERATION_2 116
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 116 && NDNBOOST_PP_ITERATION_START_2 >= 116
+#    define NDNBOOST_PP_ITERATION_2 116
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 115 && BOOST_PP_ITERATION_START_2 >= 115
-#    define BOOST_PP_ITERATION_2 115
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 115 && NDNBOOST_PP_ITERATION_START_2 >= 115
+#    define NDNBOOST_PP_ITERATION_2 115
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 114 && BOOST_PP_ITERATION_START_2 >= 114
-#    define BOOST_PP_ITERATION_2 114
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 114 && NDNBOOST_PP_ITERATION_START_2 >= 114
+#    define NDNBOOST_PP_ITERATION_2 114
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 113 && BOOST_PP_ITERATION_START_2 >= 113
-#    define BOOST_PP_ITERATION_2 113
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 113 && NDNBOOST_PP_ITERATION_START_2 >= 113
+#    define NDNBOOST_PP_ITERATION_2 113
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 112 && BOOST_PP_ITERATION_START_2 >= 112
-#    define BOOST_PP_ITERATION_2 112
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 112 && NDNBOOST_PP_ITERATION_START_2 >= 112
+#    define NDNBOOST_PP_ITERATION_2 112
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 111 && BOOST_PP_ITERATION_START_2 >= 111
-#    define BOOST_PP_ITERATION_2 111
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 111 && NDNBOOST_PP_ITERATION_START_2 >= 111
+#    define NDNBOOST_PP_ITERATION_2 111
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 110 && BOOST_PP_ITERATION_START_2 >= 110
-#    define BOOST_PP_ITERATION_2 110
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 110 && NDNBOOST_PP_ITERATION_START_2 >= 110
+#    define NDNBOOST_PP_ITERATION_2 110
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 109 && BOOST_PP_ITERATION_START_2 >= 109
-#    define BOOST_PP_ITERATION_2 109
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 109 && NDNBOOST_PP_ITERATION_START_2 >= 109
+#    define NDNBOOST_PP_ITERATION_2 109
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 108 && BOOST_PP_ITERATION_START_2 >= 108
-#    define BOOST_PP_ITERATION_2 108
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 108 && NDNBOOST_PP_ITERATION_START_2 >= 108
+#    define NDNBOOST_PP_ITERATION_2 108
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 107 && BOOST_PP_ITERATION_START_2 >= 107
-#    define BOOST_PP_ITERATION_2 107
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 107 && NDNBOOST_PP_ITERATION_START_2 >= 107
+#    define NDNBOOST_PP_ITERATION_2 107
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 106 && BOOST_PP_ITERATION_START_2 >= 106
-#    define BOOST_PP_ITERATION_2 106
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 106 && NDNBOOST_PP_ITERATION_START_2 >= 106
+#    define NDNBOOST_PP_ITERATION_2 106
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 105 && BOOST_PP_ITERATION_START_2 >= 105
-#    define BOOST_PP_ITERATION_2 105
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 105 && NDNBOOST_PP_ITERATION_START_2 >= 105
+#    define NDNBOOST_PP_ITERATION_2 105
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 104 && BOOST_PP_ITERATION_START_2 >= 104
-#    define BOOST_PP_ITERATION_2 104
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 104 && NDNBOOST_PP_ITERATION_START_2 >= 104
+#    define NDNBOOST_PP_ITERATION_2 104
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 103 && BOOST_PP_ITERATION_START_2 >= 103
-#    define BOOST_PP_ITERATION_2 103
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 103 && NDNBOOST_PP_ITERATION_START_2 >= 103
+#    define NDNBOOST_PP_ITERATION_2 103
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 102 && BOOST_PP_ITERATION_START_2 >= 102
-#    define BOOST_PP_ITERATION_2 102
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 102 && NDNBOOST_PP_ITERATION_START_2 >= 102
+#    define NDNBOOST_PP_ITERATION_2 102
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 101 && BOOST_PP_ITERATION_START_2 >= 101
-#    define BOOST_PP_ITERATION_2 101
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 101 && NDNBOOST_PP_ITERATION_START_2 >= 101
+#    define NDNBOOST_PP_ITERATION_2 101
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 100 && BOOST_PP_ITERATION_START_2 >= 100
-#    define BOOST_PP_ITERATION_2 100
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 100 && NDNBOOST_PP_ITERATION_START_2 >= 100
+#    define NDNBOOST_PP_ITERATION_2 100
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 99 && BOOST_PP_ITERATION_START_2 >= 99
-#    define BOOST_PP_ITERATION_2 99
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 99 && NDNBOOST_PP_ITERATION_START_2 >= 99
+#    define NDNBOOST_PP_ITERATION_2 99
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 98 && BOOST_PP_ITERATION_START_2 >= 98
-#    define BOOST_PP_ITERATION_2 98
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 98 && NDNBOOST_PP_ITERATION_START_2 >= 98
+#    define NDNBOOST_PP_ITERATION_2 98
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 97 && BOOST_PP_ITERATION_START_2 >= 97
-#    define BOOST_PP_ITERATION_2 97
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 97 && NDNBOOST_PP_ITERATION_START_2 >= 97
+#    define NDNBOOST_PP_ITERATION_2 97
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 96 && BOOST_PP_ITERATION_START_2 >= 96
-#    define BOOST_PP_ITERATION_2 96
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 96 && NDNBOOST_PP_ITERATION_START_2 >= 96
+#    define NDNBOOST_PP_ITERATION_2 96
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 95 && BOOST_PP_ITERATION_START_2 >= 95
-#    define BOOST_PP_ITERATION_2 95
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 95 && NDNBOOST_PP_ITERATION_START_2 >= 95
+#    define NDNBOOST_PP_ITERATION_2 95
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 94 && BOOST_PP_ITERATION_START_2 >= 94
-#    define BOOST_PP_ITERATION_2 94
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 94 && NDNBOOST_PP_ITERATION_START_2 >= 94
+#    define NDNBOOST_PP_ITERATION_2 94
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 93 && BOOST_PP_ITERATION_START_2 >= 93
-#    define BOOST_PP_ITERATION_2 93
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 93 && NDNBOOST_PP_ITERATION_START_2 >= 93
+#    define NDNBOOST_PP_ITERATION_2 93
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 92 && BOOST_PP_ITERATION_START_2 >= 92
-#    define BOOST_PP_ITERATION_2 92
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 92 && NDNBOOST_PP_ITERATION_START_2 >= 92
+#    define NDNBOOST_PP_ITERATION_2 92
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 91 && BOOST_PP_ITERATION_START_2 >= 91
-#    define BOOST_PP_ITERATION_2 91
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 91 && NDNBOOST_PP_ITERATION_START_2 >= 91
+#    define NDNBOOST_PP_ITERATION_2 91
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 90 && BOOST_PP_ITERATION_START_2 >= 90
-#    define BOOST_PP_ITERATION_2 90
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 90 && NDNBOOST_PP_ITERATION_START_2 >= 90
+#    define NDNBOOST_PP_ITERATION_2 90
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 89 && BOOST_PP_ITERATION_START_2 >= 89
-#    define BOOST_PP_ITERATION_2 89
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 89 && NDNBOOST_PP_ITERATION_START_2 >= 89
+#    define NDNBOOST_PP_ITERATION_2 89
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 88 && BOOST_PP_ITERATION_START_2 >= 88
-#    define BOOST_PP_ITERATION_2 88
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 88 && NDNBOOST_PP_ITERATION_START_2 >= 88
+#    define NDNBOOST_PP_ITERATION_2 88
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 87 && BOOST_PP_ITERATION_START_2 >= 87
-#    define BOOST_PP_ITERATION_2 87
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 87 && NDNBOOST_PP_ITERATION_START_2 >= 87
+#    define NDNBOOST_PP_ITERATION_2 87
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 86 && BOOST_PP_ITERATION_START_2 >= 86
-#    define BOOST_PP_ITERATION_2 86
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 86 && NDNBOOST_PP_ITERATION_START_2 >= 86
+#    define NDNBOOST_PP_ITERATION_2 86
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 85 && BOOST_PP_ITERATION_START_2 >= 85
-#    define BOOST_PP_ITERATION_2 85
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 85 && NDNBOOST_PP_ITERATION_START_2 >= 85
+#    define NDNBOOST_PP_ITERATION_2 85
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 84 && BOOST_PP_ITERATION_START_2 >= 84
-#    define BOOST_PP_ITERATION_2 84
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 84 && NDNBOOST_PP_ITERATION_START_2 >= 84
+#    define NDNBOOST_PP_ITERATION_2 84
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 83 && BOOST_PP_ITERATION_START_2 >= 83
-#    define BOOST_PP_ITERATION_2 83
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 83 && NDNBOOST_PP_ITERATION_START_2 >= 83
+#    define NDNBOOST_PP_ITERATION_2 83
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 82 && BOOST_PP_ITERATION_START_2 >= 82
-#    define BOOST_PP_ITERATION_2 82
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 82 && NDNBOOST_PP_ITERATION_START_2 >= 82
+#    define NDNBOOST_PP_ITERATION_2 82
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 81 && BOOST_PP_ITERATION_START_2 >= 81
-#    define BOOST_PP_ITERATION_2 81
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 81 && NDNBOOST_PP_ITERATION_START_2 >= 81
+#    define NDNBOOST_PP_ITERATION_2 81
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 80 && BOOST_PP_ITERATION_START_2 >= 80
-#    define BOOST_PP_ITERATION_2 80
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 80 && NDNBOOST_PP_ITERATION_START_2 >= 80
+#    define NDNBOOST_PP_ITERATION_2 80
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 79 && BOOST_PP_ITERATION_START_2 >= 79
-#    define BOOST_PP_ITERATION_2 79
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 79 && NDNBOOST_PP_ITERATION_START_2 >= 79
+#    define NDNBOOST_PP_ITERATION_2 79
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 78 && BOOST_PP_ITERATION_START_2 >= 78
-#    define BOOST_PP_ITERATION_2 78
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 78 && NDNBOOST_PP_ITERATION_START_2 >= 78
+#    define NDNBOOST_PP_ITERATION_2 78
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 77 && BOOST_PP_ITERATION_START_2 >= 77
-#    define BOOST_PP_ITERATION_2 77
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 77 && NDNBOOST_PP_ITERATION_START_2 >= 77
+#    define NDNBOOST_PP_ITERATION_2 77
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 76 && BOOST_PP_ITERATION_START_2 >= 76
-#    define BOOST_PP_ITERATION_2 76
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 76 && NDNBOOST_PP_ITERATION_START_2 >= 76
+#    define NDNBOOST_PP_ITERATION_2 76
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 75 && BOOST_PP_ITERATION_START_2 >= 75
-#    define BOOST_PP_ITERATION_2 75
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 75 && NDNBOOST_PP_ITERATION_START_2 >= 75
+#    define NDNBOOST_PP_ITERATION_2 75
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 74 && BOOST_PP_ITERATION_START_2 >= 74
-#    define BOOST_PP_ITERATION_2 74
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 74 && NDNBOOST_PP_ITERATION_START_2 >= 74
+#    define NDNBOOST_PP_ITERATION_2 74
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 73 && BOOST_PP_ITERATION_START_2 >= 73
-#    define BOOST_PP_ITERATION_2 73
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 73 && NDNBOOST_PP_ITERATION_START_2 >= 73
+#    define NDNBOOST_PP_ITERATION_2 73
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 72 && BOOST_PP_ITERATION_START_2 >= 72
-#    define BOOST_PP_ITERATION_2 72
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 72 && NDNBOOST_PP_ITERATION_START_2 >= 72
+#    define NDNBOOST_PP_ITERATION_2 72
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 71 && BOOST_PP_ITERATION_START_2 >= 71
-#    define BOOST_PP_ITERATION_2 71
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 71 && NDNBOOST_PP_ITERATION_START_2 >= 71
+#    define NDNBOOST_PP_ITERATION_2 71
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 70 && BOOST_PP_ITERATION_START_2 >= 70
-#    define BOOST_PP_ITERATION_2 70
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 70 && NDNBOOST_PP_ITERATION_START_2 >= 70
+#    define NDNBOOST_PP_ITERATION_2 70
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 69 && BOOST_PP_ITERATION_START_2 >= 69
-#    define BOOST_PP_ITERATION_2 69
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 69 && NDNBOOST_PP_ITERATION_START_2 >= 69
+#    define NDNBOOST_PP_ITERATION_2 69
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 68 && BOOST_PP_ITERATION_START_2 >= 68
-#    define BOOST_PP_ITERATION_2 68
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 68 && NDNBOOST_PP_ITERATION_START_2 >= 68
+#    define NDNBOOST_PP_ITERATION_2 68
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 67 && BOOST_PP_ITERATION_START_2 >= 67
-#    define BOOST_PP_ITERATION_2 67
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 67 && NDNBOOST_PP_ITERATION_START_2 >= 67
+#    define NDNBOOST_PP_ITERATION_2 67
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 66 && BOOST_PP_ITERATION_START_2 >= 66
-#    define BOOST_PP_ITERATION_2 66
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 66 && NDNBOOST_PP_ITERATION_START_2 >= 66
+#    define NDNBOOST_PP_ITERATION_2 66
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 65 && BOOST_PP_ITERATION_START_2 >= 65
-#    define BOOST_PP_ITERATION_2 65
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 65 && NDNBOOST_PP_ITERATION_START_2 >= 65
+#    define NDNBOOST_PP_ITERATION_2 65
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 64 && BOOST_PP_ITERATION_START_2 >= 64
-#    define BOOST_PP_ITERATION_2 64
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 64 && NDNBOOST_PP_ITERATION_START_2 >= 64
+#    define NDNBOOST_PP_ITERATION_2 64
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 63 && BOOST_PP_ITERATION_START_2 >= 63
-#    define BOOST_PP_ITERATION_2 63
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 63 && NDNBOOST_PP_ITERATION_START_2 >= 63
+#    define NDNBOOST_PP_ITERATION_2 63
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 62 && BOOST_PP_ITERATION_START_2 >= 62
-#    define BOOST_PP_ITERATION_2 62
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 62 && NDNBOOST_PP_ITERATION_START_2 >= 62
+#    define NDNBOOST_PP_ITERATION_2 62
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 61 && BOOST_PP_ITERATION_START_2 >= 61
-#    define BOOST_PP_ITERATION_2 61
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 61 && NDNBOOST_PP_ITERATION_START_2 >= 61
+#    define NDNBOOST_PP_ITERATION_2 61
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 60 && BOOST_PP_ITERATION_START_2 >= 60
-#    define BOOST_PP_ITERATION_2 60
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 60 && NDNBOOST_PP_ITERATION_START_2 >= 60
+#    define NDNBOOST_PP_ITERATION_2 60
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 59 && BOOST_PP_ITERATION_START_2 >= 59
-#    define BOOST_PP_ITERATION_2 59
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 59 && NDNBOOST_PP_ITERATION_START_2 >= 59
+#    define NDNBOOST_PP_ITERATION_2 59
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 58 && BOOST_PP_ITERATION_START_2 >= 58
-#    define BOOST_PP_ITERATION_2 58
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 58 && NDNBOOST_PP_ITERATION_START_2 >= 58
+#    define NDNBOOST_PP_ITERATION_2 58
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 57 && BOOST_PP_ITERATION_START_2 >= 57
-#    define BOOST_PP_ITERATION_2 57
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 57 && NDNBOOST_PP_ITERATION_START_2 >= 57
+#    define NDNBOOST_PP_ITERATION_2 57
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 56 && BOOST_PP_ITERATION_START_2 >= 56
-#    define BOOST_PP_ITERATION_2 56
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 56 && NDNBOOST_PP_ITERATION_START_2 >= 56
+#    define NDNBOOST_PP_ITERATION_2 56
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 55 && BOOST_PP_ITERATION_START_2 >= 55
-#    define BOOST_PP_ITERATION_2 55
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 55 && NDNBOOST_PP_ITERATION_START_2 >= 55
+#    define NDNBOOST_PP_ITERATION_2 55
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 54 && BOOST_PP_ITERATION_START_2 >= 54
-#    define BOOST_PP_ITERATION_2 54
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 54 && NDNBOOST_PP_ITERATION_START_2 >= 54
+#    define NDNBOOST_PP_ITERATION_2 54
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 53 && BOOST_PP_ITERATION_START_2 >= 53
-#    define BOOST_PP_ITERATION_2 53
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 53 && NDNBOOST_PP_ITERATION_START_2 >= 53
+#    define NDNBOOST_PP_ITERATION_2 53
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 52 && BOOST_PP_ITERATION_START_2 >= 52
-#    define BOOST_PP_ITERATION_2 52
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 52 && NDNBOOST_PP_ITERATION_START_2 >= 52
+#    define NDNBOOST_PP_ITERATION_2 52
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 51 && BOOST_PP_ITERATION_START_2 >= 51
-#    define BOOST_PP_ITERATION_2 51
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 51 && NDNBOOST_PP_ITERATION_START_2 >= 51
+#    define NDNBOOST_PP_ITERATION_2 51
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 50 && BOOST_PP_ITERATION_START_2 >= 50
-#    define BOOST_PP_ITERATION_2 50
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 50 && NDNBOOST_PP_ITERATION_START_2 >= 50
+#    define NDNBOOST_PP_ITERATION_2 50
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 49 && BOOST_PP_ITERATION_START_2 >= 49
-#    define BOOST_PP_ITERATION_2 49
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 49 && NDNBOOST_PP_ITERATION_START_2 >= 49
+#    define NDNBOOST_PP_ITERATION_2 49
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 48 && BOOST_PP_ITERATION_START_2 >= 48
-#    define BOOST_PP_ITERATION_2 48
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 48 && NDNBOOST_PP_ITERATION_START_2 >= 48
+#    define NDNBOOST_PP_ITERATION_2 48
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 47 && BOOST_PP_ITERATION_START_2 >= 47
-#    define BOOST_PP_ITERATION_2 47
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 47 && NDNBOOST_PP_ITERATION_START_2 >= 47
+#    define NDNBOOST_PP_ITERATION_2 47
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 46 && BOOST_PP_ITERATION_START_2 >= 46
-#    define BOOST_PP_ITERATION_2 46
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 46 && NDNBOOST_PP_ITERATION_START_2 >= 46
+#    define NDNBOOST_PP_ITERATION_2 46
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 45 && BOOST_PP_ITERATION_START_2 >= 45
-#    define BOOST_PP_ITERATION_2 45
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 45 && NDNBOOST_PP_ITERATION_START_2 >= 45
+#    define NDNBOOST_PP_ITERATION_2 45
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 44 && BOOST_PP_ITERATION_START_2 >= 44
-#    define BOOST_PP_ITERATION_2 44
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 44 && NDNBOOST_PP_ITERATION_START_2 >= 44
+#    define NDNBOOST_PP_ITERATION_2 44
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 43 && BOOST_PP_ITERATION_START_2 >= 43
-#    define BOOST_PP_ITERATION_2 43
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 43 && NDNBOOST_PP_ITERATION_START_2 >= 43
+#    define NDNBOOST_PP_ITERATION_2 43
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 42 && BOOST_PP_ITERATION_START_2 >= 42
-#    define BOOST_PP_ITERATION_2 42
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 42 && NDNBOOST_PP_ITERATION_START_2 >= 42
+#    define NDNBOOST_PP_ITERATION_2 42
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 41 && BOOST_PP_ITERATION_START_2 >= 41
-#    define BOOST_PP_ITERATION_2 41
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 41 && NDNBOOST_PP_ITERATION_START_2 >= 41
+#    define NDNBOOST_PP_ITERATION_2 41
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 40 && BOOST_PP_ITERATION_START_2 >= 40
-#    define BOOST_PP_ITERATION_2 40
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 40 && NDNBOOST_PP_ITERATION_START_2 >= 40
+#    define NDNBOOST_PP_ITERATION_2 40
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 39 && BOOST_PP_ITERATION_START_2 >= 39
-#    define BOOST_PP_ITERATION_2 39
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 39 && NDNBOOST_PP_ITERATION_START_2 >= 39
+#    define NDNBOOST_PP_ITERATION_2 39
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 38 && BOOST_PP_ITERATION_START_2 >= 38
-#    define BOOST_PP_ITERATION_2 38
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 38 && NDNBOOST_PP_ITERATION_START_2 >= 38
+#    define NDNBOOST_PP_ITERATION_2 38
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 37 && BOOST_PP_ITERATION_START_2 >= 37
-#    define BOOST_PP_ITERATION_2 37
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 37 && NDNBOOST_PP_ITERATION_START_2 >= 37
+#    define NDNBOOST_PP_ITERATION_2 37
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 36 && BOOST_PP_ITERATION_START_2 >= 36
-#    define BOOST_PP_ITERATION_2 36
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 36 && NDNBOOST_PP_ITERATION_START_2 >= 36
+#    define NDNBOOST_PP_ITERATION_2 36
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 35 && BOOST_PP_ITERATION_START_2 >= 35
-#    define BOOST_PP_ITERATION_2 35
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 35 && NDNBOOST_PP_ITERATION_START_2 >= 35
+#    define NDNBOOST_PP_ITERATION_2 35
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 34 && BOOST_PP_ITERATION_START_2 >= 34
-#    define BOOST_PP_ITERATION_2 34
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 34 && NDNBOOST_PP_ITERATION_START_2 >= 34
+#    define NDNBOOST_PP_ITERATION_2 34
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 33 && BOOST_PP_ITERATION_START_2 >= 33
-#    define BOOST_PP_ITERATION_2 33
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 33 && NDNBOOST_PP_ITERATION_START_2 >= 33
+#    define NDNBOOST_PP_ITERATION_2 33
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 32 && BOOST_PP_ITERATION_START_2 >= 32
-#    define BOOST_PP_ITERATION_2 32
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 32 && NDNBOOST_PP_ITERATION_START_2 >= 32
+#    define NDNBOOST_PP_ITERATION_2 32
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 31 && BOOST_PP_ITERATION_START_2 >= 31
-#    define BOOST_PP_ITERATION_2 31
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 31 && NDNBOOST_PP_ITERATION_START_2 >= 31
+#    define NDNBOOST_PP_ITERATION_2 31
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 30 && BOOST_PP_ITERATION_START_2 >= 30
-#    define BOOST_PP_ITERATION_2 30
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 30 && NDNBOOST_PP_ITERATION_START_2 >= 30
+#    define NDNBOOST_PP_ITERATION_2 30
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 29 && BOOST_PP_ITERATION_START_2 >= 29
-#    define BOOST_PP_ITERATION_2 29
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 29 && NDNBOOST_PP_ITERATION_START_2 >= 29
+#    define NDNBOOST_PP_ITERATION_2 29
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 28 && BOOST_PP_ITERATION_START_2 >= 28
-#    define BOOST_PP_ITERATION_2 28
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 28 && NDNBOOST_PP_ITERATION_START_2 >= 28
+#    define NDNBOOST_PP_ITERATION_2 28
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 27 && BOOST_PP_ITERATION_START_2 >= 27
-#    define BOOST_PP_ITERATION_2 27
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 27 && NDNBOOST_PP_ITERATION_START_2 >= 27
+#    define NDNBOOST_PP_ITERATION_2 27
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 26 && BOOST_PP_ITERATION_START_2 >= 26
-#    define BOOST_PP_ITERATION_2 26
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 26 && NDNBOOST_PP_ITERATION_START_2 >= 26
+#    define NDNBOOST_PP_ITERATION_2 26
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 25 && BOOST_PP_ITERATION_START_2 >= 25
-#    define BOOST_PP_ITERATION_2 25
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 25 && NDNBOOST_PP_ITERATION_START_2 >= 25
+#    define NDNBOOST_PP_ITERATION_2 25
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 24 && BOOST_PP_ITERATION_START_2 >= 24
-#    define BOOST_PP_ITERATION_2 24
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 24 && NDNBOOST_PP_ITERATION_START_2 >= 24
+#    define NDNBOOST_PP_ITERATION_2 24
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 23 && BOOST_PP_ITERATION_START_2 >= 23
-#    define BOOST_PP_ITERATION_2 23
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 23 && NDNBOOST_PP_ITERATION_START_2 >= 23
+#    define NDNBOOST_PP_ITERATION_2 23
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 22 && BOOST_PP_ITERATION_START_2 >= 22
-#    define BOOST_PP_ITERATION_2 22
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 22 && NDNBOOST_PP_ITERATION_START_2 >= 22
+#    define NDNBOOST_PP_ITERATION_2 22
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 21 && BOOST_PP_ITERATION_START_2 >= 21
-#    define BOOST_PP_ITERATION_2 21
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 21 && NDNBOOST_PP_ITERATION_START_2 >= 21
+#    define NDNBOOST_PP_ITERATION_2 21
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 20 && BOOST_PP_ITERATION_START_2 >= 20
-#    define BOOST_PP_ITERATION_2 20
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 20 && NDNBOOST_PP_ITERATION_START_2 >= 20
+#    define NDNBOOST_PP_ITERATION_2 20
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 19 && BOOST_PP_ITERATION_START_2 >= 19
-#    define BOOST_PP_ITERATION_2 19
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 19 && NDNBOOST_PP_ITERATION_START_2 >= 19
+#    define NDNBOOST_PP_ITERATION_2 19
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 18 && BOOST_PP_ITERATION_START_2 >= 18
-#    define BOOST_PP_ITERATION_2 18
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 18 && NDNBOOST_PP_ITERATION_START_2 >= 18
+#    define NDNBOOST_PP_ITERATION_2 18
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 17 && BOOST_PP_ITERATION_START_2 >= 17
-#    define BOOST_PP_ITERATION_2 17
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 17 && NDNBOOST_PP_ITERATION_START_2 >= 17
+#    define NDNBOOST_PP_ITERATION_2 17
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 16 && BOOST_PP_ITERATION_START_2 >= 16
-#    define BOOST_PP_ITERATION_2 16
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 16 && NDNBOOST_PP_ITERATION_START_2 >= 16
+#    define NDNBOOST_PP_ITERATION_2 16
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 15 && BOOST_PP_ITERATION_START_2 >= 15
-#    define BOOST_PP_ITERATION_2 15
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 15 && NDNBOOST_PP_ITERATION_START_2 >= 15
+#    define NDNBOOST_PP_ITERATION_2 15
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 14 && BOOST_PP_ITERATION_START_2 >= 14
-#    define BOOST_PP_ITERATION_2 14
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 14 && NDNBOOST_PP_ITERATION_START_2 >= 14
+#    define NDNBOOST_PP_ITERATION_2 14
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 13 && BOOST_PP_ITERATION_START_2 >= 13
-#    define BOOST_PP_ITERATION_2 13
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 13 && NDNBOOST_PP_ITERATION_START_2 >= 13
+#    define NDNBOOST_PP_ITERATION_2 13
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 12 && BOOST_PP_ITERATION_START_2 >= 12
-#    define BOOST_PP_ITERATION_2 12
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 12 && NDNBOOST_PP_ITERATION_START_2 >= 12
+#    define NDNBOOST_PP_ITERATION_2 12
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 11 && BOOST_PP_ITERATION_START_2 >= 11
-#    define BOOST_PP_ITERATION_2 11
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 11 && NDNBOOST_PP_ITERATION_START_2 >= 11
+#    define NDNBOOST_PP_ITERATION_2 11
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 10 && BOOST_PP_ITERATION_START_2 >= 10
-#    define BOOST_PP_ITERATION_2 10
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 10 && NDNBOOST_PP_ITERATION_START_2 >= 10
+#    define NDNBOOST_PP_ITERATION_2 10
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 9 && BOOST_PP_ITERATION_START_2 >= 9
-#    define BOOST_PP_ITERATION_2 9
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 9 && NDNBOOST_PP_ITERATION_START_2 >= 9
+#    define NDNBOOST_PP_ITERATION_2 9
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 8 && BOOST_PP_ITERATION_START_2 >= 8
-#    define BOOST_PP_ITERATION_2 8
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 8 && NDNBOOST_PP_ITERATION_START_2 >= 8
+#    define NDNBOOST_PP_ITERATION_2 8
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 7 && BOOST_PP_ITERATION_START_2 >= 7
-#    define BOOST_PP_ITERATION_2 7
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 7 && NDNBOOST_PP_ITERATION_START_2 >= 7
+#    define NDNBOOST_PP_ITERATION_2 7
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 6 && BOOST_PP_ITERATION_START_2 >= 6
-#    define BOOST_PP_ITERATION_2 6
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 6 && NDNBOOST_PP_ITERATION_START_2 >= 6
+#    define NDNBOOST_PP_ITERATION_2 6
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 5 && BOOST_PP_ITERATION_START_2 >= 5
-#    define BOOST_PP_ITERATION_2 5
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 5 && NDNBOOST_PP_ITERATION_START_2 >= 5
+#    define NDNBOOST_PP_ITERATION_2 5
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 4 && BOOST_PP_ITERATION_START_2 >= 4
-#    define BOOST_PP_ITERATION_2 4
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 4 && NDNBOOST_PP_ITERATION_START_2 >= 4
+#    define NDNBOOST_PP_ITERATION_2 4
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 3 && BOOST_PP_ITERATION_START_2 >= 3
-#    define BOOST_PP_ITERATION_2 3
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 3 && NDNBOOST_PP_ITERATION_START_2 >= 3
+#    define NDNBOOST_PP_ITERATION_2 3
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 2 && BOOST_PP_ITERATION_START_2 >= 2
-#    define BOOST_PP_ITERATION_2 2
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 2 && NDNBOOST_PP_ITERATION_START_2 >= 2
+#    define NDNBOOST_PP_ITERATION_2 2
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 1 && BOOST_PP_ITERATION_START_2 >= 1
-#    define BOOST_PP_ITERATION_2 1
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 1 && NDNBOOST_PP_ITERATION_START_2 >= 1
+#    define NDNBOOST_PP_ITERATION_2 1
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 0 && BOOST_PP_ITERATION_START_2 >= 0
-#    define BOOST_PP_ITERATION_2 0
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
+# if NDNBOOST_PP_ITERATION_FINISH_2 <= 0 && NDNBOOST_PP_ITERATION_START_2 >= 0
+#    define NDNBOOST_PP_ITERATION_2 0
+#    include NDNBOOST_PP_FILENAME_2
+#    undef NDNBOOST_PP_ITERATION_2
 # endif
diff --git a/include/ndnboost/preprocessor/iteration/detail/iter/reverse3.hpp b/include/ndnboost/preprocessor/iteration/detail/iter/reverse3.hpp
index 0a65514..03810a4 100644
--- a/include/ndnboost/preprocessor/iteration/detail/iter/reverse3.hpp
+++ b/include/ndnboost/preprocessor/iteration/detail/iter/reverse3.hpp
@@ -9,1288 +9,1288 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# if BOOST_PP_ITERATION_FINISH_3 <= 256 && BOOST_PP_ITERATION_START_3 >= 256
-#    define BOOST_PP_ITERATION_3 256
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 256 && NDNBOOST_PP_ITERATION_START_3 >= 256
+#    define NDNBOOST_PP_ITERATION_3 256
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 255 && BOOST_PP_ITERATION_START_3 >= 255
-#    define BOOST_PP_ITERATION_3 255
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 255 && NDNBOOST_PP_ITERATION_START_3 >= 255
+#    define NDNBOOST_PP_ITERATION_3 255
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 254 && BOOST_PP_ITERATION_START_3 >= 254
-#    define BOOST_PP_ITERATION_3 254
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 254 && NDNBOOST_PP_ITERATION_START_3 >= 254
+#    define NDNBOOST_PP_ITERATION_3 254
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 253 && BOOST_PP_ITERATION_START_3 >= 253
-#    define BOOST_PP_ITERATION_3 253
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 253 && NDNBOOST_PP_ITERATION_START_3 >= 253
+#    define NDNBOOST_PP_ITERATION_3 253
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 252 && BOOST_PP_ITERATION_START_3 >= 252
-#    define BOOST_PP_ITERATION_3 252
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 252 && NDNBOOST_PP_ITERATION_START_3 >= 252
+#    define NDNBOOST_PP_ITERATION_3 252
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 251 && BOOST_PP_ITERATION_START_3 >= 251
-#    define BOOST_PP_ITERATION_3 251
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 251 && NDNBOOST_PP_ITERATION_START_3 >= 251
+#    define NDNBOOST_PP_ITERATION_3 251
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 250 && BOOST_PP_ITERATION_START_3 >= 250
-#    define BOOST_PP_ITERATION_3 250
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 250 && NDNBOOST_PP_ITERATION_START_3 >= 250
+#    define NDNBOOST_PP_ITERATION_3 250
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 249 && BOOST_PP_ITERATION_START_3 >= 249
-#    define BOOST_PP_ITERATION_3 249
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 249 && NDNBOOST_PP_ITERATION_START_3 >= 249
+#    define NDNBOOST_PP_ITERATION_3 249
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 248 && BOOST_PP_ITERATION_START_3 >= 248
-#    define BOOST_PP_ITERATION_3 248
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 248 && NDNBOOST_PP_ITERATION_START_3 >= 248
+#    define NDNBOOST_PP_ITERATION_3 248
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 247 && BOOST_PP_ITERATION_START_3 >= 247
-#    define BOOST_PP_ITERATION_3 247
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 247 && NDNBOOST_PP_ITERATION_START_3 >= 247
+#    define NDNBOOST_PP_ITERATION_3 247
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 246 && BOOST_PP_ITERATION_START_3 >= 246
-#    define BOOST_PP_ITERATION_3 246
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 246 && NDNBOOST_PP_ITERATION_START_3 >= 246
+#    define NDNBOOST_PP_ITERATION_3 246
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 245 && BOOST_PP_ITERATION_START_3 >= 245
-#    define BOOST_PP_ITERATION_3 245
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 245 && NDNBOOST_PP_ITERATION_START_3 >= 245
+#    define NDNBOOST_PP_ITERATION_3 245
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 244 && BOOST_PP_ITERATION_START_3 >= 244
-#    define BOOST_PP_ITERATION_3 244
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 244 && NDNBOOST_PP_ITERATION_START_3 >= 244
+#    define NDNBOOST_PP_ITERATION_3 244
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 243 && BOOST_PP_ITERATION_START_3 >= 243
-#    define BOOST_PP_ITERATION_3 243
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 243 && NDNBOOST_PP_ITERATION_START_3 >= 243
+#    define NDNBOOST_PP_ITERATION_3 243
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 242 && BOOST_PP_ITERATION_START_3 >= 242
-#    define BOOST_PP_ITERATION_3 242
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 242 && NDNBOOST_PP_ITERATION_START_3 >= 242
+#    define NDNBOOST_PP_ITERATION_3 242
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 241 && BOOST_PP_ITERATION_START_3 >= 241
-#    define BOOST_PP_ITERATION_3 241
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 241 && NDNBOOST_PP_ITERATION_START_3 >= 241
+#    define NDNBOOST_PP_ITERATION_3 241
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 240 && BOOST_PP_ITERATION_START_3 >= 240
-#    define BOOST_PP_ITERATION_3 240
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 240 && NDNBOOST_PP_ITERATION_START_3 >= 240
+#    define NDNBOOST_PP_ITERATION_3 240
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 239 && BOOST_PP_ITERATION_START_3 >= 239
-#    define BOOST_PP_ITERATION_3 239
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 239 && NDNBOOST_PP_ITERATION_START_3 >= 239
+#    define NDNBOOST_PP_ITERATION_3 239
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 238 && BOOST_PP_ITERATION_START_3 >= 238
-#    define BOOST_PP_ITERATION_3 238
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 238 && NDNBOOST_PP_ITERATION_START_3 >= 238
+#    define NDNBOOST_PP_ITERATION_3 238
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 237 && BOOST_PP_ITERATION_START_3 >= 237
-#    define BOOST_PP_ITERATION_3 237
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 237 && NDNBOOST_PP_ITERATION_START_3 >= 237
+#    define NDNBOOST_PP_ITERATION_3 237
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 236 && BOOST_PP_ITERATION_START_3 >= 236
-#    define BOOST_PP_ITERATION_3 236
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 236 && NDNBOOST_PP_ITERATION_START_3 >= 236
+#    define NDNBOOST_PP_ITERATION_3 236
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 235 && BOOST_PP_ITERATION_START_3 >= 235
-#    define BOOST_PP_ITERATION_3 235
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 235 && NDNBOOST_PP_ITERATION_START_3 >= 235
+#    define NDNBOOST_PP_ITERATION_3 235
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 234 && BOOST_PP_ITERATION_START_3 >= 234
-#    define BOOST_PP_ITERATION_3 234
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 234 && NDNBOOST_PP_ITERATION_START_3 >= 234
+#    define NDNBOOST_PP_ITERATION_3 234
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 233 && BOOST_PP_ITERATION_START_3 >= 233
-#    define BOOST_PP_ITERATION_3 233
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 233 && NDNBOOST_PP_ITERATION_START_3 >= 233
+#    define NDNBOOST_PP_ITERATION_3 233
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 232 && BOOST_PP_ITERATION_START_3 >= 232
-#    define BOOST_PP_ITERATION_3 232
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 232 && NDNBOOST_PP_ITERATION_START_3 >= 232
+#    define NDNBOOST_PP_ITERATION_3 232
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 231 && BOOST_PP_ITERATION_START_3 >= 231
-#    define BOOST_PP_ITERATION_3 231
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 231 && NDNBOOST_PP_ITERATION_START_3 >= 231
+#    define NDNBOOST_PP_ITERATION_3 231
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 230 && BOOST_PP_ITERATION_START_3 >= 230
-#    define BOOST_PP_ITERATION_3 230
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 230 && NDNBOOST_PP_ITERATION_START_3 >= 230
+#    define NDNBOOST_PP_ITERATION_3 230
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 229 && BOOST_PP_ITERATION_START_3 >= 229
-#    define BOOST_PP_ITERATION_3 229
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 229 && NDNBOOST_PP_ITERATION_START_3 >= 229
+#    define NDNBOOST_PP_ITERATION_3 229
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 228 && BOOST_PP_ITERATION_START_3 >= 228
-#    define BOOST_PP_ITERATION_3 228
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 228 && NDNBOOST_PP_ITERATION_START_3 >= 228
+#    define NDNBOOST_PP_ITERATION_3 228
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 227 && BOOST_PP_ITERATION_START_3 >= 227
-#    define BOOST_PP_ITERATION_3 227
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 227 && NDNBOOST_PP_ITERATION_START_3 >= 227
+#    define NDNBOOST_PP_ITERATION_3 227
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 226 && BOOST_PP_ITERATION_START_3 >= 226
-#    define BOOST_PP_ITERATION_3 226
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 226 && NDNBOOST_PP_ITERATION_START_3 >= 226
+#    define NDNBOOST_PP_ITERATION_3 226
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 225 && BOOST_PP_ITERATION_START_3 >= 225
-#    define BOOST_PP_ITERATION_3 225
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 225 && NDNBOOST_PP_ITERATION_START_3 >= 225
+#    define NDNBOOST_PP_ITERATION_3 225
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 224 && BOOST_PP_ITERATION_START_3 >= 224
-#    define BOOST_PP_ITERATION_3 224
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 224 && NDNBOOST_PP_ITERATION_START_3 >= 224
+#    define NDNBOOST_PP_ITERATION_3 224
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 223 && BOOST_PP_ITERATION_START_3 >= 223
-#    define BOOST_PP_ITERATION_3 223
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 223 && NDNBOOST_PP_ITERATION_START_3 >= 223
+#    define NDNBOOST_PP_ITERATION_3 223
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 222 && BOOST_PP_ITERATION_START_3 >= 222
-#    define BOOST_PP_ITERATION_3 222
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 222 && NDNBOOST_PP_ITERATION_START_3 >= 222
+#    define NDNBOOST_PP_ITERATION_3 222
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 221 && BOOST_PP_ITERATION_START_3 >= 221
-#    define BOOST_PP_ITERATION_3 221
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 221 && NDNBOOST_PP_ITERATION_START_3 >= 221
+#    define NDNBOOST_PP_ITERATION_3 221
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 220 && BOOST_PP_ITERATION_START_3 >= 220
-#    define BOOST_PP_ITERATION_3 220
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 220 && NDNBOOST_PP_ITERATION_START_3 >= 220
+#    define NDNBOOST_PP_ITERATION_3 220
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 219 && BOOST_PP_ITERATION_START_3 >= 219
-#    define BOOST_PP_ITERATION_3 219
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 219 && NDNBOOST_PP_ITERATION_START_3 >= 219
+#    define NDNBOOST_PP_ITERATION_3 219
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 218 && BOOST_PP_ITERATION_START_3 >= 218
-#    define BOOST_PP_ITERATION_3 218
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 218 && NDNBOOST_PP_ITERATION_START_3 >= 218
+#    define NDNBOOST_PP_ITERATION_3 218
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 217 && BOOST_PP_ITERATION_START_3 >= 217
-#    define BOOST_PP_ITERATION_3 217
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 217 && NDNBOOST_PP_ITERATION_START_3 >= 217
+#    define NDNBOOST_PP_ITERATION_3 217
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 216 && BOOST_PP_ITERATION_START_3 >= 216
-#    define BOOST_PP_ITERATION_3 216
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 216 && NDNBOOST_PP_ITERATION_START_3 >= 216
+#    define NDNBOOST_PP_ITERATION_3 216
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 215 && BOOST_PP_ITERATION_START_3 >= 215
-#    define BOOST_PP_ITERATION_3 215
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 215 && NDNBOOST_PP_ITERATION_START_3 >= 215
+#    define NDNBOOST_PP_ITERATION_3 215
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 214 && BOOST_PP_ITERATION_START_3 >= 214
-#    define BOOST_PP_ITERATION_3 214
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 214 && NDNBOOST_PP_ITERATION_START_3 >= 214
+#    define NDNBOOST_PP_ITERATION_3 214
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 213 && BOOST_PP_ITERATION_START_3 >= 213
-#    define BOOST_PP_ITERATION_3 213
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 213 && NDNBOOST_PP_ITERATION_START_3 >= 213
+#    define NDNBOOST_PP_ITERATION_3 213
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 212 && BOOST_PP_ITERATION_START_3 >= 212
-#    define BOOST_PP_ITERATION_3 212
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 212 && NDNBOOST_PP_ITERATION_START_3 >= 212
+#    define NDNBOOST_PP_ITERATION_3 212
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 211 && BOOST_PP_ITERATION_START_3 >= 211
-#    define BOOST_PP_ITERATION_3 211
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 211 && NDNBOOST_PP_ITERATION_START_3 >= 211
+#    define NDNBOOST_PP_ITERATION_3 211
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 210 && BOOST_PP_ITERATION_START_3 >= 210
-#    define BOOST_PP_ITERATION_3 210
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 210 && NDNBOOST_PP_ITERATION_START_3 >= 210
+#    define NDNBOOST_PP_ITERATION_3 210
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 209 && BOOST_PP_ITERATION_START_3 >= 209
-#    define BOOST_PP_ITERATION_3 209
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 209 && NDNBOOST_PP_ITERATION_START_3 >= 209
+#    define NDNBOOST_PP_ITERATION_3 209
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 208 && BOOST_PP_ITERATION_START_3 >= 208
-#    define BOOST_PP_ITERATION_3 208
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 208 && NDNBOOST_PP_ITERATION_START_3 >= 208
+#    define NDNBOOST_PP_ITERATION_3 208
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 207 && BOOST_PP_ITERATION_START_3 >= 207
-#    define BOOST_PP_ITERATION_3 207
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 207 && NDNBOOST_PP_ITERATION_START_3 >= 207
+#    define NDNBOOST_PP_ITERATION_3 207
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 206 && BOOST_PP_ITERATION_START_3 >= 206
-#    define BOOST_PP_ITERATION_3 206
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 206 && NDNBOOST_PP_ITERATION_START_3 >= 206
+#    define NDNBOOST_PP_ITERATION_3 206
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 205 && BOOST_PP_ITERATION_START_3 >= 205
-#    define BOOST_PP_ITERATION_3 205
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 205 && NDNBOOST_PP_ITERATION_START_3 >= 205
+#    define NDNBOOST_PP_ITERATION_3 205
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 204 && BOOST_PP_ITERATION_START_3 >= 204
-#    define BOOST_PP_ITERATION_3 204
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 204 && NDNBOOST_PP_ITERATION_START_3 >= 204
+#    define NDNBOOST_PP_ITERATION_3 204
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 203 && BOOST_PP_ITERATION_START_3 >= 203
-#    define BOOST_PP_ITERATION_3 203
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 203 && NDNBOOST_PP_ITERATION_START_3 >= 203
+#    define NDNBOOST_PP_ITERATION_3 203
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 202 && BOOST_PP_ITERATION_START_3 >= 202
-#    define BOOST_PP_ITERATION_3 202
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 202 && NDNBOOST_PP_ITERATION_START_3 >= 202
+#    define NDNBOOST_PP_ITERATION_3 202
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 201 && BOOST_PP_ITERATION_START_3 >= 201
-#    define BOOST_PP_ITERATION_3 201
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 201 && NDNBOOST_PP_ITERATION_START_3 >= 201
+#    define NDNBOOST_PP_ITERATION_3 201
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 200 && BOOST_PP_ITERATION_START_3 >= 200
-#    define BOOST_PP_ITERATION_3 200
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 200 && NDNBOOST_PP_ITERATION_START_3 >= 200
+#    define NDNBOOST_PP_ITERATION_3 200
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 199 && BOOST_PP_ITERATION_START_3 >= 199
-#    define BOOST_PP_ITERATION_3 199
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 199 && NDNBOOST_PP_ITERATION_START_3 >= 199
+#    define NDNBOOST_PP_ITERATION_3 199
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 198 && BOOST_PP_ITERATION_START_3 >= 198
-#    define BOOST_PP_ITERATION_3 198
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 198 && NDNBOOST_PP_ITERATION_START_3 >= 198
+#    define NDNBOOST_PP_ITERATION_3 198
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 197 && BOOST_PP_ITERATION_START_3 >= 197
-#    define BOOST_PP_ITERATION_3 197
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 197 && NDNBOOST_PP_ITERATION_START_3 >= 197
+#    define NDNBOOST_PP_ITERATION_3 197
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 196 && BOOST_PP_ITERATION_START_3 >= 196
-#    define BOOST_PP_ITERATION_3 196
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 196 && NDNBOOST_PP_ITERATION_START_3 >= 196
+#    define NDNBOOST_PP_ITERATION_3 196
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 195 && BOOST_PP_ITERATION_START_3 >= 195
-#    define BOOST_PP_ITERATION_3 195
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 195 && NDNBOOST_PP_ITERATION_START_3 >= 195
+#    define NDNBOOST_PP_ITERATION_3 195
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 194 && BOOST_PP_ITERATION_START_3 >= 194
-#    define BOOST_PP_ITERATION_3 194
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 194 && NDNBOOST_PP_ITERATION_START_3 >= 194
+#    define NDNBOOST_PP_ITERATION_3 194
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 193 && BOOST_PP_ITERATION_START_3 >= 193
-#    define BOOST_PP_ITERATION_3 193
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 193 && NDNBOOST_PP_ITERATION_START_3 >= 193
+#    define NDNBOOST_PP_ITERATION_3 193
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 192 && BOOST_PP_ITERATION_START_3 >= 192
-#    define BOOST_PP_ITERATION_3 192
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 192 && NDNBOOST_PP_ITERATION_START_3 >= 192
+#    define NDNBOOST_PP_ITERATION_3 192
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 191 && BOOST_PP_ITERATION_START_3 >= 191
-#    define BOOST_PP_ITERATION_3 191
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 191 && NDNBOOST_PP_ITERATION_START_3 >= 191
+#    define NDNBOOST_PP_ITERATION_3 191
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 190 && BOOST_PP_ITERATION_START_3 >= 190
-#    define BOOST_PP_ITERATION_3 190
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 190 && NDNBOOST_PP_ITERATION_START_3 >= 190
+#    define NDNBOOST_PP_ITERATION_3 190
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 189 && BOOST_PP_ITERATION_START_3 >= 189
-#    define BOOST_PP_ITERATION_3 189
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 189 && NDNBOOST_PP_ITERATION_START_3 >= 189
+#    define NDNBOOST_PP_ITERATION_3 189
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 188 && BOOST_PP_ITERATION_START_3 >= 188
-#    define BOOST_PP_ITERATION_3 188
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 188 && NDNBOOST_PP_ITERATION_START_3 >= 188
+#    define NDNBOOST_PP_ITERATION_3 188
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 187 && BOOST_PP_ITERATION_START_3 >= 187
-#    define BOOST_PP_ITERATION_3 187
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 187 && NDNBOOST_PP_ITERATION_START_3 >= 187
+#    define NDNBOOST_PP_ITERATION_3 187
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 186 && BOOST_PP_ITERATION_START_3 >= 186
-#    define BOOST_PP_ITERATION_3 186
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 186 && NDNBOOST_PP_ITERATION_START_3 >= 186
+#    define NDNBOOST_PP_ITERATION_3 186
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 185 && BOOST_PP_ITERATION_START_3 >= 185
-#    define BOOST_PP_ITERATION_3 185
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 185 && NDNBOOST_PP_ITERATION_START_3 >= 185
+#    define NDNBOOST_PP_ITERATION_3 185
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 184 && BOOST_PP_ITERATION_START_3 >= 184
-#    define BOOST_PP_ITERATION_3 184
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 184 && NDNBOOST_PP_ITERATION_START_3 >= 184
+#    define NDNBOOST_PP_ITERATION_3 184
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 183 && BOOST_PP_ITERATION_START_3 >= 183
-#    define BOOST_PP_ITERATION_3 183
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 183 && NDNBOOST_PP_ITERATION_START_3 >= 183
+#    define NDNBOOST_PP_ITERATION_3 183
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 182 && BOOST_PP_ITERATION_START_3 >= 182
-#    define BOOST_PP_ITERATION_3 182
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 182 && NDNBOOST_PP_ITERATION_START_3 >= 182
+#    define NDNBOOST_PP_ITERATION_3 182
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 181 && BOOST_PP_ITERATION_START_3 >= 181
-#    define BOOST_PP_ITERATION_3 181
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 181 && NDNBOOST_PP_ITERATION_START_3 >= 181
+#    define NDNBOOST_PP_ITERATION_3 181
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 180 && BOOST_PP_ITERATION_START_3 >= 180
-#    define BOOST_PP_ITERATION_3 180
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 180 && NDNBOOST_PP_ITERATION_START_3 >= 180
+#    define NDNBOOST_PP_ITERATION_3 180
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 179 && BOOST_PP_ITERATION_START_3 >= 179
-#    define BOOST_PP_ITERATION_3 179
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 179 && NDNBOOST_PP_ITERATION_START_3 >= 179
+#    define NDNBOOST_PP_ITERATION_3 179
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 178 && BOOST_PP_ITERATION_START_3 >= 178
-#    define BOOST_PP_ITERATION_3 178
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 178 && NDNBOOST_PP_ITERATION_START_3 >= 178
+#    define NDNBOOST_PP_ITERATION_3 178
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 177 && BOOST_PP_ITERATION_START_3 >= 177
-#    define BOOST_PP_ITERATION_3 177
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 177 && NDNBOOST_PP_ITERATION_START_3 >= 177
+#    define NDNBOOST_PP_ITERATION_3 177
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 176 && BOOST_PP_ITERATION_START_3 >= 176
-#    define BOOST_PP_ITERATION_3 176
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 176 && NDNBOOST_PP_ITERATION_START_3 >= 176
+#    define NDNBOOST_PP_ITERATION_3 176
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 175 && BOOST_PP_ITERATION_START_3 >= 175
-#    define BOOST_PP_ITERATION_3 175
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 175 && NDNBOOST_PP_ITERATION_START_3 >= 175
+#    define NDNBOOST_PP_ITERATION_3 175
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 174 && BOOST_PP_ITERATION_START_3 >= 174
-#    define BOOST_PP_ITERATION_3 174
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 174 && NDNBOOST_PP_ITERATION_START_3 >= 174
+#    define NDNBOOST_PP_ITERATION_3 174
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 173 && BOOST_PP_ITERATION_START_3 >= 173
-#    define BOOST_PP_ITERATION_3 173
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 173 && NDNBOOST_PP_ITERATION_START_3 >= 173
+#    define NDNBOOST_PP_ITERATION_3 173
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 172 && BOOST_PP_ITERATION_START_3 >= 172
-#    define BOOST_PP_ITERATION_3 172
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 172 && NDNBOOST_PP_ITERATION_START_3 >= 172
+#    define NDNBOOST_PP_ITERATION_3 172
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 171 && BOOST_PP_ITERATION_START_3 >= 171
-#    define BOOST_PP_ITERATION_3 171
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 171 && NDNBOOST_PP_ITERATION_START_3 >= 171
+#    define NDNBOOST_PP_ITERATION_3 171
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 170 && BOOST_PP_ITERATION_START_3 >= 170
-#    define BOOST_PP_ITERATION_3 170
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 170 && NDNBOOST_PP_ITERATION_START_3 >= 170
+#    define NDNBOOST_PP_ITERATION_3 170
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 169 && BOOST_PP_ITERATION_START_3 >= 169
-#    define BOOST_PP_ITERATION_3 169
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 169 && NDNBOOST_PP_ITERATION_START_3 >= 169
+#    define NDNBOOST_PP_ITERATION_3 169
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 168 && BOOST_PP_ITERATION_START_3 >= 168
-#    define BOOST_PP_ITERATION_3 168
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 168 && NDNBOOST_PP_ITERATION_START_3 >= 168
+#    define NDNBOOST_PP_ITERATION_3 168
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 167 && BOOST_PP_ITERATION_START_3 >= 167
-#    define BOOST_PP_ITERATION_3 167
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 167 && NDNBOOST_PP_ITERATION_START_3 >= 167
+#    define NDNBOOST_PP_ITERATION_3 167
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 166 && BOOST_PP_ITERATION_START_3 >= 166
-#    define BOOST_PP_ITERATION_3 166
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 166 && NDNBOOST_PP_ITERATION_START_3 >= 166
+#    define NDNBOOST_PP_ITERATION_3 166
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 165 && BOOST_PP_ITERATION_START_3 >= 165
-#    define BOOST_PP_ITERATION_3 165
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 165 && NDNBOOST_PP_ITERATION_START_3 >= 165
+#    define NDNBOOST_PP_ITERATION_3 165
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 164 && BOOST_PP_ITERATION_START_3 >= 164
-#    define BOOST_PP_ITERATION_3 164
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 164 && NDNBOOST_PP_ITERATION_START_3 >= 164
+#    define NDNBOOST_PP_ITERATION_3 164
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 163 && BOOST_PP_ITERATION_START_3 >= 163
-#    define BOOST_PP_ITERATION_3 163
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 163 && NDNBOOST_PP_ITERATION_START_3 >= 163
+#    define NDNBOOST_PP_ITERATION_3 163
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 162 && BOOST_PP_ITERATION_START_3 >= 162
-#    define BOOST_PP_ITERATION_3 162
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 162 && NDNBOOST_PP_ITERATION_START_3 >= 162
+#    define NDNBOOST_PP_ITERATION_3 162
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 161 && BOOST_PP_ITERATION_START_3 >= 161
-#    define BOOST_PP_ITERATION_3 161
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 161 && NDNBOOST_PP_ITERATION_START_3 >= 161
+#    define NDNBOOST_PP_ITERATION_3 161
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 160 && BOOST_PP_ITERATION_START_3 >= 160
-#    define BOOST_PP_ITERATION_3 160
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 160 && NDNBOOST_PP_ITERATION_START_3 >= 160
+#    define NDNBOOST_PP_ITERATION_3 160
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 159 && BOOST_PP_ITERATION_START_3 >= 159
-#    define BOOST_PP_ITERATION_3 159
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 159 && NDNBOOST_PP_ITERATION_START_3 >= 159
+#    define NDNBOOST_PP_ITERATION_3 159
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 158 && BOOST_PP_ITERATION_START_3 >= 158
-#    define BOOST_PP_ITERATION_3 158
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 158 && NDNBOOST_PP_ITERATION_START_3 >= 158
+#    define NDNBOOST_PP_ITERATION_3 158
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 157 && BOOST_PP_ITERATION_START_3 >= 157
-#    define BOOST_PP_ITERATION_3 157
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 157 && NDNBOOST_PP_ITERATION_START_3 >= 157
+#    define NDNBOOST_PP_ITERATION_3 157
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 156 && BOOST_PP_ITERATION_START_3 >= 156
-#    define BOOST_PP_ITERATION_3 156
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 156 && NDNBOOST_PP_ITERATION_START_3 >= 156
+#    define NDNBOOST_PP_ITERATION_3 156
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 155 && BOOST_PP_ITERATION_START_3 >= 155
-#    define BOOST_PP_ITERATION_3 155
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 155 && NDNBOOST_PP_ITERATION_START_3 >= 155
+#    define NDNBOOST_PP_ITERATION_3 155
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 154 && BOOST_PP_ITERATION_START_3 >= 154
-#    define BOOST_PP_ITERATION_3 154
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 154 && NDNBOOST_PP_ITERATION_START_3 >= 154
+#    define NDNBOOST_PP_ITERATION_3 154
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 153 && BOOST_PP_ITERATION_START_3 >= 153
-#    define BOOST_PP_ITERATION_3 153
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 153 && NDNBOOST_PP_ITERATION_START_3 >= 153
+#    define NDNBOOST_PP_ITERATION_3 153
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 152 && BOOST_PP_ITERATION_START_3 >= 152
-#    define BOOST_PP_ITERATION_3 152
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 152 && NDNBOOST_PP_ITERATION_START_3 >= 152
+#    define NDNBOOST_PP_ITERATION_3 152
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 151 && BOOST_PP_ITERATION_START_3 >= 151
-#    define BOOST_PP_ITERATION_3 151
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 151 && NDNBOOST_PP_ITERATION_START_3 >= 151
+#    define NDNBOOST_PP_ITERATION_3 151
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 150 && BOOST_PP_ITERATION_START_3 >= 150
-#    define BOOST_PP_ITERATION_3 150
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 150 && NDNBOOST_PP_ITERATION_START_3 >= 150
+#    define NDNBOOST_PP_ITERATION_3 150
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 149 && BOOST_PP_ITERATION_START_3 >= 149
-#    define BOOST_PP_ITERATION_3 149
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 149 && NDNBOOST_PP_ITERATION_START_3 >= 149
+#    define NDNBOOST_PP_ITERATION_3 149
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 148 && BOOST_PP_ITERATION_START_3 >= 148
-#    define BOOST_PP_ITERATION_3 148
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 148 && NDNBOOST_PP_ITERATION_START_3 >= 148
+#    define NDNBOOST_PP_ITERATION_3 148
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 147 && BOOST_PP_ITERATION_START_3 >= 147
-#    define BOOST_PP_ITERATION_3 147
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 147 && NDNBOOST_PP_ITERATION_START_3 >= 147
+#    define NDNBOOST_PP_ITERATION_3 147
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 146 && BOOST_PP_ITERATION_START_3 >= 146
-#    define BOOST_PP_ITERATION_3 146
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 146 && NDNBOOST_PP_ITERATION_START_3 >= 146
+#    define NDNBOOST_PP_ITERATION_3 146
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 145 && BOOST_PP_ITERATION_START_3 >= 145
-#    define BOOST_PP_ITERATION_3 145
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 145 && NDNBOOST_PP_ITERATION_START_3 >= 145
+#    define NDNBOOST_PP_ITERATION_3 145
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 144 && BOOST_PP_ITERATION_START_3 >= 144
-#    define BOOST_PP_ITERATION_3 144
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 144 && NDNBOOST_PP_ITERATION_START_3 >= 144
+#    define NDNBOOST_PP_ITERATION_3 144
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 143 && BOOST_PP_ITERATION_START_3 >= 143
-#    define BOOST_PP_ITERATION_3 143
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 143 && NDNBOOST_PP_ITERATION_START_3 >= 143
+#    define NDNBOOST_PP_ITERATION_3 143
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 142 && BOOST_PP_ITERATION_START_3 >= 142
-#    define BOOST_PP_ITERATION_3 142
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 142 && NDNBOOST_PP_ITERATION_START_3 >= 142
+#    define NDNBOOST_PP_ITERATION_3 142
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 141 && BOOST_PP_ITERATION_START_3 >= 141
-#    define BOOST_PP_ITERATION_3 141
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 141 && NDNBOOST_PP_ITERATION_START_3 >= 141
+#    define NDNBOOST_PP_ITERATION_3 141
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 140 && BOOST_PP_ITERATION_START_3 >= 140
-#    define BOOST_PP_ITERATION_3 140
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 140 && NDNBOOST_PP_ITERATION_START_3 >= 140
+#    define NDNBOOST_PP_ITERATION_3 140
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 139 && BOOST_PP_ITERATION_START_3 >= 139
-#    define BOOST_PP_ITERATION_3 139
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 139 && NDNBOOST_PP_ITERATION_START_3 >= 139
+#    define NDNBOOST_PP_ITERATION_3 139
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 138 && BOOST_PP_ITERATION_START_3 >= 138
-#    define BOOST_PP_ITERATION_3 138
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 138 && NDNBOOST_PP_ITERATION_START_3 >= 138
+#    define NDNBOOST_PP_ITERATION_3 138
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 137 && BOOST_PP_ITERATION_START_3 >= 137
-#    define BOOST_PP_ITERATION_3 137
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 137 && NDNBOOST_PP_ITERATION_START_3 >= 137
+#    define NDNBOOST_PP_ITERATION_3 137
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 136 && BOOST_PP_ITERATION_START_3 >= 136
-#    define BOOST_PP_ITERATION_3 136
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 136 && NDNBOOST_PP_ITERATION_START_3 >= 136
+#    define NDNBOOST_PP_ITERATION_3 136
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 135 && BOOST_PP_ITERATION_START_3 >= 135
-#    define BOOST_PP_ITERATION_3 135
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 135 && NDNBOOST_PP_ITERATION_START_3 >= 135
+#    define NDNBOOST_PP_ITERATION_3 135
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 134 && BOOST_PP_ITERATION_START_3 >= 134
-#    define BOOST_PP_ITERATION_3 134
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 134 && NDNBOOST_PP_ITERATION_START_3 >= 134
+#    define NDNBOOST_PP_ITERATION_3 134
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 133 && BOOST_PP_ITERATION_START_3 >= 133
-#    define BOOST_PP_ITERATION_3 133
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 133 && NDNBOOST_PP_ITERATION_START_3 >= 133
+#    define NDNBOOST_PP_ITERATION_3 133
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 132 && BOOST_PP_ITERATION_START_3 >= 132
-#    define BOOST_PP_ITERATION_3 132
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 132 && NDNBOOST_PP_ITERATION_START_3 >= 132
+#    define NDNBOOST_PP_ITERATION_3 132
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 131 && BOOST_PP_ITERATION_START_3 >= 131
-#    define BOOST_PP_ITERATION_3 131
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 131 && NDNBOOST_PP_ITERATION_START_3 >= 131
+#    define NDNBOOST_PP_ITERATION_3 131
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 130 && BOOST_PP_ITERATION_START_3 >= 130
-#    define BOOST_PP_ITERATION_3 130
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 130 && NDNBOOST_PP_ITERATION_START_3 >= 130
+#    define NDNBOOST_PP_ITERATION_3 130
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 129 && BOOST_PP_ITERATION_START_3 >= 129
-#    define BOOST_PP_ITERATION_3 129
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 129 && NDNBOOST_PP_ITERATION_START_3 >= 129
+#    define NDNBOOST_PP_ITERATION_3 129
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 128 && BOOST_PP_ITERATION_START_3 >= 128
-#    define BOOST_PP_ITERATION_3 128
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 128 && NDNBOOST_PP_ITERATION_START_3 >= 128
+#    define NDNBOOST_PP_ITERATION_3 128
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 127 && BOOST_PP_ITERATION_START_3 >= 127
-#    define BOOST_PP_ITERATION_3 127
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 127 && NDNBOOST_PP_ITERATION_START_3 >= 127
+#    define NDNBOOST_PP_ITERATION_3 127
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 126 && BOOST_PP_ITERATION_START_3 >= 126
-#    define BOOST_PP_ITERATION_3 126
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 126 && NDNBOOST_PP_ITERATION_START_3 >= 126
+#    define NDNBOOST_PP_ITERATION_3 126
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 125 && BOOST_PP_ITERATION_START_3 >= 125
-#    define BOOST_PP_ITERATION_3 125
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 125 && NDNBOOST_PP_ITERATION_START_3 >= 125
+#    define NDNBOOST_PP_ITERATION_3 125
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 124 && BOOST_PP_ITERATION_START_3 >= 124
-#    define BOOST_PP_ITERATION_3 124
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 124 && NDNBOOST_PP_ITERATION_START_3 >= 124
+#    define NDNBOOST_PP_ITERATION_3 124
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 123 && BOOST_PP_ITERATION_START_3 >= 123
-#    define BOOST_PP_ITERATION_3 123
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 123 && NDNBOOST_PP_ITERATION_START_3 >= 123
+#    define NDNBOOST_PP_ITERATION_3 123
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 122 && BOOST_PP_ITERATION_START_3 >= 122
-#    define BOOST_PP_ITERATION_3 122
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 122 && NDNBOOST_PP_ITERATION_START_3 >= 122
+#    define NDNBOOST_PP_ITERATION_3 122
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 121 && BOOST_PP_ITERATION_START_3 >= 121
-#    define BOOST_PP_ITERATION_3 121
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 121 && NDNBOOST_PP_ITERATION_START_3 >= 121
+#    define NDNBOOST_PP_ITERATION_3 121
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 120 && BOOST_PP_ITERATION_START_3 >= 120
-#    define BOOST_PP_ITERATION_3 120
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 120 && NDNBOOST_PP_ITERATION_START_3 >= 120
+#    define NDNBOOST_PP_ITERATION_3 120
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 119 && BOOST_PP_ITERATION_START_3 >= 119
-#    define BOOST_PP_ITERATION_3 119
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 119 && NDNBOOST_PP_ITERATION_START_3 >= 119
+#    define NDNBOOST_PP_ITERATION_3 119
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 118 && BOOST_PP_ITERATION_START_3 >= 118
-#    define BOOST_PP_ITERATION_3 118
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 118 && NDNBOOST_PP_ITERATION_START_3 >= 118
+#    define NDNBOOST_PP_ITERATION_3 118
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 117 && BOOST_PP_ITERATION_START_3 >= 117
-#    define BOOST_PP_ITERATION_3 117
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 117 && NDNBOOST_PP_ITERATION_START_3 >= 117
+#    define NDNBOOST_PP_ITERATION_3 117
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 116 && BOOST_PP_ITERATION_START_3 >= 116
-#    define BOOST_PP_ITERATION_3 116
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 116 && NDNBOOST_PP_ITERATION_START_3 >= 116
+#    define NDNBOOST_PP_ITERATION_3 116
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 115 && BOOST_PP_ITERATION_START_3 >= 115
-#    define BOOST_PP_ITERATION_3 115
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 115 && NDNBOOST_PP_ITERATION_START_3 >= 115
+#    define NDNBOOST_PP_ITERATION_3 115
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 114 && BOOST_PP_ITERATION_START_3 >= 114
-#    define BOOST_PP_ITERATION_3 114
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 114 && NDNBOOST_PP_ITERATION_START_3 >= 114
+#    define NDNBOOST_PP_ITERATION_3 114
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 113 && BOOST_PP_ITERATION_START_3 >= 113
-#    define BOOST_PP_ITERATION_3 113
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 113 && NDNBOOST_PP_ITERATION_START_3 >= 113
+#    define NDNBOOST_PP_ITERATION_3 113
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 112 && BOOST_PP_ITERATION_START_3 >= 112
-#    define BOOST_PP_ITERATION_3 112
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 112 && NDNBOOST_PP_ITERATION_START_3 >= 112
+#    define NDNBOOST_PP_ITERATION_3 112
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 111 && BOOST_PP_ITERATION_START_3 >= 111
-#    define BOOST_PP_ITERATION_3 111
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 111 && NDNBOOST_PP_ITERATION_START_3 >= 111
+#    define NDNBOOST_PP_ITERATION_3 111
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 110 && BOOST_PP_ITERATION_START_3 >= 110
-#    define BOOST_PP_ITERATION_3 110
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 110 && NDNBOOST_PP_ITERATION_START_3 >= 110
+#    define NDNBOOST_PP_ITERATION_3 110
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 109 && BOOST_PP_ITERATION_START_3 >= 109
-#    define BOOST_PP_ITERATION_3 109
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 109 && NDNBOOST_PP_ITERATION_START_3 >= 109
+#    define NDNBOOST_PP_ITERATION_3 109
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 108 && BOOST_PP_ITERATION_START_3 >= 108
-#    define BOOST_PP_ITERATION_3 108
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 108 && NDNBOOST_PP_ITERATION_START_3 >= 108
+#    define NDNBOOST_PP_ITERATION_3 108
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 107 && BOOST_PP_ITERATION_START_3 >= 107
-#    define BOOST_PP_ITERATION_3 107
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 107 && NDNBOOST_PP_ITERATION_START_3 >= 107
+#    define NDNBOOST_PP_ITERATION_3 107
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 106 && BOOST_PP_ITERATION_START_3 >= 106
-#    define BOOST_PP_ITERATION_3 106
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 106 && NDNBOOST_PP_ITERATION_START_3 >= 106
+#    define NDNBOOST_PP_ITERATION_3 106
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 105 && BOOST_PP_ITERATION_START_3 >= 105
-#    define BOOST_PP_ITERATION_3 105
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 105 && NDNBOOST_PP_ITERATION_START_3 >= 105
+#    define NDNBOOST_PP_ITERATION_3 105
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 104 && BOOST_PP_ITERATION_START_3 >= 104
-#    define BOOST_PP_ITERATION_3 104
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 104 && NDNBOOST_PP_ITERATION_START_3 >= 104
+#    define NDNBOOST_PP_ITERATION_3 104
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 103 && BOOST_PP_ITERATION_START_3 >= 103
-#    define BOOST_PP_ITERATION_3 103
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 103 && NDNBOOST_PP_ITERATION_START_3 >= 103
+#    define NDNBOOST_PP_ITERATION_3 103
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 102 && BOOST_PP_ITERATION_START_3 >= 102
-#    define BOOST_PP_ITERATION_3 102
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 102 && NDNBOOST_PP_ITERATION_START_3 >= 102
+#    define NDNBOOST_PP_ITERATION_3 102
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 101 && BOOST_PP_ITERATION_START_3 >= 101
-#    define BOOST_PP_ITERATION_3 101
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 101 && NDNBOOST_PP_ITERATION_START_3 >= 101
+#    define NDNBOOST_PP_ITERATION_3 101
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 100 && BOOST_PP_ITERATION_START_3 >= 100
-#    define BOOST_PP_ITERATION_3 100
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 100 && NDNBOOST_PP_ITERATION_START_3 >= 100
+#    define NDNBOOST_PP_ITERATION_3 100
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 99 && BOOST_PP_ITERATION_START_3 >= 99
-#    define BOOST_PP_ITERATION_3 99
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 99 && NDNBOOST_PP_ITERATION_START_3 >= 99
+#    define NDNBOOST_PP_ITERATION_3 99
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 98 && BOOST_PP_ITERATION_START_3 >= 98
-#    define BOOST_PP_ITERATION_3 98
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 98 && NDNBOOST_PP_ITERATION_START_3 >= 98
+#    define NDNBOOST_PP_ITERATION_3 98
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 97 && BOOST_PP_ITERATION_START_3 >= 97
-#    define BOOST_PP_ITERATION_3 97
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 97 && NDNBOOST_PP_ITERATION_START_3 >= 97
+#    define NDNBOOST_PP_ITERATION_3 97
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 96 && BOOST_PP_ITERATION_START_3 >= 96
-#    define BOOST_PP_ITERATION_3 96
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 96 && NDNBOOST_PP_ITERATION_START_3 >= 96
+#    define NDNBOOST_PP_ITERATION_3 96
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 95 && BOOST_PP_ITERATION_START_3 >= 95
-#    define BOOST_PP_ITERATION_3 95
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 95 && NDNBOOST_PP_ITERATION_START_3 >= 95
+#    define NDNBOOST_PP_ITERATION_3 95
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 94 && BOOST_PP_ITERATION_START_3 >= 94
-#    define BOOST_PP_ITERATION_3 94
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 94 && NDNBOOST_PP_ITERATION_START_3 >= 94
+#    define NDNBOOST_PP_ITERATION_3 94
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 93 && BOOST_PP_ITERATION_START_3 >= 93
-#    define BOOST_PP_ITERATION_3 93
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 93 && NDNBOOST_PP_ITERATION_START_3 >= 93
+#    define NDNBOOST_PP_ITERATION_3 93
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 92 && BOOST_PP_ITERATION_START_3 >= 92
-#    define BOOST_PP_ITERATION_3 92
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 92 && NDNBOOST_PP_ITERATION_START_3 >= 92
+#    define NDNBOOST_PP_ITERATION_3 92
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 91 && BOOST_PP_ITERATION_START_3 >= 91
-#    define BOOST_PP_ITERATION_3 91
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 91 && NDNBOOST_PP_ITERATION_START_3 >= 91
+#    define NDNBOOST_PP_ITERATION_3 91
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 90 && BOOST_PP_ITERATION_START_3 >= 90
-#    define BOOST_PP_ITERATION_3 90
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 90 && NDNBOOST_PP_ITERATION_START_3 >= 90
+#    define NDNBOOST_PP_ITERATION_3 90
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 89 && BOOST_PP_ITERATION_START_3 >= 89
-#    define BOOST_PP_ITERATION_3 89
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 89 && NDNBOOST_PP_ITERATION_START_3 >= 89
+#    define NDNBOOST_PP_ITERATION_3 89
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 88 && BOOST_PP_ITERATION_START_3 >= 88
-#    define BOOST_PP_ITERATION_3 88
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 88 && NDNBOOST_PP_ITERATION_START_3 >= 88
+#    define NDNBOOST_PP_ITERATION_3 88
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 87 && BOOST_PP_ITERATION_START_3 >= 87
-#    define BOOST_PP_ITERATION_3 87
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 87 && NDNBOOST_PP_ITERATION_START_3 >= 87
+#    define NDNBOOST_PP_ITERATION_3 87
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 86 && BOOST_PP_ITERATION_START_3 >= 86
-#    define BOOST_PP_ITERATION_3 86
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 86 && NDNBOOST_PP_ITERATION_START_3 >= 86
+#    define NDNBOOST_PP_ITERATION_3 86
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 85 && BOOST_PP_ITERATION_START_3 >= 85
-#    define BOOST_PP_ITERATION_3 85
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 85 && NDNBOOST_PP_ITERATION_START_3 >= 85
+#    define NDNBOOST_PP_ITERATION_3 85
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 84 && BOOST_PP_ITERATION_START_3 >= 84
-#    define BOOST_PP_ITERATION_3 84
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 84 && NDNBOOST_PP_ITERATION_START_3 >= 84
+#    define NDNBOOST_PP_ITERATION_3 84
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 83 && BOOST_PP_ITERATION_START_3 >= 83
-#    define BOOST_PP_ITERATION_3 83
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 83 && NDNBOOST_PP_ITERATION_START_3 >= 83
+#    define NDNBOOST_PP_ITERATION_3 83
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 82 && BOOST_PP_ITERATION_START_3 >= 82
-#    define BOOST_PP_ITERATION_3 82
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 82 && NDNBOOST_PP_ITERATION_START_3 >= 82
+#    define NDNBOOST_PP_ITERATION_3 82
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 81 && BOOST_PP_ITERATION_START_3 >= 81
-#    define BOOST_PP_ITERATION_3 81
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 81 && NDNBOOST_PP_ITERATION_START_3 >= 81
+#    define NDNBOOST_PP_ITERATION_3 81
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 80 && BOOST_PP_ITERATION_START_3 >= 80
-#    define BOOST_PP_ITERATION_3 80
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 80 && NDNBOOST_PP_ITERATION_START_3 >= 80
+#    define NDNBOOST_PP_ITERATION_3 80
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 79 && BOOST_PP_ITERATION_START_3 >= 79
-#    define BOOST_PP_ITERATION_3 79
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 79 && NDNBOOST_PP_ITERATION_START_3 >= 79
+#    define NDNBOOST_PP_ITERATION_3 79
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 78 && BOOST_PP_ITERATION_START_3 >= 78
-#    define BOOST_PP_ITERATION_3 78
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 78 && NDNBOOST_PP_ITERATION_START_3 >= 78
+#    define NDNBOOST_PP_ITERATION_3 78
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 77 && BOOST_PP_ITERATION_START_3 >= 77
-#    define BOOST_PP_ITERATION_3 77
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 77 && NDNBOOST_PP_ITERATION_START_3 >= 77
+#    define NDNBOOST_PP_ITERATION_3 77
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 76 && BOOST_PP_ITERATION_START_3 >= 76
-#    define BOOST_PP_ITERATION_3 76
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 76 && NDNBOOST_PP_ITERATION_START_3 >= 76
+#    define NDNBOOST_PP_ITERATION_3 76
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 75 && BOOST_PP_ITERATION_START_3 >= 75
-#    define BOOST_PP_ITERATION_3 75
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 75 && NDNBOOST_PP_ITERATION_START_3 >= 75
+#    define NDNBOOST_PP_ITERATION_3 75
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 74 && BOOST_PP_ITERATION_START_3 >= 74
-#    define BOOST_PP_ITERATION_3 74
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 74 && NDNBOOST_PP_ITERATION_START_3 >= 74
+#    define NDNBOOST_PP_ITERATION_3 74
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 73 && BOOST_PP_ITERATION_START_3 >= 73
-#    define BOOST_PP_ITERATION_3 73
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 73 && NDNBOOST_PP_ITERATION_START_3 >= 73
+#    define NDNBOOST_PP_ITERATION_3 73
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 72 && BOOST_PP_ITERATION_START_3 >= 72
-#    define BOOST_PP_ITERATION_3 72
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 72 && NDNBOOST_PP_ITERATION_START_3 >= 72
+#    define NDNBOOST_PP_ITERATION_3 72
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 71 && BOOST_PP_ITERATION_START_3 >= 71
-#    define BOOST_PP_ITERATION_3 71
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 71 && NDNBOOST_PP_ITERATION_START_3 >= 71
+#    define NDNBOOST_PP_ITERATION_3 71
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 70 && BOOST_PP_ITERATION_START_3 >= 70
-#    define BOOST_PP_ITERATION_3 70
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 70 && NDNBOOST_PP_ITERATION_START_3 >= 70
+#    define NDNBOOST_PP_ITERATION_3 70
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 69 && BOOST_PP_ITERATION_START_3 >= 69
-#    define BOOST_PP_ITERATION_3 69
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 69 && NDNBOOST_PP_ITERATION_START_3 >= 69
+#    define NDNBOOST_PP_ITERATION_3 69
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 68 && BOOST_PP_ITERATION_START_3 >= 68
-#    define BOOST_PP_ITERATION_3 68
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 68 && NDNBOOST_PP_ITERATION_START_3 >= 68
+#    define NDNBOOST_PP_ITERATION_3 68
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 67 && BOOST_PP_ITERATION_START_3 >= 67
-#    define BOOST_PP_ITERATION_3 67
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 67 && NDNBOOST_PP_ITERATION_START_3 >= 67
+#    define NDNBOOST_PP_ITERATION_3 67
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 66 && BOOST_PP_ITERATION_START_3 >= 66
-#    define BOOST_PP_ITERATION_3 66
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 66 && NDNBOOST_PP_ITERATION_START_3 >= 66
+#    define NDNBOOST_PP_ITERATION_3 66
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 65 && BOOST_PP_ITERATION_START_3 >= 65
-#    define BOOST_PP_ITERATION_3 65
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 65 && NDNBOOST_PP_ITERATION_START_3 >= 65
+#    define NDNBOOST_PP_ITERATION_3 65
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 64 && BOOST_PP_ITERATION_START_3 >= 64
-#    define BOOST_PP_ITERATION_3 64
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 64 && NDNBOOST_PP_ITERATION_START_3 >= 64
+#    define NDNBOOST_PP_ITERATION_3 64
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 63 && BOOST_PP_ITERATION_START_3 >= 63
-#    define BOOST_PP_ITERATION_3 63
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 63 && NDNBOOST_PP_ITERATION_START_3 >= 63
+#    define NDNBOOST_PP_ITERATION_3 63
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 62 && BOOST_PP_ITERATION_START_3 >= 62
-#    define BOOST_PP_ITERATION_3 62
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 62 && NDNBOOST_PP_ITERATION_START_3 >= 62
+#    define NDNBOOST_PP_ITERATION_3 62
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 61 && BOOST_PP_ITERATION_START_3 >= 61
-#    define BOOST_PP_ITERATION_3 61
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 61 && NDNBOOST_PP_ITERATION_START_3 >= 61
+#    define NDNBOOST_PP_ITERATION_3 61
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 60 && BOOST_PP_ITERATION_START_3 >= 60
-#    define BOOST_PP_ITERATION_3 60
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 60 && NDNBOOST_PP_ITERATION_START_3 >= 60
+#    define NDNBOOST_PP_ITERATION_3 60
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 59 && BOOST_PP_ITERATION_START_3 >= 59
-#    define BOOST_PP_ITERATION_3 59
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 59 && NDNBOOST_PP_ITERATION_START_3 >= 59
+#    define NDNBOOST_PP_ITERATION_3 59
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 58 && BOOST_PP_ITERATION_START_3 >= 58
-#    define BOOST_PP_ITERATION_3 58
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 58 && NDNBOOST_PP_ITERATION_START_3 >= 58
+#    define NDNBOOST_PP_ITERATION_3 58
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 57 && BOOST_PP_ITERATION_START_3 >= 57
-#    define BOOST_PP_ITERATION_3 57
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 57 && NDNBOOST_PP_ITERATION_START_3 >= 57
+#    define NDNBOOST_PP_ITERATION_3 57
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 56 && BOOST_PP_ITERATION_START_3 >= 56
-#    define BOOST_PP_ITERATION_3 56
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 56 && NDNBOOST_PP_ITERATION_START_3 >= 56
+#    define NDNBOOST_PP_ITERATION_3 56
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 55 && BOOST_PP_ITERATION_START_3 >= 55
-#    define BOOST_PP_ITERATION_3 55
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 55 && NDNBOOST_PP_ITERATION_START_3 >= 55
+#    define NDNBOOST_PP_ITERATION_3 55
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 54 && BOOST_PP_ITERATION_START_3 >= 54
-#    define BOOST_PP_ITERATION_3 54
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 54 && NDNBOOST_PP_ITERATION_START_3 >= 54
+#    define NDNBOOST_PP_ITERATION_3 54
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 53 && BOOST_PP_ITERATION_START_3 >= 53
-#    define BOOST_PP_ITERATION_3 53
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 53 && NDNBOOST_PP_ITERATION_START_3 >= 53
+#    define NDNBOOST_PP_ITERATION_3 53
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 52 && BOOST_PP_ITERATION_START_3 >= 52
-#    define BOOST_PP_ITERATION_3 52
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 52 && NDNBOOST_PP_ITERATION_START_3 >= 52
+#    define NDNBOOST_PP_ITERATION_3 52
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 51 && BOOST_PP_ITERATION_START_3 >= 51
-#    define BOOST_PP_ITERATION_3 51
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 51 && NDNBOOST_PP_ITERATION_START_3 >= 51
+#    define NDNBOOST_PP_ITERATION_3 51
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 50 && BOOST_PP_ITERATION_START_3 >= 50
-#    define BOOST_PP_ITERATION_3 50
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 50 && NDNBOOST_PP_ITERATION_START_3 >= 50
+#    define NDNBOOST_PP_ITERATION_3 50
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 49 && BOOST_PP_ITERATION_START_3 >= 49
-#    define BOOST_PP_ITERATION_3 49
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 49 && NDNBOOST_PP_ITERATION_START_3 >= 49
+#    define NDNBOOST_PP_ITERATION_3 49
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 48 && BOOST_PP_ITERATION_START_3 >= 48
-#    define BOOST_PP_ITERATION_3 48
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 48 && NDNBOOST_PP_ITERATION_START_3 >= 48
+#    define NDNBOOST_PP_ITERATION_3 48
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 47 && BOOST_PP_ITERATION_START_3 >= 47
-#    define BOOST_PP_ITERATION_3 47
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 47 && NDNBOOST_PP_ITERATION_START_3 >= 47
+#    define NDNBOOST_PP_ITERATION_3 47
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 46 && BOOST_PP_ITERATION_START_3 >= 46
-#    define BOOST_PP_ITERATION_3 46
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 46 && NDNBOOST_PP_ITERATION_START_3 >= 46
+#    define NDNBOOST_PP_ITERATION_3 46
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 45 && BOOST_PP_ITERATION_START_3 >= 45
-#    define BOOST_PP_ITERATION_3 45
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 45 && NDNBOOST_PP_ITERATION_START_3 >= 45
+#    define NDNBOOST_PP_ITERATION_3 45
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 44 && BOOST_PP_ITERATION_START_3 >= 44
-#    define BOOST_PP_ITERATION_3 44
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 44 && NDNBOOST_PP_ITERATION_START_3 >= 44
+#    define NDNBOOST_PP_ITERATION_3 44
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 43 && BOOST_PP_ITERATION_START_3 >= 43
-#    define BOOST_PP_ITERATION_3 43
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 43 && NDNBOOST_PP_ITERATION_START_3 >= 43
+#    define NDNBOOST_PP_ITERATION_3 43
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 42 && BOOST_PP_ITERATION_START_3 >= 42
-#    define BOOST_PP_ITERATION_3 42
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 42 && NDNBOOST_PP_ITERATION_START_3 >= 42
+#    define NDNBOOST_PP_ITERATION_3 42
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 41 && BOOST_PP_ITERATION_START_3 >= 41
-#    define BOOST_PP_ITERATION_3 41
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 41 && NDNBOOST_PP_ITERATION_START_3 >= 41
+#    define NDNBOOST_PP_ITERATION_3 41
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 40 && BOOST_PP_ITERATION_START_3 >= 40
-#    define BOOST_PP_ITERATION_3 40
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 40 && NDNBOOST_PP_ITERATION_START_3 >= 40
+#    define NDNBOOST_PP_ITERATION_3 40
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 39 && BOOST_PP_ITERATION_START_3 >= 39
-#    define BOOST_PP_ITERATION_3 39
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 39 && NDNBOOST_PP_ITERATION_START_3 >= 39
+#    define NDNBOOST_PP_ITERATION_3 39
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 38 && BOOST_PP_ITERATION_START_3 >= 38
-#    define BOOST_PP_ITERATION_3 38
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 38 && NDNBOOST_PP_ITERATION_START_3 >= 38
+#    define NDNBOOST_PP_ITERATION_3 38
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 37 && BOOST_PP_ITERATION_START_3 >= 37
-#    define BOOST_PP_ITERATION_3 37
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 37 && NDNBOOST_PP_ITERATION_START_3 >= 37
+#    define NDNBOOST_PP_ITERATION_3 37
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 36 && BOOST_PP_ITERATION_START_3 >= 36
-#    define BOOST_PP_ITERATION_3 36
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 36 && NDNBOOST_PP_ITERATION_START_3 >= 36
+#    define NDNBOOST_PP_ITERATION_3 36
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 35 && BOOST_PP_ITERATION_START_3 >= 35
-#    define BOOST_PP_ITERATION_3 35
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 35 && NDNBOOST_PP_ITERATION_START_3 >= 35
+#    define NDNBOOST_PP_ITERATION_3 35
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 34 && BOOST_PP_ITERATION_START_3 >= 34
-#    define BOOST_PP_ITERATION_3 34
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 34 && NDNBOOST_PP_ITERATION_START_3 >= 34
+#    define NDNBOOST_PP_ITERATION_3 34
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 33 && BOOST_PP_ITERATION_START_3 >= 33
-#    define BOOST_PP_ITERATION_3 33
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 33 && NDNBOOST_PP_ITERATION_START_3 >= 33
+#    define NDNBOOST_PP_ITERATION_3 33
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 32 && BOOST_PP_ITERATION_START_3 >= 32
-#    define BOOST_PP_ITERATION_3 32
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 32 && NDNBOOST_PP_ITERATION_START_3 >= 32
+#    define NDNBOOST_PP_ITERATION_3 32
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 31 && BOOST_PP_ITERATION_START_3 >= 31
-#    define BOOST_PP_ITERATION_3 31
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 31 && NDNBOOST_PP_ITERATION_START_3 >= 31
+#    define NDNBOOST_PP_ITERATION_3 31
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 30 && BOOST_PP_ITERATION_START_3 >= 30
-#    define BOOST_PP_ITERATION_3 30
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 30 && NDNBOOST_PP_ITERATION_START_3 >= 30
+#    define NDNBOOST_PP_ITERATION_3 30
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 29 && BOOST_PP_ITERATION_START_3 >= 29
-#    define BOOST_PP_ITERATION_3 29
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 29 && NDNBOOST_PP_ITERATION_START_3 >= 29
+#    define NDNBOOST_PP_ITERATION_3 29
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 28 && BOOST_PP_ITERATION_START_3 >= 28
-#    define BOOST_PP_ITERATION_3 28
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 28 && NDNBOOST_PP_ITERATION_START_3 >= 28
+#    define NDNBOOST_PP_ITERATION_3 28
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 27 && BOOST_PP_ITERATION_START_3 >= 27
-#    define BOOST_PP_ITERATION_3 27
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 27 && NDNBOOST_PP_ITERATION_START_3 >= 27
+#    define NDNBOOST_PP_ITERATION_3 27
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 26 && BOOST_PP_ITERATION_START_3 >= 26
-#    define BOOST_PP_ITERATION_3 26
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 26 && NDNBOOST_PP_ITERATION_START_3 >= 26
+#    define NDNBOOST_PP_ITERATION_3 26
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 25 && BOOST_PP_ITERATION_START_3 >= 25
-#    define BOOST_PP_ITERATION_3 25
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 25 && NDNBOOST_PP_ITERATION_START_3 >= 25
+#    define NDNBOOST_PP_ITERATION_3 25
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 24 && BOOST_PP_ITERATION_START_3 >= 24
-#    define BOOST_PP_ITERATION_3 24
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 24 && NDNBOOST_PP_ITERATION_START_3 >= 24
+#    define NDNBOOST_PP_ITERATION_3 24
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 23 && BOOST_PP_ITERATION_START_3 >= 23
-#    define BOOST_PP_ITERATION_3 23
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 23 && NDNBOOST_PP_ITERATION_START_3 >= 23
+#    define NDNBOOST_PP_ITERATION_3 23
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 22 && BOOST_PP_ITERATION_START_3 >= 22
-#    define BOOST_PP_ITERATION_3 22
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 22 && NDNBOOST_PP_ITERATION_START_3 >= 22
+#    define NDNBOOST_PP_ITERATION_3 22
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 21 && BOOST_PP_ITERATION_START_3 >= 21
-#    define BOOST_PP_ITERATION_3 21
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 21 && NDNBOOST_PP_ITERATION_START_3 >= 21
+#    define NDNBOOST_PP_ITERATION_3 21
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 20 && BOOST_PP_ITERATION_START_3 >= 20
-#    define BOOST_PP_ITERATION_3 20
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 20 && NDNBOOST_PP_ITERATION_START_3 >= 20
+#    define NDNBOOST_PP_ITERATION_3 20
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 19 && BOOST_PP_ITERATION_START_3 >= 19
-#    define BOOST_PP_ITERATION_3 19
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 19 && NDNBOOST_PP_ITERATION_START_3 >= 19
+#    define NDNBOOST_PP_ITERATION_3 19
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 18 && BOOST_PP_ITERATION_START_3 >= 18
-#    define BOOST_PP_ITERATION_3 18
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 18 && NDNBOOST_PP_ITERATION_START_3 >= 18
+#    define NDNBOOST_PP_ITERATION_3 18
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 17 && BOOST_PP_ITERATION_START_3 >= 17
-#    define BOOST_PP_ITERATION_3 17
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 17 && NDNBOOST_PP_ITERATION_START_3 >= 17
+#    define NDNBOOST_PP_ITERATION_3 17
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 16 && BOOST_PP_ITERATION_START_3 >= 16
-#    define BOOST_PP_ITERATION_3 16
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 16 && NDNBOOST_PP_ITERATION_START_3 >= 16
+#    define NDNBOOST_PP_ITERATION_3 16
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 15 && BOOST_PP_ITERATION_START_3 >= 15
-#    define BOOST_PP_ITERATION_3 15
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 15 && NDNBOOST_PP_ITERATION_START_3 >= 15
+#    define NDNBOOST_PP_ITERATION_3 15
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 14 && BOOST_PP_ITERATION_START_3 >= 14
-#    define BOOST_PP_ITERATION_3 14
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 14 && NDNBOOST_PP_ITERATION_START_3 >= 14
+#    define NDNBOOST_PP_ITERATION_3 14
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 13 && BOOST_PP_ITERATION_START_3 >= 13
-#    define BOOST_PP_ITERATION_3 13
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 13 && NDNBOOST_PP_ITERATION_START_3 >= 13
+#    define NDNBOOST_PP_ITERATION_3 13
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 12 && BOOST_PP_ITERATION_START_3 >= 12
-#    define BOOST_PP_ITERATION_3 12
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 12 && NDNBOOST_PP_ITERATION_START_3 >= 12
+#    define NDNBOOST_PP_ITERATION_3 12
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 11 && BOOST_PP_ITERATION_START_3 >= 11
-#    define BOOST_PP_ITERATION_3 11
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 11 && NDNBOOST_PP_ITERATION_START_3 >= 11
+#    define NDNBOOST_PP_ITERATION_3 11
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 10 && BOOST_PP_ITERATION_START_3 >= 10
-#    define BOOST_PP_ITERATION_3 10
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 10 && NDNBOOST_PP_ITERATION_START_3 >= 10
+#    define NDNBOOST_PP_ITERATION_3 10
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 9 && BOOST_PP_ITERATION_START_3 >= 9
-#    define BOOST_PP_ITERATION_3 9
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 9 && NDNBOOST_PP_ITERATION_START_3 >= 9
+#    define NDNBOOST_PP_ITERATION_3 9
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 8 && BOOST_PP_ITERATION_START_3 >= 8
-#    define BOOST_PP_ITERATION_3 8
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 8 && NDNBOOST_PP_ITERATION_START_3 >= 8
+#    define NDNBOOST_PP_ITERATION_3 8
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 7 && BOOST_PP_ITERATION_START_3 >= 7
-#    define BOOST_PP_ITERATION_3 7
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 7 && NDNBOOST_PP_ITERATION_START_3 >= 7
+#    define NDNBOOST_PP_ITERATION_3 7
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 6 && BOOST_PP_ITERATION_START_3 >= 6
-#    define BOOST_PP_ITERATION_3 6
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 6 && NDNBOOST_PP_ITERATION_START_3 >= 6
+#    define NDNBOOST_PP_ITERATION_3 6
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 5 && BOOST_PP_ITERATION_START_3 >= 5
-#    define BOOST_PP_ITERATION_3 5
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 5 && NDNBOOST_PP_ITERATION_START_3 >= 5
+#    define NDNBOOST_PP_ITERATION_3 5
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 4 && BOOST_PP_ITERATION_START_3 >= 4
-#    define BOOST_PP_ITERATION_3 4
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 4 && NDNBOOST_PP_ITERATION_START_3 >= 4
+#    define NDNBOOST_PP_ITERATION_3 4
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 3 && BOOST_PP_ITERATION_START_3 >= 3
-#    define BOOST_PP_ITERATION_3 3
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 3 && NDNBOOST_PP_ITERATION_START_3 >= 3
+#    define NDNBOOST_PP_ITERATION_3 3
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 2 && BOOST_PP_ITERATION_START_3 >= 2
-#    define BOOST_PP_ITERATION_3 2
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 2 && NDNBOOST_PP_ITERATION_START_3 >= 2
+#    define NDNBOOST_PP_ITERATION_3 2
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 1 && BOOST_PP_ITERATION_START_3 >= 1
-#    define BOOST_PP_ITERATION_3 1
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 1 && NDNBOOST_PP_ITERATION_START_3 >= 1
+#    define NDNBOOST_PP_ITERATION_3 1
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 0 && BOOST_PP_ITERATION_START_3 >= 0
-#    define BOOST_PP_ITERATION_3 0
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
+# if NDNBOOST_PP_ITERATION_FINISH_3 <= 0 && NDNBOOST_PP_ITERATION_START_3 >= 0
+#    define NDNBOOST_PP_ITERATION_3 0
+#    include NDNBOOST_PP_FILENAME_3
+#    undef NDNBOOST_PP_ITERATION_3
 # endif
diff --git a/include/ndnboost/preprocessor/iteration/detail/iter/reverse4.hpp b/include/ndnboost/preprocessor/iteration/detail/iter/reverse4.hpp
index 3bcfba0..e9e7736 100644
--- a/include/ndnboost/preprocessor/iteration/detail/iter/reverse4.hpp
+++ b/include/ndnboost/preprocessor/iteration/detail/iter/reverse4.hpp
@@ -9,1288 +9,1288 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# if BOOST_PP_ITERATION_FINISH_4 <= 256 && BOOST_PP_ITERATION_START_4 >= 256
-#    define BOOST_PP_ITERATION_4 256
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 256 && NDNBOOST_PP_ITERATION_START_4 >= 256
+#    define NDNBOOST_PP_ITERATION_4 256
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 255 && BOOST_PP_ITERATION_START_4 >= 255
-#    define BOOST_PP_ITERATION_4 255
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 255 && NDNBOOST_PP_ITERATION_START_4 >= 255
+#    define NDNBOOST_PP_ITERATION_4 255
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 254 && BOOST_PP_ITERATION_START_4 >= 254
-#    define BOOST_PP_ITERATION_4 254
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 254 && NDNBOOST_PP_ITERATION_START_4 >= 254
+#    define NDNBOOST_PP_ITERATION_4 254
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 253 && BOOST_PP_ITERATION_START_4 >= 253
-#    define BOOST_PP_ITERATION_4 253
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 253 && NDNBOOST_PP_ITERATION_START_4 >= 253
+#    define NDNBOOST_PP_ITERATION_4 253
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 252 && BOOST_PP_ITERATION_START_4 >= 252
-#    define BOOST_PP_ITERATION_4 252
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 252 && NDNBOOST_PP_ITERATION_START_4 >= 252
+#    define NDNBOOST_PP_ITERATION_4 252
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 251 && BOOST_PP_ITERATION_START_4 >= 251
-#    define BOOST_PP_ITERATION_4 251
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 251 && NDNBOOST_PP_ITERATION_START_4 >= 251
+#    define NDNBOOST_PP_ITERATION_4 251
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 250 && BOOST_PP_ITERATION_START_4 >= 250
-#    define BOOST_PP_ITERATION_4 250
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 250 && NDNBOOST_PP_ITERATION_START_4 >= 250
+#    define NDNBOOST_PP_ITERATION_4 250
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 249 && BOOST_PP_ITERATION_START_4 >= 249
-#    define BOOST_PP_ITERATION_4 249
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 249 && NDNBOOST_PP_ITERATION_START_4 >= 249
+#    define NDNBOOST_PP_ITERATION_4 249
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 248 && BOOST_PP_ITERATION_START_4 >= 248
-#    define BOOST_PP_ITERATION_4 248
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 248 && NDNBOOST_PP_ITERATION_START_4 >= 248
+#    define NDNBOOST_PP_ITERATION_4 248
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 247 && BOOST_PP_ITERATION_START_4 >= 247
-#    define BOOST_PP_ITERATION_4 247
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 247 && NDNBOOST_PP_ITERATION_START_4 >= 247
+#    define NDNBOOST_PP_ITERATION_4 247
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 246 && BOOST_PP_ITERATION_START_4 >= 246
-#    define BOOST_PP_ITERATION_4 246
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 246 && NDNBOOST_PP_ITERATION_START_4 >= 246
+#    define NDNBOOST_PP_ITERATION_4 246
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 245 && BOOST_PP_ITERATION_START_4 >= 245
-#    define BOOST_PP_ITERATION_4 245
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 245 && NDNBOOST_PP_ITERATION_START_4 >= 245
+#    define NDNBOOST_PP_ITERATION_4 245
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 244 && BOOST_PP_ITERATION_START_4 >= 244
-#    define BOOST_PP_ITERATION_4 244
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 244 && NDNBOOST_PP_ITERATION_START_4 >= 244
+#    define NDNBOOST_PP_ITERATION_4 244
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 243 && BOOST_PP_ITERATION_START_4 >= 243
-#    define BOOST_PP_ITERATION_4 243
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 243 && NDNBOOST_PP_ITERATION_START_4 >= 243
+#    define NDNBOOST_PP_ITERATION_4 243
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 242 && BOOST_PP_ITERATION_START_4 >= 242
-#    define BOOST_PP_ITERATION_4 242
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 242 && NDNBOOST_PP_ITERATION_START_4 >= 242
+#    define NDNBOOST_PP_ITERATION_4 242
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 241 && BOOST_PP_ITERATION_START_4 >= 241
-#    define BOOST_PP_ITERATION_4 241
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 241 && NDNBOOST_PP_ITERATION_START_4 >= 241
+#    define NDNBOOST_PP_ITERATION_4 241
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 240 && BOOST_PP_ITERATION_START_4 >= 240
-#    define BOOST_PP_ITERATION_4 240
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 240 && NDNBOOST_PP_ITERATION_START_4 >= 240
+#    define NDNBOOST_PP_ITERATION_4 240
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 239 && BOOST_PP_ITERATION_START_4 >= 239
-#    define BOOST_PP_ITERATION_4 239
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 239 && NDNBOOST_PP_ITERATION_START_4 >= 239
+#    define NDNBOOST_PP_ITERATION_4 239
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 238 && BOOST_PP_ITERATION_START_4 >= 238
-#    define BOOST_PP_ITERATION_4 238
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 238 && NDNBOOST_PP_ITERATION_START_4 >= 238
+#    define NDNBOOST_PP_ITERATION_4 238
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 237 && BOOST_PP_ITERATION_START_4 >= 237
-#    define BOOST_PP_ITERATION_4 237
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 237 && NDNBOOST_PP_ITERATION_START_4 >= 237
+#    define NDNBOOST_PP_ITERATION_4 237
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 236 && BOOST_PP_ITERATION_START_4 >= 236
-#    define BOOST_PP_ITERATION_4 236
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 236 && NDNBOOST_PP_ITERATION_START_4 >= 236
+#    define NDNBOOST_PP_ITERATION_4 236
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 235 && BOOST_PP_ITERATION_START_4 >= 235
-#    define BOOST_PP_ITERATION_4 235
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 235 && NDNBOOST_PP_ITERATION_START_4 >= 235
+#    define NDNBOOST_PP_ITERATION_4 235
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 234 && BOOST_PP_ITERATION_START_4 >= 234
-#    define BOOST_PP_ITERATION_4 234
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 234 && NDNBOOST_PP_ITERATION_START_4 >= 234
+#    define NDNBOOST_PP_ITERATION_4 234
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 233 && BOOST_PP_ITERATION_START_4 >= 233
-#    define BOOST_PP_ITERATION_4 233
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 233 && NDNBOOST_PP_ITERATION_START_4 >= 233
+#    define NDNBOOST_PP_ITERATION_4 233
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 232 && BOOST_PP_ITERATION_START_4 >= 232
-#    define BOOST_PP_ITERATION_4 232
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 232 && NDNBOOST_PP_ITERATION_START_4 >= 232
+#    define NDNBOOST_PP_ITERATION_4 232
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 231 && BOOST_PP_ITERATION_START_4 >= 231
-#    define BOOST_PP_ITERATION_4 231
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 231 && NDNBOOST_PP_ITERATION_START_4 >= 231
+#    define NDNBOOST_PP_ITERATION_4 231
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 230 && BOOST_PP_ITERATION_START_4 >= 230
-#    define BOOST_PP_ITERATION_4 230
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 230 && NDNBOOST_PP_ITERATION_START_4 >= 230
+#    define NDNBOOST_PP_ITERATION_4 230
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 229 && BOOST_PP_ITERATION_START_4 >= 229
-#    define BOOST_PP_ITERATION_4 229
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 229 && NDNBOOST_PP_ITERATION_START_4 >= 229
+#    define NDNBOOST_PP_ITERATION_4 229
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 228 && BOOST_PP_ITERATION_START_4 >= 228
-#    define BOOST_PP_ITERATION_4 228
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 228 && NDNBOOST_PP_ITERATION_START_4 >= 228
+#    define NDNBOOST_PP_ITERATION_4 228
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 227 && BOOST_PP_ITERATION_START_4 >= 227
-#    define BOOST_PP_ITERATION_4 227
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 227 && NDNBOOST_PP_ITERATION_START_4 >= 227
+#    define NDNBOOST_PP_ITERATION_4 227
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 226 && BOOST_PP_ITERATION_START_4 >= 226
-#    define BOOST_PP_ITERATION_4 226
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 226 && NDNBOOST_PP_ITERATION_START_4 >= 226
+#    define NDNBOOST_PP_ITERATION_4 226
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 225 && BOOST_PP_ITERATION_START_4 >= 225
-#    define BOOST_PP_ITERATION_4 225
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 225 && NDNBOOST_PP_ITERATION_START_4 >= 225
+#    define NDNBOOST_PP_ITERATION_4 225
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 224 && BOOST_PP_ITERATION_START_4 >= 224
-#    define BOOST_PP_ITERATION_4 224
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 224 && NDNBOOST_PP_ITERATION_START_4 >= 224
+#    define NDNBOOST_PP_ITERATION_4 224
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 223 && BOOST_PP_ITERATION_START_4 >= 223
-#    define BOOST_PP_ITERATION_4 223
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 223 && NDNBOOST_PP_ITERATION_START_4 >= 223
+#    define NDNBOOST_PP_ITERATION_4 223
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 222 && BOOST_PP_ITERATION_START_4 >= 222
-#    define BOOST_PP_ITERATION_4 222
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 222 && NDNBOOST_PP_ITERATION_START_4 >= 222
+#    define NDNBOOST_PP_ITERATION_4 222
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 221 && BOOST_PP_ITERATION_START_4 >= 221
-#    define BOOST_PP_ITERATION_4 221
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 221 && NDNBOOST_PP_ITERATION_START_4 >= 221
+#    define NDNBOOST_PP_ITERATION_4 221
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 220 && BOOST_PP_ITERATION_START_4 >= 220
-#    define BOOST_PP_ITERATION_4 220
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 220 && NDNBOOST_PP_ITERATION_START_4 >= 220
+#    define NDNBOOST_PP_ITERATION_4 220
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 219 && BOOST_PP_ITERATION_START_4 >= 219
-#    define BOOST_PP_ITERATION_4 219
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 219 && NDNBOOST_PP_ITERATION_START_4 >= 219
+#    define NDNBOOST_PP_ITERATION_4 219
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 218 && BOOST_PP_ITERATION_START_4 >= 218
-#    define BOOST_PP_ITERATION_4 218
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 218 && NDNBOOST_PP_ITERATION_START_4 >= 218
+#    define NDNBOOST_PP_ITERATION_4 218
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 217 && BOOST_PP_ITERATION_START_4 >= 217
-#    define BOOST_PP_ITERATION_4 217
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 217 && NDNBOOST_PP_ITERATION_START_4 >= 217
+#    define NDNBOOST_PP_ITERATION_4 217
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 216 && BOOST_PP_ITERATION_START_4 >= 216
-#    define BOOST_PP_ITERATION_4 216
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 216 && NDNBOOST_PP_ITERATION_START_4 >= 216
+#    define NDNBOOST_PP_ITERATION_4 216
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 215 && BOOST_PP_ITERATION_START_4 >= 215
-#    define BOOST_PP_ITERATION_4 215
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 215 && NDNBOOST_PP_ITERATION_START_4 >= 215
+#    define NDNBOOST_PP_ITERATION_4 215
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 214 && BOOST_PP_ITERATION_START_4 >= 214
-#    define BOOST_PP_ITERATION_4 214
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 214 && NDNBOOST_PP_ITERATION_START_4 >= 214
+#    define NDNBOOST_PP_ITERATION_4 214
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 213 && BOOST_PP_ITERATION_START_4 >= 213
-#    define BOOST_PP_ITERATION_4 213
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 213 && NDNBOOST_PP_ITERATION_START_4 >= 213
+#    define NDNBOOST_PP_ITERATION_4 213
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 212 && BOOST_PP_ITERATION_START_4 >= 212
-#    define BOOST_PP_ITERATION_4 212
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 212 && NDNBOOST_PP_ITERATION_START_4 >= 212
+#    define NDNBOOST_PP_ITERATION_4 212
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 211 && BOOST_PP_ITERATION_START_4 >= 211
-#    define BOOST_PP_ITERATION_4 211
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 211 && NDNBOOST_PP_ITERATION_START_4 >= 211
+#    define NDNBOOST_PP_ITERATION_4 211
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 210 && BOOST_PP_ITERATION_START_4 >= 210
-#    define BOOST_PP_ITERATION_4 210
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 210 && NDNBOOST_PP_ITERATION_START_4 >= 210
+#    define NDNBOOST_PP_ITERATION_4 210
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 209 && BOOST_PP_ITERATION_START_4 >= 209
-#    define BOOST_PP_ITERATION_4 209
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 209 && NDNBOOST_PP_ITERATION_START_4 >= 209
+#    define NDNBOOST_PP_ITERATION_4 209
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 208 && BOOST_PP_ITERATION_START_4 >= 208
-#    define BOOST_PP_ITERATION_4 208
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 208 && NDNBOOST_PP_ITERATION_START_4 >= 208
+#    define NDNBOOST_PP_ITERATION_4 208
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 207 && BOOST_PP_ITERATION_START_4 >= 207
-#    define BOOST_PP_ITERATION_4 207
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 207 && NDNBOOST_PP_ITERATION_START_4 >= 207
+#    define NDNBOOST_PP_ITERATION_4 207
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 206 && BOOST_PP_ITERATION_START_4 >= 206
-#    define BOOST_PP_ITERATION_4 206
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 206 && NDNBOOST_PP_ITERATION_START_4 >= 206
+#    define NDNBOOST_PP_ITERATION_4 206
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 205 && BOOST_PP_ITERATION_START_4 >= 205
-#    define BOOST_PP_ITERATION_4 205
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 205 && NDNBOOST_PP_ITERATION_START_4 >= 205
+#    define NDNBOOST_PP_ITERATION_4 205
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 204 && BOOST_PP_ITERATION_START_4 >= 204
-#    define BOOST_PP_ITERATION_4 204
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 204 && NDNBOOST_PP_ITERATION_START_4 >= 204
+#    define NDNBOOST_PP_ITERATION_4 204
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 203 && BOOST_PP_ITERATION_START_4 >= 203
-#    define BOOST_PP_ITERATION_4 203
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 203 && NDNBOOST_PP_ITERATION_START_4 >= 203
+#    define NDNBOOST_PP_ITERATION_4 203
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 202 && BOOST_PP_ITERATION_START_4 >= 202
-#    define BOOST_PP_ITERATION_4 202
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 202 && NDNBOOST_PP_ITERATION_START_4 >= 202
+#    define NDNBOOST_PP_ITERATION_4 202
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 201 && BOOST_PP_ITERATION_START_4 >= 201
-#    define BOOST_PP_ITERATION_4 201
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 201 && NDNBOOST_PP_ITERATION_START_4 >= 201
+#    define NDNBOOST_PP_ITERATION_4 201
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 200 && BOOST_PP_ITERATION_START_4 >= 200
-#    define BOOST_PP_ITERATION_4 200
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 200 && NDNBOOST_PP_ITERATION_START_4 >= 200
+#    define NDNBOOST_PP_ITERATION_4 200
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 199 && BOOST_PP_ITERATION_START_4 >= 199
-#    define BOOST_PP_ITERATION_4 199
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 199 && NDNBOOST_PP_ITERATION_START_4 >= 199
+#    define NDNBOOST_PP_ITERATION_4 199
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 198 && BOOST_PP_ITERATION_START_4 >= 198
-#    define BOOST_PP_ITERATION_4 198
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 198 && NDNBOOST_PP_ITERATION_START_4 >= 198
+#    define NDNBOOST_PP_ITERATION_4 198
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 197 && BOOST_PP_ITERATION_START_4 >= 197
-#    define BOOST_PP_ITERATION_4 197
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 197 && NDNBOOST_PP_ITERATION_START_4 >= 197
+#    define NDNBOOST_PP_ITERATION_4 197
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 196 && BOOST_PP_ITERATION_START_4 >= 196
-#    define BOOST_PP_ITERATION_4 196
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 196 && NDNBOOST_PP_ITERATION_START_4 >= 196
+#    define NDNBOOST_PP_ITERATION_4 196
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 195 && BOOST_PP_ITERATION_START_4 >= 195
-#    define BOOST_PP_ITERATION_4 195
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 195 && NDNBOOST_PP_ITERATION_START_4 >= 195
+#    define NDNBOOST_PP_ITERATION_4 195
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 194 && BOOST_PP_ITERATION_START_4 >= 194
-#    define BOOST_PP_ITERATION_4 194
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 194 && NDNBOOST_PP_ITERATION_START_4 >= 194
+#    define NDNBOOST_PP_ITERATION_4 194
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 193 && BOOST_PP_ITERATION_START_4 >= 193
-#    define BOOST_PP_ITERATION_4 193
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 193 && NDNBOOST_PP_ITERATION_START_4 >= 193
+#    define NDNBOOST_PP_ITERATION_4 193
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 192 && BOOST_PP_ITERATION_START_4 >= 192
-#    define BOOST_PP_ITERATION_4 192
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 192 && NDNBOOST_PP_ITERATION_START_4 >= 192
+#    define NDNBOOST_PP_ITERATION_4 192
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 191 && BOOST_PP_ITERATION_START_4 >= 191
-#    define BOOST_PP_ITERATION_4 191
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 191 && NDNBOOST_PP_ITERATION_START_4 >= 191
+#    define NDNBOOST_PP_ITERATION_4 191
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 190 && BOOST_PP_ITERATION_START_4 >= 190
-#    define BOOST_PP_ITERATION_4 190
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 190 && NDNBOOST_PP_ITERATION_START_4 >= 190
+#    define NDNBOOST_PP_ITERATION_4 190
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 189 && BOOST_PP_ITERATION_START_4 >= 189
-#    define BOOST_PP_ITERATION_4 189
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 189 && NDNBOOST_PP_ITERATION_START_4 >= 189
+#    define NDNBOOST_PP_ITERATION_4 189
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 188 && BOOST_PP_ITERATION_START_4 >= 188
-#    define BOOST_PP_ITERATION_4 188
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 188 && NDNBOOST_PP_ITERATION_START_4 >= 188
+#    define NDNBOOST_PP_ITERATION_4 188
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 187 && BOOST_PP_ITERATION_START_4 >= 187
-#    define BOOST_PP_ITERATION_4 187
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 187 && NDNBOOST_PP_ITERATION_START_4 >= 187
+#    define NDNBOOST_PP_ITERATION_4 187
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 186 && BOOST_PP_ITERATION_START_4 >= 186
-#    define BOOST_PP_ITERATION_4 186
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 186 && NDNBOOST_PP_ITERATION_START_4 >= 186
+#    define NDNBOOST_PP_ITERATION_4 186
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 185 && BOOST_PP_ITERATION_START_4 >= 185
-#    define BOOST_PP_ITERATION_4 185
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 185 && NDNBOOST_PP_ITERATION_START_4 >= 185
+#    define NDNBOOST_PP_ITERATION_4 185
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 184 && BOOST_PP_ITERATION_START_4 >= 184
-#    define BOOST_PP_ITERATION_4 184
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 184 && NDNBOOST_PP_ITERATION_START_4 >= 184
+#    define NDNBOOST_PP_ITERATION_4 184
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 183 && BOOST_PP_ITERATION_START_4 >= 183
-#    define BOOST_PP_ITERATION_4 183
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 183 && NDNBOOST_PP_ITERATION_START_4 >= 183
+#    define NDNBOOST_PP_ITERATION_4 183
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 182 && BOOST_PP_ITERATION_START_4 >= 182
-#    define BOOST_PP_ITERATION_4 182
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 182 && NDNBOOST_PP_ITERATION_START_4 >= 182
+#    define NDNBOOST_PP_ITERATION_4 182
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 181 && BOOST_PP_ITERATION_START_4 >= 181
-#    define BOOST_PP_ITERATION_4 181
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 181 && NDNBOOST_PP_ITERATION_START_4 >= 181
+#    define NDNBOOST_PP_ITERATION_4 181
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 180 && BOOST_PP_ITERATION_START_4 >= 180
-#    define BOOST_PP_ITERATION_4 180
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 180 && NDNBOOST_PP_ITERATION_START_4 >= 180
+#    define NDNBOOST_PP_ITERATION_4 180
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 179 && BOOST_PP_ITERATION_START_4 >= 179
-#    define BOOST_PP_ITERATION_4 179
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 179 && NDNBOOST_PP_ITERATION_START_4 >= 179
+#    define NDNBOOST_PP_ITERATION_4 179
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 178 && BOOST_PP_ITERATION_START_4 >= 178
-#    define BOOST_PP_ITERATION_4 178
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 178 && NDNBOOST_PP_ITERATION_START_4 >= 178
+#    define NDNBOOST_PP_ITERATION_4 178
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 177 && BOOST_PP_ITERATION_START_4 >= 177
-#    define BOOST_PP_ITERATION_4 177
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 177 && NDNBOOST_PP_ITERATION_START_4 >= 177
+#    define NDNBOOST_PP_ITERATION_4 177
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 176 && BOOST_PP_ITERATION_START_4 >= 176
-#    define BOOST_PP_ITERATION_4 176
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 176 && NDNBOOST_PP_ITERATION_START_4 >= 176
+#    define NDNBOOST_PP_ITERATION_4 176
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 175 && BOOST_PP_ITERATION_START_4 >= 175
-#    define BOOST_PP_ITERATION_4 175
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 175 && NDNBOOST_PP_ITERATION_START_4 >= 175
+#    define NDNBOOST_PP_ITERATION_4 175
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 174 && BOOST_PP_ITERATION_START_4 >= 174
-#    define BOOST_PP_ITERATION_4 174
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 174 && NDNBOOST_PP_ITERATION_START_4 >= 174
+#    define NDNBOOST_PP_ITERATION_4 174
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 173 && BOOST_PP_ITERATION_START_4 >= 173
-#    define BOOST_PP_ITERATION_4 173
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 173 && NDNBOOST_PP_ITERATION_START_4 >= 173
+#    define NDNBOOST_PP_ITERATION_4 173
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 172 && BOOST_PP_ITERATION_START_4 >= 172
-#    define BOOST_PP_ITERATION_4 172
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 172 && NDNBOOST_PP_ITERATION_START_4 >= 172
+#    define NDNBOOST_PP_ITERATION_4 172
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 171 && BOOST_PP_ITERATION_START_4 >= 171
-#    define BOOST_PP_ITERATION_4 171
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 171 && NDNBOOST_PP_ITERATION_START_4 >= 171
+#    define NDNBOOST_PP_ITERATION_4 171
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 170 && BOOST_PP_ITERATION_START_4 >= 170
-#    define BOOST_PP_ITERATION_4 170
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 170 && NDNBOOST_PP_ITERATION_START_4 >= 170
+#    define NDNBOOST_PP_ITERATION_4 170
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 169 && BOOST_PP_ITERATION_START_4 >= 169
-#    define BOOST_PP_ITERATION_4 169
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 169 && NDNBOOST_PP_ITERATION_START_4 >= 169
+#    define NDNBOOST_PP_ITERATION_4 169
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 168 && BOOST_PP_ITERATION_START_4 >= 168
-#    define BOOST_PP_ITERATION_4 168
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 168 && NDNBOOST_PP_ITERATION_START_4 >= 168
+#    define NDNBOOST_PP_ITERATION_4 168
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 167 && BOOST_PP_ITERATION_START_4 >= 167
-#    define BOOST_PP_ITERATION_4 167
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 167 && NDNBOOST_PP_ITERATION_START_4 >= 167
+#    define NDNBOOST_PP_ITERATION_4 167
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 166 && BOOST_PP_ITERATION_START_4 >= 166
-#    define BOOST_PP_ITERATION_4 166
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 166 && NDNBOOST_PP_ITERATION_START_4 >= 166
+#    define NDNBOOST_PP_ITERATION_4 166
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 165 && BOOST_PP_ITERATION_START_4 >= 165
-#    define BOOST_PP_ITERATION_4 165
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 165 && NDNBOOST_PP_ITERATION_START_4 >= 165
+#    define NDNBOOST_PP_ITERATION_4 165
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 164 && BOOST_PP_ITERATION_START_4 >= 164
-#    define BOOST_PP_ITERATION_4 164
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 164 && NDNBOOST_PP_ITERATION_START_4 >= 164
+#    define NDNBOOST_PP_ITERATION_4 164
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 163 && BOOST_PP_ITERATION_START_4 >= 163
-#    define BOOST_PP_ITERATION_4 163
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 163 && NDNBOOST_PP_ITERATION_START_4 >= 163
+#    define NDNBOOST_PP_ITERATION_4 163
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 162 && BOOST_PP_ITERATION_START_4 >= 162
-#    define BOOST_PP_ITERATION_4 162
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 162 && NDNBOOST_PP_ITERATION_START_4 >= 162
+#    define NDNBOOST_PP_ITERATION_4 162
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 161 && BOOST_PP_ITERATION_START_4 >= 161
-#    define BOOST_PP_ITERATION_4 161
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 161 && NDNBOOST_PP_ITERATION_START_4 >= 161
+#    define NDNBOOST_PP_ITERATION_4 161
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 160 && BOOST_PP_ITERATION_START_4 >= 160
-#    define BOOST_PP_ITERATION_4 160
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 160 && NDNBOOST_PP_ITERATION_START_4 >= 160
+#    define NDNBOOST_PP_ITERATION_4 160
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 159 && BOOST_PP_ITERATION_START_4 >= 159
-#    define BOOST_PP_ITERATION_4 159
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 159 && NDNBOOST_PP_ITERATION_START_4 >= 159
+#    define NDNBOOST_PP_ITERATION_4 159
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 158 && BOOST_PP_ITERATION_START_4 >= 158
-#    define BOOST_PP_ITERATION_4 158
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 158 && NDNBOOST_PP_ITERATION_START_4 >= 158
+#    define NDNBOOST_PP_ITERATION_4 158
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 157 && BOOST_PP_ITERATION_START_4 >= 157
-#    define BOOST_PP_ITERATION_4 157
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 157 && NDNBOOST_PP_ITERATION_START_4 >= 157
+#    define NDNBOOST_PP_ITERATION_4 157
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 156 && BOOST_PP_ITERATION_START_4 >= 156
-#    define BOOST_PP_ITERATION_4 156
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 156 && NDNBOOST_PP_ITERATION_START_4 >= 156
+#    define NDNBOOST_PP_ITERATION_4 156
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 155 && BOOST_PP_ITERATION_START_4 >= 155
-#    define BOOST_PP_ITERATION_4 155
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 155 && NDNBOOST_PP_ITERATION_START_4 >= 155
+#    define NDNBOOST_PP_ITERATION_4 155
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 154 && BOOST_PP_ITERATION_START_4 >= 154
-#    define BOOST_PP_ITERATION_4 154
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 154 && NDNBOOST_PP_ITERATION_START_4 >= 154
+#    define NDNBOOST_PP_ITERATION_4 154
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 153 && BOOST_PP_ITERATION_START_4 >= 153
-#    define BOOST_PP_ITERATION_4 153
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 153 && NDNBOOST_PP_ITERATION_START_4 >= 153
+#    define NDNBOOST_PP_ITERATION_4 153
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 152 && BOOST_PP_ITERATION_START_4 >= 152
-#    define BOOST_PP_ITERATION_4 152
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 152 && NDNBOOST_PP_ITERATION_START_4 >= 152
+#    define NDNBOOST_PP_ITERATION_4 152
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 151 && BOOST_PP_ITERATION_START_4 >= 151
-#    define BOOST_PP_ITERATION_4 151
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 151 && NDNBOOST_PP_ITERATION_START_4 >= 151
+#    define NDNBOOST_PP_ITERATION_4 151
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 150 && BOOST_PP_ITERATION_START_4 >= 150
-#    define BOOST_PP_ITERATION_4 150
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 150 && NDNBOOST_PP_ITERATION_START_4 >= 150
+#    define NDNBOOST_PP_ITERATION_4 150
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 149 && BOOST_PP_ITERATION_START_4 >= 149
-#    define BOOST_PP_ITERATION_4 149
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 149 && NDNBOOST_PP_ITERATION_START_4 >= 149
+#    define NDNBOOST_PP_ITERATION_4 149
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 148 && BOOST_PP_ITERATION_START_4 >= 148
-#    define BOOST_PP_ITERATION_4 148
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 148 && NDNBOOST_PP_ITERATION_START_4 >= 148
+#    define NDNBOOST_PP_ITERATION_4 148
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 147 && BOOST_PP_ITERATION_START_4 >= 147
-#    define BOOST_PP_ITERATION_4 147
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 147 && NDNBOOST_PP_ITERATION_START_4 >= 147
+#    define NDNBOOST_PP_ITERATION_4 147
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 146 && BOOST_PP_ITERATION_START_4 >= 146
-#    define BOOST_PP_ITERATION_4 146
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 146 && NDNBOOST_PP_ITERATION_START_4 >= 146
+#    define NDNBOOST_PP_ITERATION_4 146
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 145 && BOOST_PP_ITERATION_START_4 >= 145
-#    define BOOST_PP_ITERATION_4 145
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 145 && NDNBOOST_PP_ITERATION_START_4 >= 145
+#    define NDNBOOST_PP_ITERATION_4 145
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 144 && BOOST_PP_ITERATION_START_4 >= 144
-#    define BOOST_PP_ITERATION_4 144
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 144 && NDNBOOST_PP_ITERATION_START_4 >= 144
+#    define NDNBOOST_PP_ITERATION_4 144
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 143 && BOOST_PP_ITERATION_START_4 >= 143
-#    define BOOST_PP_ITERATION_4 143
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 143 && NDNBOOST_PP_ITERATION_START_4 >= 143
+#    define NDNBOOST_PP_ITERATION_4 143
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 142 && BOOST_PP_ITERATION_START_4 >= 142
-#    define BOOST_PP_ITERATION_4 142
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 142 && NDNBOOST_PP_ITERATION_START_4 >= 142
+#    define NDNBOOST_PP_ITERATION_4 142
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 141 && BOOST_PP_ITERATION_START_4 >= 141
-#    define BOOST_PP_ITERATION_4 141
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 141 && NDNBOOST_PP_ITERATION_START_4 >= 141
+#    define NDNBOOST_PP_ITERATION_4 141
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 140 && BOOST_PP_ITERATION_START_4 >= 140
-#    define BOOST_PP_ITERATION_4 140
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 140 && NDNBOOST_PP_ITERATION_START_4 >= 140
+#    define NDNBOOST_PP_ITERATION_4 140
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 139 && BOOST_PP_ITERATION_START_4 >= 139
-#    define BOOST_PP_ITERATION_4 139
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 139 && NDNBOOST_PP_ITERATION_START_4 >= 139
+#    define NDNBOOST_PP_ITERATION_4 139
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 138 && BOOST_PP_ITERATION_START_4 >= 138
-#    define BOOST_PP_ITERATION_4 138
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 138 && NDNBOOST_PP_ITERATION_START_4 >= 138
+#    define NDNBOOST_PP_ITERATION_4 138
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 137 && BOOST_PP_ITERATION_START_4 >= 137
-#    define BOOST_PP_ITERATION_4 137
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 137 && NDNBOOST_PP_ITERATION_START_4 >= 137
+#    define NDNBOOST_PP_ITERATION_4 137
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 136 && BOOST_PP_ITERATION_START_4 >= 136
-#    define BOOST_PP_ITERATION_4 136
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 136 && NDNBOOST_PP_ITERATION_START_4 >= 136
+#    define NDNBOOST_PP_ITERATION_4 136
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 135 && BOOST_PP_ITERATION_START_4 >= 135
-#    define BOOST_PP_ITERATION_4 135
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 135 && NDNBOOST_PP_ITERATION_START_4 >= 135
+#    define NDNBOOST_PP_ITERATION_4 135
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 134 && BOOST_PP_ITERATION_START_4 >= 134
-#    define BOOST_PP_ITERATION_4 134
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 134 && NDNBOOST_PP_ITERATION_START_4 >= 134
+#    define NDNBOOST_PP_ITERATION_4 134
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 133 && BOOST_PP_ITERATION_START_4 >= 133
-#    define BOOST_PP_ITERATION_4 133
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 133 && NDNBOOST_PP_ITERATION_START_4 >= 133
+#    define NDNBOOST_PP_ITERATION_4 133
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 132 && BOOST_PP_ITERATION_START_4 >= 132
-#    define BOOST_PP_ITERATION_4 132
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 132 && NDNBOOST_PP_ITERATION_START_4 >= 132
+#    define NDNBOOST_PP_ITERATION_4 132
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 131 && BOOST_PP_ITERATION_START_4 >= 131
-#    define BOOST_PP_ITERATION_4 131
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 131 && NDNBOOST_PP_ITERATION_START_4 >= 131
+#    define NDNBOOST_PP_ITERATION_4 131
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 130 && BOOST_PP_ITERATION_START_4 >= 130
-#    define BOOST_PP_ITERATION_4 130
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 130 && NDNBOOST_PP_ITERATION_START_4 >= 130
+#    define NDNBOOST_PP_ITERATION_4 130
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 129 && BOOST_PP_ITERATION_START_4 >= 129
-#    define BOOST_PP_ITERATION_4 129
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 129 && NDNBOOST_PP_ITERATION_START_4 >= 129
+#    define NDNBOOST_PP_ITERATION_4 129
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 128 && BOOST_PP_ITERATION_START_4 >= 128
-#    define BOOST_PP_ITERATION_4 128
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 128 && NDNBOOST_PP_ITERATION_START_4 >= 128
+#    define NDNBOOST_PP_ITERATION_4 128
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 127 && BOOST_PP_ITERATION_START_4 >= 127
-#    define BOOST_PP_ITERATION_4 127
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 127 && NDNBOOST_PP_ITERATION_START_4 >= 127
+#    define NDNBOOST_PP_ITERATION_4 127
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 126 && BOOST_PP_ITERATION_START_4 >= 126
-#    define BOOST_PP_ITERATION_4 126
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 126 && NDNBOOST_PP_ITERATION_START_4 >= 126
+#    define NDNBOOST_PP_ITERATION_4 126
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 125 && BOOST_PP_ITERATION_START_4 >= 125
-#    define BOOST_PP_ITERATION_4 125
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 125 && NDNBOOST_PP_ITERATION_START_4 >= 125
+#    define NDNBOOST_PP_ITERATION_4 125
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 124 && BOOST_PP_ITERATION_START_4 >= 124
-#    define BOOST_PP_ITERATION_4 124
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 124 && NDNBOOST_PP_ITERATION_START_4 >= 124
+#    define NDNBOOST_PP_ITERATION_4 124
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 123 && BOOST_PP_ITERATION_START_4 >= 123
-#    define BOOST_PP_ITERATION_4 123
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 123 && NDNBOOST_PP_ITERATION_START_4 >= 123
+#    define NDNBOOST_PP_ITERATION_4 123
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 122 && BOOST_PP_ITERATION_START_4 >= 122
-#    define BOOST_PP_ITERATION_4 122
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 122 && NDNBOOST_PP_ITERATION_START_4 >= 122
+#    define NDNBOOST_PP_ITERATION_4 122
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 121 && BOOST_PP_ITERATION_START_4 >= 121
-#    define BOOST_PP_ITERATION_4 121
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 121 && NDNBOOST_PP_ITERATION_START_4 >= 121
+#    define NDNBOOST_PP_ITERATION_4 121
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 120 && BOOST_PP_ITERATION_START_4 >= 120
-#    define BOOST_PP_ITERATION_4 120
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 120 && NDNBOOST_PP_ITERATION_START_4 >= 120
+#    define NDNBOOST_PP_ITERATION_4 120
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 119 && BOOST_PP_ITERATION_START_4 >= 119
-#    define BOOST_PP_ITERATION_4 119
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 119 && NDNBOOST_PP_ITERATION_START_4 >= 119
+#    define NDNBOOST_PP_ITERATION_4 119
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 118 && BOOST_PP_ITERATION_START_4 >= 118
-#    define BOOST_PP_ITERATION_4 118
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 118 && NDNBOOST_PP_ITERATION_START_4 >= 118
+#    define NDNBOOST_PP_ITERATION_4 118
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 117 && BOOST_PP_ITERATION_START_4 >= 117
-#    define BOOST_PP_ITERATION_4 117
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 117 && NDNBOOST_PP_ITERATION_START_4 >= 117
+#    define NDNBOOST_PP_ITERATION_4 117
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 116 && BOOST_PP_ITERATION_START_4 >= 116
-#    define BOOST_PP_ITERATION_4 116
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 116 && NDNBOOST_PP_ITERATION_START_4 >= 116
+#    define NDNBOOST_PP_ITERATION_4 116
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 115 && BOOST_PP_ITERATION_START_4 >= 115
-#    define BOOST_PP_ITERATION_4 115
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 115 && NDNBOOST_PP_ITERATION_START_4 >= 115
+#    define NDNBOOST_PP_ITERATION_4 115
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 114 && BOOST_PP_ITERATION_START_4 >= 114
-#    define BOOST_PP_ITERATION_4 114
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 114 && NDNBOOST_PP_ITERATION_START_4 >= 114
+#    define NDNBOOST_PP_ITERATION_4 114
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 113 && BOOST_PP_ITERATION_START_4 >= 113
-#    define BOOST_PP_ITERATION_4 113
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 113 && NDNBOOST_PP_ITERATION_START_4 >= 113
+#    define NDNBOOST_PP_ITERATION_4 113
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 112 && BOOST_PP_ITERATION_START_4 >= 112
-#    define BOOST_PP_ITERATION_4 112
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 112 && NDNBOOST_PP_ITERATION_START_4 >= 112
+#    define NDNBOOST_PP_ITERATION_4 112
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 111 && BOOST_PP_ITERATION_START_4 >= 111
-#    define BOOST_PP_ITERATION_4 111
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 111 && NDNBOOST_PP_ITERATION_START_4 >= 111
+#    define NDNBOOST_PP_ITERATION_4 111
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 110 && BOOST_PP_ITERATION_START_4 >= 110
-#    define BOOST_PP_ITERATION_4 110
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 110 && NDNBOOST_PP_ITERATION_START_4 >= 110
+#    define NDNBOOST_PP_ITERATION_4 110
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 109 && BOOST_PP_ITERATION_START_4 >= 109
-#    define BOOST_PP_ITERATION_4 109
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 109 && NDNBOOST_PP_ITERATION_START_4 >= 109
+#    define NDNBOOST_PP_ITERATION_4 109
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 108 && BOOST_PP_ITERATION_START_4 >= 108
-#    define BOOST_PP_ITERATION_4 108
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 108 && NDNBOOST_PP_ITERATION_START_4 >= 108
+#    define NDNBOOST_PP_ITERATION_4 108
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 107 && BOOST_PP_ITERATION_START_4 >= 107
-#    define BOOST_PP_ITERATION_4 107
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 107 && NDNBOOST_PP_ITERATION_START_4 >= 107
+#    define NDNBOOST_PP_ITERATION_4 107
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 106 && BOOST_PP_ITERATION_START_4 >= 106
-#    define BOOST_PP_ITERATION_4 106
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 106 && NDNBOOST_PP_ITERATION_START_4 >= 106
+#    define NDNBOOST_PP_ITERATION_4 106
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 105 && BOOST_PP_ITERATION_START_4 >= 105
-#    define BOOST_PP_ITERATION_4 105
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 105 && NDNBOOST_PP_ITERATION_START_4 >= 105
+#    define NDNBOOST_PP_ITERATION_4 105
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 104 && BOOST_PP_ITERATION_START_4 >= 104
-#    define BOOST_PP_ITERATION_4 104
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 104 && NDNBOOST_PP_ITERATION_START_4 >= 104
+#    define NDNBOOST_PP_ITERATION_4 104
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 103 && BOOST_PP_ITERATION_START_4 >= 103
-#    define BOOST_PP_ITERATION_4 103
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 103 && NDNBOOST_PP_ITERATION_START_4 >= 103
+#    define NDNBOOST_PP_ITERATION_4 103
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 102 && BOOST_PP_ITERATION_START_4 >= 102
-#    define BOOST_PP_ITERATION_4 102
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 102 && NDNBOOST_PP_ITERATION_START_4 >= 102
+#    define NDNBOOST_PP_ITERATION_4 102
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 101 && BOOST_PP_ITERATION_START_4 >= 101
-#    define BOOST_PP_ITERATION_4 101
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 101 && NDNBOOST_PP_ITERATION_START_4 >= 101
+#    define NDNBOOST_PP_ITERATION_4 101
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 100 && BOOST_PP_ITERATION_START_4 >= 100
-#    define BOOST_PP_ITERATION_4 100
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 100 && NDNBOOST_PP_ITERATION_START_4 >= 100
+#    define NDNBOOST_PP_ITERATION_4 100
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 99 && BOOST_PP_ITERATION_START_4 >= 99
-#    define BOOST_PP_ITERATION_4 99
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 99 && NDNBOOST_PP_ITERATION_START_4 >= 99
+#    define NDNBOOST_PP_ITERATION_4 99
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 98 && BOOST_PP_ITERATION_START_4 >= 98
-#    define BOOST_PP_ITERATION_4 98
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 98 && NDNBOOST_PP_ITERATION_START_4 >= 98
+#    define NDNBOOST_PP_ITERATION_4 98
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 97 && BOOST_PP_ITERATION_START_4 >= 97
-#    define BOOST_PP_ITERATION_4 97
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 97 && NDNBOOST_PP_ITERATION_START_4 >= 97
+#    define NDNBOOST_PP_ITERATION_4 97
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 96 && BOOST_PP_ITERATION_START_4 >= 96
-#    define BOOST_PP_ITERATION_4 96
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 96 && NDNBOOST_PP_ITERATION_START_4 >= 96
+#    define NDNBOOST_PP_ITERATION_4 96
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 95 && BOOST_PP_ITERATION_START_4 >= 95
-#    define BOOST_PP_ITERATION_4 95
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 95 && NDNBOOST_PP_ITERATION_START_4 >= 95
+#    define NDNBOOST_PP_ITERATION_4 95
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 94 && BOOST_PP_ITERATION_START_4 >= 94
-#    define BOOST_PP_ITERATION_4 94
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 94 && NDNBOOST_PP_ITERATION_START_4 >= 94
+#    define NDNBOOST_PP_ITERATION_4 94
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 93 && BOOST_PP_ITERATION_START_4 >= 93
-#    define BOOST_PP_ITERATION_4 93
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 93 && NDNBOOST_PP_ITERATION_START_4 >= 93
+#    define NDNBOOST_PP_ITERATION_4 93
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 92 && BOOST_PP_ITERATION_START_4 >= 92
-#    define BOOST_PP_ITERATION_4 92
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 92 && NDNBOOST_PP_ITERATION_START_4 >= 92
+#    define NDNBOOST_PP_ITERATION_4 92
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 91 && BOOST_PP_ITERATION_START_4 >= 91
-#    define BOOST_PP_ITERATION_4 91
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 91 && NDNBOOST_PP_ITERATION_START_4 >= 91
+#    define NDNBOOST_PP_ITERATION_4 91
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 90 && BOOST_PP_ITERATION_START_4 >= 90
-#    define BOOST_PP_ITERATION_4 90
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 90 && NDNBOOST_PP_ITERATION_START_4 >= 90
+#    define NDNBOOST_PP_ITERATION_4 90
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 89 && BOOST_PP_ITERATION_START_4 >= 89
-#    define BOOST_PP_ITERATION_4 89
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 89 && NDNBOOST_PP_ITERATION_START_4 >= 89
+#    define NDNBOOST_PP_ITERATION_4 89
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 88 && BOOST_PP_ITERATION_START_4 >= 88
-#    define BOOST_PP_ITERATION_4 88
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 88 && NDNBOOST_PP_ITERATION_START_4 >= 88
+#    define NDNBOOST_PP_ITERATION_4 88
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 87 && BOOST_PP_ITERATION_START_4 >= 87
-#    define BOOST_PP_ITERATION_4 87
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 87 && NDNBOOST_PP_ITERATION_START_4 >= 87
+#    define NDNBOOST_PP_ITERATION_4 87
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 86 && BOOST_PP_ITERATION_START_4 >= 86
-#    define BOOST_PP_ITERATION_4 86
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 86 && NDNBOOST_PP_ITERATION_START_4 >= 86
+#    define NDNBOOST_PP_ITERATION_4 86
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 85 && BOOST_PP_ITERATION_START_4 >= 85
-#    define BOOST_PP_ITERATION_4 85
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 85 && NDNBOOST_PP_ITERATION_START_4 >= 85
+#    define NDNBOOST_PP_ITERATION_4 85
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 84 && BOOST_PP_ITERATION_START_4 >= 84
-#    define BOOST_PP_ITERATION_4 84
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 84 && NDNBOOST_PP_ITERATION_START_4 >= 84
+#    define NDNBOOST_PP_ITERATION_4 84
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 83 && BOOST_PP_ITERATION_START_4 >= 83
-#    define BOOST_PP_ITERATION_4 83
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 83 && NDNBOOST_PP_ITERATION_START_4 >= 83
+#    define NDNBOOST_PP_ITERATION_4 83
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 82 && BOOST_PP_ITERATION_START_4 >= 82
-#    define BOOST_PP_ITERATION_4 82
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 82 && NDNBOOST_PP_ITERATION_START_4 >= 82
+#    define NDNBOOST_PP_ITERATION_4 82
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 81 && BOOST_PP_ITERATION_START_4 >= 81
-#    define BOOST_PP_ITERATION_4 81
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 81 && NDNBOOST_PP_ITERATION_START_4 >= 81
+#    define NDNBOOST_PP_ITERATION_4 81
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 80 && BOOST_PP_ITERATION_START_4 >= 80
-#    define BOOST_PP_ITERATION_4 80
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 80 && NDNBOOST_PP_ITERATION_START_4 >= 80
+#    define NDNBOOST_PP_ITERATION_4 80
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 79 && BOOST_PP_ITERATION_START_4 >= 79
-#    define BOOST_PP_ITERATION_4 79
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 79 && NDNBOOST_PP_ITERATION_START_4 >= 79
+#    define NDNBOOST_PP_ITERATION_4 79
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 78 && BOOST_PP_ITERATION_START_4 >= 78
-#    define BOOST_PP_ITERATION_4 78
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 78 && NDNBOOST_PP_ITERATION_START_4 >= 78
+#    define NDNBOOST_PP_ITERATION_4 78
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 77 && BOOST_PP_ITERATION_START_4 >= 77
-#    define BOOST_PP_ITERATION_4 77
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 77 && NDNBOOST_PP_ITERATION_START_4 >= 77
+#    define NDNBOOST_PP_ITERATION_4 77
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 76 && BOOST_PP_ITERATION_START_4 >= 76
-#    define BOOST_PP_ITERATION_4 76
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 76 && NDNBOOST_PP_ITERATION_START_4 >= 76
+#    define NDNBOOST_PP_ITERATION_4 76
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 75 && BOOST_PP_ITERATION_START_4 >= 75
-#    define BOOST_PP_ITERATION_4 75
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 75 && NDNBOOST_PP_ITERATION_START_4 >= 75
+#    define NDNBOOST_PP_ITERATION_4 75
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 74 && BOOST_PP_ITERATION_START_4 >= 74
-#    define BOOST_PP_ITERATION_4 74
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 74 && NDNBOOST_PP_ITERATION_START_4 >= 74
+#    define NDNBOOST_PP_ITERATION_4 74
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 73 && BOOST_PP_ITERATION_START_4 >= 73
-#    define BOOST_PP_ITERATION_4 73
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 73 && NDNBOOST_PP_ITERATION_START_4 >= 73
+#    define NDNBOOST_PP_ITERATION_4 73
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 72 && BOOST_PP_ITERATION_START_4 >= 72
-#    define BOOST_PP_ITERATION_4 72
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 72 && NDNBOOST_PP_ITERATION_START_4 >= 72
+#    define NDNBOOST_PP_ITERATION_4 72
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 71 && BOOST_PP_ITERATION_START_4 >= 71
-#    define BOOST_PP_ITERATION_4 71
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 71 && NDNBOOST_PP_ITERATION_START_4 >= 71
+#    define NDNBOOST_PP_ITERATION_4 71
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 70 && BOOST_PP_ITERATION_START_4 >= 70
-#    define BOOST_PP_ITERATION_4 70
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 70 && NDNBOOST_PP_ITERATION_START_4 >= 70
+#    define NDNBOOST_PP_ITERATION_4 70
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 69 && BOOST_PP_ITERATION_START_4 >= 69
-#    define BOOST_PP_ITERATION_4 69
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 69 && NDNBOOST_PP_ITERATION_START_4 >= 69
+#    define NDNBOOST_PP_ITERATION_4 69
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 68 && BOOST_PP_ITERATION_START_4 >= 68
-#    define BOOST_PP_ITERATION_4 68
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 68 && NDNBOOST_PP_ITERATION_START_4 >= 68
+#    define NDNBOOST_PP_ITERATION_4 68
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 67 && BOOST_PP_ITERATION_START_4 >= 67
-#    define BOOST_PP_ITERATION_4 67
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 67 && NDNBOOST_PP_ITERATION_START_4 >= 67
+#    define NDNBOOST_PP_ITERATION_4 67
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 66 && BOOST_PP_ITERATION_START_4 >= 66
-#    define BOOST_PP_ITERATION_4 66
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 66 && NDNBOOST_PP_ITERATION_START_4 >= 66
+#    define NDNBOOST_PP_ITERATION_4 66
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 65 && BOOST_PP_ITERATION_START_4 >= 65
-#    define BOOST_PP_ITERATION_4 65
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 65 && NDNBOOST_PP_ITERATION_START_4 >= 65
+#    define NDNBOOST_PP_ITERATION_4 65
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 64 && BOOST_PP_ITERATION_START_4 >= 64
-#    define BOOST_PP_ITERATION_4 64
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 64 && NDNBOOST_PP_ITERATION_START_4 >= 64
+#    define NDNBOOST_PP_ITERATION_4 64
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 63 && BOOST_PP_ITERATION_START_4 >= 63
-#    define BOOST_PP_ITERATION_4 63
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 63 && NDNBOOST_PP_ITERATION_START_4 >= 63
+#    define NDNBOOST_PP_ITERATION_4 63
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 62 && BOOST_PP_ITERATION_START_4 >= 62
-#    define BOOST_PP_ITERATION_4 62
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 62 && NDNBOOST_PP_ITERATION_START_4 >= 62
+#    define NDNBOOST_PP_ITERATION_4 62
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 61 && BOOST_PP_ITERATION_START_4 >= 61
-#    define BOOST_PP_ITERATION_4 61
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 61 && NDNBOOST_PP_ITERATION_START_4 >= 61
+#    define NDNBOOST_PP_ITERATION_4 61
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 60 && BOOST_PP_ITERATION_START_4 >= 60
-#    define BOOST_PP_ITERATION_4 60
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 60 && NDNBOOST_PP_ITERATION_START_4 >= 60
+#    define NDNBOOST_PP_ITERATION_4 60
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 59 && BOOST_PP_ITERATION_START_4 >= 59
-#    define BOOST_PP_ITERATION_4 59
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 59 && NDNBOOST_PP_ITERATION_START_4 >= 59
+#    define NDNBOOST_PP_ITERATION_4 59
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 58 && BOOST_PP_ITERATION_START_4 >= 58
-#    define BOOST_PP_ITERATION_4 58
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 58 && NDNBOOST_PP_ITERATION_START_4 >= 58
+#    define NDNBOOST_PP_ITERATION_4 58
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 57 && BOOST_PP_ITERATION_START_4 >= 57
-#    define BOOST_PP_ITERATION_4 57
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 57 && NDNBOOST_PP_ITERATION_START_4 >= 57
+#    define NDNBOOST_PP_ITERATION_4 57
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 56 && BOOST_PP_ITERATION_START_4 >= 56
-#    define BOOST_PP_ITERATION_4 56
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 56 && NDNBOOST_PP_ITERATION_START_4 >= 56
+#    define NDNBOOST_PP_ITERATION_4 56
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 55 && BOOST_PP_ITERATION_START_4 >= 55
-#    define BOOST_PP_ITERATION_4 55
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 55 && NDNBOOST_PP_ITERATION_START_4 >= 55
+#    define NDNBOOST_PP_ITERATION_4 55
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 54 && BOOST_PP_ITERATION_START_4 >= 54
-#    define BOOST_PP_ITERATION_4 54
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 54 && NDNBOOST_PP_ITERATION_START_4 >= 54
+#    define NDNBOOST_PP_ITERATION_4 54
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 53 && BOOST_PP_ITERATION_START_4 >= 53
-#    define BOOST_PP_ITERATION_4 53
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 53 && NDNBOOST_PP_ITERATION_START_4 >= 53
+#    define NDNBOOST_PP_ITERATION_4 53
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 52 && BOOST_PP_ITERATION_START_4 >= 52
-#    define BOOST_PP_ITERATION_4 52
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 52 && NDNBOOST_PP_ITERATION_START_4 >= 52
+#    define NDNBOOST_PP_ITERATION_4 52
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 51 && BOOST_PP_ITERATION_START_4 >= 51
-#    define BOOST_PP_ITERATION_4 51
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 51 && NDNBOOST_PP_ITERATION_START_4 >= 51
+#    define NDNBOOST_PP_ITERATION_4 51
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 50 && BOOST_PP_ITERATION_START_4 >= 50
-#    define BOOST_PP_ITERATION_4 50
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 50 && NDNBOOST_PP_ITERATION_START_4 >= 50
+#    define NDNBOOST_PP_ITERATION_4 50
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 49 && BOOST_PP_ITERATION_START_4 >= 49
-#    define BOOST_PP_ITERATION_4 49
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 49 && NDNBOOST_PP_ITERATION_START_4 >= 49
+#    define NDNBOOST_PP_ITERATION_4 49
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 48 && BOOST_PP_ITERATION_START_4 >= 48
-#    define BOOST_PP_ITERATION_4 48
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 48 && NDNBOOST_PP_ITERATION_START_4 >= 48
+#    define NDNBOOST_PP_ITERATION_4 48
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 47 && BOOST_PP_ITERATION_START_4 >= 47
-#    define BOOST_PP_ITERATION_4 47
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 47 && NDNBOOST_PP_ITERATION_START_4 >= 47
+#    define NDNBOOST_PP_ITERATION_4 47
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 46 && BOOST_PP_ITERATION_START_4 >= 46
-#    define BOOST_PP_ITERATION_4 46
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 46 && NDNBOOST_PP_ITERATION_START_4 >= 46
+#    define NDNBOOST_PP_ITERATION_4 46
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 45 && BOOST_PP_ITERATION_START_4 >= 45
-#    define BOOST_PP_ITERATION_4 45
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 45 && NDNBOOST_PP_ITERATION_START_4 >= 45
+#    define NDNBOOST_PP_ITERATION_4 45
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 44 && BOOST_PP_ITERATION_START_4 >= 44
-#    define BOOST_PP_ITERATION_4 44
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 44 && NDNBOOST_PP_ITERATION_START_4 >= 44
+#    define NDNBOOST_PP_ITERATION_4 44
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 43 && BOOST_PP_ITERATION_START_4 >= 43
-#    define BOOST_PP_ITERATION_4 43
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 43 && NDNBOOST_PP_ITERATION_START_4 >= 43
+#    define NDNBOOST_PP_ITERATION_4 43
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 42 && BOOST_PP_ITERATION_START_4 >= 42
-#    define BOOST_PP_ITERATION_4 42
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 42 && NDNBOOST_PP_ITERATION_START_4 >= 42
+#    define NDNBOOST_PP_ITERATION_4 42
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 41 && BOOST_PP_ITERATION_START_4 >= 41
-#    define BOOST_PP_ITERATION_4 41
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 41 && NDNBOOST_PP_ITERATION_START_4 >= 41
+#    define NDNBOOST_PP_ITERATION_4 41
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 40 && BOOST_PP_ITERATION_START_4 >= 40
-#    define BOOST_PP_ITERATION_4 40
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 40 && NDNBOOST_PP_ITERATION_START_4 >= 40
+#    define NDNBOOST_PP_ITERATION_4 40
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 39 && BOOST_PP_ITERATION_START_4 >= 39
-#    define BOOST_PP_ITERATION_4 39
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 39 && NDNBOOST_PP_ITERATION_START_4 >= 39
+#    define NDNBOOST_PP_ITERATION_4 39
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 38 && BOOST_PP_ITERATION_START_4 >= 38
-#    define BOOST_PP_ITERATION_4 38
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 38 && NDNBOOST_PP_ITERATION_START_4 >= 38
+#    define NDNBOOST_PP_ITERATION_4 38
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 37 && BOOST_PP_ITERATION_START_4 >= 37
-#    define BOOST_PP_ITERATION_4 37
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 37 && NDNBOOST_PP_ITERATION_START_4 >= 37
+#    define NDNBOOST_PP_ITERATION_4 37
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 36 && BOOST_PP_ITERATION_START_4 >= 36
-#    define BOOST_PP_ITERATION_4 36
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 36 && NDNBOOST_PP_ITERATION_START_4 >= 36
+#    define NDNBOOST_PP_ITERATION_4 36
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 35 && BOOST_PP_ITERATION_START_4 >= 35
-#    define BOOST_PP_ITERATION_4 35
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 35 && NDNBOOST_PP_ITERATION_START_4 >= 35
+#    define NDNBOOST_PP_ITERATION_4 35
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 34 && BOOST_PP_ITERATION_START_4 >= 34
-#    define BOOST_PP_ITERATION_4 34
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 34 && NDNBOOST_PP_ITERATION_START_4 >= 34
+#    define NDNBOOST_PP_ITERATION_4 34
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 33 && BOOST_PP_ITERATION_START_4 >= 33
-#    define BOOST_PP_ITERATION_4 33
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 33 && NDNBOOST_PP_ITERATION_START_4 >= 33
+#    define NDNBOOST_PP_ITERATION_4 33
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 32 && BOOST_PP_ITERATION_START_4 >= 32
-#    define BOOST_PP_ITERATION_4 32
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 32 && NDNBOOST_PP_ITERATION_START_4 >= 32
+#    define NDNBOOST_PP_ITERATION_4 32
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 31 && BOOST_PP_ITERATION_START_4 >= 31
-#    define BOOST_PP_ITERATION_4 31
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 31 && NDNBOOST_PP_ITERATION_START_4 >= 31
+#    define NDNBOOST_PP_ITERATION_4 31
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 30 && BOOST_PP_ITERATION_START_4 >= 30
-#    define BOOST_PP_ITERATION_4 30
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 30 && NDNBOOST_PP_ITERATION_START_4 >= 30
+#    define NDNBOOST_PP_ITERATION_4 30
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 29 && BOOST_PP_ITERATION_START_4 >= 29
-#    define BOOST_PP_ITERATION_4 29
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 29 && NDNBOOST_PP_ITERATION_START_4 >= 29
+#    define NDNBOOST_PP_ITERATION_4 29
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 28 && BOOST_PP_ITERATION_START_4 >= 28
-#    define BOOST_PP_ITERATION_4 28
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 28 && NDNBOOST_PP_ITERATION_START_4 >= 28
+#    define NDNBOOST_PP_ITERATION_4 28
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 27 && BOOST_PP_ITERATION_START_4 >= 27
-#    define BOOST_PP_ITERATION_4 27
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 27 && NDNBOOST_PP_ITERATION_START_4 >= 27
+#    define NDNBOOST_PP_ITERATION_4 27
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 26 && BOOST_PP_ITERATION_START_4 >= 26
-#    define BOOST_PP_ITERATION_4 26
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 26 && NDNBOOST_PP_ITERATION_START_4 >= 26
+#    define NDNBOOST_PP_ITERATION_4 26
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 25 && BOOST_PP_ITERATION_START_4 >= 25
-#    define BOOST_PP_ITERATION_4 25
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 25 && NDNBOOST_PP_ITERATION_START_4 >= 25
+#    define NDNBOOST_PP_ITERATION_4 25
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 24 && BOOST_PP_ITERATION_START_4 >= 24
-#    define BOOST_PP_ITERATION_4 24
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 24 && NDNBOOST_PP_ITERATION_START_4 >= 24
+#    define NDNBOOST_PP_ITERATION_4 24
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 23 && BOOST_PP_ITERATION_START_4 >= 23
-#    define BOOST_PP_ITERATION_4 23
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 23 && NDNBOOST_PP_ITERATION_START_4 >= 23
+#    define NDNBOOST_PP_ITERATION_4 23
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 22 && BOOST_PP_ITERATION_START_4 >= 22
-#    define BOOST_PP_ITERATION_4 22
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 22 && NDNBOOST_PP_ITERATION_START_4 >= 22
+#    define NDNBOOST_PP_ITERATION_4 22
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 21 && BOOST_PP_ITERATION_START_4 >= 21
-#    define BOOST_PP_ITERATION_4 21
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 21 && NDNBOOST_PP_ITERATION_START_4 >= 21
+#    define NDNBOOST_PP_ITERATION_4 21
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 20 && BOOST_PP_ITERATION_START_4 >= 20
-#    define BOOST_PP_ITERATION_4 20
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 20 && NDNBOOST_PP_ITERATION_START_4 >= 20
+#    define NDNBOOST_PP_ITERATION_4 20
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 19 && BOOST_PP_ITERATION_START_4 >= 19
-#    define BOOST_PP_ITERATION_4 19
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 19 && NDNBOOST_PP_ITERATION_START_4 >= 19
+#    define NDNBOOST_PP_ITERATION_4 19
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 18 && BOOST_PP_ITERATION_START_4 >= 18
-#    define BOOST_PP_ITERATION_4 18
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 18 && NDNBOOST_PP_ITERATION_START_4 >= 18
+#    define NDNBOOST_PP_ITERATION_4 18
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 17 && BOOST_PP_ITERATION_START_4 >= 17
-#    define BOOST_PP_ITERATION_4 17
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 17 && NDNBOOST_PP_ITERATION_START_4 >= 17
+#    define NDNBOOST_PP_ITERATION_4 17
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 16 && BOOST_PP_ITERATION_START_4 >= 16
-#    define BOOST_PP_ITERATION_4 16
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 16 && NDNBOOST_PP_ITERATION_START_4 >= 16
+#    define NDNBOOST_PP_ITERATION_4 16
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 15 && BOOST_PP_ITERATION_START_4 >= 15
-#    define BOOST_PP_ITERATION_4 15
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 15 && NDNBOOST_PP_ITERATION_START_4 >= 15
+#    define NDNBOOST_PP_ITERATION_4 15
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 14 && BOOST_PP_ITERATION_START_4 >= 14
-#    define BOOST_PP_ITERATION_4 14
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 14 && NDNBOOST_PP_ITERATION_START_4 >= 14
+#    define NDNBOOST_PP_ITERATION_4 14
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 13 && BOOST_PP_ITERATION_START_4 >= 13
-#    define BOOST_PP_ITERATION_4 13
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 13 && NDNBOOST_PP_ITERATION_START_4 >= 13
+#    define NDNBOOST_PP_ITERATION_4 13
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 12 && BOOST_PP_ITERATION_START_4 >= 12
-#    define BOOST_PP_ITERATION_4 12
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 12 && NDNBOOST_PP_ITERATION_START_4 >= 12
+#    define NDNBOOST_PP_ITERATION_4 12
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 11 && BOOST_PP_ITERATION_START_4 >= 11
-#    define BOOST_PP_ITERATION_4 11
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 11 && NDNBOOST_PP_ITERATION_START_4 >= 11
+#    define NDNBOOST_PP_ITERATION_4 11
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 10 && BOOST_PP_ITERATION_START_4 >= 10
-#    define BOOST_PP_ITERATION_4 10
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 10 && NDNBOOST_PP_ITERATION_START_4 >= 10
+#    define NDNBOOST_PP_ITERATION_4 10
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 9 && BOOST_PP_ITERATION_START_4 >= 9
-#    define BOOST_PP_ITERATION_4 9
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 9 && NDNBOOST_PP_ITERATION_START_4 >= 9
+#    define NDNBOOST_PP_ITERATION_4 9
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 8 && BOOST_PP_ITERATION_START_4 >= 8
-#    define BOOST_PP_ITERATION_4 8
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 8 && NDNBOOST_PP_ITERATION_START_4 >= 8
+#    define NDNBOOST_PP_ITERATION_4 8
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 7 && BOOST_PP_ITERATION_START_4 >= 7
-#    define BOOST_PP_ITERATION_4 7
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 7 && NDNBOOST_PP_ITERATION_START_4 >= 7
+#    define NDNBOOST_PP_ITERATION_4 7
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 6 && BOOST_PP_ITERATION_START_4 >= 6
-#    define BOOST_PP_ITERATION_4 6
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 6 && NDNBOOST_PP_ITERATION_START_4 >= 6
+#    define NDNBOOST_PP_ITERATION_4 6
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 5 && BOOST_PP_ITERATION_START_4 >= 5
-#    define BOOST_PP_ITERATION_4 5
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 5 && NDNBOOST_PP_ITERATION_START_4 >= 5
+#    define NDNBOOST_PP_ITERATION_4 5
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 4 && BOOST_PP_ITERATION_START_4 >= 4
-#    define BOOST_PP_ITERATION_4 4
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 4 && NDNBOOST_PP_ITERATION_START_4 >= 4
+#    define NDNBOOST_PP_ITERATION_4 4
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 3 && BOOST_PP_ITERATION_START_4 >= 3
-#    define BOOST_PP_ITERATION_4 3
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 3 && NDNBOOST_PP_ITERATION_START_4 >= 3
+#    define NDNBOOST_PP_ITERATION_4 3
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 2 && BOOST_PP_ITERATION_START_4 >= 2
-#    define BOOST_PP_ITERATION_4 2
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 2 && NDNBOOST_PP_ITERATION_START_4 >= 2
+#    define NDNBOOST_PP_ITERATION_4 2
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 1 && BOOST_PP_ITERATION_START_4 >= 1
-#    define BOOST_PP_ITERATION_4 1
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 1 && NDNBOOST_PP_ITERATION_START_4 >= 1
+#    define NDNBOOST_PP_ITERATION_4 1
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 0 && BOOST_PP_ITERATION_START_4 >= 0
-#    define BOOST_PP_ITERATION_4 0
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
+# if NDNBOOST_PP_ITERATION_FINISH_4 <= 0 && NDNBOOST_PP_ITERATION_START_4 >= 0
+#    define NDNBOOST_PP_ITERATION_4 0
+#    include NDNBOOST_PP_FILENAME_4
+#    undef NDNBOOST_PP_ITERATION_4
 # endif
diff --git a/include/ndnboost/preprocessor/iteration/detail/iter/reverse5.hpp b/include/ndnboost/preprocessor/iteration/detail/iter/reverse5.hpp
index 225a557..53bebd7 100644
--- a/include/ndnboost/preprocessor/iteration/detail/iter/reverse5.hpp
+++ b/include/ndnboost/preprocessor/iteration/detail/iter/reverse5.hpp
@@ -9,1288 +9,1288 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# if BOOST_PP_ITERATION_FINISH_5 <= 256 && BOOST_PP_ITERATION_START_5 >= 256
-#    define BOOST_PP_ITERATION_5 256
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 256 && NDNBOOST_PP_ITERATION_START_5 >= 256
+#    define NDNBOOST_PP_ITERATION_5 256
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 255 && BOOST_PP_ITERATION_START_5 >= 255
-#    define BOOST_PP_ITERATION_5 255
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 255 && NDNBOOST_PP_ITERATION_START_5 >= 255
+#    define NDNBOOST_PP_ITERATION_5 255
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 254 && BOOST_PP_ITERATION_START_5 >= 254
-#    define BOOST_PP_ITERATION_5 254
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 254 && NDNBOOST_PP_ITERATION_START_5 >= 254
+#    define NDNBOOST_PP_ITERATION_5 254
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 253 && BOOST_PP_ITERATION_START_5 >= 253
-#    define BOOST_PP_ITERATION_5 253
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 253 && NDNBOOST_PP_ITERATION_START_5 >= 253
+#    define NDNBOOST_PP_ITERATION_5 253
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 252 && BOOST_PP_ITERATION_START_5 >= 252
-#    define BOOST_PP_ITERATION_5 252
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 252 && NDNBOOST_PP_ITERATION_START_5 >= 252
+#    define NDNBOOST_PP_ITERATION_5 252
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 251 && BOOST_PP_ITERATION_START_5 >= 251
-#    define BOOST_PP_ITERATION_5 251
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 251 && NDNBOOST_PP_ITERATION_START_5 >= 251
+#    define NDNBOOST_PP_ITERATION_5 251
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 250 && BOOST_PP_ITERATION_START_5 >= 250
-#    define BOOST_PP_ITERATION_5 250
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 250 && NDNBOOST_PP_ITERATION_START_5 >= 250
+#    define NDNBOOST_PP_ITERATION_5 250
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 249 && BOOST_PP_ITERATION_START_5 >= 249
-#    define BOOST_PP_ITERATION_5 249
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 249 && NDNBOOST_PP_ITERATION_START_5 >= 249
+#    define NDNBOOST_PP_ITERATION_5 249
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 248 && BOOST_PP_ITERATION_START_5 >= 248
-#    define BOOST_PP_ITERATION_5 248
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 248 && NDNBOOST_PP_ITERATION_START_5 >= 248
+#    define NDNBOOST_PP_ITERATION_5 248
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 247 && BOOST_PP_ITERATION_START_5 >= 247
-#    define BOOST_PP_ITERATION_5 247
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 247 && NDNBOOST_PP_ITERATION_START_5 >= 247
+#    define NDNBOOST_PP_ITERATION_5 247
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 246 && BOOST_PP_ITERATION_START_5 >= 246
-#    define BOOST_PP_ITERATION_5 246
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 246 && NDNBOOST_PP_ITERATION_START_5 >= 246
+#    define NDNBOOST_PP_ITERATION_5 246
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 245 && BOOST_PP_ITERATION_START_5 >= 245
-#    define BOOST_PP_ITERATION_5 245
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 245 && NDNBOOST_PP_ITERATION_START_5 >= 245
+#    define NDNBOOST_PP_ITERATION_5 245
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 244 && BOOST_PP_ITERATION_START_5 >= 244
-#    define BOOST_PP_ITERATION_5 244
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 244 && NDNBOOST_PP_ITERATION_START_5 >= 244
+#    define NDNBOOST_PP_ITERATION_5 244
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 243 && BOOST_PP_ITERATION_START_5 >= 243
-#    define BOOST_PP_ITERATION_5 243
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 243 && NDNBOOST_PP_ITERATION_START_5 >= 243
+#    define NDNBOOST_PP_ITERATION_5 243
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 242 && BOOST_PP_ITERATION_START_5 >= 242
-#    define BOOST_PP_ITERATION_5 242
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 242 && NDNBOOST_PP_ITERATION_START_5 >= 242
+#    define NDNBOOST_PP_ITERATION_5 242
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 241 && BOOST_PP_ITERATION_START_5 >= 241
-#    define BOOST_PP_ITERATION_5 241
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 241 && NDNBOOST_PP_ITERATION_START_5 >= 241
+#    define NDNBOOST_PP_ITERATION_5 241
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 240 && BOOST_PP_ITERATION_START_5 >= 240
-#    define BOOST_PP_ITERATION_5 240
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 240 && NDNBOOST_PP_ITERATION_START_5 >= 240
+#    define NDNBOOST_PP_ITERATION_5 240
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 239 && BOOST_PP_ITERATION_START_5 >= 239
-#    define BOOST_PP_ITERATION_5 239
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 239 && NDNBOOST_PP_ITERATION_START_5 >= 239
+#    define NDNBOOST_PP_ITERATION_5 239
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 238 && BOOST_PP_ITERATION_START_5 >= 238
-#    define BOOST_PP_ITERATION_5 238
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 238 && NDNBOOST_PP_ITERATION_START_5 >= 238
+#    define NDNBOOST_PP_ITERATION_5 238
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 237 && BOOST_PP_ITERATION_START_5 >= 237
-#    define BOOST_PP_ITERATION_5 237
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 237 && NDNBOOST_PP_ITERATION_START_5 >= 237
+#    define NDNBOOST_PP_ITERATION_5 237
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 236 && BOOST_PP_ITERATION_START_5 >= 236
-#    define BOOST_PP_ITERATION_5 236
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 236 && NDNBOOST_PP_ITERATION_START_5 >= 236
+#    define NDNBOOST_PP_ITERATION_5 236
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 235 && BOOST_PP_ITERATION_START_5 >= 235
-#    define BOOST_PP_ITERATION_5 235
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 235 && NDNBOOST_PP_ITERATION_START_5 >= 235
+#    define NDNBOOST_PP_ITERATION_5 235
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 234 && BOOST_PP_ITERATION_START_5 >= 234
-#    define BOOST_PP_ITERATION_5 234
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 234 && NDNBOOST_PP_ITERATION_START_5 >= 234
+#    define NDNBOOST_PP_ITERATION_5 234
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 233 && BOOST_PP_ITERATION_START_5 >= 233
-#    define BOOST_PP_ITERATION_5 233
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 233 && NDNBOOST_PP_ITERATION_START_5 >= 233
+#    define NDNBOOST_PP_ITERATION_5 233
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 232 && BOOST_PP_ITERATION_START_5 >= 232
-#    define BOOST_PP_ITERATION_5 232
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 232 && NDNBOOST_PP_ITERATION_START_5 >= 232
+#    define NDNBOOST_PP_ITERATION_5 232
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 231 && BOOST_PP_ITERATION_START_5 >= 231
-#    define BOOST_PP_ITERATION_5 231
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 231 && NDNBOOST_PP_ITERATION_START_5 >= 231
+#    define NDNBOOST_PP_ITERATION_5 231
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 230 && BOOST_PP_ITERATION_START_5 >= 230
-#    define BOOST_PP_ITERATION_5 230
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 230 && NDNBOOST_PP_ITERATION_START_5 >= 230
+#    define NDNBOOST_PP_ITERATION_5 230
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 229 && BOOST_PP_ITERATION_START_5 >= 229
-#    define BOOST_PP_ITERATION_5 229
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 229 && NDNBOOST_PP_ITERATION_START_5 >= 229
+#    define NDNBOOST_PP_ITERATION_5 229
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 228 && BOOST_PP_ITERATION_START_5 >= 228
-#    define BOOST_PP_ITERATION_5 228
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 228 && NDNBOOST_PP_ITERATION_START_5 >= 228
+#    define NDNBOOST_PP_ITERATION_5 228
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 227 && BOOST_PP_ITERATION_START_5 >= 227
-#    define BOOST_PP_ITERATION_5 227
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 227 && NDNBOOST_PP_ITERATION_START_5 >= 227
+#    define NDNBOOST_PP_ITERATION_5 227
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 226 && BOOST_PP_ITERATION_START_5 >= 226
-#    define BOOST_PP_ITERATION_5 226
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 226 && NDNBOOST_PP_ITERATION_START_5 >= 226
+#    define NDNBOOST_PP_ITERATION_5 226
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 225 && BOOST_PP_ITERATION_START_5 >= 225
-#    define BOOST_PP_ITERATION_5 225
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 225 && NDNBOOST_PP_ITERATION_START_5 >= 225
+#    define NDNBOOST_PP_ITERATION_5 225
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 224 && BOOST_PP_ITERATION_START_5 >= 224
-#    define BOOST_PP_ITERATION_5 224
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 224 && NDNBOOST_PP_ITERATION_START_5 >= 224
+#    define NDNBOOST_PP_ITERATION_5 224
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 223 && BOOST_PP_ITERATION_START_5 >= 223
-#    define BOOST_PP_ITERATION_5 223
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 223 && NDNBOOST_PP_ITERATION_START_5 >= 223
+#    define NDNBOOST_PP_ITERATION_5 223
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 222 && BOOST_PP_ITERATION_START_5 >= 222
-#    define BOOST_PP_ITERATION_5 222
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 222 && NDNBOOST_PP_ITERATION_START_5 >= 222
+#    define NDNBOOST_PP_ITERATION_5 222
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 221 && BOOST_PP_ITERATION_START_5 >= 221
-#    define BOOST_PP_ITERATION_5 221
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 221 && NDNBOOST_PP_ITERATION_START_5 >= 221
+#    define NDNBOOST_PP_ITERATION_5 221
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 220 && BOOST_PP_ITERATION_START_5 >= 220
-#    define BOOST_PP_ITERATION_5 220
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 220 && NDNBOOST_PP_ITERATION_START_5 >= 220
+#    define NDNBOOST_PP_ITERATION_5 220
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 219 && BOOST_PP_ITERATION_START_5 >= 219
-#    define BOOST_PP_ITERATION_5 219
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 219 && NDNBOOST_PP_ITERATION_START_5 >= 219
+#    define NDNBOOST_PP_ITERATION_5 219
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 218 && BOOST_PP_ITERATION_START_5 >= 218
-#    define BOOST_PP_ITERATION_5 218
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 218 && NDNBOOST_PP_ITERATION_START_5 >= 218
+#    define NDNBOOST_PP_ITERATION_5 218
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 217 && BOOST_PP_ITERATION_START_5 >= 217
-#    define BOOST_PP_ITERATION_5 217
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 217 && NDNBOOST_PP_ITERATION_START_5 >= 217
+#    define NDNBOOST_PP_ITERATION_5 217
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 216 && BOOST_PP_ITERATION_START_5 >= 216
-#    define BOOST_PP_ITERATION_5 216
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 216 && NDNBOOST_PP_ITERATION_START_5 >= 216
+#    define NDNBOOST_PP_ITERATION_5 216
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 215 && BOOST_PP_ITERATION_START_5 >= 215
-#    define BOOST_PP_ITERATION_5 215
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 215 && NDNBOOST_PP_ITERATION_START_5 >= 215
+#    define NDNBOOST_PP_ITERATION_5 215
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 214 && BOOST_PP_ITERATION_START_5 >= 214
-#    define BOOST_PP_ITERATION_5 214
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 214 && NDNBOOST_PP_ITERATION_START_5 >= 214
+#    define NDNBOOST_PP_ITERATION_5 214
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 213 && BOOST_PP_ITERATION_START_5 >= 213
-#    define BOOST_PP_ITERATION_5 213
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 213 && NDNBOOST_PP_ITERATION_START_5 >= 213
+#    define NDNBOOST_PP_ITERATION_5 213
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 212 && BOOST_PP_ITERATION_START_5 >= 212
-#    define BOOST_PP_ITERATION_5 212
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 212 && NDNBOOST_PP_ITERATION_START_5 >= 212
+#    define NDNBOOST_PP_ITERATION_5 212
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 211 && BOOST_PP_ITERATION_START_5 >= 211
-#    define BOOST_PP_ITERATION_5 211
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 211 && NDNBOOST_PP_ITERATION_START_5 >= 211
+#    define NDNBOOST_PP_ITERATION_5 211
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 210 && BOOST_PP_ITERATION_START_5 >= 210
-#    define BOOST_PP_ITERATION_5 210
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 210 && NDNBOOST_PP_ITERATION_START_5 >= 210
+#    define NDNBOOST_PP_ITERATION_5 210
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 209 && BOOST_PP_ITERATION_START_5 >= 209
-#    define BOOST_PP_ITERATION_5 209
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 209 && NDNBOOST_PP_ITERATION_START_5 >= 209
+#    define NDNBOOST_PP_ITERATION_5 209
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 208 && BOOST_PP_ITERATION_START_5 >= 208
-#    define BOOST_PP_ITERATION_5 208
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 208 && NDNBOOST_PP_ITERATION_START_5 >= 208
+#    define NDNBOOST_PP_ITERATION_5 208
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 207 && BOOST_PP_ITERATION_START_5 >= 207
-#    define BOOST_PP_ITERATION_5 207
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 207 && NDNBOOST_PP_ITERATION_START_5 >= 207
+#    define NDNBOOST_PP_ITERATION_5 207
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 206 && BOOST_PP_ITERATION_START_5 >= 206
-#    define BOOST_PP_ITERATION_5 206
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 206 && NDNBOOST_PP_ITERATION_START_5 >= 206
+#    define NDNBOOST_PP_ITERATION_5 206
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 205 && BOOST_PP_ITERATION_START_5 >= 205
-#    define BOOST_PP_ITERATION_5 205
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 205 && NDNBOOST_PP_ITERATION_START_5 >= 205
+#    define NDNBOOST_PP_ITERATION_5 205
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 204 && BOOST_PP_ITERATION_START_5 >= 204
-#    define BOOST_PP_ITERATION_5 204
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 204 && NDNBOOST_PP_ITERATION_START_5 >= 204
+#    define NDNBOOST_PP_ITERATION_5 204
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 203 && BOOST_PP_ITERATION_START_5 >= 203
-#    define BOOST_PP_ITERATION_5 203
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 203 && NDNBOOST_PP_ITERATION_START_5 >= 203
+#    define NDNBOOST_PP_ITERATION_5 203
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 202 && BOOST_PP_ITERATION_START_5 >= 202
-#    define BOOST_PP_ITERATION_5 202
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 202 && NDNBOOST_PP_ITERATION_START_5 >= 202
+#    define NDNBOOST_PP_ITERATION_5 202
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 201 && BOOST_PP_ITERATION_START_5 >= 201
-#    define BOOST_PP_ITERATION_5 201
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 201 && NDNBOOST_PP_ITERATION_START_5 >= 201
+#    define NDNBOOST_PP_ITERATION_5 201
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 200 && BOOST_PP_ITERATION_START_5 >= 200
-#    define BOOST_PP_ITERATION_5 200
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 200 && NDNBOOST_PP_ITERATION_START_5 >= 200
+#    define NDNBOOST_PP_ITERATION_5 200
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 199 && BOOST_PP_ITERATION_START_5 >= 199
-#    define BOOST_PP_ITERATION_5 199
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 199 && NDNBOOST_PP_ITERATION_START_5 >= 199
+#    define NDNBOOST_PP_ITERATION_5 199
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 198 && BOOST_PP_ITERATION_START_5 >= 198
-#    define BOOST_PP_ITERATION_5 198
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 198 && NDNBOOST_PP_ITERATION_START_5 >= 198
+#    define NDNBOOST_PP_ITERATION_5 198
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 197 && BOOST_PP_ITERATION_START_5 >= 197
-#    define BOOST_PP_ITERATION_5 197
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 197 && NDNBOOST_PP_ITERATION_START_5 >= 197
+#    define NDNBOOST_PP_ITERATION_5 197
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 196 && BOOST_PP_ITERATION_START_5 >= 196
-#    define BOOST_PP_ITERATION_5 196
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 196 && NDNBOOST_PP_ITERATION_START_5 >= 196
+#    define NDNBOOST_PP_ITERATION_5 196
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 195 && BOOST_PP_ITERATION_START_5 >= 195
-#    define BOOST_PP_ITERATION_5 195
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 195 && NDNBOOST_PP_ITERATION_START_5 >= 195
+#    define NDNBOOST_PP_ITERATION_5 195
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 194 && BOOST_PP_ITERATION_START_5 >= 194
-#    define BOOST_PP_ITERATION_5 194
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 194 && NDNBOOST_PP_ITERATION_START_5 >= 194
+#    define NDNBOOST_PP_ITERATION_5 194
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 193 && BOOST_PP_ITERATION_START_5 >= 193
-#    define BOOST_PP_ITERATION_5 193
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 193 && NDNBOOST_PP_ITERATION_START_5 >= 193
+#    define NDNBOOST_PP_ITERATION_5 193
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 192 && BOOST_PP_ITERATION_START_5 >= 192
-#    define BOOST_PP_ITERATION_5 192
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 192 && NDNBOOST_PP_ITERATION_START_5 >= 192
+#    define NDNBOOST_PP_ITERATION_5 192
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 191 && BOOST_PP_ITERATION_START_5 >= 191
-#    define BOOST_PP_ITERATION_5 191
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 191 && NDNBOOST_PP_ITERATION_START_5 >= 191
+#    define NDNBOOST_PP_ITERATION_5 191
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 190 && BOOST_PP_ITERATION_START_5 >= 190
-#    define BOOST_PP_ITERATION_5 190
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 190 && NDNBOOST_PP_ITERATION_START_5 >= 190
+#    define NDNBOOST_PP_ITERATION_5 190
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 189 && BOOST_PP_ITERATION_START_5 >= 189
-#    define BOOST_PP_ITERATION_5 189
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 189 && NDNBOOST_PP_ITERATION_START_5 >= 189
+#    define NDNBOOST_PP_ITERATION_5 189
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 188 && BOOST_PP_ITERATION_START_5 >= 188
-#    define BOOST_PP_ITERATION_5 188
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 188 && NDNBOOST_PP_ITERATION_START_5 >= 188
+#    define NDNBOOST_PP_ITERATION_5 188
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 187 && BOOST_PP_ITERATION_START_5 >= 187
-#    define BOOST_PP_ITERATION_5 187
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 187 && NDNBOOST_PP_ITERATION_START_5 >= 187
+#    define NDNBOOST_PP_ITERATION_5 187
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 186 && BOOST_PP_ITERATION_START_5 >= 186
-#    define BOOST_PP_ITERATION_5 186
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 186 && NDNBOOST_PP_ITERATION_START_5 >= 186
+#    define NDNBOOST_PP_ITERATION_5 186
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 185 && BOOST_PP_ITERATION_START_5 >= 185
-#    define BOOST_PP_ITERATION_5 185
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 185 && NDNBOOST_PP_ITERATION_START_5 >= 185
+#    define NDNBOOST_PP_ITERATION_5 185
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 184 && BOOST_PP_ITERATION_START_5 >= 184
-#    define BOOST_PP_ITERATION_5 184
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 184 && NDNBOOST_PP_ITERATION_START_5 >= 184
+#    define NDNBOOST_PP_ITERATION_5 184
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 183 && BOOST_PP_ITERATION_START_5 >= 183
-#    define BOOST_PP_ITERATION_5 183
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 183 && NDNBOOST_PP_ITERATION_START_5 >= 183
+#    define NDNBOOST_PP_ITERATION_5 183
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 182 && BOOST_PP_ITERATION_START_5 >= 182
-#    define BOOST_PP_ITERATION_5 182
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 182 && NDNBOOST_PP_ITERATION_START_5 >= 182
+#    define NDNBOOST_PP_ITERATION_5 182
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 181 && BOOST_PP_ITERATION_START_5 >= 181
-#    define BOOST_PP_ITERATION_5 181
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 181 && NDNBOOST_PP_ITERATION_START_5 >= 181
+#    define NDNBOOST_PP_ITERATION_5 181
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 180 && BOOST_PP_ITERATION_START_5 >= 180
-#    define BOOST_PP_ITERATION_5 180
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 180 && NDNBOOST_PP_ITERATION_START_5 >= 180
+#    define NDNBOOST_PP_ITERATION_5 180
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 179 && BOOST_PP_ITERATION_START_5 >= 179
-#    define BOOST_PP_ITERATION_5 179
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 179 && NDNBOOST_PP_ITERATION_START_5 >= 179
+#    define NDNBOOST_PP_ITERATION_5 179
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 178 && BOOST_PP_ITERATION_START_5 >= 178
-#    define BOOST_PP_ITERATION_5 178
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 178 && NDNBOOST_PP_ITERATION_START_5 >= 178
+#    define NDNBOOST_PP_ITERATION_5 178
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 177 && BOOST_PP_ITERATION_START_5 >= 177
-#    define BOOST_PP_ITERATION_5 177
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 177 && NDNBOOST_PP_ITERATION_START_5 >= 177
+#    define NDNBOOST_PP_ITERATION_5 177
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 176 && BOOST_PP_ITERATION_START_5 >= 176
-#    define BOOST_PP_ITERATION_5 176
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 176 && NDNBOOST_PP_ITERATION_START_5 >= 176
+#    define NDNBOOST_PP_ITERATION_5 176
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 175 && BOOST_PP_ITERATION_START_5 >= 175
-#    define BOOST_PP_ITERATION_5 175
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 175 && NDNBOOST_PP_ITERATION_START_5 >= 175
+#    define NDNBOOST_PP_ITERATION_5 175
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 174 && BOOST_PP_ITERATION_START_5 >= 174
-#    define BOOST_PP_ITERATION_5 174
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 174 && NDNBOOST_PP_ITERATION_START_5 >= 174
+#    define NDNBOOST_PP_ITERATION_5 174
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 173 && BOOST_PP_ITERATION_START_5 >= 173
-#    define BOOST_PP_ITERATION_5 173
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 173 && NDNBOOST_PP_ITERATION_START_5 >= 173
+#    define NDNBOOST_PP_ITERATION_5 173
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 172 && BOOST_PP_ITERATION_START_5 >= 172
-#    define BOOST_PP_ITERATION_5 172
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 172 && NDNBOOST_PP_ITERATION_START_5 >= 172
+#    define NDNBOOST_PP_ITERATION_5 172
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 171 && BOOST_PP_ITERATION_START_5 >= 171
-#    define BOOST_PP_ITERATION_5 171
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 171 && NDNBOOST_PP_ITERATION_START_5 >= 171
+#    define NDNBOOST_PP_ITERATION_5 171
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 170 && BOOST_PP_ITERATION_START_5 >= 170
-#    define BOOST_PP_ITERATION_5 170
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 170 && NDNBOOST_PP_ITERATION_START_5 >= 170
+#    define NDNBOOST_PP_ITERATION_5 170
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 169 && BOOST_PP_ITERATION_START_5 >= 169
-#    define BOOST_PP_ITERATION_5 169
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 169 && NDNBOOST_PP_ITERATION_START_5 >= 169
+#    define NDNBOOST_PP_ITERATION_5 169
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 168 && BOOST_PP_ITERATION_START_5 >= 168
-#    define BOOST_PP_ITERATION_5 168
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 168 && NDNBOOST_PP_ITERATION_START_5 >= 168
+#    define NDNBOOST_PP_ITERATION_5 168
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 167 && BOOST_PP_ITERATION_START_5 >= 167
-#    define BOOST_PP_ITERATION_5 167
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 167 && NDNBOOST_PP_ITERATION_START_5 >= 167
+#    define NDNBOOST_PP_ITERATION_5 167
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 166 && BOOST_PP_ITERATION_START_5 >= 166
-#    define BOOST_PP_ITERATION_5 166
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 166 && NDNBOOST_PP_ITERATION_START_5 >= 166
+#    define NDNBOOST_PP_ITERATION_5 166
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 165 && BOOST_PP_ITERATION_START_5 >= 165
-#    define BOOST_PP_ITERATION_5 165
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 165 && NDNBOOST_PP_ITERATION_START_5 >= 165
+#    define NDNBOOST_PP_ITERATION_5 165
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 164 && BOOST_PP_ITERATION_START_5 >= 164
-#    define BOOST_PP_ITERATION_5 164
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 164 && NDNBOOST_PP_ITERATION_START_5 >= 164
+#    define NDNBOOST_PP_ITERATION_5 164
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 163 && BOOST_PP_ITERATION_START_5 >= 163
-#    define BOOST_PP_ITERATION_5 163
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 163 && NDNBOOST_PP_ITERATION_START_5 >= 163
+#    define NDNBOOST_PP_ITERATION_5 163
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 162 && BOOST_PP_ITERATION_START_5 >= 162
-#    define BOOST_PP_ITERATION_5 162
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 162 && NDNBOOST_PP_ITERATION_START_5 >= 162
+#    define NDNBOOST_PP_ITERATION_5 162
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 161 && BOOST_PP_ITERATION_START_5 >= 161
-#    define BOOST_PP_ITERATION_5 161
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 161 && NDNBOOST_PP_ITERATION_START_5 >= 161
+#    define NDNBOOST_PP_ITERATION_5 161
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 160 && BOOST_PP_ITERATION_START_5 >= 160
-#    define BOOST_PP_ITERATION_5 160
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 160 && NDNBOOST_PP_ITERATION_START_5 >= 160
+#    define NDNBOOST_PP_ITERATION_5 160
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 159 && BOOST_PP_ITERATION_START_5 >= 159
-#    define BOOST_PP_ITERATION_5 159
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 159 && NDNBOOST_PP_ITERATION_START_5 >= 159
+#    define NDNBOOST_PP_ITERATION_5 159
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 158 && BOOST_PP_ITERATION_START_5 >= 158
-#    define BOOST_PP_ITERATION_5 158
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 158 && NDNBOOST_PP_ITERATION_START_5 >= 158
+#    define NDNBOOST_PP_ITERATION_5 158
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 157 && BOOST_PP_ITERATION_START_5 >= 157
-#    define BOOST_PP_ITERATION_5 157
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 157 && NDNBOOST_PP_ITERATION_START_5 >= 157
+#    define NDNBOOST_PP_ITERATION_5 157
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 156 && BOOST_PP_ITERATION_START_5 >= 156
-#    define BOOST_PP_ITERATION_5 156
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 156 && NDNBOOST_PP_ITERATION_START_5 >= 156
+#    define NDNBOOST_PP_ITERATION_5 156
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 155 && BOOST_PP_ITERATION_START_5 >= 155
-#    define BOOST_PP_ITERATION_5 155
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 155 && NDNBOOST_PP_ITERATION_START_5 >= 155
+#    define NDNBOOST_PP_ITERATION_5 155
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 154 && BOOST_PP_ITERATION_START_5 >= 154
-#    define BOOST_PP_ITERATION_5 154
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 154 && NDNBOOST_PP_ITERATION_START_5 >= 154
+#    define NDNBOOST_PP_ITERATION_5 154
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 153 && BOOST_PP_ITERATION_START_5 >= 153
-#    define BOOST_PP_ITERATION_5 153
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 153 && NDNBOOST_PP_ITERATION_START_5 >= 153
+#    define NDNBOOST_PP_ITERATION_5 153
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 152 && BOOST_PP_ITERATION_START_5 >= 152
-#    define BOOST_PP_ITERATION_5 152
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 152 && NDNBOOST_PP_ITERATION_START_5 >= 152
+#    define NDNBOOST_PP_ITERATION_5 152
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 151 && BOOST_PP_ITERATION_START_5 >= 151
-#    define BOOST_PP_ITERATION_5 151
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 151 && NDNBOOST_PP_ITERATION_START_5 >= 151
+#    define NDNBOOST_PP_ITERATION_5 151
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 150 && BOOST_PP_ITERATION_START_5 >= 150
-#    define BOOST_PP_ITERATION_5 150
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 150 && NDNBOOST_PP_ITERATION_START_5 >= 150
+#    define NDNBOOST_PP_ITERATION_5 150
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 149 && BOOST_PP_ITERATION_START_5 >= 149
-#    define BOOST_PP_ITERATION_5 149
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 149 && NDNBOOST_PP_ITERATION_START_5 >= 149
+#    define NDNBOOST_PP_ITERATION_5 149
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 148 && BOOST_PP_ITERATION_START_5 >= 148
-#    define BOOST_PP_ITERATION_5 148
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 148 && NDNBOOST_PP_ITERATION_START_5 >= 148
+#    define NDNBOOST_PP_ITERATION_5 148
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 147 && BOOST_PP_ITERATION_START_5 >= 147
-#    define BOOST_PP_ITERATION_5 147
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 147 && NDNBOOST_PP_ITERATION_START_5 >= 147
+#    define NDNBOOST_PP_ITERATION_5 147
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 146 && BOOST_PP_ITERATION_START_5 >= 146
-#    define BOOST_PP_ITERATION_5 146
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 146 && NDNBOOST_PP_ITERATION_START_5 >= 146
+#    define NDNBOOST_PP_ITERATION_5 146
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 145 && BOOST_PP_ITERATION_START_5 >= 145
-#    define BOOST_PP_ITERATION_5 145
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 145 && NDNBOOST_PP_ITERATION_START_5 >= 145
+#    define NDNBOOST_PP_ITERATION_5 145
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 144 && BOOST_PP_ITERATION_START_5 >= 144
-#    define BOOST_PP_ITERATION_5 144
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 144 && NDNBOOST_PP_ITERATION_START_5 >= 144
+#    define NDNBOOST_PP_ITERATION_5 144
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 143 && BOOST_PP_ITERATION_START_5 >= 143
-#    define BOOST_PP_ITERATION_5 143
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 143 && NDNBOOST_PP_ITERATION_START_5 >= 143
+#    define NDNBOOST_PP_ITERATION_5 143
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 142 && BOOST_PP_ITERATION_START_5 >= 142
-#    define BOOST_PP_ITERATION_5 142
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 142 && NDNBOOST_PP_ITERATION_START_5 >= 142
+#    define NDNBOOST_PP_ITERATION_5 142
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 141 && BOOST_PP_ITERATION_START_5 >= 141
-#    define BOOST_PP_ITERATION_5 141
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 141 && NDNBOOST_PP_ITERATION_START_5 >= 141
+#    define NDNBOOST_PP_ITERATION_5 141
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 140 && BOOST_PP_ITERATION_START_5 >= 140
-#    define BOOST_PP_ITERATION_5 140
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 140 && NDNBOOST_PP_ITERATION_START_5 >= 140
+#    define NDNBOOST_PP_ITERATION_5 140
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 139 && BOOST_PP_ITERATION_START_5 >= 139
-#    define BOOST_PP_ITERATION_5 139
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 139 && NDNBOOST_PP_ITERATION_START_5 >= 139
+#    define NDNBOOST_PP_ITERATION_5 139
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 138 && BOOST_PP_ITERATION_START_5 >= 138
-#    define BOOST_PP_ITERATION_5 138
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 138 && NDNBOOST_PP_ITERATION_START_5 >= 138
+#    define NDNBOOST_PP_ITERATION_5 138
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 137 && BOOST_PP_ITERATION_START_5 >= 137
-#    define BOOST_PP_ITERATION_5 137
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 137 && NDNBOOST_PP_ITERATION_START_5 >= 137
+#    define NDNBOOST_PP_ITERATION_5 137
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 136 && BOOST_PP_ITERATION_START_5 >= 136
-#    define BOOST_PP_ITERATION_5 136
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 136 && NDNBOOST_PP_ITERATION_START_5 >= 136
+#    define NDNBOOST_PP_ITERATION_5 136
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 135 && BOOST_PP_ITERATION_START_5 >= 135
-#    define BOOST_PP_ITERATION_5 135
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 135 && NDNBOOST_PP_ITERATION_START_5 >= 135
+#    define NDNBOOST_PP_ITERATION_5 135
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 134 && BOOST_PP_ITERATION_START_5 >= 134
-#    define BOOST_PP_ITERATION_5 134
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 134 && NDNBOOST_PP_ITERATION_START_5 >= 134
+#    define NDNBOOST_PP_ITERATION_5 134
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 133 && BOOST_PP_ITERATION_START_5 >= 133
-#    define BOOST_PP_ITERATION_5 133
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 133 && NDNBOOST_PP_ITERATION_START_5 >= 133
+#    define NDNBOOST_PP_ITERATION_5 133
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 132 && BOOST_PP_ITERATION_START_5 >= 132
-#    define BOOST_PP_ITERATION_5 132
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 132 && NDNBOOST_PP_ITERATION_START_5 >= 132
+#    define NDNBOOST_PP_ITERATION_5 132
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 131 && BOOST_PP_ITERATION_START_5 >= 131
-#    define BOOST_PP_ITERATION_5 131
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 131 && NDNBOOST_PP_ITERATION_START_5 >= 131
+#    define NDNBOOST_PP_ITERATION_5 131
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 130 && BOOST_PP_ITERATION_START_5 >= 130
-#    define BOOST_PP_ITERATION_5 130
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 130 && NDNBOOST_PP_ITERATION_START_5 >= 130
+#    define NDNBOOST_PP_ITERATION_5 130
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 129 && BOOST_PP_ITERATION_START_5 >= 129
-#    define BOOST_PP_ITERATION_5 129
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 129 && NDNBOOST_PP_ITERATION_START_5 >= 129
+#    define NDNBOOST_PP_ITERATION_5 129
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 128 && BOOST_PP_ITERATION_START_5 >= 128
-#    define BOOST_PP_ITERATION_5 128
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 128 && NDNBOOST_PP_ITERATION_START_5 >= 128
+#    define NDNBOOST_PP_ITERATION_5 128
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 127 && BOOST_PP_ITERATION_START_5 >= 127
-#    define BOOST_PP_ITERATION_5 127
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 127 && NDNBOOST_PP_ITERATION_START_5 >= 127
+#    define NDNBOOST_PP_ITERATION_5 127
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 126 && BOOST_PP_ITERATION_START_5 >= 126
-#    define BOOST_PP_ITERATION_5 126
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 126 && NDNBOOST_PP_ITERATION_START_5 >= 126
+#    define NDNBOOST_PP_ITERATION_5 126
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 125 && BOOST_PP_ITERATION_START_5 >= 125
-#    define BOOST_PP_ITERATION_5 125
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 125 && NDNBOOST_PP_ITERATION_START_5 >= 125
+#    define NDNBOOST_PP_ITERATION_5 125
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 124 && BOOST_PP_ITERATION_START_5 >= 124
-#    define BOOST_PP_ITERATION_5 124
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 124 && NDNBOOST_PP_ITERATION_START_5 >= 124
+#    define NDNBOOST_PP_ITERATION_5 124
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 123 && BOOST_PP_ITERATION_START_5 >= 123
-#    define BOOST_PP_ITERATION_5 123
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 123 && NDNBOOST_PP_ITERATION_START_5 >= 123
+#    define NDNBOOST_PP_ITERATION_5 123
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 122 && BOOST_PP_ITERATION_START_5 >= 122
-#    define BOOST_PP_ITERATION_5 122
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 122 && NDNBOOST_PP_ITERATION_START_5 >= 122
+#    define NDNBOOST_PP_ITERATION_5 122
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 121 && BOOST_PP_ITERATION_START_5 >= 121
-#    define BOOST_PP_ITERATION_5 121
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 121 && NDNBOOST_PP_ITERATION_START_5 >= 121
+#    define NDNBOOST_PP_ITERATION_5 121
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 120 && BOOST_PP_ITERATION_START_5 >= 120
-#    define BOOST_PP_ITERATION_5 120
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 120 && NDNBOOST_PP_ITERATION_START_5 >= 120
+#    define NDNBOOST_PP_ITERATION_5 120
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 119 && BOOST_PP_ITERATION_START_5 >= 119
-#    define BOOST_PP_ITERATION_5 119
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 119 && NDNBOOST_PP_ITERATION_START_5 >= 119
+#    define NDNBOOST_PP_ITERATION_5 119
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 118 && BOOST_PP_ITERATION_START_5 >= 118
-#    define BOOST_PP_ITERATION_5 118
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 118 && NDNBOOST_PP_ITERATION_START_5 >= 118
+#    define NDNBOOST_PP_ITERATION_5 118
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 117 && BOOST_PP_ITERATION_START_5 >= 117
-#    define BOOST_PP_ITERATION_5 117
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 117 && NDNBOOST_PP_ITERATION_START_5 >= 117
+#    define NDNBOOST_PP_ITERATION_5 117
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 116 && BOOST_PP_ITERATION_START_5 >= 116
-#    define BOOST_PP_ITERATION_5 116
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 116 && NDNBOOST_PP_ITERATION_START_5 >= 116
+#    define NDNBOOST_PP_ITERATION_5 116
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 115 && BOOST_PP_ITERATION_START_5 >= 115
-#    define BOOST_PP_ITERATION_5 115
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 115 && NDNBOOST_PP_ITERATION_START_5 >= 115
+#    define NDNBOOST_PP_ITERATION_5 115
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 114 && BOOST_PP_ITERATION_START_5 >= 114
-#    define BOOST_PP_ITERATION_5 114
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 114 && NDNBOOST_PP_ITERATION_START_5 >= 114
+#    define NDNBOOST_PP_ITERATION_5 114
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 113 && BOOST_PP_ITERATION_START_5 >= 113
-#    define BOOST_PP_ITERATION_5 113
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 113 && NDNBOOST_PP_ITERATION_START_5 >= 113
+#    define NDNBOOST_PP_ITERATION_5 113
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 112 && BOOST_PP_ITERATION_START_5 >= 112
-#    define BOOST_PP_ITERATION_5 112
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 112 && NDNBOOST_PP_ITERATION_START_5 >= 112
+#    define NDNBOOST_PP_ITERATION_5 112
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 111 && BOOST_PP_ITERATION_START_5 >= 111
-#    define BOOST_PP_ITERATION_5 111
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 111 && NDNBOOST_PP_ITERATION_START_5 >= 111
+#    define NDNBOOST_PP_ITERATION_5 111
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 110 && BOOST_PP_ITERATION_START_5 >= 110
-#    define BOOST_PP_ITERATION_5 110
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 110 && NDNBOOST_PP_ITERATION_START_5 >= 110
+#    define NDNBOOST_PP_ITERATION_5 110
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 109 && BOOST_PP_ITERATION_START_5 >= 109
-#    define BOOST_PP_ITERATION_5 109
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 109 && NDNBOOST_PP_ITERATION_START_5 >= 109
+#    define NDNBOOST_PP_ITERATION_5 109
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 108 && BOOST_PP_ITERATION_START_5 >= 108
-#    define BOOST_PP_ITERATION_5 108
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 108 && NDNBOOST_PP_ITERATION_START_5 >= 108
+#    define NDNBOOST_PP_ITERATION_5 108
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 107 && BOOST_PP_ITERATION_START_5 >= 107
-#    define BOOST_PP_ITERATION_5 107
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 107 && NDNBOOST_PP_ITERATION_START_5 >= 107
+#    define NDNBOOST_PP_ITERATION_5 107
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 106 && BOOST_PP_ITERATION_START_5 >= 106
-#    define BOOST_PP_ITERATION_5 106
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 106 && NDNBOOST_PP_ITERATION_START_5 >= 106
+#    define NDNBOOST_PP_ITERATION_5 106
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 105 && BOOST_PP_ITERATION_START_5 >= 105
-#    define BOOST_PP_ITERATION_5 105
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 105 && NDNBOOST_PP_ITERATION_START_5 >= 105
+#    define NDNBOOST_PP_ITERATION_5 105
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 104 && BOOST_PP_ITERATION_START_5 >= 104
-#    define BOOST_PP_ITERATION_5 104
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 104 && NDNBOOST_PP_ITERATION_START_5 >= 104
+#    define NDNBOOST_PP_ITERATION_5 104
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 103 && BOOST_PP_ITERATION_START_5 >= 103
-#    define BOOST_PP_ITERATION_5 103
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 103 && NDNBOOST_PP_ITERATION_START_5 >= 103
+#    define NDNBOOST_PP_ITERATION_5 103
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 102 && BOOST_PP_ITERATION_START_5 >= 102
-#    define BOOST_PP_ITERATION_5 102
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 102 && NDNBOOST_PP_ITERATION_START_5 >= 102
+#    define NDNBOOST_PP_ITERATION_5 102
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 101 && BOOST_PP_ITERATION_START_5 >= 101
-#    define BOOST_PP_ITERATION_5 101
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 101 && NDNBOOST_PP_ITERATION_START_5 >= 101
+#    define NDNBOOST_PP_ITERATION_5 101
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 100 && BOOST_PP_ITERATION_START_5 >= 100
-#    define BOOST_PP_ITERATION_5 100
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 100 && NDNBOOST_PP_ITERATION_START_5 >= 100
+#    define NDNBOOST_PP_ITERATION_5 100
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 99 && BOOST_PP_ITERATION_START_5 >= 99
-#    define BOOST_PP_ITERATION_5 99
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 99 && NDNBOOST_PP_ITERATION_START_5 >= 99
+#    define NDNBOOST_PP_ITERATION_5 99
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 98 && BOOST_PP_ITERATION_START_5 >= 98
-#    define BOOST_PP_ITERATION_5 98
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 98 && NDNBOOST_PP_ITERATION_START_5 >= 98
+#    define NDNBOOST_PP_ITERATION_5 98
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 97 && BOOST_PP_ITERATION_START_5 >= 97
-#    define BOOST_PP_ITERATION_5 97
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 97 && NDNBOOST_PP_ITERATION_START_5 >= 97
+#    define NDNBOOST_PP_ITERATION_5 97
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 96 && BOOST_PP_ITERATION_START_5 >= 96
-#    define BOOST_PP_ITERATION_5 96
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 96 && NDNBOOST_PP_ITERATION_START_5 >= 96
+#    define NDNBOOST_PP_ITERATION_5 96
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 95 && BOOST_PP_ITERATION_START_5 >= 95
-#    define BOOST_PP_ITERATION_5 95
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 95 && NDNBOOST_PP_ITERATION_START_5 >= 95
+#    define NDNBOOST_PP_ITERATION_5 95
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 94 && BOOST_PP_ITERATION_START_5 >= 94
-#    define BOOST_PP_ITERATION_5 94
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 94 && NDNBOOST_PP_ITERATION_START_5 >= 94
+#    define NDNBOOST_PP_ITERATION_5 94
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 93 && BOOST_PP_ITERATION_START_5 >= 93
-#    define BOOST_PP_ITERATION_5 93
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 93 && NDNBOOST_PP_ITERATION_START_5 >= 93
+#    define NDNBOOST_PP_ITERATION_5 93
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 92 && BOOST_PP_ITERATION_START_5 >= 92
-#    define BOOST_PP_ITERATION_5 92
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 92 && NDNBOOST_PP_ITERATION_START_5 >= 92
+#    define NDNBOOST_PP_ITERATION_5 92
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 91 && BOOST_PP_ITERATION_START_5 >= 91
-#    define BOOST_PP_ITERATION_5 91
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 91 && NDNBOOST_PP_ITERATION_START_5 >= 91
+#    define NDNBOOST_PP_ITERATION_5 91
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 90 && BOOST_PP_ITERATION_START_5 >= 90
-#    define BOOST_PP_ITERATION_5 90
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 90 && NDNBOOST_PP_ITERATION_START_5 >= 90
+#    define NDNBOOST_PP_ITERATION_5 90
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 89 && BOOST_PP_ITERATION_START_5 >= 89
-#    define BOOST_PP_ITERATION_5 89
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 89 && NDNBOOST_PP_ITERATION_START_5 >= 89
+#    define NDNBOOST_PP_ITERATION_5 89
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 88 && BOOST_PP_ITERATION_START_5 >= 88
-#    define BOOST_PP_ITERATION_5 88
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 88 && NDNBOOST_PP_ITERATION_START_5 >= 88
+#    define NDNBOOST_PP_ITERATION_5 88
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 87 && BOOST_PP_ITERATION_START_5 >= 87
-#    define BOOST_PP_ITERATION_5 87
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 87 && NDNBOOST_PP_ITERATION_START_5 >= 87
+#    define NDNBOOST_PP_ITERATION_5 87
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 86 && BOOST_PP_ITERATION_START_5 >= 86
-#    define BOOST_PP_ITERATION_5 86
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 86 && NDNBOOST_PP_ITERATION_START_5 >= 86
+#    define NDNBOOST_PP_ITERATION_5 86
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 85 && BOOST_PP_ITERATION_START_5 >= 85
-#    define BOOST_PP_ITERATION_5 85
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 85 && NDNBOOST_PP_ITERATION_START_5 >= 85
+#    define NDNBOOST_PP_ITERATION_5 85
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 84 && BOOST_PP_ITERATION_START_5 >= 84
-#    define BOOST_PP_ITERATION_5 84
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 84 && NDNBOOST_PP_ITERATION_START_5 >= 84
+#    define NDNBOOST_PP_ITERATION_5 84
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 83 && BOOST_PP_ITERATION_START_5 >= 83
-#    define BOOST_PP_ITERATION_5 83
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 83 && NDNBOOST_PP_ITERATION_START_5 >= 83
+#    define NDNBOOST_PP_ITERATION_5 83
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 82 && BOOST_PP_ITERATION_START_5 >= 82
-#    define BOOST_PP_ITERATION_5 82
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 82 && NDNBOOST_PP_ITERATION_START_5 >= 82
+#    define NDNBOOST_PP_ITERATION_5 82
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 81 && BOOST_PP_ITERATION_START_5 >= 81
-#    define BOOST_PP_ITERATION_5 81
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 81 && NDNBOOST_PP_ITERATION_START_5 >= 81
+#    define NDNBOOST_PP_ITERATION_5 81
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 80 && BOOST_PP_ITERATION_START_5 >= 80
-#    define BOOST_PP_ITERATION_5 80
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 80 && NDNBOOST_PP_ITERATION_START_5 >= 80
+#    define NDNBOOST_PP_ITERATION_5 80
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 79 && BOOST_PP_ITERATION_START_5 >= 79
-#    define BOOST_PP_ITERATION_5 79
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 79 && NDNBOOST_PP_ITERATION_START_5 >= 79
+#    define NDNBOOST_PP_ITERATION_5 79
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 78 && BOOST_PP_ITERATION_START_5 >= 78
-#    define BOOST_PP_ITERATION_5 78
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 78 && NDNBOOST_PP_ITERATION_START_5 >= 78
+#    define NDNBOOST_PP_ITERATION_5 78
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 77 && BOOST_PP_ITERATION_START_5 >= 77
-#    define BOOST_PP_ITERATION_5 77
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 77 && NDNBOOST_PP_ITERATION_START_5 >= 77
+#    define NDNBOOST_PP_ITERATION_5 77
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 76 && BOOST_PP_ITERATION_START_5 >= 76
-#    define BOOST_PP_ITERATION_5 76
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 76 && NDNBOOST_PP_ITERATION_START_5 >= 76
+#    define NDNBOOST_PP_ITERATION_5 76
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 75 && BOOST_PP_ITERATION_START_5 >= 75
-#    define BOOST_PP_ITERATION_5 75
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 75 && NDNBOOST_PP_ITERATION_START_5 >= 75
+#    define NDNBOOST_PP_ITERATION_5 75
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 74 && BOOST_PP_ITERATION_START_5 >= 74
-#    define BOOST_PP_ITERATION_5 74
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 74 && NDNBOOST_PP_ITERATION_START_5 >= 74
+#    define NDNBOOST_PP_ITERATION_5 74
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 73 && BOOST_PP_ITERATION_START_5 >= 73
-#    define BOOST_PP_ITERATION_5 73
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 73 && NDNBOOST_PP_ITERATION_START_5 >= 73
+#    define NDNBOOST_PP_ITERATION_5 73
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 72 && BOOST_PP_ITERATION_START_5 >= 72
-#    define BOOST_PP_ITERATION_5 72
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 72 && NDNBOOST_PP_ITERATION_START_5 >= 72
+#    define NDNBOOST_PP_ITERATION_5 72
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 71 && BOOST_PP_ITERATION_START_5 >= 71
-#    define BOOST_PP_ITERATION_5 71
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 71 && NDNBOOST_PP_ITERATION_START_5 >= 71
+#    define NDNBOOST_PP_ITERATION_5 71
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 70 && BOOST_PP_ITERATION_START_5 >= 70
-#    define BOOST_PP_ITERATION_5 70
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 70 && NDNBOOST_PP_ITERATION_START_5 >= 70
+#    define NDNBOOST_PP_ITERATION_5 70
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 69 && BOOST_PP_ITERATION_START_5 >= 69
-#    define BOOST_PP_ITERATION_5 69
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 69 && NDNBOOST_PP_ITERATION_START_5 >= 69
+#    define NDNBOOST_PP_ITERATION_5 69
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 68 && BOOST_PP_ITERATION_START_5 >= 68
-#    define BOOST_PP_ITERATION_5 68
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 68 && NDNBOOST_PP_ITERATION_START_5 >= 68
+#    define NDNBOOST_PP_ITERATION_5 68
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 67 && BOOST_PP_ITERATION_START_5 >= 67
-#    define BOOST_PP_ITERATION_5 67
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 67 && NDNBOOST_PP_ITERATION_START_5 >= 67
+#    define NDNBOOST_PP_ITERATION_5 67
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 66 && BOOST_PP_ITERATION_START_5 >= 66
-#    define BOOST_PP_ITERATION_5 66
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 66 && NDNBOOST_PP_ITERATION_START_5 >= 66
+#    define NDNBOOST_PP_ITERATION_5 66
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 65 && BOOST_PP_ITERATION_START_5 >= 65
-#    define BOOST_PP_ITERATION_5 65
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 65 && NDNBOOST_PP_ITERATION_START_5 >= 65
+#    define NDNBOOST_PP_ITERATION_5 65
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 64 && BOOST_PP_ITERATION_START_5 >= 64
-#    define BOOST_PP_ITERATION_5 64
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 64 && NDNBOOST_PP_ITERATION_START_5 >= 64
+#    define NDNBOOST_PP_ITERATION_5 64
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 63 && BOOST_PP_ITERATION_START_5 >= 63
-#    define BOOST_PP_ITERATION_5 63
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 63 && NDNBOOST_PP_ITERATION_START_5 >= 63
+#    define NDNBOOST_PP_ITERATION_5 63
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 62 && BOOST_PP_ITERATION_START_5 >= 62
-#    define BOOST_PP_ITERATION_5 62
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 62 && NDNBOOST_PP_ITERATION_START_5 >= 62
+#    define NDNBOOST_PP_ITERATION_5 62
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 61 && BOOST_PP_ITERATION_START_5 >= 61
-#    define BOOST_PP_ITERATION_5 61
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 61 && NDNBOOST_PP_ITERATION_START_5 >= 61
+#    define NDNBOOST_PP_ITERATION_5 61
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 60 && BOOST_PP_ITERATION_START_5 >= 60
-#    define BOOST_PP_ITERATION_5 60
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 60 && NDNBOOST_PP_ITERATION_START_5 >= 60
+#    define NDNBOOST_PP_ITERATION_5 60
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 59 && BOOST_PP_ITERATION_START_5 >= 59
-#    define BOOST_PP_ITERATION_5 59
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 59 && NDNBOOST_PP_ITERATION_START_5 >= 59
+#    define NDNBOOST_PP_ITERATION_5 59
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 58 && BOOST_PP_ITERATION_START_5 >= 58
-#    define BOOST_PP_ITERATION_5 58
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 58 && NDNBOOST_PP_ITERATION_START_5 >= 58
+#    define NDNBOOST_PP_ITERATION_5 58
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 57 && BOOST_PP_ITERATION_START_5 >= 57
-#    define BOOST_PP_ITERATION_5 57
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 57 && NDNBOOST_PP_ITERATION_START_5 >= 57
+#    define NDNBOOST_PP_ITERATION_5 57
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 56 && BOOST_PP_ITERATION_START_5 >= 56
-#    define BOOST_PP_ITERATION_5 56
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 56 && NDNBOOST_PP_ITERATION_START_5 >= 56
+#    define NDNBOOST_PP_ITERATION_5 56
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 55 && BOOST_PP_ITERATION_START_5 >= 55
-#    define BOOST_PP_ITERATION_5 55
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 55 && NDNBOOST_PP_ITERATION_START_5 >= 55
+#    define NDNBOOST_PP_ITERATION_5 55
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 54 && BOOST_PP_ITERATION_START_5 >= 54
-#    define BOOST_PP_ITERATION_5 54
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 54 && NDNBOOST_PP_ITERATION_START_5 >= 54
+#    define NDNBOOST_PP_ITERATION_5 54
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 53 && BOOST_PP_ITERATION_START_5 >= 53
-#    define BOOST_PP_ITERATION_5 53
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 53 && NDNBOOST_PP_ITERATION_START_5 >= 53
+#    define NDNBOOST_PP_ITERATION_5 53
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 52 && BOOST_PP_ITERATION_START_5 >= 52
-#    define BOOST_PP_ITERATION_5 52
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 52 && NDNBOOST_PP_ITERATION_START_5 >= 52
+#    define NDNBOOST_PP_ITERATION_5 52
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 51 && BOOST_PP_ITERATION_START_5 >= 51
-#    define BOOST_PP_ITERATION_5 51
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 51 && NDNBOOST_PP_ITERATION_START_5 >= 51
+#    define NDNBOOST_PP_ITERATION_5 51
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 50 && BOOST_PP_ITERATION_START_5 >= 50
-#    define BOOST_PP_ITERATION_5 50
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 50 && NDNBOOST_PP_ITERATION_START_5 >= 50
+#    define NDNBOOST_PP_ITERATION_5 50
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 49 && BOOST_PP_ITERATION_START_5 >= 49
-#    define BOOST_PP_ITERATION_5 49
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 49 && NDNBOOST_PP_ITERATION_START_5 >= 49
+#    define NDNBOOST_PP_ITERATION_5 49
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 48 && BOOST_PP_ITERATION_START_5 >= 48
-#    define BOOST_PP_ITERATION_5 48
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 48 && NDNBOOST_PP_ITERATION_START_5 >= 48
+#    define NDNBOOST_PP_ITERATION_5 48
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 47 && BOOST_PP_ITERATION_START_5 >= 47
-#    define BOOST_PP_ITERATION_5 47
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 47 && NDNBOOST_PP_ITERATION_START_5 >= 47
+#    define NDNBOOST_PP_ITERATION_5 47
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 46 && BOOST_PP_ITERATION_START_5 >= 46
-#    define BOOST_PP_ITERATION_5 46
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 46 && NDNBOOST_PP_ITERATION_START_5 >= 46
+#    define NDNBOOST_PP_ITERATION_5 46
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 45 && BOOST_PP_ITERATION_START_5 >= 45
-#    define BOOST_PP_ITERATION_5 45
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 45 && NDNBOOST_PP_ITERATION_START_5 >= 45
+#    define NDNBOOST_PP_ITERATION_5 45
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 44 && BOOST_PP_ITERATION_START_5 >= 44
-#    define BOOST_PP_ITERATION_5 44
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 44 && NDNBOOST_PP_ITERATION_START_5 >= 44
+#    define NDNBOOST_PP_ITERATION_5 44
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 43 && BOOST_PP_ITERATION_START_5 >= 43
-#    define BOOST_PP_ITERATION_5 43
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 43 && NDNBOOST_PP_ITERATION_START_5 >= 43
+#    define NDNBOOST_PP_ITERATION_5 43
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 42 && BOOST_PP_ITERATION_START_5 >= 42
-#    define BOOST_PP_ITERATION_5 42
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 42 && NDNBOOST_PP_ITERATION_START_5 >= 42
+#    define NDNBOOST_PP_ITERATION_5 42
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 41 && BOOST_PP_ITERATION_START_5 >= 41
-#    define BOOST_PP_ITERATION_5 41
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 41 && NDNBOOST_PP_ITERATION_START_5 >= 41
+#    define NDNBOOST_PP_ITERATION_5 41
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 40 && BOOST_PP_ITERATION_START_5 >= 40
-#    define BOOST_PP_ITERATION_5 40
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 40 && NDNBOOST_PP_ITERATION_START_5 >= 40
+#    define NDNBOOST_PP_ITERATION_5 40
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 39 && BOOST_PP_ITERATION_START_5 >= 39
-#    define BOOST_PP_ITERATION_5 39
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 39 && NDNBOOST_PP_ITERATION_START_5 >= 39
+#    define NDNBOOST_PP_ITERATION_5 39
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 38 && BOOST_PP_ITERATION_START_5 >= 38
-#    define BOOST_PP_ITERATION_5 38
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 38 && NDNBOOST_PP_ITERATION_START_5 >= 38
+#    define NDNBOOST_PP_ITERATION_5 38
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 37 && BOOST_PP_ITERATION_START_5 >= 37
-#    define BOOST_PP_ITERATION_5 37
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 37 && NDNBOOST_PP_ITERATION_START_5 >= 37
+#    define NDNBOOST_PP_ITERATION_5 37
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 36 && BOOST_PP_ITERATION_START_5 >= 36
-#    define BOOST_PP_ITERATION_5 36
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 36 && NDNBOOST_PP_ITERATION_START_5 >= 36
+#    define NDNBOOST_PP_ITERATION_5 36
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 35 && BOOST_PP_ITERATION_START_5 >= 35
-#    define BOOST_PP_ITERATION_5 35
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 35 && NDNBOOST_PP_ITERATION_START_5 >= 35
+#    define NDNBOOST_PP_ITERATION_5 35
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 34 && BOOST_PP_ITERATION_START_5 >= 34
-#    define BOOST_PP_ITERATION_5 34
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 34 && NDNBOOST_PP_ITERATION_START_5 >= 34
+#    define NDNBOOST_PP_ITERATION_5 34
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 33 && BOOST_PP_ITERATION_START_5 >= 33
-#    define BOOST_PP_ITERATION_5 33
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 33 && NDNBOOST_PP_ITERATION_START_5 >= 33
+#    define NDNBOOST_PP_ITERATION_5 33
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 32 && BOOST_PP_ITERATION_START_5 >= 32
-#    define BOOST_PP_ITERATION_5 32
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 32 && NDNBOOST_PP_ITERATION_START_5 >= 32
+#    define NDNBOOST_PP_ITERATION_5 32
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 31 && BOOST_PP_ITERATION_START_5 >= 31
-#    define BOOST_PP_ITERATION_5 31
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 31 && NDNBOOST_PP_ITERATION_START_5 >= 31
+#    define NDNBOOST_PP_ITERATION_5 31
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 30 && BOOST_PP_ITERATION_START_5 >= 30
-#    define BOOST_PP_ITERATION_5 30
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 30 && NDNBOOST_PP_ITERATION_START_5 >= 30
+#    define NDNBOOST_PP_ITERATION_5 30
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 29 && BOOST_PP_ITERATION_START_5 >= 29
-#    define BOOST_PP_ITERATION_5 29
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 29 && NDNBOOST_PP_ITERATION_START_5 >= 29
+#    define NDNBOOST_PP_ITERATION_5 29
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 28 && BOOST_PP_ITERATION_START_5 >= 28
-#    define BOOST_PP_ITERATION_5 28
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 28 && NDNBOOST_PP_ITERATION_START_5 >= 28
+#    define NDNBOOST_PP_ITERATION_5 28
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 27 && BOOST_PP_ITERATION_START_5 >= 27
-#    define BOOST_PP_ITERATION_5 27
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 27 && NDNBOOST_PP_ITERATION_START_5 >= 27
+#    define NDNBOOST_PP_ITERATION_5 27
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 26 && BOOST_PP_ITERATION_START_5 >= 26
-#    define BOOST_PP_ITERATION_5 26
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 26 && NDNBOOST_PP_ITERATION_START_5 >= 26
+#    define NDNBOOST_PP_ITERATION_5 26
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 25 && BOOST_PP_ITERATION_START_5 >= 25
-#    define BOOST_PP_ITERATION_5 25
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 25 && NDNBOOST_PP_ITERATION_START_5 >= 25
+#    define NDNBOOST_PP_ITERATION_5 25
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 24 && BOOST_PP_ITERATION_START_5 >= 24
-#    define BOOST_PP_ITERATION_5 24
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 24 && NDNBOOST_PP_ITERATION_START_5 >= 24
+#    define NDNBOOST_PP_ITERATION_5 24
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 23 && BOOST_PP_ITERATION_START_5 >= 23
-#    define BOOST_PP_ITERATION_5 23
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 23 && NDNBOOST_PP_ITERATION_START_5 >= 23
+#    define NDNBOOST_PP_ITERATION_5 23
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 22 && BOOST_PP_ITERATION_START_5 >= 22
-#    define BOOST_PP_ITERATION_5 22
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 22 && NDNBOOST_PP_ITERATION_START_5 >= 22
+#    define NDNBOOST_PP_ITERATION_5 22
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 21 && BOOST_PP_ITERATION_START_5 >= 21
-#    define BOOST_PP_ITERATION_5 21
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 21 && NDNBOOST_PP_ITERATION_START_5 >= 21
+#    define NDNBOOST_PP_ITERATION_5 21
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 20 && BOOST_PP_ITERATION_START_5 >= 20
-#    define BOOST_PP_ITERATION_5 20
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 20 && NDNBOOST_PP_ITERATION_START_5 >= 20
+#    define NDNBOOST_PP_ITERATION_5 20
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 19 && BOOST_PP_ITERATION_START_5 >= 19
-#    define BOOST_PP_ITERATION_5 19
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 19 && NDNBOOST_PP_ITERATION_START_5 >= 19
+#    define NDNBOOST_PP_ITERATION_5 19
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 18 && BOOST_PP_ITERATION_START_5 >= 18
-#    define BOOST_PP_ITERATION_5 18
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 18 && NDNBOOST_PP_ITERATION_START_5 >= 18
+#    define NDNBOOST_PP_ITERATION_5 18
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 17 && BOOST_PP_ITERATION_START_5 >= 17
-#    define BOOST_PP_ITERATION_5 17
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 17 && NDNBOOST_PP_ITERATION_START_5 >= 17
+#    define NDNBOOST_PP_ITERATION_5 17
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 16 && BOOST_PP_ITERATION_START_5 >= 16
-#    define BOOST_PP_ITERATION_5 16
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 16 && NDNBOOST_PP_ITERATION_START_5 >= 16
+#    define NDNBOOST_PP_ITERATION_5 16
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 15 && BOOST_PP_ITERATION_START_5 >= 15
-#    define BOOST_PP_ITERATION_5 15
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 15 && NDNBOOST_PP_ITERATION_START_5 >= 15
+#    define NDNBOOST_PP_ITERATION_5 15
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 14 && BOOST_PP_ITERATION_START_5 >= 14
-#    define BOOST_PP_ITERATION_5 14
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 14 && NDNBOOST_PP_ITERATION_START_5 >= 14
+#    define NDNBOOST_PP_ITERATION_5 14
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 13 && BOOST_PP_ITERATION_START_5 >= 13
-#    define BOOST_PP_ITERATION_5 13
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 13 && NDNBOOST_PP_ITERATION_START_5 >= 13
+#    define NDNBOOST_PP_ITERATION_5 13
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 12 && BOOST_PP_ITERATION_START_5 >= 12
-#    define BOOST_PP_ITERATION_5 12
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 12 && NDNBOOST_PP_ITERATION_START_5 >= 12
+#    define NDNBOOST_PP_ITERATION_5 12
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 11 && BOOST_PP_ITERATION_START_5 >= 11
-#    define BOOST_PP_ITERATION_5 11
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 11 && NDNBOOST_PP_ITERATION_START_5 >= 11
+#    define NDNBOOST_PP_ITERATION_5 11
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 10 && BOOST_PP_ITERATION_START_5 >= 10
-#    define BOOST_PP_ITERATION_5 10
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 10 && NDNBOOST_PP_ITERATION_START_5 >= 10
+#    define NDNBOOST_PP_ITERATION_5 10
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 9 && BOOST_PP_ITERATION_START_5 >= 9
-#    define BOOST_PP_ITERATION_5 9
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 9 && NDNBOOST_PP_ITERATION_START_5 >= 9
+#    define NDNBOOST_PP_ITERATION_5 9
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 8 && BOOST_PP_ITERATION_START_5 >= 8
-#    define BOOST_PP_ITERATION_5 8
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 8 && NDNBOOST_PP_ITERATION_START_5 >= 8
+#    define NDNBOOST_PP_ITERATION_5 8
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 7 && BOOST_PP_ITERATION_START_5 >= 7
-#    define BOOST_PP_ITERATION_5 7
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 7 && NDNBOOST_PP_ITERATION_START_5 >= 7
+#    define NDNBOOST_PP_ITERATION_5 7
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 6 && BOOST_PP_ITERATION_START_5 >= 6
-#    define BOOST_PP_ITERATION_5 6
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 6 && NDNBOOST_PP_ITERATION_START_5 >= 6
+#    define NDNBOOST_PP_ITERATION_5 6
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 5 && BOOST_PP_ITERATION_START_5 >= 5
-#    define BOOST_PP_ITERATION_5 5
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 5 && NDNBOOST_PP_ITERATION_START_5 >= 5
+#    define NDNBOOST_PP_ITERATION_5 5
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 4 && BOOST_PP_ITERATION_START_5 >= 4
-#    define BOOST_PP_ITERATION_5 4
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 4 && NDNBOOST_PP_ITERATION_START_5 >= 4
+#    define NDNBOOST_PP_ITERATION_5 4
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 3 && BOOST_PP_ITERATION_START_5 >= 3
-#    define BOOST_PP_ITERATION_5 3
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 3 && NDNBOOST_PP_ITERATION_START_5 >= 3
+#    define NDNBOOST_PP_ITERATION_5 3
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 2 && BOOST_PP_ITERATION_START_5 >= 2
-#    define BOOST_PP_ITERATION_5 2
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 2 && NDNBOOST_PP_ITERATION_START_5 >= 2
+#    define NDNBOOST_PP_ITERATION_5 2
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 1 && BOOST_PP_ITERATION_START_5 >= 1
-#    define BOOST_PP_ITERATION_5 1
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 1 && NDNBOOST_PP_ITERATION_START_5 >= 1
+#    define NDNBOOST_PP_ITERATION_5 1
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 0 && BOOST_PP_ITERATION_START_5 >= 0
-#    define BOOST_PP_ITERATION_5 0
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
+# if NDNBOOST_PP_ITERATION_FINISH_5 <= 0 && NDNBOOST_PP_ITERATION_START_5 >= 0
+#    define NDNBOOST_PP_ITERATION_5 0
+#    include NDNBOOST_PP_FILENAME_5
+#    undef NDNBOOST_PP_ITERATION_5
 # endif
diff --git a/include/ndnboost/preprocessor/iteration/detail/local.hpp b/include/ndnboost/preprocessor/iteration/detail/local.hpp
index 1c79f47..1ec14a2 100644
--- a/include/ndnboost/preprocessor/iteration/detail/local.hpp
+++ b/include/ndnboost/preprocessor/iteration/detail/local.hpp
@@ -9,804 +9,804 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# if !defined(BOOST_PP_LOCAL_LIMITS)
-#    error BOOST_PP_ERROR:  local iteration boundaries are not defined
-# elif !defined(BOOST_PP_LOCAL_MACRO)
-#    error BOOST_PP_ERROR:  local iteration target macro is not defined
+# if !defined(NDNBOOST_PP_LOCAL_LIMITS)
+#    error NDNBOOST_PP_ERROR:  local iteration boundaries are not defined
+# elif !defined(NDNBOOST_PP_LOCAL_MACRO)
+#    error NDNBOOST_PP_ERROR:  local iteration target macro is not defined
 # else
-#    if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#        define BOOST_PP_LOCAL_S BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_LOCAL_LIMITS)
-#        define BOOST_PP_LOCAL_F BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_LOCAL_LIMITS)
+#    if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#        define NDNBOOST_PP_LOCAL_S NDNBOOST_PP_TUPLE_ELEM(2, 0, NDNBOOST_PP_LOCAL_LIMITS)
+#        define NDNBOOST_PP_LOCAL_F NDNBOOST_PP_TUPLE_ELEM(2, 1, NDNBOOST_PP_LOCAL_LIMITS)
 #    else
-#        define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_LOCAL_LIMITS)
+#        define NDNBOOST_PP_VALUE NDNBOOST_PP_TUPLE_ELEM(2, 0, NDNBOOST_PP_LOCAL_LIMITS)
 #        include <ndnboost/preprocessor/iteration/detail/start.hpp>
-#        define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_LOCAL_LIMITS)
+#        define NDNBOOST_PP_VALUE NDNBOOST_PP_TUPLE_ELEM(2, 1, NDNBOOST_PP_LOCAL_LIMITS)
 #        include <ndnboost/preprocessor/iteration/detail/finish.hpp>
-#        define BOOST_PP_LOCAL_S BOOST_PP_LOCAL_SE()
-#        define BOOST_PP_LOCAL_F BOOST_PP_LOCAL_FE()
+#        define NDNBOOST_PP_LOCAL_S NDNBOOST_PP_LOCAL_SE()
+#        define NDNBOOST_PP_LOCAL_F NDNBOOST_PP_LOCAL_FE()
 #    endif
 # endif
 #
-# if (BOOST_PP_LOCAL_S) > (BOOST_PP_LOCAL_F)
+# if (NDNBOOST_PP_LOCAL_S) > (NDNBOOST_PP_LOCAL_F)
 #    include <ndnboost/preprocessor/iteration/detail/rlocal.hpp>
 # else
-#    if BOOST_PP_LOCAL_C(0)
-        BOOST_PP_LOCAL_MACRO(0)
+#    if NDNBOOST_PP_LOCAL_C(0)
+        NDNBOOST_PP_LOCAL_MACRO(0)
 #    endif
-#    if BOOST_PP_LOCAL_C(1)
-        BOOST_PP_LOCAL_MACRO(1)
+#    if NDNBOOST_PP_LOCAL_C(1)
+        NDNBOOST_PP_LOCAL_MACRO(1)
 #    endif
-#    if BOOST_PP_LOCAL_C(2)
-        BOOST_PP_LOCAL_MACRO(2)
+#    if NDNBOOST_PP_LOCAL_C(2)
+        NDNBOOST_PP_LOCAL_MACRO(2)
 #    endif
-#    if BOOST_PP_LOCAL_C(3)
-        BOOST_PP_LOCAL_MACRO(3)
+#    if NDNBOOST_PP_LOCAL_C(3)
+        NDNBOOST_PP_LOCAL_MACRO(3)
 #    endif
-#    if BOOST_PP_LOCAL_C(4)
-        BOOST_PP_LOCAL_MACRO(4)
+#    if NDNBOOST_PP_LOCAL_C(4)
+        NDNBOOST_PP_LOCAL_MACRO(4)
 #    endif
-#    if BOOST_PP_LOCAL_C(5)
-        BOOST_PP_LOCAL_MACRO(5)
+#    if NDNBOOST_PP_LOCAL_C(5)
+        NDNBOOST_PP_LOCAL_MACRO(5)
 #    endif
-#    if BOOST_PP_LOCAL_C(6)
-        BOOST_PP_LOCAL_MACRO(6)
+#    if NDNBOOST_PP_LOCAL_C(6)
+        NDNBOOST_PP_LOCAL_MACRO(6)
 #    endif
-#    if BOOST_PP_LOCAL_C(7)
-        BOOST_PP_LOCAL_MACRO(7)
+#    if NDNBOOST_PP_LOCAL_C(7)
+        NDNBOOST_PP_LOCAL_MACRO(7)
 #    endif
-#    if BOOST_PP_LOCAL_C(8)
-        BOOST_PP_LOCAL_MACRO(8)
+#    if NDNBOOST_PP_LOCAL_C(8)
+        NDNBOOST_PP_LOCAL_MACRO(8)
 #    endif
-#    if BOOST_PP_LOCAL_C(9)
-        BOOST_PP_LOCAL_MACRO(9)
+#    if NDNBOOST_PP_LOCAL_C(9)
+        NDNBOOST_PP_LOCAL_MACRO(9)
 #    endif
-#    if BOOST_PP_LOCAL_C(10)
-        BOOST_PP_LOCAL_MACRO(10)
+#    if NDNBOOST_PP_LOCAL_C(10)
+        NDNBOOST_PP_LOCAL_MACRO(10)
 #    endif
-#    if BOOST_PP_LOCAL_C(11)
-        BOOST_PP_LOCAL_MACRO(11)
+#    if NDNBOOST_PP_LOCAL_C(11)
+        NDNBOOST_PP_LOCAL_MACRO(11)
 #    endif
-#    if BOOST_PP_LOCAL_C(12)
-        BOOST_PP_LOCAL_MACRO(12)
+#    if NDNBOOST_PP_LOCAL_C(12)
+        NDNBOOST_PP_LOCAL_MACRO(12)
 #    endif
-#    if BOOST_PP_LOCAL_C(13)
-        BOOST_PP_LOCAL_MACRO(13)
+#    if NDNBOOST_PP_LOCAL_C(13)
+        NDNBOOST_PP_LOCAL_MACRO(13)
 #    endif
-#    if BOOST_PP_LOCAL_C(14)
-        BOOST_PP_LOCAL_MACRO(14)
+#    if NDNBOOST_PP_LOCAL_C(14)
+        NDNBOOST_PP_LOCAL_MACRO(14)
 #    endif
-#    if BOOST_PP_LOCAL_C(15)
-        BOOST_PP_LOCAL_MACRO(15)
+#    if NDNBOOST_PP_LOCAL_C(15)
+        NDNBOOST_PP_LOCAL_MACRO(15)
 #    endif
-#    if BOOST_PP_LOCAL_C(16)
-        BOOST_PP_LOCAL_MACRO(16)
+#    if NDNBOOST_PP_LOCAL_C(16)
+        NDNBOOST_PP_LOCAL_MACRO(16)
 #    endif
-#    if BOOST_PP_LOCAL_C(17)
-        BOOST_PP_LOCAL_MACRO(17)
+#    if NDNBOOST_PP_LOCAL_C(17)
+        NDNBOOST_PP_LOCAL_MACRO(17)
 #    endif
-#    if BOOST_PP_LOCAL_C(18)
-        BOOST_PP_LOCAL_MACRO(18)
+#    if NDNBOOST_PP_LOCAL_C(18)
+        NDNBOOST_PP_LOCAL_MACRO(18)
 #    endif
-#    if BOOST_PP_LOCAL_C(19)
-        BOOST_PP_LOCAL_MACRO(19)
+#    if NDNBOOST_PP_LOCAL_C(19)
+        NDNBOOST_PP_LOCAL_MACRO(19)
 #    endif
-#    if BOOST_PP_LOCAL_C(20)
-        BOOST_PP_LOCAL_MACRO(20)
+#    if NDNBOOST_PP_LOCAL_C(20)
+        NDNBOOST_PP_LOCAL_MACRO(20)
 #    endif
-#    if BOOST_PP_LOCAL_C(21)
-        BOOST_PP_LOCAL_MACRO(21)
+#    if NDNBOOST_PP_LOCAL_C(21)
+        NDNBOOST_PP_LOCAL_MACRO(21)
 #    endif
-#    if BOOST_PP_LOCAL_C(22)
-        BOOST_PP_LOCAL_MACRO(22)
+#    if NDNBOOST_PP_LOCAL_C(22)
+        NDNBOOST_PP_LOCAL_MACRO(22)
 #    endif
-#    if BOOST_PP_LOCAL_C(23)
-        BOOST_PP_LOCAL_MACRO(23)
+#    if NDNBOOST_PP_LOCAL_C(23)
+        NDNBOOST_PP_LOCAL_MACRO(23)
 #    endif
-#    if BOOST_PP_LOCAL_C(24)
-        BOOST_PP_LOCAL_MACRO(24)
+#    if NDNBOOST_PP_LOCAL_C(24)
+        NDNBOOST_PP_LOCAL_MACRO(24)
 #    endif
-#    if BOOST_PP_LOCAL_C(25)
-        BOOST_PP_LOCAL_MACRO(25)
+#    if NDNBOOST_PP_LOCAL_C(25)
+        NDNBOOST_PP_LOCAL_MACRO(25)
 #    endif
-#    if BOOST_PP_LOCAL_C(26)
-        BOOST_PP_LOCAL_MACRO(26)
+#    if NDNBOOST_PP_LOCAL_C(26)
+        NDNBOOST_PP_LOCAL_MACRO(26)
 #    endif
-#    if BOOST_PP_LOCAL_C(27)
-        BOOST_PP_LOCAL_MACRO(27)
+#    if NDNBOOST_PP_LOCAL_C(27)
+        NDNBOOST_PP_LOCAL_MACRO(27)
 #    endif
-#    if BOOST_PP_LOCAL_C(28)
-        BOOST_PP_LOCAL_MACRO(28)
+#    if NDNBOOST_PP_LOCAL_C(28)
+        NDNBOOST_PP_LOCAL_MACRO(28)
 #    endif
-#    if BOOST_PP_LOCAL_C(29)
-        BOOST_PP_LOCAL_MACRO(29)
+#    if NDNBOOST_PP_LOCAL_C(29)
+        NDNBOOST_PP_LOCAL_MACRO(29)
 #    endif
-#    if BOOST_PP_LOCAL_C(30)
-        BOOST_PP_LOCAL_MACRO(30)
+#    if NDNBOOST_PP_LOCAL_C(30)
+        NDNBOOST_PP_LOCAL_MACRO(30)
 #    endif
-#    if BOOST_PP_LOCAL_C(31)
-        BOOST_PP_LOCAL_MACRO(31)
+#    if NDNBOOST_PP_LOCAL_C(31)
+        NDNBOOST_PP_LOCAL_MACRO(31)
 #    endif
-#    if BOOST_PP_LOCAL_C(32)
-        BOOST_PP_LOCAL_MACRO(32)
+#    if NDNBOOST_PP_LOCAL_C(32)
+        NDNBOOST_PP_LOCAL_MACRO(32)
 #    endif
-#    if BOOST_PP_LOCAL_C(33)
-        BOOST_PP_LOCAL_MACRO(33)
+#    if NDNBOOST_PP_LOCAL_C(33)
+        NDNBOOST_PP_LOCAL_MACRO(33)
 #    endif
-#    if BOOST_PP_LOCAL_C(34)
-        BOOST_PP_LOCAL_MACRO(34)
+#    if NDNBOOST_PP_LOCAL_C(34)
+        NDNBOOST_PP_LOCAL_MACRO(34)
 #    endif
-#    if BOOST_PP_LOCAL_C(35)
-        BOOST_PP_LOCAL_MACRO(35)
+#    if NDNBOOST_PP_LOCAL_C(35)
+        NDNBOOST_PP_LOCAL_MACRO(35)
 #    endif
-#    if BOOST_PP_LOCAL_C(36)
-        BOOST_PP_LOCAL_MACRO(36)
+#    if NDNBOOST_PP_LOCAL_C(36)
+        NDNBOOST_PP_LOCAL_MACRO(36)
 #    endif
-#    if BOOST_PP_LOCAL_C(37)
-        BOOST_PP_LOCAL_MACRO(37)
+#    if NDNBOOST_PP_LOCAL_C(37)
+        NDNBOOST_PP_LOCAL_MACRO(37)
 #    endif
-#    if BOOST_PP_LOCAL_C(38)
-        BOOST_PP_LOCAL_MACRO(38)
+#    if NDNBOOST_PP_LOCAL_C(38)
+        NDNBOOST_PP_LOCAL_MACRO(38)
 #    endif
-#    if BOOST_PP_LOCAL_C(39)
-        BOOST_PP_LOCAL_MACRO(39)
+#    if NDNBOOST_PP_LOCAL_C(39)
+        NDNBOOST_PP_LOCAL_MACRO(39)
 #    endif
-#    if BOOST_PP_LOCAL_C(40)
-        BOOST_PP_LOCAL_MACRO(40)
+#    if NDNBOOST_PP_LOCAL_C(40)
+        NDNBOOST_PP_LOCAL_MACRO(40)
 #    endif
-#    if BOOST_PP_LOCAL_C(41)
-        BOOST_PP_LOCAL_MACRO(41)
+#    if NDNBOOST_PP_LOCAL_C(41)
+        NDNBOOST_PP_LOCAL_MACRO(41)
 #    endif
-#    if BOOST_PP_LOCAL_C(42)
-        BOOST_PP_LOCAL_MACRO(42)
+#    if NDNBOOST_PP_LOCAL_C(42)
+        NDNBOOST_PP_LOCAL_MACRO(42)
 #    endif
-#    if BOOST_PP_LOCAL_C(43)
-        BOOST_PP_LOCAL_MACRO(43)
+#    if NDNBOOST_PP_LOCAL_C(43)
+        NDNBOOST_PP_LOCAL_MACRO(43)
 #    endif
-#    if BOOST_PP_LOCAL_C(44)
-        BOOST_PP_LOCAL_MACRO(44)
+#    if NDNBOOST_PP_LOCAL_C(44)
+        NDNBOOST_PP_LOCAL_MACRO(44)
 #    endif
-#    if BOOST_PP_LOCAL_C(45)
-        BOOST_PP_LOCAL_MACRO(45)
+#    if NDNBOOST_PP_LOCAL_C(45)
+        NDNBOOST_PP_LOCAL_MACRO(45)
 #    endif
-#    if BOOST_PP_LOCAL_C(46)
-        BOOST_PP_LOCAL_MACRO(46)
+#    if NDNBOOST_PP_LOCAL_C(46)
+        NDNBOOST_PP_LOCAL_MACRO(46)
 #    endif
-#    if BOOST_PP_LOCAL_C(47)
-        BOOST_PP_LOCAL_MACRO(47)
+#    if NDNBOOST_PP_LOCAL_C(47)
+        NDNBOOST_PP_LOCAL_MACRO(47)
 #    endif
-#    if BOOST_PP_LOCAL_C(48)
-        BOOST_PP_LOCAL_MACRO(48)
+#    if NDNBOOST_PP_LOCAL_C(48)
+        NDNBOOST_PP_LOCAL_MACRO(48)
 #    endif
-#    if BOOST_PP_LOCAL_C(49)
-        BOOST_PP_LOCAL_MACRO(49)
+#    if NDNBOOST_PP_LOCAL_C(49)
+        NDNBOOST_PP_LOCAL_MACRO(49)
 #    endif
-#    if BOOST_PP_LOCAL_C(50)
-        BOOST_PP_LOCAL_MACRO(50)
+#    if NDNBOOST_PP_LOCAL_C(50)
+        NDNBOOST_PP_LOCAL_MACRO(50)
 #    endif
-#    if BOOST_PP_LOCAL_C(51)
-        BOOST_PP_LOCAL_MACRO(51)
+#    if NDNBOOST_PP_LOCAL_C(51)
+        NDNBOOST_PP_LOCAL_MACRO(51)
 #    endif
-#    if BOOST_PP_LOCAL_C(52)
-        BOOST_PP_LOCAL_MACRO(52)
+#    if NDNBOOST_PP_LOCAL_C(52)
+        NDNBOOST_PP_LOCAL_MACRO(52)
 #    endif
-#    if BOOST_PP_LOCAL_C(53)
-        BOOST_PP_LOCAL_MACRO(53)
+#    if NDNBOOST_PP_LOCAL_C(53)
+        NDNBOOST_PP_LOCAL_MACRO(53)
 #    endif
-#    if BOOST_PP_LOCAL_C(54)
-        BOOST_PP_LOCAL_MACRO(54)
+#    if NDNBOOST_PP_LOCAL_C(54)
+        NDNBOOST_PP_LOCAL_MACRO(54)
 #    endif
-#    if BOOST_PP_LOCAL_C(55)
-        BOOST_PP_LOCAL_MACRO(55)
+#    if NDNBOOST_PP_LOCAL_C(55)
+        NDNBOOST_PP_LOCAL_MACRO(55)
 #    endif
-#    if BOOST_PP_LOCAL_C(56)
-        BOOST_PP_LOCAL_MACRO(56)
+#    if NDNBOOST_PP_LOCAL_C(56)
+        NDNBOOST_PP_LOCAL_MACRO(56)
 #    endif
-#    if BOOST_PP_LOCAL_C(57)
-        BOOST_PP_LOCAL_MACRO(57)
+#    if NDNBOOST_PP_LOCAL_C(57)
+        NDNBOOST_PP_LOCAL_MACRO(57)
 #    endif
-#    if BOOST_PP_LOCAL_C(58)
-        BOOST_PP_LOCAL_MACRO(58)
+#    if NDNBOOST_PP_LOCAL_C(58)
+        NDNBOOST_PP_LOCAL_MACRO(58)
 #    endif
-#    if BOOST_PP_LOCAL_C(59)
-        BOOST_PP_LOCAL_MACRO(59)
+#    if NDNBOOST_PP_LOCAL_C(59)
+        NDNBOOST_PP_LOCAL_MACRO(59)
 #    endif
-#    if BOOST_PP_LOCAL_C(60)
-        BOOST_PP_LOCAL_MACRO(60)
+#    if NDNBOOST_PP_LOCAL_C(60)
+        NDNBOOST_PP_LOCAL_MACRO(60)
 #    endif
-#    if BOOST_PP_LOCAL_C(61)
-        BOOST_PP_LOCAL_MACRO(61)
+#    if NDNBOOST_PP_LOCAL_C(61)
+        NDNBOOST_PP_LOCAL_MACRO(61)
 #    endif
-#    if BOOST_PP_LOCAL_C(62)
-        BOOST_PP_LOCAL_MACRO(62)
+#    if NDNBOOST_PP_LOCAL_C(62)
+        NDNBOOST_PP_LOCAL_MACRO(62)
 #    endif
-#    if BOOST_PP_LOCAL_C(63)
-        BOOST_PP_LOCAL_MACRO(63)
+#    if NDNBOOST_PP_LOCAL_C(63)
+        NDNBOOST_PP_LOCAL_MACRO(63)
 #    endif
-#    if BOOST_PP_LOCAL_C(64)
-        BOOST_PP_LOCAL_MACRO(64)
+#    if NDNBOOST_PP_LOCAL_C(64)
+        NDNBOOST_PP_LOCAL_MACRO(64)
 #    endif
-#    if BOOST_PP_LOCAL_C(65)
-        BOOST_PP_LOCAL_MACRO(65)
+#    if NDNBOOST_PP_LOCAL_C(65)
+        NDNBOOST_PP_LOCAL_MACRO(65)
 #    endif
-#    if BOOST_PP_LOCAL_C(66)
-        BOOST_PP_LOCAL_MACRO(66)
+#    if NDNBOOST_PP_LOCAL_C(66)
+        NDNBOOST_PP_LOCAL_MACRO(66)
 #    endif
-#    if BOOST_PP_LOCAL_C(67)
-        BOOST_PP_LOCAL_MACRO(67)
+#    if NDNBOOST_PP_LOCAL_C(67)
+        NDNBOOST_PP_LOCAL_MACRO(67)
 #    endif
-#    if BOOST_PP_LOCAL_C(68)
-        BOOST_PP_LOCAL_MACRO(68)
+#    if NDNBOOST_PP_LOCAL_C(68)
+        NDNBOOST_PP_LOCAL_MACRO(68)
 #    endif
-#    if BOOST_PP_LOCAL_C(69)
-        BOOST_PP_LOCAL_MACRO(69)
+#    if NDNBOOST_PP_LOCAL_C(69)
+        NDNBOOST_PP_LOCAL_MACRO(69)
 #    endif
-#    if BOOST_PP_LOCAL_C(70)
-        BOOST_PP_LOCAL_MACRO(70)
+#    if NDNBOOST_PP_LOCAL_C(70)
+        NDNBOOST_PP_LOCAL_MACRO(70)
 #    endif
-#    if BOOST_PP_LOCAL_C(71)
-        BOOST_PP_LOCAL_MACRO(71)
+#    if NDNBOOST_PP_LOCAL_C(71)
+        NDNBOOST_PP_LOCAL_MACRO(71)
 #    endif
-#    if BOOST_PP_LOCAL_C(72)
-        BOOST_PP_LOCAL_MACRO(72)
+#    if NDNBOOST_PP_LOCAL_C(72)
+        NDNBOOST_PP_LOCAL_MACRO(72)
 #    endif
-#    if BOOST_PP_LOCAL_C(73)
-        BOOST_PP_LOCAL_MACRO(73)
+#    if NDNBOOST_PP_LOCAL_C(73)
+        NDNBOOST_PP_LOCAL_MACRO(73)
 #    endif
-#    if BOOST_PP_LOCAL_C(74)
-        BOOST_PP_LOCAL_MACRO(74)
+#    if NDNBOOST_PP_LOCAL_C(74)
+        NDNBOOST_PP_LOCAL_MACRO(74)
 #    endif
-#    if BOOST_PP_LOCAL_C(75)
-        BOOST_PP_LOCAL_MACRO(75)
+#    if NDNBOOST_PP_LOCAL_C(75)
+        NDNBOOST_PP_LOCAL_MACRO(75)
 #    endif
-#    if BOOST_PP_LOCAL_C(76)
-        BOOST_PP_LOCAL_MACRO(76)
+#    if NDNBOOST_PP_LOCAL_C(76)
+        NDNBOOST_PP_LOCAL_MACRO(76)
 #    endif
-#    if BOOST_PP_LOCAL_C(77)
-        BOOST_PP_LOCAL_MACRO(77)
+#    if NDNBOOST_PP_LOCAL_C(77)
+        NDNBOOST_PP_LOCAL_MACRO(77)
 #    endif
-#    if BOOST_PP_LOCAL_C(78)
-        BOOST_PP_LOCAL_MACRO(78)
+#    if NDNBOOST_PP_LOCAL_C(78)
+        NDNBOOST_PP_LOCAL_MACRO(78)
 #    endif
-#    if BOOST_PP_LOCAL_C(79)
-        BOOST_PP_LOCAL_MACRO(79)
+#    if NDNBOOST_PP_LOCAL_C(79)
+        NDNBOOST_PP_LOCAL_MACRO(79)
 #    endif
-#    if BOOST_PP_LOCAL_C(80)
-        BOOST_PP_LOCAL_MACRO(80)
+#    if NDNBOOST_PP_LOCAL_C(80)
+        NDNBOOST_PP_LOCAL_MACRO(80)
 #    endif
-#    if BOOST_PP_LOCAL_C(81)
-        BOOST_PP_LOCAL_MACRO(81)
+#    if NDNBOOST_PP_LOCAL_C(81)
+        NDNBOOST_PP_LOCAL_MACRO(81)
 #    endif
-#    if BOOST_PP_LOCAL_C(82)
-        BOOST_PP_LOCAL_MACRO(82)
+#    if NDNBOOST_PP_LOCAL_C(82)
+        NDNBOOST_PP_LOCAL_MACRO(82)
 #    endif
-#    if BOOST_PP_LOCAL_C(83)
-        BOOST_PP_LOCAL_MACRO(83)
+#    if NDNBOOST_PP_LOCAL_C(83)
+        NDNBOOST_PP_LOCAL_MACRO(83)
 #    endif
-#    if BOOST_PP_LOCAL_C(84)
-        BOOST_PP_LOCAL_MACRO(84)
+#    if NDNBOOST_PP_LOCAL_C(84)
+        NDNBOOST_PP_LOCAL_MACRO(84)
 #    endif
-#    if BOOST_PP_LOCAL_C(85)
-        BOOST_PP_LOCAL_MACRO(85)
+#    if NDNBOOST_PP_LOCAL_C(85)
+        NDNBOOST_PP_LOCAL_MACRO(85)
 #    endif
-#    if BOOST_PP_LOCAL_C(86)
-        BOOST_PP_LOCAL_MACRO(86)
+#    if NDNBOOST_PP_LOCAL_C(86)
+        NDNBOOST_PP_LOCAL_MACRO(86)
 #    endif
-#    if BOOST_PP_LOCAL_C(87)
-        BOOST_PP_LOCAL_MACRO(87)
+#    if NDNBOOST_PP_LOCAL_C(87)
+        NDNBOOST_PP_LOCAL_MACRO(87)
 #    endif
-#    if BOOST_PP_LOCAL_C(88)
-        BOOST_PP_LOCAL_MACRO(88)
+#    if NDNBOOST_PP_LOCAL_C(88)
+        NDNBOOST_PP_LOCAL_MACRO(88)
 #    endif
-#    if BOOST_PP_LOCAL_C(89)
-        BOOST_PP_LOCAL_MACRO(89)
+#    if NDNBOOST_PP_LOCAL_C(89)
+        NDNBOOST_PP_LOCAL_MACRO(89)
 #    endif
-#    if BOOST_PP_LOCAL_C(90)
-        BOOST_PP_LOCAL_MACRO(90)
+#    if NDNBOOST_PP_LOCAL_C(90)
+        NDNBOOST_PP_LOCAL_MACRO(90)
 #    endif
-#    if BOOST_PP_LOCAL_C(91)
-        BOOST_PP_LOCAL_MACRO(91)
+#    if NDNBOOST_PP_LOCAL_C(91)
+        NDNBOOST_PP_LOCAL_MACRO(91)
 #    endif
-#    if BOOST_PP_LOCAL_C(92)
-        BOOST_PP_LOCAL_MACRO(92)
+#    if NDNBOOST_PP_LOCAL_C(92)
+        NDNBOOST_PP_LOCAL_MACRO(92)
 #    endif
-#    if BOOST_PP_LOCAL_C(93)
-        BOOST_PP_LOCAL_MACRO(93)
+#    if NDNBOOST_PP_LOCAL_C(93)
+        NDNBOOST_PP_LOCAL_MACRO(93)
 #    endif
-#    if BOOST_PP_LOCAL_C(94)
-        BOOST_PP_LOCAL_MACRO(94)
+#    if NDNBOOST_PP_LOCAL_C(94)
+        NDNBOOST_PP_LOCAL_MACRO(94)
 #    endif
-#    if BOOST_PP_LOCAL_C(95)
-        BOOST_PP_LOCAL_MACRO(95)
+#    if NDNBOOST_PP_LOCAL_C(95)
+        NDNBOOST_PP_LOCAL_MACRO(95)
 #    endif
-#    if BOOST_PP_LOCAL_C(96)
-        BOOST_PP_LOCAL_MACRO(96)
+#    if NDNBOOST_PP_LOCAL_C(96)
+        NDNBOOST_PP_LOCAL_MACRO(96)
 #    endif
-#    if BOOST_PP_LOCAL_C(97)
-        BOOST_PP_LOCAL_MACRO(97)
+#    if NDNBOOST_PP_LOCAL_C(97)
+        NDNBOOST_PP_LOCAL_MACRO(97)
 #    endif
-#    if BOOST_PP_LOCAL_C(98)
-        BOOST_PP_LOCAL_MACRO(98)
+#    if NDNBOOST_PP_LOCAL_C(98)
+        NDNBOOST_PP_LOCAL_MACRO(98)
 #    endif
-#    if BOOST_PP_LOCAL_C(99)
-        BOOST_PP_LOCAL_MACRO(99)
+#    if NDNBOOST_PP_LOCAL_C(99)
+        NDNBOOST_PP_LOCAL_MACRO(99)
 #    endif
-#    if BOOST_PP_LOCAL_C(100)
-        BOOST_PP_LOCAL_MACRO(100)
+#    if NDNBOOST_PP_LOCAL_C(100)
+        NDNBOOST_PP_LOCAL_MACRO(100)
 #    endif
-#    if BOOST_PP_LOCAL_C(101)
-        BOOST_PP_LOCAL_MACRO(101)
+#    if NDNBOOST_PP_LOCAL_C(101)
+        NDNBOOST_PP_LOCAL_MACRO(101)
 #    endif
-#    if BOOST_PP_LOCAL_C(102)
-        BOOST_PP_LOCAL_MACRO(102)
+#    if NDNBOOST_PP_LOCAL_C(102)
+        NDNBOOST_PP_LOCAL_MACRO(102)
 #    endif
-#    if BOOST_PP_LOCAL_C(103)
-        BOOST_PP_LOCAL_MACRO(103)
+#    if NDNBOOST_PP_LOCAL_C(103)
+        NDNBOOST_PP_LOCAL_MACRO(103)
 #    endif
-#    if BOOST_PP_LOCAL_C(104)
-        BOOST_PP_LOCAL_MACRO(104)
+#    if NDNBOOST_PP_LOCAL_C(104)
+        NDNBOOST_PP_LOCAL_MACRO(104)
 #    endif
-#    if BOOST_PP_LOCAL_C(105)
-        BOOST_PP_LOCAL_MACRO(105)
+#    if NDNBOOST_PP_LOCAL_C(105)
+        NDNBOOST_PP_LOCAL_MACRO(105)
 #    endif
-#    if BOOST_PP_LOCAL_C(106)
-        BOOST_PP_LOCAL_MACRO(106)
+#    if NDNBOOST_PP_LOCAL_C(106)
+        NDNBOOST_PP_LOCAL_MACRO(106)
 #    endif
-#    if BOOST_PP_LOCAL_C(107)
-        BOOST_PP_LOCAL_MACRO(107)
+#    if NDNBOOST_PP_LOCAL_C(107)
+        NDNBOOST_PP_LOCAL_MACRO(107)
 #    endif
-#    if BOOST_PP_LOCAL_C(108)
-        BOOST_PP_LOCAL_MACRO(108)
+#    if NDNBOOST_PP_LOCAL_C(108)
+        NDNBOOST_PP_LOCAL_MACRO(108)
 #    endif
-#    if BOOST_PP_LOCAL_C(109)
-        BOOST_PP_LOCAL_MACRO(109)
+#    if NDNBOOST_PP_LOCAL_C(109)
+        NDNBOOST_PP_LOCAL_MACRO(109)
 #    endif
-#    if BOOST_PP_LOCAL_C(110)
-        BOOST_PP_LOCAL_MACRO(110)
+#    if NDNBOOST_PP_LOCAL_C(110)
+        NDNBOOST_PP_LOCAL_MACRO(110)
 #    endif
-#    if BOOST_PP_LOCAL_C(111)
-        BOOST_PP_LOCAL_MACRO(111)
+#    if NDNBOOST_PP_LOCAL_C(111)
+        NDNBOOST_PP_LOCAL_MACRO(111)
 #    endif
-#    if BOOST_PP_LOCAL_C(112)
-        BOOST_PP_LOCAL_MACRO(112)
+#    if NDNBOOST_PP_LOCAL_C(112)
+        NDNBOOST_PP_LOCAL_MACRO(112)
 #    endif
-#    if BOOST_PP_LOCAL_C(113)
-        BOOST_PP_LOCAL_MACRO(113)
+#    if NDNBOOST_PP_LOCAL_C(113)
+        NDNBOOST_PP_LOCAL_MACRO(113)
 #    endif
-#    if BOOST_PP_LOCAL_C(114)
-        BOOST_PP_LOCAL_MACRO(114)
+#    if NDNBOOST_PP_LOCAL_C(114)
+        NDNBOOST_PP_LOCAL_MACRO(114)
 #    endif
-#    if BOOST_PP_LOCAL_C(115)
-        BOOST_PP_LOCAL_MACRO(115)
+#    if NDNBOOST_PP_LOCAL_C(115)
+        NDNBOOST_PP_LOCAL_MACRO(115)
 #    endif
-#    if BOOST_PP_LOCAL_C(116)
-        BOOST_PP_LOCAL_MACRO(116)
+#    if NDNBOOST_PP_LOCAL_C(116)
+        NDNBOOST_PP_LOCAL_MACRO(116)
 #    endif
-#    if BOOST_PP_LOCAL_C(117)
-        BOOST_PP_LOCAL_MACRO(117)
+#    if NDNBOOST_PP_LOCAL_C(117)
+        NDNBOOST_PP_LOCAL_MACRO(117)
 #    endif
-#    if BOOST_PP_LOCAL_C(118)
-        BOOST_PP_LOCAL_MACRO(118)
+#    if NDNBOOST_PP_LOCAL_C(118)
+        NDNBOOST_PP_LOCAL_MACRO(118)
 #    endif
-#    if BOOST_PP_LOCAL_C(119)
-        BOOST_PP_LOCAL_MACRO(119)
+#    if NDNBOOST_PP_LOCAL_C(119)
+        NDNBOOST_PP_LOCAL_MACRO(119)
 #    endif
-#    if BOOST_PP_LOCAL_C(120)
-        BOOST_PP_LOCAL_MACRO(120)
+#    if NDNBOOST_PP_LOCAL_C(120)
+        NDNBOOST_PP_LOCAL_MACRO(120)
 #    endif
-#    if BOOST_PP_LOCAL_C(121)
-        BOOST_PP_LOCAL_MACRO(121)
+#    if NDNBOOST_PP_LOCAL_C(121)
+        NDNBOOST_PP_LOCAL_MACRO(121)
 #    endif
-#    if BOOST_PP_LOCAL_C(122)
-        BOOST_PP_LOCAL_MACRO(122)
+#    if NDNBOOST_PP_LOCAL_C(122)
+        NDNBOOST_PP_LOCAL_MACRO(122)
 #    endif
-#    if BOOST_PP_LOCAL_C(123)
-        BOOST_PP_LOCAL_MACRO(123)
+#    if NDNBOOST_PP_LOCAL_C(123)
+        NDNBOOST_PP_LOCAL_MACRO(123)
 #    endif
-#    if BOOST_PP_LOCAL_C(124)
-        BOOST_PP_LOCAL_MACRO(124)
+#    if NDNBOOST_PP_LOCAL_C(124)
+        NDNBOOST_PP_LOCAL_MACRO(124)
 #    endif
-#    if BOOST_PP_LOCAL_C(125)
-        BOOST_PP_LOCAL_MACRO(125)
+#    if NDNBOOST_PP_LOCAL_C(125)
+        NDNBOOST_PP_LOCAL_MACRO(125)
 #    endif
-#    if BOOST_PP_LOCAL_C(126)
-        BOOST_PP_LOCAL_MACRO(126)
+#    if NDNBOOST_PP_LOCAL_C(126)
+        NDNBOOST_PP_LOCAL_MACRO(126)
 #    endif
-#    if BOOST_PP_LOCAL_C(127)
-        BOOST_PP_LOCAL_MACRO(127)
+#    if NDNBOOST_PP_LOCAL_C(127)
+        NDNBOOST_PP_LOCAL_MACRO(127)
 #    endif
-#    if BOOST_PP_LOCAL_C(128)
-        BOOST_PP_LOCAL_MACRO(128)
+#    if NDNBOOST_PP_LOCAL_C(128)
+        NDNBOOST_PP_LOCAL_MACRO(128)
 #    endif
-#    if BOOST_PP_LOCAL_C(129)
-        BOOST_PP_LOCAL_MACRO(129)
+#    if NDNBOOST_PP_LOCAL_C(129)
+        NDNBOOST_PP_LOCAL_MACRO(129)
 #    endif
-#    if BOOST_PP_LOCAL_C(130)
-        BOOST_PP_LOCAL_MACRO(130)
+#    if NDNBOOST_PP_LOCAL_C(130)
+        NDNBOOST_PP_LOCAL_MACRO(130)
 #    endif
-#    if BOOST_PP_LOCAL_C(131)
-        BOOST_PP_LOCAL_MACRO(131)
+#    if NDNBOOST_PP_LOCAL_C(131)
+        NDNBOOST_PP_LOCAL_MACRO(131)
 #    endif
-#    if BOOST_PP_LOCAL_C(132)
-        BOOST_PP_LOCAL_MACRO(132)
+#    if NDNBOOST_PP_LOCAL_C(132)
+        NDNBOOST_PP_LOCAL_MACRO(132)
 #    endif
-#    if BOOST_PP_LOCAL_C(133)
-        BOOST_PP_LOCAL_MACRO(133)
+#    if NDNBOOST_PP_LOCAL_C(133)
+        NDNBOOST_PP_LOCAL_MACRO(133)
 #    endif
-#    if BOOST_PP_LOCAL_C(134)
-        BOOST_PP_LOCAL_MACRO(134)
+#    if NDNBOOST_PP_LOCAL_C(134)
+        NDNBOOST_PP_LOCAL_MACRO(134)
 #    endif
-#    if BOOST_PP_LOCAL_C(135)
-        BOOST_PP_LOCAL_MACRO(135)
+#    if NDNBOOST_PP_LOCAL_C(135)
+        NDNBOOST_PP_LOCAL_MACRO(135)
 #    endif
-#    if BOOST_PP_LOCAL_C(136)
-        BOOST_PP_LOCAL_MACRO(136)
+#    if NDNBOOST_PP_LOCAL_C(136)
+        NDNBOOST_PP_LOCAL_MACRO(136)
 #    endif
-#    if BOOST_PP_LOCAL_C(137)
-        BOOST_PP_LOCAL_MACRO(137)
+#    if NDNBOOST_PP_LOCAL_C(137)
+        NDNBOOST_PP_LOCAL_MACRO(137)
 #    endif
-#    if BOOST_PP_LOCAL_C(138)
-        BOOST_PP_LOCAL_MACRO(138)
+#    if NDNBOOST_PP_LOCAL_C(138)
+        NDNBOOST_PP_LOCAL_MACRO(138)
 #    endif
-#    if BOOST_PP_LOCAL_C(139)
-        BOOST_PP_LOCAL_MACRO(139)
+#    if NDNBOOST_PP_LOCAL_C(139)
+        NDNBOOST_PP_LOCAL_MACRO(139)
 #    endif
-#    if BOOST_PP_LOCAL_C(140)
-        BOOST_PP_LOCAL_MACRO(140)
+#    if NDNBOOST_PP_LOCAL_C(140)
+        NDNBOOST_PP_LOCAL_MACRO(140)
 #    endif
-#    if BOOST_PP_LOCAL_C(141)
-        BOOST_PP_LOCAL_MACRO(141)
+#    if NDNBOOST_PP_LOCAL_C(141)
+        NDNBOOST_PP_LOCAL_MACRO(141)
 #    endif
-#    if BOOST_PP_LOCAL_C(142)
-        BOOST_PP_LOCAL_MACRO(142)
+#    if NDNBOOST_PP_LOCAL_C(142)
+        NDNBOOST_PP_LOCAL_MACRO(142)
 #    endif
-#    if BOOST_PP_LOCAL_C(143)
-        BOOST_PP_LOCAL_MACRO(143)
+#    if NDNBOOST_PP_LOCAL_C(143)
+        NDNBOOST_PP_LOCAL_MACRO(143)
 #    endif
-#    if BOOST_PP_LOCAL_C(144)
-        BOOST_PP_LOCAL_MACRO(144)
+#    if NDNBOOST_PP_LOCAL_C(144)
+        NDNBOOST_PP_LOCAL_MACRO(144)
 #    endif
-#    if BOOST_PP_LOCAL_C(145)
-        BOOST_PP_LOCAL_MACRO(145)
+#    if NDNBOOST_PP_LOCAL_C(145)
+        NDNBOOST_PP_LOCAL_MACRO(145)
 #    endif
-#    if BOOST_PP_LOCAL_C(146)
-        BOOST_PP_LOCAL_MACRO(146)
+#    if NDNBOOST_PP_LOCAL_C(146)
+        NDNBOOST_PP_LOCAL_MACRO(146)
 #    endif
-#    if BOOST_PP_LOCAL_C(147)
-        BOOST_PP_LOCAL_MACRO(147)
+#    if NDNBOOST_PP_LOCAL_C(147)
+        NDNBOOST_PP_LOCAL_MACRO(147)
 #    endif
-#    if BOOST_PP_LOCAL_C(148)
-        BOOST_PP_LOCAL_MACRO(148)
+#    if NDNBOOST_PP_LOCAL_C(148)
+        NDNBOOST_PP_LOCAL_MACRO(148)
 #    endif
-#    if BOOST_PP_LOCAL_C(149)
-        BOOST_PP_LOCAL_MACRO(149)
+#    if NDNBOOST_PP_LOCAL_C(149)
+        NDNBOOST_PP_LOCAL_MACRO(149)
 #    endif
-#    if BOOST_PP_LOCAL_C(150)
-        BOOST_PP_LOCAL_MACRO(150)
+#    if NDNBOOST_PP_LOCAL_C(150)
+        NDNBOOST_PP_LOCAL_MACRO(150)
 #    endif
-#    if BOOST_PP_LOCAL_C(151)
-        BOOST_PP_LOCAL_MACRO(151)
+#    if NDNBOOST_PP_LOCAL_C(151)
+        NDNBOOST_PP_LOCAL_MACRO(151)
 #    endif
-#    if BOOST_PP_LOCAL_C(152)
-        BOOST_PP_LOCAL_MACRO(152)
+#    if NDNBOOST_PP_LOCAL_C(152)
+        NDNBOOST_PP_LOCAL_MACRO(152)
 #    endif
-#    if BOOST_PP_LOCAL_C(153)
-        BOOST_PP_LOCAL_MACRO(153)
+#    if NDNBOOST_PP_LOCAL_C(153)
+        NDNBOOST_PP_LOCAL_MACRO(153)
 #    endif
-#    if BOOST_PP_LOCAL_C(154)
-        BOOST_PP_LOCAL_MACRO(154)
+#    if NDNBOOST_PP_LOCAL_C(154)
+        NDNBOOST_PP_LOCAL_MACRO(154)
 #    endif
-#    if BOOST_PP_LOCAL_C(155)
-        BOOST_PP_LOCAL_MACRO(155)
+#    if NDNBOOST_PP_LOCAL_C(155)
+        NDNBOOST_PP_LOCAL_MACRO(155)
 #    endif
-#    if BOOST_PP_LOCAL_C(156)
-        BOOST_PP_LOCAL_MACRO(156)
+#    if NDNBOOST_PP_LOCAL_C(156)
+        NDNBOOST_PP_LOCAL_MACRO(156)
 #    endif
-#    if BOOST_PP_LOCAL_C(157)
-        BOOST_PP_LOCAL_MACRO(157)
+#    if NDNBOOST_PP_LOCAL_C(157)
+        NDNBOOST_PP_LOCAL_MACRO(157)
 #    endif
-#    if BOOST_PP_LOCAL_C(158)
-        BOOST_PP_LOCAL_MACRO(158)
+#    if NDNBOOST_PP_LOCAL_C(158)
+        NDNBOOST_PP_LOCAL_MACRO(158)
 #    endif
-#    if BOOST_PP_LOCAL_C(159)
-        BOOST_PP_LOCAL_MACRO(159)
+#    if NDNBOOST_PP_LOCAL_C(159)
+        NDNBOOST_PP_LOCAL_MACRO(159)
 #    endif
-#    if BOOST_PP_LOCAL_C(160)
-        BOOST_PP_LOCAL_MACRO(160)
+#    if NDNBOOST_PP_LOCAL_C(160)
+        NDNBOOST_PP_LOCAL_MACRO(160)
 #    endif
-#    if BOOST_PP_LOCAL_C(161)
-        BOOST_PP_LOCAL_MACRO(161)
+#    if NDNBOOST_PP_LOCAL_C(161)
+        NDNBOOST_PP_LOCAL_MACRO(161)
 #    endif
-#    if BOOST_PP_LOCAL_C(162)
-        BOOST_PP_LOCAL_MACRO(162)
+#    if NDNBOOST_PP_LOCAL_C(162)
+        NDNBOOST_PP_LOCAL_MACRO(162)
 #    endif
-#    if BOOST_PP_LOCAL_C(163)
-        BOOST_PP_LOCAL_MACRO(163)
+#    if NDNBOOST_PP_LOCAL_C(163)
+        NDNBOOST_PP_LOCAL_MACRO(163)
 #    endif
-#    if BOOST_PP_LOCAL_C(164)
-        BOOST_PP_LOCAL_MACRO(164)
+#    if NDNBOOST_PP_LOCAL_C(164)
+        NDNBOOST_PP_LOCAL_MACRO(164)
 #    endif
-#    if BOOST_PP_LOCAL_C(165)
-        BOOST_PP_LOCAL_MACRO(165)
+#    if NDNBOOST_PP_LOCAL_C(165)
+        NDNBOOST_PP_LOCAL_MACRO(165)
 #    endif
-#    if BOOST_PP_LOCAL_C(166)
-        BOOST_PP_LOCAL_MACRO(166)
+#    if NDNBOOST_PP_LOCAL_C(166)
+        NDNBOOST_PP_LOCAL_MACRO(166)
 #    endif
-#    if BOOST_PP_LOCAL_C(167)
-        BOOST_PP_LOCAL_MACRO(167)
+#    if NDNBOOST_PP_LOCAL_C(167)
+        NDNBOOST_PP_LOCAL_MACRO(167)
 #    endif
-#    if BOOST_PP_LOCAL_C(168)
-        BOOST_PP_LOCAL_MACRO(168)
+#    if NDNBOOST_PP_LOCAL_C(168)
+        NDNBOOST_PP_LOCAL_MACRO(168)
 #    endif
-#    if BOOST_PP_LOCAL_C(169)
-        BOOST_PP_LOCAL_MACRO(169)
+#    if NDNBOOST_PP_LOCAL_C(169)
+        NDNBOOST_PP_LOCAL_MACRO(169)
 #    endif
-#    if BOOST_PP_LOCAL_C(170)
-        BOOST_PP_LOCAL_MACRO(170)
+#    if NDNBOOST_PP_LOCAL_C(170)
+        NDNBOOST_PP_LOCAL_MACRO(170)
 #    endif
-#    if BOOST_PP_LOCAL_C(171)
-        BOOST_PP_LOCAL_MACRO(171)
+#    if NDNBOOST_PP_LOCAL_C(171)
+        NDNBOOST_PP_LOCAL_MACRO(171)
 #    endif
-#    if BOOST_PP_LOCAL_C(172)
-        BOOST_PP_LOCAL_MACRO(172)
+#    if NDNBOOST_PP_LOCAL_C(172)
+        NDNBOOST_PP_LOCAL_MACRO(172)
 #    endif
-#    if BOOST_PP_LOCAL_C(173)
-        BOOST_PP_LOCAL_MACRO(173)
+#    if NDNBOOST_PP_LOCAL_C(173)
+        NDNBOOST_PP_LOCAL_MACRO(173)
 #    endif
-#    if BOOST_PP_LOCAL_C(174)
-        BOOST_PP_LOCAL_MACRO(174)
+#    if NDNBOOST_PP_LOCAL_C(174)
+        NDNBOOST_PP_LOCAL_MACRO(174)
 #    endif
-#    if BOOST_PP_LOCAL_C(175)
-        BOOST_PP_LOCAL_MACRO(175)
+#    if NDNBOOST_PP_LOCAL_C(175)
+        NDNBOOST_PP_LOCAL_MACRO(175)
 #    endif
-#    if BOOST_PP_LOCAL_C(176)
-        BOOST_PP_LOCAL_MACRO(176)
+#    if NDNBOOST_PP_LOCAL_C(176)
+        NDNBOOST_PP_LOCAL_MACRO(176)
 #    endif
-#    if BOOST_PP_LOCAL_C(177)
-        BOOST_PP_LOCAL_MACRO(177)
+#    if NDNBOOST_PP_LOCAL_C(177)
+        NDNBOOST_PP_LOCAL_MACRO(177)
 #    endif
-#    if BOOST_PP_LOCAL_C(178)
-        BOOST_PP_LOCAL_MACRO(178)
+#    if NDNBOOST_PP_LOCAL_C(178)
+        NDNBOOST_PP_LOCAL_MACRO(178)
 #    endif
-#    if BOOST_PP_LOCAL_C(179)
-        BOOST_PP_LOCAL_MACRO(179)
+#    if NDNBOOST_PP_LOCAL_C(179)
+        NDNBOOST_PP_LOCAL_MACRO(179)
 #    endif
-#    if BOOST_PP_LOCAL_C(180)
-        BOOST_PP_LOCAL_MACRO(180)
+#    if NDNBOOST_PP_LOCAL_C(180)
+        NDNBOOST_PP_LOCAL_MACRO(180)
 #    endif
-#    if BOOST_PP_LOCAL_C(181)
-        BOOST_PP_LOCAL_MACRO(181)
+#    if NDNBOOST_PP_LOCAL_C(181)
+        NDNBOOST_PP_LOCAL_MACRO(181)
 #    endif
-#    if BOOST_PP_LOCAL_C(182)
-        BOOST_PP_LOCAL_MACRO(182)
+#    if NDNBOOST_PP_LOCAL_C(182)
+        NDNBOOST_PP_LOCAL_MACRO(182)
 #    endif
-#    if BOOST_PP_LOCAL_C(183)
-        BOOST_PP_LOCAL_MACRO(183)
+#    if NDNBOOST_PP_LOCAL_C(183)
+        NDNBOOST_PP_LOCAL_MACRO(183)
 #    endif
-#    if BOOST_PP_LOCAL_C(184)
-        BOOST_PP_LOCAL_MACRO(184)
+#    if NDNBOOST_PP_LOCAL_C(184)
+        NDNBOOST_PP_LOCAL_MACRO(184)
 #    endif
-#    if BOOST_PP_LOCAL_C(185)
-        BOOST_PP_LOCAL_MACRO(185)
+#    if NDNBOOST_PP_LOCAL_C(185)
+        NDNBOOST_PP_LOCAL_MACRO(185)
 #    endif
-#    if BOOST_PP_LOCAL_C(186)
-        BOOST_PP_LOCAL_MACRO(186)
+#    if NDNBOOST_PP_LOCAL_C(186)
+        NDNBOOST_PP_LOCAL_MACRO(186)
 #    endif
-#    if BOOST_PP_LOCAL_C(187)
-        BOOST_PP_LOCAL_MACRO(187)
+#    if NDNBOOST_PP_LOCAL_C(187)
+        NDNBOOST_PP_LOCAL_MACRO(187)
 #    endif
-#    if BOOST_PP_LOCAL_C(188)
-        BOOST_PP_LOCAL_MACRO(188)
+#    if NDNBOOST_PP_LOCAL_C(188)
+        NDNBOOST_PP_LOCAL_MACRO(188)
 #    endif
-#    if BOOST_PP_LOCAL_C(189)
-        BOOST_PP_LOCAL_MACRO(189)
+#    if NDNBOOST_PP_LOCAL_C(189)
+        NDNBOOST_PP_LOCAL_MACRO(189)
 #    endif
-#    if BOOST_PP_LOCAL_C(190)
-        BOOST_PP_LOCAL_MACRO(190)
+#    if NDNBOOST_PP_LOCAL_C(190)
+        NDNBOOST_PP_LOCAL_MACRO(190)
 #    endif
-#    if BOOST_PP_LOCAL_C(191)
-        BOOST_PP_LOCAL_MACRO(191)
+#    if NDNBOOST_PP_LOCAL_C(191)
+        NDNBOOST_PP_LOCAL_MACRO(191)
 #    endif
-#    if BOOST_PP_LOCAL_C(192)
-        BOOST_PP_LOCAL_MACRO(192)
+#    if NDNBOOST_PP_LOCAL_C(192)
+        NDNBOOST_PP_LOCAL_MACRO(192)
 #    endif
-#    if BOOST_PP_LOCAL_C(193)
-        BOOST_PP_LOCAL_MACRO(193)
+#    if NDNBOOST_PP_LOCAL_C(193)
+        NDNBOOST_PP_LOCAL_MACRO(193)
 #    endif
-#    if BOOST_PP_LOCAL_C(194)
-        BOOST_PP_LOCAL_MACRO(194)
+#    if NDNBOOST_PP_LOCAL_C(194)
+        NDNBOOST_PP_LOCAL_MACRO(194)
 #    endif
-#    if BOOST_PP_LOCAL_C(195)
-        BOOST_PP_LOCAL_MACRO(195)
+#    if NDNBOOST_PP_LOCAL_C(195)
+        NDNBOOST_PP_LOCAL_MACRO(195)
 #    endif
-#    if BOOST_PP_LOCAL_C(196)
-        BOOST_PP_LOCAL_MACRO(196)
+#    if NDNBOOST_PP_LOCAL_C(196)
+        NDNBOOST_PP_LOCAL_MACRO(196)
 #    endif
-#    if BOOST_PP_LOCAL_C(197)
-        BOOST_PP_LOCAL_MACRO(197)
+#    if NDNBOOST_PP_LOCAL_C(197)
+        NDNBOOST_PP_LOCAL_MACRO(197)
 #    endif
-#    if BOOST_PP_LOCAL_C(198)
-        BOOST_PP_LOCAL_MACRO(198)
+#    if NDNBOOST_PP_LOCAL_C(198)
+        NDNBOOST_PP_LOCAL_MACRO(198)
 #    endif
-#    if BOOST_PP_LOCAL_C(199)
-        BOOST_PP_LOCAL_MACRO(199)
+#    if NDNBOOST_PP_LOCAL_C(199)
+        NDNBOOST_PP_LOCAL_MACRO(199)
 #    endif
-#    if BOOST_PP_LOCAL_C(200)
-        BOOST_PP_LOCAL_MACRO(200)
+#    if NDNBOOST_PP_LOCAL_C(200)
+        NDNBOOST_PP_LOCAL_MACRO(200)
 #    endif
-#    if BOOST_PP_LOCAL_C(201)
-        BOOST_PP_LOCAL_MACRO(201)
+#    if NDNBOOST_PP_LOCAL_C(201)
+        NDNBOOST_PP_LOCAL_MACRO(201)
 #    endif
-#    if BOOST_PP_LOCAL_C(202)
-        BOOST_PP_LOCAL_MACRO(202)
+#    if NDNBOOST_PP_LOCAL_C(202)
+        NDNBOOST_PP_LOCAL_MACRO(202)
 #    endif
-#    if BOOST_PP_LOCAL_C(203)
-        BOOST_PP_LOCAL_MACRO(203)
+#    if NDNBOOST_PP_LOCAL_C(203)
+        NDNBOOST_PP_LOCAL_MACRO(203)
 #    endif
-#    if BOOST_PP_LOCAL_C(204)
-        BOOST_PP_LOCAL_MACRO(204)
+#    if NDNBOOST_PP_LOCAL_C(204)
+        NDNBOOST_PP_LOCAL_MACRO(204)
 #    endif
-#    if BOOST_PP_LOCAL_C(205)
-        BOOST_PP_LOCAL_MACRO(205)
+#    if NDNBOOST_PP_LOCAL_C(205)
+        NDNBOOST_PP_LOCAL_MACRO(205)
 #    endif
-#    if BOOST_PP_LOCAL_C(206)
-        BOOST_PP_LOCAL_MACRO(206)
+#    if NDNBOOST_PP_LOCAL_C(206)
+        NDNBOOST_PP_LOCAL_MACRO(206)
 #    endif
-#    if BOOST_PP_LOCAL_C(207)
-        BOOST_PP_LOCAL_MACRO(207)
+#    if NDNBOOST_PP_LOCAL_C(207)
+        NDNBOOST_PP_LOCAL_MACRO(207)
 #    endif
-#    if BOOST_PP_LOCAL_C(208)
-        BOOST_PP_LOCAL_MACRO(208)
+#    if NDNBOOST_PP_LOCAL_C(208)
+        NDNBOOST_PP_LOCAL_MACRO(208)
 #    endif
-#    if BOOST_PP_LOCAL_C(209)
-        BOOST_PP_LOCAL_MACRO(209)
+#    if NDNBOOST_PP_LOCAL_C(209)
+        NDNBOOST_PP_LOCAL_MACRO(209)
 #    endif
-#    if BOOST_PP_LOCAL_C(210)
-        BOOST_PP_LOCAL_MACRO(210)
+#    if NDNBOOST_PP_LOCAL_C(210)
+        NDNBOOST_PP_LOCAL_MACRO(210)
 #    endif
-#    if BOOST_PP_LOCAL_C(211)
-        BOOST_PP_LOCAL_MACRO(211)
+#    if NDNBOOST_PP_LOCAL_C(211)
+        NDNBOOST_PP_LOCAL_MACRO(211)
 #    endif
-#    if BOOST_PP_LOCAL_C(212)
-        BOOST_PP_LOCAL_MACRO(212)
+#    if NDNBOOST_PP_LOCAL_C(212)
+        NDNBOOST_PP_LOCAL_MACRO(212)
 #    endif
-#    if BOOST_PP_LOCAL_C(213)
-        BOOST_PP_LOCAL_MACRO(213)
+#    if NDNBOOST_PP_LOCAL_C(213)
+        NDNBOOST_PP_LOCAL_MACRO(213)
 #    endif
-#    if BOOST_PP_LOCAL_C(214)
-        BOOST_PP_LOCAL_MACRO(214)
+#    if NDNBOOST_PP_LOCAL_C(214)
+        NDNBOOST_PP_LOCAL_MACRO(214)
 #    endif
-#    if BOOST_PP_LOCAL_C(215)
-        BOOST_PP_LOCAL_MACRO(215)
+#    if NDNBOOST_PP_LOCAL_C(215)
+        NDNBOOST_PP_LOCAL_MACRO(215)
 #    endif
-#    if BOOST_PP_LOCAL_C(216)
-        BOOST_PP_LOCAL_MACRO(216)
+#    if NDNBOOST_PP_LOCAL_C(216)
+        NDNBOOST_PP_LOCAL_MACRO(216)
 #    endif
-#    if BOOST_PP_LOCAL_C(217)
-        BOOST_PP_LOCAL_MACRO(217)
+#    if NDNBOOST_PP_LOCAL_C(217)
+        NDNBOOST_PP_LOCAL_MACRO(217)
 #    endif
-#    if BOOST_PP_LOCAL_C(218)
-        BOOST_PP_LOCAL_MACRO(218)
+#    if NDNBOOST_PP_LOCAL_C(218)
+        NDNBOOST_PP_LOCAL_MACRO(218)
 #    endif
-#    if BOOST_PP_LOCAL_C(219)
-        BOOST_PP_LOCAL_MACRO(219)
+#    if NDNBOOST_PP_LOCAL_C(219)
+        NDNBOOST_PP_LOCAL_MACRO(219)
 #    endif
-#    if BOOST_PP_LOCAL_C(220)
-        BOOST_PP_LOCAL_MACRO(220)
+#    if NDNBOOST_PP_LOCAL_C(220)
+        NDNBOOST_PP_LOCAL_MACRO(220)
 #    endif
-#    if BOOST_PP_LOCAL_C(221)
-        BOOST_PP_LOCAL_MACRO(221)
+#    if NDNBOOST_PP_LOCAL_C(221)
+        NDNBOOST_PP_LOCAL_MACRO(221)
 #    endif
-#    if BOOST_PP_LOCAL_C(222)
-        BOOST_PP_LOCAL_MACRO(222)
+#    if NDNBOOST_PP_LOCAL_C(222)
+        NDNBOOST_PP_LOCAL_MACRO(222)
 #    endif
-#    if BOOST_PP_LOCAL_C(223)
-        BOOST_PP_LOCAL_MACRO(223)
+#    if NDNBOOST_PP_LOCAL_C(223)
+        NDNBOOST_PP_LOCAL_MACRO(223)
 #    endif
-#    if BOOST_PP_LOCAL_C(224)
-        BOOST_PP_LOCAL_MACRO(224)
+#    if NDNBOOST_PP_LOCAL_C(224)
+        NDNBOOST_PP_LOCAL_MACRO(224)
 #    endif
-#    if BOOST_PP_LOCAL_C(225)
-        BOOST_PP_LOCAL_MACRO(225)
+#    if NDNBOOST_PP_LOCAL_C(225)
+        NDNBOOST_PP_LOCAL_MACRO(225)
 #    endif
-#    if BOOST_PP_LOCAL_C(226)
-        BOOST_PP_LOCAL_MACRO(226)
+#    if NDNBOOST_PP_LOCAL_C(226)
+        NDNBOOST_PP_LOCAL_MACRO(226)
 #    endif
-#    if BOOST_PP_LOCAL_C(227)
-        BOOST_PP_LOCAL_MACRO(227)
+#    if NDNBOOST_PP_LOCAL_C(227)
+        NDNBOOST_PP_LOCAL_MACRO(227)
 #    endif
-#    if BOOST_PP_LOCAL_C(228)
-        BOOST_PP_LOCAL_MACRO(228)
+#    if NDNBOOST_PP_LOCAL_C(228)
+        NDNBOOST_PP_LOCAL_MACRO(228)
 #    endif
-#    if BOOST_PP_LOCAL_C(229)
-        BOOST_PP_LOCAL_MACRO(229)
+#    if NDNBOOST_PP_LOCAL_C(229)
+        NDNBOOST_PP_LOCAL_MACRO(229)
 #    endif
-#    if BOOST_PP_LOCAL_C(230)
-        BOOST_PP_LOCAL_MACRO(230)
+#    if NDNBOOST_PP_LOCAL_C(230)
+        NDNBOOST_PP_LOCAL_MACRO(230)
 #    endif
-#    if BOOST_PP_LOCAL_C(231)
-        BOOST_PP_LOCAL_MACRO(231)
+#    if NDNBOOST_PP_LOCAL_C(231)
+        NDNBOOST_PP_LOCAL_MACRO(231)
 #    endif
-#    if BOOST_PP_LOCAL_C(232)
-        BOOST_PP_LOCAL_MACRO(232)
+#    if NDNBOOST_PP_LOCAL_C(232)
+        NDNBOOST_PP_LOCAL_MACRO(232)
 #    endif
-#    if BOOST_PP_LOCAL_C(233)
-        BOOST_PP_LOCAL_MACRO(233)
+#    if NDNBOOST_PP_LOCAL_C(233)
+        NDNBOOST_PP_LOCAL_MACRO(233)
 #    endif
-#    if BOOST_PP_LOCAL_C(234)
-        BOOST_PP_LOCAL_MACRO(234)
+#    if NDNBOOST_PP_LOCAL_C(234)
+        NDNBOOST_PP_LOCAL_MACRO(234)
 #    endif
-#    if BOOST_PP_LOCAL_C(235)
-        BOOST_PP_LOCAL_MACRO(235)
+#    if NDNBOOST_PP_LOCAL_C(235)
+        NDNBOOST_PP_LOCAL_MACRO(235)
 #    endif
-#    if BOOST_PP_LOCAL_C(236)
-        BOOST_PP_LOCAL_MACRO(236)
+#    if NDNBOOST_PP_LOCAL_C(236)
+        NDNBOOST_PP_LOCAL_MACRO(236)
 #    endif
 
-#    if BOOST_PP_LOCAL_C(237)
-        BOOST_PP_LOCAL_MACRO(237)
+#    if NDNBOOST_PP_LOCAL_C(237)
+        NDNBOOST_PP_LOCAL_MACRO(237)
 #    endif
-#    if BOOST_PP_LOCAL_C(238)
-        BOOST_PP_LOCAL_MACRO(238)
+#    if NDNBOOST_PP_LOCAL_C(238)
+        NDNBOOST_PP_LOCAL_MACRO(238)
 #    endif
-#    if BOOST_PP_LOCAL_C(239)
-        BOOST_PP_LOCAL_MACRO(239)
+#    if NDNBOOST_PP_LOCAL_C(239)
+        NDNBOOST_PP_LOCAL_MACRO(239)
 #    endif
-#    if BOOST_PP_LOCAL_C(240)
-        BOOST_PP_LOCAL_MACRO(240)
+#    if NDNBOOST_PP_LOCAL_C(240)
+        NDNBOOST_PP_LOCAL_MACRO(240)
 #    endif
-#    if BOOST_PP_LOCAL_C(241)
-        BOOST_PP_LOCAL_MACRO(241)
+#    if NDNBOOST_PP_LOCAL_C(241)
+        NDNBOOST_PP_LOCAL_MACRO(241)
 #    endif
-#    if BOOST_PP_LOCAL_C(242)
-        BOOST_PP_LOCAL_MACRO(242)
+#    if NDNBOOST_PP_LOCAL_C(242)
+        NDNBOOST_PP_LOCAL_MACRO(242)
 #    endif
-#    if BOOST_PP_LOCAL_C(243)
-        BOOST_PP_LOCAL_MACRO(243)
+#    if NDNBOOST_PP_LOCAL_C(243)
+        NDNBOOST_PP_LOCAL_MACRO(243)
 #    endif
-#    if BOOST_PP_LOCAL_C(244)
-        BOOST_PP_LOCAL_MACRO(244)
+#    if NDNBOOST_PP_LOCAL_C(244)
+        NDNBOOST_PP_LOCAL_MACRO(244)
 #    endif
-#    if BOOST_PP_LOCAL_C(245)
-        BOOST_PP_LOCAL_MACRO(245)
+#    if NDNBOOST_PP_LOCAL_C(245)
+        NDNBOOST_PP_LOCAL_MACRO(245)
 #    endif
-#    if BOOST_PP_LOCAL_C(246)
-        BOOST_PP_LOCAL_MACRO(246)
+#    if NDNBOOST_PP_LOCAL_C(246)
+        NDNBOOST_PP_LOCAL_MACRO(246)
 #    endif
-#    if BOOST_PP_LOCAL_C(247)
-        BOOST_PP_LOCAL_MACRO(247)
+#    if NDNBOOST_PP_LOCAL_C(247)
+        NDNBOOST_PP_LOCAL_MACRO(247)
 #    endif
-#    if BOOST_PP_LOCAL_C(248)
-        BOOST_PP_LOCAL_MACRO(248)
+#    if NDNBOOST_PP_LOCAL_C(248)
+        NDNBOOST_PP_LOCAL_MACRO(248)
 #    endif
-#    if BOOST_PP_LOCAL_C(249)
-        BOOST_PP_LOCAL_MACRO(249)
+#    if NDNBOOST_PP_LOCAL_C(249)
+        NDNBOOST_PP_LOCAL_MACRO(249)
 #    endif
-#    if BOOST_PP_LOCAL_C(250)
-        BOOST_PP_LOCAL_MACRO(250)
+#    if NDNBOOST_PP_LOCAL_C(250)
+        NDNBOOST_PP_LOCAL_MACRO(250)
 #    endif
-#    if BOOST_PP_LOCAL_C(251)
-        BOOST_PP_LOCAL_MACRO(251)
+#    if NDNBOOST_PP_LOCAL_C(251)
+        NDNBOOST_PP_LOCAL_MACRO(251)
 #    endif
-#    if BOOST_PP_LOCAL_C(252)
-        BOOST_PP_LOCAL_MACRO(252)
+#    if NDNBOOST_PP_LOCAL_C(252)
+        NDNBOOST_PP_LOCAL_MACRO(252)
 #    endif
-#    if BOOST_PP_LOCAL_C(253)
-        BOOST_PP_LOCAL_MACRO(253)
+#    if NDNBOOST_PP_LOCAL_C(253)
+        NDNBOOST_PP_LOCAL_MACRO(253)
 #    endif
-#    if BOOST_PP_LOCAL_C(254)
-        BOOST_PP_LOCAL_MACRO(254)
+#    if NDNBOOST_PP_LOCAL_C(254)
+        NDNBOOST_PP_LOCAL_MACRO(254)
 #    endif
-#    if BOOST_PP_LOCAL_C(255)
-        BOOST_PP_LOCAL_MACRO(255)
+#    if NDNBOOST_PP_LOCAL_C(255)
+        NDNBOOST_PP_LOCAL_MACRO(255)
 #    endif
-#    if BOOST_PP_LOCAL_C(256)
-        BOOST_PP_LOCAL_MACRO(256)
+#    if NDNBOOST_PP_LOCAL_C(256)
+        NDNBOOST_PP_LOCAL_MACRO(256)
 #    endif
 # endif
 #
-# undef BOOST_PP_LOCAL_LIMITS
+# undef NDNBOOST_PP_LOCAL_LIMITS
 #
-# undef BOOST_PP_LOCAL_S
-# undef BOOST_PP_LOCAL_F
+# undef NDNBOOST_PP_LOCAL_S
+# undef NDNBOOST_PP_LOCAL_F
 #
-# undef BOOST_PP_LOCAL_MACRO
+# undef NDNBOOST_PP_LOCAL_MACRO
diff --git a/include/ndnboost/preprocessor/iteration/detail/rlocal.hpp b/include/ndnboost/preprocessor/iteration/detail/rlocal.hpp
index 413afa0..ad601a7 100644
--- a/include/ndnboost/preprocessor/iteration/detail/rlocal.hpp
+++ b/include/ndnboost/preprocessor/iteration/detail/rlocal.hpp
@@ -9,774 +9,774 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# if BOOST_PP_LOCAL_R(256)
-    BOOST_PP_LOCAL_MACRO(256)
+# if NDNBOOST_PP_LOCAL_R(256)
+    NDNBOOST_PP_LOCAL_MACRO(256)
 # endif
-# if BOOST_PP_LOCAL_R(255)
-    BOOST_PP_LOCAL_MACRO(255)
+# if NDNBOOST_PP_LOCAL_R(255)
+    NDNBOOST_PP_LOCAL_MACRO(255)
 # endif
-# if BOOST_PP_LOCAL_R(254)
-    BOOST_PP_LOCAL_MACRO(254)
+# if NDNBOOST_PP_LOCAL_R(254)
+    NDNBOOST_PP_LOCAL_MACRO(254)
 # endif
-# if BOOST_PP_LOCAL_R(253)
-    BOOST_PP_LOCAL_MACRO(253)
+# if NDNBOOST_PP_LOCAL_R(253)
+    NDNBOOST_PP_LOCAL_MACRO(253)
 # endif
-# if BOOST_PP_LOCAL_R(252)
-    BOOST_PP_LOCAL_MACRO(252)
+# if NDNBOOST_PP_LOCAL_R(252)
+    NDNBOOST_PP_LOCAL_MACRO(252)
 # endif
-# if BOOST_PP_LOCAL_R(251)
-    BOOST_PP_LOCAL_MACRO(251)
+# if NDNBOOST_PP_LOCAL_R(251)
+    NDNBOOST_PP_LOCAL_MACRO(251)
 # endif
-# if BOOST_PP_LOCAL_R(250)
-    BOOST_PP_LOCAL_MACRO(250)
+# if NDNBOOST_PP_LOCAL_R(250)
+    NDNBOOST_PP_LOCAL_MACRO(250)
 # endif
-# if BOOST_PP_LOCAL_R(249)
-    BOOST_PP_LOCAL_MACRO(249)
+# if NDNBOOST_PP_LOCAL_R(249)
+    NDNBOOST_PP_LOCAL_MACRO(249)
 # endif
-# if BOOST_PP_LOCAL_R(248)
-    BOOST_PP_LOCAL_MACRO(248)
+# if NDNBOOST_PP_LOCAL_R(248)
+    NDNBOOST_PP_LOCAL_MACRO(248)
 # endif
-# if BOOST_PP_LOCAL_R(247)
-    BOOST_PP_LOCAL_MACRO(247)
+# if NDNBOOST_PP_LOCAL_R(247)
+    NDNBOOST_PP_LOCAL_MACRO(247)
 # endif
-# if BOOST_PP_LOCAL_R(246)
-    BOOST_PP_LOCAL_MACRO(246)
+# if NDNBOOST_PP_LOCAL_R(246)
+    NDNBOOST_PP_LOCAL_MACRO(246)
 # endif
-# if BOOST_PP_LOCAL_R(245)
-    BOOST_PP_LOCAL_MACRO(245)
+# if NDNBOOST_PP_LOCAL_R(245)
+    NDNBOOST_PP_LOCAL_MACRO(245)
 # endif
-# if BOOST_PP_LOCAL_R(244)
-    BOOST_PP_LOCAL_MACRO(244)
+# if NDNBOOST_PP_LOCAL_R(244)
+    NDNBOOST_PP_LOCAL_MACRO(244)
 # endif
-# if BOOST_PP_LOCAL_R(243)
-    BOOST_PP_LOCAL_MACRO(243)
+# if NDNBOOST_PP_LOCAL_R(243)
+    NDNBOOST_PP_LOCAL_MACRO(243)
 # endif
-# if BOOST_PP_LOCAL_R(242)
-    BOOST_PP_LOCAL_MACRO(242)
+# if NDNBOOST_PP_LOCAL_R(242)
+    NDNBOOST_PP_LOCAL_MACRO(242)
 # endif
-# if BOOST_PP_LOCAL_R(241)
-    BOOST_PP_LOCAL_MACRO(241)
+# if NDNBOOST_PP_LOCAL_R(241)
+    NDNBOOST_PP_LOCAL_MACRO(241)
 # endif
-# if BOOST_PP_LOCAL_R(240)
-    BOOST_PP_LOCAL_MACRO(240)
+# if NDNBOOST_PP_LOCAL_R(240)
+    NDNBOOST_PP_LOCAL_MACRO(240)
 # endif
-# if BOOST_PP_LOCAL_R(239)
-    BOOST_PP_LOCAL_MACRO(239)
+# if NDNBOOST_PP_LOCAL_R(239)
+    NDNBOOST_PP_LOCAL_MACRO(239)
 # endif
-# if BOOST_PP_LOCAL_R(238)
-    BOOST_PP_LOCAL_MACRO(238)
+# if NDNBOOST_PP_LOCAL_R(238)
+    NDNBOOST_PP_LOCAL_MACRO(238)
 # endif
-# if BOOST_PP_LOCAL_R(237)
-    BOOST_PP_LOCAL_MACRO(237)
+# if NDNBOOST_PP_LOCAL_R(237)
+    NDNBOOST_PP_LOCAL_MACRO(237)
 # endif
-# if BOOST_PP_LOCAL_R(236)
-    BOOST_PP_LOCAL_MACRO(236)
+# if NDNBOOST_PP_LOCAL_R(236)
+    NDNBOOST_PP_LOCAL_MACRO(236)
 # endif
-# if BOOST_PP_LOCAL_R(235)
-    BOOST_PP_LOCAL_MACRO(235)
+# if NDNBOOST_PP_LOCAL_R(235)
+    NDNBOOST_PP_LOCAL_MACRO(235)
 # endif
-# if BOOST_PP_LOCAL_R(234)
-    BOOST_PP_LOCAL_MACRO(234)
+# if NDNBOOST_PP_LOCAL_R(234)
+    NDNBOOST_PP_LOCAL_MACRO(234)
 # endif
-# if BOOST_PP_LOCAL_R(233)
-    BOOST_PP_LOCAL_MACRO(233)
+# if NDNBOOST_PP_LOCAL_R(233)
+    NDNBOOST_PP_LOCAL_MACRO(233)
 # endif
-# if BOOST_PP_LOCAL_R(232)
-    BOOST_PP_LOCAL_MACRO(232)
+# if NDNBOOST_PP_LOCAL_R(232)
+    NDNBOOST_PP_LOCAL_MACRO(232)
 # endif
-# if BOOST_PP_LOCAL_R(231)
-    BOOST_PP_LOCAL_MACRO(231)
+# if NDNBOOST_PP_LOCAL_R(231)
+    NDNBOOST_PP_LOCAL_MACRO(231)
 # endif
-# if BOOST_PP_LOCAL_R(230)
-    BOOST_PP_LOCAL_MACRO(230)
+# if NDNBOOST_PP_LOCAL_R(230)
+    NDNBOOST_PP_LOCAL_MACRO(230)
 # endif
-# if BOOST_PP_LOCAL_R(229)
-    BOOST_PP_LOCAL_MACRO(229)
+# if NDNBOOST_PP_LOCAL_R(229)
+    NDNBOOST_PP_LOCAL_MACRO(229)
 # endif
-# if BOOST_PP_LOCAL_R(228)
-    BOOST_PP_LOCAL_MACRO(228)
+# if NDNBOOST_PP_LOCAL_R(228)
+    NDNBOOST_PP_LOCAL_MACRO(228)
 # endif
-# if BOOST_PP_LOCAL_R(227)
-    BOOST_PP_LOCAL_MACRO(227)
+# if NDNBOOST_PP_LOCAL_R(227)
+    NDNBOOST_PP_LOCAL_MACRO(227)
 # endif
-# if BOOST_PP_LOCAL_R(226)
-    BOOST_PP_LOCAL_MACRO(226)
+# if NDNBOOST_PP_LOCAL_R(226)
+    NDNBOOST_PP_LOCAL_MACRO(226)
 # endif
-# if BOOST_PP_LOCAL_R(225)
-    BOOST_PP_LOCAL_MACRO(225)
+# if NDNBOOST_PP_LOCAL_R(225)
+    NDNBOOST_PP_LOCAL_MACRO(225)
 # endif
-# if BOOST_PP_LOCAL_R(224)
-    BOOST_PP_LOCAL_MACRO(224)
+# if NDNBOOST_PP_LOCAL_R(224)
+    NDNBOOST_PP_LOCAL_MACRO(224)
 # endif
-# if BOOST_PP_LOCAL_R(223)
-    BOOST_PP_LOCAL_MACRO(223)
+# if NDNBOOST_PP_LOCAL_R(223)
+    NDNBOOST_PP_LOCAL_MACRO(223)
 # endif
-# if BOOST_PP_LOCAL_R(222)
-    BOOST_PP_LOCAL_MACRO(222)
+# if NDNBOOST_PP_LOCAL_R(222)
+    NDNBOOST_PP_LOCAL_MACRO(222)
 # endif
-# if BOOST_PP_LOCAL_R(221)
-    BOOST_PP_LOCAL_MACRO(221)
+# if NDNBOOST_PP_LOCAL_R(221)
+    NDNBOOST_PP_LOCAL_MACRO(221)
 # endif
-# if BOOST_PP_LOCAL_R(220)
-    BOOST_PP_LOCAL_MACRO(220)
+# if NDNBOOST_PP_LOCAL_R(220)
+    NDNBOOST_PP_LOCAL_MACRO(220)
 # endif
-# if BOOST_PP_LOCAL_R(219)
-    BOOST_PP_LOCAL_MACRO(219)
+# if NDNBOOST_PP_LOCAL_R(219)
+    NDNBOOST_PP_LOCAL_MACRO(219)
 # endif
-# if BOOST_PP_LOCAL_R(218)
-    BOOST_PP_LOCAL_MACRO(218)
+# if NDNBOOST_PP_LOCAL_R(218)
+    NDNBOOST_PP_LOCAL_MACRO(218)
 # endif
-# if BOOST_PP_LOCAL_R(217)
-    BOOST_PP_LOCAL_MACRO(217)
+# if NDNBOOST_PP_LOCAL_R(217)
+    NDNBOOST_PP_LOCAL_MACRO(217)
 # endif
-# if BOOST_PP_LOCAL_R(216)
-    BOOST_PP_LOCAL_MACRO(216)
+# if NDNBOOST_PP_LOCAL_R(216)
+    NDNBOOST_PP_LOCAL_MACRO(216)
 # endif
-# if BOOST_PP_LOCAL_R(215)
-    BOOST_PP_LOCAL_MACRO(215)
+# if NDNBOOST_PP_LOCAL_R(215)
+    NDNBOOST_PP_LOCAL_MACRO(215)
 # endif
-# if BOOST_PP_LOCAL_R(214)
-    BOOST_PP_LOCAL_MACRO(214)
+# if NDNBOOST_PP_LOCAL_R(214)
+    NDNBOOST_PP_LOCAL_MACRO(214)
 # endif
-# if BOOST_PP_LOCAL_R(213)
-    BOOST_PP_LOCAL_MACRO(213)
+# if NDNBOOST_PP_LOCAL_R(213)
+    NDNBOOST_PP_LOCAL_MACRO(213)
 # endif
-# if BOOST_PP_LOCAL_R(212)
-    BOOST_PP_LOCAL_MACRO(212)
+# if NDNBOOST_PP_LOCAL_R(212)
+    NDNBOOST_PP_LOCAL_MACRO(212)
 # endif
-# if BOOST_PP_LOCAL_R(211)
-    BOOST_PP_LOCAL_MACRO(211)
+# if NDNBOOST_PP_LOCAL_R(211)
+    NDNBOOST_PP_LOCAL_MACRO(211)
 # endif
-# if BOOST_PP_LOCAL_R(210)
-    BOOST_PP_LOCAL_MACRO(210)
+# if NDNBOOST_PP_LOCAL_R(210)
+    NDNBOOST_PP_LOCAL_MACRO(210)
 # endif
-# if BOOST_PP_LOCAL_R(209)
-    BOOST_PP_LOCAL_MACRO(209)
+# if NDNBOOST_PP_LOCAL_R(209)
+    NDNBOOST_PP_LOCAL_MACRO(209)
 # endif
-# if BOOST_PP_LOCAL_R(208)
-    BOOST_PP_LOCAL_MACRO(208)
+# if NDNBOOST_PP_LOCAL_R(208)
+    NDNBOOST_PP_LOCAL_MACRO(208)
 # endif
-# if BOOST_PP_LOCAL_R(207)
-    BOOST_PP_LOCAL_MACRO(207)
+# if NDNBOOST_PP_LOCAL_R(207)
+    NDNBOOST_PP_LOCAL_MACRO(207)
 # endif
-# if BOOST_PP_LOCAL_R(206)
-    BOOST_PP_LOCAL_MACRO(206)
+# if NDNBOOST_PP_LOCAL_R(206)
+    NDNBOOST_PP_LOCAL_MACRO(206)
 # endif
-# if BOOST_PP_LOCAL_R(205)
-    BOOST_PP_LOCAL_MACRO(205)
+# if NDNBOOST_PP_LOCAL_R(205)
+    NDNBOOST_PP_LOCAL_MACRO(205)
 # endif
-# if BOOST_PP_LOCAL_R(204)
-    BOOST_PP_LOCAL_MACRO(204)
+# if NDNBOOST_PP_LOCAL_R(204)
+    NDNBOOST_PP_LOCAL_MACRO(204)
 # endif
-# if BOOST_PP_LOCAL_R(203)
-    BOOST_PP_LOCAL_MACRO(203)
+# if NDNBOOST_PP_LOCAL_R(203)
+    NDNBOOST_PP_LOCAL_MACRO(203)
 # endif
-# if BOOST_PP_LOCAL_R(202)
-    BOOST_PP_LOCAL_MACRO(202)
+# if NDNBOOST_PP_LOCAL_R(202)
+    NDNBOOST_PP_LOCAL_MACRO(202)
 # endif
-# if BOOST_PP_LOCAL_R(201)
-    BOOST_PP_LOCAL_MACRO(201)
+# if NDNBOOST_PP_LOCAL_R(201)
+    NDNBOOST_PP_LOCAL_MACRO(201)
 # endif
-# if BOOST_PP_LOCAL_R(200)
-    BOOST_PP_LOCAL_MACRO(200)
+# if NDNBOOST_PP_LOCAL_R(200)
+    NDNBOOST_PP_LOCAL_MACRO(200)
 # endif
-# if BOOST_PP_LOCAL_R(199)
-    BOOST_PP_LOCAL_MACRO(199)
+# if NDNBOOST_PP_LOCAL_R(199)
+    NDNBOOST_PP_LOCAL_MACRO(199)
 # endif
-# if BOOST_PP_LOCAL_R(198)
-    BOOST_PP_LOCAL_MACRO(198)
+# if NDNBOOST_PP_LOCAL_R(198)
+    NDNBOOST_PP_LOCAL_MACRO(198)
 # endif
-# if BOOST_PP_LOCAL_R(197)
-    BOOST_PP_LOCAL_MACRO(197)
+# if NDNBOOST_PP_LOCAL_R(197)
+    NDNBOOST_PP_LOCAL_MACRO(197)
 # endif
-# if BOOST_PP_LOCAL_R(196)
-    BOOST_PP_LOCAL_MACRO(196)
+# if NDNBOOST_PP_LOCAL_R(196)
+    NDNBOOST_PP_LOCAL_MACRO(196)
 # endif
-# if BOOST_PP_LOCAL_R(195)
-    BOOST_PP_LOCAL_MACRO(195)
+# if NDNBOOST_PP_LOCAL_R(195)
+    NDNBOOST_PP_LOCAL_MACRO(195)
 # endif
-# if BOOST_PP_LOCAL_R(194)
-    BOOST_PP_LOCAL_MACRO(194)
+# if NDNBOOST_PP_LOCAL_R(194)
+    NDNBOOST_PP_LOCAL_MACRO(194)
 # endif
-# if BOOST_PP_LOCAL_R(193)
-    BOOST_PP_LOCAL_MACRO(193)
+# if NDNBOOST_PP_LOCAL_R(193)
+    NDNBOOST_PP_LOCAL_MACRO(193)
 # endif
-# if BOOST_PP_LOCAL_R(192)
-    BOOST_PP_LOCAL_MACRO(192)
+# if NDNBOOST_PP_LOCAL_R(192)
+    NDNBOOST_PP_LOCAL_MACRO(192)
 # endif
-# if BOOST_PP_LOCAL_R(191)
-    BOOST_PP_LOCAL_MACRO(191)
+# if NDNBOOST_PP_LOCAL_R(191)
+    NDNBOOST_PP_LOCAL_MACRO(191)
 # endif
-# if BOOST_PP_LOCAL_R(190)
-    BOOST_PP_LOCAL_MACRO(190)
+# if NDNBOOST_PP_LOCAL_R(190)
+    NDNBOOST_PP_LOCAL_MACRO(190)
 # endif
-# if BOOST_PP_LOCAL_R(189)
-    BOOST_PP_LOCAL_MACRO(189)
+# if NDNBOOST_PP_LOCAL_R(189)
+    NDNBOOST_PP_LOCAL_MACRO(189)
 # endif
-# if BOOST_PP_LOCAL_R(188)
-    BOOST_PP_LOCAL_MACRO(188)
+# if NDNBOOST_PP_LOCAL_R(188)
+    NDNBOOST_PP_LOCAL_MACRO(188)
 # endif
-# if BOOST_PP_LOCAL_R(187)
-    BOOST_PP_LOCAL_MACRO(187)
+# if NDNBOOST_PP_LOCAL_R(187)
+    NDNBOOST_PP_LOCAL_MACRO(187)
 # endif
-# if BOOST_PP_LOCAL_R(186)
-    BOOST_PP_LOCAL_MACRO(186)
+# if NDNBOOST_PP_LOCAL_R(186)
+    NDNBOOST_PP_LOCAL_MACRO(186)
 # endif
-# if BOOST_PP_LOCAL_R(185)
-    BOOST_PP_LOCAL_MACRO(185)
+# if NDNBOOST_PP_LOCAL_R(185)
+    NDNBOOST_PP_LOCAL_MACRO(185)
 # endif
-# if BOOST_PP_LOCAL_R(184)
-    BOOST_PP_LOCAL_MACRO(184)
+# if NDNBOOST_PP_LOCAL_R(184)
+    NDNBOOST_PP_LOCAL_MACRO(184)
 # endif
-# if BOOST_PP_LOCAL_R(183)
-    BOOST_PP_LOCAL_MACRO(183)
+# if NDNBOOST_PP_LOCAL_R(183)
+    NDNBOOST_PP_LOCAL_MACRO(183)
 # endif
-# if BOOST_PP_LOCAL_R(182)
-    BOOST_PP_LOCAL_MACRO(182)
+# if NDNBOOST_PP_LOCAL_R(182)
+    NDNBOOST_PP_LOCAL_MACRO(182)
 # endif
-# if BOOST_PP_LOCAL_R(181)
-    BOOST_PP_LOCAL_MACRO(181)
+# if NDNBOOST_PP_LOCAL_R(181)
+    NDNBOOST_PP_LOCAL_MACRO(181)
 # endif
-# if BOOST_PP_LOCAL_R(180)
-    BOOST_PP_LOCAL_MACRO(180)
+# if NDNBOOST_PP_LOCAL_R(180)
+    NDNBOOST_PP_LOCAL_MACRO(180)
 # endif
-# if BOOST_PP_LOCAL_R(179)
-    BOOST_PP_LOCAL_MACRO(179)
+# if NDNBOOST_PP_LOCAL_R(179)
+    NDNBOOST_PP_LOCAL_MACRO(179)
 # endif
-# if BOOST_PP_LOCAL_R(178)
-    BOOST_PP_LOCAL_MACRO(178)
+# if NDNBOOST_PP_LOCAL_R(178)
+    NDNBOOST_PP_LOCAL_MACRO(178)
 # endif
-# if BOOST_PP_LOCAL_R(177)
-    BOOST_PP_LOCAL_MACRO(177)
+# if NDNBOOST_PP_LOCAL_R(177)
+    NDNBOOST_PP_LOCAL_MACRO(177)
 # endif
-# if BOOST_PP_LOCAL_R(176)
-    BOOST_PP_LOCAL_MACRO(176)
+# if NDNBOOST_PP_LOCAL_R(176)
+    NDNBOOST_PP_LOCAL_MACRO(176)
 # endif
-# if BOOST_PP_LOCAL_R(175)
-    BOOST_PP_LOCAL_MACRO(175)
+# if NDNBOOST_PP_LOCAL_R(175)
+    NDNBOOST_PP_LOCAL_MACRO(175)
 # endif
-# if BOOST_PP_LOCAL_R(174)
-    BOOST_PP_LOCAL_MACRO(174)
+# if NDNBOOST_PP_LOCAL_R(174)
+    NDNBOOST_PP_LOCAL_MACRO(174)
 # endif
-# if BOOST_PP_LOCAL_R(173)
-    BOOST_PP_LOCAL_MACRO(173)
+# if NDNBOOST_PP_LOCAL_R(173)
+    NDNBOOST_PP_LOCAL_MACRO(173)
 # endif
-# if BOOST_PP_LOCAL_R(172)
-    BOOST_PP_LOCAL_MACRO(172)
+# if NDNBOOST_PP_LOCAL_R(172)
+    NDNBOOST_PP_LOCAL_MACRO(172)
 # endif
-# if BOOST_PP_LOCAL_R(171)
-    BOOST_PP_LOCAL_MACRO(171)
+# if NDNBOOST_PP_LOCAL_R(171)
+    NDNBOOST_PP_LOCAL_MACRO(171)
 # endif
-# if BOOST_PP_LOCAL_R(170)
-    BOOST_PP_LOCAL_MACRO(170)
+# if NDNBOOST_PP_LOCAL_R(170)
+    NDNBOOST_PP_LOCAL_MACRO(170)
 # endif
-# if BOOST_PP_LOCAL_R(169)
-    BOOST_PP_LOCAL_MACRO(169)
+# if NDNBOOST_PP_LOCAL_R(169)
+    NDNBOOST_PP_LOCAL_MACRO(169)
 # endif
-# if BOOST_PP_LOCAL_R(168)
-    BOOST_PP_LOCAL_MACRO(168)
+# if NDNBOOST_PP_LOCAL_R(168)
+    NDNBOOST_PP_LOCAL_MACRO(168)
 # endif
-# if BOOST_PP_LOCAL_R(167)
-    BOOST_PP_LOCAL_MACRO(167)
+# if NDNBOOST_PP_LOCAL_R(167)
+    NDNBOOST_PP_LOCAL_MACRO(167)
 # endif
-# if BOOST_PP_LOCAL_R(166)
-    BOOST_PP_LOCAL_MACRO(166)
+# if NDNBOOST_PP_LOCAL_R(166)
+    NDNBOOST_PP_LOCAL_MACRO(166)
 # endif
-# if BOOST_PP_LOCAL_R(165)
-    BOOST_PP_LOCAL_MACRO(165)
+# if NDNBOOST_PP_LOCAL_R(165)
+    NDNBOOST_PP_LOCAL_MACRO(165)
 # endif
-# if BOOST_PP_LOCAL_R(164)
-    BOOST_PP_LOCAL_MACRO(164)
+# if NDNBOOST_PP_LOCAL_R(164)
+    NDNBOOST_PP_LOCAL_MACRO(164)
 # endif
-# if BOOST_PP_LOCAL_R(163)
-    BOOST_PP_LOCAL_MACRO(163)
+# if NDNBOOST_PP_LOCAL_R(163)
+    NDNBOOST_PP_LOCAL_MACRO(163)
 # endif
-# if BOOST_PP_LOCAL_R(162)
-    BOOST_PP_LOCAL_MACRO(162)
+# if NDNBOOST_PP_LOCAL_R(162)
+    NDNBOOST_PP_LOCAL_MACRO(162)
 # endif
-# if BOOST_PP_LOCAL_R(161)
-    BOOST_PP_LOCAL_MACRO(161)
+# if NDNBOOST_PP_LOCAL_R(161)
+    NDNBOOST_PP_LOCAL_MACRO(161)
 # endif
-# if BOOST_PP_LOCAL_R(160)
-    BOOST_PP_LOCAL_MACRO(160)
+# if NDNBOOST_PP_LOCAL_R(160)
+    NDNBOOST_PP_LOCAL_MACRO(160)
 # endif
-# if BOOST_PP_LOCAL_R(159)
-    BOOST_PP_LOCAL_MACRO(159)
+# if NDNBOOST_PP_LOCAL_R(159)
+    NDNBOOST_PP_LOCAL_MACRO(159)
 # endif
-# if BOOST_PP_LOCAL_R(158)
-    BOOST_PP_LOCAL_MACRO(158)
+# if NDNBOOST_PP_LOCAL_R(158)
+    NDNBOOST_PP_LOCAL_MACRO(158)
 # endif
-# if BOOST_PP_LOCAL_R(157)
-    BOOST_PP_LOCAL_MACRO(157)
+# if NDNBOOST_PP_LOCAL_R(157)
+    NDNBOOST_PP_LOCAL_MACRO(157)
 # endif
-# if BOOST_PP_LOCAL_R(156)
-    BOOST_PP_LOCAL_MACRO(156)
+# if NDNBOOST_PP_LOCAL_R(156)
+    NDNBOOST_PP_LOCAL_MACRO(156)
 # endif
-# if BOOST_PP_LOCAL_R(155)
-    BOOST_PP_LOCAL_MACRO(155)
+# if NDNBOOST_PP_LOCAL_R(155)
+    NDNBOOST_PP_LOCAL_MACRO(155)
 # endif
-# if BOOST_PP_LOCAL_R(154)
-    BOOST_PP_LOCAL_MACRO(154)
+# if NDNBOOST_PP_LOCAL_R(154)
+    NDNBOOST_PP_LOCAL_MACRO(154)
 # endif
-# if BOOST_PP_LOCAL_R(153)
-    BOOST_PP_LOCAL_MACRO(153)
+# if NDNBOOST_PP_LOCAL_R(153)
+    NDNBOOST_PP_LOCAL_MACRO(153)
 # endif
-# if BOOST_PP_LOCAL_R(152)
-    BOOST_PP_LOCAL_MACRO(152)
+# if NDNBOOST_PP_LOCAL_R(152)
+    NDNBOOST_PP_LOCAL_MACRO(152)
 # endif
-# if BOOST_PP_LOCAL_R(151)
-    BOOST_PP_LOCAL_MACRO(151)
+# if NDNBOOST_PP_LOCAL_R(151)
+    NDNBOOST_PP_LOCAL_MACRO(151)
 # endif
-# if BOOST_PP_LOCAL_R(150)
-    BOOST_PP_LOCAL_MACRO(150)
+# if NDNBOOST_PP_LOCAL_R(150)
+    NDNBOOST_PP_LOCAL_MACRO(150)
 # endif
-# if BOOST_PP_LOCAL_R(149)
-    BOOST_PP_LOCAL_MACRO(149)
+# if NDNBOOST_PP_LOCAL_R(149)
+    NDNBOOST_PP_LOCAL_MACRO(149)
 # endif
-# if BOOST_PP_LOCAL_R(148)
-    BOOST_PP_LOCAL_MACRO(148)
+# if NDNBOOST_PP_LOCAL_R(148)
+    NDNBOOST_PP_LOCAL_MACRO(148)
 # endif
-# if BOOST_PP_LOCAL_R(147)
-    BOOST_PP_LOCAL_MACRO(147)
+# if NDNBOOST_PP_LOCAL_R(147)
+    NDNBOOST_PP_LOCAL_MACRO(147)
 # endif
-# if BOOST_PP_LOCAL_R(146)
-    BOOST_PP_LOCAL_MACRO(146)
+# if NDNBOOST_PP_LOCAL_R(146)
+    NDNBOOST_PP_LOCAL_MACRO(146)
 # endif
-# if BOOST_PP_LOCAL_R(145)
-    BOOST_PP_LOCAL_MACRO(145)
+# if NDNBOOST_PP_LOCAL_R(145)
+    NDNBOOST_PP_LOCAL_MACRO(145)
 # endif
-# if BOOST_PP_LOCAL_R(144)
-    BOOST_PP_LOCAL_MACRO(144)
+# if NDNBOOST_PP_LOCAL_R(144)
+    NDNBOOST_PP_LOCAL_MACRO(144)
 # endif
-# if BOOST_PP_LOCAL_R(143)
-    BOOST_PP_LOCAL_MACRO(143)
+# if NDNBOOST_PP_LOCAL_R(143)
+    NDNBOOST_PP_LOCAL_MACRO(143)
 # endif
-# if BOOST_PP_LOCAL_R(142)
-    BOOST_PP_LOCAL_MACRO(142)
+# if NDNBOOST_PP_LOCAL_R(142)
+    NDNBOOST_PP_LOCAL_MACRO(142)
 # endif
-# if BOOST_PP_LOCAL_R(141)
-    BOOST_PP_LOCAL_MACRO(141)
+# if NDNBOOST_PP_LOCAL_R(141)
+    NDNBOOST_PP_LOCAL_MACRO(141)
 # endif
-# if BOOST_PP_LOCAL_R(140)
-    BOOST_PP_LOCAL_MACRO(140)
+# if NDNBOOST_PP_LOCAL_R(140)
+    NDNBOOST_PP_LOCAL_MACRO(140)
 # endif
-# if BOOST_PP_LOCAL_R(139)
-    BOOST_PP_LOCAL_MACRO(139)
+# if NDNBOOST_PP_LOCAL_R(139)
+    NDNBOOST_PP_LOCAL_MACRO(139)
 # endif
-# if BOOST_PP_LOCAL_R(138)
-    BOOST_PP_LOCAL_MACRO(138)
+# if NDNBOOST_PP_LOCAL_R(138)
+    NDNBOOST_PP_LOCAL_MACRO(138)
 # endif
-# if BOOST_PP_LOCAL_R(137)
-    BOOST_PP_LOCAL_MACRO(137)
+# if NDNBOOST_PP_LOCAL_R(137)
+    NDNBOOST_PP_LOCAL_MACRO(137)
 # endif
-# if BOOST_PP_LOCAL_R(136)
-    BOOST_PP_LOCAL_MACRO(136)
+# if NDNBOOST_PP_LOCAL_R(136)
+    NDNBOOST_PP_LOCAL_MACRO(136)
 # endif
-# if BOOST_PP_LOCAL_R(135)
-    BOOST_PP_LOCAL_MACRO(135)
+# if NDNBOOST_PP_LOCAL_R(135)
+    NDNBOOST_PP_LOCAL_MACRO(135)
 # endif
-# if BOOST_PP_LOCAL_R(134)
-    BOOST_PP_LOCAL_MACRO(134)
+# if NDNBOOST_PP_LOCAL_R(134)
+    NDNBOOST_PP_LOCAL_MACRO(134)
 # endif
-# if BOOST_PP_LOCAL_R(133)
-    BOOST_PP_LOCAL_MACRO(133)
+# if NDNBOOST_PP_LOCAL_R(133)
+    NDNBOOST_PP_LOCAL_MACRO(133)
 # endif
-# if BOOST_PP_LOCAL_R(132)
-    BOOST_PP_LOCAL_MACRO(132)
+# if NDNBOOST_PP_LOCAL_R(132)
+    NDNBOOST_PP_LOCAL_MACRO(132)
 # endif
-# if BOOST_PP_LOCAL_R(131)
-    BOOST_PP_LOCAL_MACRO(131)
+# if NDNBOOST_PP_LOCAL_R(131)
+    NDNBOOST_PP_LOCAL_MACRO(131)
 # endif
-# if BOOST_PP_LOCAL_R(130)
-    BOOST_PP_LOCAL_MACRO(130)
+# if NDNBOOST_PP_LOCAL_R(130)
+    NDNBOOST_PP_LOCAL_MACRO(130)
 # endif
-# if BOOST_PP_LOCAL_R(129)
-    BOOST_PP_LOCAL_MACRO(129)
+# if NDNBOOST_PP_LOCAL_R(129)
+    NDNBOOST_PP_LOCAL_MACRO(129)
 # endif
-# if BOOST_PP_LOCAL_R(128)
-    BOOST_PP_LOCAL_MACRO(128)
+# if NDNBOOST_PP_LOCAL_R(128)
+    NDNBOOST_PP_LOCAL_MACRO(128)
 # endif
-# if BOOST_PP_LOCAL_R(127)
-    BOOST_PP_LOCAL_MACRO(127)
+# if NDNBOOST_PP_LOCAL_R(127)
+    NDNBOOST_PP_LOCAL_MACRO(127)
 # endif
-# if BOOST_PP_LOCAL_R(126)
-    BOOST_PP_LOCAL_MACRO(126)
+# if NDNBOOST_PP_LOCAL_R(126)
+    NDNBOOST_PP_LOCAL_MACRO(126)
 # endif
-# if BOOST_PP_LOCAL_R(125)
-    BOOST_PP_LOCAL_MACRO(125)
+# if NDNBOOST_PP_LOCAL_R(125)
+    NDNBOOST_PP_LOCAL_MACRO(125)
 # endif
-# if BOOST_PP_LOCAL_R(124)
-    BOOST_PP_LOCAL_MACRO(124)
+# if NDNBOOST_PP_LOCAL_R(124)
+    NDNBOOST_PP_LOCAL_MACRO(124)
 # endif
-# if BOOST_PP_LOCAL_R(123)
-    BOOST_PP_LOCAL_MACRO(123)
+# if NDNBOOST_PP_LOCAL_R(123)
+    NDNBOOST_PP_LOCAL_MACRO(123)
 # endif
-# if BOOST_PP_LOCAL_R(122)
-    BOOST_PP_LOCAL_MACRO(122)
+# if NDNBOOST_PP_LOCAL_R(122)
+    NDNBOOST_PP_LOCAL_MACRO(122)
 # endif
-# if BOOST_PP_LOCAL_R(121)
-    BOOST_PP_LOCAL_MACRO(121)
+# if NDNBOOST_PP_LOCAL_R(121)
+    NDNBOOST_PP_LOCAL_MACRO(121)
 # endif
-# if BOOST_PP_LOCAL_R(120)
-    BOOST_PP_LOCAL_MACRO(120)
+# if NDNBOOST_PP_LOCAL_R(120)
+    NDNBOOST_PP_LOCAL_MACRO(120)
 # endif
-# if BOOST_PP_LOCAL_R(119)
-    BOOST_PP_LOCAL_MACRO(119)
+# if NDNBOOST_PP_LOCAL_R(119)
+    NDNBOOST_PP_LOCAL_MACRO(119)
 # endif
-# if BOOST_PP_LOCAL_R(118)
-    BOOST_PP_LOCAL_MACRO(118)
+# if NDNBOOST_PP_LOCAL_R(118)
+    NDNBOOST_PP_LOCAL_MACRO(118)
 # endif
-# if BOOST_PP_LOCAL_R(117)
-    BOOST_PP_LOCAL_MACRO(117)
+# if NDNBOOST_PP_LOCAL_R(117)
+    NDNBOOST_PP_LOCAL_MACRO(117)
 # endif
-# if BOOST_PP_LOCAL_R(116)
-    BOOST_PP_LOCAL_MACRO(116)
+# if NDNBOOST_PP_LOCAL_R(116)
+    NDNBOOST_PP_LOCAL_MACRO(116)
 # endif
-# if BOOST_PP_LOCAL_R(115)
-    BOOST_PP_LOCAL_MACRO(115)
+# if NDNBOOST_PP_LOCAL_R(115)
+    NDNBOOST_PP_LOCAL_MACRO(115)
 # endif
-# if BOOST_PP_LOCAL_R(114)
-    BOOST_PP_LOCAL_MACRO(114)
+# if NDNBOOST_PP_LOCAL_R(114)
+    NDNBOOST_PP_LOCAL_MACRO(114)
 # endif
-# if BOOST_PP_LOCAL_R(113)
-    BOOST_PP_LOCAL_MACRO(113)
+# if NDNBOOST_PP_LOCAL_R(113)
+    NDNBOOST_PP_LOCAL_MACRO(113)
 # endif
-# if BOOST_PP_LOCAL_R(112)
-    BOOST_PP_LOCAL_MACRO(112)
+# if NDNBOOST_PP_LOCAL_R(112)
+    NDNBOOST_PP_LOCAL_MACRO(112)
 # endif
-# if BOOST_PP_LOCAL_R(111)
-    BOOST_PP_LOCAL_MACRO(111)
+# if NDNBOOST_PP_LOCAL_R(111)
+    NDNBOOST_PP_LOCAL_MACRO(111)
 # endif
-# if BOOST_PP_LOCAL_R(110)
-    BOOST_PP_LOCAL_MACRO(110)
+# if NDNBOOST_PP_LOCAL_R(110)
+    NDNBOOST_PP_LOCAL_MACRO(110)
 # endif
-# if BOOST_PP_LOCAL_R(109)
-    BOOST_PP_LOCAL_MACRO(109)
+# if NDNBOOST_PP_LOCAL_R(109)
+    NDNBOOST_PP_LOCAL_MACRO(109)
 # endif
-# if BOOST_PP_LOCAL_R(108)
-    BOOST_PP_LOCAL_MACRO(108)
+# if NDNBOOST_PP_LOCAL_R(108)
+    NDNBOOST_PP_LOCAL_MACRO(108)
 # endif
-# if BOOST_PP_LOCAL_R(107)
-    BOOST_PP_LOCAL_MACRO(107)
+# if NDNBOOST_PP_LOCAL_R(107)
+    NDNBOOST_PP_LOCAL_MACRO(107)
 # endif
-# if BOOST_PP_LOCAL_R(106)
-    BOOST_PP_LOCAL_MACRO(106)
+# if NDNBOOST_PP_LOCAL_R(106)
+    NDNBOOST_PP_LOCAL_MACRO(106)
 # endif
-# if BOOST_PP_LOCAL_R(105)
-    BOOST_PP_LOCAL_MACRO(105)
+# if NDNBOOST_PP_LOCAL_R(105)
+    NDNBOOST_PP_LOCAL_MACRO(105)
 # endif
-# if BOOST_PP_LOCAL_R(104)
-    BOOST_PP_LOCAL_MACRO(104)
+# if NDNBOOST_PP_LOCAL_R(104)
+    NDNBOOST_PP_LOCAL_MACRO(104)
 # endif
-# if BOOST_PP_LOCAL_R(103)
-    BOOST_PP_LOCAL_MACRO(103)
+# if NDNBOOST_PP_LOCAL_R(103)
+    NDNBOOST_PP_LOCAL_MACRO(103)
 # endif
-# if BOOST_PP_LOCAL_R(102)
-    BOOST_PP_LOCAL_MACRO(102)
+# if NDNBOOST_PP_LOCAL_R(102)
+    NDNBOOST_PP_LOCAL_MACRO(102)
 # endif
-# if BOOST_PP_LOCAL_R(101)
-    BOOST_PP_LOCAL_MACRO(101)
+# if NDNBOOST_PP_LOCAL_R(101)
+    NDNBOOST_PP_LOCAL_MACRO(101)
 # endif
-# if BOOST_PP_LOCAL_R(100)
-    BOOST_PP_LOCAL_MACRO(100)
+# if NDNBOOST_PP_LOCAL_R(100)
+    NDNBOOST_PP_LOCAL_MACRO(100)
 # endif
-# if BOOST_PP_LOCAL_R(99)
-    BOOST_PP_LOCAL_MACRO(99)
+# if NDNBOOST_PP_LOCAL_R(99)
+    NDNBOOST_PP_LOCAL_MACRO(99)
 # endif
-# if BOOST_PP_LOCAL_R(98)
-    BOOST_PP_LOCAL_MACRO(98)
+# if NDNBOOST_PP_LOCAL_R(98)
+    NDNBOOST_PP_LOCAL_MACRO(98)
 # endif
-# if BOOST_PP_LOCAL_R(97)
-    BOOST_PP_LOCAL_MACRO(97)
+# if NDNBOOST_PP_LOCAL_R(97)
+    NDNBOOST_PP_LOCAL_MACRO(97)
 # endif
-# if BOOST_PP_LOCAL_R(96)
-    BOOST_PP_LOCAL_MACRO(96)
+# if NDNBOOST_PP_LOCAL_R(96)
+    NDNBOOST_PP_LOCAL_MACRO(96)
 # endif
-# if BOOST_PP_LOCAL_R(95)
-    BOOST_PP_LOCAL_MACRO(95)
+# if NDNBOOST_PP_LOCAL_R(95)
+    NDNBOOST_PP_LOCAL_MACRO(95)
 # endif
-# if BOOST_PP_LOCAL_R(94)
-    BOOST_PP_LOCAL_MACRO(94)
+# if NDNBOOST_PP_LOCAL_R(94)
+    NDNBOOST_PP_LOCAL_MACRO(94)
 # endif
-# if BOOST_PP_LOCAL_R(93)
-    BOOST_PP_LOCAL_MACRO(93)
+# if NDNBOOST_PP_LOCAL_R(93)
+    NDNBOOST_PP_LOCAL_MACRO(93)
 # endif
-# if BOOST_PP_LOCAL_R(92)
-    BOOST_PP_LOCAL_MACRO(92)
+# if NDNBOOST_PP_LOCAL_R(92)
+    NDNBOOST_PP_LOCAL_MACRO(92)
 # endif
-# if BOOST_PP_LOCAL_R(91)
-    BOOST_PP_LOCAL_MACRO(91)
+# if NDNBOOST_PP_LOCAL_R(91)
+    NDNBOOST_PP_LOCAL_MACRO(91)
 # endif
-# if BOOST_PP_LOCAL_R(90)
-    BOOST_PP_LOCAL_MACRO(90)
+# if NDNBOOST_PP_LOCAL_R(90)
+    NDNBOOST_PP_LOCAL_MACRO(90)
 # endif
-# if BOOST_PP_LOCAL_R(89)
-    BOOST_PP_LOCAL_MACRO(89)
+# if NDNBOOST_PP_LOCAL_R(89)
+    NDNBOOST_PP_LOCAL_MACRO(89)
 # endif
-# if BOOST_PP_LOCAL_R(88)
-    BOOST_PP_LOCAL_MACRO(88)
+# if NDNBOOST_PP_LOCAL_R(88)
+    NDNBOOST_PP_LOCAL_MACRO(88)
 # endif
-# if BOOST_PP_LOCAL_R(87)
-    BOOST_PP_LOCAL_MACRO(87)
+# if NDNBOOST_PP_LOCAL_R(87)
+    NDNBOOST_PP_LOCAL_MACRO(87)
 # endif
-# if BOOST_PP_LOCAL_R(86)
-    BOOST_PP_LOCAL_MACRO(86)
+# if NDNBOOST_PP_LOCAL_R(86)
+    NDNBOOST_PP_LOCAL_MACRO(86)
 # endif
-# if BOOST_PP_LOCAL_R(85)
-    BOOST_PP_LOCAL_MACRO(85)
+# if NDNBOOST_PP_LOCAL_R(85)
+    NDNBOOST_PP_LOCAL_MACRO(85)
 # endif
-# if BOOST_PP_LOCAL_R(84)
-    BOOST_PP_LOCAL_MACRO(84)
+# if NDNBOOST_PP_LOCAL_R(84)
+    NDNBOOST_PP_LOCAL_MACRO(84)
 # endif
-# if BOOST_PP_LOCAL_R(83)
-    BOOST_PP_LOCAL_MACRO(83)
+# if NDNBOOST_PP_LOCAL_R(83)
+    NDNBOOST_PP_LOCAL_MACRO(83)
 # endif
-# if BOOST_PP_LOCAL_R(82)
-    BOOST_PP_LOCAL_MACRO(82)
+# if NDNBOOST_PP_LOCAL_R(82)
+    NDNBOOST_PP_LOCAL_MACRO(82)
 # endif
-# if BOOST_PP_LOCAL_R(81)
-    BOOST_PP_LOCAL_MACRO(81)
+# if NDNBOOST_PP_LOCAL_R(81)
+    NDNBOOST_PP_LOCAL_MACRO(81)
 # endif
-# if BOOST_PP_LOCAL_R(80)
-    BOOST_PP_LOCAL_MACRO(80)
+# if NDNBOOST_PP_LOCAL_R(80)
+    NDNBOOST_PP_LOCAL_MACRO(80)
 # endif
-# if BOOST_PP_LOCAL_R(79)
-    BOOST_PP_LOCAL_MACRO(79)
+# if NDNBOOST_PP_LOCAL_R(79)
+    NDNBOOST_PP_LOCAL_MACRO(79)
 # endif
-# if BOOST_PP_LOCAL_R(78)
-    BOOST_PP_LOCAL_MACRO(78)
+# if NDNBOOST_PP_LOCAL_R(78)
+    NDNBOOST_PP_LOCAL_MACRO(78)
 # endif
-# if BOOST_PP_LOCAL_R(77)
-    BOOST_PP_LOCAL_MACRO(77)
+# if NDNBOOST_PP_LOCAL_R(77)
+    NDNBOOST_PP_LOCAL_MACRO(77)
 # endif
-# if BOOST_PP_LOCAL_R(76)
-    BOOST_PP_LOCAL_MACRO(76)
+# if NDNBOOST_PP_LOCAL_R(76)
+    NDNBOOST_PP_LOCAL_MACRO(76)
 # endif
-# if BOOST_PP_LOCAL_R(75)
-    BOOST_PP_LOCAL_MACRO(75)
+# if NDNBOOST_PP_LOCAL_R(75)
+    NDNBOOST_PP_LOCAL_MACRO(75)
 # endif
-# if BOOST_PP_LOCAL_R(74)
-    BOOST_PP_LOCAL_MACRO(74)
+# if NDNBOOST_PP_LOCAL_R(74)
+    NDNBOOST_PP_LOCAL_MACRO(74)
 # endif
-# if BOOST_PP_LOCAL_R(73)
-    BOOST_PP_LOCAL_MACRO(73)
+# if NDNBOOST_PP_LOCAL_R(73)
+    NDNBOOST_PP_LOCAL_MACRO(73)
 # endif
-# if BOOST_PP_LOCAL_R(72)
-    BOOST_PP_LOCAL_MACRO(72)
+# if NDNBOOST_PP_LOCAL_R(72)
+    NDNBOOST_PP_LOCAL_MACRO(72)
 # endif
-# if BOOST_PP_LOCAL_R(71)
-    BOOST_PP_LOCAL_MACRO(71)
+# if NDNBOOST_PP_LOCAL_R(71)
+    NDNBOOST_PP_LOCAL_MACRO(71)
 # endif
-# if BOOST_PP_LOCAL_R(70)
-    BOOST_PP_LOCAL_MACRO(70)
+# if NDNBOOST_PP_LOCAL_R(70)
+    NDNBOOST_PP_LOCAL_MACRO(70)
 # endif
-# if BOOST_PP_LOCAL_R(69)
-    BOOST_PP_LOCAL_MACRO(69)
+# if NDNBOOST_PP_LOCAL_R(69)
+    NDNBOOST_PP_LOCAL_MACRO(69)
 # endif
-# if BOOST_PP_LOCAL_R(68)
-    BOOST_PP_LOCAL_MACRO(68)
+# if NDNBOOST_PP_LOCAL_R(68)
+    NDNBOOST_PP_LOCAL_MACRO(68)
 # endif
-# if BOOST_PP_LOCAL_R(67)
-    BOOST_PP_LOCAL_MACRO(67)
+# if NDNBOOST_PP_LOCAL_R(67)
+    NDNBOOST_PP_LOCAL_MACRO(67)
 # endif
-# if BOOST_PP_LOCAL_R(66)
-    BOOST_PP_LOCAL_MACRO(66)
+# if NDNBOOST_PP_LOCAL_R(66)
+    NDNBOOST_PP_LOCAL_MACRO(66)
 # endif
-# if BOOST_PP_LOCAL_R(65)
-    BOOST_PP_LOCAL_MACRO(65)
+# if NDNBOOST_PP_LOCAL_R(65)
+    NDNBOOST_PP_LOCAL_MACRO(65)
 # endif
-# if BOOST_PP_LOCAL_R(64)
-    BOOST_PP_LOCAL_MACRO(64)
+# if NDNBOOST_PP_LOCAL_R(64)
+    NDNBOOST_PP_LOCAL_MACRO(64)
 # endif
-# if BOOST_PP_LOCAL_R(63)
-    BOOST_PP_LOCAL_MACRO(63)
+# if NDNBOOST_PP_LOCAL_R(63)
+    NDNBOOST_PP_LOCAL_MACRO(63)
 # endif
-# if BOOST_PP_LOCAL_R(62)
-    BOOST_PP_LOCAL_MACRO(62)
+# if NDNBOOST_PP_LOCAL_R(62)
+    NDNBOOST_PP_LOCAL_MACRO(62)
 # endif
-# if BOOST_PP_LOCAL_R(61)
-    BOOST_PP_LOCAL_MACRO(61)
+# if NDNBOOST_PP_LOCAL_R(61)
+    NDNBOOST_PP_LOCAL_MACRO(61)
 # endif
-# if BOOST_PP_LOCAL_R(60)
-    BOOST_PP_LOCAL_MACRO(60)
+# if NDNBOOST_PP_LOCAL_R(60)
+    NDNBOOST_PP_LOCAL_MACRO(60)
 # endif
-# if BOOST_PP_LOCAL_R(59)
-    BOOST_PP_LOCAL_MACRO(59)
+# if NDNBOOST_PP_LOCAL_R(59)
+    NDNBOOST_PP_LOCAL_MACRO(59)
 # endif
-# if BOOST_PP_LOCAL_R(58)
-    BOOST_PP_LOCAL_MACRO(58)
+# if NDNBOOST_PP_LOCAL_R(58)
+    NDNBOOST_PP_LOCAL_MACRO(58)
 # endif
-# if BOOST_PP_LOCAL_R(57)
-    BOOST_PP_LOCAL_MACRO(57)
+# if NDNBOOST_PP_LOCAL_R(57)
+    NDNBOOST_PP_LOCAL_MACRO(57)
 # endif
-# if BOOST_PP_LOCAL_R(56)
-    BOOST_PP_LOCAL_MACRO(56)
+# if NDNBOOST_PP_LOCAL_R(56)
+    NDNBOOST_PP_LOCAL_MACRO(56)
 # endif
-# if BOOST_PP_LOCAL_R(55)
-    BOOST_PP_LOCAL_MACRO(55)
+# if NDNBOOST_PP_LOCAL_R(55)
+    NDNBOOST_PP_LOCAL_MACRO(55)
 # endif
-# if BOOST_PP_LOCAL_R(54)
-    BOOST_PP_LOCAL_MACRO(54)
+# if NDNBOOST_PP_LOCAL_R(54)
+    NDNBOOST_PP_LOCAL_MACRO(54)
 # endif
-# if BOOST_PP_LOCAL_R(53)
-    BOOST_PP_LOCAL_MACRO(53)
+# if NDNBOOST_PP_LOCAL_R(53)
+    NDNBOOST_PP_LOCAL_MACRO(53)
 # endif
-# if BOOST_PP_LOCAL_R(52)
-    BOOST_PP_LOCAL_MACRO(52)
+# if NDNBOOST_PP_LOCAL_R(52)
+    NDNBOOST_PP_LOCAL_MACRO(52)
 # endif
-# if BOOST_PP_LOCAL_R(51)
-    BOOST_PP_LOCAL_MACRO(51)
+# if NDNBOOST_PP_LOCAL_R(51)
+    NDNBOOST_PP_LOCAL_MACRO(51)
 # endif
-# if BOOST_PP_LOCAL_R(50)
-    BOOST_PP_LOCAL_MACRO(50)
+# if NDNBOOST_PP_LOCAL_R(50)
+    NDNBOOST_PP_LOCAL_MACRO(50)
 # endif
-# if BOOST_PP_LOCAL_R(49)
-    BOOST_PP_LOCAL_MACRO(49)
+# if NDNBOOST_PP_LOCAL_R(49)
+    NDNBOOST_PP_LOCAL_MACRO(49)
 # endif
-# if BOOST_PP_LOCAL_R(48)
-    BOOST_PP_LOCAL_MACRO(48)
+# if NDNBOOST_PP_LOCAL_R(48)
+    NDNBOOST_PP_LOCAL_MACRO(48)
 # endif
-# if BOOST_PP_LOCAL_R(47)
-    BOOST_PP_LOCAL_MACRO(47)
+# if NDNBOOST_PP_LOCAL_R(47)
+    NDNBOOST_PP_LOCAL_MACRO(47)
 # endif
-# if BOOST_PP_LOCAL_R(46)
-    BOOST_PP_LOCAL_MACRO(46)
+# if NDNBOOST_PP_LOCAL_R(46)
+    NDNBOOST_PP_LOCAL_MACRO(46)
 # endif
-# if BOOST_PP_LOCAL_R(45)
-    BOOST_PP_LOCAL_MACRO(45)
+# if NDNBOOST_PP_LOCAL_R(45)
+    NDNBOOST_PP_LOCAL_MACRO(45)
 # endif
-# if BOOST_PP_LOCAL_R(44)
-    BOOST_PP_LOCAL_MACRO(44)
+# if NDNBOOST_PP_LOCAL_R(44)
+    NDNBOOST_PP_LOCAL_MACRO(44)
 # endif
-# if BOOST_PP_LOCAL_R(43)
-    BOOST_PP_LOCAL_MACRO(43)
+# if NDNBOOST_PP_LOCAL_R(43)
+    NDNBOOST_PP_LOCAL_MACRO(43)
 # endif
-# if BOOST_PP_LOCAL_R(42)
-    BOOST_PP_LOCAL_MACRO(42)
+# if NDNBOOST_PP_LOCAL_R(42)
+    NDNBOOST_PP_LOCAL_MACRO(42)
 # endif
-# if BOOST_PP_LOCAL_R(41)
-    BOOST_PP_LOCAL_MACRO(41)
+# if NDNBOOST_PP_LOCAL_R(41)
+    NDNBOOST_PP_LOCAL_MACRO(41)
 # endif
-# if BOOST_PP_LOCAL_R(40)
-    BOOST_PP_LOCAL_MACRO(40)
+# if NDNBOOST_PP_LOCAL_R(40)
+    NDNBOOST_PP_LOCAL_MACRO(40)
 # endif
-# if BOOST_PP_LOCAL_R(39)
-    BOOST_PP_LOCAL_MACRO(39)
+# if NDNBOOST_PP_LOCAL_R(39)
+    NDNBOOST_PP_LOCAL_MACRO(39)
 # endif
-# if BOOST_PP_LOCAL_R(38)
-    BOOST_PP_LOCAL_MACRO(38)
+# if NDNBOOST_PP_LOCAL_R(38)
+    NDNBOOST_PP_LOCAL_MACRO(38)
 # endif
-# if BOOST_PP_LOCAL_R(37)
-    BOOST_PP_LOCAL_MACRO(37)
+# if NDNBOOST_PP_LOCAL_R(37)
+    NDNBOOST_PP_LOCAL_MACRO(37)
 # endif
-# if BOOST_PP_LOCAL_R(36)
-    BOOST_PP_LOCAL_MACRO(36)
+# if NDNBOOST_PP_LOCAL_R(36)
+    NDNBOOST_PP_LOCAL_MACRO(36)
 # endif
-# if BOOST_PP_LOCAL_R(35)
-    BOOST_PP_LOCAL_MACRO(35)
+# if NDNBOOST_PP_LOCAL_R(35)
+    NDNBOOST_PP_LOCAL_MACRO(35)
 # endif
-# if BOOST_PP_LOCAL_R(34)
-    BOOST_PP_LOCAL_MACRO(34)
+# if NDNBOOST_PP_LOCAL_R(34)
+    NDNBOOST_PP_LOCAL_MACRO(34)
 # endif
-# if BOOST_PP_LOCAL_R(33)
-    BOOST_PP_LOCAL_MACRO(33)
+# if NDNBOOST_PP_LOCAL_R(33)
+    NDNBOOST_PP_LOCAL_MACRO(33)
 # endif
-# if BOOST_PP_LOCAL_R(32)
-    BOOST_PP_LOCAL_MACRO(32)
+# if NDNBOOST_PP_LOCAL_R(32)
+    NDNBOOST_PP_LOCAL_MACRO(32)
 # endif
-# if BOOST_PP_LOCAL_R(31)
-    BOOST_PP_LOCAL_MACRO(31)
+# if NDNBOOST_PP_LOCAL_R(31)
+    NDNBOOST_PP_LOCAL_MACRO(31)
 # endif
-# if BOOST_PP_LOCAL_R(30)
-    BOOST_PP_LOCAL_MACRO(30)
+# if NDNBOOST_PP_LOCAL_R(30)
+    NDNBOOST_PP_LOCAL_MACRO(30)
 # endif
-# if BOOST_PP_LOCAL_R(29)
-    BOOST_PP_LOCAL_MACRO(29)
+# if NDNBOOST_PP_LOCAL_R(29)
+    NDNBOOST_PP_LOCAL_MACRO(29)
 # endif
-# if BOOST_PP_LOCAL_R(28)
-    BOOST_PP_LOCAL_MACRO(28)
+# if NDNBOOST_PP_LOCAL_R(28)
+    NDNBOOST_PP_LOCAL_MACRO(28)
 # endif
-# if BOOST_PP_LOCAL_R(27)
-    BOOST_PP_LOCAL_MACRO(27)
+# if NDNBOOST_PP_LOCAL_R(27)
+    NDNBOOST_PP_LOCAL_MACRO(27)
 # endif
-# if BOOST_PP_LOCAL_R(26)
-    BOOST_PP_LOCAL_MACRO(26)
+# if NDNBOOST_PP_LOCAL_R(26)
+    NDNBOOST_PP_LOCAL_MACRO(26)
 # endif
-# if BOOST_PP_LOCAL_R(25)
-    BOOST_PP_LOCAL_MACRO(25)
+# if NDNBOOST_PP_LOCAL_R(25)
+    NDNBOOST_PP_LOCAL_MACRO(25)
 # endif
-# if BOOST_PP_LOCAL_R(24)
-    BOOST_PP_LOCAL_MACRO(24)
+# if NDNBOOST_PP_LOCAL_R(24)
+    NDNBOOST_PP_LOCAL_MACRO(24)
 # endif
-# if BOOST_PP_LOCAL_R(23)
-    BOOST_PP_LOCAL_MACRO(23)
+# if NDNBOOST_PP_LOCAL_R(23)
+    NDNBOOST_PP_LOCAL_MACRO(23)
 # endif
-# if BOOST_PP_LOCAL_R(22)
-    BOOST_PP_LOCAL_MACRO(22)
+# if NDNBOOST_PP_LOCAL_R(22)
+    NDNBOOST_PP_LOCAL_MACRO(22)
 # endif
-# if BOOST_PP_LOCAL_R(21)
-    BOOST_PP_LOCAL_MACRO(21)
+# if NDNBOOST_PP_LOCAL_R(21)
+    NDNBOOST_PP_LOCAL_MACRO(21)
 # endif
-# if BOOST_PP_LOCAL_R(20)
-    BOOST_PP_LOCAL_MACRO(20)
+# if NDNBOOST_PP_LOCAL_R(20)
+    NDNBOOST_PP_LOCAL_MACRO(20)
 # endif
-# if BOOST_PP_LOCAL_R(19)
-    BOOST_PP_LOCAL_MACRO(19)
+# if NDNBOOST_PP_LOCAL_R(19)
+    NDNBOOST_PP_LOCAL_MACRO(19)
 # endif
-# if BOOST_PP_LOCAL_R(18)
-    BOOST_PP_LOCAL_MACRO(18)
+# if NDNBOOST_PP_LOCAL_R(18)
+    NDNBOOST_PP_LOCAL_MACRO(18)
 # endif
-# if BOOST_PP_LOCAL_R(17)
-    BOOST_PP_LOCAL_MACRO(17)
+# if NDNBOOST_PP_LOCAL_R(17)
+    NDNBOOST_PP_LOCAL_MACRO(17)
 # endif
-# if BOOST_PP_LOCAL_R(16)
-    BOOST_PP_LOCAL_MACRO(16)
+# if NDNBOOST_PP_LOCAL_R(16)
+    NDNBOOST_PP_LOCAL_MACRO(16)
 # endif
-# if BOOST_PP_LOCAL_R(15)
-    BOOST_PP_LOCAL_MACRO(15)
+# if NDNBOOST_PP_LOCAL_R(15)
+    NDNBOOST_PP_LOCAL_MACRO(15)
 # endif
-# if BOOST_PP_LOCAL_R(14)
-    BOOST_PP_LOCAL_MACRO(14)
+# if NDNBOOST_PP_LOCAL_R(14)
+    NDNBOOST_PP_LOCAL_MACRO(14)
 # endif
-# if BOOST_PP_LOCAL_R(13)
-    BOOST_PP_LOCAL_MACRO(13)
+# if NDNBOOST_PP_LOCAL_R(13)
+    NDNBOOST_PP_LOCAL_MACRO(13)
 # endif
-# if BOOST_PP_LOCAL_R(12)
-    BOOST_PP_LOCAL_MACRO(12)
+# if NDNBOOST_PP_LOCAL_R(12)
+    NDNBOOST_PP_LOCAL_MACRO(12)
 # endif
-# if BOOST_PP_LOCAL_R(11)
-    BOOST_PP_LOCAL_MACRO(11)
+# if NDNBOOST_PP_LOCAL_R(11)
+    NDNBOOST_PP_LOCAL_MACRO(11)
 # endif
-# if BOOST_PP_LOCAL_R(10)
-    BOOST_PP_LOCAL_MACRO(10)
+# if NDNBOOST_PP_LOCAL_R(10)
+    NDNBOOST_PP_LOCAL_MACRO(10)
 # endif
-# if BOOST_PP_LOCAL_R(9)
-    BOOST_PP_LOCAL_MACRO(9)
+# if NDNBOOST_PP_LOCAL_R(9)
+    NDNBOOST_PP_LOCAL_MACRO(9)
 # endif
-# if BOOST_PP_LOCAL_R(8)
-    BOOST_PP_LOCAL_MACRO(8)
+# if NDNBOOST_PP_LOCAL_R(8)
+    NDNBOOST_PP_LOCAL_MACRO(8)
 # endif
-# if BOOST_PP_LOCAL_R(7)
-    BOOST_PP_LOCAL_MACRO(7)
+# if NDNBOOST_PP_LOCAL_R(7)
+    NDNBOOST_PP_LOCAL_MACRO(7)
 # endif
-# if BOOST_PP_LOCAL_R(6)
-    BOOST_PP_LOCAL_MACRO(6)
+# if NDNBOOST_PP_LOCAL_R(6)
+    NDNBOOST_PP_LOCAL_MACRO(6)
 # endif
-# if BOOST_PP_LOCAL_R(5)
-    BOOST_PP_LOCAL_MACRO(5)
+# if NDNBOOST_PP_LOCAL_R(5)
+    NDNBOOST_PP_LOCAL_MACRO(5)
 # endif
-# if BOOST_PP_LOCAL_R(4)
-    BOOST_PP_LOCAL_MACRO(4)
+# if NDNBOOST_PP_LOCAL_R(4)
+    NDNBOOST_PP_LOCAL_MACRO(4)
 # endif
-# if BOOST_PP_LOCAL_R(3)
-    BOOST_PP_LOCAL_MACRO(3)
+# if NDNBOOST_PP_LOCAL_R(3)
+    NDNBOOST_PP_LOCAL_MACRO(3)
 # endif
-# if BOOST_PP_LOCAL_R(2)
-    BOOST_PP_LOCAL_MACRO(2)
+# if NDNBOOST_PP_LOCAL_R(2)
+    NDNBOOST_PP_LOCAL_MACRO(2)
 # endif
-# if BOOST_PP_LOCAL_R(1)
-    BOOST_PP_LOCAL_MACRO(1)
+# if NDNBOOST_PP_LOCAL_R(1)
+    NDNBOOST_PP_LOCAL_MACRO(1)
 # endif
-# if BOOST_PP_LOCAL_R(0)
-    BOOST_PP_LOCAL_MACRO(0)
+# if NDNBOOST_PP_LOCAL_R(0)
+    NDNBOOST_PP_LOCAL_MACRO(0)
 # endif
diff --git a/include/ndnboost/preprocessor/iteration/detail/self.hpp b/include/ndnboost/preprocessor/iteration/detail/self.hpp
index 757185c..e840c99 100644
--- a/include/ndnboost/preprocessor/iteration/detail/self.hpp
+++ b/include/ndnboost/preprocessor/iteration/detail/self.hpp
@@ -9,13 +9,13 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# if !defined(BOOST_PP_INDIRECT_SELF)
-#    error BOOST_PP_ERROR:  no indirect file to include
+# if !defined(NDNBOOST_PP_INDIRECT_SELF)
+#    error NDNBOOST_PP_ERROR:  no indirect file to include
 # endif
 #
-# define BOOST_PP_IS_SELFISH 1
+# define NDNBOOST_PP_IS_SELFISH 1
 #
-# include BOOST_PP_INDIRECT_SELF
+# include NDNBOOST_PP_INDIRECT_SELF
 #
-# undef BOOST_PP_IS_SELFISH
-# undef BOOST_PP_INDIRECT_SELF
+# undef NDNBOOST_PP_IS_SELFISH
+# undef NDNBOOST_PP_INDIRECT_SELF
diff --git a/include/ndnboost/preprocessor/iteration/detail/start.hpp b/include/ndnboost/preprocessor/iteration/detail/start.hpp
index 31f9cf9..1faf032 100644
--- a/include/ndnboost/preprocessor/iteration/detail/start.hpp
+++ b/include/ndnboost/preprocessor/iteration/detail/start.hpp
@@ -11,89 +11,89 @@
 #
 # include <ndnboost/preprocessor/slot/detail/shared.hpp>
 #
-# undef BOOST_PP_LOCAL_SE
+# undef NDNBOOST_PP_LOCAL_SE
 #
-# undef BOOST_PP_LOCAL_SE_DIGIT_1
-# undef BOOST_PP_LOCAL_SE_DIGIT_2
-# undef BOOST_PP_LOCAL_SE_DIGIT_3
-# undef BOOST_PP_LOCAL_SE_DIGIT_4
-# undef BOOST_PP_LOCAL_SE_DIGIT_5
-# undef BOOST_PP_LOCAL_SE_DIGIT_6
-# undef BOOST_PP_LOCAL_SE_DIGIT_7
-# undef BOOST_PP_LOCAL_SE_DIGIT_8
-# undef BOOST_PP_LOCAL_SE_DIGIT_9
-# undef BOOST_PP_LOCAL_SE_DIGIT_10
+# undef NDNBOOST_PP_LOCAL_SE_DIGIT_1
+# undef NDNBOOST_PP_LOCAL_SE_DIGIT_2
+# undef NDNBOOST_PP_LOCAL_SE_DIGIT_3
+# undef NDNBOOST_PP_LOCAL_SE_DIGIT_4
+# undef NDNBOOST_PP_LOCAL_SE_DIGIT_5
+# undef NDNBOOST_PP_LOCAL_SE_DIGIT_6
+# undef NDNBOOST_PP_LOCAL_SE_DIGIT_7
+# undef NDNBOOST_PP_LOCAL_SE_DIGIT_8
+# undef NDNBOOST_PP_LOCAL_SE_DIGIT_9
+# undef NDNBOOST_PP_LOCAL_SE_DIGIT_10
 #
-# if BOOST_PP_SLOT_TEMP_3 == 0
-#    define BOOST_PP_LOCAL_SE_DIGIT_3 0
-# elif BOOST_PP_SLOT_TEMP_3 == 1
-#    define BOOST_PP_LOCAL_SE_DIGIT_3 1
-# elif BOOST_PP_SLOT_TEMP_3 == 2
-#    define BOOST_PP_LOCAL_SE_DIGIT_3 2
-# elif BOOST_PP_SLOT_TEMP_3 == 3
-#    define BOOST_PP_LOCAL_SE_DIGIT_3 3
-# elif BOOST_PP_SLOT_TEMP_3 == 4
-#    define BOOST_PP_LOCAL_SE_DIGIT_3 4
-# elif BOOST_PP_SLOT_TEMP_3 == 5
-#    define BOOST_PP_LOCAL_SE_DIGIT_3 5
-# elif BOOST_PP_SLOT_TEMP_3 == 6
-#    define BOOST_PP_LOCAL_SE_DIGIT_3 6
-# elif BOOST_PP_SLOT_TEMP_3 == 7
-#    define BOOST_PP_LOCAL_SE_DIGIT_3 7
-# elif BOOST_PP_SLOT_TEMP_3 == 8
-#    define BOOST_PP_LOCAL_SE_DIGIT_3 8
-# elif BOOST_PP_SLOT_TEMP_3 == 9
-#    define BOOST_PP_LOCAL_SE_DIGIT_3 9
+# if NDNBOOST_PP_SLOT_TEMP_3 == 0
+#    define NDNBOOST_PP_LOCAL_SE_DIGIT_3 0
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 1
+#    define NDNBOOST_PP_LOCAL_SE_DIGIT_3 1
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 2
+#    define NDNBOOST_PP_LOCAL_SE_DIGIT_3 2
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 3
+#    define NDNBOOST_PP_LOCAL_SE_DIGIT_3 3
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 4
+#    define NDNBOOST_PP_LOCAL_SE_DIGIT_3 4
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 5
+#    define NDNBOOST_PP_LOCAL_SE_DIGIT_3 5
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 6
+#    define NDNBOOST_PP_LOCAL_SE_DIGIT_3 6
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 7
+#    define NDNBOOST_PP_LOCAL_SE_DIGIT_3 7
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 8
+#    define NDNBOOST_PP_LOCAL_SE_DIGIT_3 8
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 9
+#    define NDNBOOST_PP_LOCAL_SE_DIGIT_3 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_2 == 0
-#    define BOOST_PP_LOCAL_SE_DIGIT_2 0
-# elif BOOST_PP_SLOT_TEMP_2 == 1
-#    define BOOST_PP_LOCAL_SE_DIGIT_2 1
-# elif BOOST_PP_SLOT_TEMP_2 == 2
-#    define BOOST_PP_LOCAL_SE_DIGIT_2 2
-# elif BOOST_PP_SLOT_TEMP_2 == 3
-#    define BOOST_PP_LOCAL_SE_DIGIT_2 3
-# elif BOOST_PP_SLOT_TEMP_2 == 4
-#    define BOOST_PP_LOCAL_SE_DIGIT_2 4
-# elif BOOST_PP_SLOT_TEMP_2 == 5
-#    define BOOST_PP_LOCAL_SE_DIGIT_2 5
-# elif BOOST_PP_SLOT_TEMP_2 == 6
-#    define BOOST_PP_LOCAL_SE_DIGIT_2 6
-# elif BOOST_PP_SLOT_TEMP_2 == 7
-#    define BOOST_PP_LOCAL_SE_DIGIT_2 7
-# elif BOOST_PP_SLOT_TEMP_2 == 8
-#    define BOOST_PP_LOCAL_SE_DIGIT_2 8
-# elif BOOST_PP_SLOT_TEMP_2 == 9
-#    define BOOST_PP_LOCAL_SE_DIGIT_2 9
+# if NDNBOOST_PP_SLOT_TEMP_2 == 0
+#    define NDNBOOST_PP_LOCAL_SE_DIGIT_2 0
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 1
+#    define NDNBOOST_PP_LOCAL_SE_DIGIT_2 1
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 2
+#    define NDNBOOST_PP_LOCAL_SE_DIGIT_2 2
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 3
+#    define NDNBOOST_PP_LOCAL_SE_DIGIT_2 3
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 4
+#    define NDNBOOST_PP_LOCAL_SE_DIGIT_2 4
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 5
+#    define NDNBOOST_PP_LOCAL_SE_DIGIT_2 5
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 6
+#    define NDNBOOST_PP_LOCAL_SE_DIGIT_2 6
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 7
+#    define NDNBOOST_PP_LOCAL_SE_DIGIT_2 7
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 8
+#    define NDNBOOST_PP_LOCAL_SE_DIGIT_2 8
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 9
+#    define NDNBOOST_PP_LOCAL_SE_DIGIT_2 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_1 == 0
-#    define BOOST_PP_LOCAL_SE_DIGIT_1 0
-# elif BOOST_PP_SLOT_TEMP_1 == 1
-#    define BOOST_PP_LOCAL_SE_DIGIT_1 1
-# elif BOOST_PP_SLOT_TEMP_1 == 2
-#    define BOOST_PP_LOCAL_SE_DIGIT_1 2
-# elif BOOST_PP_SLOT_TEMP_1 == 3
-#    define BOOST_PP_LOCAL_SE_DIGIT_1 3
-# elif BOOST_PP_SLOT_TEMP_1 == 4
-#    define BOOST_PP_LOCAL_SE_DIGIT_1 4
-# elif BOOST_PP_SLOT_TEMP_1 == 5
-#    define BOOST_PP_LOCAL_SE_DIGIT_1 5
-# elif BOOST_PP_SLOT_TEMP_1 == 6
-#    define BOOST_PP_LOCAL_SE_DIGIT_1 6
-# elif BOOST_PP_SLOT_TEMP_1 == 7
-#    define BOOST_PP_LOCAL_SE_DIGIT_1 7
-# elif BOOST_PP_SLOT_TEMP_1 == 8
-#    define BOOST_PP_LOCAL_SE_DIGIT_1 8
-# elif BOOST_PP_SLOT_TEMP_1 == 9
-#    define BOOST_PP_LOCAL_SE_DIGIT_1 9
+# if NDNBOOST_PP_SLOT_TEMP_1 == 0
+#    define NDNBOOST_PP_LOCAL_SE_DIGIT_1 0
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 1
+#    define NDNBOOST_PP_LOCAL_SE_DIGIT_1 1
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 2
+#    define NDNBOOST_PP_LOCAL_SE_DIGIT_1 2
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 3
+#    define NDNBOOST_PP_LOCAL_SE_DIGIT_1 3
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 4
+#    define NDNBOOST_PP_LOCAL_SE_DIGIT_1 4
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 5
+#    define NDNBOOST_PP_LOCAL_SE_DIGIT_1 5
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 6
+#    define NDNBOOST_PP_LOCAL_SE_DIGIT_1 6
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 7
+#    define NDNBOOST_PP_LOCAL_SE_DIGIT_1 7
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 8
+#    define NDNBOOST_PP_LOCAL_SE_DIGIT_1 8
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 9
+#    define NDNBOOST_PP_LOCAL_SE_DIGIT_1 9
 # endif
 #
-# if BOOST_PP_LOCAL_SE_DIGIT_3
-#    define BOOST_PP_LOCAL_SE() BOOST_PP_SLOT_CC_3(BOOST_PP_LOCAL_SE_DIGIT_3, BOOST_PP_LOCAL_SE_DIGIT_2, BOOST_PP_LOCAL_SE_DIGIT_1)
-# elif BOOST_PP_LOCAL_SE_DIGIT_2
-#    define BOOST_PP_LOCAL_SE() BOOST_PP_SLOT_CC_2(BOOST_PP_LOCAL_SE_DIGIT_2, BOOST_PP_LOCAL_SE_DIGIT_1)
+# if NDNBOOST_PP_LOCAL_SE_DIGIT_3
+#    define NDNBOOST_PP_LOCAL_SE() NDNBOOST_PP_SLOT_CC_3(NDNBOOST_PP_LOCAL_SE_DIGIT_3, NDNBOOST_PP_LOCAL_SE_DIGIT_2, NDNBOOST_PP_LOCAL_SE_DIGIT_1)
+# elif NDNBOOST_PP_LOCAL_SE_DIGIT_2
+#    define NDNBOOST_PP_LOCAL_SE() NDNBOOST_PP_SLOT_CC_2(NDNBOOST_PP_LOCAL_SE_DIGIT_2, NDNBOOST_PP_LOCAL_SE_DIGIT_1)
 # else
-#    define BOOST_PP_LOCAL_SE() BOOST_PP_LOCAL_SE_DIGIT_1
+#    define NDNBOOST_PP_LOCAL_SE() NDNBOOST_PP_LOCAL_SE_DIGIT_1
 # endif
diff --git a/include/ndnboost/preprocessor/iteration/iterate.hpp b/include/ndnboost/preprocessor/iteration/iterate.hpp
index 8a11939..06e1941 100644
--- a/include/ndnboost/preprocessor/iteration/iterate.hpp
+++ b/include/ndnboost/preprocessor/iteration/iterate.hpp
@@ -9,8 +9,8 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_ITERATION_ITERATE_HPP
-# define BOOST_PREPROCESSOR_ITERATION_ITERATE_HPP
+# ifndef NDNBOOST_PREPROCESSOR_ITERATION_ITERATE_HPP
+# define NDNBOOST_PREPROCESSOR_ITERATION_ITERATE_HPP
 #
 # include <ndnboost/preprocessor/arithmetic/dec.hpp>
 # include <ndnboost/preprocessor/arithmetic/inc.hpp>
@@ -20,63 +20,63 @@
 # include <ndnboost/preprocessor/slot/slot.hpp>
 # include <ndnboost/preprocessor/tuple/elem.hpp>
 #
-# /* BOOST_PP_ITERATION_DEPTH */
+# /* NDNBOOST_PP_ITERATION_DEPTH */
 #
-# define BOOST_PP_ITERATION_DEPTH() 0
+# define NDNBOOST_PP_ITERATION_DEPTH() 0
 #
-# /* BOOST_PP_ITERATION */
+# /* NDNBOOST_PP_ITERATION */
 #
-# define BOOST_PP_ITERATION() BOOST_PP_CAT(BOOST_PP_ITERATION_, BOOST_PP_ITERATION_DEPTH())
+# define NDNBOOST_PP_ITERATION() NDNBOOST_PP_CAT(NDNBOOST_PP_ITERATION_, NDNBOOST_PP_ITERATION_DEPTH())
 #
-# /* BOOST_PP_ITERATION_START && BOOST_PP_ITERATION_FINISH */
+# /* NDNBOOST_PP_ITERATION_START && NDNBOOST_PP_ITERATION_FINISH */
 #
-# define BOOST_PP_ITERATION_START() BOOST_PP_CAT(BOOST_PP_ITERATION_START_, BOOST_PP_ITERATION_DEPTH())
-# define BOOST_PP_ITERATION_FINISH() BOOST_PP_CAT(BOOST_PP_ITERATION_FINISH_, BOOST_PP_ITERATION_DEPTH())
+# define NDNBOOST_PP_ITERATION_START() NDNBOOST_PP_CAT(NDNBOOST_PP_ITERATION_START_, NDNBOOST_PP_ITERATION_DEPTH())
+# define NDNBOOST_PP_ITERATION_FINISH() NDNBOOST_PP_CAT(NDNBOOST_PP_ITERATION_FINISH_, NDNBOOST_PP_ITERATION_DEPTH())
 #
-# /* BOOST_PP_ITERATION_FLAGS */
+# /* NDNBOOST_PP_ITERATION_FLAGS */
 #
-# define BOOST_PP_ITERATION_FLAGS() (BOOST_PP_CAT(BOOST_PP_ITERATION_FLAGS_, BOOST_PP_ITERATION_DEPTH())())
+# define NDNBOOST_PP_ITERATION_FLAGS() (NDNBOOST_PP_CAT(NDNBOOST_PP_ITERATION_FLAGS_, NDNBOOST_PP_ITERATION_DEPTH())())
 #
-# /* BOOST_PP_FRAME_ITERATION */
+# /* NDNBOOST_PP_FRAME_ITERATION */
 #
-# define BOOST_PP_FRAME_ITERATION(i) BOOST_PP_CAT(BOOST_PP_ITERATION_, i)
+# define NDNBOOST_PP_FRAME_ITERATION(i) NDNBOOST_PP_CAT(NDNBOOST_PP_ITERATION_, i)
 #
-# /* BOOST_PP_FRAME_START && BOOST_PP_FRAME_FINISH */
+# /* NDNBOOST_PP_FRAME_START && NDNBOOST_PP_FRAME_FINISH */
 #
-# define BOOST_PP_FRAME_START(i) BOOST_PP_CAT(BOOST_PP_ITERATION_START_, i)
-# define BOOST_PP_FRAME_FINISH(i) BOOST_PP_CAT(BOOST_PP_ITERATION_FINISH_, i)
+# define NDNBOOST_PP_FRAME_START(i) NDNBOOST_PP_CAT(NDNBOOST_PP_ITERATION_START_, i)
+# define NDNBOOST_PP_FRAME_FINISH(i) NDNBOOST_PP_CAT(NDNBOOST_PP_ITERATION_FINISH_, i)
 #
-# /* BOOST_PP_FRAME_FLAGS */
+# /* NDNBOOST_PP_FRAME_FLAGS */
 #
-# define BOOST_PP_FRAME_FLAGS(i) (BOOST_PP_CAT(BOOST_PP_ITERATION_FLAGS_, i)())
+# define NDNBOOST_PP_FRAME_FLAGS(i) (NDNBOOST_PP_CAT(NDNBOOST_PP_ITERATION_FLAGS_, i)())
 #
-# /* BOOST_PP_RELATIVE_ITERATION */
+# /* NDNBOOST_PP_RELATIVE_ITERATION */
 #
-# define BOOST_PP_RELATIVE_ITERATION(i) BOOST_PP_CAT(BOOST_PP_RELATIVE_, i)(BOOST_PP_ITERATION_)
+# define NDNBOOST_PP_RELATIVE_ITERATION(i) NDNBOOST_PP_CAT(NDNBOOST_PP_RELATIVE_, i)(NDNBOOST_PP_ITERATION_)
 #
-# define BOOST_PP_RELATIVE_0(m) BOOST_PP_CAT(m, BOOST_PP_ITERATION_DEPTH())
-# define BOOST_PP_RELATIVE_1(m) BOOST_PP_CAT(m, BOOST_PP_DEC(BOOST_PP_ITERATION_DEPTH()))
-# define BOOST_PP_RELATIVE_2(m) BOOST_PP_CAT(m, BOOST_PP_DEC(BOOST_PP_DEC(BOOST_PP_ITERATION_DEPTH())))
-# define BOOST_PP_RELATIVE_3(m) BOOST_PP_CAT(m, BOOST_PP_DEC(BOOST_PP_DEC(BOOST_PP_DEC(BOOST_PP_ITERATION_DEPTH()))))
-# define BOOST_PP_RELATIVE_4(m) BOOST_PP_CAT(m, BOOST_PP_DEC(BOOST_PP_DEC(BOOST_PP_DEC(BOOST_PP_DEC(BOOST_PP_ITERATION_DEPTH())))))
+# define NDNBOOST_PP_RELATIVE_0(m) NDNBOOST_PP_CAT(m, NDNBOOST_PP_ITERATION_DEPTH())
+# define NDNBOOST_PP_RELATIVE_1(m) NDNBOOST_PP_CAT(m, NDNBOOST_PP_DEC(NDNBOOST_PP_ITERATION_DEPTH()))
+# define NDNBOOST_PP_RELATIVE_2(m) NDNBOOST_PP_CAT(m, NDNBOOST_PP_DEC(NDNBOOST_PP_DEC(NDNBOOST_PP_ITERATION_DEPTH())))
+# define NDNBOOST_PP_RELATIVE_3(m) NDNBOOST_PP_CAT(m, NDNBOOST_PP_DEC(NDNBOOST_PP_DEC(NDNBOOST_PP_DEC(NDNBOOST_PP_ITERATION_DEPTH()))))
+# define NDNBOOST_PP_RELATIVE_4(m) NDNBOOST_PP_CAT(m, NDNBOOST_PP_DEC(NDNBOOST_PP_DEC(NDNBOOST_PP_DEC(NDNBOOST_PP_DEC(NDNBOOST_PP_ITERATION_DEPTH())))))
 #
-# /* BOOST_PP_RELATIVE_START && BOOST_PP_RELATIVE_FINISH */
+# /* NDNBOOST_PP_RELATIVE_START && NDNBOOST_PP_RELATIVE_FINISH */
 #
-# define BOOST_PP_RELATIVE_START(i) BOOST_PP_CAT(BOOST_PP_RELATIVE_, i)(BOOST_PP_ITERATION_START_)
-# define BOOST_PP_RELATIVE_FINISH(i) BOOST_PP_CAT(BOOST_PP_RELATIVE_, i)(BOOST_PP_ITERATION_FINISH_)
+# define NDNBOOST_PP_RELATIVE_START(i) NDNBOOST_PP_CAT(NDNBOOST_PP_RELATIVE_, i)(NDNBOOST_PP_ITERATION_START_)
+# define NDNBOOST_PP_RELATIVE_FINISH(i) NDNBOOST_PP_CAT(NDNBOOST_PP_RELATIVE_, i)(NDNBOOST_PP_ITERATION_FINISH_)
 #
-# /* BOOST_PP_RELATIVE_FLAGS */
+# /* NDNBOOST_PP_RELATIVE_FLAGS */
 #
-# define BOOST_PP_RELATIVE_FLAGS(i) (BOOST_PP_CAT(BOOST_PP_RELATIVE_, i)(BOOST_PP_ITERATION_FLAGS_)())
+# define NDNBOOST_PP_RELATIVE_FLAGS(i) (NDNBOOST_PP_CAT(NDNBOOST_PP_RELATIVE_, i)(NDNBOOST_PP_ITERATION_FLAGS_)())
 #
-# /* BOOST_PP_ITERATE */
+# /* NDNBOOST_PP_ITERATE */
 #
-# define BOOST_PP_ITERATE() BOOST_PP_CAT(BOOST_PP_ITERATE_, BOOST_PP_INC(BOOST_PP_ITERATION_DEPTH()))
+# define NDNBOOST_PP_ITERATE() NDNBOOST_PP_CAT(NDNBOOST_PP_ITERATE_, NDNBOOST_PP_INC(NDNBOOST_PP_ITERATION_DEPTH()))
 #
-# define BOOST_PP_ITERATE_1 <ndnboost/preprocessor/iteration/detail/iter/forward1.hpp>
-# define BOOST_PP_ITERATE_2 <ndnboost/preprocessor/iteration/detail/iter/forward2.hpp>
-# define BOOST_PP_ITERATE_3 <ndnboost/preprocessor/iteration/detail/iter/forward3.hpp>
-# define BOOST_PP_ITERATE_4 <ndnboost/preprocessor/iteration/detail/iter/forward4.hpp>
-# define BOOST_PP_ITERATE_5 <ndnboost/preprocessor/iteration/detail/iter/forward5.hpp>
+# define NDNBOOST_PP_ITERATE_1 <ndnboost/preprocessor/iteration/detail/iter/forward1.hpp>
+# define NDNBOOST_PP_ITERATE_2 <ndnboost/preprocessor/iteration/detail/iter/forward2.hpp>
+# define NDNBOOST_PP_ITERATE_3 <ndnboost/preprocessor/iteration/detail/iter/forward3.hpp>
+# define NDNBOOST_PP_ITERATE_4 <ndnboost/preprocessor/iteration/detail/iter/forward4.hpp>
+# define NDNBOOST_PP_ITERATE_5 <ndnboost/preprocessor/iteration/detail/iter/forward5.hpp>
 #
 # endif
diff --git a/include/ndnboost/preprocessor/iteration/local.hpp b/include/ndnboost/preprocessor/iteration/local.hpp
index 76992b7..8aac8af 100644
--- a/include/ndnboost/preprocessor/iteration/local.hpp
+++ b/include/ndnboost/preprocessor/iteration/local.hpp
@@ -9,18 +9,18 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_ITERATION_LOCAL_HPP
-# define BOOST_PREPROCESSOR_ITERATION_LOCAL_HPP
+# ifndef NDNBOOST_PREPROCESSOR_ITERATION_LOCAL_HPP
+# define NDNBOOST_PREPROCESSOR_ITERATION_LOCAL_HPP
 #
 # include <ndnboost/preprocessor/config/config.hpp>
 # include <ndnboost/preprocessor/slot/slot.hpp>
 # include <ndnboost/preprocessor/tuple/elem.hpp>
 #
-# /* BOOST_PP_LOCAL_ITERATE */
+# /* NDNBOOST_PP_LOCAL_ITERATE */
 #
-# define BOOST_PP_LOCAL_ITERATE() <ndnboost/preprocessor/iteration/detail/local.hpp>
+# define NDNBOOST_PP_LOCAL_ITERATE() <ndnboost/preprocessor/iteration/detail/local.hpp>
 #
-# define BOOST_PP_LOCAL_C(n) (BOOST_PP_LOCAL_S) <= n && (BOOST_PP_LOCAL_F) >= n
-# define BOOST_PP_LOCAL_R(n) (BOOST_PP_LOCAL_F) <= n && (BOOST_PP_LOCAL_S) >= n
+# define NDNBOOST_PP_LOCAL_C(n) (NDNBOOST_PP_LOCAL_S) <= n && (NDNBOOST_PP_LOCAL_F) >= n
+# define NDNBOOST_PP_LOCAL_R(n) (NDNBOOST_PP_LOCAL_F) <= n && (NDNBOOST_PP_LOCAL_S) >= n
 #
 # endif
diff --git a/include/ndnboost/preprocessor/iteration/self.hpp b/include/ndnboost/preprocessor/iteration/self.hpp
index f8c8528..1512f8e 100644
--- a/include/ndnboost/preprocessor/iteration/self.hpp
+++ b/include/ndnboost/preprocessor/iteration/self.hpp
@@ -9,11 +9,11 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_ITERATION_SELF_HPP
-# define BOOST_PREPROCESSOR_ITERATION_SELF_HPP
+# ifndef NDNBOOST_PREPROCESSOR_ITERATION_SELF_HPP
+# define NDNBOOST_PREPROCESSOR_ITERATION_SELF_HPP
 #
-# /* BOOST_PP_INCLUDE_SELF */
+# /* NDNBOOST_PP_INCLUDE_SELF */
 #
-# define BOOST_PP_INCLUDE_SELF() <ndnboost/preprocessor/iteration/detail/self.hpp>
+# define NDNBOOST_PP_INCLUDE_SELF() <ndnboost/preprocessor/iteration/detail/self.hpp>
 #
 # endif
diff --git a/include/ndnboost/preprocessor/list/adt.hpp b/include/ndnboost/preprocessor/list/adt.hpp
index a4e3785..072541c 100644
--- a/include/ndnboost/preprocessor/list/adt.hpp
+++ b/include/ndnboost/preprocessor/list/adt.hpp
@@ -11,63 +11,63 @@
 #
 # /* Revised by Paul Mensonides (2002) */
 #
-# ifndef BOOST_PREPROCESSOR_LIST_ADT_HPP
-# define BOOST_PREPROCESSOR_LIST_ADT_HPP
+# ifndef NDNBOOST_PREPROCESSOR_LIST_ADT_HPP
+# define NDNBOOST_PREPROCESSOR_LIST_ADT_HPP
 #
 # include <ndnboost/preprocessor/config/config.hpp>
 # include <ndnboost/preprocessor/detail/is_binary.hpp>
 # include <ndnboost/preprocessor/logical/compl.hpp>
 # include <ndnboost/preprocessor/tuple/eat.hpp>
 #
-# /* BOOST_PP_LIST_CONS */
+# /* NDNBOOST_PP_LIST_CONS */
 #
-# define BOOST_PP_LIST_CONS(head, tail) (head, tail)
+# define NDNBOOST_PP_LIST_CONS(head, tail) (head, tail)
 #
-# /* BOOST_PP_LIST_NIL */
+# /* NDNBOOST_PP_LIST_NIL */
 #
-# define BOOST_PP_LIST_NIL BOOST_PP_NIL
+# define NDNBOOST_PP_LIST_NIL NDNBOOST_PP_NIL
 #
-# /* BOOST_PP_LIST_FIRST */
+# /* NDNBOOST_PP_LIST_FIRST */
 #
-# define BOOST_PP_LIST_FIRST(list) BOOST_PP_LIST_FIRST_D(list)
+# define NDNBOOST_PP_LIST_FIRST(list) NDNBOOST_PP_LIST_FIRST_D(list)
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_LIST_FIRST_D(list) BOOST_PP_LIST_FIRST_I list
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MWCC()
+#    define NDNBOOST_PP_LIST_FIRST_D(list) NDNBOOST_PP_LIST_FIRST_I list
 # else
-#    define BOOST_PP_LIST_FIRST_D(list) BOOST_PP_LIST_FIRST_I ## list
+#    define NDNBOOST_PP_LIST_FIRST_D(list) NDNBOOST_PP_LIST_FIRST_I ## list
 # endif
 #
-# define BOOST_PP_LIST_FIRST_I(head, tail) head
+# define NDNBOOST_PP_LIST_FIRST_I(head, tail) head
 #
-# /* BOOST_PP_LIST_REST */
+# /* NDNBOOST_PP_LIST_REST */
 #
-# define BOOST_PP_LIST_REST(list) BOOST_PP_LIST_REST_D(list)
+# define NDNBOOST_PP_LIST_REST(list) NDNBOOST_PP_LIST_REST_D(list)
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_LIST_REST_D(list) BOOST_PP_LIST_REST_I list
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MWCC()
+#    define NDNBOOST_PP_LIST_REST_D(list) NDNBOOST_PP_LIST_REST_I list
 # else
-#    define BOOST_PP_LIST_REST_D(list) BOOST_PP_LIST_REST_I ## list
+#    define NDNBOOST_PP_LIST_REST_D(list) NDNBOOST_PP_LIST_REST_I ## list
 # endif
 #
-# define BOOST_PP_LIST_REST_I(head, tail) tail
+# define NDNBOOST_PP_LIST_REST_I(head, tail) tail
 #
-# /* BOOST_PP_LIST_IS_CONS */
+# /* NDNBOOST_PP_LIST_IS_CONS */
 #
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_BCC()
-#    define BOOST_PP_LIST_IS_CONS(list) BOOST_PP_LIST_IS_CONS_D(list)
-#    define BOOST_PP_LIST_IS_CONS_D(list) BOOST_PP_LIST_IS_CONS_ ## list
-#    define BOOST_PP_LIST_IS_CONS_(head, tail) 1
-#    define BOOST_PP_LIST_IS_CONS_BOOST_PP_NIL 0
+# if NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_BCC()
+#    define NDNBOOST_PP_LIST_IS_CONS(list) NDNBOOST_PP_LIST_IS_CONS_D(list)
+#    define NDNBOOST_PP_LIST_IS_CONS_D(list) NDNBOOST_PP_LIST_IS_CONS_ ## list
+#    define NDNBOOST_PP_LIST_IS_CONS_(head, tail) 1
+#    define NDNBOOST_PP_LIST_IS_CONS_NDNBOOST_PP_NIL 0
 # else
-#    define BOOST_PP_LIST_IS_CONS(list) BOOST_PP_IS_BINARY(list)
+#    define NDNBOOST_PP_LIST_IS_CONS(list) NDNBOOST_PP_IS_BINARY(list)
 # endif
 #
-# /* BOOST_PP_LIST_IS_NIL */
+# /* NDNBOOST_PP_LIST_IS_NIL */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_BCC()
-#    define BOOST_PP_LIST_IS_NIL(list) BOOST_PP_COMPL(BOOST_PP_IS_BINARY(list))
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_BCC()
+#    define NDNBOOST_PP_LIST_IS_NIL(list) NDNBOOST_PP_COMPL(NDNBOOST_PP_IS_BINARY(list))
 # else
-#    define BOOST_PP_LIST_IS_NIL(list) BOOST_PP_COMPL(BOOST_PP_LIST_IS_CONS(list))
+#    define NDNBOOST_PP_LIST_IS_NIL(list) NDNBOOST_PP_COMPL(NDNBOOST_PP_LIST_IS_CONS(list))
 # endif
 #
 # endif
diff --git a/include/ndnboost/preprocessor/list/append.hpp b/include/ndnboost/preprocessor/list/append.hpp
index 0f7cb4d..14f018a 100644
--- a/include/ndnboost/preprocessor/list/append.hpp
+++ b/include/ndnboost/preprocessor/list/append.hpp
@@ -11,30 +11,30 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_LIST_APPEND_HPP
-# define BOOST_PREPROCESSOR_LIST_APPEND_HPP
+# ifndef NDNBOOST_PREPROCESSOR_LIST_APPEND_HPP
+# define NDNBOOST_PREPROCESSOR_LIST_APPEND_HPP
 #
 # include <ndnboost/preprocessor/config/config.hpp>
 # include <ndnboost/preprocessor/list/fold_right.hpp>
 #
-# /* BOOST_PP_LIST_APPEND */
+# /* NDNBOOST_PP_LIST_APPEND */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_LIST_APPEND(a, b) BOOST_PP_LIST_FOLD_RIGHT(BOOST_PP_LIST_APPEND_O, b, a)
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_LIST_APPEND(a, b) NDNBOOST_PP_LIST_FOLD_RIGHT(NDNBOOST_PP_LIST_APPEND_O, b, a)
 # else
-#    define BOOST_PP_LIST_APPEND(a, b) BOOST_PP_LIST_APPEND_I(a, b)
-#    define BOOST_PP_LIST_APPEND_I(a, b) BOOST_PP_LIST_FOLD_RIGHT(BOOST_PP_LIST_APPEND_O, b, a)
+#    define NDNBOOST_PP_LIST_APPEND(a, b) NDNBOOST_PP_LIST_APPEND_I(a, b)
+#    define NDNBOOST_PP_LIST_APPEND_I(a, b) NDNBOOST_PP_LIST_FOLD_RIGHT(NDNBOOST_PP_LIST_APPEND_O, b, a)
 # endif
 #
-# define BOOST_PP_LIST_APPEND_O(d, s, x) (x, s)
+# define NDNBOOST_PP_LIST_APPEND_O(d, s, x) (x, s)
 #
-# /* BOOST_PP_LIST_APPEND_D */
+# /* NDNBOOST_PP_LIST_APPEND_D */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_LIST_APPEND_D(d, a, b) BOOST_PP_LIST_FOLD_RIGHT_ ## d(BOOST_PP_LIST_APPEND_O, b, a)
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_LIST_APPEND_D(d, a, b) NDNBOOST_PP_LIST_FOLD_RIGHT_ ## d(NDNBOOST_PP_LIST_APPEND_O, b, a)
 # else
-#    define BOOST_PP_LIST_APPEND_D(d, a, b) BOOST_PP_LIST_APPEND_D_I(d, a, b)
-#    define BOOST_PP_LIST_APPEND_D_I(d, a, b) BOOST_PP_LIST_FOLD_RIGHT_ ## d(BOOST_PP_LIST_APPEND_O, b, a)
+#    define NDNBOOST_PP_LIST_APPEND_D(d, a, b) NDNBOOST_PP_LIST_APPEND_D_I(d, a, b)
+#    define NDNBOOST_PP_LIST_APPEND_D_I(d, a, b) NDNBOOST_PP_LIST_FOLD_RIGHT_ ## d(NDNBOOST_PP_LIST_APPEND_O, b, a)
 # endif
 #
 # endif
diff --git a/include/ndnboost/preprocessor/list/detail/dmc/fold_left.hpp b/include/ndnboost/preprocessor/list/detail/dmc/fold_left.hpp
index 073cc13..34088b2 100644
--- a/include/ndnboost/preprocessor/list/detail/dmc/fold_left.hpp
+++ b/include/ndnboost/preprocessor/list/detail/dmc/fold_left.hpp
@@ -11,269 +11,269 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_LIST_DETAIL_FOLD_LEFT_HPP
-# define BOOST_PREPROCESSOR_LIST_DETAIL_FOLD_LEFT_HPP
+# ifndef NDNBOOST_PREPROCESSOR_LIST_DETAIL_FOLD_LEFT_HPP
+# define NDNBOOST_PREPROCESSOR_LIST_DETAIL_FOLD_LEFT_HPP
 #
 # include <ndnboost/preprocessor/control/expr_iif.hpp>
 # include <ndnboost/preprocessor/control/iif.hpp>
 # include <ndnboost/preprocessor/list/adt.hpp>
 # include <ndnboost/preprocessor/tuple/elem.hpp>
 #
-# define BOOST_PP_LIST_FOLD_LEFT_1(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_2, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(2, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_2(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_3, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(3, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_3(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_4, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(4, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_4(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_5, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(5, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_5(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_6, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(6, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_6(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_7, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(7, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_7(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_8, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(8, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_8(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_9, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(9, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_9(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_10, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(10, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_10(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_11, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(11, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_11(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_12, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(12, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_12(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_13, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(13, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_13(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_14, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(14, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_14(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_15, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(15, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_15(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_16, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(16, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_16(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_17, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(17, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_17(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_18, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(18, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_18(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_19, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(19, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_19(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_20, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(20, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_20(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_21, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(21, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_21(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_22, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(22, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_22(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_23, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(23, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_23(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_24, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(24, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_24(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_25, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(25, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_25(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_26, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(26, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_26(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_27, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(27, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_27(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_28, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(28, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_28(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_29, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(29, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_29(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_30, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(30, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_30(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_31, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(31, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_31(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_32, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(32, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_32(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_33, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(33, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_33(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_34, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(34, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_34(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_35, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(35, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_35(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_36, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(36, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_36(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_37, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(37, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_37(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_38, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(38, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_38(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_39, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(39, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_39(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_40, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(40, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_40(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_41, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(41, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_41(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_42, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(42, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_42(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_43, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(43, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_43(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_44, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(44, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_44(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_45, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(45, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_45(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_46, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(46, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_46(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_47, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(47, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_47(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_48, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(48, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_48(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_49, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(49, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_49(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_50, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(50, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_50(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_51, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(51, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_51(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_52, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(52, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_52(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_53, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(53, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_53(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_54, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(54, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_54(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_55, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(55, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_55(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_56, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(56, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_56(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_57, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(57, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_57(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_58, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(58, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_58(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_59, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(59, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_59(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_60, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(60, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_60(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_61, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(61, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_61(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_62, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(62, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_62(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_63, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(63, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_63(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_64, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(64, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_64(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_65, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(65, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_65(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_66, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(66, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_66(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_67, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(67, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_67(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_68, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(68, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_68(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_69, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(69, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_69(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_70, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(70, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_70(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_71, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(71, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_71(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_72, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(72, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_72(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_73, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(73, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_73(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_74, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(74, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_74(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_75, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(75, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_75(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_76, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(76, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_76(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_77, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(77, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_77(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_78, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(78, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_78(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_79, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(79, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_79(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_80, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(80, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_80(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_81, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(81, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_81(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_82, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(82, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_82(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_83, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(83, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_83(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_84, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(84, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_84(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_85, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(85, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_85(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_86, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(86, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_86(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_87, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(87, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_87(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_88, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(88, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_88(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_89, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(89, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_89(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_90, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(90, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_90(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_91, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(91, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_91(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_92, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(92, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_92(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_93, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(93, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_93(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_94, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(94, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_94(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_95, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(95, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_95(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_96, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(96, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_96(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_97, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(97, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_97(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_98, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(98, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_98(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_99, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(99, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_99(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_100, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(100, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_100(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_101, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(101, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_101(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_102, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(102, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_102(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_103, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(103, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_103(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_104, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(104, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_104(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_105, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(105, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_105(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_106, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(106, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_106(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_107, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(107, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_107(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_108, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(108, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_108(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_109, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(109, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_109(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_110, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(110, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_110(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_111, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(111, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_111(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_112, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(112, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_112(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_113, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(113, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_113(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_114, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(114, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_114(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_115, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(115, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_115(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_116, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(116, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_116(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_117, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(117, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_117(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_118, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(118, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_118(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_119, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(119, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_119(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_120, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(120, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_120(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_121, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(121, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_121(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_122, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(122, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_122(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_123, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(123, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_123(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_124, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(124, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_124(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_125, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(125, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_125(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_126, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(126, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_126(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_127, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(127, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_127(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_128, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(128, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_128(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_129, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(129, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_129(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_130, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(130, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_130(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_131, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(131, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_131(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_132, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(132, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_132(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_133, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(133, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_133(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_134, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(134, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_134(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_135, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(135, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_135(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_136, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(136, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_136(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_137, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(137, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_137(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_138, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(138, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_138(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_139, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(139, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_139(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_140, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(140, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_140(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_141, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(141, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_141(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_142, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(142, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_142(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_143, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(143, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_143(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_144, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(144, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_144(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_145, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(145, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_145(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_146, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(146, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_146(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_147, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(147, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_147(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_148, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(148, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_148(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_149, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(149, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_149(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_150, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(150, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_150(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_151, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(151, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_151(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_152, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(152, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_152(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_153, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(153, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_153(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_154, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(154, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_154(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_155, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(155, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_155(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_156, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(156, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_156(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_157, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(157, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_157(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_158, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(158, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_158(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_159, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(159, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_159(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_160, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(160, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_160(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_161, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(161, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_161(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_162, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(162, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_162(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_163, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(163, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_163(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_164, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(164, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_164(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_165, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(165, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_165(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_166, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(166, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_166(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_167, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(167, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_167(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_168, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(168, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_168(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_169, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(169, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_169(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_170, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(170, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_170(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_171, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(171, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_171(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_172, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(172, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_172(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_173, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(173, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_173(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_174, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(174, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_174(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_175, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(175, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_175(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_176, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(176, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_176(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_177, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(177, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_177(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_178, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(178, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_178(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_179, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(179, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_179(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_180, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(180, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_180(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_181, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(181, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_181(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_182, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(182, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_182(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_183, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(183, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_183(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_184, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(184, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_184(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_185, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(185, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_185(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_186, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(186, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_186(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_187, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(187, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_187(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_188, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(188, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_188(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_189, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(189, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_189(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_190, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(190, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_190(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_191, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(191, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_191(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_192, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(192, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_192(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_193, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(193, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_193(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_194, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(194, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_194(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_195, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(195, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_195(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_196, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(196, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_196(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_197, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(197, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_197(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_198, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(198, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_198(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_199, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(199, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_199(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_200, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(200, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_200(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_201, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(201, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_201(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_202, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(202, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_202(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_203, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(203, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_203(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_204, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(204, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_204(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_205, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(205, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_205(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_206, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(206, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_206(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_207, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(207, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_207(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_208, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(208, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_208(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_209, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(209, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_209(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_210, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(210, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_210(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_211, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(211, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_211(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_212, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(212, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_212(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_213, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(213, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_213(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_214, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(214, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_214(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_215, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(215, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_215(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_216, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(216, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_216(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_217, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(217, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_217(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_218, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(218, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_218(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_219, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(219, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_219(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_220, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(220, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_220(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_221, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(221, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_221(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_222, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(222, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_222(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_223, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(223, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_223(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_224, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(224, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_224(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_225, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(225, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_225(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_226, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(226, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_226(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_227, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(227, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_227(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_228, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(228, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_228(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_229, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(229, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_229(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_230, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(230, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_230(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_231, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(231, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_231(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_232, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(232, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_232(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_233, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(233, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_233(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_234, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(234, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_234(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_235, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(235, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_235(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_236, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(236, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_236(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_237, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(237, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_237(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_238, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(238, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_238(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_239, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(239, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_239(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_240, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(240, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_240(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_241, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(241, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_241(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_242, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(242, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_242(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_243, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(243, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_243(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_244, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(244, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_244(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_245, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(245, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_245(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_246, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(246, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_246(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_247, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(247, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_247(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_248, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(248, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_248(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_249, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(249, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_249(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_250, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(250, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_250(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_251, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(251, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_251(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_252, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(252, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_252(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_253, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(253, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_253(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_254, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(254, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_254(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_255, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(255, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_255(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_256, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(256, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_256(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_257, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(257, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_1(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_2, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(2, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_2(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_3, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(3, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_3(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_4, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(4, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_4(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_5, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(5, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_5(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_6, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(6, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_6(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_7, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(7, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_7(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_8, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(8, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_8(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_9, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(9, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_9(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_10, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(10, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_10(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_11, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(11, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_11(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_12, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(12, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_12(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_13, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(13, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_13(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_14, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(14, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_14(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_15, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(15, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_15(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_16, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(16, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_16(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_17, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(17, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_17(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_18, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(18, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_18(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_19, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(19, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_19(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_20, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(20, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_20(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_21, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(21, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_21(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_22, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(22, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_22(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_23, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(23, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_23(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_24, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(24, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_24(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_25, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(25, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_25(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_26, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(26, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_26(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_27, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(27, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_27(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_28, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(28, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_28(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_29, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(29, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_29(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_30, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(30, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_30(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_31, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(31, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_31(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_32, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(32, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_32(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_33, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(33, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_33(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_34, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(34, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_34(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_35, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(35, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_35(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_36, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(36, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_36(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_37, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(37, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_37(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_38, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(38, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_38(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_39, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(39, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_39(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_40, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(40, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_40(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_41, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(41, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_41(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_42, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(42, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_42(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_43, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(43, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_43(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_44, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(44, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_44(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_45, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(45, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_45(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_46, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(46, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_46(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_47, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(47, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_47(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_48, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(48, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_48(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_49, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(49, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_49(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_50, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(50, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_50(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_51, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(51, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_51(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_52, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(52, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_52(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_53, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(53, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_53(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_54, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(54, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_54(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_55, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(55, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_55(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_56, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(56, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_56(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_57, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(57, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_57(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_58, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(58, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_58(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_59, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(59, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_59(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_60, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(60, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_60(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_61, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(61, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_61(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_62, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(62, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_62(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_63, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(63, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_63(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_64, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(64, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_64(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_65, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(65, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_65(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_66, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(66, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_66(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_67, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(67, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_67(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_68, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(68, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_68(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_69, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(69, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_69(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_70, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(70, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_70(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_71, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(71, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_71(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_72, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(72, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_72(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_73, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(73, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_73(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_74, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(74, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_74(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_75, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(75, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_75(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_76, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(76, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_76(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_77, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(77, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_77(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_78, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(78, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_78(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_79, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(79, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_79(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_80, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(80, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_80(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_81, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(81, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_81(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_82, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(82, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_82(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_83, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(83, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_83(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_84, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(84, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_84(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_85, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(85, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_85(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_86, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(86, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_86(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_87, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(87, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_87(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_88, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(88, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_88(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_89, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(89, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_89(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_90, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(90, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_90(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_91, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(91, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_91(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_92, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(92, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_92(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_93, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(93, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_93(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_94, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(94, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_94(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_95, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(95, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_95(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_96, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(96, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_96(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_97, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(97, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_97(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_98, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(98, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_98(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_99, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(99, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_99(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_100, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(100, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_100(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_101, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(101, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_101(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_102, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(102, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_102(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_103, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(103, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_103(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_104, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(104, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_104(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_105, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(105, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_105(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_106, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(106, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_106(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_107, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(107, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_107(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_108, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(108, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_108(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_109, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(109, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_109(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_110, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(110, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_110(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_111, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(111, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_111(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_112, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(112, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_112(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_113, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(113, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_113(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_114, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(114, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_114(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_115, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(115, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_115(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_116, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(116, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_116(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_117, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(117, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_117(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_118, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(118, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_118(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_119, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(119, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_119(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_120, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(120, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_120(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_121, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(121, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_121(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_122, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(122, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_122(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_123, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(123, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_123(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_124, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(124, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_124(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_125, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(125, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_125(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_126, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(126, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_126(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_127, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(127, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_127(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_128, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(128, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_128(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_129, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(129, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_129(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_130, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(130, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_130(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_131, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(131, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_131(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_132, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(132, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_132(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_133, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(133, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_133(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_134, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(134, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_134(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_135, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(135, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_135(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_136, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(136, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_136(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_137, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(137, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_137(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_138, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(138, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_138(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_139, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(139, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_139(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_140, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(140, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_140(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_141, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(141, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_141(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_142, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(142, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_142(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_143, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(143, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_143(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_144, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(144, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_144(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_145, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(145, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_145(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_146, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(146, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_146(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_147, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(147, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_147(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_148, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(148, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_148(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_149, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(149, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_149(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_150, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(150, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_150(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_151, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(151, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_151(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_152, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(152, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_152(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_153, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(153, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_153(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_154, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(154, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_154(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_155, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(155, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_155(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_156, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(156, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_156(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_157, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(157, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_157(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_158, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(158, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_158(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_159, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(159, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_159(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_160, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(160, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_160(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_161, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(161, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_161(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_162, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(162, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_162(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_163, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(163, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_163(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_164, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(164, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_164(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_165, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(165, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_165(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_166, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(166, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_166(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_167, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(167, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_167(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_168, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(168, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_168(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_169, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(169, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_169(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_170, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(170, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_170(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_171, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(171, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_171(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_172, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(172, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_172(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_173, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(173, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_173(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_174, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(174, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_174(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_175, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(175, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_175(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_176, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(176, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_176(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_177, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(177, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_177(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_178, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(178, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_178(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_179, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(179, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_179(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_180, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(180, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_180(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_181, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(181, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_181(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_182, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(182, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_182(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_183, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(183, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_183(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_184, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(184, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_184(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_185, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(185, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_185(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_186, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(186, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_186(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_187, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(187, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_187(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_188, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(188, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_188(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_189, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(189, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_189(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_190, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(190, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_190(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_191, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(191, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_191(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_192, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(192, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_192(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_193, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(193, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_193(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_194, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(194, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_194(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_195, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(195, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_195(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_196, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(196, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_196(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_197, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(197, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_197(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_198, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(198, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_198(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_199, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(199, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_199(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_200, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(200, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_200(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_201, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(201, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_201(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_202, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(202, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_202(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_203, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(203, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_203(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_204, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(204, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_204(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_205, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(205, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_205(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_206, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(206, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_206(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_207, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(207, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_207(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_208, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(208, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_208(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_209, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(209, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_209(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_210, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(210, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_210(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_211, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(211, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_211(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_212, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(212, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_212(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_213, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(213, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_213(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_214, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(214, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_214(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_215, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(215, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_215(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_216, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(216, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_216(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_217, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(217, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_217(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_218, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(218, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_218(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_219, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(219, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_219(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_220, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(220, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_220(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_221, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(221, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_221(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_222, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(222, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_222(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_223, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(223, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_223(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_224, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(224, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_224(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_225, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(225, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_225(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_226, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(226, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_226(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_227, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(227, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_227(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_228, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(228, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_228(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_229, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(229, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_229(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_230, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(230, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_230(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_231, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(231, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_231(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_232, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(232, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_232(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_233, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(233, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_233(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_234, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(234, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_234(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_235, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(235, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_235(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_236, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(236, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_236(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_237, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(237, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_237(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_238, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(238, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_238(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_239, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(239, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_239(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_240, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(240, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_240(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_241, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(241, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_241(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_242, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(242, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_242(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_243, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(243, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_243(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_244, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(244, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_244(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_245, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(245, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_245(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_246, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(246, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_246(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_247, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(247, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_247(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_248, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(248, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_248(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_249, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(249, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_249(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_250, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(250, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_250(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_251, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(251, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_251(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_252, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(252, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_252(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_253, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(253, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_253(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_254, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(254, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_254(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_255, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(255, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_255(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_256, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(256, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_256(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_257, NDNBOOST_PP_TUPLE_ELEM_3_1)(o, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, NDNBOOST_PP_TUPLE_ELEM_3_1)(257, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
 #
 # endif
diff --git a/include/ndnboost/preprocessor/list/detail/edg/fold_left.hpp b/include/ndnboost/preprocessor/list/detail/edg/fold_left.hpp
index 87550f0..0356186 100644
--- a/include/ndnboost/preprocessor/list/detail/edg/fold_left.hpp
+++ b/include/ndnboost/preprocessor/list/detail/edg/fold_left.hpp
@@ -11,526 +11,526 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_LIST_DETAIL_EDG_FOLD_LEFT_HPP
-# define BOOST_PREPROCESSOR_LIST_DETAIL_EDG_FOLD_LEFT_HPP
+# ifndef NDNBOOST_PREPROCESSOR_LIST_DETAIL_EDG_FOLD_LEFT_HPP
+# define NDNBOOST_PREPROCESSOR_LIST_DETAIL_EDG_FOLD_LEFT_HPP
 #
 # include <ndnboost/preprocessor/control/expr_iif.hpp>
 # include <ndnboost/preprocessor/control/iif.hpp>
 # include <ndnboost/preprocessor/list/adt.hpp>
 # include <ndnboost/preprocessor/tuple/eat.hpp>
 #
-# define BOOST_PP_LIST_FOLD_LEFT_1(o, s, l) BOOST_PP_LIST_FOLD_LEFT_1_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_2(o, s, l) BOOST_PP_LIST_FOLD_LEFT_2_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_3(o, s, l) BOOST_PP_LIST_FOLD_LEFT_3_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_4(o, s, l) BOOST_PP_LIST_FOLD_LEFT_4_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_5(o, s, l) BOOST_PP_LIST_FOLD_LEFT_5_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_6(o, s, l) BOOST_PP_LIST_FOLD_LEFT_6_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_7(o, s, l) BOOST_PP_LIST_FOLD_LEFT_7_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_8(o, s, l) BOOST_PP_LIST_FOLD_LEFT_8_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_9(o, s, l) BOOST_PP_LIST_FOLD_LEFT_9_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_10(o, s, l) BOOST_PP_LIST_FOLD_LEFT_10_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_11(o, s, l) BOOST_PP_LIST_FOLD_LEFT_11_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_12(o, s, l) BOOST_PP_LIST_FOLD_LEFT_12_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_13(o, s, l) BOOST_PP_LIST_FOLD_LEFT_13_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_14(o, s, l) BOOST_PP_LIST_FOLD_LEFT_14_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_15(o, s, l) BOOST_PP_LIST_FOLD_LEFT_15_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_16(o, s, l) BOOST_PP_LIST_FOLD_LEFT_16_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_17(o, s, l) BOOST_PP_LIST_FOLD_LEFT_17_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_18(o, s, l) BOOST_PP_LIST_FOLD_LEFT_18_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_19(o, s, l) BOOST_PP_LIST_FOLD_LEFT_19_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_20(o, s, l) BOOST_PP_LIST_FOLD_LEFT_20_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_21(o, s, l) BOOST_PP_LIST_FOLD_LEFT_21_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_22(o, s, l) BOOST_PP_LIST_FOLD_LEFT_22_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_23(o, s, l) BOOST_PP_LIST_FOLD_LEFT_23_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_24(o, s, l) BOOST_PP_LIST_FOLD_LEFT_24_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_25(o, s, l) BOOST_PP_LIST_FOLD_LEFT_25_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_26(o, s, l) BOOST_PP_LIST_FOLD_LEFT_26_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_27(o, s, l) BOOST_PP_LIST_FOLD_LEFT_27_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_28(o, s, l) BOOST_PP_LIST_FOLD_LEFT_28_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_29(o, s, l) BOOST_PP_LIST_FOLD_LEFT_29_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_30(o, s, l) BOOST_PP_LIST_FOLD_LEFT_30_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_31(o, s, l) BOOST_PP_LIST_FOLD_LEFT_31_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_32(o, s, l) BOOST_PP_LIST_FOLD_LEFT_32_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_33(o, s, l) BOOST_PP_LIST_FOLD_LEFT_33_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_34(o, s, l) BOOST_PP_LIST_FOLD_LEFT_34_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_35(o, s, l) BOOST_PP_LIST_FOLD_LEFT_35_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_36(o, s, l) BOOST_PP_LIST_FOLD_LEFT_36_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_37(o, s, l) BOOST_PP_LIST_FOLD_LEFT_37_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_38(o, s, l) BOOST_PP_LIST_FOLD_LEFT_38_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_39(o, s, l) BOOST_PP_LIST_FOLD_LEFT_39_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_40(o, s, l) BOOST_PP_LIST_FOLD_LEFT_40_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_41(o, s, l) BOOST_PP_LIST_FOLD_LEFT_41_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_42(o, s, l) BOOST_PP_LIST_FOLD_LEFT_42_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_43(o, s, l) BOOST_PP_LIST_FOLD_LEFT_43_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_44(o, s, l) BOOST_PP_LIST_FOLD_LEFT_44_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_45(o, s, l) BOOST_PP_LIST_FOLD_LEFT_45_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_46(o, s, l) BOOST_PP_LIST_FOLD_LEFT_46_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_47(o, s, l) BOOST_PP_LIST_FOLD_LEFT_47_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_48(o, s, l) BOOST_PP_LIST_FOLD_LEFT_48_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_49(o, s, l) BOOST_PP_LIST_FOLD_LEFT_49_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_50(o, s, l) BOOST_PP_LIST_FOLD_LEFT_50_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_51(o, s, l) BOOST_PP_LIST_FOLD_LEFT_51_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_52(o, s, l) BOOST_PP_LIST_FOLD_LEFT_52_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_53(o, s, l) BOOST_PP_LIST_FOLD_LEFT_53_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_54(o, s, l) BOOST_PP_LIST_FOLD_LEFT_54_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_55(o, s, l) BOOST_PP_LIST_FOLD_LEFT_55_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_56(o, s, l) BOOST_PP_LIST_FOLD_LEFT_56_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_57(o, s, l) BOOST_PP_LIST_FOLD_LEFT_57_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_58(o, s, l) BOOST_PP_LIST_FOLD_LEFT_58_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_59(o, s, l) BOOST_PP_LIST_FOLD_LEFT_59_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_60(o, s, l) BOOST_PP_LIST_FOLD_LEFT_60_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_61(o, s, l) BOOST_PP_LIST_FOLD_LEFT_61_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_62(o, s, l) BOOST_PP_LIST_FOLD_LEFT_62_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_63(o, s, l) BOOST_PP_LIST_FOLD_LEFT_63_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_64(o, s, l) BOOST_PP_LIST_FOLD_LEFT_64_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_65(o, s, l) BOOST_PP_LIST_FOLD_LEFT_65_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_66(o, s, l) BOOST_PP_LIST_FOLD_LEFT_66_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_67(o, s, l) BOOST_PP_LIST_FOLD_LEFT_67_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_68(o, s, l) BOOST_PP_LIST_FOLD_LEFT_68_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_69(o, s, l) BOOST_PP_LIST_FOLD_LEFT_69_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_70(o, s, l) BOOST_PP_LIST_FOLD_LEFT_70_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_71(o, s, l) BOOST_PP_LIST_FOLD_LEFT_71_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_72(o, s, l) BOOST_PP_LIST_FOLD_LEFT_72_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_73(o, s, l) BOOST_PP_LIST_FOLD_LEFT_73_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_74(o, s, l) BOOST_PP_LIST_FOLD_LEFT_74_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_75(o, s, l) BOOST_PP_LIST_FOLD_LEFT_75_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_76(o, s, l) BOOST_PP_LIST_FOLD_LEFT_76_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_77(o, s, l) BOOST_PP_LIST_FOLD_LEFT_77_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_78(o, s, l) BOOST_PP_LIST_FOLD_LEFT_78_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_79(o, s, l) BOOST_PP_LIST_FOLD_LEFT_79_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_80(o, s, l) BOOST_PP_LIST_FOLD_LEFT_80_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_81(o, s, l) BOOST_PP_LIST_FOLD_LEFT_81_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_82(o, s, l) BOOST_PP_LIST_FOLD_LEFT_82_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_83(o, s, l) BOOST_PP_LIST_FOLD_LEFT_83_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_84(o, s, l) BOOST_PP_LIST_FOLD_LEFT_84_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_85(o, s, l) BOOST_PP_LIST_FOLD_LEFT_85_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_86(o, s, l) BOOST_PP_LIST_FOLD_LEFT_86_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_87(o, s, l) BOOST_PP_LIST_FOLD_LEFT_87_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_88(o, s, l) BOOST_PP_LIST_FOLD_LEFT_88_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_89(o, s, l) BOOST_PP_LIST_FOLD_LEFT_89_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_90(o, s, l) BOOST_PP_LIST_FOLD_LEFT_90_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_91(o, s, l) BOOST_PP_LIST_FOLD_LEFT_91_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_92(o, s, l) BOOST_PP_LIST_FOLD_LEFT_92_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_93(o, s, l) BOOST_PP_LIST_FOLD_LEFT_93_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_94(o, s, l) BOOST_PP_LIST_FOLD_LEFT_94_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_95(o, s, l) BOOST_PP_LIST_FOLD_LEFT_95_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_96(o, s, l) BOOST_PP_LIST_FOLD_LEFT_96_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_97(o, s, l) BOOST_PP_LIST_FOLD_LEFT_97_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_98(o, s, l) BOOST_PP_LIST_FOLD_LEFT_98_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_99(o, s, l) BOOST_PP_LIST_FOLD_LEFT_99_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_100(o, s, l) BOOST_PP_LIST_FOLD_LEFT_100_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_101(o, s, l) BOOST_PP_LIST_FOLD_LEFT_101_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_102(o, s, l) BOOST_PP_LIST_FOLD_LEFT_102_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_103(o, s, l) BOOST_PP_LIST_FOLD_LEFT_103_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_104(o, s, l) BOOST_PP_LIST_FOLD_LEFT_104_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_105(o, s, l) BOOST_PP_LIST_FOLD_LEFT_105_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_106(o, s, l) BOOST_PP_LIST_FOLD_LEFT_106_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_107(o, s, l) BOOST_PP_LIST_FOLD_LEFT_107_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_108(o, s, l) BOOST_PP_LIST_FOLD_LEFT_108_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_109(o, s, l) BOOST_PP_LIST_FOLD_LEFT_109_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_110(o, s, l) BOOST_PP_LIST_FOLD_LEFT_110_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_111(o, s, l) BOOST_PP_LIST_FOLD_LEFT_111_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_112(o, s, l) BOOST_PP_LIST_FOLD_LEFT_112_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_113(o, s, l) BOOST_PP_LIST_FOLD_LEFT_113_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_114(o, s, l) BOOST_PP_LIST_FOLD_LEFT_114_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_115(o, s, l) BOOST_PP_LIST_FOLD_LEFT_115_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_116(o, s, l) BOOST_PP_LIST_FOLD_LEFT_116_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_117(o, s, l) BOOST_PP_LIST_FOLD_LEFT_117_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_118(o, s, l) BOOST_PP_LIST_FOLD_LEFT_118_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_119(o, s, l) BOOST_PP_LIST_FOLD_LEFT_119_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_120(o, s, l) BOOST_PP_LIST_FOLD_LEFT_120_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_121(o, s, l) BOOST_PP_LIST_FOLD_LEFT_121_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_122(o, s, l) BOOST_PP_LIST_FOLD_LEFT_122_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_123(o, s, l) BOOST_PP_LIST_FOLD_LEFT_123_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_124(o, s, l) BOOST_PP_LIST_FOLD_LEFT_124_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_125(o, s, l) BOOST_PP_LIST_FOLD_LEFT_125_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_126(o, s, l) BOOST_PP_LIST_FOLD_LEFT_126_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_127(o, s, l) BOOST_PP_LIST_FOLD_LEFT_127_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_128(o, s, l) BOOST_PP_LIST_FOLD_LEFT_128_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_129(o, s, l) BOOST_PP_LIST_FOLD_LEFT_129_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_130(o, s, l) BOOST_PP_LIST_FOLD_LEFT_130_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_131(o, s, l) BOOST_PP_LIST_FOLD_LEFT_131_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_132(o, s, l) BOOST_PP_LIST_FOLD_LEFT_132_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_133(o, s, l) BOOST_PP_LIST_FOLD_LEFT_133_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_134(o, s, l) BOOST_PP_LIST_FOLD_LEFT_134_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_135(o, s, l) BOOST_PP_LIST_FOLD_LEFT_135_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_136(o, s, l) BOOST_PP_LIST_FOLD_LEFT_136_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_137(o, s, l) BOOST_PP_LIST_FOLD_LEFT_137_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_138(o, s, l) BOOST_PP_LIST_FOLD_LEFT_138_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_139(o, s, l) BOOST_PP_LIST_FOLD_LEFT_139_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_140(o, s, l) BOOST_PP_LIST_FOLD_LEFT_140_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_141(o, s, l) BOOST_PP_LIST_FOLD_LEFT_141_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_142(o, s, l) BOOST_PP_LIST_FOLD_LEFT_142_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_143(o, s, l) BOOST_PP_LIST_FOLD_LEFT_143_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_144(o, s, l) BOOST_PP_LIST_FOLD_LEFT_144_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_145(o, s, l) BOOST_PP_LIST_FOLD_LEFT_145_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_146(o, s, l) BOOST_PP_LIST_FOLD_LEFT_146_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_147(o, s, l) BOOST_PP_LIST_FOLD_LEFT_147_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_148(o, s, l) BOOST_PP_LIST_FOLD_LEFT_148_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_149(o, s, l) BOOST_PP_LIST_FOLD_LEFT_149_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_150(o, s, l) BOOST_PP_LIST_FOLD_LEFT_150_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_151(o, s, l) BOOST_PP_LIST_FOLD_LEFT_151_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_152(o, s, l) BOOST_PP_LIST_FOLD_LEFT_152_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_153(o, s, l) BOOST_PP_LIST_FOLD_LEFT_153_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_154(o, s, l) BOOST_PP_LIST_FOLD_LEFT_154_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_155(o, s, l) BOOST_PP_LIST_FOLD_LEFT_155_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_156(o, s, l) BOOST_PP_LIST_FOLD_LEFT_156_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_157(o, s, l) BOOST_PP_LIST_FOLD_LEFT_157_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_158(o, s, l) BOOST_PP_LIST_FOLD_LEFT_158_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_159(o, s, l) BOOST_PP_LIST_FOLD_LEFT_159_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_160(o, s, l) BOOST_PP_LIST_FOLD_LEFT_160_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_161(o, s, l) BOOST_PP_LIST_FOLD_LEFT_161_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_162(o, s, l) BOOST_PP_LIST_FOLD_LEFT_162_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_163(o, s, l) BOOST_PP_LIST_FOLD_LEFT_163_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_164(o, s, l) BOOST_PP_LIST_FOLD_LEFT_164_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_165(o, s, l) BOOST_PP_LIST_FOLD_LEFT_165_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_166(o, s, l) BOOST_PP_LIST_FOLD_LEFT_166_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_167(o, s, l) BOOST_PP_LIST_FOLD_LEFT_167_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_168(o, s, l) BOOST_PP_LIST_FOLD_LEFT_168_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_169(o, s, l) BOOST_PP_LIST_FOLD_LEFT_169_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_170(o, s, l) BOOST_PP_LIST_FOLD_LEFT_170_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_171(o, s, l) BOOST_PP_LIST_FOLD_LEFT_171_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_172(o, s, l) BOOST_PP_LIST_FOLD_LEFT_172_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_173(o, s, l) BOOST_PP_LIST_FOLD_LEFT_173_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_174(o, s, l) BOOST_PP_LIST_FOLD_LEFT_174_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_175(o, s, l) BOOST_PP_LIST_FOLD_LEFT_175_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_176(o, s, l) BOOST_PP_LIST_FOLD_LEFT_176_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_177(o, s, l) BOOST_PP_LIST_FOLD_LEFT_177_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_178(o, s, l) BOOST_PP_LIST_FOLD_LEFT_178_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_179(o, s, l) BOOST_PP_LIST_FOLD_LEFT_179_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_180(o, s, l) BOOST_PP_LIST_FOLD_LEFT_180_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_181(o, s, l) BOOST_PP_LIST_FOLD_LEFT_181_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_182(o, s, l) BOOST_PP_LIST_FOLD_LEFT_182_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_183(o, s, l) BOOST_PP_LIST_FOLD_LEFT_183_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_184(o, s, l) BOOST_PP_LIST_FOLD_LEFT_184_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_185(o, s, l) BOOST_PP_LIST_FOLD_LEFT_185_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_186(o, s, l) BOOST_PP_LIST_FOLD_LEFT_186_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_187(o, s, l) BOOST_PP_LIST_FOLD_LEFT_187_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_188(o, s, l) BOOST_PP_LIST_FOLD_LEFT_188_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_189(o, s, l) BOOST_PP_LIST_FOLD_LEFT_189_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_190(o, s, l) BOOST_PP_LIST_FOLD_LEFT_190_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_191(o, s, l) BOOST_PP_LIST_FOLD_LEFT_191_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_192(o, s, l) BOOST_PP_LIST_FOLD_LEFT_192_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_193(o, s, l) BOOST_PP_LIST_FOLD_LEFT_193_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_194(o, s, l) BOOST_PP_LIST_FOLD_LEFT_194_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_195(o, s, l) BOOST_PP_LIST_FOLD_LEFT_195_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_196(o, s, l) BOOST_PP_LIST_FOLD_LEFT_196_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_197(o, s, l) BOOST_PP_LIST_FOLD_LEFT_197_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_198(o, s, l) BOOST_PP_LIST_FOLD_LEFT_198_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_199(o, s, l) BOOST_PP_LIST_FOLD_LEFT_199_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_200(o, s, l) BOOST_PP_LIST_FOLD_LEFT_200_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_201(o, s, l) BOOST_PP_LIST_FOLD_LEFT_201_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_202(o, s, l) BOOST_PP_LIST_FOLD_LEFT_202_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_203(o, s, l) BOOST_PP_LIST_FOLD_LEFT_203_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_204(o, s, l) BOOST_PP_LIST_FOLD_LEFT_204_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_205(o, s, l) BOOST_PP_LIST_FOLD_LEFT_205_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_206(o, s, l) BOOST_PP_LIST_FOLD_LEFT_206_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_207(o, s, l) BOOST_PP_LIST_FOLD_LEFT_207_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_208(o, s, l) BOOST_PP_LIST_FOLD_LEFT_208_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_209(o, s, l) BOOST_PP_LIST_FOLD_LEFT_209_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_210(o, s, l) BOOST_PP_LIST_FOLD_LEFT_210_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_211(o, s, l) BOOST_PP_LIST_FOLD_LEFT_211_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_212(o, s, l) BOOST_PP_LIST_FOLD_LEFT_212_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_213(o, s, l) BOOST_PP_LIST_FOLD_LEFT_213_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_214(o, s, l) BOOST_PP_LIST_FOLD_LEFT_214_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_215(o, s, l) BOOST_PP_LIST_FOLD_LEFT_215_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_216(o, s, l) BOOST_PP_LIST_FOLD_LEFT_216_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_217(o, s, l) BOOST_PP_LIST_FOLD_LEFT_217_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_218(o, s, l) BOOST_PP_LIST_FOLD_LEFT_218_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_219(o, s, l) BOOST_PP_LIST_FOLD_LEFT_219_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_220(o, s, l) BOOST_PP_LIST_FOLD_LEFT_220_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_221(o, s, l) BOOST_PP_LIST_FOLD_LEFT_221_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_222(o, s, l) BOOST_PP_LIST_FOLD_LEFT_222_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_223(o, s, l) BOOST_PP_LIST_FOLD_LEFT_223_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_224(o, s, l) BOOST_PP_LIST_FOLD_LEFT_224_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_225(o, s, l) BOOST_PP_LIST_FOLD_LEFT_225_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_226(o, s, l) BOOST_PP_LIST_FOLD_LEFT_226_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_227(o, s, l) BOOST_PP_LIST_FOLD_LEFT_227_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_228(o, s, l) BOOST_PP_LIST_FOLD_LEFT_228_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_229(o, s, l) BOOST_PP_LIST_FOLD_LEFT_229_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_230(o, s, l) BOOST_PP_LIST_FOLD_LEFT_230_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_231(o, s, l) BOOST_PP_LIST_FOLD_LEFT_231_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_232(o, s, l) BOOST_PP_LIST_FOLD_LEFT_232_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_233(o, s, l) BOOST_PP_LIST_FOLD_LEFT_233_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_234(o, s, l) BOOST_PP_LIST_FOLD_LEFT_234_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_235(o, s, l) BOOST_PP_LIST_FOLD_LEFT_235_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_236(o, s, l) BOOST_PP_LIST_FOLD_LEFT_236_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_237(o, s, l) BOOST_PP_LIST_FOLD_LEFT_237_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_238(o, s, l) BOOST_PP_LIST_FOLD_LEFT_238_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_239(o, s, l) BOOST_PP_LIST_FOLD_LEFT_239_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_240(o, s, l) BOOST_PP_LIST_FOLD_LEFT_240_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_241(o, s, l) BOOST_PP_LIST_FOLD_LEFT_241_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_242(o, s, l) BOOST_PP_LIST_FOLD_LEFT_242_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_243(o, s, l) BOOST_PP_LIST_FOLD_LEFT_243_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_244(o, s, l) BOOST_PP_LIST_FOLD_LEFT_244_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_245(o, s, l) BOOST_PP_LIST_FOLD_LEFT_245_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_246(o, s, l) BOOST_PP_LIST_FOLD_LEFT_246_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_247(o, s, l) BOOST_PP_LIST_FOLD_LEFT_247_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_248(o, s, l) BOOST_PP_LIST_FOLD_LEFT_248_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_249(o, s, l) BOOST_PP_LIST_FOLD_LEFT_249_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_250(o, s, l) BOOST_PP_LIST_FOLD_LEFT_250_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_251(o, s, l) BOOST_PP_LIST_FOLD_LEFT_251_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_252(o, s, l) BOOST_PP_LIST_FOLD_LEFT_252_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_253(o, s, l) BOOST_PP_LIST_FOLD_LEFT_253_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_254(o, s, l) BOOST_PP_LIST_FOLD_LEFT_254_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_255(o, s, l) BOOST_PP_LIST_FOLD_LEFT_255_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_256(o, s, l) BOOST_PP_LIST_FOLD_LEFT_256_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_1(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_1_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_2(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_2_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_3(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_3_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_4(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_4_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_5(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_5_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_6(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_6_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_7(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_7_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_8(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_8_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_9(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_9_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_10(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_10_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_11(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_11_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_12(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_12_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_13(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_13_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_14(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_14_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_15(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_15_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_16(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_16_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_17(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_17_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_18(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_18_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_19(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_19_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_20(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_20_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_21(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_21_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_22(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_22_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_23(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_23_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_24(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_24_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_25(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_25_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_26(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_26_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_27(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_27_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_28(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_28_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_29(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_29_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_30(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_30_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_31(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_31_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_32(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_32_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_33(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_33_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_34(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_34_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_35(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_35_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_36(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_36_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_37(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_37_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_38(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_38_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_39(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_39_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_40(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_40_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_41(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_41_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_42(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_42_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_43(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_43_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_44(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_44_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_45(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_45_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_46(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_46_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_47(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_47_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_48(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_48_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_49(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_49_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_50(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_50_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_51(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_51_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_52(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_52_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_53(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_53_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_54(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_54_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_55(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_55_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_56(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_56_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_57(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_57_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_58(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_58_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_59(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_59_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_60(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_60_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_61(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_61_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_62(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_62_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_63(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_63_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_64(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_64_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_65(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_65_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_66(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_66_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_67(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_67_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_68(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_68_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_69(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_69_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_70(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_70_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_71(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_71_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_72(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_72_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_73(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_73_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_74(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_74_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_75(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_75_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_76(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_76_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_77(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_77_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_78(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_78_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_79(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_79_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_80(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_80_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_81(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_81_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_82(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_82_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_83(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_83_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_84(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_84_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_85(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_85_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_86(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_86_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_87(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_87_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_88(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_88_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_89(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_89_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_90(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_90_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_91(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_91_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_92(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_92_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_93(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_93_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_94(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_94_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_95(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_95_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_96(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_96_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_97(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_97_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_98(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_98_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_99(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_99_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_100(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_100_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_101(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_101_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_102(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_102_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_103(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_103_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_104(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_104_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_105(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_105_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_106(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_106_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_107(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_107_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_108(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_108_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_109(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_109_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_110(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_110_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_111(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_111_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_112(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_112_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_113(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_113_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_114(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_114_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_115(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_115_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_116(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_116_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_117(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_117_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_118(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_118_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_119(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_119_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_120(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_120_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_121(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_121_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_122(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_122_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_123(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_123_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_124(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_124_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_125(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_125_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_126(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_126_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_127(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_127_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_128(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_128_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_129(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_129_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_130(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_130_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_131(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_131_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_132(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_132_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_133(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_133_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_134(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_134_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_135(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_135_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_136(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_136_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_137(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_137_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_138(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_138_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_139(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_139_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_140(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_140_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_141(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_141_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_142(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_142_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_143(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_143_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_144(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_144_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_145(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_145_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_146(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_146_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_147(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_147_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_148(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_148_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_149(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_149_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_150(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_150_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_151(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_151_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_152(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_152_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_153(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_153_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_154(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_154_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_155(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_155_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_156(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_156_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_157(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_157_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_158(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_158_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_159(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_159_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_160(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_160_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_161(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_161_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_162(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_162_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_163(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_163_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_164(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_164_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_165(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_165_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_166(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_166_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_167(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_167_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_168(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_168_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_169(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_169_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_170(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_170_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_171(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_171_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_172(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_172_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_173(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_173_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_174(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_174_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_175(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_175_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_176(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_176_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_177(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_177_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_178(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_178_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_179(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_179_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_180(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_180_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_181(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_181_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_182(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_182_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_183(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_183_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_184(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_184_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_185(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_185_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_186(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_186_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_187(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_187_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_188(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_188_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_189(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_189_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_190(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_190_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_191(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_191_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_192(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_192_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_193(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_193_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_194(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_194_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_195(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_195_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_196(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_196_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_197(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_197_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_198(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_198_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_199(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_199_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_200(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_200_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_201(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_201_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_202(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_202_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_203(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_203_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_204(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_204_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_205(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_205_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_206(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_206_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_207(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_207_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_208(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_208_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_209(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_209_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_210(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_210_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_211(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_211_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_212(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_212_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_213(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_213_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_214(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_214_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_215(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_215_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_216(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_216_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_217(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_217_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_218(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_218_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_219(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_219_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_220(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_220_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_221(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_221_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_222(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_222_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_223(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_223_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_224(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_224_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_225(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_225_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_226(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_226_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_227(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_227_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_228(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_228_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_229(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_229_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_230(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_230_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_231(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_231_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_232(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_232_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_233(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_233_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_234(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_234_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_235(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_235_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_236(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_236_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_237(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_237_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_238(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_238_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_239(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_239_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_240(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_240_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_241(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_241_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_242(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_242_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_243(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_243_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_244(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_244_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_245(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_245_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_246(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_246_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_247(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_247_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_248(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_248_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_249(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_249_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_250(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_250_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_251(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_251_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_252(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_252_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_253(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_253_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_254(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_254_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_255(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_255_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_256(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_256_D(o, s, l)
 #
-# define BOOST_PP_LIST_FOLD_LEFT_1_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_2, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(2, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_2_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_3, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(3, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_3_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_4, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(4, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_4_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_5, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(5, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_5_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_6, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(6, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_6_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_7, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(7, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_7_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_8, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(8, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_8_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_9, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(9, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_9_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_10, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(10, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_10_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_11, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(11, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_11_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_12, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(12, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_12_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_13, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(13, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_13_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_14, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(14, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_14_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_15, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(15, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_15_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_16, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(16, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_16_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_17, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(17, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_17_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_18, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(18, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_18_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_19, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(19, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_19_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_20, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(20, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_20_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_21, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(21, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_21_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_22, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(22, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_22_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_23, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(23, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_23_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_24, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(24, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_24_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_25, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(25, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_25_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_26, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(26, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_26_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_27, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(27, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_27_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_28, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(28, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_28_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_29, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(29, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_29_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_30, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(30, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_30_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_31, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(31, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_31_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_32, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(32, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_32_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_33, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(33, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_33_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_34, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(34, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_34_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_35, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(35, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_35_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_36, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(36, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_36_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_37, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(37, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_37_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_38, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(38, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_38_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_39, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(39, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_39_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_40, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(40, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_40_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_41, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(41, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_41_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_42, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(42, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_42_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_43, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(43, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_43_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_44, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(44, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_44_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_45, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(45, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_45_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_46, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(46, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_46_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_47, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(47, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_47_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_48, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(48, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_48_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_49, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(49, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_49_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_50, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(50, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_50_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_51, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(51, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_51_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_52, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(52, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_52_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_53, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(53, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_53_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_54, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(54, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_54_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_55, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(55, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_55_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_56, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(56, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_56_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_57, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(57, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_57_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_58, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(58, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_58_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_59, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(59, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_59_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_60, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(60, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_60_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_61, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(61, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_61_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_62, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(62, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_62_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_63, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(63, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_63_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_64, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(64, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_64_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_65, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(65, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_65_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_66, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(66, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_66_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_67, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(67, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_67_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_68, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(68, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_68_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_69, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(69, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_69_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_70, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(70, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_70_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_71, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(71, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_71_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_72, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(72, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_72_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_73, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(73, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_73_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_74, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(74, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_74_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_75, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(75, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_75_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_76, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(76, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_76_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_77, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(77, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_77_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_78, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(78, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_78_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_79, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(79, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_79_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_80, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(80, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_80_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_81, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(81, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_81_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_82, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(82, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_82_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_83, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(83, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_83_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_84, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(84, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_84_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_85, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(85, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_85_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_86, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(86, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_86_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_87, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(87, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_87_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_88, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(88, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_88_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_89, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(89, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_89_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_90, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(90, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_90_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_91, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(91, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_91_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_92, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(92, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_92_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_93, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(93, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_93_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_94, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(94, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_94_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_95, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(95, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_95_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_96, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(96, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_96_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_97, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(97, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_97_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_98, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(98, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_98_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_99, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(99, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_99_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_100, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(100, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_100_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_101, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(101, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_101_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_102, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(102, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_102_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_103, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(103, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_103_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_104, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(104, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_104_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_105, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(105, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_105_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_106, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(106, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_106_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_107, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(107, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_107_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_108, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(108, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_108_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_109, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(109, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_109_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_110, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(110, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_110_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_111, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(111, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_111_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_112, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(112, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_112_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_113, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(113, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_113_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_114, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(114, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_114_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_115, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(115, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_115_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_116, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(116, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_116_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_117, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(117, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_117_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_118, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(118, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_118_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_119, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(119, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_119_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_120, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(120, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_120_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_121, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(121, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_121_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_122, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(122, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_122_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_123, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(123, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_123_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_124, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(124, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_124_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_125, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(125, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_125_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_126, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(126, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_126_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_127, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(127, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_127_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_128, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(128, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_128_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_129, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(129, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_129_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_130, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(130, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_130_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_131, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(131, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_131_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_132, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(132, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_132_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_133, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(133, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_133_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_134, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(134, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_134_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_135, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(135, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_135_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_136, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(136, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_136_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_137, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(137, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_137_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_138, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(138, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_138_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_139, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(139, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_139_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_140, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(140, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_140_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_141, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(141, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_141_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_142, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(142, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_142_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_143, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(143, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_143_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_144, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(144, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_144_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_145, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(145, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_145_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_146, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(146, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_146_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_147, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(147, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_147_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_148, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(148, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_148_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_149, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(149, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_149_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_150, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(150, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_150_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_151, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(151, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_151_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_152, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(152, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_152_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_153, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(153, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_153_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_154, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(154, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_154_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_155, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(155, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_155_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_156, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(156, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_156_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_157, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(157, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_157_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_158, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(158, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_158_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_159, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(159, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_159_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_160, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(160, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_160_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_161, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(161, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_161_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_162, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(162, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_162_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_163, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(163, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_163_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_164, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(164, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_164_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_165, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(165, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_165_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_166, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(166, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_166_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_167, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(167, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_167_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_168, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(168, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_168_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_169, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(169, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_169_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_170, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(170, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_170_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_171, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(171, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_171_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_172, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(172, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_172_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_173, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(173, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_173_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_174, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(174, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_174_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_175, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(175, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_175_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_176, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(176, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_176_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_177, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(177, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_177_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_178, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(178, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_178_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_179, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(179, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_179_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_180, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(180, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_180_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_181, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(181, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_181_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_182, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(182, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_182_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_183, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(183, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_183_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_184, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(184, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_184_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_185, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(185, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_185_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_186, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(186, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_186_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_187, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(187, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_187_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_188, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(188, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_188_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_189, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(189, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_189_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_190, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(190, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_190_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_191, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(191, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_191_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_192, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(192, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_192_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_193, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(193, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_193_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_194, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(194, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_194_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_195, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(195, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_195_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_196, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(196, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_196_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_197, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(197, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_197_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_198, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(198, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_198_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_199, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(199, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_199_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_200, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(200, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_200_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_201, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(201, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_201_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_202, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(202, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_202_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_203, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(203, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_203_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_204, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(204, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_204_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_205, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(205, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_205_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_206, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(206, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_206_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_207, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(207, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_207_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_208, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(208, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_208_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_209, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(209, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_209_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_210, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(210, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_210_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_211, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(211, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_211_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_212, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(212, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_212_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_213, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(213, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_213_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_214, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(214, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_214_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_215, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(215, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_215_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_216, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(216, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_216_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_217, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(217, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_217_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_218, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(218, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_218_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_219, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(219, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_219_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_220, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(220, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_220_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_221, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(221, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_221_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_222, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(222, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_222_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_223, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(223, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_223_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_224, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(224, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_224_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_225, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(225, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_225_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_226, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(226, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_226_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_227, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(227, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_227_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_228, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(228, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_228_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_229, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(229, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_229_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_230, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(230, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_230_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_231, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(231, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_231_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_232, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(232, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_232_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_233, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(233, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_233_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_234, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(234, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_234_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_235, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(235, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_235_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_236, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(236, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_236_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_237, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(237, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_237_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_238, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(238, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_238_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_239, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(239, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_239_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_240, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(240, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_240_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_241, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(241, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_241_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_242, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(242, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_242_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_243, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(243, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_243_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_244, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(244, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_244_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_245, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(245, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_245_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_246, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(246, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_246_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_247, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(247, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_247_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_248, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(248, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_248_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_249, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(249, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_249_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_250, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(250, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_250_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_251, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(251, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_251_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_252, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(252, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_252_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_253, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(253, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_253_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_254, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(254, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_254_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_255, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(255, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_255_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_256, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(256, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_256_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_257, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(257, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_1_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_2, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(2, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_2_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_3, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(3, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_3_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_4, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(4, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_4_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_5, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(5, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_5_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_6, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(6, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_6_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_7, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(7, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_7_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_8, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(8, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_8_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_9, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(9, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_9_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_10, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(10, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_10_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_11, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(11, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_11_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_12, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(12, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_12_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_13, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(13, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_13_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_14, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(14, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_14_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_15, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(15, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_15_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_16, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(16, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_16_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_17, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(17, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_17_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_18, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(18, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_18_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_19, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(19, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_19_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_20, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(20, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_20_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_21, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(21, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_21_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_22, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(22, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_22_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_23, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(23, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_23_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_24, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(24, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_24_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_25, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(25, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_25_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_26, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(26, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_26_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_27, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(27, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_27_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_28, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(28, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_28_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_29, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(29, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_29_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_30, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(30, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_30_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_31, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(31, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_31_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_32, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(32, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_32_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_33, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(33, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_33_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_34, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(34, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_34_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_35, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(35, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_35_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_36, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(36, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_36_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_37, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(37, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_37_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_38, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(38, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_38_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_39, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(39, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_39_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_40, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(40, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_40_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_41, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(41, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_41_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_42, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(42, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_42_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_43, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(43, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_43_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_44, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(44, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_44_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_45, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(45, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_45_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_46, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(46, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_46_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_47, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(47, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_47_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_48, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(48, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_48_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_49, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(49, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_49_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_50, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(50, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_50_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_51, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(51, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_51_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_52, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(52, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_52_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_53, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(53, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_53_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_54, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(54, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_54_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_55, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(55, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_55_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_56, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(56, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_56_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_57, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(57, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_57_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_58, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(58, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_58_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_59, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(59, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_59_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_60, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(60, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_60_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_61, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(61, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_61_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_62, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(62, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_62_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_63, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(63, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_63_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_64, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(64, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_64_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_65, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(65, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_65_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_66, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(66, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_66_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_67, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(67, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_67_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_68, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(68, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_68_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_69, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(69, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_69_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_70, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(70, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_70_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_71, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(71, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_71_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_72, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(72, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_72_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_73, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(73, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_73_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_74, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(74, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_74_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_75, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(75, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_75_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_76, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(76, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_76_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_77, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(77, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_77_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_78, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(78, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_78_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_79, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(79, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_79_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_80, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(80, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_80_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_81, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(81, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_81_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_82, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(82, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_82_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_83, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(83, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_83_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_84, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(84, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_84_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_85, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(85, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_85_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_86, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(86, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_86_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_87, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(87, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_87_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_88, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(88, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_88_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_89, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(89, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_89_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_90, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(90, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_90_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_91, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(91, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_91_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_92, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(92, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_92_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_93, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(93, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_93_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_94, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(94, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_94_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_95, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(95, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_95_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_96, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(96, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_96_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_97, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(97, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_97_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_98, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(98, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_98_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_99, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(99, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_99_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_100, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(100, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_100_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_101, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(101, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_101_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_102, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(102, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_102_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_103, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(103, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_103_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_104, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(104, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_104_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_105, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(105, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_105_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_106, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(106, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_106_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_107, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(107, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_107_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_108, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(108, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_108_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_109, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(109, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_109_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_110, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(110, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_110_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_111, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(111, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_111_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_112, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(112, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_112_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_113, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(113, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_113_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_114, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(114, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_114_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_115, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(115, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_115_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_116, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(116, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_116_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_117, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(117, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_117_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_118, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(118, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_118_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_119, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(119, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_119_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_120, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(120, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_120_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_121, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(121, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_121_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_122, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(122, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_122_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_123, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(123, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_123_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_124, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(124, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_124_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_125, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(125, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_125_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_126, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(126, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_126_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_127, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(127, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_127_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_128, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(128, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_128_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_129, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(129, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_129_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_130, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(130, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_130_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_131, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(131, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_131_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_132, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(132, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_132_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_133, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(133, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_133_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_134, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(134, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_134_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_135, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(135, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_135_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_136, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(136, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_136_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_137, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(137, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_137_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_138, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(138, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_138_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_139, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(139, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_139_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_140, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(140, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_140_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_141, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(141, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_141_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_142, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(142, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_142_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_143, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(143, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_143_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_144, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(144, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_144_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_145, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(145, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_145_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_146, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(146, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_146_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_147, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(147, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_147_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_148, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(148, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_148_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_149, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(149, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_149_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_150, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(150, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_150_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_151, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(151, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_151_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_152, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(152, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_152_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_153, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(153, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_153_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_154, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(154, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_154_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_155, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(155, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_155_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_156, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(156, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_156_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_157, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(157, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_157_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_158, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(158, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_158_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_159, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(159, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_159_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_160, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(160, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_160_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_161, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(161, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_161_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_162, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(162, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_162_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_163, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(163, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_163_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_164, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(164, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_164_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_165, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(165, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_165_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_166, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(166, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_166_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_167, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(167, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_167_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_168, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(168, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_168_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_169, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(169, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_169_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_170, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(170, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_170_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_171, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(171, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_171_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_172, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(172, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_172_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_173, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(173, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_173_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_174, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(174, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_174_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_175, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(175, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_175_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_176, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(176, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_176_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_177, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(177, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_177_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_178, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(178, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_178_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_179, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(179, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_179_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_180, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(180, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_180_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_181, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(181, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_181_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_182, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(182, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_182_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_183, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(183, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_183_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_184, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(184, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_184_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_185, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(185, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_185_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_186, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(186, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_186_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_187, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(187, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_187_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_188, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(188, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_188_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_189, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(189, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_189_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_190, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(190, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_190_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_191, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(191, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_191_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_192, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(192, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_192_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_193, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(193, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_193_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_194, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(194, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_194_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_195, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(195, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_195_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_196, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(196, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_196_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_197, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(197, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_197_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_198, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(198, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_198_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_199, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(199, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_199_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_200, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(200, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_200_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_201, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(201, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_201_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_202, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(202, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_202_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_203, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(203, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_203_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_204, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(204, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_204_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_205, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(205, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_205_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_206, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(206, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_206_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_207, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(207, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_207_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_208, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(208, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_208_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_209, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(209, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_209_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_210, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(210, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_210_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_211, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(211, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_211_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_212, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(212, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_212_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_213, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(213, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_213_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_214, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(214, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_214_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_215, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(215, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_215_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_216, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(216, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_216_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_217, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(217, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_217_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_218, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(218, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_218_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_219, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(219, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_219_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_220, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(220, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_220_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_221, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(221, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_221_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_222, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(222, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_222_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_223, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(223, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_223_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_224, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(224, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_224_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_225, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(225, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_225_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_226, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(226, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_226_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_227, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(227, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_227_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_228, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(228, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_228_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_229, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(229, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_229_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_230, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(230, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_230_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_231, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(231, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_231_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_232, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(232, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_232_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_233, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(233, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_233_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_234, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(234, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_234_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_235, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(235, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_235_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_236, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(236, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_236_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_237, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(237, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_237_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_238, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(238, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_238_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_239, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(239, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_239_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_240, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(240, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_240_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_241, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(241, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_241_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_242, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(242, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_242_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_243, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(243, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_243_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_244, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(244, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_244_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_245, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(245, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_245_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_246, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(246, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_246_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_247, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(247, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_247_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_248, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(248, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_248_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_249, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(249, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_249_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_250, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(250, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_250_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_251, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(251, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_251_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_252, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(252, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_252_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_253, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(253, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_253_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_254, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(254, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_254_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_255, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(255, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_255_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_256, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(256, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_256_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_257, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(257, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
 #
 # endif
diff --git a/include/ndnboost/preprocessor/list/detail/edg/fold_right.hpp b/include/ndnboost/preprocessor/list/detail/edg/fold_right.hpp
index 037f551..96776af 100644
--- a/include/ndnboost/preprocessor/list/detail/edg/fold_right.hpp
+++ b/include/ndnboost/preprocessor/list/detail/edg/fold_right.hpp
@@ -11,784 +11,784 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_LIST_DETAIL_EDG_FOLD_RIGHT_HPP
-# define BOOST_PREPROCESSOR_LIST_DETAIL_EDG_FOLD_RIGHT_HPP
+# ifndef NDNBOOST_PREPROCESSOR_LIST_DETAIL_EDG_FOLD_RIGHT_HPP
+# define NDNBOOST_PREPROCESSOR_LIST_DETAIL_EDG_FOLD_RIGHT_HPP
 #
 # include <ndnboost/preprocessor/control/iif.hpp>
 # include <ndnboost/preprocessor/list/adt.hpp>
 # include <ndnboost/preprocessor/tuple/eat.hpp>
 #
-# define BOOST_PP_LIST_FOLD_RIGHT_1(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_1_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_2(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_2_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_3(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_3_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_4(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_4_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_5(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_5_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_6(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_6_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_7(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_7_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_8(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_8_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_9(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_9_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_10(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_10_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_11(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_11_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_12(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_12_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_13(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_13_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_14(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_14_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_15(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_15_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_16(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_16_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_17(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_17_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_18(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_18_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_19(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_19_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_20(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_20_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_21(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_21_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_22(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_22_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_23(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_23_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_24(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_24_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_25(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_25_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_26(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_26_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_27(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_27_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_28(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_28_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_29(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_29_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_30(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_30_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_31(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_31_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_32(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_32_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_33(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_33_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_34(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_34_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_35(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_35_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_36(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_36_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_37(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_37_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_38(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_38_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_39(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_39_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_40(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_40_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_41(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_41_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_42(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_42_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_43(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_43_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_44(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_44_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_45(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_45_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_46(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_46_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_47(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_47_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_48(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_48_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_49(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_49_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_50(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_50_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_51(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_51_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_52(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_52_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_53(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_53_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_54(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_54_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_55(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_55_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_56(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_56_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_57(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_57_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_58(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_58_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_59(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_59_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_60(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_60_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_61(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_61_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_62(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_62_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_63(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_63_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_64(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_64_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_65(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_65_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_66(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_66_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_67(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_67_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_68(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_68_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_69(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_69_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_70(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_70_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_71(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_71_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_72(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_72_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_73(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_73_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_74(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_74_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_75(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_75_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_76(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_76_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_77(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_77_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_78(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_78_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_79(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_79_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_80(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_80_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_81(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_81_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_82(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_82_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_83(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_83_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_84(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_84_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_85(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_85_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_86(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_86_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_87(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_87_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_88(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_88_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_89(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_89_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_90(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_90_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_91(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_91_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_92(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_92_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_93(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_93_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_94(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_94_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_95(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_95_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_96(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_96_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_97(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_97_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_98(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_98_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_99(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_99_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_100(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_100_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_101(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_101_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_102(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_102_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_103(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_103_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_104(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_104_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_105(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_105_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_106(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_106_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_107(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_107_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_108(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_108_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_109(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_109_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_110(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_110_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_111(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_111_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_112(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_112_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_113(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_113_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_114(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_114_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_115(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_115_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_116(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_116_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_117(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_117_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_118(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_118_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_119(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_119_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_120(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_120_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_121(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_121_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_122(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_122_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_123(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_123_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_124(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_124_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_125(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_125_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_126(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_126_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_127(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_127_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_128(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_128_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_129(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_129_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_130(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_130_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_131(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_131_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_132(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_132_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_133(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_133_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_134(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_134_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_135(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_135_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_136(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_136_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_137(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_137_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_138(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_138_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_139(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_139_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_140(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_140_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_141(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_141_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_142(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_142_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_143(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_143_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_144(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_144_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_145(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_145_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_146(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_146_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_147(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_147_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_148(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_148_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_149(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_149_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_150(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_150_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_151(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_151_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_152(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_152_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_153(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_153_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_154(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_154_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_155(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_155_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_156(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_156_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_157(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_157_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_158(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_158_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_159(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_159_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_160(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_160_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_161(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_161_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_162(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_162_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_163(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_163_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_164(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_164_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_165(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_165_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_166(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_166_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_167(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_167_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_168(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_168_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_169(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_169_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_170(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_170_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_171(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_171_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_172(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_172_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_173(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_173_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_174(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_174_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_175(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_175_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_176(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_176_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_177(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_177_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_178(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_178_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_179(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_179_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_180(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_180_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_181(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_181_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_182(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_182_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_183(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_183_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_184(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_184_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_185(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_185_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_186(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_186_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_187(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_187_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_188(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_188_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_189(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_189_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_190(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_190_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_191(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_191_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_192(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_192_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_193(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_193_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_194(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_194_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_195(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_195_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_196(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_196_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_197(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_197_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_198(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_198_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_199(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_199_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_200(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_200_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_201(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_201_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_202(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_202_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_203(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_203_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_204(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_204_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_205(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_205_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_206(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_206_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_207(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_207_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_208(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_208_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_209(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_209_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_210(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_210_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_211(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_211_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_212(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_212_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_213(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_213_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_214(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_214_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_215(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_215_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_216(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_216_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_217(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_217_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_218(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_218_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_219(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_219_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_220(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_220_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_221(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_221_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_222(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_222_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_223(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_223_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_224(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_224_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_225(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_225_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_226(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_226_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_227(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_227_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_228(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_228_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_229(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_229_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_230(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_230_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_231(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_231_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_232(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_232_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_233(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_233_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_234(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_234_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_235(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_235_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_236(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_236_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_237(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_237_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_238(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_238_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_239(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_239_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_240(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_240_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_241(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_241_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_242(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_242_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_243(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_243_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_244(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_244_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_245(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_245_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_246(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_246_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_247(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_247_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_248(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_248_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_249(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_249_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_250(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_250_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_251(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_251_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_252(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_252_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_253(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_253_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_254(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_254_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_255(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_255_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_256(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_256_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_1(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_1_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_2(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_2_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_3(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_3_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_4(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_4_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_5(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_5_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_6(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_6_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_7(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_7_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_8(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_8_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_9(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_9_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_10(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_10_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_11(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_11_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_12(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_12_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_13(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_13_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_14(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_14_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_15(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_15_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_16(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_16_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_17(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_17_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_18(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_18_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_19(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_19_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_20(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_20_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_21(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_21_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_22(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_22_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_23(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_23_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_24(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_24_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_25(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_25_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_26(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_26_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_27(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_27_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_28(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_28_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_29(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_29_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_30(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_30_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_31(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_31_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_32(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_32_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_33(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_33_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_34(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_34_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_35(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_35_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_36(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_36_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_37(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_37_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_38(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_38_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_39(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_39_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_40(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_40_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_41(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_41_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_42(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_42_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_43(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_43_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_44(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_44_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_45(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_45_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_46(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_46_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_47(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_47_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_48(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_48_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_49(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_49_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_50(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_50_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_51(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_51_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_52(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_52_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_53(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_53_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_54(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_54_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_55(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_55_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_56(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_56_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_57(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_57_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_58(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_58_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_59(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_59_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_60(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_60_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_61(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_61_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_62(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_62_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_63(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_63_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_64(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_64_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_65(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_65_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_66(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_66_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_67(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_67_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_68(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_68_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_69(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_69_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_70(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_70_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_71(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_71_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_72(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_72_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_73(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_73_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_74(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_74_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_75(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_75_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_76(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_76_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_77(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_77_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_78(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_78_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_79(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_79_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_80(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_80_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_81(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_81_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_82(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_82_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_83(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_83_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_84(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_84_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_85(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_85_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_86(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_86_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_87(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_87_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_88(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_88_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_89(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_89_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_90(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_90_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_91(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_91_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_92(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_92_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_93(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_93_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_94(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_94_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_95(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_95_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_96(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_96_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_97(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_97_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_98(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_98_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_99(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_99_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_100(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_100_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_101(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_101_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_102(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_102_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_103(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_103_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_104(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_104_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_105(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_105_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_106(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_106_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_107(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_107_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_108(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_108_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_109(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_109_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_110(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_110_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_111(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_111_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_112(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_112_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_113(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_113_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_114(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_114_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_115(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_115_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_116(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_116_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_117(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_117_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_118(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_118_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_119(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_119_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_120(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_120_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_121(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_121_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_122(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_122_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_123(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_123_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_124(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_124_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_125(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_125_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_126(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_126_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_127(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_127_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_128(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_128_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_129(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_129_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_130(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_130_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_131(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_131_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_132(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_132_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_133(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_133_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_134(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_134_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_135(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_135_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_136(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_136_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_137(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_137_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_138(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_138_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_139(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_139_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_140(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_140_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_141(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_141_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_142(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_142_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_143(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_143_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_144(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_144_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_145(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_145_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_146(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_146_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_147(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_147_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_148(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_148_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_149(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_149_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_150(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_150_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_151(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_151_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_152(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_152_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_153(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_153_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_154(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_154_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_155(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_155_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_156(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_156_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_157(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_157_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_158(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_158_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_159(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_159_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_160(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_160_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_161(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_161_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_162(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_162_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_163(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_163_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_164(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_164_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_165(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_165_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_166(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_166_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_167(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_167_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_168(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_168_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_169(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_169_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_170(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_170_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_171(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_171_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_172(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_172_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_173(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_173_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_174(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_174_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_175(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_175_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_176(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_176_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_177(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_177_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_178(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_178_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_179(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_179_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_180(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_180_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_181(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_181_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_182(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_182_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_183(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_183_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_184(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_184_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_185(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_185_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_186(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_186_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_187(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_187_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_188(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_188_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_189(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_189_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_190(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_190_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_191(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_191_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_192(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_192_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_193(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_193_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_194(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_194_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_195(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_195_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_196(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_196_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_197(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_197_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_198(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_198_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_199(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_199_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_200(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_200_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_201(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_201_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_202(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_202_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_203(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_203_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_204(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_204_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_205(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_205_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_206(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_206_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_207(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_207_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_208(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_208_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_209(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_209_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_210(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_210_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_211(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_211_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_212(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_212_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_213(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_213_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_214(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_214_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_215(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_215_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_216(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_216_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_217(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_217_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_218(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_218_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_219(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_219_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_220(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_220_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_221(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_221_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_222(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_222_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_223(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_223_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_224(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_224_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_225(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_225_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_226(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_226_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_227(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_227_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_228(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_228_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_229(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_229_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_230(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_230_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_231(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_231_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_232(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_232_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_233(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_233_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_234(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_234_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_235(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_235_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_236(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_236_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_237(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_237_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_238(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_238_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_239(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_239_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_240(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_240_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_241(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_241_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_242(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_242_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_243(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_243_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_244(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_244_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_245(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_245_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_246(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_246_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_247(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_247_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_248(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_248_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_249(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_249_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_250(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_250_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_251(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_251_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_252(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_252_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_253(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_253_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_254(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_254_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_255(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_255_D(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_256(o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_256_D(o, s, l)
 #
-# define BOOST_PP_LIST_FOLD_RIGHT_1_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(2, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_2, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_2_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(3, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_3, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_3_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(4, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_4, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_4_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(5, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_5, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_5_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(6, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_6, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_6_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(7, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_7, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_7_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(8, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_8, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_8_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(9, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_9, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_9_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(10, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_10, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_10_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(11, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_11, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_11_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(12, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_12, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_12_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(13, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_13, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_13_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(14, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_14, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_14_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(15, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_15, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_15_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(16, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_16, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_16_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(17, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_17, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_17_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(18, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_18, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_18_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(19, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_19, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_19_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(20, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_20, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_20_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(21, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_21, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_21_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(22, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_22, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_22_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(23, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_23, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_23_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(24, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_24, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_24_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(25, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_25, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_25_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(26, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_26, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_26_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(27, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_27, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_27_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(28, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_28, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_28_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(29, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_29, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_29_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(30, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_30, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_30_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(31, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_31, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_31_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(32, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_32, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_32_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(33, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_33, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_33_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(34, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_34, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_34_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(35, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_35, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_35_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(36, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_36, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_36_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(37, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_37, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_37_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(38, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_38, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_38_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(39, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_39, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_39_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(40, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_40, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_40_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(41, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_41, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_41_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(42, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_42, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_42_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(43, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_43, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_43_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(44, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_44, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_44_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(45, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_45, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_45_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(46, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_46, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_46_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(47, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_47, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_47_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(48, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_48, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_48_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(49, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_49, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_49_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(50, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_50, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_50_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(51, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_51, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_51_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(52, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_52, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_52_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(53, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_53, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_53_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(54, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_54, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_54_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(55, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_55, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_55_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(56, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_56, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_56_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(57, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_57, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_57_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(58, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_58, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_58_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(59, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_59, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_59_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(60, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_60, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_60_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(61, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_61, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_61_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(62, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_62, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_62_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(63, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_63, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_63_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(64, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_64, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_64_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(65, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_65, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_65_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(66, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_66, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_66_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(67, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_67, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_67_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(68, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_68, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_68_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(69, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_69, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_69_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(70, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_70, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_70_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(71, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_71, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_71_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(72, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_72, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_72_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(73, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_73, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_73_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(74, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_74, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_74_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(75, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_75, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_75_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(76, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_76, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_76_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(77, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_77, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_77_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(78, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_78, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_78_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(79, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_79, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_79_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(80, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_80, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_80_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(81, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_81, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_81_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(82, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_82, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_82_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(83, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_83, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_83_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(84, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_84, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_84_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(85, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_85, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_85_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(86, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_86, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_86_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(87, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_87, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_87_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(88, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_88, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_88_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(89, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_89, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_89_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(90, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_90, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_90_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(91, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_91, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_91_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(92, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_92, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_92_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(93, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_93, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_93_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(94, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_94, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_94_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(95, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_95, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_95_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(96, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_96, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_96_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(97, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_97, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_97_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(98, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_98, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_98_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(99, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_99, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_99_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(100, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_100, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_100_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(101, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_101, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_101_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(102, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_102, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_102_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(103, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_103, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_103_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(104, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_104, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_104_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(105, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_105, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_105_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(106, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_106, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_106_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(107, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_107, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_107_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(108, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_108, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_108_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(109, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_109, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_109_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(110, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_110, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_110_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(111, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_111, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_111_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(112, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_112, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_112_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(113, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_113, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_113_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(114, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_114, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_114_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(115, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_115, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_115_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(116, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_116, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_116_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(117, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_117, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_117_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(118, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_118, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_118_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(119, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_119, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_119_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(120, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_120, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_120_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(121, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_121, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_121_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(122, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_122, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_122_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(123, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_123, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_123_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(124, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_124, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_124_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(125, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_125, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_125_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(126, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_126, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_126_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(127, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_127, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_127_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(128, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_128, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_128_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(129, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_129, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_129_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(130, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_130, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_130_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(131, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_131, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_131_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(132, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_132, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_132_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(133, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_133, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_133_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(134, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_134, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_134_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(135, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_135, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_135_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(136, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_136, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_136_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(137, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_137, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_137_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(138, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_138, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_138_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(139, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_139, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_139_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(140, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_140, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_140_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(141, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_141, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_141_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(142, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_142, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_142_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(143, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_143, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_143_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(144, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_144, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_144_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(145, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_145, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_145_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(146, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_146, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_146_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(147, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_147, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_147_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(148, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_148, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_148_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(149, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_149, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_149_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(150, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_150, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_150_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(151, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_151, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_151_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(152, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_152, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_152_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(153, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_153, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_153_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(154, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_154, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_154_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(155, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_155, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_155_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(156, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_156, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_156_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(157, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_157, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_157_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(158, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_158, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_158_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(159, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_159, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_159_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(160, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_160, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_160_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(161, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_161, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_161_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(162, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_162, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_162_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(163, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_163, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_163_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(164, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_164, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_164_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(165, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_165, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_165_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(166, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_166, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_166_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(167, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_167, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_167_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(168, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_168, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_168_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(169, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_169, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_169_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(170, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_170, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_170_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(171, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_171, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_171_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(172, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_172, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_172_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(173, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_173, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_173_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(174, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_174, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_174_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(175, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_175, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_175_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(176, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_176, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_176_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(177, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_177, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_177_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(178, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_178, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_178_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(179, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_179, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_179_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(180, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_180, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_180_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(181, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_181, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_181_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(182, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_182, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_182_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(183, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_183, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_183_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(184, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_184, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_184_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(185, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_185, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_185_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(186, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_186, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_186_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(187, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_187, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_187_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(188, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_188, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_188_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(189, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_189, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_189_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(190, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_190, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_190_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(191, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_191, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_191_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(192, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_192, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_192_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(193, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_193, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_193_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(194, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_194, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_194_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(195, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_195, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_195_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(196, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_196, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_196_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(197, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_197, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_197_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(198, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_198, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_198_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(199, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_199, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_199_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(200, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_200, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_200_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(201, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_201, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_201_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(202, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_202, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_202_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(203, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_203, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_203_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(204, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_204, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_204_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(205, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_205, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_205_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(206, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_206, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_206_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(207, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_207, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_207_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(208, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_208, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_208_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(209, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_209, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_209_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(210, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_210, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_210_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(211, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_211, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_211_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(212, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_212, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_212_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(213, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_213, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_213_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(214, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_214, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_214_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(215, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_215, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_215_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(216, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_216, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_216_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(217, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_217, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_217_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(218, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_218, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_218_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(219, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_219, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_219_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(220, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_220, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_220_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(221, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_221, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_221_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(222, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_222, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_222_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(223, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_223, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_223_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(224, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_224, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_224_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(225, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_225, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_225_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(226, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_226, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_226_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(227, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_227, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_227_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(228, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_228, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_228_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(229, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_229, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_229_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(230, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_230, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_230_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(231, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_231, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_231_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(232, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_232, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_232_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(233, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_233, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_233_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(234, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_234, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_234_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(235, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_235, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_235_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(236, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_236, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_236_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(237, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_237, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_237_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(238, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_238, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_238_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(239, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_239, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_239_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(240, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_240, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_240_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(241, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_241, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_241_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(242, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_242, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_242_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(243, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_243, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_243_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(244, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_244, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_244_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(245, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_245, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_245_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(246, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_246, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_246_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(247, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_247, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_247_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(248, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_248, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_248_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(249, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_249, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_249_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(250, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_250, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_250_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(251, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_251, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_251_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(252, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_252, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_252_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(253, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_253, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_253_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(254, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_254, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_254_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(255, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_255, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_255_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(256, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_256, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_256_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(257, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_257, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_1_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(2, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_2, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_2_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(3, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_3, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_3_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(4, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_4, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_4_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(5, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_5, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_5_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(6, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_6, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_6_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(7, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_7, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_7_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(8, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_8, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_8_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(9, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_9, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_9_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(10, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_10, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_10_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(11, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_11, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_11_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(12, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_12, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_12_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(13, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_13, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_13_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(14, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_14, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_14_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(15, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_15, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_15_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(16, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_16, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_16_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(17, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_17, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_17_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(18, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_18, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_18_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(19, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_19, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_19_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(20, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_20, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_20_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(21, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_21, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_21_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(22, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_22, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_22_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(23, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_23, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_23_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(24, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_24, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_24_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(25, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_25, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_25_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(26, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_26, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_26_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(27, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_27, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_27_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(28, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_28, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_28_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(29, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_29, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_29_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(30, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_30, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_30_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(31, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_31, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_31_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(32, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_32, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_32_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(33, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_33, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_33_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(34, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_34, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_34_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(35, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_35, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_35_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(36, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_36, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_36_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(37, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_37, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_37_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(38, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_38, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_38_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(39, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_39, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_39_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(40, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_40, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_40_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(41, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_41, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_41_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(42, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_42, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_42_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(43, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_43, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_43_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(44, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_44, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_44_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(45, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_45, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_45_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(46, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_46, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_46_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(47, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_47, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_47_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(48, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_48, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_48_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(49, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_49, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_49_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(50, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_50, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_50_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(51, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_51, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_51_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(52, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_52, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_52_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(53, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_53, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_53_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(54, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_54, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_54_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(55, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_55, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_55_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(56, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_56, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_56_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(57, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_57, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_57_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(58, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_58, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_58_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(59, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_59, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_59_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(60, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_60, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_60_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(61, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_61, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_61_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(62, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_62, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_62_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(63, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_63, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_63_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(64, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_64, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_64_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(65, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_65, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_65_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(66, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_66, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_66_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(67, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_67, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_67_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(68, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_68, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_68_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(69, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_69, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_69_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(70, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_70, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_70_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(71, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_71, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_71_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(72, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_72, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_72_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(73, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_73, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_73_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(74, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_74, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_74_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(75, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_75, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_75_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(76, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_76, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_76_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(77, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_77, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_77_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(78, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_78, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_78_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(79, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_79, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_79_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(80, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_80, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_80_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(81, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_81, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_81_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(82, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_82, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_82_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(83, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_83, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_83_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(84, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_84, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_84_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(85, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_85, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_85_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(86, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_86, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_86_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(87, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_87, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_87_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(88, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_88, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_88_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(89, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_89, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_89_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(90, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_90, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_90_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(91, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_91, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_91_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(92, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_92, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_92_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(93, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_93, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_93_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(94, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_94, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_94_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(95, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_95, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_95_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(96, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_96, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_96_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(97, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_97, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_97_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(98, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_98, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_98_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(99, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_99, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_99_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(100, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_100, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_100_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(101, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_101, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_101_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(102, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_102, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_102_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(103, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_103, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_103_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(104, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_104, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_104_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(105, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_105, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_105_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(106, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_106, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_106_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(107, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_107, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_107_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(108, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_108, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_108_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(109, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_109, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_109_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(110, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_110, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_110_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(111, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_111, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_111_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(112, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_112, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_112_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(113, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_113, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_113_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(114, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_114, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_114_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(115, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_115, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_115_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(116, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_116, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_116_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(117, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_117, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_117_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(118, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_118, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_118_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(119, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_119, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_119_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(120, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_120, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_120_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(121, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_121, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_121_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(122, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_122, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_122_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(123, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_123, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_123_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(124, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_124, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_124_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(125, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_125, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_125_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(126, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_126, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_126_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(127, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_127, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_127_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(128, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_128, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_128_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(129, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_129, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_129_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(130, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_130, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_130_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(131, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_131, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_131_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(132, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_132, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_132_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(133, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_133, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_133_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(134, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_134, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_134_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(135, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_135, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_135_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(136, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_136, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_136_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(137, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_137, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_137_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(138, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_138, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_138_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(139, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_139, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_139_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(140, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_140, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_140_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(141, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_141, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_141_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(142, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_142, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_142_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(143, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_143, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_143_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(144, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_144, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_144_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(145, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_145, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_145_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(146, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_146, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_146_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(147, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_147, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_147_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(148, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_148, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_148_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(149, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_149, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_149_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(150, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_150, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_150_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(151, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_151, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_151_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(152, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_152, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_152_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(153, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_153, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_153_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(154, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_154, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_154_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(155, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_155, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_155_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(156, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_156, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_156_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(157, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_157, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_157_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(158, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_158, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_158_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(159, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_159, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_159_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(160, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_160, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_160_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(161, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_161, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_161_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(162, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_162, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_162_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(163, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_163, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_163_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(164, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_164, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_164_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(165, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_165, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_165_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(166, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_166, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_166_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(167, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_167, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_167_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(168, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_168, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_168_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(169, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_169, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_169_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(170, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_170, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_170_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(171, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_171, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_171_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(172, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_172, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_172_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(173, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_173, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_173_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(174, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_174, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_174_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(175, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_175, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_175_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(176, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_176, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_176_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(177, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_177, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_177_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(178, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_178, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_178_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(179, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_179, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_179_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(180, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_180, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_180_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(181, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_181, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_181_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(182, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_182, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_182_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(183, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_183, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_183_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(184, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_184, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_184_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(185, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_185, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_185_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(186, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_186, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_186_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(187, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_187, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_187_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(188, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_188, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_188_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(189, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_189, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_189_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(190, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_190, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_190_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(191, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_191, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_191_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(192, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_192, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_192_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(193, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_193, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_193_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(194, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_194, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_194_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(195, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_195, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_195_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(196, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_196, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_196_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(197, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_197, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_197_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(198, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_198, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_198_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(199, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_199, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_199_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(200, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_200, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_200_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(201, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_201, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_201_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(202, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_202, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_202_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(203, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_203, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_203_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(204, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_204, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_204_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(205, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_205, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_205_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(206, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_206, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_206_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(207, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_207, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_207_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(208, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_208, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_208_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(209, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_209, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_209_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(210, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_210, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_210_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(211, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_211, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_211_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(212, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_212, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_212_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(213, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_213, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_213_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(214, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_214, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_214_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(215, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_215, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_215_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(216, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_216, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_216_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(217, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_217, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_217_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(218, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_218, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_218_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(219, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_219, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_219_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(220, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_220, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_220_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(221, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_221, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_221_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(222, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_222, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_222_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(223, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_223, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_223_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(224, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_224, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_224_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(225, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_225, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_225_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(226, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_226, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_226_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(227, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_227, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_227_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(228, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_228, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_228_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(229, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_229, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_229_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(230, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_230, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_230_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(231, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_231, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_231_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(232, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_232, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_232_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(233, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_233, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_233_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(234, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_234, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_234_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(235, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_235, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_235_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(236, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_236, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_236_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(237, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_237, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_237_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(238, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_238, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_238_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(239, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_239, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_239_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(240, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_240, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_240_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(241, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_241, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_241_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(242, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_242, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_242_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(243, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_243, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_243_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(244, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_244, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_244_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(245, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_245, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_245_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(246, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_246, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_246_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(247, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_247, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_247_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(248, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_248, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_248_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(249, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_249, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_249_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(250, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_250, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_250_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(251, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_251, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_251_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(252, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_252, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_252_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(253, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_253, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_253_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(254, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_254, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_254_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(255, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_255, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_255_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(256, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_256, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_256_D(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o, s NDNBOOST_PP_TUPLE_EAT_3)(257, NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_RIGHT_257, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3)(o, s, NDNBOOST_PP_LIST_REST(l)), NDNBOOST_PP_LIST_FIRST(l))
 #
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_NIL 1
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_NIL 1
 #
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_1(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_2(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_3(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_4(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_5(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_6(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_7(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_8(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_9(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_10(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_11(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_12(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_13(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_14(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_15(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_16(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_17(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_18(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_19(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_20(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_21(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_22(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_23(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_24(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_25(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_26(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_27(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_28(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_29(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_30(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_31(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_32(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_33(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_34(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_35(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_36(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_37(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_38(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_39(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_40(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_41(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_42(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_43(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_44(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_45(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_46(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_47(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_48(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_49(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_50(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_51(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_52(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_53(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_54(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_55(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_56(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_57(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_58(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_59(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_60(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_61(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_62(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_63(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_64(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_65(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_66(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_67(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_68(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_69(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_70(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_71(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_72(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_73(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_74(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_75(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_76(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_77(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_78(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_79(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_80(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_81(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_82(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_83(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_84(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_85(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_86(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_87(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_88(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_89(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_90(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_91(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_92(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_93(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_94(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_95(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_96(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_97(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_98(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_99(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_100(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_101(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_102(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_103(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_104(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_105(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_106(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_107(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_108(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_109(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_110(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_111(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_112(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_113(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_114(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_115(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_116(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_117(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_118(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_119(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_120(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_121(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_122(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_123(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_124(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_125(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_126(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_127(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_128(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_129(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_130(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_131(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_132(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_133(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_134(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_135(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_136(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_137(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_138(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_139(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_140(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_141(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_142(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_143(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_144(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_145(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_146(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_147(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_148(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_149(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_150(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_151(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_152(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_153(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_154(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_155(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_156(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_157(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_158(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_159(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_160(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_161(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_162(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_163(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_164(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_165(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_166(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_167(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_168(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_169(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_170(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_171(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_172(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_173(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_174(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_175(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_176(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_177(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_178(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_179(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_180(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_181(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_182(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_183(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_184(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_185(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_186(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_187(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_188(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_189(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_190(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_191(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_192(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_193(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_194(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_195(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_196(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_197(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_198(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_199(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_200(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_201(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_202(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_203(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_204(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_205(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_206(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_207(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_208(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_209(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_210(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_211(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_212(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_213(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_214(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_215(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_216(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_217(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_218(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_219(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_220(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_221(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_222(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_223(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_224(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_225(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_226(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_227(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_228(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_229(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_230(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_231(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_232(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_233(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_234(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_235(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_236(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_237(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_238(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_239(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_240(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_241(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_242(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_243(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_244(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_245(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_246(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_247(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_248(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_249(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_250(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_251(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_252(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_253(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_254(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_255(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_256(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_1(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_2(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_3(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_4(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_5(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_6(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_7(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_8(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_9(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_10(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_11(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_12(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_13(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_14(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_15(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_16(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_17(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_18(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_19(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_20(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_21(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_22(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_23(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_24(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_25(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_26(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_27(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_28(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_29(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_30(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_31(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_32(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_33(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_34(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_35(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_36(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_37(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_38(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_39(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_40(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_41(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_42(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_43(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_44(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_45(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_46(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_47(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_48(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_49(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_50(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_51(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_52(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_53(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_54(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_55(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_56(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_57(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_58(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_59(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_60(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_61(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_62(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_63(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_64(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_65(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_66(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_67(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_68(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_69(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_70(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_71(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_72(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_73(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_74(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_75(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_76(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_77(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_78(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_79(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_80(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_81(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_82(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_83(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_84(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_85(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_86(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_87(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_88(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_89(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_90(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_91(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_92(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_93(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_94(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_95(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_96(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_97(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_98(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_99(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_100(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_101(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_102(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_103(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_104(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_105(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_106(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_107(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_108(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_109(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_110(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_111(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_112(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_113(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_114(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_115(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_116(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_117(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_118(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_119(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_120(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_121(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_122(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_123(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_124(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_125(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_126(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_127(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_128(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_129(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_130(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_131(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_132(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_133(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_134(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_135(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_136(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_137(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_138(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_139(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_140(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_141(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_142(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_143(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_144(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_145(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_146(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_147(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_148(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_149(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_150(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_151(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_152(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_153(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_154(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_155(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_156(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_157(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_158(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_159(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_160(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_161(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_162(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_163(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_164(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_165(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_166(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_167(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_168(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_169(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_170(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_171(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_172(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_173(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_174(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_175(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_176(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_177(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_178(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_179(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_180(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_181(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_182(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_183(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_184(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_185(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_186(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_187(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_188(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_189(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_190(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_191(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_192(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_193(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_194(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_195(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_196(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_197(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_198(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_199(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_200(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_201(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_202(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_203(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_204(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_205(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_206(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_207(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_208(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_209(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_210(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_211(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_212(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_213(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_214(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_215(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_216(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_217(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_218(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_219(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_220(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_221(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_222(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_223(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_224(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_225(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_226(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_227(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_228(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_229(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_230(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_231(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_232(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_233(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_234(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_235(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_236(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_237(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_238(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_239(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_240(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_241(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_242(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_243(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_244(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_245(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_246(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_247(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_248(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_249(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_250(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_251(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_252(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_253(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_254(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_255(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_LIST_FOLD_RIGHT_256(o, s, l) 0
 #
 # endif
diff --git a/include/ndnboost/preprocessor/list/detail/fold_left.hpp b/include/ndnboost/preprocessor/list/detail/fold_left.hpp
index 18b6d56..e2980fd 100644
--- a/include/ndnboost/preprocessor/list/detail/fold_left.hpp
+++ b/include/ndnboost/preprocessor/list/detail/fold_left.hpp
@@ -11,269 +11,269 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_LIST_DETAIL_FOLD_LEFT_HPP
-# define BOOST_PREPROCESSOR_LIST_DETAIL_FOLD_LEFT_HPP
+# ifndef NDNBOOST_PREPROCESSOR_LIST_DETAIL_FOLD_LEFT_HPP
+# define NDNBOOST_PREPROCESSOR_LIST_DETAIL_FOLD_LEFT_HPP
 #
 # include <ndnboost/preprocessor/control/expr_iif.hpp>
 # include <ndnboost/preprocessor/control/iif.hpp>
 # include <ndnboost/preprocessor/list/adt.hpp>
 # include <ndnboost/preprocessor/tuple/eat.hpp>
 #
-# define BOOST_PP_LIST_FOLD_LEFT_1(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_2, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(2, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_2(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_3, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(3, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_3(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_4, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(4, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_4(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_5, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(5, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_5(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_6, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(6, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_6(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_7, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(7, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_7(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_8, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(8, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_8(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_9, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(9, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_9(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_10, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(10, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_10(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_11, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(11, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_11(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_12, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(12, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_12(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_13, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(13, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_13(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_14, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(14, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_14(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_15, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(15, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_15(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_16, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(16, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_16(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_17, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(17, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_17(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_18, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(18, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_18(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_19, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(19, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_19(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_20, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(20, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_20(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_21, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(21, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_21(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_22, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(22, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_22(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_23, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(23, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_23(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_24, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(24, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_24(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_25, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(25, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_25(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_26, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(26, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_26(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_27, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(27, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_27(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_28, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(28, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_28(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_29, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(29, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_29(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_30, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(30, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_30(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_31, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(31, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_31(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_32, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(32, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_32(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_33, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(33, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_33(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_34, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(34, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_34(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_35, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(35, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_35(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_36, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(36, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_36(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_37, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(37, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_37(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_38, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(38, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_38(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_39, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(39, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_39(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_40, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(40, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_40(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_41, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(41, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_41(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_42, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(42, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_42(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_43, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(43, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_43(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_44, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(44, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_44(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_45, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(45, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_45(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_46, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(46, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_46(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_47, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(47, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_47(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_48, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(48, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_48(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_49, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(49, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_49(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_50, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(50, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_50(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_51, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(51, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_51(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_52, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(52, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_52(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_53, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(53, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_53(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_54, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(54, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_54(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_55, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(55, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_55(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_56, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(56, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_56(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_57, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(57, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_57(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_58, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(58, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_58(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_59, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(59, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_59(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_60, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(60, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_60(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_61, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(61, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_61(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_62, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(62, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_62(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_63, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(63, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_63(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_64, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(64, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_64(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_65, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(65, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_65(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_66, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(66, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_66(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_67, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(67, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_67(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_68, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(68, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_68(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_69, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(69, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_69(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_70, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(70, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_70(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_71, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(71, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_71(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_72, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(72, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_72(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_73, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(73, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_73(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_74, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(74, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_74(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_75, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(75, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_75(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_76, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(76, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_76(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_77, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(77, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_77(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_78, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(78, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_78(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_79, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(79, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_79(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_80, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(80, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_80(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_81, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(81, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_81(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_82, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(82, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_82(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_83, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(83, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_83(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_84, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(84, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_84(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_85, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(85, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_85(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_86, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(86, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_86(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_87, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(87, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_87(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_88, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(88, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_88(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_89, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(89, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_89(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_90, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(90, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_90(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_91, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(91, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_91(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_92, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(92, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_92(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_93, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(93, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_93(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_94, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(94, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_94(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_95, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(95, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_95(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_96, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(96, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_96(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_97, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(97, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_97(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_98, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(98, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_98(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_99, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(99, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_99(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_100, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(100, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_100(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_101, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(101, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_101(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_102, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(102, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_102(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_103, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(103, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_103(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_104, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(104, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_104(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_105, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(105, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_105(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_106, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(106, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_106(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_107, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(107, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_107(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_108, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(108, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_108(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_109, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(109, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_109(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_110, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(110, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_110(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_111, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(111, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_111(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_112, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(112, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_112(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_113, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(113, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_113(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_114, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(114, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_114(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_115, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(115, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_115(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_116, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(116, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_116(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_117, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(117, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_117(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_118, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(118, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_118(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_119, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(119, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_119(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_120, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(120, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_120(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_121, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(121, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_121(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_122, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(122, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_122(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_123, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(123, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_123(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_124, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(124, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_124(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_125, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(125, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_125(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_126, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(126, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_126(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_127, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(127, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_127(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_128, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(128, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_128(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_129, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(129, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_129(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_130, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(130, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_130(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_131, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(131, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_131(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_132, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(132, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_132(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_133, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(133, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_133(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_134, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(134, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_134(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_135, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(135, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_135(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_136, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(136, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_136(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_137, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(137, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_137(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_138, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(138, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_138(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_139, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(139, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_139(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_140, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(140, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_140(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_141, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(141, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_141(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_142, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(142, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_142(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_143, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(143, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_143(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_144, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(144, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_144(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_145, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(145, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_145(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_146, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(146, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_146(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_147, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(147, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_147(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_148, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(148, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_148(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_149, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(149, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_149(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_150, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(150, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_150(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_151, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(151, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_151(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_152, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(152, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_152(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_153, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(153, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_153(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_154, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(154, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_154(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_155, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(155, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_155(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_156, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(156, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_156(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_157, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(157, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_157(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_158, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(158, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_158(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_159, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(159, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_159(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_160, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(160, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_160(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_161, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(161, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_161(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_162, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(162, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_162(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_163, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(163, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_163(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_164, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(164, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_164(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_165, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(165, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_165(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_166, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(166, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_166(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_167, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(167, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_167(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_168, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(168, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_168(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_169, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(169, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_169(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_170, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(170, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_170(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_171, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(171, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_171(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_172, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(172, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_172(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_173, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(173, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_173(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_174, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(174, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_174(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_175, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(175, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_175(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_176, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(176, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_176(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_177, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(177, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_177(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_178, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(178, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_178(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_179, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(179, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_179(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_180, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(180, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_180(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_181, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(181, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_181(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_182, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(182, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_182(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_183, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(183, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_183(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_184, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(184, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_184(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_185, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(185, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_185(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_186, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(186, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_186(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_187, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(187, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_187(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_188, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(188, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_188(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_189, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(189, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_189(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_190, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(190, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_190(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_191, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(191, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_191(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_192, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(192, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_192(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_193, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(193, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_193(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_194, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(194, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_194(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_195, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(195, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_195(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_196, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(196, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_196(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_197, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(197, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_197(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_198, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(198, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_198(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_199, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(199, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_199(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_200, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(200, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_200(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_201, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(201, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_201(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_202, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(202, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_202(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_203, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(203, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_203(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_204, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(204, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_204(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_205, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(205, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_205(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_206, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(206, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_206(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_207, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(207, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_207(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_208, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(208, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_208(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_209, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(209, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_209(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_210, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(210, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_210(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_211, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(211, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_211(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_212, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(212, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_212(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_213, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(213, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_213(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_214, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(214, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_214(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_215, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(215, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_215(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_216, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(216, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_216(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_217, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(217, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_217(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_218, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(218, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_218(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_219, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(219, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_219(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_220, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(220, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_220(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_221, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(221, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_221(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_222, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(222, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_222(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_223, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(223, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_223(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_224, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(224, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_224(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_225, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(225, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_225(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_226, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(226, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_226(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_227, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(227, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_227(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_228, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(228, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_228(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_229, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(229, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_229(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_230, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(230, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_230(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_231, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(231, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_231(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_232, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(232, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_232(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_233, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(233, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_233(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_234, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(234, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_234(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_235, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(235, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_235(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_236, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(236, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_236(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_237, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(237, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_237(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_238, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(238, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_238(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_239, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(239, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_239(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_240, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(240, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_240(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_241, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(241, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_241(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_242, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(242, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_242(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_243, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(243, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_243(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_244, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(244, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_244(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_245, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(245, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_245(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_246, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(246, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_246(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_247, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(247, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_247(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_248, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(248, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_248(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_249, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(249, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_249(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_250, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(250, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_250(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_251, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(251, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_251(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_252, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(252, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_252(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_253, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(253, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_253(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_254, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(254, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_254(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_255, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(255, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_255(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_256, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(256, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_256(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_257, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(257, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_1(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_2, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(2, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_2(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_3, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(3, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_3(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_4, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(4, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_4(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_5, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(5, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_5(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_6, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(6, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_6(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_7, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(7, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_7(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_8, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(8, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_8(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_9, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(9, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_9(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_10, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(10, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_10(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_11, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(11, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_11(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_12, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(12, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_12(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_13, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(13, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_13(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_14, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(14, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_14(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_15, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(15, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_15(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_16, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(16, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_16(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_17, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(17, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_17(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_18, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(18, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_18(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_19, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(19, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_19(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_20, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(20, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_20(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_21, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(21, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_21(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_22, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(22, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_22(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_23, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(23, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_23(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_24, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(24, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_24(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_25, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(25, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_25(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_26, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(26, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_26(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_27, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(27, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_27(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_28, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(28, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_28(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_29, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(29, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_29(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_30, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(30, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_30(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_31, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(31, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_31(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_32, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(32, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_32(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_33, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(33, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_33(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_34, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(34, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_34(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_35, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(35, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_35(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_36, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(36, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_36(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_37, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(37, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_37(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_38, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(38, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_38(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_39, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(39, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_39(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_40, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(40, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_40(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_41, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(41, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_41(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_42, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(42, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_42(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_43, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(43, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_43(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_44, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(44, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_44(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_45, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(45, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_45(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_46, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(46, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_46(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_47, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(47, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_47(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_48, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(48, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_48(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_49, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(49, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_49(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_50, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(50, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_50(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_51, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(51, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_51(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_52, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(52, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_52(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_53, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(53, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_53(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_54, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(54, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_54(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_55, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(55, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_55(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_56, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(56, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_56(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_57, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(57, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_57(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_58, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(58, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_58(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_59, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(59, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_59(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_60, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(60, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_60(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_61, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(61, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_61(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_62, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(62, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_62(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_63, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(63, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_63(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_64, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(64, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_64(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_65, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(65, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_65(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_66, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(66, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_66(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_67, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(67, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_67(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_68, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(68, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_68(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_69, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(69, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_69(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_70, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(70, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_70(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_71, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(71, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_71(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_72, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(72, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_72(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_73, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(73, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_73(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_74, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(74, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_74(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_75, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(75, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_75(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_76, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(76, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_76(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_77, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(77, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_77(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_78, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(78, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_78(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_79, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(79, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_79(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_80, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(80, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_80(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_81, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(81, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_81(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_82, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(82, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_82(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_83, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(83, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_83(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_84, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(84, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_84(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_85, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(85, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_85(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_86, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(86, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_86(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_87, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(87, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_87(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_88, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(88, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_88(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_89, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(89, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_89(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_90, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(90, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_90(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_91, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(91, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_91(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_92, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(92, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_92(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_93, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(93, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_93(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_94, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(94, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_94(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_95, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(95, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_95(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_96, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(96, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_96(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_97, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(97, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_97(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_98, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(98, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_98(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_99, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(99, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_99(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_100, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(100, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_100(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_101, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(101, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_101(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_102, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(102, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_102(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_103, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(103, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_103(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_104, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(104, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_104(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_105, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(105, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_105(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_106, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(106, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_106(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_107, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(107, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_107(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_108, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(108, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_108(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_109, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(109, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_109(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_110, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(110, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_110(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_111, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(111, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_111(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_112, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(112, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_112(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_113, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(113, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_113(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_114, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(114, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_114(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_115, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(115, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_115(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_116, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(116, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_116(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_117, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(117, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_117(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_118, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(118, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_118(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_119, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(119, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_119(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_120, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(120, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_120(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_121, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(121, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_121(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_122, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(122, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_122(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_123, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(123, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_123(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_124, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(124, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_124(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_125, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(125, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_125(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_126, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(126, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_126(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_127, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(127, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_127(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_128, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(128, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_128(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_129, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(129, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_129(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_130, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(130, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_130(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_131, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(131, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_131(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_132, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(132, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_132(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_133, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(133, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_133(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_134, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(134, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_134(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_135, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(135, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_135(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_136, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(136, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_136(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_137, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(137, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_137(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_138, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(138, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_138(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_139, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(139, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_139(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_140, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(140, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_140(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_141, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(141, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_141(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_142, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(142, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_142(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_143, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(143, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_143(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_144, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(144, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_144(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_145, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(145, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_145(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_146, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(146, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_146(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_147, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(147, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_147(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_148, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(148, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_148(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_149, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(149, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_149(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_150, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(150, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_150(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_151, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(151, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_151(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_152, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(152, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_152(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_153, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(153, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_153(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_154, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(154, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_154(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_155, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(155, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_155(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_156, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(156, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_156(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_157, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(157, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_157(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_158, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(158, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_158(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_159, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(159, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_159(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_160, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(160, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_160(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_161, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(161, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_161(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_162, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(162, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_162(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_163, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(163, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_163(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_164, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(164, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_164(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_165, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(165, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_165(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_166, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(166, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_166(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_167, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(167, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_167(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_168, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(168, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_168(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_169, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(169, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_169(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_170, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(170, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_170(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_171, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(171, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_171(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_172, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(172, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_172(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_173, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(173, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_173(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_174, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(174, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_174(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_175, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(175, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_175(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_176, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(176, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_176(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_177, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(177, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_177(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_178, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(178, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_178(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_179, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(179, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_179(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_180, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(180, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_180(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_181, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(181, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_181(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_182, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(182, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_182(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_183, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(183, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_183(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_184, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(184, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_184(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_185, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(185, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_185(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_186, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(186, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_186(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_187, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(187, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_187(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_188, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(188, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_188(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_189, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(189, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_189(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_190, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(190, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_190(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_191, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(191, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_191(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_192, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(192, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_192(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_193, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(193, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_193(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_194, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(194, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_194(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_195, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(195, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_195(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_196, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(196, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_196(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_197, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(197, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_197(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_198, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(198, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_198(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_199, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(199, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_199(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_200, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(200, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_200(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_201, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(201, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_201(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_202, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(202, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_202(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_203, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(203, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_203(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_204, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(204, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_204(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_205, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(205, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_205(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_206, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(206, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_206(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_207, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(207, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_207(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_208, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(208, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_208(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_209, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(209, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_209(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_210, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(210, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_210(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_211, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(211, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_211(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_212, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(212, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_212(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_213, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(213, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_213(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_214, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(214, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_214(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_215, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(215, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_215(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_216, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(216, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_216(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_217, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(217, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_217(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_218, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(218, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_218(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_219, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(219, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_219(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_220, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(220, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_220(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_221, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(221, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_221(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_222, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(222, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_222(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_223, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(223, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_223(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_224, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(224, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_224(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_225, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(225, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_225(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_226, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(226, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_226(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_227, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(227, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_227(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_228, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(228, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_228(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_229, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(229, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_229(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_230, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(230, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_230(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_231, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(231, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_231(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_232, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(232, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_232(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_233, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(233, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_233(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_234, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(234, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_234(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_235, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(235, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_235(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_236, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(236, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_236(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_237, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(237, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_237(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_238, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(238, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_238(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_239, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(239, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_239(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_240, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(240, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_240(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_241, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(241, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_241(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_242, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(242, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_242(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_243, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(243, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_243(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_244, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(244, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_244(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_245, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(245, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_245(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_246, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(246, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_246(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_247, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(247, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_247(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_248, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(248, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_248(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_249, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(249, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_249(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_250, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(250, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_250(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_251, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(251, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_251(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_252, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(252, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_252(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_253, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(253, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_253(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_254, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(254, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_254(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_255, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(255, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_255(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_256, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(256, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
+# define NDNBOOST_PP_LIST_FOLD_LEFT_256(o, s, l) NDNBOOST_PP_IIF(NDNBOOST_PP_LIST_IS_CONS(l), NDNBOOST_PP_LIST_FOLD_LEFT_257, s NDNBOOST_PP_TUPLE_EAT_3)(o, NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_LIST_IS_CONS(l), o)(257, s, NDNBOOST_PP_LIST_FIRST(l)), NDNBOOST_PP_LIST_REST(l))
 #
 # endif
diff --git a/include/ndnboost/preprocessor/list/detail/fold_right.hpp b/include/ndnboost/preprocessor/list/detail/fold_right.hpp
index 72dfe91..2a1f045 100644
--- a/include/ndnboost/preprocessor/list/detail/fold_right.hpp
+++ b/include/ndnboost/preprocessor/list/detail/fold_right.hpp
@@ -11,267 +11,267 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_LIST_DETAIL_FOLD_RIGHT_HPP
-# define BOOST_PREPROCESSOR_LIST_DETAIL_FOLD_RIGHT_HPP
+# ifndef NDNBOOST_PREPROCESSOR_LIST_DETAIL_FOLD_RIGHT_HPP
+# define NDNBOOST_PREPROCESSOR_LIST_DETAIL_FOLD_RIGHT_HPP
 #
 # include <ndnboost/preprocessor/list/fold_left.hpp>
 # include <ndnboost/preprocessor/list/reverse.hpp>
 #
-# define BOOST_PP_LIST_FOLD_RIGHT_1(o, s, l) BOOST_PP_LIST_FOLD_LEFT_1(o, s, BOOST_PP_LIST_REVERSE_D(1, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_2(o, s, l) BOOST_PP_LIST_FOLD_LEFT_2(o, s, BOOST_PP_LIST_REVERSE_D(2, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_3(o, s, l) BOOST_PP_LIST_FOLD_LEFT_3(o, s, BOOST_PP_LIST_REVERSE_D(3, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_4(o, s, l) BOOST_PP_LIST_FOLD_LEFT_4(o, s, BOOST_PP_LIST_REVERSE_D(4, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_5(o, s, l) BOOST_PP_LIST_FOLD_LEFT_5(o, s, BOOST_PP_LIST_REVERSE_D(5, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_6(o, s, l) BOOST_PP_LIST_FOLD_LEFT_6(o, s, BOOST_PP_LIST_REVERSE_D(6, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_7(o, s, l) BOOST_PP_LIST_FOLD_LEFT_7(o, s, BOOST_PP_LIST_REVERSE_D(7, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_8(o, s, l) BOOST_PP_LIST_FOLD_LEFT_8(o, s, BOOST_PP_LIST_REVERSE_D(8, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_9(o, s, l) BOOST_PP_LIST_FOLD_LEFT_9(o, s, BOOST_PP_LIST_REVERSE_D(9, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_10(o, s, l) BOOST_PP_LIST_FOLD_LEFT_10(o, s, BOOST_PP_LIST_REVERSE_D(10, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_11(o, s, l) BOOST_PP_LIST_FOLD_LEFT_11(o, s, BOOST_PP_LIST_REVERSE_D(11, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_12(o, s, l) BOOST_PP_LIST_FOLD_LEFT_12(o, s, BOOST_PP_LIST_REVERSE_D(12, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_13(o, s, l) BOOST_PP_LIST_FOLD_LEFT_13(o, s, BOOST_PP_LIST_REVERSE_D(13, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_14(o, s, l) BOOST_PP_LIST_FOLD_LEFT_14(o, s, BOOST_PP_LIST_REVERSE_D(14, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_15(o, s, l) BOOST_PP_LIST_FOLD_LEFT_15(o, s, BOOST_PP_LIST_REVERSE_D(15, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_16(o, s, l) BOOST_PP_LIST_FOLD_LEFT_16(o, s, BOOST_PP_LIST_REVERSE_D(16, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_17(o, s, l) BOOST_PP_LIST_FOLD_LEFT_17(o, s, BOOST_PP_LIST_REVERSE_D(17, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_18(o, s, l) BOOST_PP_LIST_FOLD_LEFT_18(o, s, BOOST_PP_LIST_REVERSE_D(18, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_19(o, s, l) BOOST_PP_LIST_FOLD_LEFT_19(o, s, BOOST_PP_LIST_REVERSE_D(19, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_20(o, s, l) BOOST_PP_LIST_FOLD_LEFT_20(o, s, BOOST_PP_LIST_REVERSE_D(20, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_21(o, s, l) BOOST_PP_LIST_FOLD_LEFT_21(o, s, BOOST_PP_LIST_REVERSE_D(21, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_22(o, s, l) BOOST_PP_LIST_FOLD_LEFT_22(o, s, BOOST_PP_LIST_REVERSE_D(22, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_23(o, s, l) BOOST_PP_LIST_FOLD_LEFT_23(o, s, BOOST_PP_LIST_REVERSE_D(23, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_24(o, s, l) BOOST_PP_LIST_FOLD_LEFT_24(o, s, BOOST_PP_LIST_REVERSE_D(24, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_25(o, s, l) BOOST_PP_LIST_FOLD_LEFT_25(o, s, BOOST_PP_LIST_REVERSE_D(25, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_26(o, s, l) BOOST_PP_LIST_FOLD_LEFT_26(o, s, BOOST_PP_LIST_REVERSE_D(26, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_27(o, s, l) BOOST_PP_LIST_FOLD_LEFT_27(o, s, BOOST_PP_LIST_REVERSE_D(27, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_28(o, s, l) BOOST_PP_LIST_FOLD_LEFT_28(o, s, BOOST_PP_LIST_REVERSE_D(28, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_29(o, s, l) BOOST_PP_LIST_FOLD_LEFT_29(o, s, BOOST_PP_LIST_REVERSE_D(29, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_30(o, s, l) BOOST_PP_LIST_FOLD_LEFT_30(o, s, BOOST_PP_LIST_REVERSE_D(30, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_31(o, s, l) BOOST_PP_LIST_FOLD_LEFT_31(o, s, BOOST_PP_LIST_REVERSE_D(31, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_32(o, s, l) BOOST_PP_LIST_FOLD_LEFT_32(o, s, BOOST_PP_LIST_REVERSE_D(32, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_33(o, s, l) BOOST_PP_LIST_FOLD_LEFT_33(o, s, BOOST_PP_LIST_REVERSE_D(33, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_34(o, s, l) BOOST_PP_LIST_FOLD_LEFT_34(o, s, BOOST_PP_LIST_REVERSE_D(34, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_35(o, s, l) BOOST_PP_LIST_FOLD_LEFT_35(o, s, BOOST_PP_LIST_REVERSE_D(35, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_36(o, s, l) BOOST_PP_LIST_FOLD_LEFT_36(o, s, BOOST_PP_LIST_REVERSE_D(36, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_37(o, s, l) BOOST_PP_LIST_FOLD_LEFT_37(o, s, BOOST_PP_LIST_REVERSE_D(37, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_38(o, s, l) BOOST_PP_LIST_FOLD_LEFT_38(o, s, BOOST_PP_LIST_REVERSE_D(38, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_39(o, s, l) BOOST_PP_LIST_FOLD_LEFT_39(o, s, BOOST_PP_LIST_REVERSE_D(39, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_40(o, s, l) BOOST_PP_LIST_FOLD_LEFT_40(o, s, BOOST_PP_LIST_REVERSE_D(40, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_41(o, s, l) BOOST_PP_LIST_FOLD_LEFT_41(o, s, BOOST_PP_LIST_REVERSE_D(41, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_42(o, s, l) BOOST_PP_LIST_FOLD_LEFT_42(o, s, BOOST_PP_LIST_REVERSE_D(42, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_43(o, s, l) BOOST_PP_LIST_FOLD_LEFT_43(o, s, BOOST_PP_LIST_REVERSE_D(43, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_44(o, s, l) BOOST_PP_LIST_FOLD_LEFT_44(o, s, BOOST_PP_LIST_REVERSE_D(44, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_45(o, s, l) BOOST_PP_LIST_FOLD_LEFT_45(o, s, BOOST_PP_LIST_REVERSE_D(45, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_46(o, s, l) BOOST_PP_LIST_FOLD_LEFT_46(o, s, BOOST_PP_LIST_REVERSE_D(46, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_47(o, s, l) BOOST_PP_LIST_FOLD_LEFT_47(o, s, BOOST_PP_LIST_REVERSE_D(47, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_48(o, s, l) BOOST_PP_LIST_FOLD_LEFT_48(o, s, BOOST_PP_LIST_REVERSE_D(48, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_49(o, s, l) BOOST_PP_LIST_FOLD_LEFT_49(o, s, BOOST_PP_LIST_REVERSE_D(49, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_50(o, s, l) BOOST_PP_LIST_FOLD_LEFT_50(o, s, BOOST_PP_LIST_REVERSE_D(50, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_51(o, s, l) BOOST_PP_LIST_FOLD_LEFT_51(o, s, BOOST_PP_LIST_REVERSE_D(51, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_52(o, s, l) BOOST_PP_LIST_FOLD_LEFT_52(o, s, BOOST_PP_LIST_REVERSE_D(52, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_53(o, s, l) BOOST_PP_LIST_FOLD_LEFT_53(o, s, BOOST_PP_LIST_REVERSE_D(53, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_54(o, s, l) BOOST_PP_LIST_FOLD_LEFT_54(o, s, BOOST_PP_LIST_REVERSE_D(54, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_55(o, s, l) BOOST_PP_LIST_FOLD_LEFT_55(o, s, BOOST_PP_LIST_REVERSE_D(55, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_56(o, s, l) BOOST_PP_LIST_FOLD_LEFT_56(o, s, BOOST_PP_LIST_REVERSE_D(56, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_57(o, s, l) BOOST_PP_LIST_FOLD_LEFT_57(o, s, BOOST_PP_LIST_REVERSE_D(57, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_58(o, s, l) BOOST_PP_LIST_FOLD_LEFT_58(o, s, BOOST_PP_LIST_REVERSE_D(58, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_59(o, s, l) BOOST_PP_LIST_FOLD_LEFT_59(o, s, BOOST_PP_LIST_REVERSE_D(59, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_60(o, s, l) BOOST_PP_LIST_FOLD_LEFT_60(o, s, BOOST_PP_LIST_REVERSE_D(60, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_61(o, s, l) BOOST_PP_LIST_FOLD_LEFT_61(o, s, BOOST_PP_LIST_REVERSE_D(61, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_62(o, s, l) BOOST_PP_LIST_FOLD_LEFT_62(o, s, BOOST_PP_LIST_REVERSE_D(62, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_63(o, s, l) BOOST_PP_LIST_FOLD_LEFT_63(o, s, BOOST_PP_LIST_REVERSE_D(63, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_64(o, s, l) BOOST_PP_LIST_FOLD_LEFT_64(o, s, BOOST_PP_LIST_REVERSE_D(64, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_65(o, s, l) BOOST_PP_LIST_FOLD_LEFT_65(o, s, BOOST_PP_LIST_REVERSE_D(65, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_66(o, s, l) BOOST_PP_LIST_FOLD_LEFT_66(o, s, BOOST_PP_LIST_REVERSE_D(66, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_67(o, s, l) BOOST_PP_LIST_FOLD_LEFT_67(o, s, BOOST_PP_LIST_REVERSE_D(67, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_68(o, s, l) BOOST_PP_LIST_FOLD_LEFT_68(o, s, BOOST_PP_LIST_REVERSE_D(68, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_69(o, s, l) BOOST_PP_LIST_FOLD_LEFT_69(o, s, BOOST_PP_LIST_REVERSE_D(69, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_70(o, s, l) BOOST_PP_LIST_FOLD_LEFT_70(o, s, BOOST_PP_LIST_REVERSE_D(70, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_71(o, s, l) BOOST_PP_LIST_FOLD_LEFT_71(o, s, BOOST_PP_LIST_REVERSE_D(71, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_72(o, s, l) BOOST_PP_LIST_FOLD_LEFT_72(o, s, BOOST_PP_LIST_REVERSE_D(72, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_73(o, s, l) BOOST_PP_LIST_FOLD_LEFT_73(o, s, BOOST_PP_LIST_REVERSE_D(73, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_74(o, s, l) BOOST_PP_LIST_FOLD_LEFT_74(o, s, BOOST_PP_LIST_REVERSE_D(74, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_75(o, s, l) BOOST_PP_LIST_FOLD_LEFT_75(o, s, BOOST_PP_LIST_REVERSE_D(75, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_76(o, s, l) BOOST_PP_LIST_FOLD_LEFT_76(o, s, BOOST_PP_LIST_REVERSE_D(76, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_77(o, s, l) BOOST_PP_LIST_FOLD_LEFT_77(o, s, BOOST_PP_LIST_REVERSE_D(77, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_78(o, s, l) BOOST_PP_LIST_FOLD_LEFT_78(o, s, BOOST_PP_LIST_REVERSE_D(78, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_79(o, s, l) BOOST_PP_LIST_FOLD_LEFT_79(o, s, BOOST_PP_LIST_REVERSE_D(79, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_80(o, s, l) BOOST_PP_LIST_FOLD_LEFT_80(o, s, BOOST_PP_LIST_REVERSE_D(80, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_81(o, s, l) BOOST_PP_LIST_FOLD_LEFT_81(o, s, BOOST_PP_LIST_REVERSE_D(81, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_82(o, s, l) BOOST_PP_LIST_FOLD_LEFT_82(o, s, BOOST_PP_LIST_REVERSE_D(82, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_83(o, s, l) BOOST_PP_LIST_FOLD_LEFT_83(o, s, BOOST_PP_LIST_REVERSE_D(83, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_84(o, s, l) BOOST_PP_LIST_FOLD_LEFT_84(o, s, BOOST_PP_LIST_REVERSE_D(84, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_85(o, s, l) BOOST_PP_LIST_FOLD_LEFT_85(o, s, BOOST_PP_LIST_REVERSE_D(85, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_86(o, s, l) BOOST_PP_LIST_FOLD_LEFT_86(o, s, BOOST_PP_LIST_REVERSE_D(86, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_87(o, s, l) BOOST_PP_LIST_FOLD_LEFT_87(o, s, BOOST_PP_LIST_REVERSE_D(87, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_88(o, s, l) BOOST_PP_LIST_FOLD_LEFT_88(o, s, BOOST_PP_LIST_REVERSE_D(88, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_89(o, s, l) BOOST_PP_LIST_FOLD_LEFT_89(o, s, BOOST_PP_LIST_REVERSE_D(89, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_90(o, s, l) BOOST_PP_LIST_FOLD_LEFT_90(o, s, BOOST_PP_LIST_REVERSE_D(90, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_91(o, s, l) BOOST_PP_LIST_FOLD_LEFT_91(o, s, BOOST_PP_LIST_REVERSE_D(91, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_92(o, s, l) BOOST_PP_LIST_FOLD_LEFT_92(o, s, BOOST_PP_LIST_REVERSE_D(92, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_93(o, s, l) BOOST_PP_LIST_FOLD_LEFT_93(o, s, BOOST_PP_LIST_REVERSE_D(93, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_94(o, s, l) BOOST_PP_LIST_FOLD_LEFT_94(o, s, BOOST_PP_LIST_REVERSE_D(94, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_95(o, s, l) BOOST_PP_LIST_FOLD_LEFT_95(o, s, BOOST_PP_LIST_REVERSE_D(95, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_96(o, s, l) BOOST_PP_LIST_FOLD_LEFT_96(o, s, BOOST_PP_LIST_REVERSE_D(96, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_97(o, s, l) BOOST_PP_LIST_FOLD_LEFT_97(o, s, BOOST_PP_LIST_REVERSE_D(97, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_98(o, s, l) BOOST_PP_LIST_FOLD_LEFT_98(o, s, BOOST_PP_LIST_REVERSE_D(98, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_99(o, s, l) BOOST_PP_LIST_FOLD_LEFT_99(o, s, BOOST_PP_LIST_REVERSE_D(99, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_100(o, s, l) BOOST_PP_LIST_FOLD_LEFT_100(o, s, BOOST_PP_LIST_REVERSE_D(100, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_101(o, s, l) BOOST_PP_LIST_FOLD_LEFT_101(o, s, BOOST_PP_LIST_REVERSE_D(101, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_102(o, s, l) BOOST_PP_LIST_FOLD_LEFT_102(o, s, BOOST_PP_LIST_REVERSE_D(102, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_103(o, s, l) BOOST_PP_LIST_FOLD_LEFT_103(o, s, BOOST_PP_LIST_REVERSE_D(103, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_104(o, s, l) BOOST_PP_LIST_FOLD_LEFT_104(o, s, BOOST_PP_LIST_REVERSE_D(104, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_105(o, s, l) BOOST_PP_LIST_FOLD_LEFT_105(o, s, BOOST_PP_LIST_REVERSE_D(105, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_106(o, s, l) BOOST_PP_LIST_FOLD_LEFT_106(o, s, BOOST_PP_LIST_REVERSE_D(106, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_107(o, s, l) BOOST_PP_LIST_FOLD_LEFT_107(o, s, BOOST_PP_LIST_REVERSE_D(107, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_108(o, s, l) BOOST_PP_LIST_FOLD_LEFT_108(o, s, BOOST_PP_LIST_REVERSE_D(108, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_109(o, s, l) BOOST_PP_LIST_FOLD_LEFT_109(o, s, BOOST_PP_LIST_REVERSE_D(109, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_110(o, s, l) BOOST_PP_LIST_FOLD_LEFT_110(o, s, BOOST_PP_LIST_REVERSE_D(110, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_111(o, s, l) BOOST_PP_LIST_FOLD_LEFT_111(o, s, BOOST_PP_LIST_REVERSE_D(111, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_112(o, s, l) BOOST_PP_LIST_FOLD_LEFT_112(o, s, BOOST_PP_LIST_REVERSE_D(112, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_113(o, s, l) BOOST_PP_LIST_FOLD_LEFT_113(o, s, BOOST_PP_LIST_REVERSE_D(113, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_114(o, s, l) BOOST_PP_LIST_FOLD_LEFT_114(o, s, BOOST_PP_LIST_REVERSE_D(114, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_115(o, s, l) BOOST_PP_LIST_FOLD_LEFT_115(o, s, BOOST_PP_LIST_REVERSE_D(115, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_116(o, s, l) BOOST_PP_LIST_FOLD_LEFT_116(o, s, BOOST_PP_LIST_REVERSE_D(116, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_117(o, s, l) BOOST_PP_LIST_FOLD_LEFT_117(o, s, BOOST_PP_LIST_REVERSE_D(117, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_118(o, s, l) BOOST_PP_LIST_FOLD_LEFT_118(o, s, BOOST_PP_LIST_REVERSE_D(118, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_119(o, s, l) BOOST_PP_LIST_FOLD_LEFT_119(o, s, BOOST_PP_LIST_REVERSE_D(119, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_120(o, s, l) BOOST_PP_LIST_FOLD_LEFT_120(o, s, BOOST_PP_LIST_REVERSE_D(120, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_121(o, s, l) BOOST_PP_LIST_FOLD_LEFT_121(o, s, BOOST_PP_LIST_REVERSE_D(121, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_122(o, s, l) BOOST_PP_LIST_FOLD_LEFT_122(o, s, BOOST_PP_LIST_REVERSE_D(122, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_123(o, s, l) BOOST_PP_LIST_FOLD_LEFT_123(o, s, BOOST_PP_LIST_REVERSE_D(123, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_124(o, s, l) BOOST_PP_LIST_FOLD_LEFT_124(o, s, BOOST_PP_LIST_REVERSE_D(124, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_125(o, s, l) BOOST_PP_LIST_FOLD_LEFT_125(o, s, BOOST_PP_LIST_REVERSE_D(125, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_126(o, s, l) BOOST_PP_LIST_FOLD_LEFT_126(o, s, BOOST_PP_LIST_REVERSE_D(126, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_127(o, s, l) BOOST_PP_LIST_FOLD_LEFT_127(o, s, BOOST_PP_LIST_REVERSE_D(127, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_128(o, s, l) BOOST_PP_LIST_FOLD_LEFT_128(o, s, BOOST_PP_LIST_REVERSE_D(128, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_129(o, s, l) BOOST_PP_LIST_FOLD_LEFT_129(o, s, BOOST_PP_LIST_REVERSE_D(129, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_130(o, s, l) BOOST_PP_LIST_FOLD_LEFT_130(o, s, BOOST_PP_LIST_REVERSE_D(130, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_131(o, s, l) BOOST_PP_LIST_FOLD_LEFT_131(o, s, BOOST_PP_LIST_REVERSE_D(131, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_132(o, s, l) BOOST_PP_LIST_FOLD_LEFT_132(o, s, BOOST_PP_LIST_REVERSE_D(132, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_133(o, s, l) BOOST_PP_LIST_FOLD_LEFT_133(o, s, BOOST_PP_LIST_REVERSE_D(133, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_134(o, s, l) BOOST_PP_LIST_FOLD_LEFT_134(o, s, BOOST_PP_LIST_REVERSE_D(134, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_135(o, s, l) BOOST_PP_LIST_FOLD_LEFT_135(o, s, BOOST_PP_LIST_REVERSE_D(135, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_136(o, s, l) BOOST_PP_LIST_FOLD_LEFT_136(o, s, BOOST_PP_LIST_REVERSE_D(136, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_137(o, s, l) BOOST_PP_LIST_FOLD_LEFT_137(o, s, BOOST_PP_LIST_REVERSE_D(137, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_138(o, s, l) BOOST_PP_LIST_FOLD_LEFT_138(o, s, BOOST_PP_LIST_REVERSE_D(138, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_139(o, s, l) BOOST_PP_LIST_FOLD_LEFT_139(o, s, BOOST_PP_LIST_REVERSE_D(139, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_140(o, s, l) BOOST_PP_LIST_FOLD_LEFT_140(o, s, BOOST_PP_LIST_REVERSE_D(140, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_141(o, s, l) BOOST_PP_LIST_FOLD_LEFT_141(o, s, BOOST_PP_LIST_REVERSE_D(141, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_142(o, s, l) BOOST_PP_LIST_FOLD_LEFT_142(o, s, BOOST_PP_LIST_REVERSE_D(142, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_143(o, s, l) BOOST_PP_LIST_FOLD_LEFT_143(o, s, BOOST_PP_LIST_REVERSE_D(143, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_144(o, s, l) BOOST_PP_LIST_FOLD_LEFT_144(o, s, BOOST_PP_LIST_REVERSE_D(144, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_145(o, s, l) BOOST_PP_LIST_FOLD_LEFT_145(o, s, BOOST_PP_LIST_REVERSE_D(145, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_146(o, s, l) BOOST_PP_LIST_FOLD_LEFT_146(o, s, BOOST_PP_LIST_REVERSE_D(146, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_147(o, s, l) BOOST_PP_LIST_FOLD_LEFT_147(o, s, BOOST_PP_LIST_REVERSE_D(147, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_148(o, s, l) BOOST_PP_LIST_FOLD_LEFT_148(o, s, BOOST_PP_LIST_REVERSE_D(148, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_149(o, s, l) BOOST_PP_LIST_FOLD_LEFT_149(o, s, BOOST_PP_LIST_REVERSE_D(149, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_150(o, s, l) BOOST_PP_LIST_FOLD_LEFT_150(o, s, BOOST_PP_LIST_REVERSE_D(150, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_151(o, s, l) BOOST_PP_LIST_FOLD_LEFT_151(o, s, BOOST_PP_LIST_REVERSE_D(151, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_152(o, s, l) BOOST_PP_LIST_FOLD_LEFT_152(o, s, BOOST_PP_LIST_REVERSE_D(152, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_153(o, s, l) BOOST_PP_LIST_FOLD_LEFT_153(o, s, BOOST_PP_LIST_REVERSE_D(153, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_154(o, s, l) BOOST_PP_LIST_FOLD_LEFT_154(o, s, BOOST_PP_LIST_REVERSE_D(154, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_155(o, s, l) BOOST_PP_LIST_FOLD_LEFT_155(o, s, BOOST_PP_LIST_REVERSE_D(155, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_156(o, s, l) BOOST_PP_LIST_FOLD_LEFT_156(o, s, BOOST_PP_LIST_REVERSE_D(156, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_157(o, s, l) BOOST_PP_LIST_FOLD_LEFT_157(o, s, BOOST_PP_LIST_REVERSE_D(157, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_158(o, s, l) BOOST_PP_LIST_FOLD_LEFT_158(o, s, BOOST_PP_LIST_REVERSE_D(158, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_159(o, s, l) BOOST_PP_LIST_FOLD_LEFT_159(o, s, BOOST_PP_LIST_REVERSE_D(159, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_160(o, s, l) BOOST_PP_LIST_FOLD_LEFT_160(o, s, BOOST_PP_LIST_REVERSE_D(160, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_161(o, s, l) BOOST_PP_LIST_FOLD_LEFT_161(o, s, BOOST_PP_LIST_REVERSE_D(161, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_162(o, s, l) BOOST_PP_LIST_FOLD_LEFT_162(o, s, BOOST_PP_LIST_REVERSE_D(162, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_163(o, s, l) BOOST_PP_LIST_FOLD_LEFT_163(o, s, BOOST_PP_LIST_REVERSE_D(163, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_164(o, s, l) BOOST_PP_LIST_FOLD_LEFT_164(o, s, BOOST_PP_LIST_REVERSE_D(164, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_165(o, s, l) BOOST_PP_LIST_FOLD_LEFT_165(o, s, BOOST_PP_LIST_REVERSE_D(165, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_166(o, s, l) BOOST_PP_LIST_FOLD_LEFT_166(o, s, BOOST_PP_LIST_REVERSE_D(166, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_167(o, s, l) BOOST_PP_LIST_FOLD_LEFT_167(o, s, BOOST_PP_LIST_REVERSE_D(167, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_168(o, s, l) BOOST_PP_LIST_FOLD_LEFT_168(o, s, BOOST_PP_LIST_REVERSE_D(168, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_169(o, s, l) BOOST_PP_LIST_FOLD_LEFT_169(o, s, BOOST_PP_LIST_REVERSE_D(169, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_170(o, s, l) BOOST_PP_LIST_FOLD_LEFT_170(o, s, BOOST_PP_LIST_REVERSE_D(170, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_171(o, s, l) BOOST_PP_LIST_FOLD_LEFT_171(o, s, BOOST_PP_LIST_REVERSE_D(171, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_172(o, s, l) BOOST_PP_LIST_FOLD_LEFT_172(o, s, BOOST_PP_LIST_REVERSE_D(172, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_173(o, s, l) BOOST_PP_LIST_FOLD_LEFT_173(o, s, BOOST_PP_LIST_REVERSE_D(173, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_174(o, s, l) BOOST_PP_LIST_FOLD_LEFT_174(o, s, BOOST_PP_LIST_REVERSE_D(174, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_175(o, s, l) BOOST_PP_LIST_FOLD_LEFT_175(o, s, BOOST_PP_LIST_REVERSE_D(175, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_176(o, s, l) BOOST_PP_LIST_FOLD_LEFT_176(o, s, BOOST_PP_LIST_REVERSE_D(176, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_177(o, s, l) BOOST_PP_LIST_FOLD_LEFT_177(o, s, BOOST_PP_LIST_REVERSE_D(177, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_178(o, s, l) BOOST_PP_LIST_FOLD_LEFT_178(o, s, BOOST_PP_LIST_REVERSE_D(178, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_179(o, s, l) BOOST_PP_LIST_FOLD_LEFT_179(o, s, BOOST_PP_LIST_REVERSE_D(179, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_180(o, s, l) BOOST_PP_LIST_FOLD_LEFT_180(o, s, BOOST_PP_LIST_REVERSE_D(180, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_181(o, s, l) BOOST_PP_LIST_FOLD_LEFT_181(o, s, BOOST_PP_LIST_REVERSE_D(181, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_182(o, s, l) BOOST_PP_LIST_FOLD_LEFT_182(o, s, BOOST_PP_LIST_REVERSE_D(182, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_183(o, s, l) BOOST_PP_LIST_FOLD_LEFT_183(o, s, BOOST_PP_LIST_REVERSE_D(183, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_184(o, s, l) BOOST_PP_LIST_FOLD_LEFT_184(o, s, BOOST_PP_LIST_REVERSE_D(184, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_185(o, s, l) BOOST_PP_LIST_FOLD_LEFT_185(o, s, BOOST_PP_LIST_REVERSE_D(185, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_186(o, s, l) BOOST_PP_LIST_FOLD_LEFT_186(o, s, BOOST_PP_LIST_REVERSE_D(186, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_187(o, s, l) BOOST_PP_LIST_FOLD_LEFT_187(o, s, BOOST_PP_LIST_REVERSE_D(187, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_188(o, s, l) BOOST_PP_LIST_FOLD_LEFT_188(o, s, BOOST_PP_LIST_REVERSE_D(188, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_189(o, s, l) BOOST_PP_LIST_FOLD_LEFT_189(o, s, BOOST_PP_LIST_REVERSE_D(189, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_190(o, s, l) BOOST_PP_LIST_FOLD_LEFT_190(o, s, BOOST_PP_LIST_REVERSE_D(190, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_191(o, s, l) BOOST_PP_LIST_FOLD_LEFT_191(o, s, BOOST_PP_LIST_REVERSE_D(191, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_192(o, s, l) BOOST_PP_LIST_FOLD_LEFT_192(o, s, BOOST_PP_LIST_REVERSE_D(192, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_193(o, s, l) BOOST_PP_LIST_FOLD_LEFT_193(o, s, BOOST_PP_LIST_REVERSE_D(193, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_194(o, s, l) BOOST_PP_LIST_FOLD_LEFT_194(o, s, BOOST_PP_LIST_REVERSE_D(194, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_195(o, s, l) BOOST_PP_LIST_FOLD_LEFT_195(o, s, BOOST_PP_LIST_REVERSE_D(195, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_196(o, s, l) BOOST_PP_LIST_FOLD_LEFT_196(o, s, BOOST_PP_LIST_REVERSE_D(196, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_197(o, s, l) BOOST_PP_LIST_FOLD_LEFT_197(o, s, BOOST_PP_LIST_REVERSE_D(197, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_198(o, s, l) BOOST_PP_LIST_FOLD_LEFT_198(o, s, BOOST_PP_LIST_REVERSE_D(198, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_199(o, s, l) BOOST_PP_LIST_FOLD_LEFT_199(o, s, BOOST_PP_LIST_REVERSE_D(199, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_200(o, s, l) BOOST_PP_LIST_FOLD_LEFT_200(o, s, BOOST_PP_LIST_REVERSE_D(200, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_201(o, s, l) BOOST_PP_LIST_FOLD_LEFT_201(o, s, BOOST_PP_LIST_REVERSE_D(201, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_202(o, s, l) BOOST_PP_LIST_FOLD_LEFT_202(o, s, BOOST_PP_LIST_REVERSE_D(202, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_203(o, s, l) BOOST_PP_LIST_FOLD_LEFT_203(o, s, BOOST_PP_LIST_REVERSE_D(203, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_204(o, s, l) BOOST_PP_LIST_FOLD_LEFT_204(o, s, BOOST_PP_LIST_REVERSE_D(204, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_205(o, s, l) BOOST_PP_LIST_FOLD_LEFT_205(o, s, BOOST_PP_LIST_REVERSE_D(205, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_206(o, s, l) BOOST_PP_LIST_FOLD_LEFT_206(o, s, BOOST_PP_LIST_REVERSE_D(206, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_207(o, s, l) BOOST_PP_LIST_FOLD_LEFT_207(o, s, BOOST_PP_LIST_REVERSE_D(207, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_208(o, s, l) BOOST_PP_LIST_FOLD_LEFT_208(o, s, BOOST_PP_LIST_REVERSE_D(208, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_209(o, s, l) BOOST_PP_LIST_FOLD_LEFT_209(o, s, BOOST_PP_LIST_REVERSE_D(209, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_210(o, s, l) BOOST_PP_LIST_FOLD_LEFT_210(o, s, BOOST_PP_LIST_REVERSE_D(210, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_211(o, s, l) BOOST_PP_LIST_FOLD_LEFT_211(o, s, BOOST_PP_LIST_REVERSE_D(211, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_212(o, s, l) BOOST_PP_LIST_FOLD_LEFT_212(o, s, BOOST_PP_LIST_REVERSE_D(212, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_213(o, s, l) BOOST_PP_LIST_FOLD_LEFT_213(o, s, BOOST_PP_LIST_REVERSE_D(213, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_214(o, s, l) BOOST_PP_LIST_FOLD_LEFT_214(o, s, BOOST_PP_LIST_REVERSE_D(214, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_215(o, s, l) BOOST_PP_LIST_FOLD_LEFT_215(o, s, BOOST_PP_LIST_REVERSE_D(215, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_216(o, s, l) BOOST_PP_LIST_FOLD_LEFT_216(o, s, BOOST_PP_LIST_REVERSE_D(216, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_217(o, s, l) BOOST_PP_LIST_FOLD_LEFT_217(o, s, BOOST_PP_LIST_REVERSE_D(217, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_218(o, s, l) BOOST_PP_LIST_FOLD_LEFT_218(o, s, BOOST_PP_LIST_REVERSE_D(218, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_219(o, s, l) BOOST_PP_LIST_FOLD_LEFT_219(o, s, BOOST_PP_LIST_REVERSE_D(219, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_220(o, s, l) BOOST_PP_LIST_FOLD_LEFT_220(o, s, BOOST_PP_LIST_REVERSE_D(220, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_221(o, s, l) BOOST_PP_LIST_FOLD_LEFT_221(o, s, BOOST_PP_LIST_REVERSE_D(221, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_222(o, s, l) BOOST_PP_LIST_FOLD_LEFT_222(o, s, BOOST_PP_LIST_REVERSE_D(222, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_223(o, s, l) BOOST_PP_LIST_FOLD_LEFT_223(o, s, BOOST_PP_LIST_REVERSE_D(223, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_224(o, s, l) BOOST_PP_LIST_FOLD_LEFT_224(o, s, BOOST_PP_LIST_REVERSE_D(224, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_225(o, s, l) BOOST_PP_LIST_FOLD_LEFT_225(o, s, BOOST_PP_LIST_REVERSE_D(225, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_226(o, s, l) BOOST_PP_LIST_FOLD_LEFT_226(o, s, BOOST_PP_LIST_REVERSE_D(226, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_227(o, s, l) BOOST_PP_LIST_FOLD_LEFT_227(o, s, BOOST_PP_LIST_REVERSE_D(227, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_228(o, s, l) BOOST_PP_LIST_FOLD_LEFT_228(o, s, BOOST_PP_LIST_REVERSE_D(228, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_229(o, s, l) BOOST_PP_LIST_FOLD_LEFT_229(o, s, BOOST_PP_LIST_REVERSE_D(229, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_230(o, s, l) BOOST_PP_LIST_FOLD_LEFT_230(o, s, BOOST_PP_LIST_REVERSE_D(230, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_231(o, s, l) BOOST_PP_LIST_FOLD_LEFT_231(o, s, BOOST_PP_LIST_REVERSE_D(231, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_232(o, s, l) BOOST_PP_LIST_FOLD_LEFT_232(o, s, BOOST_PP_LIST_REVERSE_D(232, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_233(o, s, l) BOOST_PP_LIST_FOLD_LEFT_233(o, s, BOOST_PP_LIST_REVERSE_D(233, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_234(o, s, l) BOOST_PP_LIST_FOLD_LEFT_234(o, s, BOOST_PP_LIST_REVERSE_D(234, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_235(o, s, l) BOOST_PP_LIST_FOLD_LEFT_235(o, s, BOOST_PP_LIST_REVERSE_D(235, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_236(o, s, l) BOOST_PP_LIST_FOLD_LEFT_236(o, s, BOOST_PP_LIST_REVERSE_D(236, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_237(o, s, l) BOOST_PP_LIST_FOLD_LEFT_237(o, s, BOOST_PP_LIST_REVERSE_D(237, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_238(o, s, l) BOOST_PP_LIST_FOLD_LEFT_238(o, s, BOOST_PP_LIST_REVERSE_D(238, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_239(o, s, l) BOOST_PP_LIST_FOLD_LEFT_239(o, s, BOOST_PP_LIST_REVERSE_D(239, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_240(o, s, l) BOOST_PP_LIST_FOLD_LEFT_240(o, s, BOOST_PP_LIST_REVERSE_D(240, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_241(o, s, l) BOOST_PP_LIST_FOLD_LEFT_241(o, s, BOOST_PP_LIST_REVERSE_D(241, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_242(o, s, l) BOOST_PP_LIST_FOLD_LEFT_242(o, s, BOOST_PP_LIST_REVERSE_D(242, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_243(o, s, l) BOOST_PP_LIST_FOLD_LEFT_243(o, s, BOOST_PP_LIST_REVERSE_D(243, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_244(o, s, l) BOOST_PP_LIST_FOLD_LEFT_244(o, s, BOOST_PP_LIST_REVERSE_D(244, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_245(o, s, l) BOOST_PP_LIST_FOLD_LEFT_245(o, s, BOOST_PP_LIST_REVERSE_D(245, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_246(o, s, l) BOOST_PP_LIST_FOLD_LEFT_246(o, s, BOOST_PP_LIST_REVERSE_D(246, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_247(o, s, l) BOOST_PP_LIST_FOLD_LEFT_247(o, s, BOOST_PP_LIST_REVERSE_D(247, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_248(o, s, l) BOOST_PP_LIST_FOLD_LEFT_248(o, s, BOOST_PP_LIST_REVERSE_D(248, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_249(o, s, l) BOOST_PP_LIST_FOLD_LEFT_249(o, s, BOOST_PP_LIST_REVERSE_D(249, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_250(o, s, l) BOOST_PP_LIST_FOLD_LEFT_250(o, s, BOOST_PP_LIST_REVERSE_D(250, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_251(o, s, l) BOOST_PP_LIST_FOLD_LEFT_251(o, s, BOOST_PP_LIST_REVERSE_D(251, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_252(o, s, l) BOOST_PP_LIST_FOLD_LEFT_252(o, s, BOOST_PP_LIST_REVERSE_D(252, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_253(o, s, l) BOOST_PP_LIST_FOLD_LEFT_253(o, s, BOOST_PP_LIST_REVERSE_D(253, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_254(o, s, l) BOOST_PP_LIST_FOLD_LEFT_254(o, s, BOOST_PP_LIST_REVERSE_D(254, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_255(o, s, l) BOOST_PP_LIST_FOLD_LEFT_255(o, s, BOOST_PP_LIST_REVERSE_D(255, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_256(o, s, l) BOOST_PP_LIST_FOLD_LEFT_256(o, s, BOOST_PP_LIST_REVERSE_D(256, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_1(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_1(o, s, NDNBOOST_PP_LIST_REVERSE_D(1, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_2(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_2(o, s, NDNBOOST_PP_LIST_REVERSE_D(2, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_3(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_3(o, s, NDNBOOST_PP_LIST_REVERSE_D(3, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_4(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_4(o, s, NDNBOOST_PP_LIST_REVERSE_D(4, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_5(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_5(o, s, NDNBOOST_PP_LIST_REVERSE_D(5, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_6(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_6(o, s, NDNBOOST_PP_LIST_REVERSE_D(6, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_7(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_7(o, s, NDNBOOST_PP_LIST_REVERSE_D(7, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_8(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_8(o, s, NDNBOOST_PP_LIST_REVERSE_D(8, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_9(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_9(o, s, NDNBOOST_PP_LIST_REVERSE_D(9, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_10(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_10(o, s, NDNBOOST_PP_LIST_REVERSE_D(10, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_11(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_11(o, s, NDNBOOST_PP_LIST_REVERSE_D(11, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_12(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_12(o, s, NDNBOOST_PP_LIST_REVERSE_D(12, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_13(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_13(o, s, NDNBOOST_PP_LIST_REVERSE_D(13, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_14(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_14(o, s, NDNBOOST_PP_LIST_REVERSE_D(14, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_15(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_15(o, s, NDNBOOST_PP_LIST_REVERSE_D(15, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_16(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_16(o, s, NDNBOOST_PP_LIST_REVERSE_D(16, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_17(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_17(o, s, NDNBOOST_PP_LIST_REVERSE_D(17, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_18(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_18(o, s, NDNBOOST_PP_LIST_REVERSE_D(18, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_19(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_19(o, s, NDNBOOST_PP_LIST_REVERSE_D(19, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_20(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_20(o, s, NDNBOOST_PP_LIST_REVERSE_D(20, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_21(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_21(o, s, NDNBOOST_PP_LIST_REVERSE_D(21, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_22(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_22(o, s, NDNBOOST_PP_LIST_REVERSE_D(22, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_23(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_23(o, s, NDNBOOST_PP_LIST_REVERSE_D(23, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_24(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_24(o, s, NDNBOOST_PP_LIST_REVERSE_D(24, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_25(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_25(o, s, NDNBOOST_PP_LIST_REVERSE_D(25, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_26(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_26(o, s, NDNBOOST_PP_LIST_REVERSE_D(26, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_27(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_27(o, s, NDNBOOST_PP_LIST_REVERSE_D(27, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_28(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_28(o, s, NDNBOOST_PP_LIST_REVERSE_D(28, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_29(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_29(o, s, NDNBOOST_PP_LIST_REVERSE_D(29, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_30(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_30(o, s, NDNBOOST_PP_LIST_REVERSE_D(30, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_31(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_31(o, s, NDNBOOST_PP_LIST_REVERSE_D(31, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_32(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_32(o, s, NDNBOOST_PP_LIST_REVERSE_D(32, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_33(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_33(o, s, NDNBOOST_PP_LIST_REVERSE_D(33, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_34(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_34(o, s, NDNBOOST_PP_LIST_REVERSE_D(34, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_35(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_35(o, s, NDNBOOST_PP_LIST_REVERSE_D(35, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_36(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_36(o, s, NDNBOOST_PP_LIST_REVERSE_D(36, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_37(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_37(o, s, NDNBOOST_PP_LIST_REVERSE_D(37, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_38(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_38(o, s, NDNBOOST_PP_LIST_REVERSE_D(38, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_39(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_39(o, s, NDNBOOST_PP_LIST_REVERSE_D(39, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_40(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_40(o, s, NDNBOOST_PP_LIST_REVERSE_D(40, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_41(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_41(o, s, NDNBOOST_PP_LIST_REVERSE_D(41, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_42(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_42(o, s, NDNBOOST_PP_LIST_REVERSE_D(42, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_43(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_43(o, s, NDNBOOST_PP_LIST_REVERSE_D(43, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_44(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_44(o, s, NDNBOOST_PP_LIST_REVERSE_D(44, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_45(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_45(o, s, NDNBOOST_PP_LIST_REVERSE_D(45, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_46(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_46(o, s, NDNBOOST_PP_LIST_REVERSE_D(46, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_47(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_47(o, s, NDNBOOST_PP_LIST_REVERSE_D(47, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_48(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_48(o, s, NDNBOOST_PP_LIST_REVERSE_D(48, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_49(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_49(o, s, NDNBOOST_PP_LIST_REVERSE_D(49, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_50(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_50(o, s, NDNBOOST_PP_LIST_REVERSE_D(50, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_51(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_51(o, s, NDNBOOST_PP_LIST_REVERSE_D(51, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_52(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_52(o, s, NDNBOOST_PP_LIST_REVERSE_D(52, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_53(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_53(o, s, NDNBOOST_PP_LIST_REVERSE_D(53, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_54(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_54(o, s, NDNBOOST_PP_LIST_REVERSE_D(54, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_55(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_55(o, s, NDNBOOST_PP_LIST_REVERSE_D(55, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_56(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_56(o, s, NDNBOOST_PP_LIST_REVERSE_D(56, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_57(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_57(o, s, NDNBOOST_PP_LIST_REVERSE_D(57, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_58(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_58(o, s, NDNBOOST_PP_LIST_REVERSE_D(58, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_59(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_59(o, s, NDNBOOST_PP_LIST_REVERSE_D(59, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_60(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_60(o, s, NDNBOOST_PP_LIST_REVERSE_D(60, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_61(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_61(o, s, NDNBOOST_PP_LIST_REVERSE_D(61, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_62(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_62(o, s, NDNBOOST_PP_LIST_REVERSE_D(62, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_63(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_63(o, s, NDNBOOST_PP_LIST_REVERSE_D(63, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_64(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_64(o, s, NDNBOOST_PP_LIST_REVERSE_D(64, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_65(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_65(o, s, NDNBOOST_PP_LIST_REVERSE_D(65, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_66(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_66(o, s, NDNBOOST_PP_LIST_REVERSE_D(66, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_67(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_67(o, s, NDNBOOST_PP_LIST_REVERSE_D(67, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_68(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_68(o, s, NDNBOOST_PP_LIST_REVERSE_D(68, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_69(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_69(o, s, NDNBOOST_PP_LIST_REVERSE_D(69, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_70(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_70(o, s, NDNBOOST_PP_LIST_REVERSE_D(70, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_71(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_71(o, s, NDNBOOST_PP_LIST_REVERSE_D(71, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_72(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_72(o, s, NDNBOOST_PP_LIST_REVERSE_D(72, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_73(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_73(o, s, NDNBOOST_PP_LIST_REVERSE_D(73, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_74(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_74(o, s, NDNBOOST_PP_LIST_REVERSE_D(74, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_75(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_75(o, s, NDNBOOST_PP_LIST_REVERSE_D(75, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_76(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_76(o, s, NDNBOOST_PP_LIST_REVERSE_D(76, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_77(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_77(o, s, NDNBOOST_PP_LIST_REVERSE_D(77, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_78(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_78(o, s, NDNBOOST_PP_LIST_REVERSE_D(78, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_79(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_79(o, s, NDNBOOST_PP_LIST_REVERSE_D(79, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_80(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_80(o, s, NDNBOOST_PP_LIST_REVERSE_D(80, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_81(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_81(o, s, NDNBOOST_PP_LIST_REVERSE_D(81, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_82(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_82(o, s, NDNBOOST_PP_LIST_REVERSE_D(82, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_83(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_83(o, s, NDNBOOST_PP_LIST_REVERSE_D(83, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_84(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_84(o, s, NDNBOOST_PP_LIST_REVERSE_D(84, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_85(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_85(o, s, NDNBOOST_PP_LIST_REVERSE_D(85, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_86(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_86(o, s, NDNBOOST_PP_LIST_REVERSE_D(86, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_87(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_87(o, s, NDNBOOST_PP_LIST_REVERSE_D(87, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_88(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_88(o, s, NDNBOOST_PP_LIST_REVERSE_D(88, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_89(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_89(o, s, NDNBOOST_PP_LIST_REVERSE_D(89, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_90(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_90(o, s, NDNBOOST_PP_LIST_REVERSE_D(90, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_91(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_91(o, s, NDNBOOST_PP_LIST_REVERSE_D(91, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_92(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_92(o, s, NDNBOOST_PP_LIST_REVERSE_D(92, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_93(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_93(o, s, NDNBOOST_PP_LIST_REVERSE_D(93, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_94(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_94(o, s, NDNBOOST_PP_LIST_REVERSE_D(94, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_95(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_95(o, s, NDNBOOST_PP_LIST_REVERSE_D(95, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_96(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_96(o, s, NDNBOOST_PP_LIST_REVERSE_D(96, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_97(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_97(o, s, NDNBOOST_PP_LIST_REVERSE_D(97, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_98(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_98(o, s, NDNBOOST_PP_LIST_REVERSE_D(98, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_99(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_99(o, s, NDNBOOST_PP_LIST_REVERSE_D(99, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_100(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_100(o, s, NDNBOOST_PP_LIST_REVERSE_D(100, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_101(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_101(o, s, NDNBOOST_PP_LIST_REVERSE_D(101, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_102(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_102(o, s, NDNBOOST_PP_LIST_REVERSE_D(102, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_103(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_103(o, s, NDNBOOST_PP_LIST_REVERSE_D(103, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_104(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_104(o, s, NDNBOOST_PP_LIST_REVERSE_D(104, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_105(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_105(o, s, NDNBOOST_PP_LIST_REVERSE_D(105, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_106(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_106(o, s, NDNBOOST_PP_LIST_REVERSE_D(106, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_107(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_107(o, s, NDNBOOST_PP_LIST_REVERSE_D(107, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_108(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_108(o, s, NDNBOOST_PP_LIST_REVERSE_D(108, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_109(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_109(o, s, NDNBOOST_PP_LIST_REVERSE_D(109, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_110(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_110(o, s, NDNBOOST_PP_LIST_REVERSE_D(110, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_111(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_111(o, s, NDNBOOST_PP_LIST_REVERSE_D(111, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_112(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_112(o, s, NDNBOOST_PP_LIST_REVERSE_D(112, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_113(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_113(o, s, NDNBOOST_PP_LIST_REVERSE_D(113, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_114(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_114(o, s, NDNBOOST_PP_LIST_REVERSE_D(114, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_115(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_115(o, s, NDNBOOST_PP_LIST_REVERSE_D(115, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_116(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_116(o, s, NDNBOOST_PP_LIST_REVERSE_D(116, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_117(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_117(o, s, NDNBOOST_PP_LIST_REVERSE_D(117, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_118(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_118(o, s, NDNBOOST_PP_LIST_REVERSE_D(118, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_119(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_119(o, s, NDNBOOST_PP_LIST_REVERSE_D(119, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_120(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_120(o, s, NDNBOOST_PP_LIST_REVERSE_D(120, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_121(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_121(o, s, NDNBOOST_PP_LIST_REVERSE_D(121, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_122(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_122(o, s, NDNBOOST_PP_LIST_REVERSE_D(122, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_123(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_123(o, s, NDNBOOST_PP_LIST_REVERSE_D(123, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_124(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_124(o, s, NDNBOOST_PP_LIST_REVERSE_D(124, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_125(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_125(o, s, NDNBOOST_PP_LIST_REVERSE_D(125, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_126(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_126(o, s, NDNBOOST_PP_LIST_REVERSE_D(126, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_127(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_127(o, s, NDNBOOST_PP_LIST_REVERSE_D(127, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_128(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_128(o, s, NDNBOOST_PP_LIST_REVERSE_D(128, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_129(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_129(o, s, NDNBOOST_PP_LIST_REVERSE_D(129, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_130(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_130(o, s, NDNBOOST_PP_LIST_REVERSE_D(130, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_131(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_131(o, s, NDNBOOST_PP_LIST_REVERSE_D(131, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_132(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_132(o, s, NDNBOOST_PP_LIST_REVERSE_D(132, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_133(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_133(o, s, NDNBOOST_PP_LIST_REVERSE_D(133, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_134(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_134(o, s, NDNBOOST_PP_LIST_REVERSE_D(134, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_135(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_135(o, s, NDNBOOST_PP_LIST_REVERSE_D(135, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_136(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_136(o, s, NDNBOOST_PP_LIST_REVERSE_D(136, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_137(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_137(o, s, NDNBOOST_PP_LIST_REVERSE_D(137, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_138(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_138(o, s, NDNBOOST_PP_LIST_REVERSE_D(138, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_139(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_139(o, s, NDNBOOST_PP_LIST_REVERSE_D(139, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_140(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_140(o, s, NDNBOOST_PP_LIST_REVERSE_D(140, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_141(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_141(o, s, NDNBOOST_PP_LIST_REVERSE_D(141, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_142(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_142(o, s, NDNBOOST_PP_LIST_REVERSE_D(142, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_143(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_143(o, s, NDNBOOST_PP_LIST_REVERSE_D(143, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_144(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_144(o, s, NDNBOOST_PP_LIST_REVERSE_D(144, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_145(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_145(o, s, NDNBOOST_PP_LIST_REVERSE_D(145, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_146(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_146(o, s, NDNBOOST_PP_LIST_REVERSE_D(146, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_147(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_147(o, s, NDNBOOST_PP_LIST_REVERSE_D(147, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_148(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_148(o, s, NDNBOOST_PP_LIST_REVERSE_D(148, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_149(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_149(o, s, NDNBOOST_PP_LIST_REVERSE_D(149, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_150(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_150(o, s, NDNBOOST_PP_LIST_REVERSE_D(150, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_151(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_151(o, s, NDNBOOST_PP_LIST_REVERSE_D(151, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_152(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_152(o, s, NDNBOOST_PP_LIST_REVERSE_D(152, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_153(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_153(o, s, NDNBOOST_PP_LIST_REVERSE_D(153, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_154(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_154(o, s, NDNBOOST_PP_LIST_REVERSE_D(154, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_155(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_155(o, s, NDNBOOST_PP_LIST_REVERSE_D(155, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_156(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_156(o, s, NDNBOOST_PP_LIST_REVERSE_D(156, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_157(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_157(o, s, NDNBOOST_PP_LIST_REVERSE_D(157, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_158(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_158(o, s, NDNBOOST_PP_LIST_REVERSE_D(158, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_159(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_159(o, s, NDNBOOST_PP_LIST_REVERSE_D(159, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_160(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_160(o, s, NDNBOOST_PP_LIST_REVERSE_D(160, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_161(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_161(o, s, NDNBOOST_PP_LIST_REVERSE_D(161, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_162(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_162(o, s, NDNBOOST_PP_LIST_REVERSE_D(162, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_163(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_163(o, s, NDNBOOST_PP_LIST_REVERSE_D(163, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_164(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_164(o, s, NDNBOOST_PP_LIST_REVERSE_D(164, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_165(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_165(o, s, NDNBOOST_PP_LIST_REVERSE_D(165, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_166(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_166(o, s, NDNBOOST_PP_LIST_REVERSE_D(166, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_167(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_167(o, s, NDNBOOST_PP_LIST_REVERSE_D(167, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_168(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_168(o, s, NDNBOOST_PP_LIST_REVERSE_D(168, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_169(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_169(o, s, NDNBOOST_PP_LIST_REVERSE_D(169, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_170(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_170(o, s, NDNBOOST_PP_LIST_REVERSE_D(170, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_171(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_171(o, s, NDNBOOST_PP_LIST_REVERSE_D(171, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_172(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_172(o, s, NDNBOOST_PP_LIST_REVERSE_D(172, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_173(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_173(o, s, NDNBOOST_PP_LIST_REVERSE_D(173, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_174(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_174(o, s, NDNBOOST_PP_LIST_REVERSE_D(174, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_175(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_175(o, s, NDNBOOST_PP_LIST_REVERSE_D(175, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_176(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_176(o, s, NDNBOOST_PP_LIST_REVERSE_D(176, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_177(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_177(o, s, NDNBOOST_PP_LIST_REVERSE_D(177, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_178(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_178(o, s, NDNBOOST_PP_LIST_REVERSE_D(178, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_179(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_179(o, s, NDNBOOST_PP_LIST_REVERSE_D(179, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_180(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_180(o, s, NDNBOOST_PP_LIST_REVERSE_D(180, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_181(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_181(o, s, NDNBOOST_PP_LIST_REVERSE_D(181, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_182(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_182(o, s, NDNBOOST_PP_LIST_REVERSE_D(182, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_183(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_183(o, s, NDNBOOST_PP_LIST_REVERSE_D(183, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_184(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_184(o, s, NDNBOOST_PP_LIST_REVERSE_D(184, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_185(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_185(o, s, NDNBOOST_PP_LIST_REVERSE_D(185, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_186(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_186(o, s, NDNBOOST_PP_LIST_REVERSE_D(186, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_187(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_187(o, s, NDNBOOST_PP_LIST_REVERSE_D(187, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_188(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_188(o, s, NDNBOOST_PP_LIST_REVERSE_D(188, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_189(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_189(o, s, NDNBOOST_PP_LIST_REVERSE_D(189, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_190(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_190(o, s, NDNBOOST_PP_LIST_REVERSE_D(190, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_191(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_191(o, s, NDNBOOST_PP_LIST_REVERSE_D(191, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_192(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_192(o, s, NDNBOOST_PP_LIST_REVERSE_D(192, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_193(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_193(o, s, NDNBOOST_PP_LIST_REVERSE_D(193, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_194(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_194(o, s, NDNBOOST_PP_LIST_REVERSE_D(194, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_195(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_195(o, s, NDNBOOST_PP_LIST_REVERSE_D(195, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_196(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_196(o, s, NDNBOOST_PP_LIST_REVERSE_D(196, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_197(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_197(o, s, NDNBOOST_PP_LIST_REVERSE_D(197, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_198(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_198(o, s, NDNBOOST_PP_LIST_REVERSE_D(198, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_199(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_199(o, s, NDNBOOST_PP_LIST_REVERSE_D(199, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_200(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_200(o, s, NDNBOOST_PP_LIST_REVERSE_D(200, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_201(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_201(o, s, NDNBOOST_PP_LIST_REVERSE_D(201, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_202(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_202(o, s, NDNBOOST_PP_LIST_REVERSE_D(202, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_203(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_203(o, s, NDNBOOST_PP_LIST_REVERSE_D(203, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_204(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_204(o, s, NDNBOOST_PP_LIST_REVERSE_D(204, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_205(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_205(o, s, NDNBOOST_PP_LIST_REVERSE_D(205, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_206(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_206(o, s, NDNBOOST_PP_LIST_REVERSE_D(206, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_207(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_207(o, s, NDNBOOST_PP_LIST_REVERSE_D(207, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_208(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_208(o, s, NDNBOOST_PP_LIST_REVERSE_D(208, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_209(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_209(o, s, NDNBOOST_PP_LIST_REVERSE_D(209, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_210(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_210(o, s, NDNBOOST_PP_LIST_REVERSE_D(210, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_211(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_211(o, s, NDNBOOST_PP_LIST_REVERSE_D(211, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_212(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_212(o, s, NDNBOOST_PP_LIST_REVERSE_D(212, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_213(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_213(o, s, NDNBOOST_PP_LIST_REVERSE_D(213, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_214(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_214(o, s, NDNBOOST_PP_LIST_REVERSE_D(214, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_215(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_215(o, s, NDNBOOST_PP_LIST_REVERSE_D(215, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_216(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_216(o, s, NDNBOOST_PP_LIST_REVERSE_D(216, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_217(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_217(o, s, NDNBOOST_PP_LIST_REVERSE_D(217, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_218(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_218(o, s, NDNBOOST_PP_LIST_REVERSE_D(218, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_219(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_219(o, s, NDNBOOST_PP_LIST_REVERSE_D(219, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_220(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_220(o, s, NDNBOOST_PP_LIST_REVERSE_D(220, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_221(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_221(o, s, NDNBOOST_PP_LIST_REVERSE_D(221, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_222(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_222(o, s, NDNBOOST_PP_LIST_REVERSE_D(222, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_223(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_223(o, s, NDNBOOST_PP_LIST_REVERSE_D(223, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_224(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_224(o, s, NDNBOOST_PP_LIST_REVERSE_D(224, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_225(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_225(o, s, NDNBOOST_PP_LIST_REVERSE_D(225, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_226(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_226(o, s, NDNBOOST_PP_LIST_REVERSE_D(226, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_227(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_227(o, s, NDNBOOST_PP_LIST_REVERSE_D(227, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_228(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_228(o, s, NDNBOOST_PP_LIST_REVERSE_D(228, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_229(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_229(o, s, NDNBOOST_PP_LIST_REVERSE_D(229, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_230(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_230(o, s, NDNBOOST_PP_LIST_REVERSE_D(230, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_231(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_231(o, s, NDNBOOST_PP_LIST_REVERSE_D(231, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_232(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_232(o, s, NDNBOOST_PP_LIST_REVERSE_D(232, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_233(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_233(o, s, NDNBOOST_PP_LIST_REVERSE_D(233, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_234(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_234(o, s, NDNBOOST_PP_LIST_REVERSE_D(234, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_235(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_235(o, s, NDNBOOST_PP_LIST_REVERSE_D(235, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_236(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_236(o, s, NDNBOOST_PP_LIST_REVERSE_D(236, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_237(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_237(o, s, NDNBOOST_PP_LIST_REVERSE_D(237, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_238(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_238(o, s, NDNBOOST_PP_LIST_REVERSE_D(238, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_239(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_239(o, s, NDNBOOST_PP_LIST_REVERSE_D(239, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_240(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_240(o, s, NDNBOOST_PP_LIST_REVERSE_D(240, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_241(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_241(o, s, NDNBOOST_PP_LIST_REVERSE_D(241, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_242(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_242(o, s, NDNBOOST_PP_LIST_REVERSE_D(242, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_243(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_243(o, s, NDNBOOST_PP_LIST_REVERSE_D(243, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_244(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_244(o, s, NDNBOOST_PP_LIST_REVERSE_D(244, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_245(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_245(o, s, NDNBOOST_PP_LIST_REVERSE_D(245, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_246(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_246(o, s, NDNBOOST_PP_LIST_REVERSE_D(246, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_247(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_247(o, s, NDNBOOST_PP_LIST_REVERSE_D(247, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_248(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_248(o, s, NDNBOOST_PP_LIST_REVERSE_D(248, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_249(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_249(o, s, NDNBOOST_PP_LIST_REVERSE_D(249, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_250(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_250(o, s, NDNBOOST_PP_LIST_REVERSE_D(250, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_251(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_251(o, s, NDNBOOST_PP_LIST_REVERSE_D(251, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_252(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_252(o, s, NDNBOOST_PP_LIST_REVERSE_D(252, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_253(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_253(o, s, NDNBOOST_PP_LIST_REVERSE_D(253, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_254(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_254(o, s, NDNBOOST_PP_LIST_REVERSE_D(254, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_255(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_255(o, s, NDNBOOST_PP_LIST_REVERSE_D(255, l))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_256(o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_256(o, s, NDNBOOST_PP_LIST_REVERSE_D(256, l))
 #
 # endif
diff --git a/include/ndnboost/preprocessor/list/fold_left.hpp b/include/ndnboost/preprocessor/list/fold_left.hpp
index 4be193f..da6d3b6 100644
--- a/include/ndnboost/preprocessor/list/fold_left.hpp
+++ b/include/ndnboost/preprocessor/list/fold_left.hpp
@@ -11,293 +11,293 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_LIST_FOLD_LEFT_HPP
-# define BOOST_PREPROCESSOR_LIST_FOLD_LEFT_HPP
+# ifndef NDNBOOST_PREPROCESSOR_LIST_FOLD_LEFT_HPP
+# define NDNBOOST_PREPROCESSOR_LIST_FOLD_LEFT_HPP
 #
 # include <ndnboost/preprocessor/cat.hpp>
 # include <ndnboost/preprocessor/control/while.hpp>
 # include <ndnboost/preprocessor/debug/error.hpp>
 # include <ndnboost/preprocessor/detail/auto_rec.hpp>
 #
-# /* BOOST_PP_LIST_FOLD_LEFT */
+# /* NDNBOOST_PP_LIST_FOLD_LEFT */
 #
 # if 0
-#    define BOOST_PP_LIST_FOLD_LEFT(op, state, list)
+#    define NDNBOOST_PP_LIST_FOLD_LEFT(op, state, list)
 # endif
 #
-# define BOOST_PP_LIST_FOLD_LEFT BOOST_PP_CAT(BOOST_PP_LIST_FOLD_LEFT_, BOOST_PP_AUTO_REC(BOOST_PP_WHILE_P, 256))
+# define NDNBOOST_PP_LIST_FOLD_LEFT NDNBOOST_PP_CAT(NDNBOOST_PP_LIST_FOLD_LEFT_, NDNBOOST_PP_AUTO_REC(NDNBOOST_PP_WHILE_P, 256))
 #
-# define BOOST_PP_LIST_FOLD_LEFT_257(o, s, l) BOOST_PP_ERROR(0x0004)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_257(o, s, l) NDNBOOST_PP_ERROR(0x0004)
 #
-# define BOOST_PP_LIST_FOLD_LEFT_D(d, o, s, l) BOOST_PP_LIST_FOLD_LEFT_ ## d(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_2ND BOOST_PP_LIST_FOLD_LEFT
-# define BOOST_PP_LIST_FOLD_LEFT_2ND_D BOOST_PP_LIST_FOLD_LEFT_D
+# define NDNBOOST_PP_LIST_FOLD_LEFT_D(d, o, s, l) NDNBOOST_PP_LIST_FOLD_LEFT_ ## d(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_LEFT_2ND NDNBOOST_PP_LIST_FOLD_LEFT
+# define NDNBOOST_PP_LIST_FOLD_LEFT_2ND_D NDNBOOST_PP_LIST_FOLD_LEFT_D
 #
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+# if NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
 #    include <ndnboost/preprocessor/list/detail/edg/fold_left.hpp>
-# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC()
+# elif NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_DMC()
 #    include <ndnboost/preprocessor/list/detail/dmc/fold_left.hpp>
 # else
 #    include <ndnboost/preprocessor/list/detail/fold_left.hpp>
 # endif
 #
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_NIL 1
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_NIL 1
 #
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_1(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_2(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_3(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_4(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_5(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_6(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_7(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_8(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_9(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_10(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_11(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_12(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_13(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_14(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_15(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_16(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_17(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_18(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_19(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_20(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_21(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_22(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_23(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_24(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_25(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_26(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_27(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_28(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_29(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_30(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_31(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_32(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_33(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_34(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_35(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_36(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_37(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_38(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_39(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_40(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_41(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_42(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_43(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_44(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_45(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_46(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_47(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_48(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_49(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_50(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_51(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_52(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_53(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_54(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_55(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_56(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_57(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_58(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_59(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_60(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_61(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_62(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_63(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_64(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_65(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_66(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_67(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_68(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_69(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_70(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_71(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_72(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_73(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_74(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_75(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_76(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_77(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_78(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_79(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_80(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_81(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_82(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_83(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_84(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_85(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_86(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_87(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_88(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_89(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_90(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_91(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_92(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_93(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_94(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_95(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_96(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_97(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_98(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_99(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_100(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_101(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_102(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_103(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_104(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_105(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_106(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_107(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_108(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_109(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_110(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_111(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_112(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_113(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_114(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_115(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_116(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_117(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_118(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_119(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_120(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_121(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_122(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_123(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_124(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_125(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_126(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_127(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_128(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_129(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_130(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_131(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_132(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_133(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_134(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_135(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_136(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_137(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_138(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_139(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_140(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_141(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_142(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_143(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_144(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_145(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_146(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_147(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_148(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_149(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_150(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_151(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_152(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_153(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_154(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_155(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_156(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_157(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_158(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_159(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_160(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_161(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_162(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_163(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_164(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_165(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_166(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_167(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_168(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_169(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_170(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_171(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_172(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_173(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_174(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_175(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_176(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_177(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_178(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_179(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_180(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_181(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_182(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_183(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_184(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_185(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_186(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_187(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_188(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_189(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_190(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_191(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_192(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_193(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_194(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_195(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_196(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_197(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_198(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_199(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_200(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_201(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_202(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_203(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_204(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_205(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_206(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_207(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_208(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_209(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_210(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_211(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_212(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_213(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_214(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_215(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_216(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_217(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_218(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_219(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_220(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_221(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_222(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_223(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_224(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_225(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_226(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_227(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_228(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_229(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_230(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_231(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_232(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_233(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_234(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_235(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_236(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_237(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_238(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_239(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_240(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_241(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_242(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_243(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_244(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_245(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_246(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_247(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_248(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_249(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_250(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_251(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_252(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_253(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_254(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_255(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_256(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_1(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_2(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_3(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_4(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_5(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_6(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_7(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_8(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_9(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_10(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_11(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_12(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_13(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_14(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_15(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_16(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_17(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_18(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_19(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_20(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_21(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_22(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_23(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_24(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_25(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_26(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_27(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_28(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_29(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_30(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_31(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_32(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_33(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_34(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_35(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_36(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_37(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_38(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_39(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_40(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_41(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_42(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_43(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_44(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_45(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_46(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_47(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_48(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_49(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_50(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_51(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_52(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_53(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_54(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_55(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_56(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_57(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_58(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_59(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_60(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_61(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_62(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_63(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_64(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_65(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_66(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_67(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_68(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_69(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_70(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_71(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_72(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_73(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_74(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_75(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_76(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_77(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_78(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_79(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_80(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_81(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_82(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_83(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_84(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_85(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_86(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_87(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_88(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_89(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_90(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_91(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_92(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_93(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_94(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_95(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_96(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_97(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_98(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_99(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_100(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_101(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_102(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_103(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_104(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_105(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_106(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_107(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_108(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_109(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_110(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_111(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_112(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_113(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_114(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_115(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_116(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_117(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_118(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_119(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_120(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_121(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_122(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_123(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_124(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_125(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_126(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_127(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_128(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_129(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_130(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_131(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_132(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_133(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_134(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_135(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_136(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_137(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_138(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_139(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_140(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_141(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_142(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_143(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_144(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_145(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_146(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_147(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_148(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_149(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_150(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_151(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_152(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_153(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_154(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_155(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_156(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_157(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_158(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_159(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_160(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_161(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_162(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_163(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_164(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_165(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_166(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_167(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_168(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_169(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_170(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_171(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_172(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_173(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_174(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_175(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_176(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_177(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_178(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_179(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_180(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_181(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_182(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_183(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_184(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_185(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_186(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_187(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_188(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_189(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_190(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_191(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_192(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_193(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_194(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_195(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_196(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_197(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_198(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_199(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_200(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_201(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_202(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_203(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_204(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_205(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_206(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_207(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_208(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_209(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_210(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_211(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_212(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_213(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_214(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_215(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_216(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_217(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_218(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_219(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_220(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_221(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_222(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_223(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_224(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_225(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_226(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_227(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_228(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_229(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_230(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_231(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_232(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_233(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_234(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_235(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_236(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_237(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_238(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_239(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_240(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_241(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_242(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_243(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_244(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_245(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_246(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_247(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_248(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_249(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_250(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_251(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_252(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_253(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_254(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_255(o, s, l) 0
+# define NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_LIST_FOLD_LEFT_256(o, s, l) 0
 #
 # endif
diff --git a/include/ndnboost/preprocessor/list/fold_right.hpp b/include/ndnboost/preprocessor/list/fold_right.hpp
index 951bd9e..fd85597 100644
--- a/include/ndnboost/preprocessor/list/fold_right.hpp
+++ b/include/ndnboost/preprocessor/list/fold_right.hpp
@@ -11,8 +11,8 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_LIST_FOLD_RIGHT_HPP
-# define BOOST_PREPROCESSOR_LIST_FOLD_RIGHT_HPP
+# ifndef NDNBOOST_PREPROCESSOR_LIST_FOLD_RIGHT_HPP
+# define NDNBOOST_PREPROCESSOR_LIST_FOLD_RIGHT_HPP
 #
 # include <ndnboost/preprocessor/cat.hpp>
 # include <ndnboost/preprocessor/control/while.hpp>
@@ -20,18 +20,18 @@
 # include <ndnboost/preprocessor/detail/auto_rec.hpp>
 #
 # if 0
-#    define BOOST_PP_LIST_FOLD_RIGHT(op, state, list)
+#    define NDNBOOST_PP_LIST_FOLD_RIGHT(op, state, list)
 # endif
 #
-# define BOOST_PP_LIST_FOLD_RIGHT BOOST_PP_CAT(BOOST_PP_LIST_FOLD_RIGHT_, BOOST_PP_AUTO_REC(BOOST_PP_WHILE_P, 256))
+# define NDNBOOST_PP_LIST_FOLD_RIGHT NDNBOOST_PP_CAT(NDNBOOST_PP_LIST_FOLD_RIGHT_, NDNBOOST_PP_AUTO_REC(NDNBOOST_PP_WHILE_P, 256))
 #
-# define BOOST_PP_LIST_FOLD_RIGHT_257(o, s, l) BOOST_PP_ERROR(0x0004)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_257(o, s, l) NDNBOOST_PP_ERROR(0x0004)
 #
-# define BOOST_PP_LIST_FOLD_RIGHT_D(d, o, s, l) BOOST_PP_LIST_FOLD_RIGHT_ ## d(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_2ND BOOST_PP_LIST_FOLD_RIGHT
-# define BOOST_PP_LIST_FOLD_RIGHT_2ND_D BOOST_PP_LIST_FOLD_RIGHT_D
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_D(d, o, s, l) NDNBOOST_PP_LIST_FOLD_RIGHT_ ## d(o, s, l)
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_2ND NDNBOOST_PP_LIST_FOLD_RIGHT
+# define NDNBOOST_PP_LIST_FOLD_RIGHT_2ND_D NDNBOOST_PP_LIST_FOLD_RIGHT_D
 #
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+# if NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
 #    include <ndnboost/preprocessor/list/detail/edg/fold_right.hpp>
 # else
 #    include <ndnboost/preprocessor/list/detail/fold_right.hpp>
diff --git a/include/ndnboost/preprocessor/list/for_each_i.hpp b/include/ndnboost/preprocessor/list/for_each_i.hpp
index 1b88524..b0ea43e 100644
--- a/include/ndnboost/preprocessor/list/for_each_i.hpp
+++ b/include/ndnboost/preprocessor/list/for_each_i.hpp
@@ -11,8 +11,8 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_LIST_LIST_FOR_EACH_I_HPP
-# define BOOST_PREPROCESSOR_LIST_LIST_FOR_EACH_I_HPP
+# ifndef NDNBOOST_PREPROCESSOR_LIST_LIST_FOR_EACH_I_HPP
+# define NDNBOOST_PREPROCESSOR_LIST_LIST_FOR_EACH_I_HPP
 #
 # include <ndnboost/preprocessor/arithmetic/inc.hpp>
 # include <ndnboost/preprocessor/config/config.hpp>
@@ -21,45 +21,45 @@
 # include <ndnboost/preprocessor/tuple/elem.hpp>
 # include <ndnboost/preprocessor/tuple/rem.hpp>
 #
-# /* BOOST_PP_LIST_FOR_EACH_I */
+# /* NDNBOOST_PP_LIST_FOR_EACH_I */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() && ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-#    define BOOST_PP_LIST_FOR_EACH_I(macro, data, list) BOOST_PP_FOR((macro, data, list, 0), BOOST_PP_LIST_FOR_EACH_I_P, BOOST_PP_LIST_FOR_EACH_I_O, BOOST_PP_LIST_FOR_EACH_I_M)
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG() && ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MSVC()
+#    define NDNBOOST_PP_LIST_FOR_EACH_I(macro, data, list) NDNBOOST_PP_FOR((macro, data, list, 0), NDNBOOST_PP_LIST_FOR_EACH_I_P, NDNBOOST_PP_LIST_FOR_EACH_I_O, NDNBOOST_PP_LIST_FOR_EACH_I_M)
 # else
-#    define BOOST_PP_LIST_FOR_EACH_I(macro, data, list) BOOST_PP_LIST_FOR_EACH_I_I(macro, data, list)
-#    define BOOST_PP_LIST_FOR_EACH_I_I(macro, data, list) BOOST_PP_FOR((macro, data, list, 0), BOOST_PP_LIST_FOR_EACH_I_P, BOOST_PP_LIST_FOR_EACH_I_O, BOOST_PP_LIST_FOR_EACH_I_M)
+#    define NDNBOOST_PP_LIST_FOR_EACH_I(macro, data, list) NDNBOOST_PP_LIST_FOR_EACH_I_I(macro, data, list)
+#    define NDNBOOST_PP_LIST_FOR_EACH_I_I(macro, data, list) NDNBOOST_PP_FOR((macro, data, list, 0), NDNBOOST_PP_LIST_FOR_EACH_I_P, NDNBOOST_PP_LIST_FOR_EACH_I_O, NDNBOOST_PP_LIST_FOR_EACH_I_M)
 # endif
 #
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
-#    define BOOST_PP_LIST_FOR_EACH_I_P(r, x) BOOST_PP_LIST_FOR_EACH_I_P_D x
-#    define BOOST_PP_LIST_FOR_EACH_I_P_D(m, d, l, i) BOOST_PP_LIST_IS_CONS(l)
+# if NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_STRICT()
+#    define NDNBOOST_PP_LIST_FOR_EACH_I_P(r, x) NDNBOOST_PP_LIST_FOR_EACH_I_P_D x
+#    define NDNBOOST_PP_LIST_FOR_EACH_I_P_D(m, d, l, i) NDNBOOST_PP_LIST_IS_CONS(l)
 # else
-#    define BOOST_PP_LIST_FOR_EACH_I_P(r, x) BOOST_PP_LIST_IS_CONS(BOOST_PP_TUPLE_ELEM(4, 2, x))
+#    define NDNBOOST_PP_LIST_FOR_EACH_I_P(r, x) NDNBOOST_PP_LIST_IS_CONS(NDNBOOST_PP_TUPLE_ELEM(4, 2, x))
 # endif
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_LIST_FOR_EACH_I_O(r, x) BOOST_PP_LIST_FOR_EACH_I_O_D x
-#    define BOOST_PP_LIST_FOR_EACH_I_O_D(m, d, l, i) (m, d, BOOST_PP_LIST_REST(l), BOOST_PP_INC(i))
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MWCC()
+#    define NDNBOOST_PP_LIST_FOR_EACH_I_O(r, x) NDNBOOST_PP_LIST_FOR_EACH_I_O_D x
+#    define NDNBOOST_PP_LIST_FOR_EACH_I_O_D(m, d, l, i) (m, d, NDNBOOST_PP_LIST_REST(l), NDNBOOST_PP_INC(i))
 # else
-#    define BOOST_PP_LIST_FOR_EACH_I_O(r, x) (BOOST_PP_TUPLE_ELEM(4, 0, x), BOOST_PP_TUPLE_ELEM(4, 1, x), BOOST_PP_LIST_REST(BOOST_PP_TUPLE_ELEM(4, 2, x)), BOOST_PP_INC(BOOST_PP_TUPLE_ELEM(4, 3, x)))
+#    define NDNBOOST_PP_LIST_FOR_EACH_I_O(r, x) (NDNBOOST_PP_TUPLE_ELEM(4, 0, x), NDNBOOST_PP_TUPLE_ELEM(4, 1, x), NDNBOOST_PP_LIST_REST(NDNBOOST_PP_TUPLE_ELEM(4, 2, x)), NDNBOOST_PP_INC(NDNBOOST_PP_TUPLE_ELEM(4, 3, x)))
 # endif
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_LIST_FOR_EACH_I_M(r, x) BOOST_PP_LIST_FOR_EACH_I_M_D(r, BOOST_PP_TUPLE_ELEM(4, 0, x), BOOST_PP_TUPLE_ELEM(4, 1, x), BOOST_PP_TUPLE_ELEM(4, 2, x), BOOST_PP_TUPLE_ELEM(4, 3, x))
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_LIST_FOR_EACH_I_M(r, x) NDNBOOST_PP_LIST_FOR_EACH_I_M_D(r, NDNBOOST_PP_TUPLE_ELEM(4, 0, x), NDNBOOST_PP_TUPLE_ELEM(4, 1, x), NDNBOOST_PP_TUPLE_ELEM(4, 2, x), NDNBOOST_PP_TUPLE_ELEM(4, 3, x))
 # else
-#    define BOOST_PP_LIST_FOR_EACH_I_M(r, x) BOOST_PP_LIST_FOR_EACH_I_M_I(r, BOOST_PP_TUPLE_REM_4 x)
-#    define BOOST_PP_LIST_FOR_EACH_I_M_I(r, x_e) BOOST_PP_LIST_FOR_EACH_I_M_D(r, x_e)
+#    define NDNBOOST_PP_LIST_FOR_EACH_I_M(r, x) NDNBOOST_PP_LIST_FOR_EACH_I_M_I(r, NDNBOOST_PP_TUPLE_REM_4 x)
+#    define NDNBOOST_PP_LIST_FOR_EACH_I_M_I(r, x_e) NDNBOOST_PP_LIST_FOR_EACH_I_M_D(r, x_e)
 # endif
 #
-# define BOOST_PP_LIST_FOR_EACH_I_M_D(r, m, d, l, i) m(r, d, i, BOOST_PP_LIST_FIRST(l))
+# define NDNBOOST_PP_LIST_FOR_EACH_I_M_D(r, m, d, l, i) m(r, d, i, NDNBOOST_PP_LIST_FIRST(l))
 #
-# /* BOOST_PP_LIST_FOR_EACH_I_R */
+# /* NDNBOOST_PP_LIST_FOR_EACH_I_R */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_LIST_FOR_EACH_I_R(r, macro, data, list) BOOST_PP_FOR_ ## r((macro, data, list, 0), BOOST_PP_LIST_FOR_EACH_I_P, BOOST_PP_LIST_FOR_EACH_I_O, BOOST_PP_LIST_FOR_EACH_I_M)
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_LIST_FOR_EACH_I_R(r, macro, data, list) NDNBOOST_PP_FOR_ ## r((macro, data, list, 0), NDNBOOST_PP_LIST_FOR_EACH_I_P, NDNBOOST_PP_LIST_FOR_EACH_I_O, NDNBOOST_PP_LIST_FOR_EACH_I_M)
 # else
-#    define BOOST_PP_LIST_FOR_EACH_I_R(r, macro, data, list) BOOST_PP_LIST_FOR_EACH_I_R_I(r, macro, data, list)
-#    define BOOST_PP_LIST_FOR_EACH_I_R_I(r, macro, data, list) BOOST_PP_FOR_ ## r((macro, data, list, 0), BOOST_PP_LIST_FOR_EACH_I_P, BOOST_PP_LIST_FOR_EACH_I_O, BOOST_PP_LIST_FOR_EACH_I_M)
+#    define NDNBOOST_PP_LIST_FOR_EACH_I_R(r, macro, data, list) NDNBOOST_PP_LIST_FOR_EACH_I_R_I(r, macro, data, list)
+#    define NDNBOOST_PP_LIST_FOR_EACH_I_R_I(r, macro, data, list) NDNBOOST_PP_FOR_ ## r((macro, data, list, 0), NDNBOOST_PP_LIST_FOR_EACH_I_P, NDNBOOST_PP_LIST_FOR_EACH_I_O, NDNBOOST_PP_LIST_FOR_EACH_I_M)
 # endif
 #
 # endif
diff --git a/include/ndnboost/preprocessor/list/reverse.hpp b/include/ndnboost/preprocessor/list/reverse.hpp
index d23fffc..bf1eab5 100644
--- a/include/ndnboost/preprocessor/list/reverse.hpp
+++ b/include/ndnboost/preprocessor/list/reverse.hpp
@@ -11,30 +11,30 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_LIST_REVERSE_HPP
-# define BOOST_PREPROCESSOR_LIST_REVERSE_HPP
+# ifndef NDNBOOST_PREPROCESSOR_LIST_REVERSE_HPP
+# define NDNBOOST_PREPROCESSOR_LIST_REVERSE_HPP
 #
 # include <ndnboost/preprocessor/config/config.hpp>
 # include <ndnboost/preprocessor/list/fold_left.hpp>
 #
-# /* BOOST_PP_LIST_REVERSE */
+# /* NDNBOOST_PP_LIST_REVERSE */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_LIST_REVERSE(list) BOOST_PP_LIST_FOLD_LEFT(BOOST_PP_LIST_REVERSE_O, BOOST_PP_NIL, list)
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_LIST_REVERSE(list) NDNBOOST_PP_LIST_FOLD_LEFT(NDNBOOST_PP_LIST_REVERSE_O, NDNBOOST_PP_NIL, list)
 # else
-#    define BOOST_PP_LIST_REVERSE(list) BOOST_PP_LIST_REVERSE_I(list)
-#    define BOOST_PP_LIST_REVERSE_I(list) BOOST_PP_LIST_FOLD_LEFT(BOOST_PP_LIST_REVERSE_O, BOOST_PP_NIL, list)
+#    define NDNBOOST_PP_LIST_REVERSE(list) NDNBOOST_PP_LIST_REVERSE_I(list)
+#    define NDNBOOST_PP_LIST_REVERSE_I(list) NDNBOOST_PP_LIST_FOLD_LEFT(NDNBOOST_PP_LIST_REVERSE_O, NDNBOOST_PP_NIL, list)
 # endif
 #
-# define BOOST_PP_LIST_REVERSE_O(d, s, x) (x, s)
+# define NDNBOOST_PP_LIST_REVERSE_O(d, s, x) (x, s)
 #
-# /* BOOST_PP_LIST_REVERSE_D */
+# /* NDNBOOST_PP_LIST_REVERSE_D */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_LIST_REVERSE_D(d, list) BOOST_PP_LIST_FOLD_LEFT_ ## d(BOOST_PP_LIST_REVERSE_O, BOOST_PP_NIL, list)
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_LIST_REVERSE_D(d, list) NDNBOOST_PP_LIST_FOLD_LEFT_ ## d(NDNBOOST_PP_LIST_REVERSE_O, NDNBOOST_PP_NIL, list)
 # else
-#    define BOOST_PP_LIST_REVERSE_D(d, list) BOOST_PP_LIST_REVERSE_D_I(d, list)
-#    define BOOST_PP_LIST_REVERSE_D_I(d, list) BOOST_PP_LIST_FOLD_LEFT_ ## d(BOOST_PP_LIST_REVERSE_O, BOOST_PP_NIL, list)
+#    define NDNBOOST_PP_LIST_REVERSE_D(d, list) NDNBOOST_PP_LIST_REVERSE_D_I(d, list)
+#    define NDNBOOST_PP_LIST_REVERSE_D_I(d, list) NDNBOOST_PP_LIST_FOLD_LEFT_ ## d(NDNBOOST_PP_LIST_REVERSE_O, NDNBOOST_PP_NIL, list)
 # endif
 #
 # endif
diff --git a/include/ndnboost/preprocessor/list/transform.hpp b/include/ndnboost/preprocessor/list/transform.hpp
index 8be863f..52d564e 100644
--- a/include/ndnboost/preprocessor/list/transform.hpp
+++ b/include/ndnboost/preprocessor/list/transform.hpp
@@ -11,39 +11,39 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_LIST_TRANSFORM_HPP
-# define BOOST_PREPROCESSOR_LIST_TRANSFORM_HPP
+# ifndef NDNBOOST_PREPROCESSOR_LIST_TRANSFORM_HPP
+# define NDNBOOST_PREPROCESSOR_LIST_TRANSFORM_HPP
 #
 # include <ndnboost/preprocessor/config/config.hpp>
 # include <ndnboost/preprocessor/list/fold_right.hpp>
 # include <ndnboost/preprocessor/tuple/elem.hpp>
 # include <ndnboost/preprocessor/tuple/rem.hpp>
 #
-# /* BOOST_PP_LIST_TRANSFORM */
+# /* NDNBOOST_PP_LIST_TRANSFORM */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_LIST_TRANSFORM(op, data, list) BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_LIST_FOLD_RIGHT(BOOST_PP_LIST_TRANSFORM_O, (op, data, BOOST_PP_NIL), list))
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_LIST_TRANSFORM(op, data, list) NDNBOOST_PP_TUPLE_ELEM(3, 2, NDNBOOST_PP_LIST_FOLD_RIGHT(NDNBOOST_PP_LIST_TRANSFORM_O, (op, data, NDNBOOST_PP_NIL), list))
 # else
-#    define BOOST_PP_LIST_TRANSFORM(op, data, list) BOOST_PP_LIST_TRANSFORM_I(op, data, list)
-#    define BOOST_PP_LIST_TRANSFORM_I(op, data, list) BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_LIST_FOLD_RIGHT(BOOST_PP_LIST_TRANSFORM_O, (op, data, BOOST_PP_NIL), list))
+#    define NDNBOOST_PP_LIST_TRANSFORM(op, data, list) NDNBOOST_PP_LIST_TRANSFORM_I(op, data, list)
+#    define NDNBOOST_PP_LIST_TRANSFORM_I(op, data, list) NDNBOOST_PP_TUPLE_ELEM(3, 2, NDNBOOST_PP_LIST_FOLD_RIGHT(NDNBOOST_PP_LIST_TRANSFORM_O, (op, data, NDNBOOST_PP_NIL), list))
 # endif
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_LIST_TRANSFORM_O(d, odr, elem) BOOST_PP_LIST_TRANSFORM_O_D(d, BOOST_PP_TUPLE_ELEM(3, 0, odr), BOOST_PP_TUPLE_ELEM(3, 1, odr), BOOST_PP_TUPLE_ELEM(3, 2, odr), elem)
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_LIST_TRANSFORM_O(d, odr, elem) NDNBOOST_PP_LIST_TRANSFORM_O_D(d, NDNBOOST_PP_TUPLE_ELEM(3, 0, odr), NDNBOOST_PP_TUPLE_ELEM(3, 1, odr), NDNBOOST_PP_TUPLE_ELEM(3, 2, odr), elem)
 # else
-#    define BOOST_PP_LIST_TRANSFORM_O(d, odr, elem) BOOST_PP_LIST_TRANSFORM_O_I(d, BOOST_PP_TUPLE_REM_3 odr, elem)
-#    define BOOST_PP_LIST_TRANSFORM_O_I(d, im, elem) BOOST_PP_LIST_TRANSFORM_O_D(d, im, elem)
+#    define NDNBOOST_PP_LIST_TRANSFORM_O(d, odr, elem) NDNBOOST_PP_LIST_TRANSFORM_O_I(d, NDNBOOST_PP_TUPLE_REM_3 odr, elem)
+#    define NDNBOOST_PP_LIST_TRANSFORM_O_I(d, im, elem) NDNBOOST_PP_LIST_TRANSFORM_O_D(d, im, elem)
 # endif
 #
-# define BOOST_PP_LIST_TRANSFORM_O_D(d, op, data, res, elem) (op, data, (op(d, data, elem), res))
+# define NDNBOOST_PP_LIST_TRANSFORM_O_D(d, op, data, res, elem) (op, data, (op(d, data, elem), res))
 #
-# /* BOOST_PP_LIST_TRANSFORM_D */
+# /* NDNBOOST_PP_LIST_TRANSFORM_D */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_LIST_TRANSFORM_D(d, op, data, list) BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_LIST_FOLD_RIGHT_ ## d(BOOST_PP_LIST_TRANSFORM_O, (op, data, BOOST_PP_NIL), list))
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_LIST_TRANSFORM_D(d, op, data, list) NDNBOOST_PP_TUPLE_ELEM(3, 2, NDNBOOST_PP_LIST_FOLD_RIGHT_ ## d(NDNBOOST_PP_LIST_TRANSFORM_O, (op, data, NDNBOOST_PP_NIL), list))
 # else
-#    define BOOST_PP_LIST_TRANSFORM_D(d, op, data, list) BOOST_PP_LIST_TRANSFORM_D_I(d, op, data, list)
-#    define BOOST_PP_LIST_TRANSFORM_D_I(d, op, data, list) BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_LIST_FOLD_RIGHT_ ## d(BOOST_PP_LIST_TRANSFORM_O, (op, data, BOOST_PP_NIL), list))
+#    define NDNBOOST_PP_LIST_TRANSFORM_D(d, op, data, list) NDNBOOST_PP_LIST_TRANSFORM_D_I(d, op, data, list)
+#    define NDNBOOST_PP_LIST_TRANSFORM_D_I(d, op, data, list) NDNBOOST_PP_TUPLE_ELEM(3, 2, NDNBOOST_PP_LIST_FOLD_RIGHT_ ## d(NDNBOOST_PP_LIST_TRANSFORM_O, (op, data, NDNBOOST_PP_NIL), list))
 # endif
 #
 # endif
diff --git a/include/ndnboost/preprocessor/logical/and.hpp b/include/ndnboost/preprocessor/logical/and.hpp
index ca3b619..45329cd 100644
--- a/include/ndnboost/preprocessor/logical/and.hpp
+++ b/include/ndnboost/preprocessor/logical/and.hpp
@@ -11,20 +11,20 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_LOGICAL_AND_HPP
-# define BOOST_PREPROCESSOR_LOGICAL_AND_HPP
+# ifndef NDNBOOST_PREPROCESSOR_LOGICAL_AND_HPP
+# define NDNBOOST_PREPROCESSOR_LOGICAL_AND_HPP
 #
 # include <ndnboost/preprocessor/config/config.hpp>
 # include <ndnboost/preprocessor/logical/bool.hpp>
 # include <ndnboost/preprocessor/logical/bitand.hpp>
 #
-# /* BOOST_PP_AND */
+# /* NDNBOOST_PP_AND */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_AND(p, q) BOOST_PP_BITAND(BOOST_PP_BOOL(p), BOOST_PP_BOOL(q))
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_AND(p, q) NDNBOOST_PP_BITAND(NDNBOOST_PP_BOOL(p), NDNBOOST_PP_BOOL(q))
 # else
-#    define BOOST_PP_AND(p, q) BOOST_PP_AND_I(p, q)
-#    define BOOST_PP_AND_I(p, q) BOOST_PP_BITAND(BOOST_PP_BOOL(p), BOOST_PP_BOOL(q))
+#    define NDNBOOST_PP_AND(p, q) NDNBOOST_PP_AND_I(p, q)
+#    define NDNBOOST_PP_AND_I(p, q) NDNBOOST_PP_BITAND(NDNBOOST_PP_BOOL(p), NDNBOOST_PP_BOOL(q))
 # endif
 #
 # endif
diff --git a/include/ndnboost/preprocessor/logical/bitand.hpp b/include/ndnboost/preprocessor/logical/bitand.hpp
index 56ab392..9879f11 100644
--- a/include/ndnboost/preprocessor/logical/bitand.hpp
+++ b/include/ndnboost/preprocessor/logical/bitand.hpp
@@ -9,30 +9,30 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_LOGICAL_BITAND_HPP
-# define BOOST_PREPROCESSOR_LOGICAL_BITAND_HPP
+# ifndef NDNBOOST_PREPROCESSOR_LOGICAL_BITAND_HPP
+# define NDNBOOST_PREPROCESSOR_LOGICAL_BITAND_HPP
 #
 # include <ndnboost/preprocessor/config/config.hpp>
 #
-# /* BOOST_PP_BITAND */
+# /* NDNBOOST_PP_BITAND */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_BITAND(x, y) BOOST_PP_BITAND_I(x, y)
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MWCC()
+#    define NDNBOOST_PP_BITAND(x, y) NDNBOOST_PP_BITAND_I(x, y)
 # else
-#    define BOOST_PP_BITAND(x, y) BOOST_PP_BITAND_OO((x, y))
-#    define BOOST_PP_BITAND_OO(par) BOOST_PP_BITAND_I ## par
+#    define NDNBOOST_PP_BITAND(x, y) NDNBOOST_PP_BITAND_OO((x, y))
+#    define NDNBOOST_PP_BITAND_OO(par) NDNBOOST_PP_BITAND_I ## par
 # endif
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-#    define BOOST_PP_BITAND_I(x, y) BOOST_PP_BITAND_ ## x ## y
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MSVC()
+#    define NDNBOOST_PP_BITAND_I(x, y) NDNBOOST_PP_BITAND_ ## x ## y
 # else
-#    define BOOST_PP_BITAND_I(x, y) BOOST_PP_BITAND_ID(BOOST_PP_BITAND_ ## x ## y)
-#    define BOOST_PP_BITAND_ID(res) res
+#    define NDNBOOST_PP_BITAND_I(x, y) NDNBOOST_PP_BITAND_ID(NDNBOOST_PP_BITAND_ ## x ## y)
+#    define NDNBOOST_PP_BITAND_ID(res) res
 # endif
 #
-# define BOOST_PP_BITAND_00 0
-# define BOOST_PP_BITAND_01 0
-# define BOOST_PP_BITAND_10 0
-# define BOOST_PP_BITAND_11 1
+# define NDNBOOST_PP_BITAND_00 0
+# define NDNBOOST_PP_BITAND_01 0
+# define NDNBOOST_PP_BITAND_10 0
+# define NDNBOOST_PP_BITAND_11 1
 #
 # endif
diff --git a/include/ndnboost/preprocessor/logical/bitor.hpp b/include/ndnboost/preprocessor/logical/bitor.hpp
index f05b0bf..f84ad59 100644
--- a/include/ndnboost/preprocessor/logical/bitor.hpp
+++ b/include/ndnboost/preprocessor/logical/bitor.hpp
@@ -9,30 +9,30 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_LOGICAL_BITOR_HPP
-# define BOOST_PREPROCESSOR_LOGICAL_BITOR_HPP
+# ifndef NDNBOOST_PREPROCESSOR_LOGICAL_BITOR_HPP
+# define NDNBOOST_PREPROCESSOR_LOGICAL_BITOR_HPP
 #
 # include <ndnboost/preprocessor/config/config.hpp>
 #
-# /* BOOST_PP_BITOR */
+# /* NDNBOOST_PP_BITOR */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_BITOR(x, y) BOOST_PP_BITOR_I(x, y)
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MWCC()
+#    define NDNBOOST_PP_BITOR(x, y) NDNBOOST_PP_BITOR_I(x, y)
 # else
-#    define BOOST_PP_BITOR(x, y) BOOST_PP_BITOR_OO((x, y))
-#    define BOOST_PP_BITOR_OO(par) BOOST_PP_BITOR_I ## par
+#    define NDNBOOST_PP_BITOR(x, y) NDNBOOST_PP_BITOR_OO((x, y))
+#    define NDNBOOST_PP_BITOR_OO(par) NDNBOOST_PP_BITOR_I ## par
 # endif
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-#    define BOOST_PP_BITOR_I(x, y) BOOST_PP_BITOR_ ## x ## y
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MSVC()
+#    define NDNBOOST_PP_BITOR_I(x, y) NDNBOOST_PP_BITOR_ ## x ## y
 # else
-#    define BOOST_PP_BITOR_I(x, y) BOOST_PP_BITOR_ID(BOOST_PP_BITOR_ ## x ## y)
-#    define BOOST_PP_BITOR_ID(id) id
+#    define NDNBOOST_PP_BITOR_I(x, y) NDNBOOST_PP_BITOR_ID(NDNBOOST_PP_BITOR_ ## x ## y)
+#    define NDNBOOST_PP_BITOR_ID(id) id
 # endif
 #
-# define BOOST_PP_BITOR_00 0
-# define BOOST_PP_BITOR_01 1
-# define BOOST_PP_BITOR_10 1
-# define BOOST_PP_BITOR_11 1
+# define NDNBOOST_PP_BITOR_00 0
+# define NDNBOOST_PP_BITOR_01 1
+# define NDNBOOST_PP_BITOR_10 1
+# define NDNBOOST_PP_BITOR_11 1
 #
 # endif
diff --git a/include/ndnboost/preprocessor/logical/bool.hpp b/include/ndnboost/preprocessor/logical/bool.hpp
index e14f4d3..bd45dd4 100644
--- a/include/ndnboost/preprocessor/logical/bool.hpp
+++ b/include/ndnboost/preprocessor/logical/bool.hpp
@@ -11,278 +11,278 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_LOGICAL_BOOL_HPP
-# define BOOST_PREPROCESSOR_LOGICAL_BOOL_HPP
+# ifndef NDNBOOST_PREPROCESSOR_LOGICAL_BOOL_HPP
+# define NDNBOOST_PREPROCESSOR_LOGICAL_BOOL_HPP
 #
 # include <ndnboost/preprocessor/config/config.hpp>
 #
-# /* BOOST_PP_BOOL */
+# /* NDNBOOST_PP_BOOL */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_BOOL(x) BOOST_PP_BOOL_I(x)
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MWCC()
+#    define NDNBOOST_PP_BOOL(x) NDNBOOST_PP_BOOL_I(x)
 # else
-#    define BOOST_PP_BOOL(x) BOOST_PP_BOOL_OO((x))
-#    define BOOST_PP_BOOL_OO(par) BOOST_PP_BOOL_I ## par
+#    define NDNBOOST_PP_BOOL(x) NDNBOOST_PP_BOOL_OO((x))
+#    define NDNBOOST_PP_BOOL_OO(par) NDNBOOST_PP_BOOL_I ## par
 # endif
 #
-# define BOOST_PP_BOOL_I(x) BOOST_PP_BOOL_ ## x
+# define NDNBOOST_PP_BOOL_I(x) NDNBOOST_PP_BOOL_ ## x
 #
-# define BOOST_PP_BOOL_0 0
-# define BOOST_PP_BOOL_1 1
-# define BOOST_PP_BOOL_2 1
-# define BOOST_PP_BOOL_3 1
-# define BOOST_PP_BOOL_4 1
-# define BOOST_PP_BOOL_5 1
-# define BOOST_PP_BOOL_6 1
-# define BOOST_PP_BOOL_7 1
-# define BOOST_PP_BOOL_8 1
-# define BOOST_PP_BOOL_9 1
-# define BOOST_PP_BOOL_10 1
-# define BOOST_PP_BOOL_11 1
-# define BOOST_PP_BOOL_12 1
-# define BOOST_PP_BOOL_13 1
-# define BOOST_PP_BOOL_14 1
-# define BOOST_PP_BOOL_15 1
-# define BOOST_PP_BOOL_16 1
-# define BOOST_PP_BOOL_17 1
-# define BOOST_PP_BOOL_18 1
-# define BOOST_PP_BOOL_19 1
-# define BOOST_PP_BOOL_20 1
-# define BOOST_PP_BOOL_21 1
-# define BOOST_PP_BOOL_22 1
-# define BOOST_PP_BOOL_23 1
-# define BOOST_PP_BOOL_24 1
-# define BOOST_PP_BOOL_25 1
-# define BOOST_PP_BOOL_26 1
-# define BOOST_PP_BOOL_27 1
-# define BOOST_PP_BOOL_28 1
-# define BOOST_PP_BOOL_29 1
-# define BOOST_PP_BOOL_30 1
-# define BOOST_PP_BOOL_31 1
-# define BOOST_PP_BOOL_32 1
-# define BOOST_PP_BOOL_33 1
-# define BOOST_PP_BOOL_34 1
-# define BOOST_PP_BOOL_35 1
-# define BOOST_PP_BOOL_36 1
-# define BOOST_PP_BOOL_37 1
-# define BOOST_PP_BOOL_38 1
-# define BOOST_PP_BOOL_39 1
-# define BOOST_PP_BOOL_40 1
-# define BOOST_PP_BOOL_41 1
-# define BOOST_PP_BOOL_42 1
-# define BOOST_PP_BOOL_43 1
-# define BOOST_PP_BOOL_44 1
-# define BOOST_PP_BOOL_45 1
-# define BOOST_PP_BOOL_46 1
-# define BOOST_PP_BOOL_47 1
-# define BOOST_PP_BOOL_48 1
-# define BOOST_PP_BOOL_49 1
-# define BOOST_PP_BOOL_50 1
-# define BOOST_PP_BOOL_51 1
-# define BOOST_PP_BOOL_52 1
-# define BOOST_PP_BOOL_53 1
-# define BOOST_PP_BOOL_54 1
-# define BOOST_PP_BOOL_55 1
-# define BOOST_PP_BOOL_56 1
-# define BOOST_PP_BOOL_57 1
-# define BOOST_PP_BOOL_58 1
-# define BOOST_PP_BOOL_59 1
-# define BOOST_PP_BOOL_60 1
-# define BOOST_PP_BOOL_61 1
-# define BOOST_PP_BOOL_62 1
-# define BOOST_PP_BOOL_63 1
-# define BOOST_PP_BOOL_64 1
-# define BOOST_PP_BOOL_65 1
-# define BOOST_PP_BOOL_66 1
-# define BOOST_PP_BOOL_67 1
-# define BOOST_PP_BOOL_68 1
-# define BOOST_PP_BOOL_69 1
-# define BOOST_PP_BOOL_70 1
-# define BOOST_PP_BOOL_71 1
-# define BOOST_PP_BOOL_72 1
-# define BOOST_PP_BOOL_73 1
-# define BOOST_PP_BOOL_74 1
-# define BOOST_PP_BOOL_75 1
-# define BOOST_PP_BOOL_76 1
-# define BOOST_PP_BOOL_77 1
-# define BOOST_PP_BOOL_78 1
-# define BOOST_PP_BOOL_79 1
-# define BOOST_PP_BOOL_80 1
-# define BOOST_PP_BOOL_81 1
-# define BOOST_PP_BOOL_82 1
-# define BOOST_PP_BOOL_83 1
-# define BOOST_PP_BOOL_84 1
-# define BOOST_PP_BOOL_85 1
-# define BOOST_PP_BOOL_86 1
-# define BOOST_PP_BOOL_87 1
-# define BOOST_PP_BOOL_88 1
-# define BOOST_PP_BOOL_89 1
-# define BOOST_PP_BOOL_90 1
-# define BOOST_PP_BOOL_91 1
-# define BOOST_PP_BOOL_92 1
-# define BOOST_PP_BOOL_93 1
-# define BOOST_PP_BOOL_94 1
-# define BOOST_PP_BOOL_95 1
-# define BOOST_PP_BOOL_96 1
-# define BOOST_PP_BOOL_97 1
-# define BOOST_PP_BOOL_98 1
-# define BOOST_PP_BOOL_99 1
-# define BOOST_PP_BOOL_100 1
-# define BOOST_PP_BOOL_101 1
-# define BOOST_PP_BOOL_102 1
-# define BOOST_PP_BOOL_103 1
-# define BOOST_PP_BOOL_104 1
-# define BOOST_PP_BOOL_105 1
-# define BOOST_PP_BOOL_106 1
-# define BOOST_PP_BOOL_107 1
-# define BOOST_PP_BOOL_108 1
-# define BOOST_PP_BOOL_109 1
-# define BOOST_PP_BOOL_110 1
-# define BOOST_PP_BOOL_111 1
-# define BOOST_PP_BOOL_112 1
-# define BOOST_PP_BOOL_113 1
-# define BOOST_PP_BOOL_114 1
-# define BOOST_PP_BOOL_115 1
-# define BOOST_PP_BOOL_116 1
-# define BOOST_PP_BOOL_117 1
-# define BOOST_PP_BOOL_118 1
-# define BOOST_PP_BOOL_119 1
-# define BOOST_PP_BOOL_120 1
-# define BOOST_PP_BOOL_121 1
-# define BOOST_PP_BOOL_122 1
-# define BOOST_PP_BOOL_123 1
-# define BOOST_PP_BOOL_124 1
-# define BOOST_PP_BOOL_125 1
-# define BOOST_PP_BOOL_126 1
-# define BOOST_PP_BOOL_127 1
-# define BOOST_PP_BOOL_128 1
-# define BOOST_PP_BOOL_129 1
-# define BOOST_PP_BOOL_130 1
-# define BOOST_PP_BOOL_131 1
-# define BOOST_PP_BOOL_132 1
-# define BOOST_PP_BOOL_133 1
-# define BOOST_PP_BOOL_134 1
-# define BOOST_PP_BOOL_135 1
-# define BOOST_PP_BOOL_136 1
-# define BOOST_PP_BOOL_137 1
-# define BOOST_PP_BOOL_138 1
-# define BOOST_PP_BOOL_139 1
-# define BOOST_PP_BOOL_140 1
-# define BOOST_PP_BOOL_141 1
-# define BOOST_PP_BOOL_142 1
-# define BOOST_PP_BOOL_143 1
-# define BOOST_PP_BOOL_144 1
-# define BOOST_PP_BOOL_145 1
-# define BOOST_PP_BOOL_146 1
-# define BOOST_PP_BOOL_147 1
-# define BOOST_PP_BOOL_148 1
-# define BOOST_PP_BOOL_149 1
-# define BOOST_PP_BOOL_150 1
-# define BOOST_PP_BOOL_151 1
-# define BOOST_PP_BOOL_152 1
-# define BOOST_PP_BOOL_153 1
-# define BOOST_PP_BOOL_154 1
-# define BOOST_PP_BOOL_155 1
-# define BOOST_PP_BOOL_156 1
-# define BOOST_PP_BOOL_157 1
-# define BOOST_PP_BOOL_158 1
-# define BOOST_PP_BOOL_159 1
-# define BOOST_PP_BOOL_160 1
-# define BOOST_PP_BOOL_161 1
-# define BOOST_PP_BOOL_162 1
-# define BOOST_PP_BOOL_163 1
-# define BOOST_PP_BOOL_164 1
-# define BOOST_PP_BOOL_165 1
-# define BOOST_PP_BOOL_166 1
-# define BOOST_PP_BOOL_167 1
-# define BOOST_PP_BOOL_168 1
-# define BOOST_PP_BOOL_169 1
-# define BOOST_PP_BOOL_170 1
-# define BOOST_PP_BOOL_171 1
-# define BOOST_PP_BOOL_172 1
-# define BOOST_PP_BOOL_173 1
-# define BOOST_PP_BOOL_174 1
-# define BOOST_PP_BOOL_175 1
-# define BOOST_PP_BOOL_176 1
-# define BOOST_PP_BOOL_177 1
-# define BOOST_PP_BOOL_178 1
-# define BOOST_PP_BOOL_179 1
-# define BOOST_PP_BOOL_180 1
-# define BOOST_PP_BOOL_181 1
-# define BOOST_PP_BOOL_182 1
-# define BOOST_PP_BOOL_183 1
-# define BOOST_PP_BOOL_184 1
-# define BOOST_PP_BOOL_185 1
-# define BOOST_PP_BOOL_186 1
-# define BOOST_PP_BOOL_187 1
-# define BOOST_PP_BOOL_188 1
-# define BOOST_PP_BOOL_189 1
-# define BOOST_PP_BOOL_190 1
-# define BOOST_PP_BOOL_191 1
-# define BOOST_PP_BOOL_192 1
-# define BOOST_PP_BOOL_193 1
-# define BOOST_PP_BOOL_194 1
-# define BOOST_PP_BOOL_195 1
-# define BOOST_PP_BOOL_196 1
-# define BOOST_PP_BOOL_197 1
-# define BOOST_PP_BOOL_198 1
-# define BOOST_PP_BOOL_199 1
-# define BOOST_PP_BOOL_200 1
-# define BOOST_PP_BOOL_201 1
-# define BOOST_PP_BOOL_202 1
-# define BOOST_PP_BOOL_203 1
-# define BOOST_PP_BOOL_204 1
-# define BOOST_PP_BOOL_205 1
-# define BOOST_PP_BOOL_206 1
-# define BOOST_PP_BOOL_207 1
-# define BOOST_PP_BOOL_208 1
-# define BOOST_PP_BOOL_209 1
-# define BOOST_PP_BOOL_210 1
-# define BOOST_PP_BOOL_211 1
-# define BOOST_PP_BOOL_212 1
-# define BOOST_PP_BOOL_213 1
-# define BOOST_PP_BOOL_214 1
-# define BOOST_PP_BOOL_215 1
-# define BOOST_PP_BOOL_216 1
-# define BOOST_PP_BOOL_217 1
-# define BOOST_PP_BOOL_218 1
-# define BOOST_PP_BOOL_219 1
-# define BOOST_PP_BOOL_220 1
-# define BOOST_PP_BOOL_221 1
-# define BOOST_PP_BOOL_222 1
-# define BOOST_PP_BOOL_223 1
-# define BOOST_PP_BOOL_224 1
-# define BOOST_PP_BOOL_225 1
-# define BOOST_PP_BOOL_226 1
-# define BOOST_PP_BOOL_227 1
-# define BOOST_PP_BOOL_228 1
-# define BOOST_PP_BOOL_229 1
-# define BOOST_PP_BOOL_230 1
-# define BOOST_PP_BOOL_231 1
-# define BOOST_PP_BOOL_232 1
-# define BOOST_PP_BOOL_233 1
-# define BOOST_PP_BOOL_234 1
-# define BOOST_PP_BOOL_235 1
-# define BOOST_PP_BOOL_236 1
-# define BOOST_PP_BOOL_237 1
-# define BOOST_PP_BOOL_238 1
-# define BOOST_PP_BOOL_239 1
-# define BOOST_PP_BOOL_240 1
-# define BOOST_PP_BOOL_241 1
-# define BOOST_PP_BOOL_242 1
-# define BOOST_PP_BOOL_243 1
-# define BOOST_PP_BOOL_244 1
-# define BOOST_PP_BOOL_245 1
-# define BOOST_PP_BOOL_246 1
-# define BOOST_PP_BOOL_247 1
-# define BOOST_PP_BOOL_248 1
-# define BOOST_PP_BOOL_249 1
-# define BOOST_PP_BOOL_250 1
-# define BOOST_PP_BOOL_251 1
-# define BOOST_PP_BOOL_252 1
-# define BOOST_PP_BOOL_253 1
-# define BOOST_PP_BOOL_254 1
-# define BOOST_PP_BOOL_255 1
-# define BOOST_PP_BOOL_256 1
+# define NDNBOOST_PP_BOOL_0 0
+# define NDNBOOST_PP_BOOL_1 1
+# define NDNBOOST_PP_BOOL_2 1
+# define NDNBOOST_PP_BOOL_3 1
+# define NDNBOOST_PP_BOOL_4 1
+# define NDNBOOST_PP_BOOL_5 1
+# define NDNBOOST_PP_BOOL_6 1
+# define NDNBOOST_PP_BOOL_7 1
+# define NDNBOOST_PP_BOOL_8 1
+# define NDNBOOST_PP_BOOL_9 1
+# define NDNBOOST_PP_BOOL_10 1
+# define NDNBOOST_PP_BOOL_11 1
+# define NDNBOOST_PP_BOOL_12 1
+# define NDNBOOST_PP_BOOL_13 1
+# define NDNBOOST_PP_BOOL_14 1
+# define NDNBOOST_PP_BOOL_15 1
+# define NDNBOOST_PP_BOOL_16 1
+# define NDNBOOST_PP_BOOL_17 1
+# define NDNBOOST_PP_BOOL_18 1
+# define NDNBOOST_PP_BOOL_19 1
+# define NDNBOOST_PP_BOOL_20 1
+# define NDNBOOST_PP_BOOL_21 1
+# define NDNBOOST_PP_BOOL_22 1
+# define NDNBOOST_PP_BOOL_23 1
+# define NDNBOOST_PP_BOOL_24 1
+# define NDNBOOST_PP_BOOL_25 1
+# define NDNBOOST_PP_BOOL_26 1
+# define NDNBOOST_PP_BOOL_27 1
+# define NDNBOOST_PP_BOOL_28 1
+# define NDNBOOST_PP_BOOL_29 1
+# define NDNBOOST_PP_BOOL_30 1
+# define NDNBOOST_PP_BOOL_31 1
+# define NDNBOOST_PP_BOOL_32 1
+# define NDNBOOST_PP_BOOL_33 1
+# define NDNBOOST_PP_BOOL_34 1
+# define NDNBOOST_PP_BOOL_35 1
+# define NDNBOOST_PP_BOOL_36 1
+# define NDNBOOST_PP_BOOL_37 1
+# define NDNBOOST_PP_BOOL_38 1
+# define NDNBOOST_PP_BOOL_39 1
+# define NDNBOOST_PP_BOOL_40 1
+# define NDNBOOST_PP_BOOL_41 1
+# define NDNBOOST_PP_BOOL_42 1
+# define NDNBOOST_PP_BOOL_43 1
+# define NDNBOOST_PP_BOOL_44 1
+# define NDNBOOST_PP_BOOL_45 1
+# define NDNBOOST_PP_BOOL_46 1
+# define NDNBOOST_PP_BOOL_47 1
+# define NDNBOOST_PP_BOOL_48 1
+# define NDNBOOST_PP_BOOL_49 1
+# define NDNBOOST_PP_BOOL_50 1
+# define NDNBOOST_PP_BOOL_51 1
+# define NDNBOOST_PP_BOOL_52 1
+# define NDNBOOST_PP_BOOL_53 1
+# define NDNBOOST_PP_BOOL_54 1
+# define NDNBOOST_PP_BOOL_55 1
+# define NDNBOOST_PP_BOOL_56 1
+# define NDNBOOST_PP_BOOL_57 1
+# define NDNBOOST_PP_BOOL_58 1
+# define NDNBOOST_PP_BOOL_59 1
+# define NDNBOOST_PP_BOOL_60 1
+# define NDNBOOST_PP_BOOL_61 1
+# define NDNBOOST_PP_BOOL_62 1
+# define NDNBOOST_PP_BOOL_63 1
+# define NDNBOOST_PP_BOOL_64 1
+# define NDNBOOST_PP_BOOL_65 1
+# define NDNBOOST_PP_BOOL_66 1
+# define NDNBOOST_PP_BOOL_67 1
+# define NDNBOOST_PP_BOOL_68 1
+# define NDNBOOST_PP_BOOL_69 1
+# define NDNBOOST_PP_BOOL_70 1
+# define NDNBOOST_PP_BOOL_71 1
+# define NDNBOOST_PP_BOOL_72 1
+# define NDNBOOST_PP_BOOL_73 1
+# define NDNBOOST_PP_BOOL_74 1
+# define NDNBOOST_PP_BOOL_75 1
+# define NDNBOOST_PP_BOOL_76 1
+# define NDNBOOST_PP_BOOL_77 1
+# define NDNBOOST_PP_BOOL_78 1
+# define NDNBOOST_PP_BOOL_79 1
+# define NDNBOOST_PP_BOOL_80 1
+# define NDNBOOST_PP_BOOL_81 1
+# define NDNBOOST_PP_BOOL_82 1
+# define NDNBOOST_PP_BOOL_83 1
+# define NDNBOOST_PP_BOOL_84 1
+# define NDNBOOST_PP_BOOL_85 1
+# define NDNBOOST_PP_BOOL_86 1
+# define NDNBOOST_PP_BOOL_87 1
+# define NDNBOOST_PP_BOOL_88 1
+# define NDNBOOST_PP_BOOL_89 1
+# define NDNBOOST_PP_BOOL_90 1
+# define NDNBOOST_PP_BOOL_91 1
+# define NDNBOOST_PP_BOOL_92 1
+# define NDNBOOST_PP_BOOL_93 1
+# define NDNBOOST_PP_BOOL_94 1
+# define NDNBOOST_PP_BOOL_95 1
+# define NDNBOOST_PP_BOOL_96 1
+# define NDNBOOST_PP_BOOL_97 1
+# define NDNBOOST_PP_BOOL_98 1
+# define NDNBOOST_PP_BOOL_99 1
+# define NDNBOOST_PP_BOOL_100 1
+# define NDNBOOST_PP_BOOL_101 1
+# define NDNBOOST_PP_BOOL_102 1
+# define NDNBOOST_PP_BOOL_103 1
+# define NDNBOOST_PP_BOOL_104 1
+# define NDNBOOST_PP_BOOL_105 1
+# define NDNBOOST_PP_BOOL_106 1
+# define NDNBOOST_PP_BOOL_107 1
+# define NDNBOOST_PP_BOOL_108 1
+# define NDNBOOST_PP_BOOL_109 1
+# define NDNBOOST_PP_BOOL_110 1
+# define NDNBOOST_PP_BOOL_111 1
+# define NDNBOOST_PP_BOOL_112 1
+# define NDNBOOST_PP_BOOL_113 1
+# define NDNBOOST_PP_BOOL_114 1
+# define NDNBOOST_PP_BOOL_115 1
+# define NDNBOOST_PP_BOOL_116 1
+# define NDNBOOST_PP_BOOL_117 1
+# define NDNBOOST_PP_BOOL_118 1
+# define NDNBOOST_PP_BOOL_119 1
+# define NDNBOOST_PP_BOOL_120 1
+# define NDNBOOST_PP_BOOL_121 1
+# define NDNBOOST_PP_BOOL_122 1
+# define NDNBOOST_PP_BOOL_123 1
+# define NDNBOOST_PP_BOOL_124 1
+# define NDNBOOST_PP_BOOL_125 1
+# define NDNBOOST_PP_BOOL_126 1
+# define NDNBOOST_PP_BOOL_127 1
+# define NDNBOOST_PP_BOOL_128 1
+# define NDNBOOST_PP_BOOL_129 1
+# define NDNBOOST_PP_BOOL_130 1
+# define NDNBOOST_PP_BOOL_131 1
+# define NDNBOOST_PP_BOOL_132 1
+# define NDNBOOST_PP_BOOL_133 1
+# define NDNBOOST_PP_BOOL_134 1
+# define NDNBOOST_PP_BOOL_135 1
+# define NDNBOOST_PP_BOOL_136 1
+# define NDNBOOST_PP_BOOL_137 1
+# define NDNBOOST_PP_BOOL_138 1
+# define NDNBOOST_PP_BOOL_139 1
+# define NDNBOOST_PP_BOOL_140 1
+# define NDNBOOST_PP_BOOL_141 1
+# define NDNBOOST_PP_BOOL_142 1
+# define NDNBOOST_PP_BOOL_143 1
+# define NDNBOOST_PP_BOOL_144 1
+# define NDNBOOST_PP_BOOL_145 1
+# define NDNBOOST_PP_BOOL_146 1
+# define NDNBOOST_PP_BOOL_147 1
+# define NDNBOOST_PP_BOOL_148 1
+# define NDNBOOST_PP_BOOL_149 1
+# define NDNBOOST_PP_BOOL_150 1
+# define NDNBOOST_PP_BOOL_151 1
+# define NDNBOOST_PP_BOOL_152 1
+# define NDNBOOST_PP_BOOL_153 1
+# define NDNBOOST_PP_BOOL_154 1
+# define NDNBOOST_PP_BOOL_155 1
+# define NDNBOOST_PP_BOOL_156 1
+# define NDNBOOST_PP_BOOL_157 1
+# define NDNBOOST_PP_BOOL_158 1
+# define NDNBOOST_PP_BOOL_159 1
+# define NDNBOOST_PP_BOOL_160 1
+# define NDNBOOST_PP_BOOL_161 1
+# define NDNBOOST_PP_BOOL_162 1
+# define NDNBOOST_PP_BOOL_163 1
+# define NDNBOOST_PP_BOOL_164 1
+# define NDNBOOST_PP_BOOL_165 1
+# define NDNBOOST_PP_BOOL_166 1
+# define NDNBOOST_PP_BOOL_167 1
+# define NDNBOOST_PP_BOOL_168 1
+# define NDNBOOST_PP_BOOL_169 1
+# define NDNBOOST_PP_BOOL_170 1
+# define NDNBOOST_PP_BOOL_171 1
+# define NDNBOOST_PP_BOOL_172 1
+# define NDNBOOST_PP_BOOL_173 1
+# define NDNBOOST_PP_BOOL_174 1
+# define NDNBOOST_PP_BOOL_175 1
+# define NDNBOOST_PP_BOOL_176 1
+# define NDNBOOST_PP_BOOL_177 1
+# define NDNBOOST_PP_BOOL_178 1
+# define NDNBOOST_PP_BOOL_179 1
+# define NDNBOOST_PP_BOOL_180 1
+# define NDNBOOST_PP_BOOL_181 1
+# define NDNBOOST_PP_BOOL_182 1
+# define NDNBOOST_PP_BOOL_183 1
+# define NDNBOOST_PP_BOOL_184 1
+# define NDNBOOST_PP_BOOL_185 1
+# define NDNBOOST_PP_BOOL_186 1
+# define NDNBOOST_PP_BOOL_187 1
+# define NDNBOOST_PP_BOOL_188 1
+# define NDNBOOST_PP_BOOL_189 1
+# define NDNBOOST_PP_BOOL_190 1
+# define NDNBOOST_PP_BOOL_191 1
+# define NDNBOOST_PP_BOOL_192 1
+# define NDNBOOST_PP_BOOL_193 1
+# define NDNBOOST_PP_BOOL_194 1
+# define NDNBOOST_PP_BOOL_195 1
+# define NDNBOOST_PP_BOOL_196 1
+# define NDNBOOST_PP_BOOL_197 1
+# define NDNBOOST_PP_BOOL_198 1
+# define NDNBOOST_PP_BOOL_199 1
+# define NDNBOOST_PP_BOOL_200 1
+# define NDNBOOST_PP_BOOL_201 1
+# define NDNBOOST_PP_BOOL_202 1
+# define NDNBOOST_PP_BOOL_203 1
+# define NDNBOOST_PP_BOOL_204 1
+# define NDNBOOST_PP_BOOL_205 1
+# define NDNBOOST_PP_BOOL_206 1
+# define NDNBOOST_PP_BOOL_207 1
+# define NDNBOOST_PP_BOOL_208 1
+# define NDNBOOST_PP_BOOL_209 1
+# define NDNBOOST_PP_BOOL_210 1
+# define NDNBOOST_PP_BOOL_211 1
+# define NDNBOOST_PP_BOOL_212 1
+# define NDNBOOST_PP_BOOL_213 1
+# define NDNBOOST_PP_BOOL_214 1
+# define NDNBOOST_PP_BOOL_215 1
+# define NDNBOOST_PP_BOOL_216 1
+# define NDNBOOST_PP_BOOL_217 1
+# define NDNBOOST_PP_BOOL_218 1
+# define NDNBOOST_PP_BOOL_219 1
+# define NDNBOOST_PP_BOOL_220 1
+# define NDNBOOST_PP_BOOL_221 1
+# define NDNBOOST_PP_BOOL_222 1
+# define NDNBOOST_PP_BOOL_223 1
+# define NDNBOOST_PP_BOOL_224 1
+# define NDNBOOST_PP_BOOL_225 1
+# define NDNBOOST_PP_BOOL_226 1
+# define NDNBOOST_PP_BOOL_227 1
+# define NDNBOOST_PP_BOOL_228 1
+# define NDNBOOST_PP_BOOL_229 1
+# define NDNBOOST_PP_BOOL_230 1
+# define NDNBOOST_PP_BOOL_231 1
+# define NDNBOOST_PP_BOOL_232 1
+# define NDNBOOST_PP_BOOL_233 1
+# define NDNBOOST_PP_BOOL_234 1
+# define NDNBOOST_PP_BOOL_235 1
+# define NDNBOOST_PP_BOOL_236 1
+# define NDNBOOST_PP_BOOL_237 1
+# define NDNBOOST_PP_BOOL_238 1
+# define NDNBOOST_PP_BOOL_239 1
+# define NDNBOOST_PP_BOOL_240 1
+# define NDNBOOST_PP_BOOL_241 1
+# define NDNBOOST_PP_BOOL_242 1
+# define NDNBOOST_PP_BOOL_243 1
+# define NDNBOOST_PP_BOOL_244 1
+# define NDNBOOST_PP_BOOL_245 1
+# define NDNBOOST_PP_BOOL_246 1
+# define NDNBOOST_PP_BOOL_247 1
+# define NDNBOOST_PP_BOOL_248 1
+# define NDNBOOST_PP_BOOL_249 1
+# define NDNBOOST_PP_BOOL_250 1
+# define NDNBOOST_PP_BOOL_251 1
+# define NDNBOOST_PP_BOOL_252 1
+# define NDNBOOST_PP_BOOL_253 1
+# define NDNBOOST_PP_BOOL_254 1
+# define NDNBOOST_PP_BOOL_255 1
+# define NDNBOOST_PP_BOOL_256 1
 #
 # endif
diff --git a/include/ndnboost/preprocessor/logical/compl.hpp b/include/ndnboost/preprocessor/logical/compl.hpp
index 214d64c..e6b4c6c 100644
--- a/include/ndnboost/preprocessor/logical/compl.hpp
+++ b/include/ndnboost/preprocessor/logical/compl.hpp
@@ -9,28 +9,28 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_LOGICAL_COMPL_HPP
-# define BOOST_PREPROCESSOR_LOGICAL_COMPL_HPP
+# ifndef NDNBOOST_PREPROCESSOR_LOGICAL_COMPL_HPP
+# define NDNBOOST_PREPROCESSOR_LOGICAL_COMPL_HPP
 #
 # include <ndnboost/preprocessor/config/config.hpp>
 #
-# /* BOOST_PP_COMPL */
+# /* NDNBOOST_PP_COMPL */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_COMPL(x) BOOST_PP_COMPL_I(x)
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MWCC()
+#    define NDNBOOST_PP_COMPL(x) NDNBOOST_PP_COMPL_I(x)
 # else
-#    define BOOST_PP_COMPL(x) BOOST_PP_COMPL_OO((x))
-#    define BOOST_PP_COMPL_OO(par) BOOST_PP_COMPL_I ## par
+#    define NDNBOOST_PP_COMPL(x) NDNBOOST_PP_COMPL_OO((x))
+#    define NDNBOOST_PP_COMPL_OO(par) NDNBOOST_PP_COMPL_I ## par
 # endif
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-#    define BOOST_PP_COMPL_I(x) BOOST_PP_COMPL_ ## x
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MSVC()
+#    define NDNBOOST_PP_COMPL_I(x) NDNBOOST_PP_COMPL_ ## x
 # else
-#    define BOOST_PP_COMPL_I(x) BOOST_PP_COMPL_ID(BOOST_PP_COMPL_ ## x)
-#    define BOOST_PP_COMPL_ID(id) id
+#    define NDNBOOST_PP_COMPL_I(x) NDNBOOST_PP_COMPL_ID(NDNBOOST_PP_COMPL_ ## x)
+#    define NDNBOOST_PP_COMPL_ID(id) id
 # endif
 #
-# define BOOST_PP_COMPL_0 1
-# define BOOST_PP_COMPL_1 0
+# define NDNBOOST_PP_COMPL_0 1
+# define NDNBOOST_PP_COMPL_1 0
 #
 # endif
diff --git a/include/ndnboost/preprocessor/logical/not.hpp b/include/ndnboost/preprocessor/logical/not.hpp
index 6097078..fc9210e 100644
--- a/include/ndnboost/preprocessor/logical/not.hpp
+++ b/include/ndnboost/preprocessor/logical/not.hpp
@@ -11,20 +11,20 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_LOGICAL_NOT_HPP
-# define BOOST_PREPROCESSOR_LOGICAL_NOT_HPP
+# ifndef NDNBOOST_PREPROCESSOR_LOGICAL_NOT_HPP
+# define NDNBOOST_PREPROCESSOR_LOGICAL_NOT_HPP
 #
 # include <ndnboost/preprocessor/config/config.hpp>
 # include <ndnboost/preprocessor/logical/bool.hpp>
 # include <ndnboost/preprocessor/logical/compl.hpp>
 #
-# /* BOOST_PP_NOT */
+# /* NDNBOOST_PP_NOT */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_NOT(x) BOOST_PP_COMPL(BOOST_PP_BOOL(x))
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_NOT(x) NDNBOOST_PP_COMPL(NDNBOOST_PP_BOOL(x))
 # else
-#    define BOOST_PP_NOT(x) BOOST_PP_NOT_I(x)
-#    define BOOST_PP_NOT_I(x) BOOST_PP_COMPL(BOOST_PP_BOOL(x))
+#    define NDNBOOST_PP_NOT(x) NDNBOOST_PP_NOT_I(x)
+#    define NDNBOOST_PP_NOT_I(x) NDNBOOST_PP_COMPL(NDNBOOST_PP_BOOL(x))
 # endif
 #
 # endif
diff --git a/include/ndnboost/preprocessor/logical/or.hpp b/include/ndnboost/preprocessor/logical/or.hpp
index 5ec5dbe..7639ef3 100644
--- a/include/ndnboost/preprocessor/logical/or.hpp
+++ b/include/ndnboost/preprocessor/logical/or.hpp
@@ -11,20 +11,20 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_LOGICAL_OR_HPP
-# define BOOST_PREPROCESSOR_LOGICAL_OR_HPP
+# ifndef NDNBOOST_PREPROCESSOR_LOGICAL_OR_HPP
+# define NDNBOOST_PREPROCESSOR_LOGICAL_OR_HPP
 #
 # include <ndnboost/preprocessor/config/config.hpp>
 # include <ndnboost/preprocessor/logical/bool.hpp>
 # include <ndnboost/preprocessor/logical/bitor.hpp>
 #
-# /* BOOST_PP_OR */
+# /* NDNBOOST_PP_OR */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_OR(p, q) BOOST_PP_BITOR(BOOST_PP_BOOL(p), BOOST_PP_BOOL(q))
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_OR(p, q) NDNBOOST_PP_BITOR(NDNBOOST_PP_BOOL(p), NDNBOOST_PP_BOOL(q))
 # else
-#    define BOOST_PP_OR(p, q) BOOST_PP_OR_I(p, q)
-#    define BOOST_PP_OR_I(p, q) BOOST_PP_BITOR(BOOST_PP_BOOL(p), BOOST_PP_BOOL(q))
+#    define NDNBOOST_PP_OR(p, q) NDNBOOST_PP_OR_I(p, q)
+#    define NDNBOOST_PP_OR_I(p, q) NDNBOOST_PP_BITOR(NDNBOOST_PP_BOOL(p), NDNBOOST_PP_BOOL(q))
 # endif
 #
 # endif
diff --git a/include/ndnboost/preprocessor/punctuation/comma.hpp b/include/ndnboost/preprocessor/punctuation/comma.hpp
index 38c2e0e..ec1a334 100644
--- a/include/ndnboost/preprocessor/punctuation/comma.hpp
+++ b/include/ndnboost/preprocessor/punctuation/comma.hpp
@@ -11,11 +11,11 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_PUNCTUATION_COMMA_HPP
-# define BOOST_PREPROCESSOR_PUNCTUATION_COMMA_HPP
+# ifndef NDNBOOST_PREPROCESSOR_PUNCTUATION_COMMA_HPP
+# define NDNBOOST_PREPROCESSOR_PUNCTUATION_COMMA_HPP
 #
-# /* BOOST_PP_COMMA */
+# /* NDNBOOST_PP_COMMA */
 #
-# define BOOST_PP_COMMA() ,
+# define NDNBOOST_PP_COMMA() ,
 #
 # endif
diff --git a/include/ndnboost/preprocessor/punctuation/comma_if.hpp b/include/ndnboost/preprocessor/punctuation/comma_if.hpp
index eaf0702..685b0ba 100644
--- a/include/ndnboost/preprocessor/punctuation/comma_if.hpp
+++ b/include/ndnboost/preprocessor/punctuation/comma_if.hpp
@@ -11,21 +11,21 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_PUNCTUATION_COMMA_IF_HPP
-# define BOOST_PREPROCESSOR_PUNCTUATION_COMMA_IF_HPP
+# ifndef NDNBOOST_PREPROCESSOR_PUNCTUATION_COMMA_IF_HPP
+# define NDNBOOST_PREPROCESSOR_PUNCTUATION_COMMA_IF_HPP
 #
 # include <ndnboost/preprocessor/config/config.hpp>
 # include <ndnboost/preprocessor/control/if.hpp>
 # include <ndnboost/preprocessor/facilities/empty.hpp>
 # include <ndnboost/preprocessor/punctuation/comma.hpp>
 #
-# /* BOOST_PP_COMMA_IF */
+# /* NDNBOOST_PP_COMMA_IF */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_COMMA_IF(cond) BOOST_PP_IF(cond, BOOST_PP_COMMA, BOOST_PP_EMPTY)()
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_COMMA_IF(cond) NDNBOOST_PP_IF(cond, NDNBOOST_PP_COMMA, NDNBOOST_PP_EMPTY)()
 # else
-#    define BOOST_PP_COMMA_IF(cond) BOOST_PP_COMMA_IF_I(cond)
-#    define BOOST_PP_COMMA_IF_I(cond) BOOST_PP_IF(cond, BOOST_PP_COMMA, BOOST_PP_EMPTY)()
+#    define NDNBOOST_PP_COMMA_IF(cond) NDNBOOST_PP_COMMA_IF_I(cond)
+#    define NDNBOOST_PP_COMMA_IF_I(cond) NDNBOOST_PP_IF(cond, NDNBOOST_PP_COMMA, NDNBOOST_PP_EMPTY)()
 # endif
 #
 # endif
diff --git a/include/ndnboost/preprocessor/punctuation/paren.hpp b/include/ndnboost/preprocessor/punctuation/paren.hpp
index 28c18cb..7033fec 100644
--- a/include/ndnboost/preprocessor/punctuation/paren.hpp
+++ b/include/ndnboost/preprocessor/punctuation/paren.hpp
@@ -9,15 +9,15 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_PUNCTUATION_PAREN_HPP
-# define BOOST_PREPROCESSOR_PUNCTUATION_PAREN_HPP
+# ifndef NDNBOOST_PREPROCESSOR_PUNCTUATION_PAREN_HPP
+# define NDNBOOST_PREPROCESSOR_PUNCTUATION_PAREN_HPP
 #
-# /* BOOST_PP_LPAREN */
+# /* NDNBOOST_PP_LPAREN */
 #
-# define BOOST_PP_LPAREN() (
+# define NDNBOOST_PP_LPAREN() (
 #
-# /* BOOST_PP_RPAREN */
+# /* NDNBOOST_PP_RPAREN */
 #
-# define BOOST_PP_RPAREN() )
+# define NDNBOOST_PP_RPAREN() )
 #
 # endif
diff --git a/include/ndnboost/preprocessor/repeat.hpp b/include/ndnboost/preprocessor/repeat.hpp
index f98c65c..d438cba 100644
--- a/include/ndnboost/preprocessor/repeat.hpp
+++ b/include/ndnboost/preprocessor/repeat.hpp
@@ -9,8 +9,8 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_REPEAT_HPP
-# define BOOST_PREPROCESSOR_REPEAT_HPP
+# ifndef NDNBOOST_PREPROCESSOR_REPEAT_HPP
+# define NDNBOOST_PREPROCESSOR_REPEAT_HPP
 #
 # include <ndnboost/preprocessor/repetition/repeat.hpp>
 #
diff --git a/include/ndnboost/preprocessor/repeat_2nd.hpp b/include/ndnboost/preprocessor/repeat_2nd.hpp
index 0bd00b6..7503b9c 100644
--- a/include/ndnboost/preprocessor/repeat_2nd.hpp
+++ b/include/ndnboost/preprocessor/repeat_2nd.hpp
@@ -9,8 +9,8 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_REPEAT_2ND_HPP
-# define BOOST_PREPROCESSOR_REPEAT_2ND_HPP
+# ifndef NDNBOOST_PREPROCESSOR_REPEAT_2ND_HPP
+# define NDNBOOST_PREPROCESSOR_REPEAT_2ND_HPP
 #
 # include <ndnboost/preprocessor/repetition/repeat.hpp>
 #
diff --git a/include/ndnboost/preprocessor/repeat_from_to.hpp b/include/ndnboost/preprocessor/repeat_from_to.hpp
index 32cea2c..59c8a56 100644
--- a/include/ndnboost/preprocessor/repeat_from_to.hpp
+++ b/include/ndnboost/preprocessor/repeat_from_to.hpp
@@ -9,8 +9,8 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_REPEAT_FROM_TO_HPP
-# define BOOST_PREPROCESSOR_REPEAT_FROM_TO_HPP
+# ifndef NDNBOOST_PREPROCESSOR_REPEAT_FROM_TO_HPP
+# define NDNBOOST_PREPROCESSOR_REPEAT_FROM_TO_HPP
 #
 # include <ndnboost/preprocessor/repetition/repeat_from_to.hpp>
 #
diff --git a/include/ndnboost/preprocessor/repetition/detail/dmc/for.hpp b/include/ndnboost/preprocessor/repetition/detail/dmc/for.hpp
index da6fe49..c830675 100644
--- a/include/ndnboost/preprocessor/repetition/detail/dmc/for.hpp
+++ b/include/ndnboost/preprocessor/repetition/detail/dmc/for.hpp
@@ -11,526 +11,526 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_REPETITION_DETAIL_FOR_HPP
-# define BOOST_PREPROCESSOR_REPETITION_DETAIL_FOR_HPP
+# ifndef NDNBOOST_PREPROCESSOR_REPETITION_DETAIL_FOR_HPP
+# define NDNBOOST_PREPROCESSOR_REPETITION_DETAIL_FOR_HPP
 #
 # include <ndnboost/preprocessor/control/expr_iif.hpp>
 # include <ndnboost/preprocessor/control/iif.hpp>
 # include <ndnboost/preprocessor/logical/bool.hpp>
 # include <ndnboost/preprocessor/tuple/eat.hpp>
 #
-# define BOOST_PP_FOR_1(s, p, o, m) BOOST_PP_FOR_1_C(BOOST_PP_BOOL(p##(2, s)), s, p, o, m)
-# define BOOST_PP_FOR_2(s, p, o, m) BOOST_PP_FOR_2_C(BOOST_PP_BOOL(p##(3, s)), s, p, o, m)
-# define BOOST_PP_FOR_3(s, p, o, m) BOOST_PP_FOR_3_C(BOOST_PP_BOOL(p##(4, s)), s, p, o, m)
-# define BOOST_PP_FOR_4(s, p, o, m) BOOST_PP_FOR_4_C(BOOST_PP_BOOL(p##(5, s)), s, p, o, m)
-# define BOOST_PP_FOR_5(s, p, o, m) BOOST_PP_FOR_5_C(BOOST_PP_BOOL(p##(6, s)), s, p, o, m)
-# define BOOST_PP_FOR_6(s, p, o, m) BOOST_PP_FOR_6_C(BOOST_PP_BOOL(p##(7, s)), s, p, o, m)
-# define BOOST_PP_FOR_7(s, p, o, m) BOOST_PP_FOR_7_C(BOOST_PP_BOOL(p##(8, s)), s, p, o, m)
-# define BOOST_PP_FOR_8(s, p, o, m) BOOST_PP_FOR_8_C(BOOST_PP_BOOL(p##(9, s)), s, p, o, m)
-# define BOOST_PP_FOR_9(s, p, o, m) BOOST_PP_FOR_9_C(BOOST_PP_BOOL(p##(10, s)), s, p, o, m)
-# define BOOST_PP_FOR_10(s, p, o, m) BOOST_PP_FOR_10_C(BOOST_PP_BOOL(p##(11, s)), s, p, o, m)
-# define BOOST_PP_FOR_11(s, p, o, m) BOOST_PP_FOR_11_C(BOOST_PP_BOOL(p##(12, s)), s, p, o, m)
-# define BOOST_PP_FOR_12(s, p, o, m) BOOST_PP_FOR_12_C(BOOST_PP_BOOL(p##(13, s)), s, p, o, m)
-# define BOOST_PP_FOR_13(s, p, o, m) BOOST_PP_FOR_13_C(BOOST_PP_BOOL(p##(14, s)), s, p, o, m)
-# define BOOST_PP_FOR_14(s, p, o, m) BOOST_PP_FOR_14_C(BOOST_PP_BOOL(p##(15, s)), s, p, o, m)
-# define BOOST_PP_FOR_15(s, p, o, m) BOOST_PP_FOR_15_C(BOOST_PP_BOOL(p##(16, s)), s, p, o, m)
-# define BOOST_PP_FOR_16(s, p, o, m) BOOST_PP_FOR_16_C(BOOST_PP_BOOL(p##(17, s)), s, p, o, m)
-# define BOOST_PP_FOR_17(s, p, o, m) BOOST_PP_FOR_17_C(BOOST_PP_BOOL(p##(18, s)), s, p, o, m)
-# define BOOST_PP_FOR_18(s, p, o, m) BOOST_PP_FOR_18_C(BOOST_PP_BOOL(p##(19, s)), s, p, o, m)
-# define BOOST_PP_FOR_19(s, p, o, m) BOOST_PP_FOR_19_C(BOOST_PP_BOOL(p##(20, s)), s, p, o, m)
-# define BOOST_PP_FOR_20(s, p, o, m) BOOST_PP_FOR_20_C(BOOST_PP_BOOL(p##(21, s)), s, p, o, m)
-# define BOOST_PP_FOR_21(s, p, o, m) BOOST_PP_FOR_21_C(BOOST_PP_BOOL(p##(22, s)), s, p, o, m)
-# define BOOST_PP_FOR_22(s, p, o, m) BOOST_PP_FOR_22_C(BOOST_PP_BOOL(p##(23, s)), s, p, o, m)
-# define BOOST_PP_FOR_23(s, p, o, m) BOOST_PP_FOR_23_C(BOOST_PP_BOOL(p##(24, s)), s, p, o, m)
-# define BOOST_PP_FOR_24(s, p, o, m) BOOST_PP_FOR_24_C(BOOST_PP_BOOL(p##(25, s)), s, p, o, m)
-# define BOOST_PP_FOR_25(s, p, o, m) BOOST_PP_FOR_25_C(BOOST_PP_BOOL(p##(26, s)), s, p, o, m)
-# define BOOST_PP_FOR_26(s, p, o, m) BOOST_PP_FOR_26_C(BOOST_PP_BOOL(p##(27, s)), s, p, o, m)
-# define BOOST_PP_FOR_27(s, p, o, m) BOOST_PP_FOR_27_C(BOOST_PP_BOOL(p##(28, s)), s, p, o, m)
-# define BOOST_PP_FOR_28(s, p, o, m) BOOST_PP_FOR_28_C(BOOST_PP_BOOL(p##(29, s)), s, p, o, m)
-# define BOOST_PP_FOR_29(s, p, o, m) BOOST_PP_FOR_29_C(BOOST_PP_BOOL(p##(30, s)), s, p, o, m)
-# define BOOST_PP_FOR_30(s, p, o, m) BOOST_PP_FOR_30_C(BOOST_PP_BOOL(p##(31, s)), s, p, o, m)
-# define BOOST_PP_FOR_31(s, p, o, m) BOOST_PP_FOR_31_C(BOOST_PP_BOOL(p##(32, s)), s, p, o, m)
-# define BOOST_PP_FOR_32(s, p, o, m) BOOST_PP_FOR_32_C(BOOST_PP_BOOL(p##(33, s)), s, p, o, m)
-# define BOOST_PP_FOR_33(s, p, o, m) BOOST_PP_FOR_33_C(BOOST_PP_BOOL(p##(34, s)), s, p, o, m)
-# define BOOST_PP_FOR_34(s, p, o, m) BOOST_PP_FOR_34_C(BOOST_PP_BOOL(p##(35, s)), s, p, o, m)
-# define BOOST_PP_FOR_35(s, p, o, m) BOOST_PP_FOR_35_C(BOOST_PP_BOOL(p##(36, s)), s, p, o, m)
-# define BOOST_PP_FOR_36(s, p, o, m) BOOST_PP_FOR_36_C(BOOST_PP_BOOL(p##(37, s)), s, p, o, m)
-# define BOOST_PP_FOR_37(s, p, o, m) BOOST_PP_FOR_37_C(BOOST_PP_BOOL(p##(38, s)), s, p, o, m)
-# define BOOST_PP_FOR_38(s, p, o, m) BOOST_PP_FOR_38_C(BOOST_PP_BOOL(p##(39, s)), s, p, o, m)
-# define BOOST_PP_FOR_39(s, p, o, m) BOOST_PP_FOR_39_C(BOOST_PP_BOOL(p##(40, s)), s, p, o, m)
-# define BOOST_PP_FOR_40(s, p, o, m) BOOST_PP_FOR_40_C(BOOST_PP_BOOL(p##(41, s)), s, p, o, m)
-# define BOOST_PP_FOR_41(s, p, o, m) BOOST_PP_FOR_41_C(BOOST_PP_BOOL(p##(42, s)), s, p, o, m)
-# define BOOST_PP_FOR_42(s, p, o, m) BOOST_PP_FOR_42_C(BOOST_PP_BOOL(p##(43, s)), s, p, o, m)
-# define BOOST_PP_FOR_43(s, p, o, m) BOOST_PP_FOR_43_C(BOOST_PP_BOOL(p##(44, s)), s, p, o, m)
-# define BOOST_PP_FOR_44(s, p, o, m) BOOST_PP_FOR_44_C(BOOST_PP_BOOL(p##(45, s)), s, p, o, m)
-# define BOOST_PP_FOR_45(s, p, o, m) BOOST_PP_FOR_45_C(BOOST_PP_BOOL(p##(46, s)), s, p, o, m)
-# define BOOST_PP_FOR_46(s, p, o, m) BOOST_PP_FOR_46_C(BOOST_PP_BOOL(p##(47, s)), s, p, o, m)
-# define BOOST_PP_FOR_47(s, p, o, m) BOOST_PP_FOR_47_C(BOOST_PP_BOOL(p##(48, s)), s, p, o, m)
-# define BOOST_PP_FOR_48(s, p, o, m) BOOST_PP_FOR_48_C(BOOST_PP_BOOL(p##(49, s)), s, p, o, m)
-# define BOOST_PP_FOR_49(s, p, o, m) BOOST_PP_FOR_49_C(BOOST_PP_BOOL(p##(50, s)), s, p, o, m)
-# define BOOST_PP_FOR_50(s, p, o, m) BOOST_PP_FOR_50_C(BOOST_PP_BOOL(p##(51, s)), s, p, o, m)
-# define BOOST_PP_FOR_51(s, p, o, m) BOOST_PP_FOR_51_C(BOOST_PP_BOOL(p##(52, s)), s, p, o, m)
-# define BOOST_PP_FOR_52(s, p, o, m) BOOST_PP_FOR_52_C(BOOST_PP_BOOL(p##(53, s)), s, p, o, m)
-# define BOOST_PP_FOR_53(s, p, o, m) BOOST_PP_FOR_53_C(BOOST_PP_BOOL(p##(54, s)), s, p, o, m)
-# define BOOST_PP_FOR_54(s, p, o, m) BOOST_PP_FOR_54_C(BOOST_PP_BOOL(p##(55, s)), s, p, o, m)
-# define BOOST_PP_FOR_55(s, p, o, m) BOOST_PP_FOR_55_C(BOOST_PP_BOOL(p##(56, s)), s, p, o, m)
-# define BOOST_PP_FOR_56(s, p, o, m) BOOST_PP_FOR_56_C(BOOST_PP_BOOL(p##(57, s)), s, p, o, m)
-# define BOOST_PP_FOR_57(s, p, o, m) BOOST_PP_FOR_57_C(BOOST_PP_BOOL(p##(58, s)), s, p, o, m)
-# define BOOST_PP_FOR_58(s, p, o, m) BOOST_PP_FOR_58_C(BOOST_PP_BOOL(p##(59, s)), s, p, o, m)
-# define BOOST_PP_FOR_59(s, p, o, m) BOOST_PP_FOR_59_C(BOOST_PP_BOOL(p##(60, s)), s, p, o, m)
-# define BOOST_PP_FOR_60(s, p, o, m) BOOST_PP_FOR_60_C(BOOST_PP_BOOL(p##(61, s)), s, p, o, m)
-# define BOOST_PP_FOR_61(s, p, o, m) BOOST_PP_FOR_61_C(BOOST_PP_BOOL(p##(62, s)), s, p, o, m)
-# define BOOST_PP_FOR_62(s, p, o, m) BOOST_PP_FOR_62_C(BOOST_PP_BOOL(p##(63, s)), s, p, o, m)
-# define BOOST_PP_FOR_63(s, p, o, m) BOOST_PP_FOR_63_C(BOOST_PP_BOOL(p##(64, s)), s, p, o, m)
-# define BOOST_PP_FOR_64(s, p, o, m) BOOST_PP_FOR_64_C(BOOST_PP_BOOL(p##(65, s)), s, p, o, m)
-# define BOOST_PP_FOR_65(s, p, o, m) BOOST_PP_FOR_65_C(BOOST_PP_BOOL(p##(66, s)), s, p, o, m)
-# define BOOST_PP_FOR_66(s, p, o, m) BOOST_PP_FOR_66_C(BOOST_PP_BOOL(p##(67, s)), s, p, o, m)
-# define BOOST_PP_FOR_67(s, p, o, m) BOOST_PP_FOR_67_C(BOOST_PP_BOOL(p##(68, s)), s, p, o, m)
-# define BOOST_PP_FOR_68(s, p, o, m) BOOST_PP_FOR_68_C(BOOST_PP_BOOL(p##(69, s)), s, p, o, m)
-# define BOOST_PP_FOR_69(s, p, o, m) BOOST_PP_FOR_69_C(BOOST_PP_BOOL(p##(70, s)), s, p, o, m)
-# define BOOST_PP_FOR_70(s, p, o, m) BOOST_PP_FOR_70_C(BOOST_PP_BOOL(p##(71, s)), s, p, o, m)
-# define BOOST_PP_FOR_71(s, p, o, m) BOOST_PP_FOR_71_C(BOOST_PP_BOOL(p##(72, s)), s, p, o, m)
-# define BOOST_PP_FOR_72(s, p, o, m) BOOST_PP_FOR_72_C(BOOST_PP_BOOL(p##(73, s)), s, p, o, m)
-# define BOOST_PP_FOR_73(s, p, o, m) BOOST_PP_FOR_73_C(BOOST_PP_BOOL(p##(74, s)), s, p, o, m)
-# define BOOST_PP_FOR_74(s, p, o, m) BOOST_PP_FOR_74_C(BOOST_PP_BOOL(p##(75, s)), s, p, o, m)
-# define BOOST_PP_FOR_75(s, p, o, m) BOOST_PP_FOR_75_C(BOOST_PP_BOOL(p##(76, s)), s, p, o, m)
-# define BOOST_PP_FOR_76(s, p, o, m) BOOST_PP_FOR_76_C(BOOST_PP_BOOL(p##(77, s)), s, p, o, m)
-# define BOOST_PP_FOR_77(s, p, o, m) BOOST_PP_FOR_77_C(BOOST_PP_BOOL(p##(78, s)), s, p, o, m)
-# define BOOST_PP_FOR_78(s, p, o, m) BOOST_PP_FOR_78_C(BOOST_PP_BOOL(p##(79, s)), s, p, o, m)
-# define BOOST_PP_FOR_79(s, p, o, m) BOOST_PP_FOR_79_C(BOOST_PP_BOOL(p##(80, s)), s, p, o, m)
-# define BOOST_PP_FOR_80(s, p, o, m) BOOST_PP_FOR_80_C(BOOST_PP_BOOL(p##(81, s)), s, p, o, m)
-# define BOOST_PP_FOR_81(s, p, o, m) BOOST_PP_FOR_81_C(BOOST_PP_BOOL(p##(82, s)), s, p, o, m)
-# define BOOST_PP_FOR_82(s, p, o, m) BOOST_PP_FOR_82_C(BOOST_PP_BOOL(p##(83, s)), s, p, o, m)
-# define BOOST_PP_FOR_83(s, p, o, m) BOOST_PP_FOR_83_C(BOOST_PP_BOOL(p##(84, s)), s, p, o, m)
-# define BOOST_PP_FOR_84(s, p, o, m) BOOST_PP_FOR_84_C(BOOST_PP_BOOL(p##(85, s)), s, p, o, m)
-# define BOOST_PP_FOR_85(s, p, o, m) BOOST_PP_FOR_85_C(BOOST_PP_BOOL(p##(86, s)), s, p, o, m)
-# define BOOST_PP_FOR_86(s, p, o, m) BOOST_PP_FOR_86_C(BOOST_PP_BOOL(p##(87, s)), s, p, o, m)
-# define BOOST_PP_FOR_87(s, p, o, m) BOOST_PP_FOR_87_C(BOOST_PP_BOOL(p##(88, s)), s, p, o, m)
-# define BOOST_PP_FOR_88(s, p, o, m) BOOST_PP_FOR_88_C(BOOST_PP_BOOL(p##(89, s)), s, p, o, m)
-# define BOOST_PP_FOR_89(s, p, o, m) BOOST_PP_FOR_89_C(BOOST_PP_BOOL(p##(90, s)), s, p, o, m)
-# define BOOST_PP_FOR_90(s, p, o, m) BOOST_PP_FOR_90_C(BOOST_PP_BOOL(p##(91, s)), s, p, o, m)
-# define BOOST_PP_FOR_91(s, p, o, m) BOOST_PP_FOR_91_C(BOOST_PP_BOOL(p##(92, s)), s, p, o, m)
-# define BOOST_PP_FOR_92(s, p, o, m) BOOST_PP_FOR_92_C(BOOST_PP_BOOL(p##(93, s)), s, p, o, m)
-# define BOOST_PP_FOR_93(s, p, o, m) BOOST_PP_FOR_93_C(BOOST_PP_BOOL(p##(94, s)), s, p, o, m)
-# define BOOST_PP_FOR_94(s, p, o, m) BOOST_PP_FOR_94_C(BOOST_PP_BOOL(p##(95, s)), s, p, o, m)
-# define BOOST_PP_FOR_95(s, p, o, m) BOOST_PP_FOR_95_C(BOOST_PP_BOOL(p##(96, s)), s, p, o, m)
-# define BOOST_PP_FOR_96(s, p, o, m) BOOST_PP_FOR_96_C(BOOST_PP_BOOL(p##(97, s)), s, p, o, m)
-# define BOOST_PP_FOR_97(s, p, o, m) BOOST_PP_FOR_97_C(BOOST_PP_BOOL(p##(98, s)), s, p, o, m)
-# define BOOST_PP_FOR_98(s, p, o, m) BOOST_PP_FOR_98_C(BOOST_PP_BOOL(p##(99, s)), s, p, o, m)
-# define BOOST_PP_FOR_99(s, p, o, m) BOOST_PP_FOR_99_C(BOOST_PP_BOOL(p##(100, s)), s, p, o, m)
-# define BOOST_PP_FOR_100(s, p, o, m) BOOST_PP_FOR_100_C(BOOST_PP_BOOL(p##(101, s)), s, p, o, m)
-# define BOOST_PP_FOR_101(s, p, o, m) BOOST_PP_FOR_101_C(BOOST_PP_BOOL(p##(102, s)), s, p, o, m)
-# define BOOST_PP_FOR_102(s, p, o, m) BOOST_PP_FOR_102_C(BOOST_PP_BOOL(p##(103, s)), s, p, o, m)
-# define BOOST_PP_FOR_103(s, p, o, m) BOOST_PP_FOR_103_C(BOOST_PP_BOOL(p##(104, s)), s, p, o, m)
-# define BOOST_PP_FOR_104(s, p, o, m) BOOST_PP_FOR_104_C(BOOST_PP_BOOL(p##(105, s)), s, p, o, m)
-# define BOOST_PP_FOR_105(s, p, o, m) BOOST_PP_FOR_105_C(BOOST_PP_BOOL(p##(106, s)), s, p, o, m)
-# define BOOST_PP_FOR_106(s, p, o, m) BOOST_PP_FOR_106_C(BOOST_PP_BOOL(p##(107, s)), s, p, o, m)
-# define BOOST_PP_FOR_107(s, p, o, m) BOOST_PP_FOR_107_C(BOOST_PP_BOOL(p##(108, s)), s, p, o, m)
-# define BOOST_PP_FOR_108(s, p, o, m) BOOST_PP_FOR_108_C(BOOST_PP_BOOL(p##(109, s)), s, p, o, m)
-# define BOOST_PP_FOR_109(s, p, o, m) BOOST_PP_FOR_109_C(BOOST_PP_BOOL(p##(110, s)), s, p, o, m)
-# define BOOST_PP_FOR_110(s, p, o, m) BOOST_PP_FOR_110_C(BOOST_PP_BOOL(p##(111, s)), s, p, o, m)
-# define BOOST_PP_FOR_111(s, p, o, m) BOOST_PP_FOR_111_C(BOOST_PP_BOOL(p##(112, s)), s, p, o, m)
-# define BOOST_PP_FOR_112(s, p, o, m) BOOST_PP_FOR_112_C(BOOST_PP_BOOL(p##(113, s)), s, p, o, m)
-# define BOOST_PP_FOR_113(s, p, o, m) BOOST_PP_FOR_113_C(BOOST_PP_BOOL(p##(114, s)), s, p, o, m)
-# define BOOST_PP_FOR_114(s, p, o, m) BOOST_PP_FOR_114_C(BOOST_PP_BOOL(p##(115, s)), s, p, o, m)
-# define BOOST_PP_FOR_115(s, p, o, m) BOOST_PP_FOR_115_C(BOOST_PP_BOOL(p##(116, s)), s, p, o, m)
-# define BOOST_PP_FOR_116(s, p, o, m) BOOST_PP_FOR_116_C(BOOST_PP_BOOL(p##(117, s)), s, p, o, m)
-# define BOOST_PP_FOR_117(s, p, o, m) BOOST_PP_FOR_117_C(BOOST_PP_BOOL(p##(118, s)), s, p, o, m)
-# define BOOST_PP_FOR_118(s, p, o, m) BOOST_PP_FOR_118_C(BOOST_PP_BOOL(p##(119, s)), s, p, o, m)
-# define BOOST_PP_FOR_119(s, p, o, m) BOOST_PP_FOR_119_C(BOOST_PP_BOOL(p##(120, s)), s, p, o, m)
-# define BOOST_PP_FOR_120(s, p, o, m) BOOST_PP_FOR_120_C(BOOST_PP_BOOL(p##(121, s)), s, p, o, m)
-# define BOOST_PP_FOR_121(s, p, o, m) BOOST_PP_FOR_121_C(BOOST_PP_BOOL(p##(122, s)), s, p, o, m)
-# define BOOST_PP_FOR_122(s, p, o, m) BOOST_PP_FOR_122_C(BOOST_PP_BOOL(p##(123, s)), s, p, o, m)
-# define BOOST_PP_FOR_123(s, p, o, m) BOOST_PP_FOR_123_C(BOOST_PP_BOOL(p##(124, s)), s, p, o, m)
-# define BOOST_PP_FOR_124(s, p, o, m) BOOST_PP_FOR_124_C(BOOST_PP_BOOL(p##(125, s)), s, p, o, m)
-# define BOOST_PP_FOR_125(s, p, o, m) BOOST_PP_FOR_125_C(BOOST_PP_BOOL(p##(126, s)), s, p, o, m)
-# define BOOST_PP_FOR_126(s, p, o, m) BOOST_PP_FOR_126_C(BOOST_PP_BOOL(p##(127, s)), s, p, o, m)
-# define BOOST_PP_FOR_127(s, p, o, m) BOOST_PP_FOR_127_C(BOOST_PP_BOOL(p##(128, s)), s, p, o, m)
-# define BOOST_PP_FOR_128(s, p, o, m) BOOST_PP_FOR_128_C(BOOST_PP_BOOL(p##(129, s)), s, p, o, m)
-# define BOOST_PP_FOR_129(s, p, o, m) BOOST_PP_FOR_129_C(BOOST_PP_BOOL(p##(130, s)), s, p, o, m)
-# define BOOST_PP_FOR_130(s, p, o, m) BOOST_PP_FOR_130_C(BOOST_PP_BOOL(p##(131, s)), s, p, o, m)
-# define BOOST_PP_FOR_131(s, p, o, m) BOOST_PP_FOR_131_C(BOOST_PP_BOOL(p##(132, s)), s, p, o, m)
-# define BOOST_PP_FOR_132(s, p, o, m) BOOST_PP_FOR_132_C(BOOST_PP_BOOL(p##(133, s)), s, p, o, m)
-# define BOOST_PP_FOR_133(s, p, o, m) BOOST_PP_FOR_133_C(BOOST_PP_BOOL(p##(134, s)), s, p, o, m)
-# define BOOST_PP_FOR_134(s, p, o, m) BOOST_PP_FOR_134_C(BOOST_PP_BOOL(p##(135, s)), s, p, o, m)
-# define BOOST_PP_FOR_135(s, p, o, m) BOOST_PP_FOR_135_C(BOOST_PP_BOOL(p##(136, s)), s, p, o, m)
-# define BOOST_PP_FOR_136(s, p, o, m) BOOST_PP_FOR_136_C(BOOST_PP_BOOL(p##(137, s)), s, p, o, m)
-# define BOOST_PP_FOR_137(s, p, o, m) BOOST_PP_FOR_137_C(BOOST_PP_BOOL(p##(138, s)), s, p, o, m)
-# define BOOST_PP_FOR_138(s, p, o, m) BOOST_PP_FOR_138_C(BOOST_PP_BOOL(p##(139, s)), s, p, o, m)
-# define BOOST_PP_FOR_139(s, p, o, m) BOOST_PP_FOR_139_C(BOOST_PP_BOOL(p##(140, s)), s, p, o, m)
-# define BOOST_PP_FOR_140(s, p, o, m) BOOST_PP_FOR_140_C(BOOST_PP_BOOL(p##(141, s)), s, p, o, m)
-# define BOOST_PP_FOR_141(s, p, o, m) BOOST_PP_FOR_141_C(BOOST_PP_BOOL(p##(142, s)), s, p, o, m)
-# define BOOST_PP_FOR_142(s, p, o, m) BOOST_PP_FOR_142_C(BOOST_PP_BOOL(p##(143, s)), s, p, o, m)
-# define BOOST_PP_FOR_143(s, p, o, m) BOOST_PP_FOR_143_C(BOOST_PP_BOOL(p##(144, s)), s, p, o, m)
-# define BOOST_PP_FOR_144(s, p, o, m) BOOST_PP_FOR_144_C(BOOST_PP_BOOL(p##(145, s)), s, p, o, m)
-# define BOOST_PP_FOR_145(s, p, o, m) BOOST_PP_FOR_145_C(BOOST_PP_BOOL(p##(146, s)), s, p, o, m)
-# define BOOST_PP_FOR_146(s, p, o, m) BOOST_PP_FOR_146_C(BOOST_PP_BOOL(p##(147, s)), s, p, o, m)
-# define BOOST_PP_FOR_147(s, p, o, m) BOOST_PP_FOR_147_C(BOOST_PP_BOOL(p##(148, s)), s, p, o, m)
-# define BOOST_PP_FOR_148(s, p, o, m) BOOST_PP_FOR_148_C(BOOST_PP_BOOL(p##(149, s)), s, p, o, m)
-# define BOOST_PP_FOR_149(s, p, o, m) BOOST_PP_FOR_149_C(BOOST_PP_BOOL(p##(150, s)), s, p, o, m)
-# define BOOST_PP_FOR_150(s, p, o, m) BOOST_PP_FOR_150_C(BOOST_PP_BOOL(p##(151, s)), s, p, o, m)
-# define BOOST_PP_FOR_151(s, p, o, m) BOOST_PP_FOR_151_C(BOOST_PP_BOOL(p##(152, s)), s, p, o, m)
-# define BOOST_PP_FOR_152(s, p, o, m) BOOST_PP_FOR_152_C(BOOST_PP_BOOL(p##(153, s)), s, p, o, m)
-# define BOOST_PP_FOR_153(s, p, o, m) BOOST_PP_FOR_153_C(BOOST_PP_BOOL(p##(154, s)), s, p, o, m)
-# define BOOST_PP_FOR_154(s, p, o, m) BOOST_PP_FOR_154_C(BOOST_PP_BOOL(p##(155, s)), s, p, o, m)
-# define BOOST_PP_FOR_155(s, p, o, m) BOOST_PP_FOR_155_C(BOOST_PP_BOOL(p##(156, s)), s, p, o, m)
-# define BOOST_PP_FOR_156(s, p, o, m) BOOST_PP_FOR_156_C(BOOST_PP_BOOL(p##(157, s)), s, p, o, m)
-# define BOOST_PP_FOR_157(s, p, o, m) BOOST_PP_FOR_157_C(BOOST_PP_BOOL(p##(158, s)), s, p, o, m)
-# define BOOST_PP_FOR_158(s, p, o, m) BOOST_PP_FOR_158_C(BOOST_PP_BOOL(p##(159, s)), s, p, o, m)
-# define BOOST_PP_FOR_159(s, p, o, m) BOOST_PP_FOR_159_C(BOOST_PP_BOOL(p##(160, s)), s, p, o, m)
-# define BOOST_PP_FOR_160(s, p, o, m) BOOST_PP_FOR_160_C(BOOST_PP_BOOL(p##(161, s)), s, p, o, m)
-# define BOOST_PP_FOR_161(s, p, o, m) BOOST_PP_FOR_161_C(BOOST_PP_BOOL(p##(162, s)), s, p, o, m)
-# define BOOST_PP_FOR_162(s, p, o, m) BOOST_PP_FOR_162_C(BOOST_PP_BOOL(p##(163, s)), s, p, o, m)
-# define BOOST_PP_FOR_163(s, p, o, m) BOOST_PP_FOR_163_C(BOOST_PP_BOOL(p##(164, s)), s, p, o, m)
-# define BOOST_PP_FOR_164(s, p, o, m) BOOST_PP_FOR_164_C(BOOST_PP_BOOL(p##(165, s)), s, p, o, m)
-# define BOOST_PP_FOR_165(s, p, o, m) BOOST_PP_FOR_165_C(BOOST_PP_BOOL(p##(166, s)), s, p, o, m)
-# define BOOST_PP_FOR_166(s, p, o, m) BOOST_PP_FOR_166_C(BOOST_PP_BOOL(p##(167, s)), s, p, o, m)
-# define BOOST_PP_FOR_167(s, p, o, m) BOOST_PP_FOR_167_C(BOOST_PP_BOOL(p##(168, s)), s, p, o, m)
-# define BOOST_PP_FOR_168(s, p, o, m) BOOST_PP_FOR_168_C(BOOST_PP_BOOL(p##(169, s)), s, p, o, m)
-# define BOOST_PP_FOR_169(s, p, o, m) BOOST_PP_FOR_169_C(BOOST_PP_BOOL(p##(170, s)), s, p, o, m)
-# define BOOST_PP_FOR_170(s, p, o, m) BOOST_PP_FOR_170_C(BOOST_PP_BOOL(p##(171, s)), s, p, o, m)
-# define BOOST_PP_FOR_171(s, p, o, m) BOOST_PP_FOR_171_C(BOOST_PP_BOOL(p##(172, s)), s, p, o, m)
-# define BOOST_PP_FOR_172(s, p, o, m) BOOST_PP_FOR_172_C(BOOST_PP_BOOL(p##(173, s)), s, p, o, m)
-# define BOOST_PP_FOR_173(s, p, o, m) BOOST_PP_FOR_173_C(BOOST_PP_BOOL(p##(174, s)), s, p, o, m)
-# define BOOST_PP_FOR_174(s, p, o, m) BOOST_PP_FOR_174_C(BOOST_PP_BOOL(p##(175, s)), s, p, o, m)
-# define BOOST_PP_FOR_175(s, p, o, m) BOOST_PP_FOR_175_C(BOOST_PP_BOOL(p##(176, s)), s, p, o, m)
-# define BOOST_PP_FOR_176(s, p, o, m) BOOST_PP_FOR_176_C(BOOST_PP_BOOL(p##(177, s)), s, p, o, m)
-# define BOOST_PP_FOR_177(s, p, o, m) BOOST_PP_FOR_177_C(BOOST_PP_BOOL(p##(178, s)), s, p, o, m)
-# define BOOST_PP_FOR_178(s, p, o, m) BOOST_PP_FOR_178_C(BOOST_PP_BOOL(p##(179, s)), s, p, o, m)
-# define BOOST_PP_FOR_179(s, p, o, m) BOOST_PP_FOR_179_C(BOOST_PP_BOOL(p##(180, s)), s, p, o, m)
-# define BOOST_PP_FOR_180(s, p, o, m) BOOST_PP_FOR_180_C(BOOST_PP_BOOL(p##(181, s)), s, p, o, m)
-# define BOOST_PP_FOR_181(s, p, o, m) BOOST_PP_FOR_181_C(BOOST_PP_BOOL(p##(182, s)), s, p, o, m)
-# define BOOST_PP_FOR_182(s, p, o, m) BOOST_PP_FOR_182_C(BOOST_PP_BOOL(p##(183, s)), s, p, o, m)
-# define BOOST_PP_FOR_183(s, p, o, m) BOOST_PP_FOR_183_C(BOOST_PP_BOOL(p##(184, s)), s, p, o, m)
-# define BOOST_PP_FOR_184(s, p, o, m) BOOST_PP_FOR_184_C(BOOST_PP_BOOL(p##(185, s)), s, p, o, m)
-# define BOOST_PP_FOR_185(s, p, o, m) BOOST_PP_FOR_185_C(BOOST_PP_BOOL(p##(186, s)), s, p, o, m)
-# define BOOST_PP_FOR_186(s, p, o, m) BOOST_PP_FOR_186_C(BOOST_PP_BOOL(p##(187, s)), s, p, o, m)
-# define BOOST_PP_FOR_187(s, p, o, m) BOOST_PP_FOR_187_C(BOOST_PP_BOOL(p##(188, s)), s, p, o, m)
-# define BOOST_PP_FOR_188(s, p, o, m) BOOST_PP_FOR_188_C(BOOST_PP_BOOL(p##(189, s)), s, p, o, m)
-# define BOOST_PP_FOR_189(s, p, o, m) BOOST_PP_FOR_189_C(BOOST_PP_BOOL(p##(190, s)), s, p, o, m)
-# define BOOST_PP_FOR_190(s, p, o, m) BOOST_PP_FOR_190_C(BOOST_PP_BOOL(p##(191, s)), s, p, o, m)
-# define BOOST_PP_FOR_191(s, p, o, m) BOOST_PP_FOR_191_C(BOOST_PP_BOOL(p##(192, s)), s, p, o, m)
-# define BOOST_PP_FOR_192(s, p, o, m) BOOST_PP_FOR_192_C(BOOST_PP_BOOL(p##(193, s)), s, p, o, m)
-# define BOOST_PP_FOR_193(s, p, o, m) BOOST_PP_FOR_193_C(BOOST_PP_BOOL(p##(194, s)), s, p, o, m)
-# define BOOST_PP_FOR_194(s, p, o, m) BOOST_PP_FOR_194_C(BOOST_PP_BOOL(p##(195, s)), s, p, o, m)
-# define BOOST_PP_FOR_195(s, p, o, m) BOOST_PP_FOR_195_C(BOOST_PP_BOOL(p##(196, s)), s, p, o, m)
-# define BOOST_PP_FOR_196(s, p, o, m) BOOST_PP_FOR_196_C(BOOST_PP_BOOL(p##(197, s)), s, p, o, m)
-# define BOOST_PP_FOR_197(s, p, o, m) BOOST_PP_FOR_197_C(BOOST_PP_BOOL(p##(198, s)), s, p, o, m)
-# define BOOST_PP_FOR_198(s, p, o, m) BOOST_PP_FOR_198_C(BOOST_PP_BOOL(p##(199, s)), s, p, o, m)
-# define BOOST_PP_FOR_199(s, p, o, m) BOOST_PP_FOR_199_C(BOOST_PP_BOOL(p##(200, s)), s, p, o, m)
-# define BOOST_PP_FOR_200(s, p, o, m) BOOST_PP_FOR_200_C(BOOST_PP_BOOL(p##(201, s)), s, p, o, m)
-# define BOOST_PP_FOR_201(s, p, o, m) BOOST_PP_FOR_201_C(BOOST_PP_BOOL(p##(202, s)), s, p, o, m)
-# define BOOST_PP_FOR_202(s, p, o, m) BOOST_PP_FOR_202_C(BOOST_PP_BOOL(p##(203, s)), s, p, o, m)
-# define BOOST_PP_FOR_203(s, p, o, m) BOOST_PP_FOR_203_C(BOOST_PP_BOOL(p##(204, s)), s, p, o, m)
-# define BOOST_PP_FOR_204(s, p, o, m) BOOST_PP_FOR_204_C(BOOST_PP_BOOL(p##(205, s)), s, p, o, m)
-# define BOOST_PP_FOR_205(s, p, o, m) BOOST_PP_FOR_205_C(BOOST_PP_BOOL(p##(206, s)), s, p, o, m)
-# define BOOST_PP_FOR_206(s, p, o, m) BOOST_PP_FOR_206_C(BOOST_PP_BOOL(p##(207, s)), s, p, o, m)
-# define BOOST_PP_FOR_207(s, p, o, m) BOOST_PP_FOR_207_C(BOOST_PP_BOOL(p##(208, s)), s, p, o, m)
-# define BOOST_PP_FOR_208(s, p, o, m) BOOST_PP_FOR_208_C(BOOST_PP_BOOL(p##(209, s)), s, p, o, m)
-# define BOOST_PP_FOR_209(s, p, o, m) BOOST_PP_FOR_209_C(BOOST_PP_BOOL(p##(210, s)), s, p, o, m)
-# define BOOST_PP_FOR_210(s, p, o, m) BOOST_PP_FOR_210_C(BOOST_PP_BOOL(p##(211, s)), s, p, o, m)
-# define BOOST_PP_FOR_211(s, p, o, m) BOOST_PP_FOR_211_C(BOOST_PP_BOOL(p##(212, s)), s, p, o, m)
-# define BOOST_PP_FOR_212(s, p, o, m) BOOST_PP_FOR_212_C(BOOST_PP_BOOL(p##(213, s)), s, p, o, m)
-# define BOOST_PP_FOR_213(s, p, o, m) BOOST_PP_FOR_213_C(BOOST_PP_BOOL(p##(214, s)), s, p, o, m)
-# define BOOST_PP_FOR_214(s, p, o, m) BOOST_PP_FOR_214_C(BOOST_PP_BOOL(p##(215, s)), s, p, o, m)
-# define BOOST_PP_FOR_215(s, p, o, m) BOOST_PP_FOR_215_C(BOOST_PP_BOOL(p##(216, s)), s, p, o, m)
-# define BOOST_PP_FOR_216(s, p, o, m) BOOST_PP_FOR_216_C(BOOST_PP_BOOL(p##(217, s)), s, p, o, m)
-# define BOOST_PP_FOR_217(s, p, o, m) BOOST_PP_FOR_217_C(BOOST_PP_BOOL(p##(218, s)), s, p, o, m)
-# define BOOST_PP_FOR_218(s, p, o, m) BOOST_PP_FOR_218_C(BOOST_PP_BOOL(p##(219, s)), s, p, o, m)
-# define BOOST_PP_FOR_219(s, p, o, m) BOOST_PP_FOR_219_C(BOOST_PP_BOOL(p##(220, s)), s, p, o, m)
-# define BOOST_PP_FOR_220(s, p, o, m) BOOST_PP_FOR_220_C(BOOST_PP_BOOL(p##(221, s)), s, p, o, m)
-# define BOOST_PP_FOR_221(s, p, o, m) BOOST_PP_FOR_221_C(BOOST_PP_BOOL(p##(222, s)), s, p, o, m)
-# define BOOST_PP_FOR_222(s, p, o, m) BOOST_PP_FOR_222_C(BOOST_PP_BOOL(p##(223, s)), s, p, o, m)
-# define BOOST_PP_FOR_223(s, p, o, m) BOOST_PP_FOR_223_C(BOOST_PP_BOOL(p##(224, s)), s, p, o, m)
-# define BOOST_PP_FOR_224(s, p, o, m) BOOST_PP_FOR_224_C(BOOST_PP_BOOL(p##(225, s)), s, p, o, m)
-# define BOOST_PP_FOR_225(s, p, o, m) BOOST_PP_FOR_225_C(BOOST_PP_BOOL(p##(226, s)), s, p, o, m)
-# define BOOST_PP_FOR_226(s, p, o, m) BOOST_PP_FOR_226_C(BOOST_PP_BOOL(p##(227, s)), s, p, o, m)
-# define BOOST_PP_FOR_227(s, p, o, m) BOOST_PP_FOR_227_C(BOOST_PP_BOOL(p##(228, s)), s, p, o, m)
-# define BOOST_PP_FOR_228(s, p, o, m) BOOST_PP_FOR_228_C(BOOST_PP_BOOL(p##(229, s)), s, p, o, m)
-# define BOOST_PP_FOR_229(s, p, o, m) BOOST_PP_FOR_229_C(BOOST_PP_BOOL(p##(230, s)), s, p, o, m)
-# define BOOST_PP_FOR_230(s, p, o, m) BOOST_PP_FOR_230_C(BOOST_PP_BOOL(p##(231, s)), s, p, o, m)
-# define BOOST_PP_FOR_231(s, p, o, m) BOOST_PP_FOR_231_C(BOOST_PP_BOOL(p##(232, s)), s, p, o, m)
-# define BOOST_PP_FOR_232(s, p, o, m) BOOST_PP_FOR_232_C(BOOST_PP_BOOL(p##(233, s)), s, p, o, m)
-# define BOOST_PP_FOR_233(s, p, o, m) BOOST_PP_FOR_233_C(BOOST_PP_BOOL(p##(234, s)), s, p, o, m)
-# define BOOST_PP_FOR_234(s, p, o, m) BOOST_PP_FOR_234_C(BOOST_PP_BOOL(p##(235, s)), s, p, o, m)
-# define BOOST_PP_FOR_235(s, p, o, m) BOOST_PP_FOR_235_C(BOOST_PP_BOOL(p##(236, s)), s, p, o, m)
-# define BOOST_PP_FOR_236(s, p, o, m) BOOST_PP_FOR_236_C(BOOST_PP_BOOL(p##(237, s)), s, p, o, m)
-# define BOOST_PP_FOR_237(s, p, o, m) BOOST_PP_FOR_237_C(BOOST_PP_BOOL(p##(238, s)), s, p, o, m)
-# define BOOST_PP_FOR_238(s, p, o, m) BOOST_PP_FOR_238_C(BOOST_PP_BOOL(p##(239, s)), s, p, o, m)
-# define BOOST_PP_FOR_239(s, p, o, m) BOOST_PP_FOR_239_C(BOOST_PP_BOOL(p##(240, s)), s, p, o, m)
-# define BOOST_PP_FOR_240(s, p, o, m) BOOST_PP_FOR_240_C(BOOST_PP_BOOL(p##(241, s)), s, p, o, m)
-# define BOOST_PP_FOR_241(s, p, o, m) BOOST_PP_FOR_241_C(BOOST_PP_BOOL(p##(242, s)), s, p, o, m)
-# define BOOST_PP_FOR_242(s, p, o, m) BOOST_PP_FOR_242_C(BOOST_PP_BOOL(p##(243, s)), s, p, o, m)
-# define BOOST_PP_FOR_243(s, p, o, m) BOOST_PP_FOR_243_C(BOOST_PP_BOOL(p##(244, s)), s, p, o, m)
-# define BOOST_PP_FOR_244(s, p, o, m) BOOST_PP_FOR_244_C(BOOST_PP_BOOL(p##(245, s)), s, p, o, m)
-# define BOOST_PP_FOR_245(s, p, o, m) BOOST_PP_FOR_245_C(BOOST_PP_BOOL(p##(246, s)), s, p, o, m)
-# define BOOST_PP_FOR_246(s, p, o, m) BOOST_PP_FOR_246_C(BOOST_PP_BOOL(p##(247, s)), s, p, o, m)
-# define BOOST_PP_FOR_247(s, p, o, m) BOOST_PP_FOR_247_C(BOOST_PP_BOOL(p##(248, s)), s, p, o, m)
-# define BOOST_PP_FOR_248(s, p, o, m) BOOST_PP_FOR_248_C(BOOST_PP_BOOL(p##(249, s)), s, p, o, m)
-# define BOOST_PP_FOR_249(s, p, o, m) BOOST_PP_FOR_249_C(BOOST_PP_BOOL(p##(250, s)), s, p, o, m)
-# define BOOST_PP_FOR_250(s, p, o, m) BOOST_PP_FOR_250_C(BOOST_PP_BOOL(p##(251, s)), s, p, o, m)
-# define BOOST_PP_FOR_251(s, p, o, m) BOOST_PP_FOR_251_C(BOOST_PP_BOOL(p##(252, s)), s, p, o, m)
-# define BOOST_PP_FOR_252(s, p, o, m) BOOST_PP_FOR_252_C(BOOST_PP_BOOL(p##(253, s)), s, p, o, m)
-# define BOOST_PP_FOR_253(s, p, o, m) BOOST_PP_FOR_253_C(BOOST_PP_BOOL(p##(254, s)), s, p, o, m)
-# define BOOST_PP_FOR_254(s, p, o, m) BOOST_PP_FOR_254_C(BOOST_PP_BOOL(p##(255, s)), s, p, o, m)
-# define BOOST_PP_FOR_255(s, p, o, m) BOOST_PP_FOR_255_C(BOOST_PP_BOOL(p##(256, s)), s, p, o, m)
-# define BOOST_PP_FOR_256(s, p, o, m) BOOST_PP_FOR_256_C(BOOST_PP_BOOL(p##(257, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_1(s, p, o, m) NDNBOOST_PP_FOR_1_C(NDNBOOST_PP_BOOL(p##(2, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_2(s, p, o, m) NDNBOOST_PP_FOR_2_C(NDNBOOST_PP_BOOL(p##(3, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_3(s, p, o, m) NDNBOOST_PP_FOR_3_C(NDNBOOST_PP_BOOL(p##(4, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_4(s, p, o, m) NDNBOOST_PP_FOR_4_C(NDNBOOST_PP_BOOL(p##(5, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_5(s, p, o, m) NDNBOOST_PP_FOR_5_C(NDNBOOST_PP_BOOL(p##(6, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_6(s, p, o, m) NDNBOOST_PP_FOR_6_C(NDNBOOST_PP_BOOL(p##(7, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_7(s, p, o, m) NDNBOOST_PP_FOR_7_C(NDNBOOST_PP_BOOL(p##(8, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_8(s, p, o, m) NDNBOOST_PP_FOR_8_C(NDNBOOST_PP_BOOL(p##(9, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_9(s, p, o, m) NDNBOOST_PP_FOR_9_C(NDNBOOST_PP_BOOL(p##(10, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_10(s, p, o, m) NDNBOOST_PP_FOR_10_C(NDNBOOST_PP_BOOL(p##(11, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_11(s, p, o, m) NDNBOOST_PP_FOR_11_C(NDNBOOST_PP_BOOL(p##(12, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_12(s, p, o, m) NDNBOOST_PP_FOR_12_C(NDNBOOST_PP_BOOL(p##(13, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_13(s, p, o, m) NDNBOOST_PP_FOR_13_C(NDNBOOST_PP_BOOL(p##(14, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_14(s, p, o, m) NDNBOOST_PP_FOR_14_C(NDNBOOST_PP_BOOL(p##(15, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_15(s, p, o, m) NDNBOOST_PP_FOR_15_C(NDNBOOST_PP_BOOL(p##(16, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_16(s, p, o, m) NDNBOOST_PP_FOR_16_C(NDNBOOST_PP_BOOL(p##(17, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_17(s, p, o, m) NDNBOOST_PP_FOR_17_C(NDNBOOST_PP_BOOL(p##(18, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_18(s, p, o, m) NDNBOOST_PP_FOR_18_C(NDNBOOST_PP_BOOL(p##(19, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_19(s, p, o, m) NDNBOOST_PP_FOR_19_C(NDNBOOST_PP_BOOL(p##(20, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_20(s, p, o, m) NDNBOOST_PP_FOR_20_C(NDNBOOST_PP_BOOL(p##(21, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_21(s, p, o, m) NDNBOOST_PP_FOR_21_C(NDNBOOST_PP_BOOL(p##(22, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_22(s, p, o, m) NDNBOOST_PP_FOR_22_C(NDNBOOST_PP_BOOL(p##(23, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_23(s, p, o, m) NDNBOOST_PP_FOR_23_C(NDNBOOST_PP_BOOL(p##(24, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_24(s, p, o, m) NDNBOOST_PP_FOR_24_C(NDNBOOST_PP_BOOL(p##(25, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_25(s, p, o, m) NDNBOOST_PP_FOR_25_C(NDNBOOST_PP_BOOL(p##(26, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_26(s, p, o, m) NDNBOOST_PP_FOR_26_C(NDNBOOST_PP_BOOL(p##(27, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_27(s, p, o, m) NDNBOOST_PP_FOR_27_C(NDNBOOST_PP_BOOL(p##(28, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_28(s, p, o, m) NDNBOOST_PP_FOR_28_C(NDNBOOST_PP_BOOL(p##(29, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_29(s, p, o, m) NDNBOOST_PP_FOR_29_C(NDNBOOST_PP_BOOL(p##(30, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_30(s, p, o, m) NDNBOOST_PP_FOR_30_C(NDNBOOST_PP_BOOL(p##(31, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_31(s, p, o, m) NDNBOOST_PP_FOR_31_C(NDNBOOST_PP_BOOL(p##(32, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_32(s, p, o, m) NDNBOOST_PP_FOR_32_C(NDNBOOST_PP_BOOL(p##(33, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_33(s, p, o, m) NDNBOOST_PP_FOR_33_C(NDNBOOST_PP_BOOL(p##(34, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_34(s, p, o, m) NDNBOOST_PP_FOR_34_C(NDNBOOST_PP_BOOL(p##(35, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_35(s, p, o, m) NDNBOOST_PP_FOR_35_C(NDNBOOST_PP_BOOL(p##(36, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_36(s, p, o, m) NDNBOOST_PP_FOR_36_C(NDNBOOST_PP_BOOL(p##(37, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_37(s, p, o, m) NDNBOOST_PP_FOR_37_C(NDNBOOST_PP_BOOL(p##(38, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_38(s, p, o, m) NDNBOOST_PP_FOR_38_C(NDNBOOST_PP_BOOL(p##(39, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_39(s, p, o, m) NDNBOOST_PP_FOR_39_C(NDNBOOST_PP_BOOL(p##(40, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_40(s, p, o, m) NDNBOOST_PP_FOR_40_C(NDNBOOST_PP_BOOL(p##(41, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_41(s, p, o, m) NDNBOOST_PP_FOR_41_C(NDNBOOST_PP_BOOL(p##(42, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_42(s, p, o, m) NDNBOOST_PP_FOR_42_C(NDNBOOST_PP_BOOL(p##(43, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_43(s, p, o, m) NDNBOOST_PP_FOR_43_C(NDNBOOST_PP_BOOL(p##(44, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_44(s, p, o, m) NDNBOOST_PP_FOR_44_C(NDNBOOST_PP_BOOL(p##(45, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_45(s, p, o, m) NDNBOOST_PP_FOR_45_C(NDNBOOST_PP_BOOL(p##(46, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_46(s, p, o, m) NDNBOOST_PP_FOR_46_C(NDNBOOST_PP_BOOL(p##(47, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_47(s, p, o, m) NDNBOOST_PP_FOR_47_C(NDNBOOST_PP_BOOL(p##(48, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_48(s, p, o, m) NDNBOOST_PP_FOR_48_C(NDNBOOST_PP_BOOL(p##(49, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_49(s, p, o, m) NDNBOOST_PP_FOR_49_C(NDNBOOST_PP_BOOL(p##(50, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_50(s, p, o, m) NDNBOOST_PP_FOR_50_C(NDNBOOST_PP_BOOL(p##(51, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_51(s, p, o, m) NDNBOOST_PP_FOR_51_C(NDNBOOST_PP_BOOL(p##(52, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_52(s, p, o, m) NDNBOOST_PP_FOR_52_C(NDNBOOST_PP_BOOL(p##(53, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_53(s, p, o, m) NDNBOOST_PP_FOR_53_C(NDNBOOST_PP_BOOL(p##(54, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_54(s, p, o, m) NDNBOOST_PP_FOR_54_C(NDNBOOST_PP_BOOL(p##(55, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_55(s, p, o, m) NDNBOOST_PP_FOR_55_C(NDNBOOST_PP_BOOL(p##(56, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_56(s, p, o, m) NDNBOOST_PP_FOR_56_C(NDNBOOST_PP_BOOL(p##(57, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_57(s, p, o, m) NDNBOOST_PP_FOR_57_C(NDNBOOST_PP_BOOL(p##(58, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_58(s, p, o, m) NDNBOOST_PP_FOR_58_C(NDNBOOST_PP_BOOL(p##(59, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_59(s, p, o, m) NDNBOOST_PP_FOR_59_C(NDNBOOST_PP_BOOL(p##(60, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_60(s, p, o, m) NDNBOOST_PP_FOR_60_C(NDNBOOST_PP_BOOL(p##(61, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_61(s, p, o, m) NDNBOOST_PP_FOR_61_C(NDNBOOST_PP_BOOL(p##(62, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_62(s, p, o, m) NDNBOOST_PP_FOR_62_C(NDNBOOST_PP_BOOL(p##(63, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_63(s, p, o, m) NDNBOOST_PP_FOR_63_C(NDNBOOST_PP_BOOL(p##(64, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_64(s, p, o, m) NDNBOOST_PP_FOR_64_C(NDNBOOST_PP_BOOL(p##(65, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_65(s, p, o, m) NDNBOOST_PP_FOR_65_C(NDNBOOST_PP_BOOL(p##(66, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_66(s, p, o, m) NDNBOOST_PP_FOR_66_C(NDNBOOST_PP_BOOL(p##(67, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_67(s, p, o, m) NDNBOOST_PP_FOR_67_C(NDNBOOST_PP_BOOL(p##(68, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_68(s, p, o, m) NDNBOOST_PP_FOR_68_C(NDNBOOST_PP_BOOL(p##(69, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_69(s, p, o, m) NDNBOOST_PP_FOR_69_C(NDNBOOST_PP_BOOL(p##(70, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_70(s, p, o, m) NDNBOOST_PP_FOR_70_C(NDNBOOST_PP_BOOL(p##(71, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_71(s, p, o, m) NDNBOOST_PP_FOR_71_C(NDNBOOST_PP_BOOL(p##(72, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_72(s, p, o, m) NDNBOOST_PP_FOR_72_C(NDNBOOST_PP_BOOL(p##(73, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_73(s, p, o, m) NDNBOOST_PP_FOR_73_C(NDNBOOST_PP_BOOL(p##(74, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_74(s, p, o, m) NDNBOOST_PP_FOR_74_C(NDNBOOST_PP_BOOL(p##(75, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_75(s, p, o, m) NDNBOOST_PP_FOR_75_C(NDNBOOST_PP_BOOL(p##(76, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_76(s, p, o, m) NDNBOOST_PP_FOR_76_C(NDNBOOST_PP_BOOL(p##(77, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_77(s, p, o, m) NDNBOOST_PP_FOR_77_C(NDNBOOST_PP_BOOL(p##(78, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_78(s, p, o, m) NDNBOOST_PP_FOR_78_C(NDNBOOST_PP_BOOL(p##(79, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_79(s, p, o, m) NDNBOOST_PP_FOR_79_C(NDNBOOST_PP_BOOL(p##(80, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_80(s, p, o, m) NDNBOOST_PP_FOR_80_C(NDNBOOST_PP_BOOL(p##(81, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_81(s, p, o, m) NDNBOOST_PP_FOR_81_C(NDNBOOST_PP_BOOL(p##(82, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_82(s, p, o, m) NDNBOOST_PP_FOR_82_C(NDNBOOST_PP_BOOL(p##(83, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_83(s, p, o, m) NDNBOOST_PP_FOR_83_C(NDNBOOST_PP_BOOL(p##(84, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_84(s, p, o, m) NDNBOOST_PP_FOR_84_C(NDNBOOST_PP_BOOL(p##(85, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_85(s, p, o, m) NDNBOOST_PP_FOR_85_C(NDNBOOST_PP_BOOL(p##(86, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_86(s, p, o, m) NDNBOOST_PP_FOR_86_C(NDNBOOST_PP_BOOL(p##(87, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_87(s, p, o, m) NDNBOOST_PP_FOR_87_C(NDNBOOST_PP_BOOL(p##(88, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_88(s, p, o, m) NDNBOOST_PP_FOR_88_C(NDNBOOST_PP_BOOL(p##(89, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_89(s, p, o, m) NDNBOOST_PP_FOR_89_C(NDNBOOST_PP_BOOL(p##(90, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_90(s, p, o, m) NDNBOOST_PP_FOR_90_C(NDNBOOST_PP_BOOL(p##(91, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_91(s, p, o, m) NDNBOOST_PP_FOR_91_C(NDNBOOST_PP_BOOL(p##(92, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_92(s, p, o, m) NDNBOOST_PP_FOR_92_C(NDNBOOST_PP_BOOL(p##(93, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_93(s, p, o, m) NDNBOOST_PP_FOR_93_C(NDNBOOST_PP_BOOL(p##(94, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_94(s, p, o, m) NDNBOOST_PP_FOR_94_C(NDNBOOST_PP_BOOL(p##(95, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_95(s, p, o, m) NDNBOOST_PP_FOR_95_C(NDNBOOST_PP_BOOL(p##(96, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_96(s, p, o, m) NDNBOOST_PP_FOR_96_C(NDNBOOST_PP_BOOL(p##(97, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_97(s, p, o, m) NDNBOOST_PP_FOR_97_C(NDNBOOST_PP_BOOL(p##(98, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_98(s, p, o, m) NDNBOOST_PP_FOR_98_C(NDNBOOST_PP_BOOL(p##(99, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_99(s, p, o, m) NDNBOOST_PP_FOR_99_C(NDNBOOST_PP_BOOL(p##(100, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_100(s, p, o, m) NDNBOOST_PP_FOR_100_C(NDNBOOST_PP_BOOL(p##(101, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_101(s, p, o, m) NDNBOOST_PP_FOR_101_C(NDNBOOST_PP_BOOL(p##(102, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_102(s, p, o, m) NDNBOOST_PP_FOR_102_C(NDNBOOST_PP_BOOL(p##(103, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_103(s, p, o, m) NDNBOOST_PP_FOR_103_C(NDNBOOST_PP_BOOL(p##(104, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_104(s, p, o, m) NDNBOOST_PP_FOR_104_C(NDNBOOST_PP_BOOL(p##(105, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_105(s, p, o, m) NDNBOOST_PP_FOR_105_C(NDNBOOST_PP_BOOL(p##(106, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_106(s, p, o, m) NDNBOOST_PP_FOR_106_C(NDNBOOST_PP_BOOL(p##(107, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_107(s, p, o, m) NDNBOOST_PP_FOR_107_C(NDNBOOST_PP_BOOL(p##(108, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_108(s, p, o, m) NDNBOOST_PP_FOR_108_C(NDNBOOST_PP_BOOL(p##(109, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_109(s, p, o, m) NDNBOOST_PP_FOR_109_C(NDNBOOST_PP_BOOL(p##(110, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_110(s, p, o, m) NDNBOOST_PP_FOR_110_C(NDNBOOST_PP_BOOL(p##(111, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_111(s, p, o, m) NDNBOOST_PP_FOR_111_C(NDNBOOST_PP_BOOL(p##(112, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_112(s, p, o, m) NDNBOOST_PP_FOR_112_C(NDNBOOST_PP_BOOL(p##(113, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_113(s, p, o, m) NDNBOOST_PP_FOR_113_C(NDNBOOST_PP_BOOL(p##(114, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_114(s, p, o, m) NDNBOOST_PP_FOR_114_C(NDNBOOST_PP_BOOL(p##(115, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_115(s, p, o, m) NDNBOOST_PP_FOR_115_C(NDNBOOST_PP_BOOL(p##(116, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_116(s, p, o, m) NDNBOOST_PP_FOR_116_C(NDNBOOST_PP_BOOL(p##(117, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_117(s, p, o, m) NDNBOOST_PP_FOR_117_C(NDNBOOST_PP_BOOL(p##(118, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_118(s, p, o, m) NDNBOOST_PP_FOR_118_C(NDNBOOST_PP_BOOL(p##(119, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_119(s, p, o, m) NDNBOOST_PP_FOR_119_C(NDNBOOST_PP_BOOL(p##(120, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_120(s, p, o, m) NDNBOOST_PP_FOR_120_C(NDNBOOST_PP_BOOL(p##(121, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_121(s, p, o, m) NDNBOOST_PP_FOR_121_C(NDNBOOST_PP_BOOL(p##(122, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_122(s, p, o, m) NDNBOOST_PP_FOR_122_C(NDNBOOST_PP_BOOL(p##(123, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_123(s, p, o, m) NDNBOOST_PP_FOR_123_C(NDNBOOST_PP_BOOL(p##(124, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_124(s, p, o, m) NDNBOOST_PP_FOR_124_C(NDNBOOST_PP_BOOL(p##(125, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_125(s, p, o, m) NDNBOOST_PP_FOR_125_C(NDNBOOST_PP_BOOL(p##(126, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_126(s, p, o, m) NDNBOOST_PP_FOR_126_C(NDNBOOST_PP_BOOL(p##(127, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_127(s, p, o, m) NDNBOOST_PP_FOR_127_C(NDNBOOST_PP_BOOL(p##(128, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_128(s, p, o, m) NDNBOOST_PP_FOR_128_C(NDNBOOST_PP_BOOL(p##(129, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_129(s, p, o, m) NDNBOOST_PP_FOR_129_C(NDNBOOST_PP_BOOL(p##(130, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_130(s, p, o, m) NDNBOOST_PP_FOR_130_C(NDNBOOST_PP_BOOL(p##(131, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_131(s, p, o, m) NDNBOOST_PP_FOR_131_C(NDNBOOST_PP_BOOL(p##(132, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_132(s, p, o, m) NDNBOOST_PP_FOR_132_C(NDNBOOST_PP_BOOL(p##(133, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_133(s, p, o, m) NDNBOOST_PP_FOR_133_C(NDNBOOST_PP_BOOL(p##(134, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_134(s, p, o, m) NDNBOOST_PP_FOR_134_C(NDNBOOST_PP_BOOL(p##(135, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_135(s, p, o, m) NDNBOOST_PP_FOR_135_C(NDNBOOST_PP_BOOL(p##(136, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_136(s, p, o, m) NDNBOOST_PP_FOR_136_C(NDNBOOST_PP_BOOL(p##(137, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_137(s, p, o, m) NDNBOOST_PP_FOR_137_C(NDNBOOST_PP_BOOL(p##(138, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_138(s, p, o, m) NDNBOOST_PP_FOR_138_C(NDNBOOST_PP_BOOL(p##(139, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_139(s, p, o, m) NDNBOOST_PP_FOR_139_C(NDNBOOST_PP_BOOL(p##(140, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_140(s, p, o, m) NDNBOOST_PP_FOR_140_C(NDNBOOST_PP_BOOL(p##(141, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_141(s, p, o, m) NDNBOOST_PP_FOR_141_C(NDNBOOST_PP_BOOL(p##(142, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_142(s, p, o, m) NDNBOOST_PP_FOR_142_C(NDNBOOST_PP_BOOL(p##(143, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_143(s, p, o, m) NDNBOOST_PP_FOR_143_C(NDNBOOST_PP_BOOL(p##(144, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_144(s, p, o, m) NDNBOOST_PP_FOR_144_C(NDNBOOST_PP_BOOL(p##(145, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_145(s, p, o, m) NDNBOOST_PP_FOR_145_C(NDNBOOST_PP_BOOL(p##(146, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_146(s, p, o, m) NDNBOOST_PP_FOR_146_C(NDNBOOST_PP_BOOL(p##(147, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_147(s, p, o, m) NDNBOOST_PP_FOR_147_C(NDNBOOST_PP_BOOL(p##(148, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_148(s, p, o, m) NDNBOOST_PP_FOR_148_C(NDNBOOST_PP_BOOL(p##(149, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_149(s, p, o, m) NDNBOOST_PP_FOR_149_C(NDNBOOST_PP_BOOL(p##(150, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_150(s, p, o, m) NDNBOOST_PP_FOR_150_C(NDNBOOST_PP_BOOL(p##(151, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_151(s, p, o, m) NDNBOOST_PP_FOR_151_C(NDNBOOST_PP_BOOL(p##(152, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_152(s, p, o, m) NDNBOOST_PP_FOR_152_C(NDNBOOST_PP_BOOL(p##(153, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_153(s, p, o, m) NDNBOOST_PP_FOR_153_C(NDNBOOST_PP_BOOL(p##(154, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_154(s, p, o, m) NDNBOOST_PP_FOR_154_C(NDNBOOST_PP_BOOL(p##(155, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_155(s, p, o, m) NDNBOOST_PP_FOR_155_C(NDNBOOST_PP_BOOL(p##(156, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_156(s, p, o, m) NDNBOOST_PP_FOR_156_C(NDNBOOST_PP_BOOL(p##(157, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_157(s, p, o, m) NDNBOOST_PP_FOR_157_C(NDNBOOST_PP_BOOL(p##(158, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_158(s, p, o, m) NDNBOOST_PP_FOR_158_C(NDNBOOST_PP_BOOL(p##(159, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_159(s, p, o, m) NDNBOOST_PP_FOR_159_C(NDNBOOST_PP_BOOL(p##(160, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_160(s, p, o, m) NDNBOOST_PP_FOR_160_C(NDNBOOST_PP_BOOL(p##(161, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_161(s, p, o, m) NDNBOOST_PP_FOR_161_C(NDNBOOST_PP_BOOL(p##(162, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_162(s, p, o, m) NDNBOOST_PP_FOR_162_C(NDNBOOST_PP_BOOL(p##(163, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_163(s, p, o, m) NDNBOOST_PP_FOR_163_C(NDNBOOST_PP_BOOL(p##(164, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_164(s, p, o, m) NDNBOOST_PP_FOR_164_C(NDNBOOST_PP_BOOL(p##(165, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_165(s, p, o, m) NDNBOOST_PP_FOR_165_C(NDNBOOST_PP_BOOL(p##(166, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_166(s, p, o, m) NDNBOOST_PP_FOR_166_C(NDNBOOST_PP_BOOL(p##(167, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_167(s, p, o, m) NDNBOOST_PP_FOR_167_C(NDNBOOST_PP_BOOL(p##(168, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_168(s, p, o, m) NDNBOOST_PP_FOR_168_C(NDNBOOST_PP_BOOL(p##(169, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_169(s, p, o, m) NDNBOOST_PP_FOR_169_C(NDNBOOST_PP_BOOL(p##(170, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_170(s, p, o, m) NDNBOOST_PP_FOR_170_C(NDNBOOST_PP_BOOL(p##(171, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_171(s, p, o, m) NDNBOOST_PP_FOR_171_C(NDNBOOST_PP_BOOL(p##(172, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_172(s, p, o, m) NDNBOOST_PP_FOR_172_C(NDNBOOST_PP_BOOL(p##(173, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_173(s, p, o, m) NDNBOOST_PP_FOR_173_C(NDNBOOST_PP_BOOL(p##(174, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_174(s, p, o, m) NDNBOOST_PP_FOR_174_C(NDNBOOST_PP_BOOL(p##(175, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_175(s, p, o, m) NDNBOOST_PP_FOR_175_C(NDNBOOST_PP_BOOL(p##(176, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_176(s, p, o, m) NDNBOOST_PP_FOR_176_C(NDNBOOST_PP_BOOL(p##(177, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_177(s, p, o, m) NDNBOOST_PP_FOR_177_C(NDNBOOST_PP_BOOL(p##(178, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_178(s, p, o, m) NDNBOOST_PP_FOR_178_C(NDNBOOST_PP_BOOL(p##(179, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_179(s, p, o, m) NDNBOOST_PP_FOR_179_C(NDNBOOST_PP_BOOL(p##(180, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_180(s, p, o, m) NDNBOOST_PP_FOR_180_C(NDNBOOST_PP_BOOL(p##(181, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_181(s, p, o, m) NDNBOOST_PP_FOR_181_C(NDNBOOST_PP_BOOL(p##(182, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_182(s, p, o, m) NDNBOOST_PP_FOR_182_C(NDNBOOST_PP_BOOL(p##(183, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_183(s, p, o, m) NDNBOOST_PP_FOR_183_C(NDNBOOST_PP_BOOL(p##(184, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_184(s, p, o, m) NDNBOOST_PP_FOR_184_C(NDNBOOST_PP_BOOL(p##(185, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_185(s, p, o, m) NDNBOOST_PP_FOR_185_C(NDNBOOST_PP_BOOL(p##(186, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_186(s, p, o, m) NDNBOOST_PP_FOR_186_C(NDNBOOST_PP_BOOL(p##(187, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_187(s, p, o, m) NDNBOOST_PP_FOR_187_C(NDNBOOST_PP_BOOL(p##(188, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_188(s, p, o, m) NDNBOOST_PP_FOR_188_C(NDNBOOST_PP_BOOL(p##(189, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_189(s, p, o, m) NDNBOOST_PP_FOR_189_C(NDNBOOST_PP_BOOL(p##(190, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_190(s, p, o, m) NDNBOOST_PP_FOR_190_C(NDNBOOST_PP_BOOL(p##(191, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_191(s, p, o, m) NDNBOOST_PP_FOR_191_C(NDNBOOST_PP_BOOL(p##(192, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_192(s, p, o, m) NDNBOOST_PP_FOR_192_C(NDNBOOST_PP_BOOL(p##(193, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_193(s, p, o, m) NDNBOOST_PP_FOR_193_C(NDNBOOST_PP_BOOL(p##(194, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_194(s, p, o, m) NDNBOOST_PP_FOR_194_C(NDNBOOST_PP_BOOL(p##(195, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_195(s, p, o, m) NDNBOOST_PP_FOR_195_C(NDNBOOST_PP_BOOL(p##(196, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_196(s, p, o, m) NDNBOOST_PP_FOR_196_C(NDNBOOST_PP_BOOL(p##(197, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_197(s, p, o, m) NDNBOOST_PP_FOR_197_C(NDNBOOST_PP_BOOL(p##(198, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_198(s, p, o, m) NDNBOOST_PP_FOR_198_C(NDNBOOST_PP_BOOL(p##(199, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_199(s, p, o, m) NDNBOOST_PP_FOR_199_C(NDNBOOST_PP_BOOL(p##(200, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_200(s, p, o, m) NDNBOOST_PP_FOR_200_C(NDNBOOST_PP_BOOL(p##(201, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_201(s, p, o, m) NDNBOOST_PP_FOR_201_C(NDNBOOST_PP_BOOL(p##(202, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_202(s, p, o, m) NDNBOOST_PP_FOR_202_C(NDNBOOST_PP_BOOL(p##(203, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_203(s, p, o, m) NDNBOOST_PP_FOR_203_C(NDNBOOST_PP_BOOL(p##(204, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_204(s, p, o, m) NDNBOOST_PP_FOR_204_C(NDNBOOST_PP_BOOL(p##(205, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_205(s, p, o, m) NDNBOOST_PP_FOR_205_C(NDNBOOST_PP_BOOL(p##(206, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_206(s, p, o, m) NDNBOOST_PP_FOR_206_C(NDNBOOST_PP_BOOL(p##(207, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_207(s, p, o, m) NDNBOOST_PP_FOR_207_C(NDNBOOST_PP_BOOL(p##(208, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_208(s, p, o, m) NDNBOOST_PP_FOR_208_C(NDNBOOST_PP_BOOL(p##(209, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_209(s, p, o, m) NDNBOOST_PP_FOR_209_C(NDNBOOST_PP_BOOL(p##(210, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_210(s, p, o, m) NDNBOOST_PP_FOR_210_C(NDNBOOST_PP_BOOL(p##(211, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_211(s, p, o, m) NDNBOOST_PP_FOR_211_C(NDNBOOST_PP_BOOL(p##(212, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_212(s, p, o, m) NDNBOOST_PP_FOR_212_C(NDNBOOST_PP_BOOL(p##(213, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_213(s, p, o, m) NDNBOOST_PP_FOR_213_C(NDNBOOST_PP_BOOL(p##(214, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_214(s, p, o, m) NDNBOOST_PP_FOR_214_C(NDNBOOST_PP_BOOL(p##(215, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_215(s, p, o, m) NDNBOOST_PP_FOR_215_C(NDNBOOST_PP_BOOL(p##(216, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_216(s, p, o, m) NDNBOOST_PP_FOR_216_C(NDNBOOST_PP_BOOL(p##(217, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_217(s, p, o, m) NDNBOOST_PP_FOR_217_C(NDNBOOST_PP_BOOL(p##(218, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_218(s, p, o, m) NDNBOOST_PP_FOR_218_C(NDNBOOST_PP_BOOL(p##(219, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_219(s, p, o, m) NDNBOOST_PP_FOR_219_C(NDNBOOST_PP_BOOL(p##(220, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_220(s, p, o, m) NDNBOOST_PP_FOR_220_C(NDNBOOST_PP_BOOL(p##(221, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_221(s, p, o, m) NDNBOOST_PP_FOR_221_C(NDNBOOST_PP_BOOL(p##(222, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_222(s, p, o, m) NDNBOOST_PP_FOR_222_C(NDNBOOST_PP_BOOL(p##(223, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_223(s, p, o, m) NDNBOOST_PP_FOR_223_C(NDNBOOST_PP_BOOL(p##(224, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_224(s, p, o, m) NDNBOOST_PP_FOR_224_C(NDNBOOST_PP_BOOL(p##(225, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_225(s, p, o, m) NDNBOOST_PP_FOR_225_C(NDNBOOST_PP_BOOL(p##(226, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_226(s, p, o, m) NDNBOOST_PP_FOR_226_C(NDNBOOST_PP_BOOL(p##(227, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_227(s, p, o, m) NDNBOOST_PP_FOR_227_C(NDNBOOST_PP_BOOL(p##(228, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_228(s, p, o, m) NDNBOOST_PP_FOR_228_C(NDNBOOST_PP_BOOL(p##(229, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_229(s, p, o, m) NDNBOOST_PP_FOR_229_C(NDNBOOST_PP_BOOL(p##(230, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_230(s, p, o, m) NDNBOOST_PP_FOR_230_C(NDNBOOST_PP_BOOL(p##(231, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_231(s, p, o, m) NDNBOOST_PP_FOR_231_C(NDNBOOST_PP_BOOL(p##(232, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_232(s, p, o, m) NDNBOOST_PP_FOR_232_C(NDNBOOST_PP_BOOL(p##(233, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_233(s, p, o, m) NDNBOOST_PP_FOR_233_C(NDNBOOST_PP_BOOL(p##(234, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_234(s, p, o, m) NDNBOOST_PP_FOR_234_C(NDNBOOST_PP_BOOL(p##(235, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_235(s, p, o, m) NDNBOOST_PP_FOR_235_C(NDNBOOST_PP_BOOL(p##(236, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_236(s, p, o, m) NDNBOOST_PP_FOR_236_C(NDNBOOST_PP_BOOL(p##(237, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_237(s, p, o, m) NDNBOOST_PP_FOR_237_C(NDNBOOST_PP_BOOL(p##(238, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_238(s, p, o, m) NDNBOOST_PP_FOR_238_C(NDNBOOST_PP_BOOL(p##(239, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_239(s, p, o, m) NDNBOOST_PP_FOR_239_C(NDNBOOST_PP_BOOL(p##(240, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_240(s, p, o, m) NDNBOOST_PP_FOR_240_C(NDNBOOST_PP_BOOL(p##(241, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_241(s, p, o, m) NDNBOOST_PP_FOR_241_C(NDNBOOST_PP_BOOL(p##(242, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_242(s, p, o, m) NDNBOOST_PP_FOR_242_C(NDNBOOST_PP_BOOL(p##(243, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_243(s, p, o, m) NDNBOOST_PP_FOR_243_C(NDNBOOST_PP_BOOL(p##(244, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_244(s, p, o, m) NDNBOOST_PP_FOR_244_C(NDNBOOST_PP_BOOL(p##(245, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_245(s, p, o, m) NDNBOOST_PP_FOR_245_C(NDNBOOST_PP_BOOL(p##(246, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_246(s, p, o, m) NDNBOOST_PP_FOR_246_C(NDNBOOST_PP_BOOL(p##(247, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_247(s, p, o, m) NDNBOOST_PP_FOR_247_C(NDNBOOST_PP_BOOL(p##(248, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_248(s, p, o, m) NDNBOOST_PP_FOR_248_C(NDNBOOST_PP_BOOL(p##(249, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_249(s, p, o, m) NDNBOOST_PP_FOR_249_C(NDNBOOST_PP_BOOL(p##(250, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_250(s, p, o, m) NDNBOOST_PP_FOR_250_C(NDNBOOST_PP_BOOL(p##(251, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_251(s, p, o, m) NDNBOOST_PP_FOR_251_C(NDNBOOST_PP_BOOL(p##(252, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_252(s, p, o, m) NDNBOOST_PP_FOR_252_C(NDNBOOST_PP_BOOL(p##(253, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_253(s, p, o, m) NDNBOOST_PP_FOR_253_C(NDNBOOST_PP_BOOL(p##(254, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_254(s, p, o, m) NDNBOOST_PP_FOR_254_C(NDNBOOST_PP_BOOL(p##(255, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_255(s, p, o, m) NDNBOOST_PP_FOR_255_C(NDNBOOST_PP_BOOL(p##(256, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_256(s, p, o, m) NDNBOOST_PP_FOR_256_C(NDNBOOST_PP_BOOL(p##(257, s)), s, p, o, m)
 #
-# define BOOST_PP_FOR_1_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(2, s) BOOST_PP_IIF(c, BOOST_PP_FOR_2, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(2, s), p, o, m)
-# define BOOST_PP_FOR_2_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(3, s) BOOST_PP_IIF(c, BOOST_PP_FOR_3, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(3, s), p, o, m)
-# define BOOST_PP_FOR_3_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(4, s) BOOST_PP_IIF(c, BOOST_PP_FOR_4, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(4, s), p, o, m)
-# define BOOST_PP_FOR_4_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(5, s) BOOST_PP_IIF(c, BOOST_PP_FOR_5, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(5, s), p, o, m)
-# define BOOST_PP_FOR_5_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(6, s) BOOST_PP_IIF(c, BOOST_PP_FOR_6, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(6, s), p, o, m)
-# define BOOST_PP_FOR_6_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(7, s) BOOST_PP_IIF(c, BOOST_PP_FOR_7, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(7, s), p, o, m)
-# define BOOST_PP_FOR_7_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(8, s) BOOST_PP_IIF(c, BOOST_PP_FOR_8, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(8, s), p, o, m)
-# define BOOST_PP_FOR_8_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(9, s) BOOST_PP_IIF(c, BOOST_PP_FOR_9, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(9, s), p, o, m)
-# define BOOST_PP_FOR_9_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(10, s) BOOST_PP_IIF(c, BOOST_PP_FOR_10, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(10, s), p, o, m)
-# define BOOST_PP_FOR_10_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(11, s) BOOST_PP_IIF(c, BOOST_PP_FOR_11, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(11, s), p, o, m)
-# define BOOST_PP_FOR_11_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(12, s) BOOST_PP_IIF(c, BOOST_PP_FOR_12, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(12, s), p, o, m)
-# define BOOST_PP_FOR_12_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(13, s) BOOST_PP_IIF(c, BOOST_PP_FOR_13, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(13, s), p, o, m)
-# define BOOST_PP_FOR_13_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(14, s) BOOST_PP_IIF(c, BOOST_PP_FOR_14, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(14, s), p, o, m)
-# define BOOST_PP_FOR_14_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(15, s) BOOST_PP_IIF(c, BOOST_PP_FOR_15, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(15, s), p, o, m)
-# define BOOST_PP_FOR_15_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(16, s) BOOST_PP_IIF(c, BOOST_PP_FOR_16, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(16, s), p, o, m)
-# define BOOST_PP_FOR_16_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(17, s) BOOST_PP_IIF(c, BOOST_PP_FOR_17, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(17, s), p, o, m)
-# define BOOST_PP_FOR_17_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(18, s) BOOST_PP_IIF(c, BOOST_PP_FOR_18, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(18, s), p, o, m)
-# define BOOST_PP_FOR_18_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(19, s) BOOST_PP_IIF(c, BOOST_PP_FOR_19, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(19, s), p, o, m)
-# define BOOST_PP_FOR_19_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(20, s) BOOST_PP_IIF(c, BOOST_PP_FOR_20, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(20, s), p, o, m)
-# define BOOST_PP_FOR_20_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(21, s) BOOST_PP_IIF(c, BOOST_PP_FOR_21, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(21, s), p, o, m)
-# define BOOST_PP_FOR_21_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(22, s) BOOST_PP_IIF(c, BOOST_PP_FOR_22, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(22, s), p, o, m)
-# define BOOST_PP_FOR_22_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(23, s) BOOST_PP_IIF(c, BOOST_PP_FOR_23, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(23, s), p, o, m)
-# define BOOST_PP_FOR_23_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(24, s) BOOST_PP_IIF(c, BOOST_PP_FOR_24, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(24, s), p, o, m)
-# define BOOST_PP_FOR_24_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(25, s) BOOST_PP_IIF(c, BOOST_PP_FOR_25, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(25, s), p, o, m)
-# define BOOST_PP_FOR_25_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(26, s) BOOST_PP_IIF(c, BOOST_PP_FOR_26, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(26, s), p, o, m)
-# define BOOST_PP_FOR_26_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(27, s) BOOST_PP_IIF(c, BOOST_PP_FOR_27, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(27, s), p, o, m)
-# define BOOST_PP_FOR_27_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(28, s) BOOST_PP_IIF(c, BOOST_PP_FOR_28, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(28, s), p, o, m)
-# define BOOST_PP_FOR_28_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(29, s) BOOST_PP_IIF(c, BOOST_PP_FOR_29, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(29, s), p, o, m)
-# define BOOST_PP_FOR_29_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(30, s) BOOST_PP_IIF(c, BOOST_PP_FOR_30, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(30, s), p, o, m)
-# define BOOST_PP_FOR_30_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(31, s) BOOST_PP_IIF(c, BOOST_PP_FOR_31, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(31, s), p, o, m)
-# define BOOST_PP_FOR_31_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(32, s) BOOST_PP_IIF(c, BOOST_PP_FOR_32, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(32, s), p, o, m)
-# define BOOST_PP_FOR_32_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(33, s) BOOST_PP_IIF(c, BOOST_PP_FOR_33, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(33, s), p, o, m)
-# define BOOST_PP_FOR_33_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(34, s) BOOST_PP_IIF(c, BOOST_PP_FOR_34, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(34, s), p, o, m)
-# define BOOST_PP_FOR_34_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(35, s) BOOST_PP_IIF(c, BOOST_PP_FOR_35, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(35, s), p, o, m)
-# define BOOST_PP_FOR_35_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(36, s) BOOST_PP_IIF(c, BOOST_PP_FOR_36, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(36, s), p, o, m)
-# define BOOST_PP_FOR_36_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(37, s) BOOST_PP_IIF(c, BOOST_PP_FOR_37, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(37, s), p, o, m)
-# define BOOST_PP_FOR_37_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(38, s) BOOST_PP_IIF(c, BOOST_PP_FOR_38, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(38, s), p, o, m)
-# define BOOST_PP_FOR_38_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(39, s) BOOST_PP_IIF(c, BOOST_PP_FOR_39, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(39, s), p, o, m)
-# define BOOST_PP_FOR_39_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(40, s) BOOST_PP_IIF(c, BOOST_PP_FOR_40, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(40, s), p, o, m)
-# define BOOST_PP_FOR_40_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(41, s) BOOST_PP_IIF(c, BOOST_PP_FOR_41, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(41, s), p, o, m)
-# define BOOST_PP_FOR_41_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(42, s) BOOST_PP_IIF(c, BOOST_PP_FOR_42, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(42, s), p, o, m)
-# define BOOST_PP_FOR_42_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(43, s) BOOST_PP_IIF(c, BOOST_PP_FOR_43, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(43, s), p, o, m)
-# define BOOST_PP_FOR_43_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(44, s) BOOST_PP_IIF(c, BOOST_PP_FOR_44, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(44, s), p, o, m)
-# define BOOST_PP_FOR_44_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(45, s) BOOST_PP_IIF(c, BOOST_PP_FOR_45, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(45, s), p, o, m)
-# define BOOST_PP_FOR_45_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(46, s) BOOST_PP_IIF(c, BOOST_PP_FOR_46, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(46, s), p, o, m)
-# define BOOST_PP_FOR_46_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(47, s) BOOST_PP_IIF(c, BOOST_PP_FOR_47, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(47, s), p, o, m)
-# define BOOST_PP_FOR_47_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(48, s) BOOST_PP_IIF(c, BOOST_PP_FOR_48, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(48, s), p, o, m)
-# define BOOST_PP_FOR_48_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(49, s) BOOST_PP_IIF(c, BOOST_PP_FOR_49, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(49, s), p, o, m)
-# define BOOST_PP_FOR_49_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(50, s) BOOST_PP_IIF(c, BOOST_PP_FOR_50, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(50, s), p, o, m)
-# define BOOST_PP_FOR_50_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(51, s) BOOST_PP_IIF(c, BOOST_PP_FOR_51, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(51, s), p, o, m)
-# define BOOST_PP_FOR_51_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(52, s) BOOST_PP_IIF(c, BOOST_PP_FOR_52, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(52, s), p, o, m)
-# define BOOST_PP_FOR_52_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(53, s) BOOST_PP_IIF(c, BOOST_PP_FOR_53, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(53, s), p, o, m)
-# define BOOST_PP_FOR_53_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(54, s) BOOST_PP_IIF(c, BOOST_PP_FOR_54, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(54, s), p, o, m)
-# define BOOST_PP_FOR_54_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(55, s) BOOST_PP_IIF(c, BOOST_PP_FOR_55, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(55, s), p, o, m)
-# define BOOST_PP_FOR_55_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(56, s) BOOST_PP_IIF(c, BOOST_PP_FOR_56, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(56, s), p, o, m)
-# define BOOST_PP_FOR_56_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(57, s) BOOST_PP_IIF(c, BOOST_PP_FOR_57, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(57, s), p, o, m)
-# define BOOST_PP_FOR_57_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(58, s) BOOST_PP_IIF(c, BOOST_PP_FOR_58, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(58, s), p, o, m)
-# define BOOST_PP_FOR_58_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(59, s) BOOST_PP_IIF(c, BOOST_PP_FOR_59, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(59, s), p, o, m)
-# define BOOST_PP_FOR_59_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(60, s) BOOST_PP_IIF(c, BOOST_PP_FOR_60, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(60, s), p, o, m)
-# define BOOST_PP_FOR_60_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(61, s) BOOST_PP_IIF(c, BOOST_PP_FOR_61, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(61, s), p, o, m)
-# define BOOST_PP_FOR_61_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(62, s) BOOST_PP_IIF(c, BOOST_PP_FOR_62, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(62, s), p, o, m)
-# define BOOST_PP_FOR_62_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(63, s) BOOST_PP_IIF(c, BOOST_PP_FOR_63, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(63, s), p, o, m)
-# define BOOST_PP_FOR_63_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(64, s) BOOST_PP_IIF(c, BOOST_PP_FOR_64, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(64, s), p, o, m)
-# define BOOST_PP_FOR_64_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(65, s) BOOST_PP_IIF(c, BOOST_PP_FOR_65, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(65, s), p, o, m)
-# define BOOST_PP_FOR_65_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(66, s) BOOST_PP_IIF(c, BOOST_PP_FOR_66, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(66, s), p, o, m)
-# define BOOST_PP_FOR_66_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(67, s) BOOST_PP_IIF(c, BOOST_PP_FOR_67, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(67, s), p, o, m)
-# define BOOST_PP_FOR_67_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(68, s) BOOST_PP_IIF(c, BOOST_PP_FOR_68, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(68, s), p, o, m)
-# define BOOST_PP_FOR_68_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(69, s) BOOST_PP_IIF(c, BOOST_PP_FOR_69, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(69, s), p, o, m)
-# define BOOST_PP_FOR_69_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(70, s) BOOST_PP_IIF(c, BOOST_PP_FOR_70, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(70, s), p, o, m)
-# define BOOST_PP_FOR_70_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(71, s) BOOST_PP_IIF(c, BOOST_PP_FOR_71, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(71, s), p, o, m)
-# define BOOST_PP_FOR_71_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(72, s) BOOST_PP_IIF(c, BOOST_PP_FOR_72, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(72, s), p, o, m)
-# define BOOST_PP_FOR_72_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(73, s) BOOST_PP_IIF(c, BOOST_PP_FOR_73, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(73, s), p, o, m)
-# define BOOST_PP_FOR_73_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(74, s) BOOST_PP_IIF(c, BOOST_PP_FOR_74, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(74, s), p, o, m)
-# define BOOST_PP_FOR_74_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(75, s) BOOST_PP_IIF(c, BOOST_PP_FOR_75, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(75, s), p, o, m)
-# define BOOST_PP_FOR_75_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(76, s) BOOST_PP_IIF(c, BOOST_PP_FOR_76, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(76, s), p, o, m)
-# define BOOST_PP_FOR_76_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(77, s) BOOST_PP_IIF(c, BOOST_PP_FOR_77, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(77, s), p, o, m)
-# define BOOST_PP_FOR_77_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(78, s) BOOST_PP_IIF(c, BOOST_PP_FOR_78, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(78, s), p, o, m)
-# define BOOST_PP_FOR_78_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(79, s) BOOST_PP_IIF(c, BOOST_PP_FOR_79, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(79, s), p, o, m)
-# define BOOST_PP_FOR_79_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(80, s) BOOST_PP_IIF(c, BOOST_PP_FOR_80, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(80, s), p, o, m)
-# define BOOST_PP_FOR_80_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(81, s) BOOST_PP_IIF(c, BOOST_PP_FOR_81, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(81, s), p, o, m)
-# define BOOST_PP_FOR_81_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(82, s) BOOST_PP_IIF(c, BOOST_PP_FOR_82, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(82, s), p, o, m)
-# define BOOST_PP_FOR_82_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(83, s) BOOST_PP_IIF(c, BOOST_PP_FOR_83, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(83, s), p, o, m)
-# define BOOST_PP_FOR_83_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(84, s) BOOST_PP_IIF(c, BOOST_PP_FOR_84, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(84, s), p, o, m)
-# define BOOST_PP_FOR_84_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(85, s) BOOST_PP_IIF(c, BOOST_PP_FOR_85, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(85, s), p, o, m)
-# define BOOST_PP_FOR_85_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(86, s) BOOST_PP_IIF(c, BOOST_PP_FOR_86, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(86, s), p, o, m)
-# define BOOST_PP_FOR_86_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(87, s) BOOST_PP_IIF(c, BOOST_PP_FOR_87, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(87, s), p, o, m)
-# define BOOST_PP_FOR_87_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(88, s) BOOST_PP_IIF(c, BOOST_PP_FOR_88, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(88, s), p, o, m)
-# define BOOST_PP_FOR_88_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(89, s) BOOST_PP_IIF(c, BOOST_PP_FOR_89, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(89, s), p, o, m)
-# define BOOST_PP_FOR_89_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(90, s) BOOST_PP_IIF(c, BOOST_PP_FOR_90, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(90, s), p, o, m)
-# define BOOST_PP_FOR_90_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(91, s) BOOST_PP_IIF(c, BOOST_PP_FOR_91, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(91, s), p, o, m)
-# define BOOST_PP_FOR_91_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(92, s) BOOST_PP_IIF(c, BOOST_PP_FOR_92, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(92, s), p, o, m)
-# define BOOST_PP_FOR_92_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(93, s) BOOST_PP_IIF(c, BOOST_PP_FOR_93, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(93, s), p, o, m)
-# define BOOST_PP_FOR_93_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(94, s) BOOST_PP_IIF(c, BOOST_PP_FOR_94, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(94, s), p, o, m)
-# define BOOST_PP_FOR_94_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(95, s) BOOST_PP_IIF(c, BOOST_PP_FOR_95, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(95, s), p, o, m)
-# define BOOST_PP_FOR_95_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(96, s) BOOST_PP_IIF(c, BOOST_PP_FOR_96, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(96, s), p, o, m)
-# define BOOST_PP_FOR_96_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(97, s) BOOST_PP_IIF(c, BOOST_PP_FOR_97, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(97, s), p, o, m)
-# define BOOST_PP_FOR_97_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(98, s) BOOST_PP_IIF(c, BOOST_PP_FOR_98, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(98, s), p, o, m)
-# define BOOST_PP_FOR_98_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(99, s) BOOST_PP_IIF(c, BOOST_PP_FOR_99, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(99, s), p, o, m)
-# define BOOST_PP_FOR_99_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(100, s) BOOST_PP_IIF(c, BOOST_PP_FOR_100, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(100, s), p, o, m)
-# define BOOST_PP_FOR_100_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(101, s) BOOST_PP_IIF(c, BOOST_PP_FOR_101, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(101, s), p, o, m)
-# define BOOST_PP_FOR_101_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(102, s) BOOST_PP_IIF(c, BOOST_PP_FOR_102, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(102, s), p, o, m)
-# define BOOST_PP_FOR_102_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(103, s) BOOST_PP_IIF(c, BOOST_PP_FOR_103, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(103, s), p, o, m)
-# define BOOST_PP_FOR_103_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(104, s) BOOST_PP_IIF(c, BOOST_PP_FOR_104, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(104, s), p, o, m)
-# define BOOST_PP_FOR_104_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(105, s) BOOST_PP_IIF(c, BOOST_PP_FOR_105, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(105, s), p, o, m)
-# define BOOST_PP_FOR_105_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(106, s) BOOST_PP_IIF(c, BOOST_PP_FOR_106, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(106, s), p, o, m)
-# define BOOST_PP_FOR_106_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(107, s) BOOST_PP_IIF(c, BOOST_PP_FOR_107, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(107, s), p, o, m)
-# define BOOST_PP_FOR_107_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(108, s) BOOST_PP_IIF(c, BOOST_PP_FOR_108, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(108, s), p, o, m)
-# define BOOST_PP_FOR_108_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(109, s) BOOST_PP_IIF(c, BOOST_PP_FOR_109, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(109, s), p, o, m)
-# define BOOST_PP_FOR_109_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(110, s) BOOST_PP_IIF(c, BOOST_PP_FOR_110, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(110, s), p, o, m)
-# define BOOST_PP_FOR_110_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(111, s) BOOST_PP_IIF(c, BOOST_PP_FOR_111, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(111, s), p, o, m)
-# define BOOST_PP_FOR_111_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(112, s) BOOST_PP_IIF(c, BOOST_PP_FOR_112, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(112, s), p, o, m)
-# define BOOST_PP_FOR_112_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(113, s) BOOST_PP_IIF(c, BOOST_PP_FOR_113, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(113, s), p, o, m)
-# define BOOST_PP_FOR_113_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(114, s) BOOST_PP_IIF(c, BOOST_PP_FOR_114, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(114, s), p, o, m)
-# define BOOST_PP_FOR_114_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(115, s) BOOST_PP_IIF(c, BOOST_PP_FOR_115, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(115, s), p, o, m)
-# define BOOST_PP_FOR_115_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(116, s) BOOST_PP_IIF(c, BOOST_PP_FOR_116, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(116, s), p, o, m)
-# define BOOST_PP_FOR_116_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(117, s) BOOST_PP_IIF(c, BOOST_PP_FOR_117, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(117, s), p, o, m)
-# define BOOST_PP_FOR_117_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(118, s) BOOST_PP_IIF(c, BOOST_PP_FOR_118, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(118, s), p, o, m)
-# define BOOST_PP_FOR_118_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(119, s) BOOST_PP_IIF(c, BOOST_PP_FOR_119, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(119, s), p, o, m)
-# define BOOST_PP_FOR_119_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(120, s) BOOST_PP_IIF(c, BOOST_PP_FOR_120, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(120, s), p, o, m)
-# define BOOST_PP_FOR_120_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(121, s) BOOST_PP_IIF(c, BOOST_PP_FOR_121, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(121, s), p, o, m)
-# define BOOST_PP_FOR_121_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(122, s) BOOST_PP_IIF(c, BOOST_PP_FOR_122, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(122, s), p, o, m)
-# define BOOST_PP_FOR_122_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(123, s) BOOST_PP_IIF(c, BOOST_PP_FOR_123, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(123, s), p, o, m)
-# define BOOST_PP_FOR_123_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(124, s) BOOST_PP_IIF(c, BOOST_PP_FOR_124, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(124, s), p, o, m)
-# define BOOST_PP_FOR_124_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(125, s) BOOST_PP_IIF(c, BOOST_PP_FOR_125, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(125, s), p, o, m)
-# define BOOST_PP_FOR_125_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(126, s) BOOST_PP_IIF(c, BOOST_PP_FOR_126, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(126, s), p, o, m)
-# define BOOST_PP_FOR_126_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(127, s) BOOST_PP_IIF(c, BOOST_PP_FOR_127, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(127, s), p, o, m)
-# define BOOST_PP_FOR_127_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(128, s) BOOST_PP_IIF(c, BOOST_PP_FOR_128, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(128, s), p, o, m)
-# define BOOST_PP_FOR_128_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(129, s) BOOST_PP_IIF(c, BOOST_PP_FOR_129, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(129, s), p, o, m)
-# define BOOST_PP_FOR_129_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(130, s) BOOST_PP_IIF(c, BOOST_PP_FOR_130, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(130, s), p, o, m)
-# define BOOST_PP_FOR_130_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(131, s) BOOST_PP_IIF(c, BOOST_PP_FOR_131, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(131, s), p, o, m)
-# define BOOST_PP_FOR_131_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(132, s) BOOST_PP_IIF(c, BOOST_PP_FOR_132, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(132, s), p, o, m)
-# define BOOST_PP_FOR_132_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(133, s) BOOST_PP_IIF(c, BOOST_PP_FOR_133, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(133, s), p, o, m)
-# define BOOST_PP_FOR_133_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(134, s) BOOST_PP_IIF(c, BOOST_PP_FOR_134, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(134, s), p, o, m)
-# define BOOST_PP_FOR_134_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(135, s) BOOST_PP_IIF(c, BOOST_PP_FOR_135, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(135, s), p, o, m)
-# define BOOST_PP_FOR_135_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(136, s) BOOST_PP_IIF(c, BOOST_PP_FOR_136, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(136, s), p, o, m)
-# define BOOST_PP_FOR_136_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(137, s) BOOST_PP_IIF(c, BOOST_PP_FOR_137, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(137, s), p, o, m)
-# define BOOST_PP_FOR_137_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(138, s) BOOST_PP_IIF(c, BOOST_PP_FOR_138, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(138, s), p, o, m)
-# define BOOST_PP_FOR_138_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(139, s) BOOST_PP_IIF(c, BOOST_PP_FOR_139, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(139, s), p, o, m)
-# define BOOST_PP_FOR_139_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(140, s) BOOST_PP_IIF(c, BOOST_PP_FOR_140, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(140, s), p, o, m)
-# define BOOST_PP_FOR_140_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(141, s) BOOST_PP_IIF(c, BOOST_PP_FOR_141, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(141, s), p, o, m)
-# define BOOST_PP_FOR_141_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(142, s) BOOST_PP_IIF(c, BOOST_PP_FOR_142, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(142, s), p, o, m)
-# define BOOST_PP_FOR_142_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(143, s) BOOST_PP_IIF(c, BOOST_PP_FOR_143, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(143, s), p, o, m)
-# define BOOST_PP_FOR_143_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(144, s) BOOST_PP_IIF(c, BOOST_PP_FOR_144, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(144, s), p, o, m)
-# define BOOST_PP_FOR_144_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(145, s) BOOST_PP_IIF(c, BOOST_PP_FOR_145, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(145, s), p, o, m)
-# define BOOST_PP_FOR_145_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(146, s) BOOST_PP_IIF(c, BOOST_PP_FOR_146, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(146, s), p, o, m)
-# define BOOST_PP_FOR_146_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(147, s) BOOST_PP_IIF(c, BOOST_PP_FOR_147, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(147, s), p, o, m)
-# define BOOST_PP_FOR_147_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(148, s) BOOST_PP_IIF(c, BOOST_PP_FOR_148, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(148, s), p, o, m)
-# define BOOST_PP_FOR_148_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(149, s) BOOST_PP_IIF(c, BOOST_PP_FOR_149, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(149, s), p, o, m)
-# define BOOST_PP_FOR_149_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(150, s) BOOST_PP_IIF(c, BOOST_PP_FOR_150, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(150, s), p, o, m)
-# define BOOST_PP_FOR_150_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(151, s) BOOST_PP_IIF(c, BOOST_PP_FOR_151, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(151, s), p, o, m)
-# define BOOST_PP_FOR_151_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(152, s) BOOST_PP_IIF(c, BOOST_PP_FOR_152, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(152, s), p, o, m)
-# define BOOST_PP_FOR_152_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(153, s) BOOST_PP_IIF(c, BOOST_PP_FOR_153, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(153, s), p, o, m)
-# define BOOST_PP_FOR_153_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(154, s) BOOST_PP_IIF(c, BOOST_PP_FOR_154, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(154, s), p, o, m)
-# define BOOST_PP_FOR_154_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(155, s) BOOST_PP_IIF(c, BOOST_PP_FOR_155, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(155, s), p, o, m)
-# define BOOST_PP_FOR_155_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(156, s) BOOST_PP_IIF(c, BOOST_PP_FOR_156, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(156, s), p, o, m)
-# define BOOST_PP_FOR_156_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(157, s) BOOST_PP_IIF(c, BOOST_PP_FOR_157, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(157, s), p, o, m)
-# define BOOST_PP_FOR_157_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(158, s) BOOST_PP_IIF(c, BOOST_PP_FOR_158, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(158, s), p, o, m)
-# define BOOST_PP_FOR_158_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(159, s) BOOST_PP_IIF(c, BOOST_PP_FOR_159, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(159, s), p, o, m)
-# define BOOST_PP_FOR_159_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(160, s) BOOST_PP_IIF(c, BOOST_PP_FOR_160, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(160, s), p, o, m)
-# define BOOST_PP_FOR_160_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(161, s) BOOST_PP_IIF(c, BOOST_PP_FOR_161, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(161, s), p, o, m)
-# define BOOST_PP_FOR_161_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(162, s) BOOST_PP_IIF(c, BOOST_PP_FOR_162, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(162, s), p, o, m)
-# define BOOST_PP_FOR_162_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(163, s) BOOST_PP_IIF(c, BOOST_PP_FOR_163, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(163, s), p, o, m)
-# define BOOST_PP_FOR_163_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(164, s) BOOST_PP_IIF(c, BOOST_PP_FOR_164, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(164, s), p, o, m)
-# define BOOST_PP_FOR_164_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(165, s) BOOST_PP_IIF(c, BOOST_PP_FOR_165, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(165, s), p, o, m)
-# define BOOST_PP_FOR_165_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(166, s) BOOST_PP_IIF(c, BOOST_PP_FOR_166, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(166, s), p, o, m)
-# define BOOST_PP_FOR_166_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(167, s) BOOST_PP_IIF(c, BOOST_PP_FOR_167, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(167, s), p, o, m)
-# define BOOST_PP_FOR_167_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(168, s) BOOST_PP_IIF(c, BOOST_PP_FOR_168, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(168, s), p, o, m)
-# define BOOST_PP_FOR_168_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(169, s) BOOST_PP_IIF(c, BOOST_PP_FOR_169, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(169, s), p, o, m)
-# define BOOST_PP_FOR_169_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(170, s) BOOST_PP_IIF(c, BOOST_PP_FOR_170, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(170, s), p, o, m)
-# define BOOST_PP_FOR_170_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(171, s) BOOST_PP_IIF(c, BOOST_PP_FOR_171, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(171, s), p, o, m)
-# define BOOST_PP_FOR_171_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(172, s) BOOST_PP_IIF(c, BOOST_PP_FOR_172, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(172, s), p, o, m)
-# define BOOST_PP_FOR_172_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(173, s) BOOST_PP_IIF(c, BOOST_PP_FOR_173, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(173, s), p, o, m)
-# define BOOST_PP_FOR_173_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(174, s) BOOST_PP_IIF(c, BOOST_PP_FOR_174, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(174, s), p, o, m)
-# define BOOST_PP_FOR_174_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(175, s) BOOST_PP_IIF(c, BOOST_PP_FOR_175, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(175, s), p, o, m)
-# define BOOST_PP_FOR_175_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(176, s) BOOST_PP_IIF(c, BOOST_PP_FOR_176, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(176, s), p, o, m)
-# define BOOST_PP_FOR_176_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(177, s) BOOST_PP_IIF(c, BOOST_PP_FOR_177, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(177, s), p, o, m)
-# define BOOST_PP_FOR_177_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(178, s) BOOST_PP_IIF(c, BOOST_PP_FOR_178, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(178, s), p, o, m)
-# define BOOST_PP_FOR_178_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(179, s) BOOST_PP_IIF(c, BOOST_PP_FOR_179, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(179, s), p, o, m)
-# define BOOST_PP_FOR_179_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(180, s) BOOST_PP_IIF(c, BOOST_PP_FOR_180, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(180, s), p, o, m)
-# define BOOST_PP_FOR_180_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(181, s) BOOST_PP_IIF(c, BOOST_PP_FOR_181, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(181, s), p, o, m)
-# define BOOST_PP_FOR_181_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(182, s) BOOST_PP_IIF(c, BOOST_PP_FOR_182, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(182, s), p, o, m)
-# define BOOST_PP_FOR_182_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(183, s) BOOST_PP_IIF(c, BOOST_PP_FOR_183, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(183, s), p, o, m)
-# define BOOST_PP_FOR_183_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(184, s) BOOST_PP_IIF(c, BOOST_PP_FOR_184, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(184, s), p, o, m)
-# define BOOST_PP_FOR_184_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(185, s) BOOST_PP_IIF(c, BOOST_PP_FOR_185, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(185, s), p, o, m)
-# define BOOST_PP_FOR_185_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(186, s) BOOST_PP_IIF(c, BOOST_PP_FOR_186, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(186, s), p, o, m)
-# define BOOST_PP_FOR_186_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(187, s) BOOST_PP_IIF(c, BOOST_PP_FOR_187, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(187, s), p, o, m)
-# define BOOST_PP_FOR_187_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(188, s) BOOST_PP_IIF(c, BOOST_PP_FOR_188, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(188, s), p, o, m)
-# define BOOST_PP_FOR_188_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(189, s) BOOST_PP_IIF(c, BOOST_PP_FOR_189, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(189, s), p, o, m)
-# define BOOST_PP_FOR_189_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(190, s) BOOST_PP_IIF(c, BOOST_PP_FOR_190, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(190, s), p, o, m)
-# define BOOST_PP_FOR_190_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(191, s) BOOST_PP_IIF(c, BOOST_PP_FOR_191, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(191, s), p, o, m)
-# define BOOST_PP_FOR_191_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(192, s) BOOST_PP_IIF(c, BOOST_PP_FOR_192, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(192, s), p, o, m)
-# define BOOST_PP_FOR_192_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(193, s) BOOST_PP_IIF(c, BOOST_PP_FOR_193, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(193, s), p, o, m)
-# define BOOST_PP_FOR_193_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(194, s) BOOST_PP_IIF(c, BOOST_PP_FOR_194, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(194, s), p, o, m)
-# define BOOST_PP_FOR_194_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(195, s) BOOST_PP_IIF(c, BOOST_PP_FOR_195, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(195, s), p, o, m)
-# define BOOST_PP_FOR_195_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(196, s) BOOST_PP_IIF(c, BOOST_PP_FOR_196, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(196, s), p, o, m)
-# define BOOST_PP_FOR_196_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(197, s) BOOST_PP_IIF(c, BOOST_PP_FOR_197, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(197, s), p, o, m)
-# define BOOST_PP_FOR_197_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(198, s) BOOST_PP_IIF(c, BOOST_PP_FOR_198, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(198, s), p, o, m)
-# define BOOST_PP_FOR_198_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(199, s) BOOST_PP_IIF(c, BOOST_PP_FOR_199, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(199, s), p, o, m)
-# define BOOST_PP_FOR_199_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(200, s) BOOST_PP_IIF(c, BOOST_PP_FOR_200, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(200, s), p, o, m)
-# define BOOST_PP_FOR_200_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(201, s) BOOST_PP_IIF(c, BOOST_PP_FOR_201, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(201, s), p, o, m)
-# define BOOST_PP_FOR_201_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(202, s) BOOST_PP_IIF(c, BOOST_PP_FOR_202, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(202, s), p, o, m)
-# define BOOST_PP_FOR_202_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(203, s) BOOST_PP_IIF(c, BOOST_PP_FOR_203, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(203, s), p, o, m)
-# define BOOST_PP_FOR_203_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(204, s) BOOST_PP_IIF(c, BOOST_PP_FOR_204, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(204, s), p, o, m)
-# define BOOST_PP_FOR_204_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(205, s) BOOST_PP_IIF(c, BOOST_PP_FOR_205, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(205, s), p, o, m)
-# define BOOST_PP_FOR_205_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(206, s) BOOST_PP_IIF(c, BOOST_PP_FOR_206, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(206, s), p, o, m)
-# define BOOST_PP_FOR_206_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(207, s) BOOST_PP_IIF(c, BOOST_PP_FOR_207, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(207, s), p, o, m)
-# define BOOST_PP_FOR_207_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(208, s) BOOST_PP_IIF(c, BOOST_PP_FOR_208, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(208, s), p, o, m)
-# define BOOST_PP_FOR_208_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(209, s) BOOST_PP_IIF(c, BOOST_PP_FOR_209, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(209, s), p, o, m)
-# define BOOST_PP_FOR_209_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(210, s) BOOST_PP_IIF(c, BOOST_PP_FOR_210, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(210, s), p, o, m)
-# define BOOST_PP_FOR_210_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(211, s) BOOST_PP_IIF(c, BOOST_PP_FOR_211, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(211, s), p, o, m)
-# define BOOST_PP_FOR_211_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(212, s) BOOST_PP_IIF(c, BOOST_PP_FOR_212, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(212, s), p, o, m)
-# define BOOST_PP_FOR_212_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(213, s) BOOST_PP_IIF(c, BOOST_PP_FOR_213, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(213, s), p, o, m)
-# define BOOST_PP_FOR_213_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(214, s) BOOST_PP_IIF(c, BOOST_PP_FOR_214, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(214, s), p, o, m)
-# define BOOST_PP_FOR_214_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(215, s) BOOST_PP_IIF(c, BOOST_PP_FOR_215, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(215, s), p, o, m)
-# define BOOST_PP_FOR_215_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(216, s) BOOST_PP_IIF(c, BOOST_PP_FOR_216, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(216, s), p, o, m)
-# define BOOST_PP_FOR_216_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(217, s) BOOST_PP_IIF(c, BOOST_PP_FOR_217, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(217, s), p, o, m)
-# define BOOST_PP_FOR_217_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(218, s) BOOST_PP_IIF(c, BOOST_PP_FOR_218, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(218, s), p, o, m)
-# define BOOST_PP_FOR_218_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(219, s) BOOST_PP_IIF(c, BOOST_PP_FOR_219, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(219, s), p, o, m)
-# define BOOST_PP_FOR_219_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(220, s) BOOST_PP_IIF(c, BOOST_PP_FOR_220, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(220, s), p, o, m)
-# define BOOST_PP_FOR_220_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(221, s) BOOST_PP_IIF(c, BOOST_PP_FOR_221, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(221, s), p, o, m)
-# define BOOST_PP_FOR_221_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(222, s) BOOST_PP_IIF(c, BOOST_PP_FOR_222, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(222, s), p, o, m)
-# define BOOST_PP_FOR_222_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(223, s) BOOST_PP_IIF(c, BOOST_PP_FOR_223, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(223, s), p, o, m)
-# define BOOST_PP_FOR_223_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(224, s) BOOST_PP_IIF(c, BOOST_PP_FOR_224, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(224, s), p, o, m)
-# define BOOST_PP_FOR_224_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(225, s) BOOST_PP_IIF(c, BOOST_PP_FOR_225, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(225, s), p, o, m)
-# define BOOST_PP_FOR_225_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(226, s) BOOST_PP_IIF(c, BOOST_PP_FOR_226, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(226, s), p, o, m)
-# define BOOST_PP_FOR_226_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(227, s) BOOST_PP_IIF(c, BOOST_PP_FOR_227, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(227, s), p, o, m)
-# define BOOST_PP_FOR_227_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(228, s) BOOST_PP_IIF(c, BOOST_PP_FOR_228, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(228, s), p, o, m)
-# define BOOST_PP_FOR_228_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(229, s) BOOST_PP_IIF(c, BOOST_PP_FOR_229, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(229, s), p, o, m)
-# define BOOST_PP_FOR_229_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(230, s) BOOST_PP_IIF(c, BOOST_PP_FOR_230, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(230, s), p, o, m)
-# define BOOST_PP_FOR_230_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(231, s) BOOST_PP_IIF(c, BOOST_PP_FOR_231, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(231, s), p, o, m)
-# define BOOST_PP_FOR_231_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(232, s) BOOST_PP_IIF(c, BOOST_PP_FOR_232, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(232, s), p, o, m)
-# define BOOST_PP_FOR_232_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(233, s) BOOST_PP_IIF(c, BOOST_PP_FOR_233, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(233, s), p, o, m)
-# define BOOST_PP_FOR_233_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(234, s) BOOST_PP_IIF(c, BOOST_PP_FOR_234, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(234, s), p, o, m)
-# define BOOST_PP_FOR_234_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(235, s) BOOST_PP_IIF(c, BOOST_PP_FOR_235, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(235, s), p, o, m)
-# define BOOST_PP_FOR_235_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(236, s) BOOST_PP_IIF(c, BOOST_PP_FOR_236, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(236, s), p, o, m)
-# define BOOST_PP_FOR_236_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(237, s) BOOST_PP_IIF(c, BOOST_PP_FOR_237, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(237, s), p, o, m)
-# define BOOST_PP_FOR_237_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(238, s) BOOST_PP_IIF(c, BOOST_PP_FOR_238, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(238, s), p, o, m)
-# define BOOST_PP_FOR_238_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(239, s) BOOST_PP_IIF(c, BOOST_PP_FOR_239, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(239, s), p, o, m)
-# define BOOST_PP_FOR_239_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(240, s) BOOST_PP_IIF(c, BOOST_PP_FOR_240, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(240, s), p, o, m)
-# define BOOST_PP_FOR_240_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(241, s) BOOST_PP_IIF(c, BOOST_PP_FOR_241, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(241, s), p, o, m)
-# define BOOST_PP_FOR_241_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(242, s) BOOST_PP_IIF(c, BOOST_PP_FOR_242, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(242, s), p, o, m)
-# define BOOST_PP_FOR_242_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(243, s) BOOST_PP_IIF(c, BOOST_PP_FOR_243, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(243, s), p, o, m)
-# define BOOST_PP_FOR_243_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(244, s) BOOST_PP_IIF(c, BOOST_PP_FOR_244, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(244, s), p, o, m)
-# define BOOST_PP_FOR_244_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(245, s) BOOST_PP_IIF(c, BOOST_PP_FOR_245, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(245, s), p, o, m)
-# define BOOST_PP_FOR_245_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(246, s) BOOST_PP_IIF(c, BOOST_PP_FOR_246, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(246, s), p, o, m)
-# define BOOST_PP_FOR_246_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(247, s) BOOST_PP_IIF(c, BOOST_PP_FOR_247, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(247, s), p, o, m)
-# define BOOST_PP_FOR_247_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(248, s) BOOST_PP_IIF(c, BOOST_PP_FOR_248, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(248, s), p, o, m)
-# define BOOST_PP_FOR_248_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(249, s) BOOST_PP_IIF(c, BOOST_PP_FOR_249, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(249, s), p, o, m)
-# define BOOST_PP_FOR_249_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(250, s) BOOST_PP_IIF(c, BOOST_PP_FOR_250, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(250, s), p, o, m)
-# define BOOST_PP_FOR_250_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(251, s) BOOST_PP_IIF(c, BOOST_PP_FOR_251, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(251, s), p, o, m)
-# define BOOST_PP_FOR_251_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(252, s) BOOST_PP_IIF(c, BOOST_PP_FOR_252, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(252, s), p, o, m)
-# define BOOST_PP_FOR_252_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(253, s) BOOST_PP_IIF(c, BOOST_PP_FOR_253, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(253, s), p, o, m)
-# define BOOST_PP_FOR_253_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(254, s) BOOST_PP_IIF(c, BOOST_PP_FOR_254, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(254, s), p, o, m)
-# define BOOST_PP_FOR_254_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(255, s) BOOST_PP_IIF(c, BOOST_PP_FOR_255, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(255, s), p, o, m)
-# define BOOST_PP_FOR_255_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(256, s) BOOST_PP_IIF(c, BOOST_PP_FOR_256, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(256, s), p, o, m)
-# define BOOST_PP_FOR_256_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(257, s) BOOST_PP_IIF(c, BOOST_PP_FOR_257, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(257, s), p, o, m)
+# define NDNBOOST_PP_FOR_1_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(2, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_2, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(2, s), p, o, m)
+# define NDNBOOST_PP_FOR_2_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(3, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_3, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(3, s), p, o, m)
+# define NDNBOOST_PP_FOR_3_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(4, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_4, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(4, s), p, o, m)
+# define NDNBOOST_PP_FOR_4_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(5, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_5, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(5, s), p, o, m)
+# define NDNBOOST_PP_FOR_5_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(6, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_6, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(6, s), p, o, m)
+# define NDNBOOST_PP_FOR_6_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(7, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_7, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(7, s), p, o, m)
+# define NDNBOOST_PP_FOR_7_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(8, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_8, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(8, s), p, o, m)
+# define NDNBOOST_PP_FOR_8_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(9, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_9, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(9, s), p, o, m)
+# define NDNBOOST_PP_FOR_9_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(10, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_10, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(10, s), p, o, m)
+# define NDNBOOST_PP_FOR_10_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(11, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_11, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(11, s), p, o, m)
+# define NDNBOOST_PP_FOR_11_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(12, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_12, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(12, s), p, o, m)
+# define NDNBOOST_PP_FOR_12_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(13, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_13, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(13, s), p, o, m)
+# define NDNBOOST_PP_FOR_13_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(14, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_14, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(14, s), p, o, m)
+# define NDNBOOST_PP_FOR_14_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(15, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_15, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(15, s), p, o, m)
+# define NDNBOOST_PP_FOR_15_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(16, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_16, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(16, s), p, o, m)
+# define NDNBOOST_PP_FOR_16_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(17, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_17, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(17, s), p, o, m)
+# define NDNBOOST_PP_FOR_17_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(18, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_18, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(18, s), p, o, m)
+# define NDNBOOST_PP_FOR_18_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(19, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_19, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(19, s), p, o, m)
+# define NDNBOOST_PP_FOR_19_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(20, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_20, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(20, s), p, o, m)
+# define NDNBOOST_PP_FOR_20_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(21, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_21, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(21, s), p, o, m)
+# define NDNBOOST_PP_FOR_21_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(22, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_22, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(22, s), p, o, m)
+# define NDNBOOST_PP_FOR_22_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(23, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_23, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(23, s), p, o, m)
+# define NDNBOOST_PP_FOR_23_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(24, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_24, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(24, s), p, o, m)
+# define NDNBOOST_PP_FOR_24_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(25, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_25, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(25, s), p, o, m)
+# define NDNBOOST_PP_FOR_25_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(26, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_26, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(26, s), p, o, m)
+# define NDNBOOST_PP_FOR_26_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(27, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_27, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(27, s), p, o, m)
+# define NDNBOOST_PP_FOR_27_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(28, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_28, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(28, s), p, o, m)
+# define NDNBOOST_PP_FOR_28_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(29, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_29, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(29, s), p, o, m)
+# define NDNBOOST_PP_FOR_29_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(30, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_30, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(30, s), p, o, m)
+# define NDNBOOST_PP_FOR_30_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(31, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_31, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(31, s), p, o, m)
+# define NDNBOOST_PP_FOR_31_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(32, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_32, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(32, s), p, o, m)
+# define NDNBOOST_PP_FOR_32_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(33, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_33, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(33, s), p, o, m)
+# define NDNBOOST_PP_FOR_33_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(34, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_34, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(34, s), p, o, m)
+# define NDNBOOST_PP_FOR_34_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(35, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_35, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(35, s), p, o, m)
+# define NDNBOOST_PP_FOR_35_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(36, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_36, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(36, s), p, o, m)
+# define NDNBOOST_PP_FOR_36_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(37, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_37, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(37, s), p, o, m)
+# define NDNBOOST_PP_FOR_37_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(38, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_38, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(38, s), p, o, m)
+# define NDNBOOST_PP_FOR_38_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(39, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_39, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(39, s), p, o, m)
+# define NDNBOOST_PP_FOR_39_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(40, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_40, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(40, s), p, o, m)
+# define NDNBOOST_PP_FOR_40_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(41, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_41, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(41, s), p, o, m)
+# define NDNBOOST_PP_FOR_41_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(42, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_42, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(42, s), p, o, m)
+# define NDNBOOST_PP_FOR_42_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(43, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_43, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(43, s), p, o, m)
+# define NDNBOOST_PP_FOR_43_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(44, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_44, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(44, s), p, o, m)
+# define NDNBOOST_PP_FOR_44_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(45, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_45, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(45, s), p, o, m)
+# define NDNBOOST_PP_FOR_45_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(46, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_46, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(46, s), p, o, m)
+# define NDNBOOST_PP_FOR_46_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(47, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_47, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(47, s), p, o, m)
+# define NDNBOOST_PP_FOR_47_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(48, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_48, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(48, s), p, o, m)
+# define NDNBOOST_PP_FOR_48_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(49, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_49, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(49, s), p, o, m)
+# define NDNBOOST_PP_FOR_49_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(50, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_50, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(50, s), p, o, m)
+# define NDNBOOST_PP_FOR_50_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(51, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_51, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(51, s), p, o, m)
+# define NDNBOOST_PP_FOR_51_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(52, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_52, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(52, s), p, o, m)
+# define NDNBOOST_PP_FOR_52_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(53, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_53, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(53, s), p, o, m)
+# define NDNBOOST_PP_FOR_53_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(54, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_54, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(54, s), p, o, m)
+# define NDNBOOST_PP_FOR_54_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(55, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_55, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(55, s), p, o, m)
+# define NDNBOOST_PP_FOR_55_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(56, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_56, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(56, s), p, o, m)
+# define NDNBOOST_PP_FOR_56_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(57, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_57, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(57, s), p, o, m)
+# define NDNBOOST_PP_FOR_57_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(58, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_58, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(58, s), p, o, m)
+# define NDNBOOST_PP_FOR_58_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(59, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_59, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(59, s), p, o, m)
+# define NDNBOOST_PP_FOR_59_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(60, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_60, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(60, s), p, o, m)
+# define NDNBOOST_PP_FOR_60_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(61, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_61, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(61, s), p, o, m)
+# define NDNBOOST_PP_FOR_61_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(62, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_62, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(62, s), p, o, m)
+# define NDNBOOST_PP_FOR_62_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(63, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_63, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(63, s), p, o, m)
+# define NDNBOOST_PP_FOR_63_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(64, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_64, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(64, s), p, o, m)
+# define NDNBOOST_PP_FOR_64_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(65, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_65, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(65, s), p, o, m)
+# define NDNBOOST_PP_FOR_65_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(66, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_66, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(66, s), p, o, m)
+# define NDNBOOST_PP_FOR_66_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(67, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_67, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(67, s), p, o, m)
+# define NDNBOOST_PP_FOR_67_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(68, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_68, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(68, s), p, o, m)
+# define NDNBOOST_PP_FOR_68_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(69, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_69, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(69, s), p, o, m)
+# define NDNBOOST_PP_FOR_69_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(70, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_70, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(70, s), p, o, m)
+# define NDNBOOST_PP_FOR_70_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(71, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_71, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(71, s), p, o, m)
+# define NDNBOOST_PP_FOR_71_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(72, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_72, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(72, s), p, o, m)
+# define NDNBOOST_PP_FOR_72_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(73, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_73, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(73, s), p, o, m)
+# define NDNBOOST_PP_FOR_73_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(74, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_74, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(74, s), p, o, m)
+# define NDNBOOST_PP_FOR_74_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(75, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_75, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(75, s), p, o, m)
+# define NDNBOOST_PP_FOR_75_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(76, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_76, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(76, s), p, o, m)
+# define NDNBOOST_PP_FOR_76_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(77, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_77, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(77, s), p, o, m)
+# define NDNBOOST_PP_FOR_77_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(78, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_78, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(78, s), p, o, m)
+# define NDNBOOST_PP_FOR_78_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(79, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_79, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(79, s), p, o, m)
+# define NDNBOOST_PP_FOR_79_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(80, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_80, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(80, s), p, o, m)
+# define NDNBOOST_PP_FOR_80_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(81, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_81, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(81, s), p, o, m)
+# define NDNBOOST_PP_FOR_81_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(82, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_82, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(82, s), p, o, m)
+# define NDNBOOST_PP_FOR_82_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(83, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_83, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(83, s), p, o, m)
+# define NDNBOOST_PP_FOR_83_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(84, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_84, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(84, s), p, o, m)
+# define NDNBOOST_PP_FOR_84_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(85, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_85, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(85, s), p, o, m)
+# define NDNBOOST_PP_FOR_85_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(86, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_86, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(86, s), p, o, m)
+# define NDNBOOST_PP_FOR_86_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(87, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_87, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(87, s), p, o, m)
+# define NDNBOOST_PP_FOR_87_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(88, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_88, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(88, s), p, o, m)
+# define NDNBOOST_PP_FOR_88_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(89, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_89, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(89, s), p, o, m)
+# define NDNBOOST_PP_FOR_89_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(90, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_90, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(90, s), p, o, m)
+# define NDNBOOST_PP_FOR_90_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(91, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_91, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(91, s), p, o, m)
+# define NDNBOOST_PP_FOR_91_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(92, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_92, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(92, s), p, o, m)
+# define NDNBOOST_PP_FOR_92_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(93, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_93, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(93, s), p, o, m)
+# define NDNBOOST_PP_FOR_93_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(94, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_94, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(94, s), p, o, m)
+# define NDNBOOST_PP_FOR_94_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(95, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_95, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(95, s), p, o, m)
+# define NDNBOOST_PP_FOR_95_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(96, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_96, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(96, s), p, o, m)
+# define NDNBOOST_PP_FOR_96_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(97, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_97, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(97, s), p, o, m)
+# define NDNBOOST_PP_FOR_97_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(98, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_98, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(98, s), p, o, m)
+# define NDNBOOST_PP_FOR_98_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(99, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_99, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(99, s), p, o, m)
+# define NDNBOOST_PP_FOR_99_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(100, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_100, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(100, s), p, o, m)
+# define NDNBOOST_PP_FOR_100_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(101, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_101, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(101, s), p, o, m)
+# define NDNBOOST_PP_FOR_101_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(102, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_102, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(102, s), p, o, m)
+# define NDNBOOST_PP_FOR_102_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(103, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_103, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(103, s), p, o, m)
+# define NDNBOOST_PP_FOR_103_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(104, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_104, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(104, s), p, o, m)
+# define NDNBOOST_PP_FOR_104_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(105, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_105, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(105, s), p, o, m)
+# define NDNBOOST_PP_FOR_105_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(106, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_106, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(106, s), p, o, m)
+# define NDNBOOST_PP_FOR_106_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(107, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_107, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(107, s), p, o, m)
+# define NDNBOOST_PP_FOR_107_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(108, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_108, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(108, s), p, o, m)
+# define NDNBOOST_PP_FOR_108_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(109, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_109, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(109, s), p, o, m)
+# define NDNBOOST_PP_FOR_109_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(110, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_110, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(110, s), p, o, m)
+# define NDNBOOST_PP_FOR_110_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(111, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_111, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(111, s), p, o, m)
+# define NDNBOOST_PP_FOR_111_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(112, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_112, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(112, s), p, o, m)
+# define NDNBOOST_PP_FOR_112_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(113, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_113, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(113, s), p, o, m)
+# define NDNBOOST_PP_FOR_113_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(114, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_114, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(114, s), p, o, m)
+# define NDNBOOST_PP_FOR_114_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(115, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_115, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(115, s), p, o, m)
+# define NDNBOOST_PP_FOR_115_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(116, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_116, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(116, s), p, o, m)
+# define NDNBOOST_PP_FOR_116_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(117, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_117, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(117, s), p, o, m)
+# define NDNBOOST_PP_FOR_117_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(118, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_118, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(118, s), p, o, m)
+# define NDNBOOST_PP_FOR_118_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(119, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_119, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(119, s), p, o, m)
+# define NDNBOOST_PP_FOR_119_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(120, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_120, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(120, s), p, o, m)
+# define NDNBOOST_PP_FOR_120_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(121, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_121, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(121, s), p, o, m)
+# define NDNBOOST_PP_FOR_121_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(122, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_122, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(122, s), p, o, m)
+# define NDNBOOST_PP_FOR_122_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(123, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_123, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(123, s), p, o, m)
+# define NDNBOOST_PP_FOR_123_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(124, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_124, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(124, s), p, o, m)
+# define NDNBOOST_PP_FOR_124_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(125, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_125, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(125, s), p, o, m)
+# define NDNBOOST_PP_FOR_125_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(126, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_126, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(126, s), p, o, m)
+# define NDNBOOST_PP_FOR_126_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(127, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_127, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(127, s), p, o, m)
+# define NDNBOOST_PP_FOR_127_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(128, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_128, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(128, s), p, o, m)
+# define NDNBOOST_PP_FOR_128_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(129, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_129, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(129, s), p, o, m)
+# define NDNBOOST_PP_FOR_129_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(130, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_130, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(130, s), p, o, m)
+# define NDNBOOST_PP_FOR_130_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(131, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_131, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(131, s), p, o, m)
+# define NDNBOOST_PP_FOR_131_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(132, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_132, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(132, s), p, o, m)
+# define NDNBOOST_PP_FOR_132_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(133, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_133, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(133, s), p, o, m)
+# define NDNBOOST_PP_FOR_133_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(134, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_134, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(134, s), p, o, m)
+# define NDNBOOST_PP_FOR_134_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(135, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_135, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(135, s), p, o, m)
+# define NDNBOOST_PP_FOR_135_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(136, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_136, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(136, s), p, o, m)
+# define NDNBOOST_PP_FOR_136_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(137, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_137, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(137, s), p, o, m)
+# define NDNBOOST_PP_FOR_137_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(138, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_138, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(138, s), p, o, m)
+# define NDNBOOST_PP_FOR_138_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(139, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_139, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(139, s), p, o, m)
+# define NDNBOOST_PP_FOR_139_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(140, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_140, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(140, s), p, o, m)
+# define NDNBOOST_PP_FOR_140_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(141, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_141, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(141, s), p, o, m)
+# define NDNBOOST_PP_FOR_141_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(142, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_142, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(142, s), p, o, m)
+# define NDNBOOST_PP_FOR_142_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(143, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_143, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(143, s), p, o, m)
+# define NDNBOOST_PP_FOR_143_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(144, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_144, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(144, s), p, o, m)
+# define NDNBOOST_PP_FOR_144_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(145, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_145, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(145, s), p, o, m)
+# define NDNBOOST_PP_FOR_145_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(146, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_146, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(146, s), p, o, m)
+# define NDNBOOST_PP_FOR_146_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(147, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_147, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(147, s), p, o, m)
+# define NDNBOOST_PP_FOR_147_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(148, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_148, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(148, s), p, o, m)
+# define NDNBOOST_PP_FOR_148_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(149, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_149, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(149, s), p, o, m)
+# define NDNBOOST_PP_FOR_149_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(150, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_150, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(150, s), p, o, m)
+# define NDNBOOST_PP_FOR_150_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(151, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_151, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(151, s), p, o, m)
+# define NDNBOOST_PP_FOR_151_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(152, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_152, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(152, s), p, o, m)
+# define NDNBOOST_PP_FOR_152_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(153, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_153, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(153, s), p, o, m)
+# define NDNBOOST_PP_FOR_153_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(154, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_154, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(154, s), p, o, m)
+# define NDNBOOST_PP_FOR_154_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(155, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_155, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(155, s), p, o, m)
+# define NDNBOOST_PP_FOR_155_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(156, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_156, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(156, s), p, o, m)
+# define NDNBOOST_PP_FOR_156_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(157, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_157, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(157, s), p, o, m)
+# define NDNBOOST_PP_FOR_157_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(158, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_158, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(158, s), p, o, m)
+# define NDNBOOST_PP_FOR_158_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(159, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_159, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(159, s), p, o, m)
+# define NDNBOOST_PP_FOR_159_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(160, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_160, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(160, s), p, o, m)
+# define NDNBOOST_PP_FOR_160_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(161, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_161, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(161, s), p, o, m)
+# define NDNBOOST_PP_FOR_161_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(162, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_162, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(162, s), p, o, m)
+# define NDNBOOST_PP_FOR_162_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(163, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_163, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(163, s), p, o, m)
+# define NDNBOOST_PP_FOR_163_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(164, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_164, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(164, s), p, o, m)
+# define NDNBOOST_PP_FOR_164_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(165, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_165, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(165, s), p, o, m)
+# define NDNBOOST_PP_FOR_165_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(166, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_166, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(166, s), p, o, m)
+# define NDNBOOST_PP_FOR_166_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(167, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_167, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(167, s), p, o, m)
+# define NDNBOOST_PP_FOR_167_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(168, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_168, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(168, s), p, o, m)
+# define NDNBOOST_PP_FOR_168_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(169, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_169, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(169, s), p, o, m)
+# define NDNBOOST_PP_FOR_169_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(170, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_170, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(170, s), p, o, m)
+# define NDNBOOST_PP_FOR_170_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(171, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_171, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(171, s), p, o, m)
+# define NDNBOOST_PP_FOR_171_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(172, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_172, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(172, s), p, o, m)
+# define NDNBOOST_PP_FOR_172_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(173, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_173, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(173, s), p, o, m)
+# define NDNBOOST_PP_FOR_173_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(174, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_174, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(174, s), p, o, m)
+# define NDNBOOST_PP_FOR_174_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(175, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_175, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(175, s), p, o, m)
+# define NDNBOOST_PP_FOR_175_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(176, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_176, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(176, s), p, o, m)
+# define NDNBOOST_PP_FOR_176_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(177, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_177, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(177, s), p, o, m)
+# define NDNBOOST_PP_FOR_177_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(178, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_178, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(178, s), p, o, m)
+# define NDNBOOST_PP_FOR_178_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(179, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_179, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(179, s), p, o, m)
+# define NDNBOOST_PP_FOR_179_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(180, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_180, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(180, s), p, o, m)
+# define NDNBOOST_PP_FOR_180_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(181, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_181, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(181, s), p, o, m)
+# define NDNBOOST_PP_FOR_181_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(182, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_182, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(182, s), p, o, m)
+# define NDNBOOST_PP_FOR_182_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(183, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_183, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(183, s), p, o, m)
+# define NDNBOOST_PP_FOR_183_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(184, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_184, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(184, s), p, o, m)
+# define NDNBOOST_PP_FOR_184_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(185, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_185, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(185, s), p, o, m)
+# define NDNBOOST_PP_FOR_185_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(186, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_186, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(186, s), p, o, m)
+# define NDNBOOST_PP_FOR_186_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(187, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_187, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(187, s), p, o, m)
+# define NDNBOOST_PP_FOR_187_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(188, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_188, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(188, s), p, o, m)
+# define NDNBOOST_PP_FOR_188_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(189, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_189, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(189, s), p, o, m)
+# define NDNBOOST_PP_FOR_189_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(190, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_190, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(190, s), p, o, m)
+# define NDNBOOST_PP_FOR_190_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(191, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_191, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(191, s), p, o, m)
+# define NDNBOOST_PP_FOR_191_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(192, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_192, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(192, s), p, o, m)
+# define NDNBOOST_PP_FOR_192_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(193, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_193, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(193, s), p, o, m)
+# define NDNBOOST_PP_FOR_193_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(194, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_194, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(194, s), p, o, m)
+# define NDNBOOST_PP_FOR_194_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(195, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_195, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(195, s), p, o, m)
+# define NDNBOOST_PP_FOR_195_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(196, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_196, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(196, s), p, o, m)
+# define NDNBOOST_PP_FOR_196_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(197, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_197, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(197, s), p, o, m)
+# define NDNBOOST_PP_FOR_197_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(198, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_198, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(198, s), p, o, m)
+# define NDNBOOST_PP_FOR_198_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(199, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_199, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(199, s), p, o, m)
+# define NDNBOOST_PP_FOR_199_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(200, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_200, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(200, s), p, o, m)
+# define NDNBOOST_PP_FOR_200_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(201, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_201, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(201, s), p, o, m)
+# define NDNBOOST_PP_FOR_201_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(202, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_202, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(202, s), p, o, m)
+# define NDNBOOST_PP_FOR_202_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(203, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_203, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(203, s), p, o, m)
+# define NDNBOOST_PP_FOR_203_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(204, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_204, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(204, s), p, o, m)
+# define NDNBOOST_PP_FOR_204_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(205, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_205, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(205, s), p, o, m)
+# define NDNBOOST_PP_FOR_205_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(206, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_206, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(206, s), p, o, m)
+# define NDNBOOST_PP_FOR_206_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(207, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_207, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(207, s), p, o, m)
+# define NDNBOOST_PP_FOR_207_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(208, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_208, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(208, s), p, o, m)
+# define NDNBOOST_PP_FOR_208_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(209, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_209, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(209, s), p, o, m)
+# define NDNBOOST_PP_FOR_209_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(210, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_210, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(210, s), p, o, m)
+# define NDNBOOST_PP_FOR_210_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(211, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_211, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(211, s), p, o, m)
+# define NDNBOOST_PP_FOR_211_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(212, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_212, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(212, s), p, o, m)
+# define NDNBOOST_PP_FOR_212_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(213, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_213, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(213, s), p, o, m)
+# define NDNBOOST_PP_FOR_213_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(214, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_214, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(214, s), p, o, m)
+# define NDNBOOST_PP_FOR_214_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(215, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_215, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(215, s), p, o, m)
+# define NDNBOOST_PP_FOR_215_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(216, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_216, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(216, s), p, o, m)
+# define NDNBOOST_PP_FOR_216_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(217, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_217, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(217, s), p, o, m)
+# define NDNBOOST_PP_FOR_217_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(218, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_218, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(218, s), p, o, m)
+# define NDNBOOST_PP_FOR_218_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(219, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_219, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(219, s), p, o, m)
+# define NDNBOOST_PP_FOR_219_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(220, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_220, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(220, s), p, o, m)
+# define NDNBOOST_PP_FOR_220_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(221, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_221, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(221, s), p, o, m)
+# define NDNBOOST_PP_FOR_221_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(222, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_222, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(222, s), p, o, m)
+# define NDNBOOST_PP_FOR_222_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(223, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_223, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(223, s), p, o, m)
+# define NDNBOOST_PP_FOR_223_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(224, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_224, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(224, s), p, o, m)
+# define NDNBOOST_PP_FOR_224_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(225, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_225, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(225, s), p, o, m)
+# define NDNBOOST_PP_FOR_225_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(226, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_226, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(226, s), p, o, m)
+# define NDNBOOST_PP_FOR_226_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(227, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_227, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(227, s), p, o, m)
+# define NDNBOOST_PP_FOR_227_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(228, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_228, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(228, s), p, o, m)
+# define NDNBOOST_PP_FOR_228_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(229, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_229, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(229, s), p, o, m)
+# define NDNBOOST_PP_FOR_229_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(230, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_230, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(230, s), p, o, m)
+# define NDNBOOST_PP_FOR_230_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(231, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_231, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(231, s), p, o, m)
+# define NDNBOOST_PP_FOR_231_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(232, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_232, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(232, s), p, o, m)
+# define NDNBOOST_PP_FOR_232_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(233, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_233, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(233, s), p, o, m)
+# define NDNBOOST_PP_FOR_233_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(234, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_234, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(234, s), p, o, m)
+# define NDNBOOST_PP_FOR_234_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(235, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_235, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(235, s), p, o, m)
+# define NDNBOOST_PP_FOR_235_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(236, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_236, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(236, s), p, o, m)
+# define NDNBOOST_PP_FOR_236_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(237, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_237, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(237, s), p, o, m)
+# define NDNBOOST_PP_FOR_237_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(238, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_238, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(238, s), p, o, m)
+# define NDNBOOST_PP_FOR_238_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(239, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_239, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(239, s), p, o, m)
+# define NDNBOOST_PP_FOR_239_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(240, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_240, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(240, s), p, o, m)
+# define NDNBOOST_PP_FOR_240_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(241, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_241, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(241, s), p, o, m)
+# define NDNBOOST_PP_FOR_241_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(242, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_242, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(242, s), p, o, m)
+# define NDNBOOST_PP_FOR_242_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(243, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_243, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(243, s), p, o, m)
+# define NDNBOOST_PP_FOR_243_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(244, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_244, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(244, s), p, o, m)
+# define NDNBOOST_PP_FOR_244_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(245, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_245, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(245, s), p, o, m)
+# define NDNBOOST_PP_FOR_245_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(246, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_246, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(246, s), p, o, m)
+# define NDNBOOST_PP_FOR_246_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(247, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_247, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(247, s), p, o, m)
+# define NDNBOOST_PP_FOR_247_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(248, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_248, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(248, s), p, o, m)
+# define NDNBOOST_PP_FOR_248_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(249, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_249, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(249, s), p, o, m)
+# define NDNBOOST_PP_FOR_249_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(250, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_250, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(250, s), p, o, m)
+# define NDNBOOST_PP_FOR_250_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(251, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_251, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(251, s), p, o, m)
+# define NDNBOOST_PP_FOR_251_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(252, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_252, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(252, s), p, o, m)
+# define NDNBOOST_PP_FOR_252_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(253, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_253, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(253, s), p, o, m)
+# define NDNBOOST_PP_FOR_253_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(254, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_254, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(254, s), p, o, m)
+# define NDNBOOST_PP_FOR_254_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(255, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_255, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(255, s), p, o, m)
+# define NDNBOOST_PP_FOR_255_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(256, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_256, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(256, s), p, o, m)
+# define NDNBOOST_PP_FOR_256_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(257, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_257, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(257, s), p, o, m)
 #
 # endif
diff --git a/include/ndnboost/preprocessor/repetition/detail/edg/for.hpp b/include/ndnboost/preprocessor/repetition/detail/edg/for.hpp
index 4230ab0..9175032 100644
--- a/include/ndnboost/preprocessor/repetition/detail/edg/for.hpp
+++ b/include/ndnboost/preprocessor/repetition/detail/edg/for.hpp
@@ -11,524 +11,524 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_REPETITION_DETAIL_EDG_FOR_HPP
-# define BOOST_PREPROCESSOR_REPETITION_DETAIL_EDG_FOR_HPP
+# ifndef NDNBOOST_PREPROCESSOR_REPETITION_DETAIL_EDG_FOR_HPP
+# define NDNBOOST_PREPROCESSOR_REPETITION_DETAIL_EDG_FOR_HPP
 #
 # include <ndnboost/preprocessor/control/if.hpp>
 # include <ndnboost/preprocessor/tuple/eat.hpp>
 #
-# define BOOST_PP_FOR_1(s, p, o, m) BOOST_PP_FOR_1_I(s, p, o, m)
-# define BOOST_PP_FOR_2(s, p, o, m) BOOST_PP_FOR_2_I(s, p, o, m)
-# define BOOST_PP_FOR_3(s, p, o, m) BOOST_PP_FOR_3_I(s, p, o, m)
-# define BOOST_PP_FOR_4(s, p, o, m) BOOST_PP_FOR_4_I(s, p, o, m)
-# define BOOST_PP_FOR_5(s, p, o, m) BOOST_PP_FOR_5_I(s, p, o, m)
-# define BOOST_PP_FOR_6(s, p, o, m) BOOST_PP_FOR_6_I(s, p, o, m)
-# define BOOST_PP_FOR_7(s, p, o, m) BOOST_PP_FOR_7_I(s, p, o, m)
-# define BOOST_PP_FOR_8(s, p, o, m) BOOST_PP_FOR_8_I(s, p, o, m)
-# define BOOST_PP_FOR_9(s, p, o, m) BOOST_PP_FOR_9_I(s, p, o, m)
-# define BOOST_PP_FOR_10(s, p, o, m) BOOST_PP_FOR_10_I(s, p, o, m)
-# define BOOST_PP_FOR_11(s, p, o, m) BOOST_PP_FOR_11_I(s, p, o, m)
-# define BOOST_PP_FOR_12(s, p, o, m) BOOST_PP_FOR_12_I(s, p, o, m)
-# define BOOST_PP_FOR_13(s, p, o, m) BOOST_PP_FOR_13_I(s, p, o, m)
-# define BOOST_PP_FOR_14(s, p, o, m) BOOST_PP_FOR_14_I(s, p, o, m)
-# define BOOST_PP_FOR_15(s, p, o, m) BOOST_PP_FOR_15_I(s, p, o, m)
-# define BOOST_PP_FOR_16(s, p, o, m) BOOST_PP_FOR_16_I(s, p, o, m)
-# define BOOST_PP_FOR_17(s, p, o, m) BOOST_PP_FOR_17_I(s, p, o, m)
-# define BOOST_PP_FOR_18(s, p, o, m) BOOST_PP_FOR_18_I(s, p, o, m)
-# define BOOST_PP_FOR_19(s, p, o, m) BOOST_PP_FOR_19_I(s, p, o, m)
-# define BOOST_PP_FOR_20(s, p, o, m) BOOST_PP_FOR_20_I(s, p, o, m)
-# define BOOST_PP_FOR_21(s, p, o, m) BOOST_PP_FOR_21_I(s, p, o, m)
-# define BOOST_PP_FOR_22(s, p, o, m) BOOST_PP_FOR_22_I(s, p, o, m)
-# define BOOST_PP_FOR_23(s, p, o, m) BOOST_PP_FOR_23_I(s, p, o, m)
-# define BOOST_PP_FOR_24(s, p, o, m) BOOST_PP_FOR_24_I(s, p, o, m)
-# define BOOST_PP_FOR_25(s, p, o, m) BOOST_PP_FOR_25_I(s, p, o, m)
-# define BOOST_PP_FOR_26(s, p, o, m) BOOST_PP_FOR_26_I(s, p, o, m)
-# define BOOST_PP_FOR_27(s, p, o, m) BOOST_PP_FOR_27_I(s, p, o, m)
-# define BOOST_PP_FOR_28(s, p, o, m) BOOST_PP_FOR_28_I(s, p, o, m)
-# define BOOST_PP_FOR_29(s, p, o, m) BOOST_PP_FOR_29_I(s, p, o, m)
-# define BOOST_PP_FOR_30(s, p, o, m) BOOST_PP_FOR_30_I(s, p, o, m)
-# define BOOST_PP_FOR_31(s, p, o, m) BOOST_PP_FOR_31_I(s, p, o, m)
-# define BOOST_PP_FOR_32(s, p, o, m) BOOST_PP_FOR_32_I(s, p, o, m)
-# define BOOST_PP_FOR_33(s, p, o, m) BOOST_PP_FOR_33_I(s, p, o, m)
-# define BOOST_PP_FOR_34(s, p, o, m) BOOST_PP_FOR_34_I(s, p, o, m)
-# define BOOST_PP_FOR_35(s, p, o, m) BOOST_PP_FOR_35_I(s, p, o, m)
-# define BOOST_PP_FOR_36(s, p, o, m) BOOST_PP_FOR_36_I(s, p, o, m)
-# define BOOST_PP_FOR_37(s, p, o, m) BOOST_PP_FOR_37_I(s, p, o, m)
-# define BOOST_PP_FOR_38(s, p, o, m) BOOST_PP_FOR_38_I(s, p, o, m)
-# define BOOST_PP_FOR_39(s, p, o, m) BOOST_PP_FOR_39_I(s, p, o, m)
-# define BOOST_PP_FOR_40(s, p, o, m) BOOST_PP_FOR_40_I(s, p, o, m)
-# define BOOST_PP_FOR_41(s, p, o, m) BOOST_PP_FOR_41_I(s, p, o, m)
-# define BOOST_PP_FOR_42(s, p, o, m) BOOST_PP_FOR_42_I(s, p, o, m)
-# define BOOST_PP_FOR_43(s, p, o, m) BOOST_PP_FOR_43_I(s, p, o, m)
-# define BOOST_PP_FOR_44(s, p, o, m) BOOST_PP_FOR_44_I(s, p, o, m)
-# define BOOST_PP_FOR_45(s, p, o, m) BOOST_PP_FOR_45_I(s, p, o, m)
-# define BOOST_PP_FOR_46(s, p, o, m) BOOST_PP_FOR_46_I(s, p, o, m)
-# define BOOST_PP_FOR_47(s, p, o, m) BOOST_PP_FOR_47_I(s, p, o, m)
-# define BOOST_PP_FOR_48(s, p, o, m) BOOST_PP_FOR_48_I(s, p, o, m)
-# define BOOST_PP_FOR_49(s, p, o, m) BOOST_PP_FOR_49_I(s, p, o, m)
-# define BOOST_PP_FOR_50(s, p, o, m) BOOST_PP_FOR_50_I(s, p, o, m)
-# define BOOST_PP_FOR_51(s, p, o, m) BOOST_PP_FOR_51_I(s, p, o, m)
-# define BOOST_PP_FOR_52(s, p, o, m) BOOST_PP_FOR_52_I(s, p, o, m)
-# define BOOST_PP_FOR_53(s, p, o, m) BOOST_PP_FOR_53_I(s, p, o, m)
-# define BOOST_PP_FOR_54(s, p, o, m) BOOST_PP_FOR_54_I(s, p, o, m)
-# define BOOST_PP_FOR_55(s, p, o, m) BOOST_PP_FOR_55_I(s, p, o, m)
-# define BOOST_PP_FOR_56(s, p, o, m) BOOST_PP_FOR_56_I(s, p, o, m)
-# define BOOST_PP_FOR_57(s, p, o, m) BOOST_PP_FOR_57_I(s, p, o, m)
-# define BOOST_PP_FOR_58(s, p, o, m) BOOST_PP_FOR_58_I(s, p, o, m)
-# define BOOST_PP_FOR_59(s, p, o, m) BOOST_PP_FOR_59_I(s, p, o, m)
-# define BOOST_PP_FOR_60(s, p, o, m) BOOST_PP_FOR_60_I(s, p, o, m)
-# define BOOST_PP_FOR_61(s, p, o, m) BOOST_PP_FOR_61_I(s, p, o, m)
-# define BOOST_PP_FOR_62(s, p, o, m) BOOST_PP_FOR_62_I(s, p, o, m)
-# define BOOST_PP_FOR_63(s, p, o, m) BOOST_PP_FOR_63_I(s, p, o, m)
-# define BOOST_PP_FOR_64(s, p, o, m) BOOST_PP_FOR_64_I(s, p, o, m)
-# define BOOST_PP_FOR_65(s, p, o, m) BOOST_PP_FOR_65_I(s, p, o, m)
-# define BOOST_PP_FOR_66(s, p, o, m) BOOST_PP_FOR_66_I(s, p, o, m)
-# define BOOST_PP_FOR_67(s, p, o, m) BOOST_PP_FOR_67_I(s, p, o, m)
-# define BOOST_PP_FOR_68(s, p, o, m) BOOST_PP_FOR_68_I(s, p, o, m)
-# define BOOST_PP_FOR_69(s, p, o, m) BOOST_PP_FOR_69_I(s, p, o, m)
-# define BOOST_PP_FOR_70(s, p, o, m) BOOST_PP_FOR_70_I(s, p, o, m)
-# define BOOST_PP_FOR_71(s, p, o, m) BOOST_PP_FOR_71_I(s, p, o, m)
-# define BOOST_PP_FOR_72(s, p, o, m) BOOST_PP_FOR_72_I(s, p, o, m)
-# define BOOST_PP_FOR_73(s, p, o, m) BOOST_PP_FOR_73_I(s, p, o, m)
-# define BOOST_PP_FOR_74(s, p, o, m) BOOST_PP_FOR_74_I(s, p, o, m)
-# define BOOST_PP_FOR_75(s, p, o, m) BOOST_PP_FOR_75_I(s, p, o, m)
-# define BOOST_PP_FOR_76(s, p, o, m) BOOST_PP_FOR_76_I(s, p, o, m)
-# define BOOST_PP_FOR_77(s, p, o, m) BOOST_PP_FOR_77_I(s, p, o, m)
-# define BOOST_PP_FOR_78(s, p, o, m) BOOST_PP_FOR_78_I(s, p, o, m)
-# define BOOST_PP_FOR_79(s, p, o, m) BOOST_PP_FOR_79_I(s, p, o, m)
-# define BOOST_PP_FOR_80(s, p, o, m) BOOST_PP_FOR_80_I(s, p, o, m)
-# define BOOST_PP_FOR_81(s, p, o, m) BOOST_PP_FOR_81_I(s, p, o, m)
-# define BOOST_PP_FOR_82(s, p, o, m) BOOST_PP_FOR_82_I(s, p, o, m)
-# define BOOST_PP_FOR_83(s, p, o, m) BOOST_PP_FOR_83_I(s, p, o, m)
-# define BOOST_PP_FOR_84(s, p, o, m) BOOST_PP_FOR_84_I(s, p, o, m)
-# define BOOST_PP_FOR_85(s, p, o, m) BOOST_PP_FOR_85_I(s, p, o, m)
-# define BOOST_PP_FOR_86(s, p, o, m) BOOST_PP_FOR_86_I(s, p, o, m)
-# define BOOST_PP_FOR_87(s, p, o, m) BOOST_PP_FOR_87_I(s, p, o, m)
-# define BOOST_PP_FOR_88(s, p, o, m) BOOST_PP_FOR_88_I(s, p, o, m)
-# define BOOST_PP_FOR_89(s, p, o, m) BOOST_PP_FOR_89_I(s, p, o, m)
-# define BOOST_PP_FOR_90(s, p, o, m) BOOST_PP_FOR_90_I(s, p, o, m)
-# define BOOST_PP_FOR_91(s, p, o, m) BOOST_PP_FOR_91_I(s, p, o, m)
-# define BOOST_PP_FOR_92(s, p, o, m) BOOST_PP_FOR_92_I(s, p, o, m)
-# define BOOST_PP_FOR_93(s, p, o, m) BOOST_PP_FOR_93_I(s, p, o, m)
-# define BOOST_PP_FOR_94(s, p, o, m) BOOST_PP_FOR_94_I(s, p, o, m)
-# define BOOST_PP_FOR_95(s, p, o, m) BOOST_PP_FOR_95_I(s, p, o, m)
-# define BOOST_PP_FOR_96(s, p, o, m) BOOST_PP_FOR_96_I(s, p, o, m)
-# define BOOST_PP_FOR_97(s, p, o, m) BOOST_PP_FOR_97_I(s, p, o, m)
-# define BOOST_PP_FOR_98(s, p, o, m) BOOST_PP_FOR_98_I(s, p, o, m)
-# define BOOST_PP_FOR_99(s, p, o, m) BOOST_PP_FOR_99_I(s, p, o, m)
-# define BOOST_PP_FOR_100(s, p, o, m) BOOST_PP_FOR_100_I(s, p, o, m)
-# define BOOST_PP_FOR_101(s, p, o, m) BOOST_PP_FOR_101_I(s, p, o, m)
-# define BOOST_PP_FOR_102(s, p, o, m) BOOST_PP_FOR_102_I(s, p, o, m)
-# define BOOST_PP_FOR_103(s, p, o, m) BOOST_PP_FOR_103_I(s, p, o, m)
-# define BOOST_PP_FOR_104(s, p, o, m) BOOST_PP_FOR_104_I(s, p, o, m)
-# define BOOST_PP_FOR_105(s, p, o, m) BOOST_PP_FOR_105_I(s, p, o, m)
-# define BOOST_PP_FOR_106(s, p, o, m) BOOST_PP_FOR_106_I(s, p, o, m)
-# define BOOST_PP_FOR_107(s, p, o, m) BOOST_PP_FOR_107_I(s, p, o, m)
-# define BOOST_PP_FOR_108(s, p, o, m) BOOST_PP_FOR_108_I(s, p, o, m)
-# define BOOST_PP_FOR_109(s, p, o, m) BOOST_PP_FOR_109_I(s, p, o, m)
-# define BOOST_PP_FOR_110(s, p, o, m) BOOST_PP_FOR_110_I(s, p, o, m)
-# define BOOST_PP_FOR_111(s, p, o, m) BOOST_PP_FOR_111_I(s, p, o, m)
-# define BOOST_PP_FOR_112(s, p, o, m) BOOST_PP_FOR_112_I(s, p, o, m)
-# define BOOST_PP_FOR_113(s, p, o, m) BOOST_PP_FOR_113_I(s, p, o, m)
-# define BOOST_PP_FOR_114(s, p, o, m) BOOST_PP_FOR_114_I(s, p, o, m)
-# define BOOST_PP_FOR_115(s, p, o, m) BOOST_PP_FOR_115_I(s, p, o, m)
-# define BOOST_PP_FOR_116(s, p, o, m) BOOST_PP_FOR_116_I(s, p, o, m)
-# define BOOST_PP_FOR_117(s, p, o, m) BOOST_PP_FOR_117_I(s, p, o, m)
-# define BOOST_PP_FOR_118(s, p, o, m) BOOST_PP_FOR_118_I(s, p, o, m)
-# define BOOST_PP_FOR_119(s, p, o, m) BOOST_PP_FOR_119_I(s, p, o, m)
-# define BOOST_PP_FOR_120(s, p, o, m) BOOST_PP_FOR_120_I(s, p, o, m)
-# define BOOST_PP_FOR_121(s, p, o, m) BOOST_PP_FOR_121_I(s, p, o, m)
-# define BOOST_PP_FOR_122(s, p, o, m) BOOST_PP_FOR_122_I(s, p, o, m)
-# define BOOST_PP_FOR_123(s, p, o, m) BOOST_PP_FOR_123_I(s, p, o, m)
-# define BOOST_PP_FOR_124(s, p, o, m) BOOST_PP_FOR_124_I(s, p, o, m)
-# define BOOST_PP_FOR_125(s, p, o, m) BOOST_PP_FOR_125_I(s, p, o, m)
-# define BOOST_PP_FOR_126(s, p, o, m) BOOST_PP_FOR_126_I(s, p, o, m)
-# define BOOST_PP_FOR_127(s, p, o, m) BOOST_PP_FOR_127_I(s, p, o, m)
-# define BOOST_PP_FOR_128(s, p, o, m) BOOST_PP_FOR_128_I(s, p, o, m)
-# define BOOST_PP_FOR_129(s, p, o, m) BOOST_PP_FOR_129_I(s, p, o, m)
-# define BOOST_PP_FOR_130(s, p, o, m) BOOST_PP_FOR_130_I(s, p, o, m)
-# define BOOST_PP_FOR_131(s, p, o, m) BOOST_PP_FOR_131_I(s, p, o, m)
-# define BOOST_PP_FOR_132(s, p, o, m) BOOST_PP_FOR_132_I(s, p, o, m)
-# define BOOST_PP_FOR_133(s, p, o, m) BOOST_PP_FOR_133_I(s, p, o, m)
-# define BOOST_PP_FOR_134(s, p, o, m) BOOST_PP_FOR_134_I(s, p, o, m)
-# define BOOST_PP_FOR_135(s, p, o, m) BOOST_PP_FOR_135_I(s, p, o, m)
-# define BOOST_PP_FOR_136(s, p, o, m) BOOST_PP_FOR_136_I(s, p, o, m)
-# define BOOST_PP_FOR_137(s, p, o, m) BOOST_PP_FOR_137_I(s, p, o, m)
-# define BOOST_PP_FOR_138(s, p, o, m) BOOST_PP_FOR_138_I(s, p, o, m)
-# define BOOST_PP_FOR_139(s, p, o, m) BOOST_PP_FOR_139_I(s, p, o, m)
-# define BOOST_PP_FOR_140(s, p, o, m) BOOST_PP_FOR_140_I(s, p, o, m)
-# define BOOST_PP_FOR_141(s, p, o, m) BOOST_PP_FOR_141_I(s, p, o, m)
-# define BOOST_PP_FOR_142(s, p, o, m) BOOST_PP_FOR_142_I(s, p, o, m)
-# define BOOST_PP_FOR_143(s, p, o, m) BOOST_PP_FOR_143_I(s, p, o, m)
-# define BOOST_PP_FOR_144(s, p, o, m) BOOST_PP_FOR_144_I(s, p, o, m)
-# define BOOST_PP_FOR_145(s, p, o, m) BOOST_PP_FOR_145_I(s, p, o, m)
-# define BOOST_PP_FOR_146(s, p, o, m) BOOST_PP_FOR_146_I(s, p, o, m)
-# define BOOST_PP_FOR_147(s, p, o, m) BOOST_PP_FOR_147_I(s, p, o, m)
-# define BOOST_PP_FOR_148(s, p, o, m) BOOST_PP_FOR_148_I(s, p, o, m)
-# define BOOST_PP_FOR_149(s, p, o, m) BOOST_PP_FOR_149_I(s, p, o, m)
-# define BOOST_PP_FOR_150(s, p, o, m) BOOST_PP_FOR_150_I(s, p, o, m)
-# define BOOST_PP_FOR_151(s, p, o, m) BOOST_PP_FOR_151_I(s, p, o, m)
-# define BOOST_PP_FOR_152(s, p, o, m) BOOST_PP_FOR_152_I(s, p, o, m)
-# define BOOST_PP_FOR_153(s, p, o, m) BOOST_PP_FOR_153_I(s, p, o, m)
-# define BOOST_PP_FOR_154(s, p, o, m) BOOST_PP_FOR_154_I(s, p, o, m)
-# define BOOST_PP_FOR_155(s, p, o, m) BOOST_PP_FOR_155_I(s, p, o, m)
-# define BOOST_PP_FOR_156(s, p, o, m) BOOST_PP_FOR_156_I(s, p, o, m)
-# define BOOST_PP_FOR_157(s, p, o, m) BOOST_PP_FOR_157_I(s, p, o, m)
-# define BOOST_PP_FOR_158(s, p, o, m) BOOST_PP_FOR_158_I(s, p, o, m)
-# define BOOST_PP_FOR_159(s, p, o, m) BOOST_PP_FOR_159_I(s, p, o, m)
-# define BOOST_PP_FOR_160(s, p, o, m) BOOST_PP_FOR_160_I(s, p, o, m)
-# define BOOST_PP_FOR_161(s, p, o, m) BOOST_PP_FOR_161_I(s, p, o, m)
-# define BOOST_PP_FOR_162(s, p, o, m) BOOST_PP_FOR_162_I(s, p, o, m)
-# define BOOST_PP_FOR_163(s, p, o, m) BOOST_PP_FOR_163_I(s, p, o, m)
-# define BOOST_PP_FOR_164(s, p, o, m) BOOST_PP_FOR_164_I(s, p, o, m)
-# define BOOST_PP_FOR_165(s, p, o, m) BOOST_PP_FOR_165_I(s, p, o, m)
-# define BOOST_PP_FOR_166(s, p, o, m) BOOST_PP_FOR_166_I(s, p, o, m)
-# define BOOST_PP_FOR_167(s, p, o, m) BOOST_PP_FOR_167_I(s, p, o, m)
-# define BOOST_PP_FOR_168(s, p, o, m) BOOST_PP_FOR_168_I(s, p, o, m)
-# define BOOST_PP_FOR_169(s, p, o, m) BOOST_PP_FOR_169_I(s, p, o, m)
-# define BOOST_PP_FOR_170(s, p, o, m) BOOST_PP_FOR_170_I(s, p, o, m)
-# define BOOST_PP_FOR_171(s, p, o, m) BOOST_PP_FOR_171_I(s, p, o, m)
-# define BOOST_PP_FOR_172(s, p, o, m) BOOST_PP_FOR_172_I(s, p, o, m)
-# define BOOST_PP_FOR_173(s, p, o, m) BOOST_PP_FOR_173_I(s, p, o, m)
-# define BOOST_PP_FOR_174(s, p, o, m) BOOST_PP_FOR_174_I(s, p, o, m)
-# define BOOST_PP_FOR_175(s, p, o, m) BOOST_PP_FOR_175_I(s, p, o, m)
-# define BOOST_PP_FOR_176(s, p, o, m) BOOST_PP_FOR_176_I(s, p, o, m)
-# define BOOST_PP_FOR_177(s, p, o, m) BOOST_PP_FOR_177_I(s, p, o, m)
-# define BOOST_PP_FOR_178(s, p, o, m) BOOST_PP_FOR_178_I(s, p, o, m)
-# define BOOST_PP_FOR_179(s, p, o, m) BOOST_PP_FOR_179_I(s, p, o, m)
-# define BOOST_PP_FOR_180(s, p, o, m) BOOST_PP_FOR_180_I(s, p, o, m)
-# define BOOST_PP_FOR_181(s, p, o, m) BOOST_PP_FOR_181_I(s, p, o, m)
-# define BOOST_PP_FOR_182(s, p, o, m) BOOST_PP_FOR_182_I(s, p, o, m)
-# define BOOST_PP_FOR_183(s, p, o, m) BOOST_PP_FOR_183_I(s, p, o, m)
-# define BOOST_PP_FOR_184(s, p, o, m) BOOST_PP_FOR_184_I(s, p, o, m)
-# define BOOST_PP_FOR_185(s, p, o, m) BOOST_PP_FOR_185_I(s, p, o, m)
-# define BOOST_PP_FOR_186(s, p, o, m) BOOST_PP_FOR_186_I(s, p, o, m)
-# define BOOST_PP_FOR_187(s, p, o, m) BOOST_PP_FOR_187_I(s, p, o, m)
-# define BOOST_PP_FOR_188(s, p, o, m) BOOST_PP_FOR_188_I(s, p, o, m)
-# define BOOST_PP_FOR_189(s, p, o, m) BOOST_PP_FOR_189_I(s, p, o, m)
-# define BOOST_PP_FOR_190(s, p, o, m) BOOST_PP_FOR_190_I(s, p, o, m)
-# define BOOST_PP_FOR_191(s, p, o, m) BOOST_PP_FOR_191_I(s, p, o, m)
-# define BOOST_PP_FOR_192(s, p, o, m) BOOST_PP_FOR_192_I(s, p, o, m)
-# define BOOST_PP_FOR_193(s, p, o, m) BOOST_PP_FOR_193_I(s, p, o, m)
-# define BOOST_PP_FOR_194(s, p, o, m) BOOST_PP_FOR_194_I(s, p, o, m)
-# define BOOST_PP_FOR_195(s, p, o, m) BOOST_PP_FOR_195_I(s, p, o, m)
-# define BOOST_PP_FOR_196(s, p, o, m) BOOST_PP_FOR_196_I(s, p, o, m)
-# define BOOST_PP_FOR_197(s, p, o, m) BOOST_PP_FOR_197_I(s, p, o, m)
-# define BOOST_PP_FOR_198(s, p, o, m) BOOST_PP_FOR_198_I(s, p, o, m)
-# define BOOST_PP_FOR_199(s, p, o, m) BOOST_PP_FOR_199_I(s, p, o, m)
-# define BOOST_PP_FOR_200(s, p, o, m) BOOST_PP_FOR_200_I(s, p, o, m)
-# define BOOST_PP_FOR_201(s, p, o, m) BOOST_PP_FOR_201_I(s, p, o, m)
-# define BOOST_PP_FOR_202(s, p, o, m) BOOST_PP_FOR_202_I(s, p, o, m)
-# define BOOST_PP_FOR_203(s, p, o, m) BOOST_PP_FOR_203_I(s, p, o, m)
-# define BOOST_PP_FOR_204(s, p, o, m) BOOST_PP_FOR_204_I(s, p, o, m)
-# define BOOST_PP_FOR_205(s, p, o, m) BOOST_PP_FOR_205_I(s, p, o, m)
-# define BOOST_PP_FOR_206(s, p, o, m) BOOST_PP_FOR_206_I(s, p, o, m)
-# define BOOST_PP_FOR_207(s, p, o, m) BOOST_PP_FOR_207_I(s, p, o, m)
-# define BOOST_PP_FOR_208(s, p, o, m) BOOST_PP_FOR_208_I(s, p, o, m)
-# define BOOST_PP_FOR_209(s, p, o, m) BOOST_PP_FOR_209_I(s, p, o, m)
-# define BOOST_PP_FOR_210(s, p, o, m) BOOST_PP_FOR_210_I(s, p, o, m)
-# define BOOST_PP_FOR_211(s, p, o, m) BOOST_PP_FOR_211_I(s, p, o, m)
-# define BOOST_PP_FOR_212(s, p, o, m) BOOST_PP_FOR_212_I(s, p, o, m)
-# define BOOST_PP_FOR_213(s, p, o, m) BOOST_PP_FOR_213_I(s, p, o, m)
-# define BOOST_PP_FOR_214(s, p, o, m) BOOST_PP_FOR_214_I(s, p, o, m)
-# define BOOST_PP_FOR_215(s, p, o, m) BOOST_PP_FOR_215_I(s, p, o, m)
-# define BOOST_PP_FOR_216(s, p, o, m) BOOST_PP_FOR_216_I(s, p, o, m)
-# define BOOST_PP_FOR_217(s, p, o, m) BOOST_PP_FOR_217_I(s, p, o, m)
-# define BOOST_PP_FOR_218(s, p, o, m) BOOST_PP_FOR_218_I(s, p, o, m)
-# define BOOST_PP_FOR_219(s, p, o, m) BOOST_PP_FOR_219_I(s, p, o, m)
-# define BOOST_PP_FOR_220(s, p, o, m) BOOST_PP_FOR_220_I(s, p, o, m)
-# define BOOST_PP_FOR_221(s, p, o, m) BOOST_PP_FOR_221_I(s, p, o, m)
-# define BOOST_PP_FOR_222(s, p, o, m) BOOST_PP_FOR_222_I(s, p, o, m)
-# define BOOST_PP_FOR_223(s, p, o, m) BOOST_PP_FOR_223_I(s, p, o, m)
-# define BOOST_PP_FOR_224(s, p, o, m) BOOST_PP_FOR_224_I(s, p, o, m)
-# define BOOST_PP_FOR_225(s, p, o, m) BOOST_PP_FOR_225_I(s, p, o, m)
-# define BOOST_PP_FOR_226(s, p, o, m) BOOST_PP_FOR_226_I(s, p, o, m)
-# define BOOST_PP_FOR_227(s, p, o, m) BOOST_PP_FOR_227_I(s, p, o, m)
-# define BOOST_PP_FOR_228(s, p, o, m) BOOST_PP_FOR_228_I(s, p, o, m)
-# define BOOST_PP_FOR_229(s, p, o, m) BOOST_PP_FOR_229_I(s, p, o, m)
-# define BOOST_PP_FOR_230(s, p, o, m) BOOST_PP_FOR_230_I(s, p, o, m)
-# define BOOST_PP_FOR_231(s, p, o, m) BOOST_PP_FOR_231_I(s, p, o, m)
-# define BOOST_PP_FOR_232(s, p, o, m) BOOST_PP_FOR_232_I(s, p, o, m)
-# define BOOST_PP_FOR_233(s, p, o, m) BOOST_PP_FOR_233_I(s, p, o, m)
-# define BOOST_PP_FOR_234(s, p, o, m) BOOST_PP_FOR_234_I(s, p, o, m)
-# define BOOST_PP_FOR_235(s, p, o, m) BOOST_PP_FOR_235_I(s, p, o, m)
-# define BOOST_PP_FOR_236(s, p, o, m) BOOST_PP_FOR_236_I(s, p, o, m)
-# define BOOST_PP_FOR_237(s, p, o, m) BOOST_PP_FOR_237_I(s, p, o, m)
-# define BOOST_PP_FOR_238(s, p, o, m) BOOST_PP_FOR_238_I(s, p, o, m)
-# define BOOST_PP_FOR_239(s, p, o, m) BOOST_PP_FOR_239_I(s, p, o, m)
-# define BOOST_PP_FOR_240(s, p, o, m) BOOST_PP_FOR_240_I(s, p, o, m)
-# define BOOST_PP_FOR_241(s, p, o, m) BOOST_PP_FOR_241_I(s, p, o, m)
-# define BOOST_PP_FOR_242(s, p, o, m) BOOST_PP_FOR_242_I(s, p, o, m)
-# define BOOST_PP_FOR_243(s, p, o, m) BOOST_PP_FOR_243_I(s, p, o, m)
-# define BOOST_PP_FOR_244(s, p, o, m) BOOST_PP_FOR_244_I(s, p, o, m)
-# define BOOST_PP_FOR_245(s, p, o, m) BOOST_PP_FOR_245_I(s, p, o, m)
-# define BOOST_PP_FOR_246(s, p, o, m) BOOST_PP_FOR_246_I(s, p, o, m)
-# define BOOST_PP_FOR_247(s, p, o, m) BOOST_PP_FOR_247_I(s, p, o, m)
-# define BOOST_PP_FOR_248(s, p, o, m) BOOST_PP_FOR_248_I(s, p, o, m)
-# define BOOST_PP_FOR_249(s, p, o, m) BOOST_PP_FOR_249_I(s, p, o, m)
-# define BOOST_PP_FOR_250(s, p, o, m) BOOST_PP_FOR_250_I(s, p, o, m)
-# define BOOST_PP_FOR_251(s, p, o, m) BOOST_PP_FOR_251_I(s, p, o, m)
-# define BOOST_PP_FOR_252(s, p, o, m) BOOST_PP_FOR_252_I(s, p, o, m)
-# define BOOST_PP_FOR_253(s, p, o, m) BOOST_PP_FOR_253_I(s, p, o, m)
-# define BOOST_PP_FOR_254(s, p, o, m) BOOST_PP_FOR_254_I(s, p, o, m)
-# define BOOST_PP_FOR_255(s, p, o, m) BOOST_PP_FOR_255_I(s, p, o, m)
-# define BOOST_PP_FOR_256(s, p, o, m) BOOST_PP_FOR_256_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_1(s, p, o, m) NDNBOOST_PP_FOR_1_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_2(s, p, o, m) NDNBOOST_PP_FOR_2_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_3(s, p, o, m) NDNBOOST_PP_FOR_3_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_4(s, p, o, m) NDNBOOST_PP_FOR_4_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_5(s, p, o, m) NDNBOOST_PP_FOR_5_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_6(s, p, o, m) NDNBOOST_PP_FOR_6_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_7(s, p, o, m) NDNBOOST_PP_FOR_7_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_8(s, p, o, m) NDNBOOST_PP_FOR_8_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_9(s, p, o, m) NDNBOOST_PP_FOR_9_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_10(s, p, o, m) NDNBOOST_PP_FOR_10_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_11(s, p, o, m) NDNBOOST_PP_FOR_11_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_12(s, p, o, m) NDNBOOST_PP_FOR_12_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_13(s, p, o, m) NDNBOOST_PP_FOR_13_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_14(s, p, o, m) NDNBOOST_PP_FOR_14_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_15(s, p, o, m) NDNBOOST_PP_FOR_15_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_16(s, p, o, m) NDNBOOST_PP_FOR_16_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_17(s, p, o, m) NDNBOOST_PP_FOR_17_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_18(s, p, o, m) NDNBOOST_PP_FOR_18_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_19(s, p, o, m) NDNBOOST_PP_FOR_19_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_20(s, p, o, m) NDNBOOST_PP_FOR_20_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_21(s, p, o, m) NDNBOOST_PP_FOR_21_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_22(s, p, o, m) NDNBOOST_PP_FOR_22_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_23(s, p, o, m) NDNBOOST_PP_FOR_23_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_24(s, p, o, m) NDNBOOST_PP_FOR_24_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_25(s, p, o, m) NDNBOOST_PP_FOR_25_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_26(s, p, o, m) NDNBOOST_PP_FOR_26_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_27(s, p, o, m) NDNBOOST_PP_FOR_27_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_28(s, p, o, m) NDNBOOST_PP_FOR_28_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_29(s, p, o, m) NDNBOOST_PP_FOR_29_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_30(s, p, o, m) NDNBOOST_PP_FOR_30_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_31(s, p, o, m) NDNBOOST_PP_FOR_31_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_32(s, p, o, m) NDNBOOST_PP_FOR_32_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_33(s, p, o, m) NDNBOOST_PP_FOR_33_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_34(s, p, o, m) NDNBOOST_PP_FOR_34_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_35(s, p, o, m) NDNBOOST_PP_FOR_35_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_36(s, p, o, m) NDNBOOST_PP_FOR_36_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_37(s, p, o, m) NDNBOOST_PP_FOR_37_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_38(s, p, o, m) NDNBOOST_PP_FOR_38_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_39(s, p, o, m) NDNBOOST_PP_FOR_39_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_40(s, p, o, m) NDNBOOST_PP_FOR_40_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_41(s, p, o, m) NDNBOOST_PP_FOR_41_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_42(s, p, o, m) NDNBOOST_PP_FOR_42_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_43(s, p, o, m) NDNBOOST_PP_FOR_43_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_44(s, p, o, m) NDNBOOST_PP_FOR_44_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_45(s, p, o, m) NDNBOOST_PP_FOR_45_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_46(s, p, o, m) NDNBOOST_PP_FOR_46_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_47(s, p, o, m) NDNBOOST_PP_FOR_47_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_48(s, p, o, m) NDNBOOST_PP_FOR_48_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_49(s, p, o, m) NDNBOOST_PP_FOR_49_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_50(s, p, o, m) NDNBOOST_PP_FOR_50_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_51(s, p, o, m) NDNBOOST_PP_FOR_51_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_52(s, p, o, m) NDNBOOST_PP_FOR_52_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_53(s, p, o, m) NDNBOOST_PP_FOR_53_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_54(s, p, o, m) NDNBOOST_PP_FOR_54_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_55(s, p, o, m) NDNBOOST_PP_FOR_55_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_56(s, p, o, m) NDNBOOST_PP_FOR_56_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_57(s, p, o, m) NDNBOOST_PP_FOR_57_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_58(s, p, o, m) NDNBOOST_PP_FOR_58_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_59(s, p, o, m) NDNBOOST_PP_FOR_59_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_60(s, p, o, m) NDNBOOST_PP_FOR_60_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_61(s, p, o, m) NDNBOOST_PP_FOR_61_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_62(s, p, o, m) NDNBOOST_PP_FOR_62_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_63(s, p, o, m) NDNBOOST_PP_FOR_63_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_64(s, p, o, m) NDNBOOST_PP_FOR_64_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_65(s, p, o, m) NDNBOOST_PP_FOR_65_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_66(s, p, o, m) NDNBOOST_PP_FOR_66_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_67(s, p, o, m) NDNBOOST_PP_FOR_67_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_68(s, p, o, m) NDNBOOST_PP_FOR_68_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_69(s, p, o, m) NDNBOOST_PP_FOR_69_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_70(s, p, o, m) NDNBOOST_PP_FOR_70_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_71(s, p, o, m) NDNBOOST_PP_FOR_71_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_72(s, p, o, m) NDNBOOST_PP_FOR_72_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_73(s, p, o, m) NDNBOOST_PP_FOR_73_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_74(s, p, o, m) NDNBOOST_PP_FOR_74_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_75(s, p, o, m) NDNBOOST_PP_FOR_75_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_76(s, p, o, m) NDNBOOST_PP_FOR_76_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_77(s, p, o, m) NDNBOOST_PP_FOR_77_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_78(s, p, o, m) NDNBOOST_PP_FOR_78_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_79(s, p, o, m) NDNBOOST_PP_FOR_79_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_80(s, p, o, m) NDNBOOST_PP_FOR_80_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_81(s, p, o, m) NDNBOOST_PP_FOR_81_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_82(s, p, o, m) NDNBOOST_PP_FOR_82_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_83(s, p, o, m) NDNBOOST_PP_FOR_83_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_84(s, p, o, m) NDNBOOST_PP_FOR_84_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_85(s, p, o, m) NDNBOOST_PP_FOR_85_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_86(s, p, o, m) NDNBOOST_PP_FOR_86_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_87(s, p, o, m) NDNBOOST_PP_FOR_87_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_88(s, p, o, m) NDNBOOST_PP_FOR_88_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_89(s, p, o, m) NDNBOOST_PP_FOR_89_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_90(s, p, o, m) NDNBOOST_PP_FOR_90_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_91(s, p, o, m) NDNBOOST_PP_FOR_91_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_92(s, p, o, m) NDNBOOST_PP_FOR_92_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_93(s, p, o, m) NDNBOOST_PP_FOR_93_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_94(s, p, o, m) NDNBOOST_PP_FOR_94_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_95(s, p, o, m) NDNBOOST_PP_FOR_95_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_96(s, p, o, m) NDNBOOST_PP_FOR_96_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_97(s, p, o, m) NDNBOOST_PP_FOR_97_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_98(s, p, o, m) NDNBOOST_PP_FOR_98_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_99(s, p, o, m) NDNBOOST_PP_FOR_99_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_100(s, p, o, m) NDNBOOST_PP_FOR_100_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_101(s, p, o, m) NDNBOOST_PP_FOR_101_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_102(s, p, o, m) NDNBOOST_PP_FOR_102_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_103(s, p, o, m) NDNBOOST_PP_FOR_103_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_104(s, p, o, m) NDNBOOST_PP_FOR_104_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_105(s, p, o, m) NDNBOOST_PP_FOR_105_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_106(s, p, o, m) NDNBOOST_PP_FOR_106_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_107(s, p, o, m) NDNBOOST_PP_FOR_107_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_108(s, p, o, m) NDNBOOST_PP_FOR_108_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_109(s, p, o, m) NDNBOOST_PP_FOR_109_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_110(s, p, o, m) NDNBOOST_PP_FOR_110_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_111(s, p, o, m) NDNBOOST_PP_FOR_111_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_112(s, p, o, m) NDNBOOST_PP_FOR_112_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_113(s, p, o, m) NDNBOOST_PP_FOR_113_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_114(s, p, o, m) NDNBOOST_PP_FOR_114_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_115(s, p, o, m) NDNBOOST_PP_FOR_115_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_116(s, p, o, m) NDNBOOST_PP_FOR_116_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_117(s, p, o, m) NDNBOOST_PP_FOR_117_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_118(s, p, o, m) NDNBOOST_PP_FOR_118_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_119(s, p, o, m) NDNBOOST_PP_FOR_119_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_120(s, p, o, m) NDNBOOST_PP_FOR_120_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_121(s, p, o, m) NDNBOOST_PP_FOR_121_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_122(s, p, o, m) NDNBOOST_PP_FOR_122_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_123(s, p, o, m) NDNBOOST_PP_FOR_123_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_124(s, p, o, m) NDNBOOST_PP_FOR_124_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_125(s, p, o, m) NDNBOOST_PP_FOR_125_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_126(s, p, o, m) NDNBOOST_PP_FOR_126_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_127(s, p, o, m) NDNBOOST_PP_FOR_127_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_128(s, p, o, m) NDNBOOST_PP_FOR_128_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_129(s, p, o, m) NDNBOOST_PP_FOR_129_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_130(s, p, o, m) NDNBOOST_PP_FOR_130_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_131(s, p, o, m) NDNBOOST_PP_FOR_131_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_132(s, p, o, m) NDNBOOST_PP_FOR_132_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_133(s, p, o, m) NDNBOOST_PP_FOR_133_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_134(s, p, o, m) NDNBOOST_PP_FOR_134_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_135(s, p, o, m) NDNBOOST_PP_FOR_135_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_136(s, p, o, m) NDNBOOST_PP_FOR_136_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_137(s, p, o, m) NDNBOOST_PP_FOR_137_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_138(s, p, o, m) NDNBOOST_PP_FOR_138_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_139(s, p, o, m) NDNBOOST_PP_FOR_139_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_140(s, p, o, m) NDNBOOST_PP_FOR_140_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_141(s, p, o, m) NDNBOOST_PP_FOR_141_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_142(s, p, o, m) NDNBOOST_PP_FOR_142_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_143(s, p, o, m) NDNBOOST_PP_FOR_143_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_144(s, p, o, m) NDNBOOST_PP_FOR_144_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_145(s, p, o, m) NDNBOOST_PP_FOR_145_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_146(s, p, o, m) NDNBOOST_PP_FOR_146_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_147(s, p, o, m) NDNBOOST_PP_FOR_147_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_148(s, p, o, m) NDNBOOST_PP_FOR_148_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_149(s, p, o, m) NDNBOOST_PP_FOR_149_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_150(s, p, o, m) NDNBOOST_PP_FOR_150_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_151(s, p, o, m) NDNBOOST_PP_FOR_151_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_152(s, p, o, m) NDNBOOST_PP_FOR_152_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_153(s, p, o, m) NDNBOOST_PP_FOR_153_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_154(s, p, o, m) NDNBOOST_PP_FOR_154_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_155(s, p, o, m) NDNBOOST_PP_FOR_155_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_156(s, p, o, m) NDNBOOST_PP_FOR_156_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_157(s, p, o, m) NDNBOOST_PP_FOR_157_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_158(s, p, o, m) NDNBOOST_PP_FOR_158_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_159(s, p, o, m) NDNBOOST_PP_FOR_159_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_160(s, p, o, m) NDNBOOST_PP_FOR_160_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_161(s, p, o, m) NDNBOOST_PP_FOR_161_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_162(s, p, o, m) NDNBOOST_PP_FOR_162_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_163(s, p, o, m) NDNBOOST_PP_FOR_163_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_164(s, p, o, m) NDNBOOST_PP_FOR_164_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_165(s, p, o, m) NDNBOOST_PP_FOR_165_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_166(s, p, o, m) NDNBOOST_PP_FOR_166_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_167(s, p, o, m) NDNBOOST_PP_FOR_167_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_168(s, p, o, m) NDNBOOST_PP_FOR_168_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_169(s, p, o, m) NDNBOOST_PP_FOR_169_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_170(s, p, o, m) NDNBOOST_PP_FOR_170_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_171(s, p, o, m) NDNBOOST_PP_FOR_171_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_172(s, p, o, m) NDNBOOST_PP_FOR_172_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_173(s, p, o, m) NDNBOOST_PP_FOR_173_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_174(s, p, o, m) NDNBOOST_PP_FOR_174_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_175(s, p, o, m) NDNBOOST_PP_FOR_175_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_176(s, p, o, m) NDNBOOST_PP_FOR_176_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_177(s, p, o, m) NDNBOOST_PP_FOR_177_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_178(s, p, o, m) NDNBOOST_PP_FOR_178_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_179(s, p, o, m) NDNBOOST_PP_FOR_179_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_180(s, p, o, m) NDNBOOST_PP_FOR_180_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_181(s, p, o, m) NDNBOOST_PP_FOR_181_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_182(s, p, o, m) NDNBOOST_PP_FOR_182_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_183(s, p, o, m) NDNBOOST_PP_FOR_183_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_184(s, p, o, m) NDNBOOST_PP_FOR_184_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_185(s, p, o, m) NDNBOOST_PP_FOR_185_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_186(s, p, o, m) NDNBOOST_PP_FOR_186_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_187(s, p, o, m) NDNBOOST_PP_FOR_187_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_188(s, p, o, m) NDNBOOST_PP_FOR_188_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_189(s, p, o, m) NDNBOOST_PP_FOR_189_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_190(s, p, o, m) NDNBOOST_PP_FOR_190_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_191(s, p, o, m) NDNBOOST_PP_FOR_191_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_192(s, p, o, m) NDNBOOST_PP_FOR_192_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_193(s, p, o, m) NDNBOOST_PP_FOR_193_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_194(s, p, o, m) NDNBOOST_PP_FOR_194_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_195(s, p, o, m) NDNBOOST_PP_FOR_195_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_196(s, p, o, m) NDNBOOST_PP_FOR_196_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_197(s, p, o, m) NDNBOOST_PP_FOR_197_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_198(s, p, o, m) NDNBOOST_PP_FOR_198_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_199(s, p, o, m) NDNBOOST_PP_FOR_199_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_200(s, p, o, m) NDNBOOST_PP_FOR_200_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_201(s, p, o, m) NDNBOOST_PP_FOR_201_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_202(s, p, o, m) NDNBOOST_PP_FOR_202_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_203(s, p, o, m) NDNBOOST_PP_FOR_203_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_204(s, p, o, m) NDNBOOST_PP_FOR_204_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_205(s, p, o, m) NDNBOOST_PP_FOR_205_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_206(s, p, o, m) NDNBOOST_PP_FOR_206_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_207(s, p, o, m) NDNBOOST_PP_FOR_207_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_208(s, p, o, m) NDNBOOST_PP_FOR_208_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_209(s, p, o, m) NDNBOOST_PP_FOR_209_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_210(s, p, o, m) NDNBOOST_PP_FOR_210_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_211(s, p, o, m) NDNBOOST_PP_FOR_211_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_212(s, p, o, m) NDNBOOST_PP_FOR_212_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_213(s, p, o, m) NDNBOOST_PP_FOR_213_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_214(s, p, o, m) NDNBOOST_PP_FOR_214_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_215(s, p, o, m) NDNBOOST_PP_FOR_215_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_216(s, p, o, m) NDNBOOST_PP_FOR_216_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_217(s, p, o, m) NDNBOOST_PP_FOR_217_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_218(s, p, o, m) NDNBOOST_PP_FOR_218_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_219(s, p, o, m) NDNBOOST_PP_FOR_219_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_220(s, p, o, m) NDNBOOST_PP_FOR_220_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_221(s, p, o, m) NDNBOOST_PP_FOR_221_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_222(s, p, o, m) NDNBOOST_PP_FOR_222_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_223(s, p, o, m) NDNBOOST_PP_FOR_223_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_224(s, p, o, m) NDNBOOST_PP_FOR_224_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_225(s, p, o, m) NDNBOOST_PP_FOR_225_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_226(s, p, o, m) NDNBOOST_PP_FOR_226_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_227(s, p, o, m) NDNBOOST_PP_FOR_227_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_228(s, p, o, m) NDNBOOST_PP_FOR_228_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_229(s, p, o, m) NDNBOOST_PP_FOR_229_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_230(s, p, o, m) NDNBOOST_PP_FOR_230_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_231(s, p, o, m) NDNBOOST_PP_FOR_231_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_232(s, p, o, m) NDNBOOST_PP_FOR_232_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_233(s, p, o, m) NDNBOOST_PP_FOR_233_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_234(s, p, o, m) NDNBOOST_PP_FOR_234_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_235(s, p, o, m) NDNBOOST_PP_FOR_235_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_236(s, p, o, m) NDNBOOST_PP_FOR_236_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_237(s, p, o, m) NDNBOOST_PP_FOR_237_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_238(s, p, o, m) NDNBOOST_PP_FOR_238_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_239(s, p, o, m) NDNBOOST_PP_FOR_239_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_240(s, p, o, m) NDNBOOST_PP_FOR_240_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_241(s, p, o, m) NDNBOOST_PP_FOR_241_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_242(s, p, o, m) NDNBOOST_PP_FOR_242_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_243(s, p, o, m) NDNBOOST_PP_FOR_243_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_244(s, p, o, m) NDNBOOST_PP_FOR_244_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_245(s, p, o, m) NDNBOOST_PP_FOR_245_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_246(s, p, o, m) NDNBOOST_PP_FOR_246_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_247(s, p, o, m) NDNBOOST_PP_FOR_247_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_248(s, p, o, m) NDNBOOST_PP_FOR_248_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_249(s, p, o, m) NDNBOOST_PP_FOR_249_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_250(s, p, o, m) NDNBOOST_PP_FOR_250_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_251(s, p, o, m) NDNBOOST_PP_FOR_251_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_252(s, p, o, m) NDNBOOST_PP_FOR_252_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_253(s, p, o, m) NDNBOOST_PP_FOR_253_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_254(s, p, o, m) NDNBOOST_PP_FOR_254_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_255(s, p, o, m) NDNBOOST_PP_FOR_255_I(s, p, o, m)
+# define NDNBOOST_PP_FOR_256(s, p, o, m) NDNBOOST_PP_FOR_256_I(s, p, o, m)
 #
-# define BOOST_PP_FOR_1_I(s, p, o, m) BOOST_PP_IF(p(2, s), m, BOOST_PP_TUPLE_EAT_2)(2, s) BOOST_PP_IF(p(2, s), BOOST_PP_FOR_2, BOOST_PP_TUPLE_EAT_4)(o(2, s), p, o, m)
-# define BOOST_PP_FOR_2_I(s, p, o, m) BOOST_PP_IF(p(3, s), m, BOOST_PP_TUPLE_EAT_2)(3, s) BOOST_PP_IF(p(3, s), BOOST_PP_FOR_3, BOOST_PP_TUPLE_EAT_4)(o(3, s), p, o, m)
-# define BOOST_PP_FOR_3_I(s, p, o, m) BOOST_PP_IF(p(4, s), m, BOOST_PP_TUPLE_EAT_2)(4, s) BOOST_PP_IF(p(4, s), BOOST_PP_FOR_4, BOOST_PP_TUPLE_EAT_4)(o(4, s), p, o, m)
-# define BOOST_PP_FOR_4_I(s, p, o, m) BOOST_PP_IF(p(5, s), m, BOOST_PP_TUPLE_EAT_2)(5, s) BOOST_PP_IF(p(5, s), BOOST_PP_FOR_5, BOOST_PP_TUPLE_EAT_4)(o(5, s), p, o, m)
-# define BOOST_PP_FOR_5_I(s, p, o, m) BOOST_PP_IF(p(6, s), m, BOOST_PP_TUPLE_EAT_2)(6, s) BOOST_PP_IF(p(6, s), BOOST_PP_FOR_6, BOOST_PP_TUPLE_EAT_4)(o(6, s), p, o, m)
-# define BOOST_PP_FOR_6_I(s, p, o, m) BOOST_PP_IF(p(7, s), m, BOOST_PP_TUPLE_EAT_2)(7, s) BOOST_PP_IF(p(7, s), BOOST_PP_FOR_7, BOOST_PP_TUPLE_EAT_4)(o(7, s), p, o, m)
-# define BOOST_PP_FOR_7_I(s, p, o, m) BOOST_PP_IF(p(8, s), m, BOOST_PP_TUPLE_EAT_2)(8, s) BOOST_PP_IF(p(8, s), BOOST_PP_FOR_8, BOOST_PP_TUPLE_EAT_4)(o(8, s), p, o, m)
-# define BOOST_PP_FOR_8_I(s, p, o, m) BOOST_PP_IF(p(9, s), m, BOOST_PP_TUPLE_EAT_2)(9, s) BOOST_PP_IF(p(9, s), BOOST_PP_FOR_9, BOOST_PP_TUPLE_EAT_4)(o(9, s), p, o, m)
-# define BOOST_PP_FOR_9_I(s, p, o, m) BOOST_PP_IF(p(10, s), m, BOOST_PP_TUPLE_EAT_2)(10, s) BOOST_PP_IF(p(10, s), BOOST_PP_FOR_10, BOOST_PP_TUPLE_EAT_4)(o(10, s), p, o, m)
-# define BOOST_PP_FOR_10_I(s, p, o, m) BOOST_PP_IF(p(11, s), m, BOOST_PP_TUPLE_EAT_2)(11, s) BOOST_PP_IF(p(11, s), BOOST_PP_FOR_11, BOOST_PP_TUPLE_EAT_4)(o(11, s), p, o, m)
-# define BOOST_PP_FOR_11_I(s, p, o, m) BOOST_PP_IF(p(12, s), m, BOOST_PP_TUPLE_EAT_2)(12, s) BOOST_PP_IF(p(12, s), BOOST_PP_FOR_12, BOOST_PP_TUPLE_EAT_4)(o(12, s), p, o, m)
-# define BOOST_PP_FOR_12_I(s, p, o, m) BOOST_PP_IF(p(13, s), m, BOOST_PP_TUPLE_EAT_2)(13, s) BOOST_PP_IF(p(13, s), BOOST_PP_FOR_13, BOOST_PP_TUPLE_EAT_4)(o(13, s), p, o, m)
-# define BOOST_PP_FOR_13_I(s, p, o, m) BOOST_PP_IF(p(14, s), m, BOOST_PP_TUPLE_EAT_2)(14, s) BOOST_PP_IF(p(14, s), BOOST_PP_FOR_14, BOOST_PP_TUPLE_EAT_4)(o(14, s), p, o, m)
-# define BOOST_PP_FOR_14_I(s, p, o, m) BOOST_PP_IF(p(15, s), m, BOOST_PP_TUPLE_EAT_2)(15, s) BOOST_PP_IF(p(15, s), BOOST_PP_FOR_15, BOOST_PP_TUPLE_EAT_4)(o(15, s), p, o, m)
-# define BOOST_PP_FOR_15_I(s, p, o, m) BOOST_PP_IF(p(16, s), m, BOOST_PP_TUPLE_EAT_2)(16, s) BOOST_PP_IF(p(16, s), BOOST_PP_FOR_16, BOOST_PP_TUPLE_EAT_4)(o(16, s), p, o, m)
-# define BOOST_PP_FOR_16_I(s, p, o, m) BOOST_PP_IF(p(17, s), m, BOOST_PP_TUPLE_EAT_2)(17, s) BOOST_PP_IF(p(17, s), BOOST_PP_FOR_17, BOOST_PP_TUPLE_EAT_4)(o(17, s), p, o, m)
-# define BOOST_PP_FOR_17_I(s, p, o, m) BOOST_PP_IF(p(18, s), m, BOOST_PP_TUPLE_EAT_2)(18, s) BOOST_PP_IF(p(18, s), BOOST_PP_FOR_18, BOOST_PP_TUPLE_EAT_4)(o(18, s), p, o, m)
-# define BOOST_PP_FOR_18_I(s, p, o, m) BOOST_PP_IF(p(19, s), m, BOOST_PP_TUPLE_EAT_2)(19, s) BOOST_PP_IF(p(19, s), BOOST_PP_FOR_19, BOOST_PP_TUPLE_EAT_4)(o(19, s), p, o, m)
-# define BOOST_PP_FOR_19_I(s, p, o, m) BOOST_PP_IF(p(20, s), m, BOOST_PP_TUPLE_EAT_2)(20, s) BOOST_PP_IF(p(20, s), BOOST_PP_FOR_20, BOOST_PP_TUPLE_EAT_4)(o(20, s), p, o, m)
-# define BOOST_PP_FOR_20_I(s, p, o, m) BOOST_PP_IF(p(21, s), m, BOOST_PP_TUPLE_EAT_2)(21, s) BOOST_PP_IF(p(21, s), BOOST_PP_FOR_21, BOOST_PP_TUPLE_EAT_4)(o(21, s), p, o, m)
-# define BOOST_PP_FOR_21_I(s, p, o, m) BOOST_PP_IF(p(22, s), m, BOOST_PP_TUPLE_EAT_2)(22, s) BOOST_PP_IF(p(22, s), BOOST_PP_FOR_22, BOOST_PP_TUPLE_EAT_4)(o(22, s), p, o, m)
-# define BOOST_PP_FOR_22_I(s, p, o, m) BOOST_PP_IF(p(23, s), m, BOOST_PP_TUPLE_EAT_2)(23, s) BOOST_PP_IF(p(23, s), BOOST_PP_FOR_23, BOOST_PP_TUPLE_EAT_4)(o(23, s), p, o, m)
-# define BOOST_PP_FOR_23_I(s, p, o, m) BOOST_PP_IF(p(24, s), m, BOOST_PP_TUPLE_EAT_2)(24, s) BOOST_PP_IF(p(24, s), BOOST_PP_FOR_24, BOOST_PP_TUPLE_EAT_4)(o(24, s), p, o, m)
-# define BOOST_PP_FOR_24_I(s, p, o, m) BOOST_PP_IF(p(25, s), m, BOOST_PP_TUPLE_EAT_2)(25, s) BOOST_PP_IF(p(25, s), BOOST_PP_FOR_25, BOOST_PP_TUPLE_EAT_4)(o(25, s), p, o, m)
-# define BOOST_PP_FOR_25_I(s, p, o, m) BOOST_PP_IF(p(26, s), m, BOOST_PP_TUPLE_EAT_2)(26, s) BOOST_PP_IF(p(26, s), BOOST_PP_FOR_26, BOOST_PP_TUPLE_EAT_4)(o(26, s), p, o, m)
-# define BOOST_PP_FOR_26_I(s, p, o, m) BOOST_PP_IF(p(27, s), m, BOOST_PP_TUPLE_EAT_2)(27, s) BOOST_PP_IF(p(27, s), BOOST_PP_FOR_27, BOOST_PP_TUPLE_EAT_4)(o(27, s), p, o, m)
-# define BOOST_PP_FOR_27_I(s, p, o, m) BOOST_PP_IF(p(28, s), m, BOOST_PP_TUPLE_EAT_2)(28, s) BOOST_PP_IF(p(28, s), BOOST_PP_FOR_28, BOOST_PP_TUPLE_EAT_4)(o(28, s), p, o, m)
-# define BOOST_PP_FOR_28_I(s, p, o, m) BOOST_PP_IF(p(29, s), m, BOOST_PP_TUPLE_EAT_2)(29, s) BOOST_PP_IF(p(29, s), BOOST_PP_FOR_29, BOOST_PP_TUPLE_EAT_4)(o(29, s), p, o, m)
-# define BOOST_PP_FOR_29_I(s, p, o, m) BOOST_PP_IF(p(30, s), m, BOOST_PP_TUPLE_EAT_2)(30, s) BOOST_PP_IF(p(30, s), BOOST_PP_FOR_30, BOOST_PP_TUPLE_EAT_4)(o(30, s), p, o, m)
-# define BOOST_PP_FOR_30_I(s, p, o, m) BOOST_PP_IF(p(31, s), m, BOOST_PP_TUPLE_EAT_2)(31, s) BOOST_PP_IF(p(31, s), BOOST_PP_FOR_31, BOOST_PP_TUPLE_EAT_4)(o(31, s), p, o, m)
-# define BOOST_PP_FOR_31_I(s, p, o, m) BOOST_PP_IF(p(32, s), m, BOOST_PP_TUPLE_EAT_2)(32, s) BOOST_PP_IF(p(32, s), BOOST_PP_FOR_32, BOOST_PP_TUPLE_EAT_4)(o(32, s), p, o, m)
-# define BOOST_PP_FOR_32_I(s, p, o, m) BOOST_PP_IF(p(33, s), m, BOOST_PP_TUPLE_EAT_2)(33, s) BOOST_PP_IF(p(33, s), BOOST_PP_FOR_33, BOOST_PP_TUPLE_EAT_4)(o(33, s), p, o, m)
-# define BOOST_PP_FOR_33_I(s, p, o, m) BOOST_PP_IF(p(34, s), m, BOOST_PP_TUPLE_EAT_2)(34, s) BOOST_PP_IF(p(34, s), BOOST_PP_FOR_34, BOOST_PP_TUPLE_EAT_4)(o(34, s), p, o, m)
-# define BOOST_PP_FOR_34_I(s, p, o, m) BOOST_PP_IF(p(35, s), m, BOOST_PP_TUPLE_EAT_2)(35, s) BOOST_PP_IF(p(35, s), BOOST_PP_FOR_35, BOOST_PP_TUPLE_EAT_4)(o(35, s), p, o, m)
-# define BOOST_PP_FOR_35_I(s, p, o, m) BOOST_PP_IF(p(36, s), m, BOOST_PP_TUPLE_EAT_2)(36, s) BOOST_PP_IF(p(36, s), BOOST_PP_FOR_36, BOOST_PP_TUPLE_EAT_4)(o(36, s), p, o, m)
-# define BOOST_PP_FOR_36_I(s, p, o, m) BOOST_PP_IF(p(37, s), m, BOOST_PP_TUPLE_EAT_2)(37, s) BOOST_PP_IF(p(37, s), BOOST_PP_FOR_37, BOOST_PP_TUPLE_EAT_4)(o(37, s), p, o, m)
-# define BOOST_PP_FOR_37_I(s, p, o, m) BOOST_PP_IF(p(38, s), m, BOOST_PP_TUPLE_EAT_2)(38, s) BOOST_PP_IF(p(38, s), BOOST_PP_FOR_38, BOOST_PP_TUPLE_EAT_4)(o(38, s), p, o, m)
-# define BOOST_PP_FOR_38_I(s, p, o, m) BOOST_PP_IF(p(39, s), m, BOOST_PP_TUPLE_EAT_2)(39, s) BOOST_PP_IF(p(39, s), BOOST_PP_FOR_39, BOOST_PP_TUPLE_EAT_4)(o(39, s), p, o, m)
-# define BOOST_PP_FOR_39_I(s, p, o, m) BOOST_PP_IF(p(40, s), m, BOOST_PP_TUPLE_EAT_2)(40, s) BOOST_PP_IF(p(40, s), BOOST_PP_FOR_40, BOOST_PP_TUPLE_EAT_4)(o(40, s), p, o, m)
-# define BOOST_PP_FOR_40_I(s, p, o, m) BOOST_PP_IF(p(41, s), m, BOOST_PP_TUPLE_EAT_2)(41, s) BOOST_PP_IF(p(41, s), BOOST_PP_FOR_41, BOOST_PP_TUPLE_EAT_4)(o(41, s), p, o, m)
-# define BOOST_PP_FOR_41_I(s, p, o, m) BOOST_PP_IF(p(42, s), m, BOOST_PP_TUPLE_EAT_2)(42, s) BOOST_PP_IF(p(42, s), BOOST_PP_FOR_42, BOOST_PP_TUPLE_EAT_4)(o(42, s), p, o, m)
-# define BOOST_PP_FOR_42_I(s, p, o, m) BOOST_PP_IF(p(43, s), m, BOOST_PP_TUPLE_EAT_2)(43, s) BOOST_PP_IF(p(43, s), BOOST_PP_FOR_43, BOOST_PP_TUPLE_EAT_4)(o(43, s), p, o, m)
-# define BOOST_PP_FOR_43_I(s, p, o, m) BOOST_PP_IF(p(44, s), m, BOOST_PP_TUPLE_EAT_2)(44, s) BOOST_PP_IF(p(44, s), BOOST_PP_FOR_44, BOOST_PP_TUPLE_EAT_4)(o(44, s), p, o, m)
-# define BOOST_PP_FOR_44_I(s, p, o, m) BOOST_PP_IF(p(45, s), m, BOOST_PP_TUPLE_EAT_2)(45, s) BOOST_PP_IF(p(45, s), BOOST_PP_FOR_45, BOOST_PP_TUPLE_EAT_4)(o(45, s), p, o, m)
-# define BOOST_PP_FOR_45_I(s, p, o, m) BOOST_PP_IF(p(46, s), m, BOOST_PP_TUPLE_EAT_2)(46, s) BOOST_PP_IF(p(46, s), BOOST_PP_FOR_46, BOOST_PP_TUPLE_EAT_4)(o(46, s), p, o, m)
-# define BOOST_PP_FOR_46_I(s, p, o, m) BOOST_PP_IF(p(47, s), m, BOOST_PP_TUPLE_EAT_2)(47, s) BOOST_PP_IF(p(47, s), BOOST_PP_FOR_47, BOOST_PP_TUPLE_EAT_4)(o(47, s), p, o, m)
-# define BOOST_PP_FOR_47_I(s, p, o, m) BOOST_PP_IF(p(48, s), m, BOOST_PP_TUPLE_EAT_2)(48, s) BOOST_PP_IF(p(48, s), BOOST_PP_FOR_48, BOOST_PP_TUPLE_EAT_4)(o(48, s), p, o, m)
-# define BOOST_PP_FOR_48_I(s, p, o, m) BOOST_PP_IF(p(49, s), m, BOOST_PP_TUPLE_EAT_2)(49, s) BOOST_PP_IF(p(49, s), BOOST_PP_FOR_49, BOOST_PP_TUPLE_EAT_4)(o(49, s), p, o, m)
-# define BOOST_PP_FOR_49_I(s, p, o, m) BOOST_PP_IF(p(50, s), m, BOOST_PP_TUPLE_EAT_2)(50, s) BOOST_PP_IF(p(50, s), BOOST_PP_FOR_50, BOOST_PP_TUPLE_EAT_4)(o(50, s), p, o, m)
-# define BOOST_PP_FOR_50_I(s, p, o, m) BOOST_PP_IF(p(51, s), m, BOOST_PP_TUPLE_EAT_2)(51, s) BOOST_PP_IF(p(51, s), BOOST_PP_FOR_51, BOOST_PP_TUPLE_EAT_4)(o(51, s), p, o, m)
-# define BOOST_PP_FOR_51_I(s, p, o, m) BOOST_PP_IF(p(52, s), m, BOOST_PP_TUPLE_EAT_2)(52, s) BOOST_PP_IF(p(52, s), BOOST_PP_FOR_52, BOOST_PP_TUPLE_EAT_4)(o(52, s), p, o, m)
-# define BOOST_PP_FOR_52_I(s, p, o, m) BOOST_PP_IF(p(53, s), m, BOOST_PP_TUPLE_EAT_2)(53, s) BOOST_PP_IF(p(53, s), BOOST_PP_FOR_53, BOOST_PP_TUPLE_EAT_4)(o(53, s), p, o, m)
-# define BOOST_PP_FOR_53_I(s, p, o, m) BOOST_PP_IF(p(54, s), m, BOOST_PP_TUPLE_EAT_2)(54, s) BOOST_PP_IF(p(54, s), BOOST_PP_FOR_54, BOOST_PP_TUPLE_EAT_4)(o(54, s), p, o, m)
-# define BOOST_PP_FOR_54_I(s, p, o, m) BOOST_PP_IF(p(55, s), m, BOOST_PP_TUPLE_EAT_2)(55, s) BOOST_PP_IF(p(55, s), BOOST_PP_FOR_55, BOOST_PP_TUPLE_EAT_4)(o(55, s), p, o, m)
-# define BOOST_PP_FOR_55_I(s, p, o, m) BOOST_PP_IF(p(56, s), m, BOOST_PP_TUPLE_EAT_2)(56, s) BOOST_PP_IF(p(56, s), BOOST_PP_FOR_56, BOOST_PP_TUPLE_EAT_4)(o(56, s), p, o, m)
-# define BOOST_PP_FOR_56_I(s, p, o, m) BOOST_PP_IF(p(57, s), m, BOOST_PP_TUPLE_EAT_2)(57, s) BOOST_PP_IF(p(57, s), BOOST_PP_FOR_57, BOOST_PP_TUPLE_EAT_4)(o(57, s), p, o, m)
-# define BOOST_PP_FOR_57_I(s, p, o, m) BOOST_PP_IF(p(58, s), m, BOOST_PP_TUPLE_EAT_2)(58, s) BOOST_PP_IF(p(58, s), BOOST_PP_FOR_58, BOOST_PP_TUPLE_EAT_4)(o(58, s), p, o, m)
-# define BOOST_PP_FOR_58_I(s, p, o, m) BOOST_PP_IF(p(59, s), m, BOOST_PP_TUPLE_EAT_2)(59, s) BOOST_PP_IF(p(59, s), BOOST_PP_FOR_59, BOOST_PP_TUPLE_EAT_4)(o(59, s), p, o, m)
-# define BOOST_PP_FOR_59_I(s, p, o, m) BOOST_PP_IF(p(60, s), m, BOOST_PP_TUPLE_EAT_2)(60, s) BOOST_PP_IF(p(60, s), BOOST_PP_FOR_60, BOOST_PP_TUPLE_EAT_4)(o(60, s), p, o, m)
-# define BOOST_PP_FOR_60_I(s, p, o, m) BOOST_PP_IF(p(61, s), m, BOOST_PP_TUPLE_EAT_2)(61, s) BOOST_PP_IF(p(61, s), BOOST_PP_FOR_61, BOOST_PP_TUPLE_EAT_4)(o(61, s), p, o, m)
-# define BOOST_PP_FOR_61_I(s, p, o, m) BOOST_PP_IF(p(62, s), m, BOOST_PP_TUPLE_EAT_2)(62, s) BOOST_PP_IF(p(62, s), BOOST_PP_FOR_62, BOOST_PP_TUPLE_EAT_4)(o(62, s), p, o, m)
-# define BOOST_PP_FOR_62_I(s, p, o, m) BOOST_PP_IF(p(63, s), m, BOOST_PP_TUPLE_EAT_2)(63, s) BOOST_PP_IF(p(63, s), BOOST_PP_FOR_63, BOOST_PP_TUPLE_EAT_4)(o(63, s), p, o, m)
-# define BOOST_PP_FOR_63_I(s, p, o, m) BOOST_PP_IF(p(64, s), m, BOOST_PP_TUPLE_EAT_2)(64, s) BOOST_PP_IF(p(64, s), BOOST_PP_FOR_64, BOOST_PP_TUPLE_EAT_4)(o(64, s), p, o, m)
-# define BOOST_PP_FOR_64_I(s, p, o, m) BOOST_PP_IF(p(65, s), m, BOOST_PP_TUPLE_EAT_2)(65, s) BOOST_PP_IF(p(65, s), BOOST_PP_FOR_65, BOOST_PP_TUPLE_EAT_4)(o(65, s), p, o, m)
-# define BOOST_PP_FOR_65_I(s, p, o, m) BOOST_PP_IF(p(66, s), m, BOOST_PP_TUPLE_EAT_2)(66, s) BOOST_PP_IF(p(66, s), BOOST_PP_FOR_66, BOOST_PP_TUPLE_EAT_4)(o(66, s), p, o, m)
-# define BOOST_PP_FOR_66_I(s, p, o, m) BOOST_PP_IF(p(67, s), m, BOOST_PP_TUPLE_EAT_2)(67, s) BOOST_PP_IF(p(67, s), BOOST_PP_FOR_67, BOOST_PP_TUPLE_EAT_4)(o(67, s), p, o, m)
-# define BOOST_PP_FOR_67_I(s, p, o, m) BOOST_PP_IF(p(68, s), m, BOOST_PP_TUPLE_EAT_2)(68, s) BOOST_PP_IF(p(68, s), BOOST_PP_FOR_68, BOOST_PP_TUPLE_EAT_4)(o(68, s), p, o, m)
-# define BOOST_PP_FOR_68_I(s, p, o, m) BOOST_PP_IF(p(69, s), m, BOOST_PP_TUPLE_EAT_2)(69, s) BOOST_PP_IF(p(69, s), BOOST_PP_FOR_69, BOOST_PP_TUPLE_EAT_4)(o(69, s), p, o, m)
-# define BOOST_PP_FOR_69_I(s, p, o, m) BOOST_PP_IF(p(70, s), m, BOOST_PP_TUPLE_EAT_2)(70, s) BOOST_PP_IF(p(70, s), BOOST_PP_FOR_70, BOOST_PP_TUPLE_EAT_4)(o(70, s), p, o, m)
-# define BOOST_PP_FOR_70_I(s, p, o, m) BOOST_PP_IF(p(71, s), m, BOOST_PP_TUPLE_EAT_2)(71, s) BOOST_PP_IF(p(71, s), BOOST_PP_FOR_71, BOOST_PP_TUPLE_EAT_4)(o(71, s), p, o, m)
-# define BOOST_PP_FOR_71_I(s, p, o, m) BOOST_PP_IF(p(72, s), m, BOOST_PP_TUPLE_EAT_2)(72, s) BOOST_PP_IF(p(72, s), BOOST_PP_FOR_72, BOOST_PP_TUPLE_EAT_4)(o(72, s), p, o, m)
-# define BOOST_PP_FOR_72_I(s, p, o, m) BOOST_PP_IF(p(73, s), m, BOOST_PP_TUPLE_EAT_2)(73, s) BOOST_PP_IF(p(73, s), BOOST_PP_FOR_73, BOOST_PP_TUPLE_EAT_4)(o(73, s), p, o, m)
-# define BOOST_PP_FOR_73_I(s, p, o, m) BOOST_PP_IF(p(74, s), m, BOOST_PP_TUPLE_EAT_2)(74, s) BOOST_PP_IF(p(74, s), BOOST_PP_FOR_74, BOOST_PP_TUPLE_EAT_4)(o(74, s), p, o, m)
-# define BOOST_PP_FOR_74_I(s, p, o, m) BOOST_PP_IF(p(75, s), m, BOOST_PP_TUPLE_EAT_2)(75, s) BOOST_PP_IF(p(75, s), BOOST_PP_FOR_75, BOOST_PP_TUPLE_EAT_4)(o(75, s), p, o, m)
-# define BOOST_PP_FOR_75_I(s, p, o, m) BOOST_PP_IF(p(76, s), m, BOOST_PP_TUPLE_EAT_2)(76, s) BOOST_PP_IF(p(76, s), BOOST_PP_FOR_76, BOOST_PP_TUPLE_EAT_4)(o(76, s), p, o, m)
-# define BOOST_PP_FOR_76_I(s, p, o, m) BOOST_PP_IF(p(77, s), m, BOOST_PP_TUPLE_EAT_2)(77, s) BOOST_PP_IF(p(77, s), BOOST_PP_FOR_77, BOOST_PP_TUPLE_EAT_4)(o(77, s), p, o, m)
-# define BOOST_PP_FOR_77_I(s, p, o, m) BOOST_PP_IF(p(78, s), m, BOOST_PP_TUPLE_EAT_2)(78, s) BOOST_PP_IF(p(78, s), BOOST_PP_FOR_78, BOOST_PP_TUPLE_EAT_4)(o(78, s), p, o, m)
-# define BOOST_PP_FOR_78_I(s, p, o, m) BOOST_PP_IF(p(79, s), m, BOOST_PP_TUPLE_EAT_2)(79, s) BOOST_PP_IF(p(79, s), BOOST_PP_FOR_79, BOOST_PP_TUPLE_EAT_4)(o(79, s), p, o, m)
-# define BOOST_PP_FOR_79_I(s, p, o, m) BOOST_PP_IF(p(80, s), m, BOOST_PP_TUPLE_EAT_2)(80, s) BOOST_PP_IF(p(80, s), BOOST_PP_FOR_80, BOOST_PP_TUPLE_EAT_4)(o(80, s), p, o, m)
-# define BOOST_PP_FOR_80_I(s, p, o, m) BOOST_PP_IF(p(81, s), m, BOOST_PP_TUPLE_EAT_2)(81, s) BOOST_PP_IF(p(81, s), BOOST_PP_FOR_81, BOOST_PP_TUPLE_EAT_4)(o(81, s), p, o, m)
-# define BOOST_PP_FOR_81_I(s, p, o, m) BOOST_PP_IF(p(82, s), m, BOOST_PP_TUPLE_EAT_2)(82, s) BOOST_PP_IF(p(82, s), BOOST_PP_FOR_82, BOOST_PP_TUPLE_EAT_4)(o(82, s), p, o, m)
-# define BOOST_PP_FOR_82_I(s, p, o, m) BOOST_PP_IF(p(83, s), m, BOOST_PP_TUPLE_EAT_2)(83, s) BOOST_PP_IF(p(83, s), BOOST_PP_FOR_83, BOOST_PP_TUPLE_EAT_4)(o(83, s), p, o, m)
-# define BOOST_PP_FOR_83_I(s, p, o, m) BOOST_PP_IF(p(84, s), m, BOOST_PP_TUPLE_EAT_2)(84, s) BOOST_PP_IF(p(84, s), BOOST_PP_FOR_84, BOOST_PP_TUPLE_EAT_4)(o(84, s), p, o, m)
-# define BOOST_PP_FOR_84_I(s, p, o, m) BOOST_PP_IF(p(85, s), m, BOOST_PP_TUPLE_EAT_2)(85, s) BOOST_PP_IF(p(85, s), BOOST_PP_FOR_85, BOOST_PP_TUPLE_EAT_4)(o(85, s), p, o, m)
-# define BOOST_PP_FOR_85_I(s, p, o, m) BOOST_PP_IF(p(86, s), m, BOOST_PP_TUPLE_EAT_2)(86, s) BOOST_PP_IF(p(86, s), BOOST_PP_FOR_86, BOOST_PP_TUPLE_EAT_4)(o(86, s), p, o, m)
-# define BOOST_PP_FOR_86_I(s, p, o, m) BOOST_PP_IF(p(87, s), m, BOOST_PP_TUPLE_EAT_2)(87, s) BOOST_PP_IF(p(87, s), BOOST_PP_FOR_87, BOOST_PP_TUPLE_EAT_4)(o(87, s), p, o, m)
-# define BOOST_PP_FOR_87_I(s, p, o, m) BOOST_PP_IF(p(88, s), m, BOOST_PP_TUPLE_EAT_2)(88, s) BOOST_PP_IF(p(88, s), BOOST_PP_FOR_88, BOOST_PP_TUPLE_EAT_4)(o(88, s), p, o, m)
-# define BOOST_PP_FOR_88_I(s, p, o, m) BOOST_PP_IF(p(89, s), m, BOOST_PP_TUPLE_EAT_2)(89, s) BOOST_PP_IF(p(89, s), BOOST_PP_FOR_89, BOOST_PP_TUPLE_EAT_4)(o(89, s), p, o, m)
-# define BOOST_PP_FOR_89_I(s, p, o, m) BOOST_PP_IF(p(90, s), m, BOOST_PP_TUPLE_EAT_2)(90, s) BOOST_PP_IF(p(90, s), BOOST_PP_FOR_90, BOOST_PP_TUPLE_EAT_4)(o(90, s), p, o, m)
-# define BOOST_PP_FOR_90_I(s, p, o, m) BOOST_PP_IF(p(91, s), m, BOOST_PP_TUPLE_EAT_2)(91, s) BOOST_PP_IF(p(91, s), BOOST_PP_FOR_91, BOOST_PP_TUPLE_EAT_4)(o(91, s), p, o, m)
-# define BOOST_PP_FOR_91_I(s, p, o, m) BOOST_PP_IF(p(92, s), m, BOOST_PP_TUPLE_EAT_2)(92, s) BOOST_PP_IF(p(92, s), BOOST_PP_FOR_92, BOOST_PP_TUPLE_EAT_4)(o(92, s), p, o, m)
-# define BOOST_PP_FOR_92_I(s, p, o, m) BOOST_PP_IF(p(93, s), m, BOOST_PP_TUPLE_EAT_2)(93, s) BOOST_PP_IF(p(93, s), BOOST_PP_FOR_93, BOOST_PP_TUPLE_EAT_4)(o(93, s), p, o, m)
-# define BOOST_PP_FOR_93_I(s, p, o, m) BOOST_PP_IF(p(94, s), m, BOOST_PP_TUPLE_EAT_2)(94, s) BOOST_PP_IF(p(94, s), BOOST_PP_FOR_94, BOOST_PP_TUPLE_EAT_4)(o(94, s), p, o, m)
-# define BOOST_PP_FOR_94_I(s, p, o, m) BOOST_PP_IF(p(95, s), m, BOOST_PP_TUPLE_EAT_2)(95, s) BOOST_PP_IF(p(95, s), BOOST_PP_FOR_95, BOOST_PP_TUPLE_EAT_4)(o(95, s), p, o, m)
-# define BOOST_PP_FOR_95_I(s, p, o, m) BOOST_PP_IF(p(96, s), m, BOOST_PP_TUPLE_EAT_2)(96, s) BOOST_PP_IF(p(96, s), BOOST_PP_FOR_96, BOOST_PP_TUPLE_EAT_4)(o(96, s), p, o, m)
-# define BOOST_PP_FOR_96_I(s, p, o, m) BOOST_PP_IF(p(97, s), m, BOOST_PP_TUPLE_EAT_2)(97, s) BOOST_PP_IF(p(97, s), BOOST_PP_FOR_97, BOOST_PP_TUPLE_EAT_4)(o(97, s), p, o, m)
-# define BOOST_PP_FOR_97_I(s, p, o, m) BOOST_PP_IF(p(98, s), m, BOOST_PP_TUPLE_EAT_2)(98, s) BOOST_PP_IF(p(98, s), BOOST_PP_FOR_98, BOOST_PP_TUPLE_EAT_4)(o(98, s), p, o, m)
-# define BOOST_PP_FOR_98_I(s, p, o, m) BOOST_PP_IF(p(99, s), m, BOOST_PP_TUPLE_EAT_2)(99, s) BOOST_PP_IF(p(99, s), BOOST_PP_FOR_99, BOOST_PP_TUPLE_EAT_4)(o(99, s), p, o, m)
-# define BOOST_PP_FOR_99_I(s, p, o, m) BOOST_PP_IF(p(100, s), m, BOOST_PP_TUPLE_EAT_2)(100, s) BOOST_PP_IF(p(100, s), BOOST_PP_FOR_100, BOOST_PP_TUPLE_EAT_4)(o(100, s), p, o, m)
-# define BOOST_PP_FOR_100_I(s, p, o, m) BOOST_PP_IF(p(101, s), m, BOOST_PP_TUPLE_EAT_2)(101, s) BOOST_PP_IF(p(101, s), BOOST_PP_FOR_101, BOOST_PP_TUPLE_EAT_4)(o(101, s), p, o, m)
-# define BOOST_PP_FOR_101_I(s, p, o, m) BOOST_PP_IF(p(102, s), m, BOOST_PP_TUPLE_EAT_2)(102, s) BOOST_PP_IF(p(102, s), BOOST_PP_FOR_102, BOOST_PP_TUPLE_EAT_4)(o(102, s), p, o, m)
-# define BOOST_PP_FOR_102_I(s, p, o, m) BOOST_PP_IF(p(103, s), m, BOOST_PP_TUPLE_EAT_2)(103, s) BOOST_PP_IF(p(103, s), BOOST_PP_FOR_103, BOOST_PP_TUPLE_EAT_4)(o(103, s), p, o, m)
-# define BOOST_PP_FOR_103_I(s, p, o, m) BOOST_PP_IF(p(104, s), m, BOOST_PP_TUPLE_EAT_2)(104, s) BOOST_PP_IF(p(104, s), BOOST_PP_FOR_104, BOOST_PP_TUPLE_EAT_4)(o(104, s), p, o, m)
-# define BOOST_PP_FOR_104_I(s, p, o, m) BOOST_PP_IF(p(105, s), m, BOOST_PP_TUPLE_EAT_2)(105, s) BOOST_PP_IF(p(105, s), BOOST_PP_FOR_105, BOOST_PP_TUPLE_EAT_4)(o(105, s), p, o, m)
-# define BOOST_PP_FOR_105_I(s, p, o, m) BOOST_PP_IF(p(106, s), m, BOOST_PP_TUPLE_EAT_2)(106, s) BOOST_PP_IF(p(106, s), BOOST_PP_FOR_106, BOOST_PP_TUPLE_EAT_4)(o(106, s), p, o, m)
-# define BOOST_PP_FOR_106_I(s, p, o, m) BOOST_PP_IF(p(107, s), m, BOOST_PP_TUPLE_EAT_2)(107, s) BOOST_PP_IF(p(107, s), BOOST_PP_FOR_107, BOOST_PP_TUPLE_EAT_4)(o(107, s), p, o, m)
-# define BOOST_PP_FOR_107_I(s, p, o, m) BOOST_PP_IF(p(108, s), m, BOOST_PP_TUPLE_EAT_2)(108, s) BOOST_PP_IF(p(108, s), BOOST_PP_FOR_108, BOOST_PP_TUPLE_EAT_4)(o(108, s), p, o, m)
-# define BOOST_PP_FOR_108_I(s, p, o, m) BOOST_PP_IF(p(109, s), m, BOOST_PP_TUPLE_EAT_2)(109, s) BOOST_PP_IF(p(109, s), BOOST_PP_FOR_109, BOOST_PP_TUPLE_EAT_4)(o(109, s), p, o, m)
-# define BOOST_PP_FOR_109_I(s, p, o, m) BOOST_PP_IF(p(110, s), m, BOOST_PP_TUPLE_EAT_2)(110, s) BOOST_PP_IF(p(110, s), BOOST_PP_FOR_110, BOOST_PP_TUPLE_EAT_4)(o(110, s), p, o, m)
-# define BOOST_PP_FOR_110_I(s, p, o, m) BOOST_PP_IF(p(111, s), m, BOOST_PP_TUPLE_EAT_2)(111, s) BOOST_PP_IF(p(111, s), BOOST_PP_FOR_111, BOOST_PP_TUPLE_EAT_4)(o(111, s), p, o, m)
-# define BOOST_PP_FOR_111_I(s, p, o, m) BOOST_PP_IF(p(112, s), m, BOOST_PP_TUPLE_EAT_2)(112, s) BOOST_PP_IF(p(112, s), BOOST_PP_FOR_112, BOOST_PP_TUPLE_EAT_4)(o(112, s), p, o, m)
-# define BOOST_PP_FOR_112_I(s, p, o, m) BOOST_PP_IF(p(113, s), m, BOOST_PP_TUPLE_EAT_2)(113, s) BOOST_PP_IF(p(113, s), BOOST_PP_FOR_113, BOOST_PP_TUPLE_EAT_4)(o(113, s), p, o, m)
-# define BOOST_PP_FOR_113_I(s, p, o, m) BOOST_PP_IF(p(114, s), m, BOOST_PP_TUPLE_EAT_2)(114, s) BOOST_PP_IF(p(114, s), BOOST_PP_FOR_114, BOOST_PP_TUPLE_EAT_4)(o(114, s), p, o, m)
-# define BOOST_PP_FOR_114_I(s, p, o, m) BOOST_PP_IF(p(115, s), m, BOOST_PP_TUPLE_EAT_2)(115, s) BOOST_PP_IF(p(115, s), BOOST_PP_FOR_115, BOOST_PP_TUPLE_EAT_4)(o(115, s), p, o, m)
-# define BOOST_PP_FOR_115_I(s, p, o, m) BOOST_PP_IF(p(116, s), m, BOOST_PP_TUPLE_EAT_2)(116, s) BOOST_PP_IF(p(116, s), BOOST_PP_FOR_116, BOOST_PP_TUPLE_EAT_4)(o(116, s), p, o, m)
-# define BOOST_PP_FOR_116_I(s, p, o, m) BOOST_PP_IF(p(117, s), m, BOOST_PP_TUPLE_EAT_2)(117, s) BOOST_PP_IF(p(117, s), BOOST_PP_FOR_117, BOOST_PP_TUPLE_EAT_4)(o(117, s), p, o, m)
-# define BOOST_PP_FOR_117_I(s, p, o, m) BOOST_PP_IF(p(118, s), m, BOOST_PP_TUPLE_EAT_2)(118, s) BOOST_PP_IF(p(118, s), BOOST_PP_FOR_118, BOOST_PP_TUPLE_EAT_4)(o(118, s), p, o, m)
-# define BOOST_PP_FOR_118_I(s, p, o, m) BOOST_PP_IF(p(119, s), m, BOOST_PP_TUPLE_EAT_2)(119, s) BOOST_PP_IF(p(119, s), BOOST_PP_FOR_119, BOOST_PP_TUPLE_EAT_4)(o(119, s), p, o, m)
-# define BOOST_PP_FOR_119_I(s, p, o, m) BOOST_PP_IF(p(120, s), m, BOOST_PP_TUPLE_EAT_2)(120, s) BOOST_PP_IF(p(120, s), BOOST_PP_FOR_120, BOOST_PP_TUPLE_EAT_4)(o(120, s), p, o, m)
-# define BOOST_PP_FOR_120_I(s, p, o, m) BOOST_PP_IF(p(121, s), m, BOOST_PP_TUPLE_EAT_2)(121, s) BOOST_PP_IF(p(121, s), BOOST_PP_FOR_121, BOOST_PP_TUPLE_EAT_4)(o(121, s), p, o, m)
-# define BOOST_PP_FOR_121_I(s, p, o, m) BOOST_PP_IF(p(122, s), m, BOOST_PP_TUPLE_EAT_2)(122, s) BOOST_PP_IF(p(122, s), BOOST_PP_FOR_122, BOOST_PP_TUPLE_EAT_4)(o(122, s), p, o, m)
-# define BOOST_PP_FOR_122_I(s, p, o, m) BOOST_PP_IF(p(123, s), m, BOOST_PP_TUPLE_EAT_2)(123, s) BOOST_PP_IF(p(123, s), BOOST_PP_FOR_123, BOOST_PP_TUPLE_EAT_4)(o(123, s), p, o, m)
-# define BOOST_PP_FOR_123_I(s, p, o, m) BOOST_PP_IF(p(124, s), m, BOOST_PP_TUPLE_EAT_2)(124, s) BOOST_PP_IF(p(124, s), BOOST_PP_FOR_124, BOOST_PP_TUPLE_EAT_4)(o(124, s), p, o, m)
-# define BOOST_PP_FOR_124_I(s, p, o, m) BOOST_PP_IF(p(125, s), m, BOOST_PP_TUPLE_EAT_2)(125, s) BOOST_PP_IF(p(125, s), BOOST_PP_FOR_125, BOOST_PP_TUPLE_EAT_4)(o(125, s), p, o, m)
-# define BOOST_PP_FOR_125_I(s, p, o, m) BOOST_PP_IF(p(126, s), m, BOOST_PP_TUPLE_EAT_2)(126, s) BOOST_PP_IF(p(126, s), BOOST_PP_FOR_126, BOOST_PP_TUPLE_EAT_4)(o(126, s), p, o, m)
-# define BOOST_PP_FOR_126_I(s, p, o, m) BOOST_PP_IF(p(127, s), m, BOOST_PP_TUPLE_EAT_2)(127, s) BOOST_PP_IF(p(127, s), BOOST_PP_FOR_127, BOOST_PP_TUPLE_EAT_4)(o(127, s), p, o, m)
-# define BOOST_PP_FOR_127_I(s, p, o, m) BOOST_PP_IF(p(128, s), m, BOOST_PP_TUPLE_EAT_2)(128, s) BOOST_PP_IF(p(128, s), BOOST_PP_FOR_128, BOOST_PP_TUPLE_EAT_4)(o(128, s), p, o, m)
-# define BOOST_PP_FOR_128_I(s, p, o, m) BOOST_PP_IF(p(129, s), m, BOOST_PP_TUPLE_EAT_2)(129, s) BOOST_PP_IF(p(129, s), BOOST_PP_FOR_129, BOOST_PP_TUPLE_EAT_4)(o(129, s), p, o, m)
-# define BOOST_PP_FOR_129_I(s, p, o, m) BOOST_PP_IF(p(130, s), m, BOOST_PP_TUPLE_EAT_2)(130, s) BOOST_PP_IF(p(130, s), BOOST_PP_FOR_130, BOOST_PP_TUPLE_EAT_4)(o(130, s), p, o, m)
-# define BOOST_PP_FOR_130_I(s, p, o, m) BOOST_PP_IF(p(131, s), m, BOOST_PP_TUPLE_EAT_2)(131, s) BOOST_PP_IF(p(131, s), BOOST_PP_FOR_131, BOOST_PP_TUPLE_EAT_4)(o(131, s), p, o, m)
-# define BOOST_PP_FOR_131_I(s, p, o, m) BOOST_PP_IF(p(132, s), m, BOOST_PP_TUPLE_EAT_2)(132, s) BOOST_PP_IF(p(132, s), BOOST_PP_FOR_132, BOOST_PP_TUPLE_EAT_4)(o(132, s), p, o, m)
-# define BOOST_PP_FOR_132_I(s, p, o, m) BOOST_PP_IF(p(133, s), m, BOOST_PP_TUPLE_EAT_2)(133, s) BOOST_PP_IF(p(133, s), BOOST_PP_FOR_133, BOOST_PP_TUPLE_EAT_4)(o(133, s), p, o, m)
-# define BOOST_PP_FOR_133_I(s, p, o, m) BOOST_PP_IF(p(134, s), m, BOOST_PP_TUPLE_EAT_2)(134, s) BOOST_PP_IF(p(134, s), BOOST_PP_FOR_134, BOOST_PP_TUPLE_EAT_4)(o(134, s), p, o, m)
-# define BOOST_PP_FOR_134_I(s, p, o, m) BOOST_PP_IF(p(135, s), m, BOOST_PP_TUPLE_EAT_2)(135, s) BOOST_PP_IF(p(135, s), BOOST_PP_FOR_135, BOOST_PP_TUPLE_EAT_4)(o(135, s), p, o, m)
-# define BOOST_PP_FOR_135_I(s, p, o, m) BOOST_PP_IF(p(136, s), m, BOOST_PP_TUPLE_EAT_2)(136, s) BOOST_PP_IF(p(136, s), BOOST_PP_FOR_136, BOOST_PP_TUPLE_EAT_4)(o(136, s), p, o, m)
-# define BOOST_PP_FOR_136_I(s, p, o, m) BOOST_PP_IF(p(137, s), m, BOOST_PP_TUPLE_EAT_2)(137, s) BOOST_PP_IF(p(137, s), BOOST_PP_FOR_137, BOOST_PP_TUPLE_EAT_4)(o(137, s), p, o, m)
-# define BOOST_PP_FOR_137_I(s, p, o, m) BOOST_PP_IF(p(138, s), m, BOOST_PP_TUPLE_EAT_2)(138, s) BOOST_PP_IF(p(138, s), BOOST_PP_FOR_138, BOOST_PP_TUPLE_EAT_4)(o(138, s), p, o, m)
-# define BOOST_PP_FOR_138_I(s, p, o, m) BOOST_PP_IF(p(139, s), m, BOOST_PP_TUPLE_EAT_2)(139, s) BOOST_PP_IF(p(139, s), BOOST_PP_FOR_139, BOOST_PP_TUPLE_EAT_4)(o(139, s), p, o, m)
-# define BOOST_PP_FOR_139_I(s, p, o, m) BOOST_PP_IF(p(140, s), m, BOOST_PP_TUPLE_EAT_2)(140, s) BOOST_PP_IF(p(140, s), BOOST_PP_FOR_140, BOOST_PP_TUPLE_EAT_4)(o(140, s), p, o, m)
-# define BOOST_PP_FOR_140_I(s, p, o, m) BOOST_PP_IF(p(141, s), m, BOOST_PP_TUPLE_EAT_2)(141, s) BOOST_PP_IF(p(141, s), BOOST_PP_FOR_141, BOOST_PP_TUPLE_EAT_4)(o(141, s), p, o, m)
-# define BOOST_PP_FOR_141_I(s, p, o, m) BOOST_PP_IF(p(142, s), m, BOOST_PP_TUPLE_EAT_2)(142, s) BOOST_PP_IF(p(142, s), BOOST_PP_FOR_142, BOOST_PP_TUPLE_EAT_4)(o(142, s), p, o, m)
-# define BOOST_PP_FOR_142_I(s, p, o, m) BOOST_PP_IF(p(143, s), m, BOOST_PP_TUPLE_EAT_2)(143, s) BOOST_PP_IF(p(143, s), BOOST_PP_FOR_143, BOOST_PP_TUPLE_EAT_4)(o(143, s), p, o, m)
-# define BOOST_PP_FOR_143_I(s, p, o, m) BOOST_PP_IF(p(144, s), m, BOOST_PP_TUPLE_EAT_2)(144, s) BOOST_PP_IF(p(144, s), BOOST_PP_FOR_144, BOOST_PP_TUPLE_EAT_4)(o(144, s), p, o, m)
-# define BOOST_PP_FOR_144_I(s, p, o, m) BOOST_PP_IF(p(145, s), m, BOOST_PP_TUPLE_EAT_2)(145, s) BOOST_PP_IF(p(145, s), BOOST_PP_FOR_145, BOOST_PP_TUPLE_EAT_4)(o(145, s), p, o, m)
-# define BOOST_PP_FOR_145_I(s, p, o, m) BOOST_PP_IF(p(146, s), m, BOOST_PP_TUPLE_EAT_2)(146, s) BOOST_PP_IF(p(146, s), BOOST_PP_FOR_146, BOOST_PP_TUPLE_EAT_4)(o(146, s), p, o, m)
-# define BOOST_PP_FOR_146_I(s, p, o, m) BOOST_PP_IF(p(147, s), m, BOOST_PP_TUPLE_EAT_2)(147, s) BOOST_PP_IF(p(147, s), BOOST_PP_FOR_147, BOOST_PP_TUPLE_EAT_4)(o(147, s), p, o, m)
-# define BOOST_PP_FOR_147_I(s, p, o, m) BOOST_PP_IF(p(148, s), m, BOOST_PP_TUPLE_EAT_2)(148, s) BOOST_PP_IF(p(148, s), BOOST_PP_FOR_148, BOOST_PP_TUPLE_EAT_4)(o(148, s), p, o, m)
-# define BOOST_PP_FOR_148_I(s, p, o, m) BOOST_PP_IF(p(149, s), m, BOOST_PP_TUPLE_EAT_2)(149, s) BOOST_PP_IF(p(149, s), BOOST_PP_FOR_149, BOOST_PP_TUPLE_EAT_4)(o(149, s), p, o, m)
-# define BOOST_PP_FOR_149_I(s, p, o, m) BOOST_PP_IF(p(150, s), m, BOOST_PP_TUPLE_EAT_2)(150, s) BOOST_PP_IF(p(150, s), BOOST_PP_FOR_150, BOOST_PP_TUPLE_EAT_4)(o(150, s), p, o, m)
-# define BOOST_PP_FOR_150_I(s, p, o, m) BOOST_PP_IF(p(151, s), m, BOOST_PP_TUPLE_EAT_2)(151, s) BOOST_PP_IF(p(151, s), BOOST_PP_FOR_151, BOOST_PP_TUPLE_EAT_4)(o(151, s), p, o, m)
-# define BOOST_PP_FOR_151_I(s, p, o, m) BOOST_PP_IF(p(152, s), m, BOOST_PP_TUPLE_EAT_2)(152, s) BOOST_PP_IF(p(152, s), BOOST_PP_FOR_152, BOOST_PP_TUPLE_EAT_4)(o(152, s), p, o, m)
-# define BOOST_PP_FOR_152_I(s, p, o, m) BOOST_PP_IF(p(153, s), m, BOOST_PP_TUPLE_EAT_2)(153, s) BOOST_PP_IF(p(153, s), BOOST_PP_FOR_153, BOOST_PP_TUPLE_EAT_4)(o(153, s), p, o, m)
-# define BOOST_PP_FOR_153_I(s, p, o, m) BOOST_PP_IF(p(154, s), m, BOOST_PP_TUPLE_EAT_2)(154, s) BOOST_PP_IF(p(154, s), BOOST_PP_FOR_154, BOOST_PP_TUPLE_EAT_4)(o(154, s), p, o, m)
-# define BOOST_PP_FOR_154_I(s, p, o, m) BOOST_PP_IF(p(155, s), m, BOOST_PP_TUPLE_EAT_2)(155, s) BOOST_PP_IF(p(155, s), BOOST_PP_FOR_155, BOOST_PP_TUPLE_EAT_4)(o(155, s), p, o, m)
-# define BOOST_PP_FOR_155_I(s, p, o, m) BOOST_PP_IF(p(156, s), m, BOOST_PP_TUPLE_EAT_2)(156, s) BOOST_PP_IF(p(156, s), BOOST_PP_FOR_156, BOOST_PP_TUPLE_EAT_4)(o(156, s), p, o, m)
-# define BOOST_PP_FOR_156_I(s, p, o, m) BOOST_PP_IF(p(157, s), m, BOOST_PP_TUPLE_EAT_2)(157, s) BOOST_PP_IF(p(157, s), BOOST_PP_FOR_157, BOOST_PP_TUPLE_EAT_4)(o(157, s), p, o, m)
-# define BOOST_PP_FOR_157_I(s, p, o, m) BOOST_PP_IF(p(158, s), m, BOOST_PP_TUPLE_EAT_2)(158, s) BOOST_PP_IF(p(158, s), BOOST_PP_FOR_158, BOOST_PP_TUPLE_EAT_4)(o(158, s), p, o, m)
-# define BOOST_PP_FOR_158_I(s, p, o, m) BOOST_PP_IF(p(159, s), m, BOOST_PP_TUPLE_EAT_2)(159, s) BOOST_PP_IF(p(159, s), BOOST_PP_FOR_159, BOOST_PP_TUPLE_EAT_4)(o(159, s), p, o, m)
-# define BOOST_PP_FOR_159_I(s, p, o, m) BOOST_PP_IF(p(160, s), m, BOOST_PP_TUPLE_EAT_2)(160, s) BOOST_PP_IF(p(160, s), BOOST_PP_FOR_160, BOOST_PP_TUPLE_EAT_4)(o(160, s), p, o, m)
-# define BOOST_PP_FOR_160_I(s, p, o, m) BOOST_PP_IF(p(161, s), m, BOOST_PP_TUPLE_EAT_2)(161, s) BOOST_PP_IF(p(161, s), BOOST_PP_FOR_161, BOOST_PP_TUPLE_EAT_4)(o(161, s), p, o, m)
-# define BOOST_PP_FOR_161_I(s, p, o, m) BOOST_PP_IF(p(162, s), m, BOOST_PP_TUPLE_EAT_2)(162, s) BOOST_PP_IF(p(162, s), BOOST_PP_FOR_162, BOOST_PP_TUPLE_EAT_4)(o(162, s), p, o, m)
-# define BOOST_PP_FOR_162_I(s, p, o, m) BOOST_PP_IF(p(163, s), m, BOOST_PP_TUPLE_EAT_2)(163, s) BOOST_PP_IF(p(163, s), BOOST_PP_FOR_163, BOOST_PP_TUPLE_EAT_4)(o(163, s), p, o, m)
-# define BOOST_PP_FOR_163_I(s, p, o, m) BOOST_PP_IF(p(164, s), m, BOOST_PP_TUPLE_EAT_2)(164, s) BOOST_PP_IF(p(164, s), BOOST_PP_FOR_164, BOOST_PP_TUPLE_EAT_4)(o(164, s), p, o, m)
-# define BOOST_PP_FOR_164_I(s, p, o, m) BOOST_PP_IF(p(165, s), m, BOOST_PP_TUPLE_EAT_2)(165, s) BOOST_PP_IF(p(165, s), BOOST_PP_FOR_165, BOOST_PP_TUPLE_EAT_4)(o(165, s), p, o, m)
-# define BOOST_PP_FOR_165_I(s, p, o, m) BOOST_PP_IF(p(166, s), m, BOOST_PP_TUPLE_EAT_2)(166, s) BOOST_PP_IF(p(166, s), BOOST_PP_FOR_166, BOOST_PP_TUPLE_EAT_4)(o(166, s), p, o, m)
-# define BOOST_PP_FOR_166_I(s, p, o, m) BOOST_PP_IF(p(167, s), m, BOOST_PP_TUPLE_EAT_2)(167, s) BOOST_PP_IF(p(167, s), BOOST_PP_FOR_167, BOOST_PP_TUPLE_EAT_4)(o(167, s), p, o, m)
-# define BOOST_PP_FOR_167_I(s, p, o, m) BOOST_PP_IF(p(168, s), m, BOOST_PP_TUPLE_EAT_2)(168, s) BOOST_PP_IF(p(168, s), BOOST_PP_FOR_168, BOOST_PP_TUPLE_EAT_4)(o(168, s), p, o, m)
-# define BOOST_PP_FOR_168_I(s, p, o, m) BOOST_PP_IF(p(169, s), m, BOOST_PP_TUPLE_EAT_2)(169, s) BOOST_PP_IF(p(169, s), BOOST_PP_FOR_169, BOOST_PP_TUPLE_EAT_4)(o(169, s), p, o, m)
-# define BOOST_PP_FOR_169_I(s, p, o, m) BOOST_PP_IF(p(170, s), m, BOOST_PP_TUPLE_EAT_2)(170, s) BOOST_PP_IF(p(170, s), BOOST_PP_FOR_170, BOOST_PP_TUPLE_EAT_4)(o(170, s), p, o, m)
-# define BOOST_PP_FOR_170_I(s, p, o, m) BOOST_PP_IF(p(171, s), m, BOOST_PP_TUPLE_EAT_2)(171, s) BOOST_PP_IF(p(171, s), BOOST_PP_FOR_171, BOOST_PP_TUPLE_EAT_4)(o(171, s), p, o, m)
-# define BOOST_PP_FOR_171_I(s, p, o, m) BOOST_PP_IF(p(172, s), m, BOOST_PP_TUPLE_EAT_2)(172, s) BOOST_PP_IF(p(172, s), BOOST_PP_FOR_172, BOOST_PP_TUPLE_EAT_4)(o(172, s), p, o, m)
-# define BOOST_PP_FOR_172_I(s, p, o, m) BOOST_PP_IF(p(173, s), m, BOOST_PP_TUPLE_EAT_2)(173, s) BOOST_PP_IF(p(173, s), BOOST_PP_FOR_173, BOOST_PP_TUPLE_EAT_4)(o(173, s), p, o, m)
-# define BOOST_PP_FOR_173_I(s, p, o, m) BOOST_PP_IF(p(174, s), m, BOOST_PP_TUPLE_EAT_2)(174, s) BOOST_PP_IF(p(174, s), BOOST_PP_FOR_174, BOOST_PP_TUPLE_EAT_4)(o(174, s), p, o, m)
-# define BOOST_PP_FOR_174_I(s, p, o, m) BOOST_PP_IF(p(175, s), m, BOOST_PP_TUPLE_EAT_2)(175, s) BOOST_PP_IF(p(175, s), BOOST_PP_FOR_175, BOOST_PP_TUPLE_EAT_4)(o(175, s), p, o, m)
-# define BOOST_PP_FOR_175_I(s, p, o, m) BOOST_PP_IF(p(176, s), m, BOOST_PP_TUPLE_EAT_2)(176, s) BOOST_PP_IF(p(176, s), BOOST_PP_FOR_176, BOOST_PP_TUPLE_EAT_4)(o(176, s), p, o, m)
-# define BOOST_PP_FOR_176_I(s, p, o, m) BOOST_PP_IF(p(177, s), m, BOOST_PP_TUPLE_EAT_2)(177, s) BOOST_PP_IF(p(177, s), BOOST_PP_FOR_177, BOOST_PP_TUPLE_EAT_4)(o(177, s), p, o, m)
-# define BOOST_PP_FOR_177_I(s, p, o, m) BOOST_PP_IF(p(178, s), m, BOOST_PP_TUPLE_EAT_2)(178, s) BOOST_PP_IF(p(178, s), BOOST_PP_FOR_178, BOOST_PP_TUPLE_EAT_4)(o(178, s), p, o, m)
-# define BOOST_PP_FOR_178_I(s, p, o, m) BOOST_PP_IF(p(179, s), m, BOOST_PP_TUPLE_EAT_2)(179, s) BOOST_PP_IF(p(179, s), BOOST_PP_FOR_179, BOOST_PP_TUPLE_EAT_4)(o(179, s), p, o, m)
-# define BOOST_PP_FOR_179_I(s, p, o, m) BOOST_PP_IF(p(180, s), m, BOOST_PP_TUPLE_EAT_2)(180, s) BOOST_PP_IF(p(180, s), BOOST_PP_FOR_180, BOOST_PP_TUPLE_EAT_4)(o(180, s), p, o, m)
-# define BOOST_PP_FOR_180_I(s, p, o, m) BOOST_PP_IF(p(181, s), m, BOOST_PP_TUPLE_EAT_2)(181, s) BOOST_PP_IF(p(181, s), BOOST_PP_FOR_181, BOOST_PP_TUPLE_EAT_4)(o(181, s), p, o, m)
-# define BOOST_PP_FOR_181_I(s, p, o, m) BOOST_PP_IF(p(182, s), m, BOOST_PP_TUPLE_EAT_2)(182, s) BOOST_PP_IF(p(182, s), BOOST_PP_FOR_182, BOOST_PP_TUPLE_EAT_4)(o(182, s), p, o, m)
-# define BOOST_PP_FOR_182_I(s, p, o, m) BOOST_PP_IF(p(183, s), m, BOOST_PP_TUPLE_EAT_2)(183, s) BOOST_PP_IF(p(183, s), BOOST_PP_FOR_183, BOOST_PP_TUPLE_EAT_4)(o(183, s), p, o, m)
-# define BOOST_PP_FOR_183_I(s, p, o, m) BOOST_PP_IF(p(184, s), m, BOOST_PP_TUPLE_EAT_2)(184, s) BOOST_PP_IF(p(184, s), BOOST_PP_FOR_184, BOOST_PP_TUPLE_EAT_4)(o(184, s), p, o, m)
-# define BOOST_PP_FOR_184_I(s, p, o, m) BOOST_PP_IF(p(185, s), m, BOOST_PP_TUPLE_EAT_2)(185, s) BOOST_PP_IF(p(185, s), BOOST_PP_FOR_185, BOOST_PP_TUPLE_EAT_4)(o(185, s), p, o, m)
-# define BOOST_PP_FOR_185_I(s, p, o, m) BOOST_PP_IF(p(186, s), m, BOOST_PP_TUPLE_EAT_2)(186, s) BOOST_PP_IF(p(186, s), BOOST_PP_FOR_186, BOOST_PP_TUPLE_EAT_4)(o(186, s), p, o, m)
-# define BOOST_PP_FOR_186_I(s, p, o, m) BOOST_PP_IF(p(187, s), m, BOOST_PP_TUPLE_EAT_2)(187, s) BOOST_PP_IF(p(187, s), BOOST_PP_FOR_187, BOOST_PP_TUPLE_EAT_4)(o(187, s), p, o, m)
-# define BOOST_PP_FOR_187_I(s, p, o, m) BOOST_PP_IF(p(188, s), m, BOOST_PP_TUPLE_EAT_2)(188, s) BOOST_PP_IF(p(188, s), BOOST_PP_FOR_188, BOOST_PP_TUPLE_EAT_4)(o(188, s), p, o, m)
-# define BOOST_PP_FOR_188_I(s, p, o, m) BOOST_PP_IF(p(189, s), m, BOOST_PP_TUPLE_EAT_2)(189, s) BOOST_PP_IF(p(189, s), BOOST_PP_FOR_189, BOOST_PP_TUPLE_EAT_4)(o(189, s), p, o, m)
-# define BOOST_PP_FOR_189_I(s, p, o, m) BOOST_PP_IF(p(190, s), m, BOOST_PP_TUPLE_EAT_2)(190, s) BOOST_PP_IF(p(190, s), BOOST_PP_FOR_190, BOOST_PP_TUPLE_EAT_4)(o(190, s), p, o, m)
-# define BOOST_PP_FOR_190_I(s, p, o, m) BOOST_PP_IF(p(191, s), m, BOOST_PP_TUPLE_EAT_2)(191, s) BOOST_PP_IF(p(191, s), BOOST_PP_FOR_191, BOOST_PP_TUPLE_EAT_4)(o(191, s), p, o, m)
-# define BOOST_PP_FOR_191_I(s, p, o, m) BOOST_PP_IF(p(192, s), m, BOOST_PP_TUPLE_EAT_2)(192, s) BOOST_PP_IF(p(192, s), BOOST_PP_FOR_192, BOOST_PP_TUPLE_EAT_4)(o(192, s), p, o, m)
-# define BOOST_PP_FOR_192_I(s, p, o, m) BOOST_PP_IF(p(193, s), m, BOOST_PP_TUPLE_EAT_2)(193, s) BOOST_PP_IF(p(193, s), BOOST_PP_FOR_193, BOOST_PP_TUPLE_EAT_4)(o(193, s), p, o, m)
-# define BOOST_PP_FOR_193_I(s, p, o, m) BOOST_PP_IF(p(194, s), m, BOOST_PP_TUPLE_EAT_2)(194, s) BOOST_PP_IF(p(194, s), BOOST_PP_FOR_194, BOOST_PP_TUPLE_EAT_4)(o(194, s), p, o, m)
-# define BOOST_PP_FOR_194_I(s, p, o, m) BOOST_PP_IF(p(195, s), m, BOOST_PP_TUPLE_EAT_2)(195, s) BOOST_PP_IF(p(195, s), BOOST_PP_FOR_195, BOOST_PP_TUPLE_EAT_4)(o(195, s), p, o, m)
-# define BOOST_PP_FOR_195_I(s, p, o, m) BOOST_PP_IF(p(196, s), m, BOOST_PP_TUPLE_EAT_2)(196, s) BOOST_PP_IF(p(196, s), BOOST_PP_FOR_196, BOOST_PP_TUPLE_EAT_4)(o(196, s), p, o, m)
-# define BOOST_PP_FOR_196_I(s, p, o, m) BOOST_PP_IF(p(197, s), m, BOOST_PP_TUPLE_EAT_2)(197, s) BOOST_PP_IF(p(197, s), BOOST_PP_FOR_197, BOOST_PP_TUPLE_EAT_4)(o(197, s), p, o, m)
-# define BOOST_PP_FOR_197_I(s, p, o, m) BOOST_PP_IF(p(198, s), m, BOOST_PP_TUPLE_EAT_2)(198, s) BOOST_PP_IF(p(198, s), BOOST_PP_FOR_198, BOOST_PP_TUPLE_EAT_4)(o(198, s), p, o, m)
-# define BOOST_PP_FOR_198_I(s, p, o, m) BOOST_PP_IF(p(199, s), m, BOOST_PP_TUPLE_EAT_2)(199, s) BOOST_PP_IF(p(199, s), BOOST_PP_FOR_199, BOOST_PP_TUPLE_EAT_4)(o(199, s), p, o, m)
-# define BOOST_PP_FOR_199_I(s, p, o, m) BOOST_PP_IF(p(200, s), m, BOOST_PP_TUPLE_EAT_2)(200, s) BOOST_PP_IF(p(200, s), BOOST_PP_FOR_200, BOOST_PP_TUPLE_EAT_4)(o(200, s), p, o, m)
-# define BOOST_PP_FOR_200_I(s, p, o, m) BOOST_PP_IF(p(201, s), m, BOOST_PP_TUPLE_EAT_2)(201, s) BOOST_PP_IF(p(201, s), BOOST_PP_FOR_201, BOOST_PP_TUPLE_EAT_4)(o(201, s), p, o, m)
-# define BOOST_PP_FOR_201_I(s, p, o, m) BOOST_PP_IF(p(202, s), m, BOOST_PP_TUPLE_EAT_2)(202, s) BOOST_PP_IF(p(202, s), BOOST_PP_FOR_202, BOOST_PP_TUPLE_EAT_4)(o(202, s), p, o, m)
-# define BOOST_PP_FOR_202_I(s, p, o, m) BOOST_PP_IF(p(203, s), m, BOOST_PP_TUPLE_EAT_2)(203, s) BOOST_PP_IF(p(203, s), BOOST_PP_FOR_203, BOOST_PP_TUPLE_EAT_4)(o(203, s), p, o, m)
-# define BOOST_PP_FOR_203_I(s, p, o, m) BOOST_PP_IF(p(204, s), m, BOOST_PP_TUPLE_EAT_2)(204, s) BOOST_PP_IF(p(204, s), BOOST_PP_FOR_204, BOOST_PP_TUPLE_EAT_4)(o(204, s), p, o, m)
-# define BOOST_PP_FOR_204_I(s, p, o, m) BOOST_PP_IF(p(205, s), m, BOOST_PP_TUPLE_EAT_2)(205, s) BOOST_PP_IF(p(205, s), BOOST_PP_FOR_205, BOOST_PP_TUPLE_EAT_4)(o(205, s), p, o, m)
-# define BOOST_PP_FOR_205_I(s, p, o, m) BOOST_PP_IF(p(206, s), m, BOOST_PP_TUPLE_EAT_2)(206, s) BOOST_PP_IF(p(206, s), BOOST_PP_FOR_206, BOOST_PP_TUPLE_EAT_4)(o(206, s), p, o, m)
-# define BOOST_PP_FOR_206_I(s, p, o, m) BOOST_PP_IF(p(207, s), m, BOOST_PP_TUPLE_EAT_2)(207, s) BOOST_PP_IF(p(207, s), BOOST_PP_FOR_207, BOOST_PP_TUPLE_EAT_4)(o(207, s), p, o, m)
-# define BOOST_PP_FOR_207_I(s, p, o, m) BOOST_PP_IF(p(208, s), m, BOOST_PP_TUPLE_EAT_2)(208, s) BOOST_PP_IF(p(208, s), BOOST_PP_FOR_208, BOOST_PP_TUPLE_EAT_4)(o(208, s), p, o, m)
-# define BOOST_PP_FOR_208_I(s, p, o, m) BOOST_PP_IF(p(209, s), m, BOOST_PP_TUPLE_EAT_2)(209, s) BOOST_PP_IF(p(209, s), BOOST_PP_FOR_209, BOOST_PP_TUPLE_EAT_4)(o(209, s), p, o, m)
-# define BOOST_PP_FOR_209_I(s, p, o, m) BOOST_PP_IF(p(210, s), m, BOOST_PP_TUPLE_EAT_2)(210, s) BOOST_PP_IF(p(210, s), BOOST_PP_FOR_210, BOOST_PP_TUPLE_EAT_4)(o(210, s), p, o, m)
-# define BOOST_PP_FOR_210_I(s, p, o, m) BOOST_PP_IF(p(211, s), m, BOOST_PP_TUPLE_EAT_2)(211, s) BOOST_PP_IF(p(211, s), BOOST_PP_FOR_211, BOOST_PP_TUPLE_EAT_4)(o(211, s), p, o, m)
-# define BOOST_PP_FOR_211_I(s, p, o, m) BOOST_PP_IF(p(212, s), m, BOOST_PP_TUPLE_EAT_2)(212, s) BOOST_PP_IF(p(212, s), BOOST_PP_FOR_212, BOOST_PP_TUPLE_EAT_4)(o(212, s), p, o, m)
-# define BOOST_PP_FOR_212_I(s, p, o, m) BOOST_PP_IF(p(213, s), m, BOOST_PP_TUPLE_EAT_2)(213, s) BOOST_PP_IF(p(213, s), BOOST_PP_FOR_213, BOOST_PP_TUPLE_EAT_4)(o(213, s), p, o, m)
-# define BOOST_PP_FOR_213_I(s, p, o, m) BOOST_PP_IF(p(214, s), m, BOOST_PP_TUPLE_EAT_2)(214, s) BOOST_PP_IF(p(214, s), BOOST_PP_FOR_214, BOOST_PP_TUPLE_EAT_4)(o(214, s), p, o, m)
-# define BOOST_PP_FOR_214_I(s, p, o, m) BOOST_PP_IF(p(215, s), m, BOOST_PP_TUPLE_EAT_2)(215, s) BOOST_PP_IF(p(215, s), BOOST_PP_FOR_215, BOOST_PP_TUPLE_EAT_4)(o(215, s), p, o, m)
-# define BOOST_PP_FOR_215_I(s, p, o, m) BOOST_PP_IF(p(216, s), m, BOOST_PP_TUPLE_EAT_2)(216, s) BOOST_PP_IF(p(216, s), BOOST_PP_FOR_216, BOOST_PP_TUPLE_EAT_4)(o(216, s), p, o, m)
-# define BOOST_PP_FOR_216_I(s, p, o, m) BOOST_PP_IF(p(217, s), m, BOOST_PP_TUPLE_EAT_2)(217, s) BOOST_PP_IF(p(217, s), BOOST_PP_FOR_217, BOOST_PP_TUPLE_EAT_4)(o(217, s), p, o, m)
-# define BOOST_PP_FOR_217_I(s, p, o, m) BOOST_PP_IF(p(218, s), m, BOOST_PP_TUPLE_EAT_2)(218, s) BOOST_PP_IF(p(218, s), BOOST_PP_FOR_218, BOOST_PP_TUPLE_EAT_4)(o(218, s), p, o, m)
-# define BOOST_PP_FOR_218_I(s, p, o, m) BOOST_PP_IF(p(219, s), m, BOOST_PP_TUPLE_EAT_2)(219, s) BOOST_PP_IF(p(219, s), BOOST_PP_FOR_219, BOOST_PP_TUPLE_EAT_4)(o(219, s), p, o, m)
-# define BOOST_PP_FOR_219_I(s, p, o, m) BOOST_PP_IF(p(220, s), m, BOOST_PP_TUPLE_EAT_2)(220, s) BOOST_PP_IF(p(220, s), BOOST_PP_FOR_220, BOOST_PP_TUPLE_EAT_4)(o(220, s), p, o, m)
-# define BOOST_PP_FOR_220_I(s, p, o, m) BOOST_PP_IF(p(221, s), m, BOOST_PP_TUPLE_EAT_2)(221, s) BOOST_PP_IF(p(221, s), BOOST_PP_FOR_221, BOOST_PP_TUPLE_EAT_4)(o(221, s), p, o, m)
-# define BOOST_PP_FOR_221_I(s, p, o, m) BOOST_PP_IF(p(222, s), m, BOOST_PP_TUPLE_EAT_2)(222, s) BOOST_PP_IF(p(222, s), BOOST_PP_FOR_222, BOOST_PP_TUPLE_EAT_4)(o(222, s), p, o, m)
-# define BOOST_PP_FOR_222_I(s, p, o, m) BOOST_PP_IF(p(223, s), m, BOOST_PP_TUPLE_EAT_2)(223, s) BOOST_PP_IF(p(223, s), BOOST_PP_FOR_223, BOOST_PP_TUPLE_EAT_4)(o(223, s), p, o, m)
-# define BOOST_PP_FOR_223_I(s, p, o, m) BOOST_PP_IF(p(224, s), m, BOOST_PP_TUPLE_EAT_2)(224, s) BOOST_PP_IF(p(224, s), BOOST_PP_FOR_224, BOOST_PP_TUPLE_EAT_4)(o(224, s), p, o, m)
-# define BOOST_PP_FOR_224_I(s, p, o, m) BOOST_PP_IF(p(225, s), m, BOOST_PP_TUPLE_EAT_2)(225, s) BOOST_PP_IF(p(225, s), BOOST_PP_FOR_225, BOOST_PP_TUPLE_EAT_4)(o(225, s), p, o, m)
-# define BOOST_PP_FOR_225_I(s, p, o, m) BOOST_PP_IF(p(226, s), m, BOOST_PP_TUPLE_EAT_2)(226, s) BOOST_PP_IF(p(226, s), BOOST_PP_FOR_226, BOOST_PP_TUPLE_EAT_4)(o(226, s), p, o, m)
-# define BOOST_PP_FOR_226_I(s, p, o, m) BOOST_PP_IF(p(227, s), m, BOOST_PP_TUPLE_EAT_2)(227, s) BOOST_PP_IF(p(227, s), BOOST_PP_FOR_227, BOOST_PP_TUPLE_EAT_4)(o(227, s), p, o, m)
-# define BOOST_PP_FOR_227_I(s, p, o, m) BOOST_PP_IF(p(228, s), m, BOOST_PP_TUPLE_EAT_2)(228, s) BOOST_PP_IF(p(228, s), BOOST_PP_FOR_228, BOOST_PP_TUPLE_EAT_4)(o(228, s), p, o, m)
-# define BOOST_PP_FOR_228_I(s, p, o, m) BOOST_PP_IF(p(229, s), m, BOOST_PP_TUPLE_EAT_2)(229, s) BOOST_PP_IF(p(229, s), BOOST_PP_FOR_229, BOOST_PP_TUPLE_EAT_4)(o(229, s), p, o, m)
-# define BOOST_PP_FOR_229_I(s, p, o, m) BOOST_PP_IF(p(230, s), m, BOOST_PP_TUPLE_EAT_2)(230, s) BOOST_PP_IF(p(230, s), BOOST_PP_FOR_230, BOOST_PP_TUPLE_EAT_4)(o(230, s), p, o, m)
-# define BOOST_PP_FOR_230_I(s, p, o, m) BOOST_PP_IF(p(231, s), m, BOOST_PP_TUPLE_EAT_2)(231, s) BOOST_PP_IF(p(231, s), BOOST_PP_FOR_231, BOOST_PP_TUPLE_EAT_4)(o(231, s), p, o, m)
-# define BOOST_PP_FOR_231_I(s, p, o, m) BOOST_PP_IF(p(232, s), m, BOOST_PP_TUPLE_EAT_2)(232, s) BOOST_PP_IF(p(232, s), BOOST_PP_FOR_232, BOOST_PP_TUPLE_EAT_4)(o(232, s), p, o, m)
-# define BOOST_PP_FOR_232_I(s, p, o, m) BOOST_PP_IF(p(233, s), m, BOOST_PP_TUPLE_EAT_2)(233, s) BOOST_PP_IF(p(233, s), BOOST_PP_FOR_233, BOOST_PP_TUPLE_EAT_4)(o(233, s), p, o, m)
-# define BOOST_PP_FOR_233_I(s, p, o, m) BOOST_PP_IF(p(234, s), m, BOOST_PP_TUPLE_EAT_2)(234, s) BOOST_PP_IF(p(234, s), BOOST_PP_FOR_234, BOOST_PP_TUPLE_EAT_4)(o(234, s), p, o, m)
-# define BOOST_PP_FOR_234_I(s, p, o, m) BOOST_PP_IF(p(235, s), m, BOOST_PP_TUPLE_EAT_2)(235, s) BOOST_PP_IF(p(235, s), BOOST_PP_FOR_235, BOOST_PP_TUPLE_EAT_4)(o(235, s), p, o, m)
-# define BOOST_PP_FOR_235_I(s, p, o, m) BOOST_PP_IF(p(236, s), m, BOOST_PP_TUPLE_EAT_2)(236, s) BOOST_PP_IF(p(236, s), BOOST_PP_FOR_236, BOOST_PP_TUPLE_EAT_4)(o(236, s), p, o, m)
-# define BOOST_PP_FOR_236_I(s, p, o, m) BOOST_PP_IF(p(237, s), m, BOOST_PP_TUPLE_EAT_2)(237, s) BOOST_PP_IF(p(237, s), BOOST_PP_FOR_237, BOOST_PP_TUPLE_EAT_4)(o(237, s), p, o, m)
-# define BOOST_PP_FOR_237_I(s, p, o, m) BOOST_PP_IF(p(238, s), m, BOOST_PP_TUPLE_EAT_2)(238, s) BOOST_PP_IF(p(238, s), BOOST_PP_FOR_238, BOOST_PP_TUPLE_EAT_4)(o(238, s), p, o, m)
-# define BOOST_PP_FOR_238_I(s, p, o, m) BOOST_PP_IF(p(239, s), m, BOOST_PP_TUPLE_EAT_2)(239, s) BOOST_PP_IF(p(239, s), BOOST_PP_FOR_239, BOOST_PP_TUPLE_EAT_4)(o(239, s), p, o, m)
-# define BOOST_PP_FOR_239_I(s, p, o, m) BOOST_PP_IF(p(240, s), m, BOOST_PP_TUPLE_EAT_2)(240, s) BOOST_PP_IF(p(240, s), BOOST_PP_FOR_240, BOOST_PP_TUPLE_EAT_4)(o(240, s), p, o, m)
-# define BOOST_PP_FOR_240_I(s, p, o, m) BOOST_PP_IF(p(241, s), m, BOOST_PP_TUPLE_EAT_2)(241, s) BOOST_PP_IF(p(241, s), BOOST_PP_FOR_241, BOOST_PP_TUPLE_EAT_4)(o(241, s), p, o, m)
-# define BOOST_PP_FOR_241_I(s, p, o, m) BOOST_PP_IF(p(242, s), m, BOOST_PP_TUPLE_EAT_2)(242, s) BOOST_PP_IF(p(242, s), BOOST_PP_FOR_242, BOOST_PP_TUPLE_EAT_4)(o(242, s), p, o, m)
-# define BOOST_PP_FOR_242_I(s, p, o, m) BOOST_PP_IF(p(243, s), m, BOOST_PP_TUPLE_EAT_2)(243, s) BOOST_PP_IF(p(243, s), BOOST_PP_FOR_243, BOOST_PP_TUPLE_EAT_4)(o(243, s), p, o, m)
-# define BOOST_PP_FOR_243_I(s, p, o, m) BOOST_PP_IF(p(244, s), m, BOOST_PP_TUPLE_EAT_2)(244, s) BOOST_PP_IF(p(244, s), BOOST_PP_FOR_244, BOOST_PP_TUPLE_EAT_4)(o(244, s), p, o, m)
-# define BOOST_PP_FOR_244_I(s, p, o, m) BOOST_PP_IF(p(245, s), m, BOOST_PP_TUPLE_EAT_2)(245, s) BOOST_PP_IF(p(245, s), BOOST_PP_FOR_245, BOOST_PP_TUPLE_EAT_4)(o(245, s), p, o, m)
-# define BOOST_PP_FOR_245_I(s, p, o, m) BOOST_PP_IF(p(246, s), m, BOOST_PP_TUPLE_EAT_2)(246, s) BOOST_PP_IF(p(246, s), BOOST_PP_FOR_246, BOOST_PP_TUPLE_EAT_4)(o(246, s), p, o, m)
-# define BOOST_PP_FOR_246_I(s, p, o, m) BOOST_PP_IF(p(247, s), m, BOOST_PP_TUPLE_EAT_2)(247, s) BOOST_PP_IF(p(247, s), BOOST_PP_FOR_247, BOOST_PP_TUPLE_EAT_4)(o(247, s), p, o, m)
-# define BOOST_PP_FOR_247_I(s, p, o, m) BOOST_PP_IF(p(248, s), m, BOOST_PP_TUPLE_EAT_2)(248, s) BOOST_PP_IF(p(248, s), BOOST_PP_FOR_248, BOOST_PP_TUPLE_EAT_4)(o(248, s), p, o, m)
-# define BOOST_PP_FOR_248_I(s, p, o, m) BOOST_PP_IF(p(249, s), m, BOOST_PP_TUPLE_EAT_2)(249, s) BOOST_PP_IF(p(249, s), BOOST_PP_FOR_249, BOOST_PP_TUPLE_EAT_4)(o(249, s), p, o, m)
-# define BOOST_PP_FOR_249_I(s, p, o, m) BOOST_PP_IF(p(250, s), m, BOOST_PP_TUPLE_EAT_2)(250, s) BOOST_PP_IF(p(250, s), BOOST_PP_FOR_250, BOOST_PP_TUPLE_EAT_4)(o(250, s), p, o, m)
-# define BOOST_PP_FOR_250_I(s, p, o, m) BOOST_PP_IF(p(251, s), m, BOOST_PP_TUPLE_EAT_2)(251, s) BOOST_PP_IF(p(251, s), BOOST_PP_FOR_251, BOOST_PP_TUPLE_EAT_4)(o(251, s), p, o, m)
-# define BOOST_PP_FOR_251_I(s, p, o, m) BOOST_PP_IF(p(252, s), m, BOOST_PP_TUPLE_EAT_2)(252, s) BOOST_PP_IF(p(252, s), BOOST_PP_FOR_252, BOOST_PP_TUPLE_EAT_4)(o(252, s), p, o, m)
-# define BOOST_PP_FOR_252_I(s, p, o, m) BOOST_PP_IF(p(253, s), m, BOOST_PP_TUPLE_EAT_2)(253, s) BOOST_PP_IF(p(253, s), BOOST_PP_FOR_253, BOOST_PP_TUPLE_EAT_4)(o(253, s), p, o, m)
-# define BOOST_PP_FOR_253_I(s, p, o, m) BOOST_PP_IF(p(254, s), m, BOOST_PP_TUPLE_EAT_2)(254, s) BOOST_PP_IF(p(254, s), BOOST_PP_FOR_254, BOOST_PP_TUPLE_EAT_4)(o(254, s), p, o, m)
-# define BOOST_PP_FOR_254_I(s, p, o, m) BOOST_PP_IF(p(255, s), m, BOOST_PP_TUPLE_EAT_2)(255, s) BOOST_PP_IF(p(255, s), BOOST_PP_FOR_255, BOOST_PP_TUPLE_EAT_4)(o(255, s), p, o, m)
-# define BOOST_PP_FOR_255_I(s, p, o, m) BOOST_PP_IF(p(256, s), m, BOOST_PP_TUPLE_EAT_2)(256, s) BOOST_PP_IF(p(256, s), BOOST_PP_FOR_256, BOOST_PP_TUPLE_EAT_4)(o(256, s), p, o, m)
-# define BOOST_PP_FOR_256_I(s, p, o, m) BOOST_PP_IF(p(257, s), m, BOOST_PP_TUPLE_EAT_2)(257, s) BOOST_PP_IF(p(257, s), BOOST_PP_FOR_257, BOOST_PP_TUPLE_EAT_4)(o(257, s), p, o, m)
+# define NDNBOOST_PP_FOR_1_I(s, p, o, m) NDNBOOST_PP_IF(p(2, s), m, NDNBOOST_PP_TUPLE_EAT_2)(2, s) NDNBOOST_PP_IF(p(2, s), NDNBOOST_PP_FOR_2, NDNBOOST_PP_TUPLE_EAT_4)(o(2, s), p, o, m)
+# define NDNBOOST_PP_FOR_2_I(s, p, o, m) NDNBOOST_PP_IF(p(3, s), m, NDNBOOST_PP_TUPLE_EAT_2)(3, s) NDNBOOST_PP_IF(p(3, s), NDNBOOST_PP_FOR_3, NDNBOOST_PP_TUPLE_EAT_4)(o(3, s), p, o, m)
+# define NDNBOOST_PP_FOR_3_I(s, p, o, m) NDNBOOST_PP_IF(p(4, s), m, NDNBOOST_PP_TUPLE_EAT_2)(4, s) NDNBOOST_PP_IF(p(4, s), NDNBOOST_PP_FOR_4, NDNBOOST_PP_TUPLE_EAT_4)(o(4, s), p, o, m)
+# define NDNBOOST_PP_FOR_4_I(s, p, o, m) NDNBOOST_PP_IF(p(5, s), m, NDNBOOST_PP_TUPLE_EAT_2)(5, s) NDNBOOST_PP_IF(p(5, s), NDNBOOST_PP_FOR_5, NDNBOOST_PP_TUPLE_EAT_4)(o(5, s), p, o, m)
+# define NDNBOOST_PP_FOR_5_I(s, p, o, m) NDNBOOST_PP_IF(p(6, s), m, NDNBOOST_PP_TUPLE_EAT_2)(6, s) NDNBOOST_PP_IF(p(6, s), NDNBOOST_PP_FOR_6, NDNBOOST_PP_TUPLE_EAT_4)(o(6, s), p, o, m)
+# define NDNBOOST_PP_FOR_6_I(s, p, o, m) NDNBOOST_PP_IF(p(7, s), m, NDNBOOST_PP_TUPLE_EAT_2)(7, s) NDNBOOST_PP_IF(p(7, s), NDNBOOST_PP_FOR_7, NDNBOOST_PP_TUPLE_EAT_4)(o(7, s), p, o, m)
+# define NDNBOOST_PP_FOR_7_I(s, p, o, m) NDNBOOST_PP_IF(p(8, s), m, NDNBOOST_PP_TUPLE_EAT_2)(8, s) NDNBOOST_PP_IF(p(8, s), NDNBOOST_PP_FOR_8, NDNBOOST_PP_TUPLE_EAT_4)(o(8, s), p, o, m)
+# define NDNBOOST_PP_FOR_8_I(s, p, o, m) NDNBOOST_PP_IF(p(9, s), m, NDNBOOST_PP_TUPLE_EAT_2)(9, s) NDNBOOST_PP_IF(p(9, s), NDNBOOST_PP_FOR_9, NDNBOOST_PP_TUPLE_EAT_4)(o(9, s), p, o, m)
+# define NDNBOOST_PP_FOR_9_I(s, p, o, m) NDNBOOST_PP_IF(p(10, s), m, NDNBOOST_PP_TUPLE_EAT_2)(10, s) NDNBOOST_PP_IF(p(10, s), NDNBOOST_PP_FOR_10, NDNBOOST_PP_TUPLE_EAT_4)(o(10, s), p, o, m)
+# define NDNBOOST_PP_FOR_10_I(s, p, o, m) NDNBOOST_PP_IF(p(11, s), m, NDNBOOST_PP_TUPLE_EAT_2)(11, s) NDNBOOST_PP_IF(p(11, s), NDNBOOST_PP_FOR_11, NDNBOOST_PP_TUPLE_EAT_4)(o(11, s), p, o, m)
+# define NDNBOOST_PP_FOR_11_I(s, p, o, m) NDNBOOST_PP_IF(p(12, s), m, NDNBOOST_PP_TUPLE_EAT_2)(12, s) NDNBOOST_PP_IF(p(12, s), NDNBOOST_PP_FOR_12, NDNBOOST_PP_TUPLE_EAT_4)(o(12, s), p, o, m)
+# define NDNBOOST_PP_FOR_12_I(s, p, o, m) NDNBOOST_PP_IF(p(13, s), m, NDNBOOST_PP_TUPLE_EAT_2)(13, s) NDNBOOST_PP_IF(p(13, s), NDNBOOST_PP_FOR_13, NDNBOOST_PP_TUPLE_EAT_4)(o(13, s), p, o, m)
+# define NDNBOOST_PP_FOR_13_I(s, p, o, m) NDNBOOST_PP_IF(p(14, s), m, NDNBOOST_PP_TUPLE_EAT_2)(14, s) NDNBOOST_PP_IF(p(14, s), NDNBOOST_PP_FOR_14, NDNBOOST_PP_TUPLE_EAT_4)(o(14, s), p, o, m)
+# define NDNBOOST_PP_FOR_14_I(s, p, o, m) NDNBOOST_PP_IF(p(15, s), m, NDNBOOST_PP_TUPLE_EAT_2)(15, s) NDNBOOST_PP_IF(p(15, s), NDNBOOST_PP_FOR_15, NDNBOOST_PP_TUPLE_EAT_4)(o(15, s), p, o, m)
+# define NDNBOOST_PP_FOR_15_I(s, p, o, m) NDNBOOST_PP_IF(p(16, s), m, NDNBOOST_PP_TUPLE_EAT_2)(16, s) NDNBOOST_PP_IF(p(16, s), NDNBOOST_PP_FOR_16, NDNBOOST_PP_TUPLE_EAT_4)(o(16, s), p, o, m)
+# define NDNBOOST_PP_FOR_16_I(s, p, o, m) NDNBOOST_PP_IF(p(17, s), m, NDNBOOST_PP_TUPLE_EAT_2)(17, s) NDNBOOST_PP_IF(p(17, s), NDNBOOST_PP_FOR_17, NDNBOOST_PP_TUPLE_EAT_4)(o(17, s), p, o, m)
+# define NDNBOOST_PP_FOR_17_I(s, p, o, m) NDNBOOST_PP_IF(p(18, s), m, NDNBOOST_PP_TUPLE_EAT_2)(18, s) NDNBOOST_PP_IF(p(18, s), NDNBOOST_PP_FOR_18, NDNBOOST_PP_TUPLE_EAT_4)(o(18, s), p, o, m)
+# define NDNBOOST_PP_FOR_18_I(s, p, o, m) NDNBOOST_PP_IF(p(19, s), m, NDNBOOST_PP_TUPLE_EAT_2)(19, s) NDNBOOST_PP_IF(p(19, s), NDNBOOST_PP_FOR_19, NDNBOOST_PP_TUPLE_EAT_4)(o(19, s), p, o, m)
+# define NDNBOOST_PP_FOR_19_I(s, p, o, m) NDNBOOST_PP_IF(p(20, s), m, NDNBOOST_PP_TUPLE_EAT_2)(20, s) NDNBOOST_PP_IF(p(20, s), NDNBOOST_PP_FOR_20, NDNBOOST_PP_TUPLE_EAT_4)(o(20, s), p, o, m)
+# define NDNBOOST_PP_FOR_20_I(s, p, o, m) NDNBOOST_PP_IF(p(21, s), m, NDNBOOST_PP_TUPLE_EAT_2)(21, s) NDNBOOST_PP_IF(p(21, s), NDNBOOST_PP_FOR_21, NDNBOOST_PP_TUPLE_EAT_4)(o(21, s), p, o, m)
+# define NDNBOOST_PP_FOR_21_I(s, p, o, m) NDNBOOST_PP_IF(p(22, s), m, NDNBOOST_PP_TUPLE_EAT_2)(22, s) NDNBOOST_PP_IF(p(22, s), NDNBOOST_PP_FOR_22, NDNBOOST_PP_TUPLE_EAT_4)(o(22, s), p, o, m)
+# define NDNBOOST_PP_FOR_22_I(s, p, o, m) NDNBOOST_PP_IF(p(23, s), m, NDNBOOST_PP_TUPLE_EAT_2)(23, s) NDNBOOST_PP_IF(p(23, s), NDNBOOST_PP_FOR_23, NDNBOOST_PP_TUPLE_EAT_4)(o(23, s), p, o, m)
+# define NDNBOOST_PP_FOR_23_I(s, p, o, m) NDNBOOST_PP_IF(p(24, s), m, NDNBOOST_PP_TUPLE_EAT_2)(24, s) NDNBOOST_PP_IF(p(24, s), NDNBOOST_PP_FOR_24, NDNBOOST_PP_TUPLE_EAT_4)(o(24, s), p, o, m)
+# define NDNBOOST_PP_FOR_24_I(s, p, o, m) NDNBOOST_PP_IF(p(25, s), m, NDNBOOST_PP_TUPLE_EAT_2)(25, s) NDNBOOST_PP_IF(p(25, s), NDNBOOST_PP_FOR_25, NDNBOOST_PP_TUPLE_EAT_4)(o(25, s), p, o, m)
+# define NDNBOOST_PP_FOR_25_I(s, p, o, m) NDNBOOST_PP_IF(p(26, s), m, NDNBOOST_PP_TUPLE_EAT_2)(26, s) NDNBOOST_PP_IF(p(26, s), NDNBOOST_PP_FOR_26, NDNBOOST_PP_TUPLE_EAT_4)(o(26, s), p, o, m)
+# define NDNBOOST_PP_FOR_26_I(s, p, o, m) NDNBOOST_PP_IF(p(27, s), m, NDNBOOST_PP_TUPLE_EAT_2)(27, s) NDNBOOST_PP_IF(p(27, s), NDNBOOST_PP_FOR_27, NDNBOOST_PP_TUPLE_EAT_4)(o(27, s), p, o, m)
+# define NDNBOOST_PP_FOR_27_I(s, p, o, m) NDNBOOST_PP_IF(p(28, s), m, NDNBOOST_PP_TUPLE_EAT_2)(28, s) NDNBOOST_PP_IF(p(28, s), NDNBOOST_PP_FOR_28, NDNBOOST_PP_TUPLE_EAT_4)(o(28, s), p, o, m)
+# define NDNBOOST_PP_FOR_28_I(s, p, o, m) NDNBOOST_PP_IF(p(29, s), m, NDNBOOST_PP_TUPLE_EAT_2)(29, s) NDNBOOST_PP_IF(p(29, s), NDNBOOST_PP_FOR_29, NDNBOOST_PP_TUPLE_EAT_4)(o(29, s), p, o, m)
+# define NDNBOOST_PP_FOR_29_I(s, p, o, m) NDNBOOST_PP_IF(p(30, s), m, NDNBOOST_PP_TUPLE_EAT_2)(30, s) NDNBOOST_PP_IF(p(30, s), NDNBOOST_PP_FOR_30, NDNBOOST_PP_TUPLE_EAT_4)(o(30, s), p, o, m)
+# define NDNBOOST_PP_FOR_30_I(s, p, o, m) NDNBOOST_PP_IF(p(31, s), m, NDNBOOST_PP_TUPLE_EAT_2)(31, s) NDNBOOST_PP_IF(p(31, s), NDNBOOST_PP_FOR_31, NDNBOOST_PP_TUPLE_EAT_4)(o(31, s), p, o, m)
+# define NDNBOOST_PP_FOR_31_I(s, p, o, m) NDNBOOST_PP_IF(p(32, s), m, NDNBOOST_PP_TUPLE_EAT_2)(32, s) NDNBOOST_PP_IF(p(32, s), NDNBOOST_PP_FOR_32, NDNBOOST_PP_TUPLE_EAT_4)(o(32, s), p, o, m)
+# define NDNBOOST_PP_FOR_32_I(s, p, o, m) NDNBOOST_PP_IF(p(33, s), m, NDNBOOST_PP_TUPLE_EAT_2)(33, s) NDNBOOST_PP_IF(p(33, s), NDNBOOST_PP_FOR_33, NDNBOOST_PP_TUPLE_EAT_4)(o(33, s), p, o, m)
+# define NDNBOOST_PP_FOR_33_I(s, p, o, m) NDNBOOST_PP_IF(p(34, s), m, NDNBOOST_PP_TUPLE_EAT_2)(34, s) NDNBOOST_PP_IF(p(34, s), NDNBOOST_PP_FOR_34, NDNBOOST_PP_TUPLE_EAT_4)(o(34, s), p, o, m)
+# define NDNBOOST_PP_FOR_34_I(s, p, o, m) NDNBOOST_PP_IF(p(35, s), m, NDNBOOST_PP_TUPLE_EAT_2)(35, s) NDNBOOST_PP_IF(p(35, s), NDNBOOST_PP_FOR_35, NDNBOOST_PP_TUPLE_EAT_4)(o(35, s), p, o, m)
+# define NDNBOOST_PP_FOR_35_I(s, p, o, m) NDNBOOST_PP_IF(p(36, s), m, NDNBOOST_PP_TUPLE_EAT_2)(36, s) NDNBOOST_PP_IF(p(36, s), NDNBOOST_PP_FOR_36, NDNBOOST_PP_TUPLE_EAT_4)(o(36, s), p, o, m)
+# define NDNBOOST_PP_FOR_36_I(s, p, o, m) NDNBOOST_PP_IF(p(37, s), m, NDNBOOST_PP_TUPLE_EAT_2)(37, s) NDNBOOST_PP_IF(p(37, s), NDNBOOST_PP_FOR_37, NDNBOOST_PP_TUPLE_EAT_4)(o(37, s), p, o, m)
+# define NDNBOOST_PP_FOR_37_I(s, p, o, m) NDNBOOST_PP_IF(p(38, s), m, NDNBOOST_PP_TUPLE_EAT_2)(38, s) NDNBOOST_PP_IF(p(38, s), NDNBOOST_PP_FOR_38, NDNBOOST_PP_TUPLE_EAT_4)(o(38, s), p, o, m)
+# define NDNBOOST_PP_FOR_38_I(s, p, o, m) NDNBOOST_PP_IF(p(39, s), m, NDNBOOST_PP_TUPLE_EAT_2)(39, s) NDNBOOST_PP_IF(p(39, s), NDNBOOST_PP_FOR_39, NDNBOOST_PP_TUPLE_EAT_4)(o(39, s), p, o, m)
+# define NDNBOOST_PP_FOR_39_I(s, p, o, m) NDNBOOST_PP_IF(p(40, s), m, NDNBOOST_PP_TUPLE_EAT_2)(40, s) NDNBOOST_PP_IF(p(40, s), NDNBOOST_PP_FOR_40, NDNBOOST_PP_TUPLE_EAT_4)(o(40, s), p, o, m)
+# define NDNBOOST_PP_FOR_40_I(s, p, o, m) NDNBOOST_PP_IF(p(41, s), m, NDNBOOST_PP_TUPLE_EAT_2)(41, s) NDNBOOST_PP_IF(p(41, s), NDNBOOST_PP_FOR_41, NDNBOOST_PP_TUPLE_EAT_4)(o(41, s), p, o, m)
+# define NDNBOOST_PP_FOR_41_I(s, p, o, m) NDNBOOST_PP_IF(p(42, s), m, NDNBOOST_PP_TUPLE_EAT_2)(42, s) NDNBOOST_PP_IF(p(42, s), NDNBOOST_PP_FOR_42, NDNBOOST_PP_TUPLE_EAT_4)(o(42, s), p, o, m)
+# define NDNBOOST_PP_FOR_42_I(s, p, o, m) NDNBOOST_PP_IF(p(43, s), m, NDNBOOST_PP_TUPLE_EAT_2)(43, s) NDNBOOST_PP_IF(p(43, s), NDNBOOST_PP_FOR_43, NDNBOOST_PP_TUPLE_EAT_4)(o(43, s), p, o, m)
+# define NDNBOOST_PP_FOR_43_I(s, p, o, m) NDNBOOST_PP_IF(p(44, s), m, NDNBOOST_PP_TUPLE_EAT_2)(44, s) NDNBOOST_PP_IF(p(44, s), NDNBOOST_PP_FOR_44, NDNBOOST_PP_TUPLE_EAT_4)(o(44, s), p, o, m)
+# define NDNBOOST_PP_FOR_44_I(s, p, o, m) NDNBOOST_PP_IF(p(45, s), m, NDNBOOST_PP_TUPLE_EAT_2)(45, s) NDNBOOST_PP_IF(p(45, s), NDNBOOST_PP_FOR_45, NDNBOOST_PP_TUPLE_EAT_4)(o(45, s), p, o, m)
+# define NDNBOOST_PP_FOR_45_I(s, p, o, m) NDNBOOST_PP_IF(p(46, s), m, NDNBOOST_PP_TUPLE_EAT_2)(46, s) NDNBOOST_PP_IF(p(46, s), NDNBOOST_PP_FOR_46, NDNBOOST_PP_TUPLE_EAT_4)(o(46, s), p, o, m)
+# define NDNBOOST_PP_FOR_46_I(s, p, o, m) NDNBOOST_PP_IF(p(47, s), m, NDNBOOST_PP_TUPLE_EAT_2)(47, s) NDNBOOST_PP_IF(p(47, s), NDNBOOST_PP_FOR_47, NDNBOOST_PP_TUPLE_EAT_4)(o(47, s), p, o, m)
+# define NDNBOOST_PP_FOR_47_I(s, p, o, m) NDNBOOST_PP_IF(p(48, s), m, NDNBOOST_PP_TUPLE_EAT_2)(48, s) NDNBOOST_PP_IF(p(48, s), NDNBOOST_PP_FOR_48, NDNBOOST_PP_TUPLE_EAT_4)(o(48, s), p, o, m)
+# define NDNBOOST_PP_FOR_48_I(s, p, o, m) NDNBOOST_PP_IF(p(49, s), m, NDNBOOST_PP_TUPLE_EAT_2)(49, s) NDNBOOST_PP_IF(p(49, s), NDNBOOST_PP_FOR_49, NDNBOOST_PP_TUPLE_EAT_4)(o(49, s), p, o, m)
+# define NDNBOOST_PP_FOR_49_I(s, p, o, m) NDNBOOST_PP_IF(p(50, s), m, NDNBOOST_PP_TUPLE_EAT_2)(50, s) NDNBOOST_PP_IF(p(50, s), NDNBOOST_PP_FOR_50, NDNBOOST_PP_TUPLE_EAT_4)(o(50, s), p, o, m)
+# define NDNBOOST_PP_FOR_50_I(s, p, o, m) NDNBOOST_PP_IF(p(51, s), m, NDNBOOST_PP_TUPLE_EAT_2)(51, s) NDNBOOST_PP_IF(p(51, s), NDNBOOST_PP_FOR_51, NDNBOOST_PP_TUPLE_EAT_4)(o(51, s), p, o, m)
+# define NDNBOOST_PP_FOR_51_I(s, p, o, m) NDNBOOST_PP_IF(p(52, s), m, NDNBOOST_PP_TUPLE_EAT_2)(52, s) NDNBOOST_PP_IF(p(52, s), NDNBOOST_PP_FOR_52, NDNBOOST_PP_TUPLE_EAT_4)(o(52, s), p, o, m)
+# define NDNBOOST_PP_FOR_52_I(s, p, o, m) NDNBOOST_PP_IF(p(53, s), m, NDNBOOST_PP_TUPLE_EAT_2)(53, s) NDNBOOST_PP_IF(p(53, s), NDNBOOST_PP_FOR_53, NDNBOOST_PP_TUPLE_EAT_4)(o(53, s), p, o, m)
+# define NDNBOOST_PP_FOR_53_I(s, p, o, m) NDNBOOST_PP_IF(p(54, s), m, NDNBOOST_PP_TUPLE_EAT_2)(54, s) NDNBOOST_PP_IF(p(54, s), NDNBOOST_PP_FOR_54, NDNBOOST_PP_TUPLE_EAT_4)(o(54, s), p, o, m)
+# define NDNBOOST_PP_FOR_54_I(s, p, o, m) NDNBOOST_PP_IF(p(55, s), m, NDNBOOST_PP_TUPLE_EAT_2)(55, s) NDNBOOST_PP_IF(p(55, s), NDNBOOST_PP_FOR_55, NDNBOOST_PP_TUPLE_EAT_4)(o(55, s), p, o, m)
+# define NDNBOOST_PP_FOR_55_I(s, p, o, m) NDNBOOST_PP_IF(p(56, s), m, NDNBOOST_PP_TUPLE_EAT_2)(56, s) NDNBOOST_PP_IF(p(56, s), NDNBOOST_PP_FOR_56, NDNBOOST_PP_TUPLE_EAT_4)(o(56, s), p, o, m)
+# define NDNBOOST_PP_FOR_56_I(s, p, o, m) NDNBOOST_PP_IF(p(57, s), m, NDNBOOST_PP_TUPLE_EAT_2)(57, s) NDNBOOST_PP_IF(p(57, s), NDNBOOST_PP_FOR_57, NDNBOOST_PP_TUPLE_EAT_4)(o(57, s), p, o, m)
+# define NDNBOOST_PP_FOR_57_I(s, p, o, m) NDNBOOST_PP_IF(p(58, s), m, NDNBOOST_PP_TUPLE_EAT_2)(58, s) NDNBOOST_PP_IF(p(58, s), NDNBOOST_PP_FOR_58, NDNBOOST_PP_TUPLE_EAT_4)(o(58, s), p, o, m)
+# define NDNBOOST_PP_FOR_58_I(s, p, o, m) NDNBOOST_PP_IF(p(59, s), m, NDNBOOST_PP_TUPLE_EAT_2)(59, s) NDNBOOST_PP_IF(p(59, s), NDNBOOST_PP_FOR_59, NDNBOOST_PP_TUPLE_EAT_4)(o(59, s), p, o, m)
+# define NDNBOOST_PP_FOR_59_I(s, p, o, m) NDNBOOST_PP_IF(p(60, s), m, NDNBOOST_PP_TUPLE_EAT_2)(60, s) NDNBOOST_PP_IF(p(60, s), NDNBOOST_PP_FOR_60, NDNBOOST_PP_TUPLE_EAT_4)(o(60, s), p, o, m)
+# define NDNBOOST_PP_FOR_60_I(s, p, o, m) NDNBOOST_PP_IF(p(61, s), m, NDNBOOST_PP_TUPLE_EAT_2)(61, s) NDNBOOST_PP_IF(p(61, s), NDNBOOST_PP_FOR_61, NDNBOOST_PP_TUPLE_EAT_4)(o(61, s), p, o, m)
+# define NDNBOOST_PP_FOR_61_I(s, p, o, m) NDNBOOST_PP_IF(p(62, s), m, NDNBOOST_PP_TUPLE_EAT_2)(62, s) NDNBOOST_PP_IF(p(62, s), NDNBOOST_PP_FOR_62, NDNBOOST_PP_TUPLE_EAT_4)(o(62, s), p, o, m)
+# define NDNBOOST_PP_FOR_62_I(s, p, o, m) NDNBOOST_PP_IF(p(63, s), m, NDNBOOST_PP_TUPLE_EAT_2)(63, s) NDNBOOST_PP_IF(p(63, s), NDNBOOST_PP_FOR_63, NDNBOOST_PP_TUPLE_EAT_4)(o(63, s), p, o, m)
+# define NDNBOOST_PP_FOR_63_I(s, p, o, m) NDNBOOST_PP_IF(p(64, s), m, NDNBOOST_PP_TUPLE_EAT_2)(64, s) NDNBOOST_PP_IF(p(64, s), NDNBOOST_PP_FOR_64, NDNBOOST_PP_TUPLE_EAT_4)(o(64, s), p, o, m)
+# define NDNBOOST_PP_FOR_64_I(s, p, o, m) NDNBOOST_PP_IF(p(65, s), m, NDNBOOST_PP_TUPLE_EAT_2)(65, s) NDNBOOST_PP_IF(p(65, s), NDNBOOST_PP_FOR_65, NDNBOOST_PP_TUPLE_EAT_4)(o(65, s), p, o, m)
+# define NDNBOOST_PP_FOR_65_I(s, p, o, m) NDNBOOST_PP_IF(p(66, s), m, NDNBOOST_PP_TUPLE_EAT_2)(66, s) NDNBOOST_PP_IF(p(66, s), NDNBOOST_PP_FOR_66, NDNBOOST_PP_TUPLE_EAT_4)(o(66, s), p, o, m)
+# define NDNBOOST_PP_FOR_66_I(s, p, o, m) NDNBOOST_PP_IF(p(67, s), m, NDNBOOST_PP_TUPLE_EAT_2)(67, s) NDNBOOST_PP_IF(p(67, s), NDNBOOST_PP_FOR_67, NDNBOOST_PP_TUPLE_EAT_4)(o(67, s), p, o, m)
+# define NDNBOOST_PP_FOR_67_I(s, p, o, m) NDNBOOST_PP_IF(p(68, s), m, NDNBOOST_PP_TUPLE_EAT_2)(68, s) NDNBOOST_PP_IF(p(68, s), NDNBOOST_PP_FOR_68, NDNBOOST_PP_TUPLE_EAT_4)(o(68, s), p, o, m)
+# define NDNBOOST_PP_FOR_68_I(s, p, o, m) NDNBOOST_PP_IF(p(69, s), m, NDNBOOST_PP_TUPLE_EAT_2)(69, s) NDNBOOST_PP_IF(p(69, s), NDNBOOST_PP_FOR_69, NDNBOOST_PP_TUPLE_EAT_4)(o(69, s), p, o, m)
+# define NDNBOOST_PP_FOR_69_I(s, p, o, m) NDNBOOST_PP_IF(p(70, s), m, NDNBOOST_PP_TUPLE_EAT_2)(70, s) NDNBOOST_PP_IF(p(70, s), NDNBOOST_PP_FOR_70, NDNBOOST_PP_TUPLE_EAT_4)(o(70, s), p, o, m)
+# define NDNBOOST_PP_FOR_70_I(s, p, o, m) NDNBOOST_PP_IF(p(71, s), m, NDNBOOST_PP_TUPLE_EAT_2)(71, s) NDNBOOST_PP_IF(p(71, s), NDNBOOST_PP_FOR_71, NDNBOOST_PP_TUPLE_EAT_4)(o(71, s), p, o, m)
+# define NDNBOOST_PP_FOR_71_I(s, p, o, m) NDNBOOST_PP_IF(p(72, s), m, NDNBOOST_PP_TUPLE_EAT_2)(72, s) NDNBOOST_PP_IF(p(72, s), NDNBOOST_PP_FOR_72, NDNBOOST_PP_TUPLE_EAT_4)(o(72, s), p, o, m)
+# define NDNBOOST_PP_FOR_72_I(s, p, o, m) NDNBOOST_PP_IF(p(73, s), m, NDNBOOST_PP_TUPLE_EAT_2)(73, s) NDNBOOST_PP_IF(p(73, s), NDNBOOST_PP_FOR_73, NDNBOOST_PP_TUPLE_EAT_4)(o(73, s), p, o, m)
+# define NDNBOOST_PP_FOR_73_I(s, p, o, m) NDNBOOST_PP_IF(p(74, s), m, NDNBOOST_PP_TUPLE_EAT_2)(74, s) NDNBOOST_PP_IF(p(74, s), NDNBOOST_PP_FOR_74, NDNBOOST_PP_TUPLE_EAT_4)(o(74, s), p, o, m)
+# define NDNBOOST_PP_FOR_74_I(s, p, o, m) NDNBOOST_PP_IF(p(75, s), m, NDNBOOST_PP_TUPLE_EAT_2)(75, s) NDNBOOST_PP_IF(p(75, s), NDNBOOST_PP_FOR_75, NDNBOOST_PP_TUPLE_EAT_4)(o(75, s), p, o, m)
+# define NDNBOOST_PP_FOR_75_I(s, p, o, m) NDNBOOST_PP_IF(p(76, s), m, NDNBOOST_PP_TUPLE_EAT_2)(76, s) NDNBOOST_PP_IF(p(76, s), NDNBOOST_PP_FOR_76, NDNBOOST_PP_TUPLE_EAT_4)(o(76, s), p, o, m)
+# define NDNBOOST_PP_FOR_76_I(s, p, o, m) NDNBOOST_PP_IF(p(77, s), m, NDNBOOST_PP_TUPLE_EAT_2)(77, s) NDNBOOST_PP_IF(p(77, s), NDNBOOST_PP_FOR_77, NDNBOOST_PP_TUPLE_EAT_4)(o(77, s), p, o, m)
+# define NDNBOOST_PP_FOR_77_I(s, p, o, m) NDNBOOST_PP_IF(p(78, s), m, NDNBOOST_PP_TUPLE_EAT_2)(78, s) NDNBOOST_PP_IF(p(78, s), NDNBOOST_PP_FOR_78, NDNBOOST_PP_TUPLE_EAT_4)(o(78, s), p, o, m)
+# define NDNBOOST_PP_FOR_78_I(s, p, o, m) NDNBOOST_PP_IF(p(79, s), m, NDNBOOST_PP_TUPLE_EAT_2)(79, s) NDNBOOST_PP_IF(p(79, s), NDNBOOST_PP_FOR_79, NDNBOOST_PP_TUPLE_EAT_4)(o(79, s), p, o, m)
+# define NDNBOOST_PP_FOR_79_I(s, p, o, m) NDNBOOST_PP_IF(p(80, s), m, NDNBOOST_PP_TUPLE_EAT_2)(80, s) NDNBOOST_PP_IF(p(80, s), NDNBOOST_PP_FOR_80, NDNBOOST_PP_TUPLE_EAT_4)(o(80, s), p, o, m)
+# define NDNBOOST_PP_FOR_80_I(s, p, o, m) NDNBOOST_PP_IF(p(81, s), m, NDNBOOST_PP_TUPLE_EAT_2)(81, s) NDNBOOST_PP_IF(p(81, s), NDNBOOST_PP_FOR_81, NDNBOOST_PP_TUPLE_EAT_4)(o(81, s), p, o, m)
+# define NDNBOOST_PP_FOR_81_I(s, p, o, m) NDNBOOST_PP_IF(p(82, s), m, NDNBOOST_PP_TUPLE_EAT_2)(82, s) NDNBOOST_PP_IF(p(82, s), NDNBOOST_PP_FOR_82, NDNBOOST_PP_TUPLE_EAT_4)(o(82, s), p, o, m)
+# define NDNBOOST_PP_FOR_82_I(s, p, o, m) NDNBOOST_PP_IF(p(83, s), m, NDNBOOST_PP_TUPLE_EAT_2)(83, s) NDNBOOST_PP_IF(p(83, s), NDNBOOST_PP_FOR_83, NDNBOOST_PP_TUPLE_EAT_4)(o(83, s), p, o, m)
+# define NDNBOOST_PP_FOR_83_I(s, p, o, m) NDNBOOST_PP_IF(p(84, s), m, NDNBOOST_PP_TUPLE_EAT_2)(84, s) NDNBOOST_PP_IF(p(84, s), NDNBOOST_PP_FOR_84, NDNBOOST_PP_TUPLE_EAT_4)(o(84, s), p, o, m)
+# define NDNBOOST_PP_FOR_84_I(s, p, o, m) NDNBOOST_PP_IF(p(85, s), m, NDNBOOST_PP_TUPLE_EAT_2)(85, s) NDNBOOST_PP_IF(p(85, s), NDNBOOST_PP_FOR_85, NDNBOOST_PP_TUPLE_EAT_4)(o(85, s), p, o, m)
+# define NDNBOOST_PP_FOR_85_I(s, p, o, m) NDNBOOST_PP_IF(p(86, s), m, NDNBOOST_PP_TUPLE_EAT_2)(86, s) NDNBOOST_PP_IF(p(86, s), NDNBOOST_PP_FOR_86, NDNBOOST_PP_TUPLE_EAT_4)(o(86, s), p, o, m)
+# define NDNBOOST_PP_FOR_86_I(s, p, o, m) NDNBOOST_PP_IF(p(87, s), m, NDNBOOST_PP_TUPLE_EAT_2)(87, s) NDNBOOST_PP_IF(p(87, s), NDNBOOST_PP_FOR_87, NDNBOOST_PP_TUPLE_EAT_4)(o(87, s), p, o, m)
+# define NDNBOOST_PP_FOR_87_I(s, p, o, m) NDNBOOST_PP_IF(p(88, s), m, NDNBOOST_PP_TUPLE_EAT_2)(88, s) NDNBOOST_PP_IF(p(88, s), NDNBOOST_PP_FOR_88, NDNBOOST_PP_TUPLE_EAT_4)(o(88, s), p, o, m)
+# define NDNBOOST_PP_FOR_88_I(s, p, o, m) NDNBOOST_PP_IF(p(89, s), m, NDNBOOST_PP_TUPLE_EAT_2)(89, s) NDNBOOST_PP_IF(p(89, s), NDNBOOST_PP_FOR_89, NDNBOOST_PP_TUPLE_EAT_4)(o(89, s), p, o, m)
+# define NDNBOOST_PP_FOR_89_I(s, p, o, m) NDNBOOST_PP_IF(p(90, s), m, NDNBOOST_PP_TUPLE_EAT_2)(90, s) NDNBOOST_PP_IF(p(90, s), NDNBOOST_PP_FOR_90, NDNBOOST_PP_TUPLE_EAT_4)(o(90, s), p, o, m)
+# define NDNBOOST_PP_FOR_90_I(s, p, o, m) NDNBOOST_PP_IF(p(91, s), m, NDNBOOST_PP_TUPLE_EAT_2)(91, s) NDNBOOST_PP_IF(p(91, s), NDNBOOST_PP_FOR_91, NDNBOOST_PP_TUPLE_EAT_4)(o(91, s), p, o, m)
+# define NDNBOOST_PP_FOR_91_I(s, p, o, m) NDNBOOST_PP_IF(p(92, s), m, NDNBOOST_PP_TUPLE_EAT_2)(92, s) NDNBOOST_PP_IF(p(92, s), NDNBOOST_PP_FOR_92, NDNBOOST_PP_TUPLE_EAT_4)(o(92, s), p, o, m)
+# define NDNBOOST_PP_FOR_92_I(s, p, o, m) NDNBOOST_PP_IF(p(93, s), m, NDNBOOST_PP_TUPLE_EAT_2)(93, s) NDNBOOST_PP_IF(p(93, s), NDNBOOST_PP_FOR_93, NDNBOOST_PP_TUPLE_EAT_4)(o(93, s), p, o, m)
+# define NDNBOOST_PP_FOR_93_I(s, p, o, m) NDNBOOST_PP_IF(p(94, s), m, NDNBOOST_PP_TUPLE_EAT_2)(94, s) NDNBOOST_PP_IF(p(94, s), NDNBOOST_PP_FOR_94, NDNBOOST_PP_TUPLE_EAT_4)(o(94, s), p, o, m)
+# define NDNBOOST_PP_FOR_94_I(s, p, o, m) NDNBOOST_PP_IF(p(95, s), m, NDNBOOST_PP_TUPLE_EAT_2)(95, s) NDNBOOST_PP_IF(p(95, s), NDNBOOST_PP_FOR_95, NDNBOOST_PP_TUPLE_EAT_4)(o(95, s), p, o, m)
+# define NDNBOOST_PP_FOR_95_I(s, p, o, m) NDNBOOST_PP_IF(p(96, s), m, NDNBOOST_PP_TUPLE_EAT_2)(96, s) NDNBOOST_PP_IF(p(96, s), NDNBOOST_PP_FOR_96, NDNBOOST_PP_TUPLE_EAT_4)(o(96, s), p, o, m)
+# define NDNBOOST_PP_FOR_96_I(s, p, o, m) NDNBOOST_PP_IF(p(97, s), m, NDNBOOST_PP_TUPLE_EAT_2)(97, s) NDNBOOST_PP_IF(p(97, s), NDNBOOST_PP_FOR_97, NDNBOOST_PP_TUPLE_EAT_4)(o(97, s), p, o, m)
+# define NDNBOOST_PP_FOR_97_I(s, p, o, m) NDNBOOST_PP_IF(p(98, s), m, NDNBOOST_PP_TUPLE_EAT_2)(98, s) NDNBOOST_PP_IF(p(98, s), NDNBOOST_PP_FOR_98, NDNBOOST_PP_TUPLE_EAT_4)(o(98, s), p, o, m)
+# define NDNBOOST_PP_FOR_98_I(s, p, o, m) NDNBOOST_PP_IF(p(99, s), m, NDNBOOST_PP_TUPLE_EAT_2)(99, s) NDNBOOST_PP_IF(p(99, s), NDNBOOST_PP_FOR_99, NDNBOOST_PP_TUPLE_EAT_4)(o(99, s), p, o, m)
+# define NDNBOOST_PP_FOR_99_I(s, p, o, m) NDNBOOST_PP_IF(p(100, s), m, NDNBOOST_PP_TUPLE_EAT_2)(100, s) NDNBOOST_PP_IF(p(100, s), NDNBOOST_PP_FOR_100, NDNBOOST_PP_TUPLE_EAT_4)(o(100, s), p, o, m)
+# define NDNBOOST_PP_FOR_100_I(s, p, o, m) NDNBOOST_PP_IF(p(101, s), m, NDNBOOST_PP_TUPLE_EAT_2)(101, s) NDNBOOST_PP_IF(p(101, s), NDNBOOST_PP_FOR_101, NDNBOOST_PP_TUPLE_EAT_4)(o(101, s), p, o, m)
+# define NDNBOOST_PP_FOR_101_I(s, p, o, m) NDNBOOST_PP_IF(p(102, s), m, NDNBOOST_PP_TUPLE_EAT_2)(102, s) NDNBOOST_PP_IF(p(102, s), NDNBOOST_PP_FOR_102, NDNBOOST_PP_TUPLE_EAT_4)(o(102, s), p, o, m)
+# define NDNBOOST_PP_FOR_102_I(s, p, o, m) NDNBOOST_PP_IF(p(103, s), m, NDNBOOST_PP_TUPLE_EAT_2)(103, s) NDNBOOST_PP_IF(p(103, s), NDNBOOST_PP_FOR_103, NDNBOOST_PP_TUPLE_EAT_4)(o(103, s), p, o, m)
+# define NDNBOOST_PP_FOR_103_I(s, p, o, m) NDNBOOST_PP_IF(p(104, s), m, NDNBOOST_PP_TUPLE_EAT_2)(104, s) NDNBOOST_PP_IF(p(104, s), NDNBOOST_PP_FOR_104, NDNBOOST_PP_TUPLE_EAT_4)(o(104, s), p, o, m)
+# define NDNBOOST_PP_FOR_104_I(s, p, o, m) NDNBOOST_PP_IF(p(105, s), m, NDNBOOST_PP_TUPLE_EAT_2)(105, s) NDNBOOST_PP_IF(p(105, s), NDNBOOST_PP_FOR_105, NDNBOOST_PP_TUPLE_EAT_4)(o(105, s), p, o, m)
+# define NDNBOOST_PP_FOR_105_I(s, p, o, m) NDNBOOST_PP_IF(p(106, s), m, NDNBOOST_PP_TUPLE_EAT_2)(106, s) NDNBOOST_PP_IF(p(106, s), NDNBOOST_PP_FOR_106, NDNBOOST_PP_TUPLE_EAT_4)(o(106, s), p, o, m)
+# define NDNBOOST_PP_FOR_106_I(s, p, o, m) NDNBOOST_PP_IF(p(107, s), m, NDNBOOST_PP_TUPLE_EAT_2)(107, s) NDNBOOST_PP_IF(p(107, s), NDNBOOST_PP_FOR_107, NDNBOOST_PP_TUPLE_EAT_4)(o(107, s), p, o, m)
+# define NDNBOOST_PP_FOR_107_I(s, p, o, m) NDNBOOST_PP_IF(p(108, s), m, NDNBOOST_PP_TUPLE_EAT_2)(108, s) NDNBOOST_PP_IF(p(108, s), NDNBOOST_PP_FOR_108, NDNBOOST_PP_TUPLE_EAT_4)(o(108, s), p, o, m)
+# define NDNBOOST_PP_FOR_108_I(s, p, o, m) NDNBOOST_PP_IF(p(109, s), m, NDNBOOST_PP_TUPLE_EAT_2)(109, s) NDNBOOST_PP_IF(p(109, s), NDNBOOST_PP_FOR_109, NDNBOOST_PP_TUPLE_EAT_4)(o(109, s), p, o, m)
+# define NDNBOOST_PP_FOR_109_I(s, p, o, m) NDNBOOST_PP_IF(p(110, s), m, NDNBOOST_PP_TUPLE_EAT_2)(110, s) NDNBOOST_PP_IF(p(110, s), NDNBOOST_PP_FOR_110, NDNBOOST_PP_TUPLE_EAT_4)(o(110, s), p, o, m)
+# define NDNBOOST_PP_FOR_110_I(s, p, o, m) NDNBOOST_PP_IF(p(111, s), m, NDNBOOST_PP_TUPLE_EAT_2)(111, s) NDNBOOST_PP_IF(p(111, s), NDNBOOST_PP_FOR_111, NDNBOOST_PP_TUPLE_EAT_4)(o(111, s), p, o, m)
+# define NDNBOOST_PP_FOR_111_I(s, p, o, m) NDNBOOST_PP_IF(p(112, s), m, NDNBOOST_PP_TUPLE_EAT_2)(112, s) NDNBOOST_PP_IF(p(112, s), NDNBOOST_PP_FOR_112, NDNBOOST_PP_TUPLE_EAT_4)(o(112, s), p, o, m)
+# define NDNBOOST_PP_FOR_112_I(s, p, o, m) NDNBOOST_PP_IF(p(113, s), m, NDNBOOST_PP_TUPLE_EAT_2)(113, s) NDNBOOST_PP_IF(p(113, s), NDNBOOST_PP_FOR_113, NDNBOOST_PP_TUPLE_EAT_4)(o(113, s), p, o, m)
+# define NDNBOOST_PP_FOR_113_I(s, p, o, m) NDNBOOST_PP_IF(p(114, s), m, NDNBOOST_PP_TUPLE_EAT_2)(114, s) NDNBOOST_PP_IF(p(114, s), NDNBOOST_PP_FOR_114, NDNBOOST_PP_TUPLE_EAT_4)(o(114, s), p, o, m)
+# define NDNBOOST_PP_FOR_114_I(s, p, o, m) NDNBOOST_PP_IF(p(115, s), m, NDNBOOST_PP_TUPLE_EAT_2)(115, s) NDNBOOST_PP_IF(p(115, s), NDNBOOST_PP_FOR_115, NDNBOOST_PP_TUPLE_EAT_4)(o(115, s), p, o, m)
+# define NDNBOOST_PP_FOR_115_I(s, p, o, m) NDNBOOST_PP_IF(p(116, s), m, NDNBOOST_PP_TUPLE_EAT_2)(116, s) NDNBOOST_PP_IF(p(116, s), NDNBOOST_PP_FOR_116, NDNBOOST_PP_TUPLE_EAT_4)(o(116, s), p, o, m)
+# define NDNBOOST_PP_FOR_116_I(s, p, o, m) NDNBOOST_PP_IF(p(117, s), m, NDNBOOST_PP_TUPLE_EAT_2)(117, s) NDNBOOST_PP_IF(p(117, s), NDNBOOST_PP_FOR_117, NDNBOOST_PP_TUPLE_EAT_4)(o(117, s), p, o, m)
+# define NDNBOOST_PP_FOR_117_I(s, p, o, m) NDNBOOST_PP_IF(p(118, s), m, NDNBOOST_PP_TUPLE_EAT_2)(118, s) NDNBOOST_PP_IF(p(118, s), NDNBOOST_PP_FOR_118, NDNBOOST_PP_TUPLE_EAT_4)(o(118, s), p, o, m)
+# define NDNBOOST_PP_FOR_118_I(s, p, o, m) NDNBOOST_PP_IF(p(119, s), m, NDNBOOST_PP_TUPLE_EAT_2)(119, s) NDNBOOST_PP_IF(p(119, s), NDNBOOST_PP_FOR_119, NDNBOOST_PP_TUPLE_EAT_4)(o(119, s), p, o, m)
+# define NDNBOOST_PP_FOR_119_I(s, p, o, m) NDNBOOST_PP_IF(p(120, s), m, NDNBOOST_PP_TUPLE_EAT_2)(120, s) NDNBOOST_PP_IF(p(120, s), NDNBOOST_PP_FOR_120, NDNBOOST_PP_TUPLE_EAT_4)(o(120, s), p, o, m)
+# define NDNBOOST_PP_FOR_120_I(s, p, o, m) NDNBOOST_PP_IF(p(121, s), m, NDNBOOST_PP_TUPLE_EAT_2)(121, s) NDNBOOST_PP_IF(p(121, s), NDNBOOST_PP_FOR_121, NDNBOOST_PP_TUPLE_EAT_4)(o(121, s), p, o, m)
+# define NDNBOOST_PP_FOR_121_I(s, p, o, m) NDNBOOST_PP_IF(p(122, s), m, NDNBOOST_PP_TUPLE_EAT_2)(122, s) NDNBOOST_PP_IF(p(122, s), NDNBOOST_PP_FOR_122, NDNBOOST_PP_TUPLE_EAT_4)(o(122, s), p, o, m)
+# define NDNBOOST_PP_FOR_122_I(s, p, o, m) NDNBOOST_PP_IF(p(123, s), m, NDNBOOST_PP_TUPLE_EAT_2)(123, s) NDNBOOST_PP_IF(p(123, s), NDNBOOST_PP_FOR_123, NDNBOOST_PP_TUPLE_EAT_4)(o(123, s), p, o, m)
+# define NDNBOOST_PP_FOR_123_I(s, p, o, m) NDNBOOST_PP_IF(p(124, s), m, NDNBOOST_PP_TUPLE_EAT_2)(124, s) NDNBOOST_PP_IF(p(124, s), NDNBOOST_PP_FOR_124, NDNBOOST_PP_TUPLE_EAT_4)(o(124, s), p, o, m)
+# define NDNBOOST_PP_FOR_124_I(s, p, o, m) NDNBOOST_PP_IF(p(125, s), m, NDNBOOST_PP_TUPLE_EAT_2)(125, s) NDNBOOST_PP_IF(p(125, s), NDNBOOST_PP_FOR_125, NDNBOOST_PP_TUPLE_EAT_4)(o(125, s), p, o, m)
+# define NDNBOOST_PP_FOR_125_I(s, p, o, m) NDNBOOST_PP_IF(p(126, s), m, NDNBOOST_PP_TUPLE_EAT_2)(126, s) NDNBOOST_PP_IF(p(126, s), NDNBOOST_PP_FOR_126, NDNBOOST_PP_TUPLE_EAT_4)(o(126, s), p, o, m)
+# define NDNBOOST_PP_FOR_126_I(s, p, o, m) NDNBOOST_PP_IF(p(127, s), m, NDNBOOST_PP_TUPLE_EAT_2)(127, s) NDNBOOST_PP_IF(p(127, s), NDNBOOST_PP_FOR_127, NDNBOOST_PP_TUPLE_EAT_4)(o(127, s), p, o, m)
+# define NDNBOOST_PP_FOR_127_I(s, p, o, m) NDNBOOST_PP_IF(p(128, s), m, NDNBOOST_PP_TUPLE_EAT_2)(128, s) NDNBOOST_PP_IF(p(128, s), NDNBOOST_PP_FOR_128, NDNBOOST_PP_TUPLE_EAT_4)(o(128, s), p, o, m)
+# define NDNBOOST_PP_FOR_128_I(s, p, o, m) NDNBOOST_PP_IF(p(129, s), m, NDNBOOST_PP_TUPLE_EAT_2)(129, s) NDNBOOST_PP_IF(p(129, s), NDNBOOST_PP_FOR_129, NDNBOOST_PP_TUPLE_EAT_4)(o(129, s), p, o, m)
+# define NDNBOOST_PP_FOR_129_I(s, p, o, m) NDNBOOST_PP_IF(p(130, s), m, NDNBOOST_PP_TUPLE_EAT_2)(130, s) NDNBOOST_PP_IF(p(130, s), NDNBOOST_PP_FOR_130, NDNBOOST_PP_TUPLE_EAT_4)(o(130, s), p, o, m)
+# define NDNBOOST_PP_FOR_130_I(s, p, o, m) NDNBOOST_PP_IF(p(131, s), m, NDNBOOST_PP_TUPLE_EAT_2)(131, s) NDNBOOST_PP_IF(p(131, s), NDNBOOST_PP_FOR_131, NDNBOOST_PP_TUPLE_EAT_4)(o(131, s), p, o, m)
+# define NDNBOOST_PP_FOR_131_I(s, p, o, m) NDNBOOST_PP_IF(p(132, s), m, NDNBOOST_PP_TUPLE_EAT_2)(132, s) NDNBOOST_PP_IF(p(132, s), NDNBOOST_PP_FOR_132, NDNBOOST_PP_TUPLE_EAT_4)(o(132, s), p, o, m)
+# define NDNBOOST_PP_FOR_132_I(s, p, o, m) NDNBOOST_PP_IF(p(133, s), m, NDNBOOST_PP_TUPLE_EAT_2)(133, s) NDNBOOST_PP_IF(p(133, s), NDNBOOST_PP_FOR_133, NDNBOOST_PP_TUPLE_EAT_4)(o(133, s), p, o, m)
+# define NDNBOOST_PP_FOR_133_I(s, p, o, m) NDNBOOST_PP_IF(p(134, s), m, NDNBOOST_PP_TUPLE_EAT_2)(134, s) NDNBOOST_PP_IF(p(134, s), NDNBOOST_PP_FOR_134, NDNBOOST_PP_TUPLE_EAT_4)(o(134, s), p, o, m)
+# define NDNBOOST_PP_FOR_134_I(s, p, o, m) NDNBOOST_PP_IF(p(135, s), m, NDNBOOST_PP_TUPLE_EAT_2)(135, s) NDNBOOST_PP_IF(p(135, s), NDNBOOST_PP_FOR_135, NDNBOOST_PP_TUPLE_EAT_4)(o(135, s), p, o, m)
+# define NDNBOOST_PP_FOR_135_I(s, p, o, m) NDNBOOST_PP_IF(p(136, s), m, NDNBOOST_PP_TUPLE_EAT_2)(136, s) NDNBOOST_PP_IF(p(136, s), NDNBOOST_PP_FOR_136, NDNBOOST_PP_TUPLE_EAT_4)(o(136, s), p, o, m)
+# define NDNBOOST_PP_FOR_136_I(s, p, o, m) NDNBOOST_PP_IF(p(137, s), m, NDNBOOST_PP_TUPLE_EAT_2)(137, s) NDNBOOST_PP_IF(p(137, s), NDNBOOST_PP_FOR_137, NDNBOOST_PP_TUPLE_EAT_4)(o(137, s), p, o, m)
+# define NDNBOOST_PP_FOR_137_I(s, p, o, m) NDNBOOST_PP_IF(p(138, s), m, NDNBOOST_PP_TUPLE_EAT_2)(138, s) NDNBOOST_PP_IF(p(138, s), NDNBOOST_PP_FOR_138, NDNBOOST_PP_TUPLE_EAT_4)(o(138, s), p, o, m)
+# define NDNBOOST_PP_FOR_138_I(s, p, o, m) NDNBOOST_PP_IF(p(139, s), m, NDNBOOST_PP_TUPLE_EAT_2)(139, s) NDNBOOST_PP_IF(p(139, s), NDNBOOST_PP_FOR_139, NDNBOOST_PP_TUPLE_EAT_4)(o(139, s), p, o, m)
+# define NDNBOOST_PP_FOR_139_I(s, p, o, m) NDNBOOST_PP_IF(p(140, s), m, NDNBOOST_PP_TUPLE_EAT_2)(140, s) NDNBOOST_PP_IF(p(140, s), NDNBOOST_PP_FOR_140, NDNBOOST_PP_TUPLE_EAT_4)(o(140, s), p, o, m)
+# define NDNBOOST_PP_FOR_140_I(s, p, o, m) NDNBOOST_PP_IF(p(141, s), m, NDNBOOST_PP_TUPLE_EAT_2)(141, s) NDNBOOST_PP_IF(p(141, s), NDNBOOST_PP_FOR_141, NDNBOOST_PP_TUPLE_EAT_4)(o(141, s), p, o, m)
+# define NDNBOOST_PP_FOR_141_I(s, p, o, m) NDNBOOST_PP_IF(p(142, s), m, NDNBOOST_PP_TUPLE_EAT_2)(142, s) NDNBOOST_PP_IF(p(142, s), NDNBOOST_PP_FOR_142, NDNBOOST_PP_TUPLE_EAT_4)(o(142, s), p, o, m)
+# define NDNBOOST_PP_FOR_142_I(s, p, o, m) NDNBOOST_PP_IF(p(143, s), m, NDNBOOST_PP_TUPLE_EAT_2)(143, s) NDNBOOST_PP_IF(p(143, s), NDNBOOST_PP_FOR_143, NDNBOOST_PP_TUPLE_EAT_4)(o(143, s), p, o, m)
+# define NDNBOOST_PP_FOR_143_I(s, p, o, m) NDNBOOST_PP_IF(p(144, s), m, NDNBOOST_PP_TUPLE_EAT_2)(144, s) NDNBOOST_PP_IF(p(144, s), NDNBOOST_PP_FOR_144, NDNBOOST_PP_TUPLE_EAT_4)(o(144, s), p, o, m)
+# define NDNBOOST_PP_FOR_144_I(s, p, o, m) NDNBOOST_PP_IF(p(145, s), m, NDNBOOST_PP_TUPLE_EAT_2)(145, s) NDNBOOST_PP_IF(p(145, s), NDNBOOST_PP_FOR_145, NDNBOOST_PP_TUPLE_EAT_4)(o(145, s), p, o, m)
+# define NDNBOOST_PP_FOR_145_I(s, p, o, m) NDNBOOST_PP_IF(p(146, s), m, NDNBOOST_PP_TUPLE_EAT_2)(146, s) NDNBOOST_PP_IF(p(146, s), NDNBOOST_PP_FOR_146, NDNBOOST_PP_TUPLE_EAT_4)(o(146, s), p, o, m)
+# define NDNBOOST_PP_FOR_146_I(s, p, o, m) NDNBOOST_PP_IF(p(147, s), m, NDNBOOST_PP_TUPLE_EAT_2)(147, s) NDNBOOST_PP_IF(p(147, s), NDNBOOST_PP_FOR_147, NDNBOOST_PP_TUPLE_EAT_4)(o(147, s), p, o, m)
+# define NDNBOOST_PP_FOR_147_I(s, p, o, m) NDNBOOST_PP_IF(p(148, s), m, NDNBOOST_PP_TUPLE_EAT_2)(148, s) NDNBOOST_PP_IF(p(148, s), NDNBOOST_PP_FOR_148, NDNBOOST_PP_TUPLE_EAT_4)(o(148, s), p, o, m)
+# define NDNBOOST_PP_FOR_148_I(s, p, o, m) NDNBOOST_PP_IF(p(149, s), m, NDNBOOST_PP_TUPLE_EAT_2)(149, s) NDNBOOST_PP_IF(p(149, s), NDNBOOST_PP_FOR_149, NDNBOOST_PP_TUPLE_EAT_4)(o(149, s), p, o, m)
+# define NDNBOOST_PP_FOR_149_I(s, p, o, m) NDNBOOST_PP_IF(p(150, s), m, NDNBOOST_PP_TUPLE_EAT_2)(150, s) NDNBOOST_PP_IF(p(150, s), NDNBOOST_PP_FOR_150, NDNBOOST_PP_TUPLE_EAT_4)(o(150, s), p, o, m)
+# define NDNBOOST_PP_FOR_150_I(s, p, o, m) NDNBOOST_PP_IF(p(151, s), m, NDNBOOST_PP_TUPLE_EAT_2)(151, s) NDNBOOST_PP_IF(p(151, s), NDNBOOST_PP_FOR_151, NDNBOOST_PP_TUPLE_EAT_4)(o(151, s), p, o, m)
+# define NDNBOOST_PP_FOR_151_I(s, p, o, m) NDNBOOST_PP_IF(p(152, s), m, NDNBOOST_PP_TUPLE_EAT_2)(152, s) NDNBOOST_PP_IF(p(152, s), NDNBOOST_PP_FOR_152, NDNBOOST_PP_TUPLE_EAT_4)(o(152, s), p, o, m)
+# define NDNBOOST_PP_FOR_152_I(s, p, o, m) NDNBOOST_PP_IF(p(153, s), m, NDNBOOST_PP_TUPLE_EAT_2)(153, s) NDNBOOST_PP_IF(p(153, s), NDNBOOST_PP_FOR_153, NDNBOOST_PP_TUPLE_EAT_4)(o(153, s), p, o, m)
+# define NDNBOOST_PP_FOR_153_I(s, p, o, m) NDNBOOST_PP_IF(p(154, s), m, NDNBOOST_PP_TUPLE_EAT_2)(154, s) NDNBOOST_PP_IF(p(154, s), NDNBOOST_PP_FOR_154, NDNBOOST_PP_TUPLE_EAT_4)(o(154, s), p, o, m)
+# define NDNBOOST_PP_FOR_154_I(s, p, o, m) NDNBOOST_PP_IF(p(155, s), m, NDNBOOST_PP_TUPLE_EAT_2)(155, s) NDNBOOST_PP_IF(p(155, s), NDNBOOST_PP_FOR_155, NDNBOOST_PP_TUPLE_EAT_4)(o(155, s), p, o, m)
+# define NDNBOOST_PP_FOR_155_I(s, p, o, m) NDNBOOST_PP_IF(p(156, s), m, NDNBOOST_PP_TUPLE_EAT_2)(156, s) NDNBOOST_PP_IF(p(156, s), NDNBOOST_PP_FOR_156, NDNBOOST_PP_TUPLE_EAT_4)(o(156, s), p, o, m)
+# define NDNBOOST_PP_FOR_156_I(s, p, o, m) NDNBOOST_PP_IF(p(157, s), m, NDNBOOST_PP_TUPLE_EAT_2)(157, s) NDNBOOST_PP_IF(p(157, s), NDNBOOST_PP_FOR_157, NDNBOOST_PP_TUPLE_EAT_4)(o(157, s), p, o, m)
+# define NDNBOOST_PP_FOR_157_I(s, p, o, m) NDNBOOST_PP_IF(p(158, s), m, NDNBOOST_PP_TUPLE_EAT_2)(158, s) NDNBOOST_PP_IF(p(158, s), NDNBOOST_PP_FOR_158, NDNBOOST_PP_TUPLE_EAT_4)(o(158, s), p, o, m)
+# define NDNBOOST_PP_FOR_158_I(s, p, o, m) NDNBOOST_PP_IF(p(159, s), m, NDNBOOST_PP_TUPLE_EAT_2)(159, s) NDNBOOST_PP_IF(p(159, s), NDNBOOST_PP_FOR_159, NDNBOOST_PP_TUPLE_EAT_4)(o(159, s), p, o, m)
+# define NDNBOOST_PP_FOR_159_I(s, p, o, m) NDNBOOST_PP_IF(p(160, s), m, NDNBOOST_PP_TUPLE_EAT_2)(160, s) NDNBOOST_PP_IF(p(160, s), NDNBOOST_PP_FOR_160, NDNBOOST_PP_TUPLE_EAT_4)(o(160, s), p, o, m)
+# define NDNBOOST_PP_FOR_160_I(s, p, o, m) NDNBOOST_PP_IF(p(161, s), m, NDNBOOST_PP_TUPLE_EAT_2)(161, s) NDNBOOST_PP_IF(p(161, s), NDNBOOST_PP_FOR_161, NDNBOOST_PP_TUPLE_EAT_4)(o(161, s), p, o, m)
+# define NDNBOOST_PP_FOR_161_I(s, p, o, m) NDNBOOST_PP_IF(p(162, s), m, NDNBOOST_PP_TUPLE_EAT_2)(162, s) NDNBOOST_PP_IF(p(162, s), NDNBOOST_PP_FOR_162, NDNBOOST_PP_TUPLE_EAT_4)(o(162, s), p, o, m)
+# define NDNBOOST_PP_FOR_162_I(s, p, o, m) NDNBOOST_PP_IF(p(163, s), m, NDNBOOST_PP_TUPLE_EAT_2)(163, s) NDNBOOST_PP_IF(p(163, s), NDNBOOST_PP_FOR_163, NDNBOOST_PP_TUPLE_EAT_4)(o(163, s), p, o, m)
+# define NDNBOOST_PP_FOR_163_I(s, p, o, m) NDNBOOST_PP_IF(p(164, s), m, NDNBOOST_PP_TUPLE_EAT_2)(164, s) NDNBOOST_PP_IF(p(164, s), NDNBOOST_PP_FOR_164, NDNBOOST_PP_TUPLE_EAT_4)(o(164, s), p, o, m)
+# define NDNBOOST_PP_FOR_164_I(s, p, o, m) NDNBOOST_PP_IF(p(165, s), m, NDNBOOST_PP_TUPLE_EAT_2)(165, s) NDNBOOST_PP_IF(p(165, s), NDNBOOST_PP_FOR_165, NDNBOOST_PP_TUPLE_EAT_4)(o(165, s), p, o, m)
+# define NDNBOOST_PP_FOR_165_I(s, p, o, m) NDNBOOST_PP_IF(p(166, s), m, NDNBOOST_PP_TUPLE_EAT_2)(166, s) NDNBOOST_PP_IF(p(166, s), NDNBOOST_PP_FOR_166, NDNBOOST_PP_TUPLE_EAT_4)(o(166, s), p, o, m)
+# define NDNBOOST_PP_FOR_166_I(s, p, o, m) NDNBOOST_PP_IF(p(167, s), m, NDNBOOST_PP_TUPLE_EAT_2)(167, s) NDNBOOST_PP_IF(p(167, s), NDNBOOST_PP_FOR_167, NDNBOOST_PP_TUPLE_EAT_4)(o(167, s), p, o, m)
+# define NDNBOOST_PP_FOR_167_I(s, p, o, m) NDNBOOST_PP_IF(p(168, s), m, NDNBOOST_PP_TUPLE_EAT_2)(168, s) NDNBOOST_PP_IF(p(168, s), NDNBOOST_PP_FOR_168, NDNBOOST_PP_TUPLE_EAT_4)(o(168, s), p, o, m)
+# define NDNBOOST_PP_FOR_168_I(s, p, o, m) NDNBOOST_PP_IF(p(169, s), m, NDNBOOST_PP_TUPLE_EAT_2)(169, s) NDNBOOST_PP_IF(p(169, s), NDNBOOST_PP_FOR_169, NDNBOOST_PP_TUPLE_EAT_4)(o(169, s), p, o, m)
+# define NDNBOOST_PP_FOR_169_I(s, p, o, m) NDNBOOST_PP_IF(p(170, s), m, NDNBOOST_PP_TUPLE_EAT_2)(170, s) NDNBOOST_PP_IF(p(170, s), NDNBOOST_PP_FOR_170, NDNBOOST_PP_TUPLE_EAT_4)(o(170, s), p, o, m)
+# define NDNBOOST_PP_FOR_170_I(s, p, o, m) NDNBOOST_PP_IF(p(171, s), m, NDNBOOST_PP_TUPLE_EAT_2)(171, s) NDNBOOST_PP_IF(p(171, s), NDNBOOST_PP_FOR_171, NDNBOOST_PP_TUPLE_EAT_4)(o(171, s), p, o, m)
+# define NDNBOOST_PP_FOR_171_I(s, p, o, m) NDNBOOST_PP_IF(p(172, s), m, NDNBOOST_PP_TUPLE_EAT_2)(172, s) NDNBOOST_PP_IF(p(172, s), NDNBOOST_PP_FOR_172, NDNBOOST_PP_TUPLE_EAT_4)(o(172, s), p, o, m)
+# define NDNBOOST_PP_FOR_172_I(s, p, o, m) NDNBOOST_PP_IF(p(173, s), m, NDNBOOST_PP_TUPLE_EAT_2)(173, s) NDNBOOST_PP_IF(p(173, s), NDNBOOST_PP_FOR_173, NDNBOOST_PP_TUPLE_EAT_4)(o(173, s), p, o, m)
+# define NDNBOOST_PP_FOR_173_I(s, p, o, m) NDNBOOST_PP_IF(p(174, s), m, NDNBOOST_PP_TUPLE_EAT_2)(174, s) NDNBOOST_PP_IF(p(174, s), NDNBOOST_PP_FOR_174, NDNBOOST_PP_TUPLE_EAT_4)(o(174, s), p, o, m)
+# define NDNBOOST_PP_FOR_174_I(s, p, o, m) NDNBOOST_PP_IF(p(175, s), m, NDNBOOST_PP_TUPLE_EAT_2)(175, s) NDNBOOST_PP_IF(p(175, s), NDNBOOST_PP_FOR_175, NDNBOOST_PP_TUPLE_EAT_4)(o(175, s), p, o, m)
+# define NDNBOOST_PP_FOR_175_I(s, p, o, m) NDNBOOST_PP_IF(p(176, s), m, NDNBOOST_PP_TUPLE_EAT_2)(176, s) NDNBOOST_PP_IF(p(176, s), NDNBOOST_PP_FOR_176, NDNBOOST_PP_TUPLE_EAT_4)(o(176, s), p, o, m)
+# define NDNBOOST_PP_FOR_176_I(s, p, o, m) NDNBOOST_PP_IF(p(177, s), m, NDNBOOST_PP_TUPLE_EAT_2)(177, s) NDNBOOST_PP_IF(p(177, s), NDNBOOST_PP_FOR_177, NDNBOOST_PP_TUPLE_EAT_4)(o(177, s), p, o, m)
+# define NDNBOOST_PP_FOR_177_I(s, p, o, m) NDNBOOST_PP_IF(p(178, s), m, NDNBOOST_PP_TUPLE_EAT_2)(178, s) NDNBOOST_PP_IF(p(178, s), NDNBOOST_PP_FOR_178, NDNBOOST_PP_TUPLE_EAT_4)(o(178, s), p, o, m)
+# define NDNBOOST_PP_FOR_178_I(s, p, o, m) NDNBOOST_PP_IF(p(179, s), m, NDNBOOST_PP_TUPLE_EAT_2)(179, s) NDNBOOST_PP_IF(p(179, s), NDNBOOST_PP_FOR_179, NDNBOOST_PP_TUPLE_EAT_4)(o(179, s), p, o, m)
+# define NDNBOOST_PP_FOR_179_I(s, p, o, m) NDNBOOST_PP_IF(p(180, s), m, NDNBOOST_PP_TUPLE_EAT_2)(180, s) NDNBOOST_PP_IF(p(180, s), NDNBOOST_PP_FOR_180, NDNBOOST_PP_TUPLE_EAT_4)(o(180, s), p, o, m)
+# define NDNBOOST_PP_FOR_180_I(s, p, o, m) NDNBOOST_PP_IF(p(181, s), m, NDNBOOST_PP_TUPLE_EAT_2)(181, s) NDNBOOST_PP_IF(p(181, s), NDNBOOST_PP_FOR_181, NDNBOOST_PP_TUPLE_EAT_4)(o(181, s), p, o, m)
+# define NDNBOOST_PP_FOR_181_I(s, p, o, m) NDNBOOST_PP_IF(p(182, s), m, NDNBOOST_PP_TUPLE_EAT_2)(182, s) NDNBOOST_PP_IF(p(182, s), NDNBOOST_PP_FOR_182, NDNBOOST_PP_TUPLE_EAT_4)(o(182, s), p, o, m)
+# define NDNBOOST_PP_FOR_182_I(s, p, o, m) NDNBOOST_PP_IF(p(183, s), m, NDNBOOST_PP_TUPLE_EAT_2)(183, s) NDNBOOST_PP_IF(p(183, s), NDNBOOST_PP_FOR_183, NDNBOOST_PP_TUPLE_EAT_4)(o(183, s), p, o, m)
+# define NDNBOOST_PP_FOR_183_I(s, p, o, m) NDNBOOST_PP_IF(p(184, s), m, NDNBOOST_PP_TUPLE_EAT_2)(184, s) NDNBOOST_PP_IF(p(184, s), NDNBOOST_PP_FOR_184, NDNBOOST_PP_TUPLE_EAT_4)(o(184, s), p, o, m)
+# define NDNBOOST_PP_FOR_184_I(s, p, o, m) NDNBOOST_PP_IF(p(185, s), m, NDNBOOST_PP_TUPLE_EAT_2)(185, s) NDNBOOST_PP_IF(p(185, s), NDNBOOST_PP_FOR_185, NDNBOOST_PP_TUPLE_EAT_4)(o(185, s), p, o, m)
+# define NDNBOOST_PP_FOR_185_I(s, p, o, m) NDNBOOST_PP_IF(p(186, s), m, NDNBOOST_PP_TUPLE_EAT_2)(186, s) NDNBOOST_PP_IF(p(186, s), NDNBOOST_PP_FOR_186, NDNBOOST_PP_TUPLE_EAT_4)(o(186, s), p, o, m)
+# define NDNBOOST_PP_FOR_186_I(s, p, o, m) NDNBOOST_PP_IF(p(187, s), m, NDNBOOST_PP_TUPLE_EAT_2)(187, s) NDNBOOST_PP_IF(p(187, s), NDNBOOST_PP_FOR_187, NDNBOOST_PP_TUPLE_EAT_4)(o(187, s), p, o, m)
+# define NDNBOOST_PP_FOR_187_I(s, p, o, m) NDNBOOST_PP_IF(p(188, s), m, NDNBOOST_PP_TUPLE_EAT_2)(188, s) NDNBOOST_PP_IF(p(188, s), NDNBOOST_PP_FOR_188, NDNBOOST_PP_TUPLE_EAT_4)(o(188, s), p, o, m)
+# define NDNBOOST_PP_FOR_188_I(s, p, o, m) NDNBOOST_PP_IF(p(189, s), m, NDNBOOST_PP_TUPLE_EAT_2)(189, s) NDNBOOST_PP_IF(p(189, s), NDNBOOST_PP_FOR_189, NDNBOOST_PP_TUPLE_EAT_4)(o(189, s), p, o, m)
+# define NDNBOOST_PP_FOR_189_I(s, p, o, m) NDNBOOST_PP_IF(p(190, s), m, NDNBOOST_PP_TUPLE_EAT_2)(190, s) NDNBOOST_PP_IF(p(190, s), NDNBOOST_PP_FOR_190, NDNBOOST_PP_TUPLE_EAT_4)(o(190, s), p, o, m)
+# define NDNBOOST_PP_FOR_190_I(s, p, o, m) NDNBOOST_PP_IF(p(191, s), m, NDNBOOST_PP_TUPLE_EAT_2)(191, s) NDNBOOST_PP_IF(p(191, s), NDNBOOST_PP_FOR_191, NDNBOOST_PP_TUPLE_EAT_4)(o(191, s), p, o, m)
+# define NDNBOOST_PP_FOR_191_I(s, p, o, m) NDNBOOST_PP_IF(p(192, s), m, NDNBOOST_PP_TUPLE_EAT_2)(192, s) NDNBOOST_PP_IF(p(192, s), NDNBOOST_PP_FOR_192, NDNBOOST_PP_TUPLE_EAT_4)(o(192, s), p, o, m)
+# define NDNBOOST_PP_FOR_192_I(s, p, o, m) NDNBOOST_PP_IF(p(193, s), m, NDNBOOST_PP_TUPLE_EAT_2)(193, s) NDNBOOST_PP_IF(p(193, s), NDNBOOST_PP_FOR_193, NDNBOOST_PP_TUPLE_EAT_4)(o(193, s), p, o, m)
+# define NDNBOOST_PP_FOR_193_I(s, p, o, m) NDNBOOST_PP_IF(p(194, s), m, NDNBOOST_PP_TUPLE_EAT_2)(194, s) NDNBOOST_PP_IF(p(194, s), NDNBOOST_PP_FOR_194, NDNBOOST_PP_TUPLE_EAT_4)(o(194, s), p, o, m)
+# define NDNBOOST_PP_FOR_194_I(s, p, o, m) NDNBOOST_PP_IF(p(195, s), m, NDNBOOST_PP_TUPLE_EAT_2)(195, s) NDNBOOST_PP_IF(p(195, s), NDNBOOST_PP_FOR_195, NDNBOOST_PP_TUPLE_EAT_4)(o(195, s), p, o, m)
+# define NDNBOOST_PP_FOR_195_I(s, p, o, m) NDNBOOST_PP_IF(p(196, s), m, NDNBOOST_PP_TUPLE_EAT_2)(196, s) NDNBOOST_PP_IF(p(196, s), NDNBOOST_PP_FOR_196, NDNBOOST_PP_TUPLE_EAT_4)(o(196, s), p, o, m)
+# define NDNBOOST_PP_FOR_196_I(s, p, o, m) NDNBOOST_PP_IF(p(197, s), m, NDNBOOST_PP_TUPLE_EAT_2)(197, s) NDNBOOST_PP_IF(p(197, s), NDNBOOST_PP_FOR_197, NDNBOOST_PP_TUPLE_EAT_4)(o(197, s), p, o, m)
+# define NDNBOOST_PP_FOR_197_I(s, p, o, m) NDNBOOST_PP_IF(p(198, s), m, NDNBOOST_PP_TUPLE_EAT_2)(198, s) NDNBOOST_PP_IF(p(198, s), NDNBOOST_PP_FOR_198, NDNBOOST_PP_TUPLE_EAT_4)(o(198, s), p, o, m)
+# define NDNBOOST_PP_FOR_198_I(s, p, o, m) NDNBOOST_PP_IF(p(199, s), m, NDNBOOST_PP_TUPLE_EAT_2)(199, s) NDNBOOST_PP_IF(p(199, s), NDNBOOST_PP_FOR_199, NDNBOOST_PP_TUPLE_EAT_4)(o(199, s), p, o, m)
+# define NDNBOOST_PP_FOR_199_I(s, p, o, m) NDNBOOST_PP_IF(p(200, s), m, NDNBOOST_PP_TUPLE_EAT_2)(200, s) NDNBOOST_PP_IF(p(200, s), NDNBOOST_PP_FOR_200, NDNBOOST_PP_TUPLE_EAT_4)(o(200, s), p, o, m)
+# define NDNBOOST_PP_FOR_200_I(s, p, o, m) NDNBOOST_PP_IF(p(201, s), m, NDNBOOST_PP_TUPLE_EAT_2)(201, s) NDNBOOST_PP_IF(p(201, s), NDNBOOST_PP_FOR_201, NDNBOOST_PP_TUPLE_EAT_4)(o(201, s), p, o, m)
+# define NDNBOOST_PP_FOR_201_I(s, p, o, m) NDNBOOST_PP_IF(p(202, s), m, NDNBOOST_PP_TUPLE_EAT_2)(202, s) NDNBOOST_PP_IF(p(202, s), NDNBOOST_PP_FOR_202, NDNBOOST_PP_TUPLE_EAT_4)(o(202, s), p, o, m)
+# define NDNBOOST_PP_FOR_202_I(s, p, o, m) NDNBOOST_PP_IF(p(203, s), m, NDNBOOST_PP_TUPLE_EAT_2)(203, s) NDNBOOST_PP_IF(p(203, s), NDNBOOST_PP_FOR_203, NDNBOOST_PP_TUPLE_EAT_4)(o(203, s), p, o, m)
+# define NDNBOOST_PP_FOR_203_I(s, p, o, m) NDNBOOST_PP_IF(p(204, s), m, NDNBOOST_PP_TUPLE_EAT_2)(204, s) NDNBOOST_PP_IF(p(204, s), NDNBOOST_PP_FOR_204, NDNBOOST_PP_TUPLE_EAT_4)(o(204, s), p, o, m)
+# define NDNBOOST_PP_FOR_204_I(s, p, o, m) NDNBOOST_PP_IF(p(205, s), m, NDNBOOST_PP_TUPLE_EAT_2)(205, s) NDNBOOST_PP_IF(p(205, s), NDNBOOST_PP_FOR_205, NDNBOOST_PP_TUPLE_EAT_4)(o(205, s), p, o, m)
+# define NDNBOOST_PP_FOR_205_I(s, p, o, m) NDNBOOST_PP_IF(p(206, s), m, NDNBOOST_PP_TUPLE_EAT_2)(206, s) NDNBOOST_PP_IF(p(206, s), NDNBOOST_PP_FOR_206, NDNBOOST_PP_TUPLE_EAT_4)(o(206, s), p, o, m)
+# define NDNBOOST_PP_FOR_206_I(s, p, o, m) NDNBOOST_PP_IF(p(207, s), m, NDNBOOST_PP_TUPLE_EAT_2)(207, s) NDNBOOST_PP_IF(p(207, s), NDNBOOST_PP_FOR_207, NDNBOOST_PP_TUPLE_EAT_4)(o(207, s), p, o, m)
+# define NDNBOOST_PP_FOR_207_I(s, p, o, m) NDNBOOST_PP_IF(p(208, s), m, NDNBOOST_PP_TUPLE_EAT_2)(208, s) NDNBOOST_PP_IF(p(208, s), NDNBOOST_PP_FOR_208, NDNBOOST_PP_TUPLE_EAT_4)(o(208, s), p, o, m)
+# define NDNBOOST_PP_FOR_208_I(s, p, o, m) NDNBOOST_PP_IF(p(209, s), m, NDNBOOST_PP_TUPLE_EAT_2)(209, s) NDNBOOST_PP_IF(p(209, s), NDNBOOST_PP_FOR_209, NDNBOOST_PP_TUPLE_EAT_4)(o(209, s), p, o, m)
+# define NDNBOOST_PP_FOR_209_I(s, p, o, m) NDNBOOST_PP_IF(p(210, s), m, NDNBOOST_PP_TUPLE_EAT_2)(210, s) NDNBOOST_PP_IF(p(210, s), NDNBOOST_PP_FOR_210, NDNBOOST_PP_TUPLE_EAT_4)(o(210, s), p, o, m)
+# define NDNBOOST_PP_FOR_210_I(s, p, o, m) NDNBOOST_PP_IF(p(211, s), m, NDNBOOST_PP_TUPLE_EAT_2)(211, s) NDNBOOST_PP_IF(p(211, s), NDNBOOST_PP_FOR_211, NDNBOOST_PP_TUPLE_EAT_4)(o(211, s), p, o, m)
+# define NDNBOOST_PP_FOR_211_I(s, p, o, m) NDNBOOST_PP_IF(p(212, s), m, NDNBOOST_PP_TUPLE_EAT_2)(212, s) NDNBOOST_PP_IF(p(212, s), NDNBOOST_PP_FOR_212, NDNBOOST_PP_TUPLE_EAT_4)(o(212, s), p, o, m)
+# define NDNBOOST_PP_FOR_212_I(s, p, o, m) NDNBOOST_PP_IF(p(213, s), m, NDNBOOST_PP_TUPLE_EAT_2)(213, s) NDNBOOST_PP_IF(p(213, s), NDNBOOST_PP_FOR_213, NDNBOOST_PP_TUPLE_EAT_4)(o(213, s), p, o, m)
+# define NDNBOOST_PP_FOR_213_I(s, p, o, m) NDNBOOST_PP_IF(p(214, s), m, NDNBOOST_PP_TUPLE_EAT_2)(214, s) NDNBOOST_PP_IF(p(214, s), NDNBOOST_PP_FOR_214, NDNBOOST_PP_TUPLE_EAT_4)(o(214, s), p, o, m)
+# define NDNBOOST_PP_FOR_214_I(s, p, o, m) NDNBOOST_PP_IF(p(215, s), m, NDNBOOST_PP_TUPLE_EAT_2)(215, s) NDNBOOST_PP_IF(p(215, s), NDNBOOST_PP_FOR_215, NDNBOOST_PP_TUPLE_EAT_4)(o(215, s), p, o, m)
+# define NDNBOOST_PP_FOR_215_I(s, p, o, m) NDNBOOST_PP_IF(p(216, s), m, NDNBOOST_PP_TUPLE_EAT_2)(216, s) NDNBOOST_PP_IF(p(216, s), NDNBOOST_PP_FOR_216, NDNBOOST_PP_TUPLE_EAT_4)(o(216, s), p, o, m)
+# define NDNBOOST_PP_FOR_216_I(s, p, o, m) NDNBOOST_PP_IF(p(217, s), m, NDNBOOST_PP_TUPLE_EAT_2)(217, s) NDNBOOST_PP_IF(p(217, s), NDNBOOST_PP_FOR_217, NDNBOOST_PP_TUPLE_EAT_4)(o(217, s), p, o, m)
+# define NDNBOOST_PP_FOR_217_I(s, p, o, m) NDNBOOST_PP_IF(p(218, s), m, NDNBOOST_PP_TUPLE_EAT_2)(218, s) NDNBOOST_PP_IF(p(218, s), NDNBOOST_PP_FOR_218, NDNBOOST_PP_TUPLE_EAT_4)(o(218, s), p, o, m)
+# define NDNBOOST_PP_FOR_218_I(s, p, o, m) NDNBOOST_PP_IF(p(219, s), m, NDNBOOST_PP_TUPLE_EAT_2)(219, s) NDNBOOST_PP_IF(p(219, s), NDNBOOST_PP_FOR_219, NDNBOOST_PP_TUPLE_EAT_4)(o(219, s), p, o, m)
+# define NDNBOOST_PP_FOR_219_I(s, p, o, m) NDNBOOST_PP_IF(p(220, s), m, NDNBOOST_PP_TUPLE_EAT_2)(220, s) NDNBOOST_PP_IF(p(220, s), NDNBOOST_PP_FOR_220, NDNBOOST_PP_TUPLE_EAT_4)(o(220, s), p, o, m)
+# define NDNBOOST_PP_FOR_220_I(s, p, o, m) NDNBOOST_PP_IF(p(221, s), m, NDNBOOST_PP_TUPLE_EAT_2)(221, s) NDNBOOST_PP_IF(p(221, s), NDNBOOST_PP_FOR_221, NDNBOOST_PP_TUPLE_EAT_4)(o(221, s), p, o, m)
+# define NDNBOOST_PP_FOR_221_I(s, p, o, m) NDNBOOST_PP_IF(p(222, s), m, NDNBOOST_PP_TUPLE_EAT_2)(222, s) NDNBOOST_PP_IF(p(222, s), NDNBOOST_PP_FOR_222, NDNBOOST_PP_TUPLE_EAT_4)(o(222, s), p, o, m)
+# define NDNBOOST_PP_FOR_222_I(s, p, o, m) NDNBOOST_PP_IF(p(223, s), m, NDNBOOST_PP_TUPLE_EAT_2)(223, s) NDNBOOST_PP_IF(p(223, s), NDNBOOST_PP_FOR_223, NDNBOOST_PP_TUPLE_EAT_4)(o(223, s), p, o, m)
+# define NDNBOOST_PP_FOR_223_I(s, p, o, m) NDNBOOST_PP_IF(p(224, s), m, NDNBOOST_PP_TUPLE_EAT_2)(224, s) NDNBOOST_PP_IF(p(224, s), NDNBOOST_PP_FOR_224, NDNBOOST_PP_TUPLE_EAT_4)(o(224, s), p, o, m)
+# define NDNBOOST_PP_FOR_224_I(s, p, o, m) NDNBOOST_PP_IF(p(225, s), m, NDNBOOST_PP_TUPLE_EAT_2)(225, s) NDNBOOST_PP_IF(p(225, s), NDNBOOST_PP_FOR_225, NDNBOOST_PP_TUPLE_EAT_4)(o(225, s), p, o, m)
+# define NDNBOOST_PP_FOR_225_I(s, p, o, m) NDNBOOST_PP_IF(p(226, s), m, NDNBOOST_PP_TUPLE_EAT_2)(226, s) NDNBOOST_PP_IF(p(226, s), NDNBOOST_PP_FOR_226, NDNBOOST_PP_TUPLE_EAT_4)(o(226, s), p, o, m)
+# define NDNBOOST_PP_FOR_226_I(s, p, o, m) NDNBOOST_PP_IF(p(227, s), m, NDNBOOST_PP_TUPLE_EAT_2)(227, s) NDNBOOST_PP_IF(p(227, s), NDNBOOST_PP_FOR_227, NDNBOOST_PP_TUPLE_EAT_4)(o(227, s), p, o, m)
+# define NDNBOOST_PP_FOR_227_I(s, p, o, m) NDNBOOST_PP_IF(p(228, s), m, NDNBOOST_PP_TUPLE_EAT_2)(228, s) NDNBOOST_PP_IF(p(228, s), NDNBOOST_PP_FOR_228, NDNBOOST_PP_TUPLE_EAT_4)(o(228, s), p, o, m)
+# define NDNBOOST_PP_FOR_228_I(s, p, o, m) NDNBOOST_PP_IF(p(229, s), m, NDNBOOST_PP_TUPLE_EAT_2)(229, s) NDNBOOST_PP_IF(p(229, s), NDNBOOST_PP_FOR_229, NDNBOOST_PP_TUPLE_EAT_4)(o(229, s), p, o, m)
+# define NDNBOOST_PP_FOR_229_I(s, p, o, m) NDNBOOST_PP_IF(p(230, s), m, NDNBOOST_PP_TUPLE_EAT_2)(230, s) NDNBOOST_PP_IF(p(230, s), NDNBOOST_PP_FOR_230, NDNBOOST_PP_TUPLE_EAT_4)(o(230, s), p, o, m)
+# define NDNBOOST_PP_FOR_230_I(s, p, o, m) NDNBOOST_PP_IF(p(231, s), m, NDNBOOST_PP_TUPLE_EAT_2)(231, s) NDNBOOST_PP_IF(p(231, s), NDNBOOST_PP_FOR_231, NDNBOOST_PP_TUPLE_EAT_4)(o(231, s), p, o, m)
+# define NDNBOOST_PP_FOR_231_I(s, p, o, m) NDNBOOST_PP_IF(p(232, s), m, NDNBOOST_PP_TUPLE_EAT_2)(232, s) NDNBOOST_PP_IF(p(232, s), NDNBOOST_PP_FOR_232, NDNBOOST_PP_TUPLE_EAT_4)(o(232, s), p, o, m)
+# define NDNBOOST_PP_FOR_232_I(s, p, o, m) NDNBOOST_PP_IF(p(233, s), m, NDNBOOST_PP_TUPLE_EAT_2)(233, s) NDNBOOST_PP_IF(p(233, s), NDNBOOST_PP_FOR_233, NDNBOOST_PP_TUPLE_EAT_4)(o(233, s), p, o, m)
+# define NDNBOOST_PP_FOR_233_I(s, p, o, m) NDNBOOST_PP_IF(p(234, s), m, NDNBOOST_PP_TUPLE_EAT_2)(234, s) NDNBOOST_PP_IF(p(234, s), NDNBOOST_PP_FOR_234, NDNBOOST_PP_TUPLE_EAT_4)(o(234, s), p, o, m)
+# define NDNBOOST_PP_FOR_234_I(s, p, o, m) NDNBOOST_PP_IF(p(235, s), m, NDNBOOST_PP_TUPLE_EAT_2)(235, s) NDNBOOST_PP_IF(p(235, s), NDNBOOST_PP_FOR_235, NDNBOOST_PP_TUPLE_EAT_4)(o(235, s), p, o, m)
+# define NDNBOOST_PP_FOR_235_I(s, p, o, m) NDNBOOST_PP_IF(p(236, s), m, NDNBOOST_PP_TUPLE_EAT_2)(236, s) NDNBOOST_PP_IF(p(236, s), NDNBOOST_PP_FOR_236, NDNBOOST_PP_TUPLE_EAT_4)(o(236, s), p, o, m)
+# define NDNBOOST_PP_FOR_236_I(s, p, o, m) NDNBOOST_PP_IF(p(237, s), m, NDNBOOST_PP_TUPLE_EAT_2)(237, s) NDNBOOST_PP_IF(p(237, s), NDNBOOST_PP_FOR_237, NDNBOOST_PP_TUPLE_EAT_4)(o(237, s), p, o, m)
+# define NDNBOOST_PP_FOR_237_I(s, p, o, m) NDNBOOST_PP_IF(p(238, s), m, NDNBOOST_PP_TUPLE_EAT_2)(238, s) NDNBOOST_PP_IF(p(238, s), NDNBOOST_PP_FOR_238, NDNBOOST_PP_TUPLE_EAT_4)(o(238, s), p, o, m)
+# define NDNBOOST_PP_FOR_238_I(s, p, o, m) NDNBOOST_PP_IF(p(239, s), m, NDNBOOST_PP_TUPLE_EAT_2)(239, s) NDNBOOST_PP_IF(p(239, s), NDNBOOST_PP_FOR_239, NDNBOOST_PP_TUPLE_EAT_4)(o(239, s), p, o, m)
+# define NDNBOOST_PP_FOR_239_I(s, p, o, m) NDNBOOST_PP_IF(p(240, s), m, NDNBOOST_PP_TUPLE_EAT_2)(240, s) NDNBOOST_PP_IF(p(240, s), NDNBOOST_PP_FOR_240, NDNBOOST_PP_TUPLE_EAT_4)(o(240, s), p, o, m)
+# define NDNBOOST_PP_FOR_240_I(s, p, o, m) NDNBOOST_PP_IF(p(241, s), m, NDNBOOST_PP_TUPLE_EAT_2)(241, s) NDNBOOST_PP_IF(p(241, s), NDNBOOST_PP_FOR_241, NDNBOOST_PP_TUPLE_EAT_4)(o(241, s), p, o, m)
+# define NDNBOOST_PP_FOR_241_I(s, p, o, m) NDNBOOST_PP_IF(p(242, s), m, NDNBOOST_PP_TUPLE_EAT_2)(242, s) NDNBOOST_PP_IF(p(242, s), NDNBOOST_PP_FOR_242, NDNBOOST_PP_TUPLE_EAT_4)(o(242, s), p, o, m)
+# define NDNBOOST_PP_FOR_242_I(s, p, o, m) NDNBOOST_PP_IF(p(243, s), m, NDNBOOST_PP_TUPLE_EAT_2)(243, s) NDNBOOST_PP_IF(p(243, s), NDNBOOST_PP_FOR_243, NDNBOOST_PP_TUPLE_EAT_4)(o(243, s), p, o, m)
+# define NDNBOOST_PP_FOR_243_I(s, p, o, m) NDNBOOST_PP_IF(p(244, s), m, NDNBOOST_PP_TUPLE_EAT_2)(244, s) NDNBOOST_PP_IF(p(244, s), NDNBOOST_PP_FOR_244, NDNBOOST_PP_TUPLE_EAT_4)(o(244, s), p, o, m)
+# define NDNBOOST_PP_FOR_244_I(s, p, o, m) NDNBOOST_PP_IF(p(245, s), m, NDNBOOST_PP_TUPLE_EAT_2)(245, s) NDNBOOST_PP_IF(p(245, s), NDNBOOST_PP_FOR_245, NDNBOOST_PP_TUPLE_EAT_4)(o(245, s), p, o, m)
+# define NDNBOOST_PP_FOR_245_I(s, p, o, m) NDNBOOST_PP_IF(p(246, s), m, NDNBOOST_PP_TUPLE_EAT_2)(246, s) NDNBOOST_PP_IF(p(246, s), NDNBOOST_PP_FOR_246, NDNBOOST_PP_TUPLE_EAT_4)(o(246, s), p, o, m)
+# define NDNBOOST_PP_FOR_246_I(s, p, o, m) NDNBOOST_PP_IF(p(247, s), m, NDNBOOST_PP_TUPLE_EAT_2)(247, s) NDNBOOST_PP_IF(p(247, s), NDNBOOST_PP_FOR_247, NDNBOOST_PP_TUPLE_EAT_4)(o(247, s), p, o, m)
+# define NDNBOOST_PP_FOR_247_I(s, p, o, m) NDNBOOST_PP_IF(p(248, s), m, NDNBOOST_PP_TUPLE_EAT_2)(248, s) NDNBOOST_PP_IF(p(248, s), NDNBOOST_PP_FOR_248, NDNBOOST_PP_TUPLE_EAT_4)(o(248, s), p, o, m)
+# define NDNBOOST_PP_FOR_248_I(s, p, o, m) NDNBOOST_PP_IF(p(249, s), m, NDNBOOST_PP_TUPLE_EAT_2)(249, s) NDNBOOST_PP_IF(p(249, s), NDNBOOST_PP_FOR_249, NDNBOOST_PP_TUPLE_EAT_4)(o(249, s), p, o, m)
+# define NDNBOOST_PP_FOR_249_I(s, p, o, m) NDNBOOST_PP_IF(p(250, s), m, NDNBOOST_PP_TUPLE_EAT_2)(250, s) NDNBOOST_PP_IF(p(250, s), NDNBOOST_PP_FOR_250, NDNBOOST_PP_TUPLE_EAT_4)(o(250, s), p, o, m)
+# define NDNBOOST_PP_FOR_250_I(s, p, o, m) NDNBOOST_PP_IF(p(251, s), m, NDNBOOST_PP_TUPLE_EAT_2)(251, s) NDNBOOST_PP_IF(p(251, s), NDNBOOST_PP_FOR_251, NDNBOOST_PP_TUPLE_EAT_4)(o(251, s), p, o, m)
+# define NDNBOOST_PP_FOR_251_I(s, p, o, m) NDNBOOST_PP_IF(p(252, s), m, NDNBOOST_PP_TUPLE_EAT_2)(252, s) NDNBOOST_PP_IF(p(252, s), NDNBOOST_PP_FOR_252, NDNBOOST_PP_TUPLE_EAT_4)(o(252, s), p, o, m)
+# define NDNBOOST_PP_FOR_252_I(s, p, o, m) NDNBOOST_PP_IF(p(253, s), m, NDNBOOST_PP_TUPLE_EAT_2)(253, s) NDNBOOST_PP_IF(p(253, s), NDNBOOST_PP_FOR_253, NDNBOOST_PP_TUPLE_EAT_4)(o(253, s), p, o, m)
+# define NDNBOOST_PP_FOR_253_I(s, p, o, m) NDNBOOST_PP_IF(p(254, s), m, NDNBOOST_PP_TUPLE_EAT_2)(254, s) NDNBOOST_PP_IF(p(254, s), NDNBOOST_PP_FOR_254, NDNBOOST_PP_TUPLE_EAT_4)(o(254, s), p, o, m)
+# define NDNBOOST_PP_FOR_254_I(s, p, o, m) NDNBOOST_PP_IF(p(255, s), m, NDNBOOST_PP_TUPLE_EAT_2)(255, s) NDNBOOST_PP_IF(p(255, s), NDNBOOST_PP_FOR_255, NDNBOOST_PP_TUPLE_EAT_4)(o(255, s), p, o, m)
+# define NDNBOOST_PP_FOR_255_I(s, p, o, m) NDNBOOST_PP_IF(p(256, s), m, NDNBOOST_PP_TUPLE_EAT_2)(256, s) NDNBOOST_PP_IF(p(256, s), NDNBOOST_PP_FOR_256, NDNBOOST_PP_TUPLE_EAT_4)(o(256, s), p, o, m)
+# define NDNBOOST_PP_FOR_256_I(s, p, o, m) NDNBOOST_PP_IF(p(257, s), m, NDNBOOST_PP_TUPLE_EAT_2)(257, s) NDNBOOST_PP_IF(p(257, s), NDNBOOST_PP_FOR_257, NDNBOOST_PP_TUPLE_EAT_4)(o(257, s), p, o, m)
 #
 # endif
diff --git a/include/ndnboost/preprocessor/repetition/detail/for.hpp b/include/ndnboost/preprocessor/repetition/detail/for.hpp
index 2f6ed27..5ef3759 100644
--- a/include/ndnboost/preprocessor/repetition/detail/for.hpp
+++ b/include/ndnboost/preprocessor/repetition/detail/for.hpp
@@ -11,526 +11,526 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_REPETITION_DETAIL_FOR_HPP
-# define BOOST_PREPROCESSOR_REPETITION_DETAIL_FOR_HPP
+# ifndef NDNBOOST_PREPROCESSOR_REPETITION_DETAIL_FOR_HPP
+# define NDNBOOST_PREPROCESSOR_REPETITION_DETAIL_FOR_HPP
 #
 # include <ndnboost/preprocessor/control/expr_iif.hpp>
 # include <ndnboost/preprocessor/control/iif.hpp>
 # include <ndnboost/preprocessor/logical/bool.hpp>
 # include <ndnboost/preprocessor/tuple/eat.hpp>
 #
-# define BOOST_PP_FOR_1(s, p, o, m) BOOST_PP_FOR_1_C(BOOST_PP_BOOL(p(2, s)), s, p, o, m)
-# define BOOST_PP_FOR_2(s, p, o, m) BOOST_PP_FOR_2_C(BOOST_PP_BOOL(p(3, s)), s, p, o, m)
-# define BOOST_PP_FOR_3(s, p, o, m) BOOST_PP_FOR_3_C(BOOST_PP_BOOL(p(4, s)), s, p, o, m)
-# define BOOST_PP_FOR_4(s, p, o, m) BOOST_PP_FOR_4_C(BOOST_PP_BOOL(p(5, s)), s, p, o, m)
-# define BOOST_PP_FOR_5(s, p, o, m) BOOST_PP_FOR_5_C(BOOST_PP_BOOL(p(6, s)), s, p, o, m)
-# define BOOST_PP_FOR_6(s, p, o, m) BOOST_PP_FOR_6_C(BOOST_PP_BOOL(p(7, s)), s, p, o, m)
-# define BOOST_PP_FOR_7(s, p, o, m) BOOST_PP_FOR_7_C(BOOST_PP_BOOL(p(8, s)), s, p, o, m)
-# define BOOST_PP_FOR_8(s, p, o, m) BOOST_PP_FOR_8_C(BOOST_PP_BOOL(p(9, s)), s, p, o, m)
-# define BOOST_PP_FOR_9(s, p, o, m) BOOST_PP_FOR_9_C(BOOST_PP_BOOL(p(10, s)), s, p, o, m)
-# define BOOST_PP_FOR_10(s, p, o, m) BOOST_PP_FOR_10_C(BOOST_PP_BOOL(p(11, s)), s, p, o, m)
-# define BOOST_PP_FOR_11(s, p, o, m) BOOST_PP_FOR_11_C(BOOST_PP_BOOL(p(12, s)), s, p, o, m)
-# define BOOST_PP_FOR_12(s, p, o, m) BOOST_PP_FOR_12_C(BOOST_PP_BOOL(p(13, s)), s, p, o, m)
-# define BOOST_PP_FOR_13(s, p, o, m) BOOST_PP_FOR_13_C(BOOST_PP_BOOL(p(14, s)), s, p, o, m)
-# define BOOST_PP_FOR_14(s, p, o, m) BOOST_PP_FOR_14_C(BOOST_PP_BOOL(p(15, s)), s, p, o, m)
-# define BOOST_PP_FOR_15(s, p, o, m) BOOST_PP_FOR_15_C(BOOST_PP_BOOL(p(16, s)), s, p, o, m)
-# define BOOST_PP_FOR_16(s, p, o, m) BOOST_PP_FOR_16_C(BOOST_PP_BOOL(p(17, s)), s, p, o, m)
-# define BOOST_PP_FOR_17(s, p, o, m) BOOST_PP_FOR_17_C(BOOST_PP_BOOL(p(18, s)), s, p, o, m)
-# define BOOST_PP_FOR_18(s, p, o, m) BOOST_PP_FOR_18_C(BOOST_PP_BOOL(p(19, s)), s, p, o, m)
-# define BOOST_PP_FOR_19(s, p, o, m) BOOST_PP_FOR_19_C(BOOST_PP_BOOL(p(20, s)), s, p, o, m)
-# define BOOST_PP_FOR_20(s, p, o, m) BOOST_PP_FOR_20_C(BOOST_PP_BOOL(p(21, s)), s, p, o, m)
-# define BOOST_PP_FOR_21(s, p, o, m) BOOST_PP_FOR_21_C(BOOST_PP_BOOL(p(22, s)), s, p, o, m)
-# define BOOST_PP_FOR_22(s, p, o, m) BOOST_PP_FOR_22_C(BOOST_PP_BOOL(p(23, s)), s, p, o, m)
-# define BOOST_PP_FOR_23(s, p, o, m) BOOST_PP_FOR_23_C(BOOST_PP_BOOL(p(24, s)), s, p, o, m)
-# define BOOST_PP_FOR_24(s, p, o, m) BOOST_PP_FOR_24_C(BOOST_PP_BOOL(p(25, s)), s, p, o, m)
-# define BOOST_PP_FOR_25(s, p, o, m) BOOST_PP_FOR_25_C(BOOST_PP_BOOL(p(26, s)), s, p, o, m)
-# define BOOST_PP_FOR_26(s, p, o, m) BOOST_PP_FOR_26_C(BOOST_PP_BOOL(p(27, s)), s, p, o, m)
-# define BOOST_PP_FOR_27(s, p, o, m) BOOST_PP_FOR_27_C(BOOST_PP_BOOL(p(28, s)), s, p, o, m)
-# define BOOST_PP_FOR_28(s, p, o, m) BOOST_PP_FOR_28_C(BOOST_PP_BOOL(p(29, s)), s, p, o, m)
-# define BOOST_PP_FOR_29(s, p, o, m) BOOST_PP_FOR_29_C(BOOST_PP_BOOL(p(30, s)), s, p, o, m)
-# define BOOST_PP_FOR_30(s, p, o, m) BOOST_PP_FOR_30_C(BOOST_PP_BOOL(p(31, s)), s, p, o, m)
-# define BOOST_PP_FOR_31(s, p, o, m) BOOST_PP_FOR_31_C(BOOST_PP_BOOL(p(32, s)), s, p, o, m)
-# define BOOST_PP_FOR_32(s, p, o, m) BOOST_PP_FOR_32_C(BOOST_PP_BOOL(p(33, s)), s, p, o, m)
-# define BOOST_PP_FOR_33(s, p, o, m) BOOST_PP_FOR_33_C(BOOST_PP_BOOL(p(34, s)), s, p, o, m)
-# define BOOST_PP_FOR_34(s, p, o, m) BOOST_PP_FOR_34_C(BOOST_PP_BOOL(p(35, s)), s, p, o, m)
-# define BOOST_PP_FOR_35(s, p, o, m) BOOST_PP_FOR_35_C(BOOST_PP_BOOL(p(36, s)), s, p, o, m)
-# define BOOST_PP_FOR_36(s, p, o, m) BOOST_PP_FOR_36_C(BOOST_PP_BOOL(p(37, s)), s, p, o, m)
-# define BOOST_PP_FOR_37(s, p, o, m) BOOST_PP_FOR_37_C(BOOST_PP_BOOL(p(38, s)), s, p, o, m)
-# define BOOST_PP_FOR_38(s, p, o, m) BOOST_PP_FOR_38_C(BOOST_PP_BOOL(p(39, s)), s, p, o, m)
-# define BOOST_PP_FOR_39(s, p, o, m) BOOST_PP_FOR_39_C(BOOST_PP_BOOL(p(40, s)), s, p, o, m)
-# define BOOST_PP_FOR_40(s, p, o, m) BOOST_PP_FOR_40_C(BOOST_PP_BOOL(p(41, s)), s, p, o, m)
-# define BOOST_PP_FOR_41(s, p, o, m) BOOST_PP_FOR_41_C(BOOST_PP_BOOL(p(42, s)), s, p, o, m)
-# define BOOST_PP_FOR_42(s, p, o, m) BOOST_PP_FOR_42_C(BOOST_PP_BOOL(p(43, s)), s, p, o, m)
-# define BOOST_PP_FOR_43(s, p, o, m) BOOST_PP_FOR_43_C(BOOST_PP_BOOL(p(44, s)), s, p, o, m)
-# define BOOST_PP_FOR_44(s, p, o, m) BOOST_PP_FOR_44_C(BOOST_PP_BOOL(p(45, s)), s, p, o, m)
-# define BOOST_PP_FOR_45(s, p, o, m) BOOST_PP_FOR_45_C(BOOST_PP_BOOL(p(46, s)), s, p, o, m)
-# define BOOST_PP_FOR_46(s, p, o, m) BOOST_PP_FOR_46_C(BOOST_PP_BOOL(p(47, s)), s, p, o, m)
-# define BOOST_PP_FOR_47(s, p, o, m) BOOST_PP_FOR_47_C(BOOST_PP_BOOL(p(48, s)), s, p, o, m)
-# define BOOST_PP_FOR_48(s, p, o, m) BOOST_PP_FOR_48_C(BOOST_PP_BOOL(p(49, s)), s, p, o, m)
-# define BOOST_PP_FOR_49(s, p, o, m) BOOST_PP_FOR_49_C(BOOST_PP_BOOL(p(50, s)), s, p, o, m)
-# define BOOST_PP_FOR_50(s, p, o, m) BOOST_PP_FOR_50_C(BOOST_PP_BOOL(p(51, s)), s, p, o, m)
-# define BOOST_PP_FOR_51(s, p, o, m) BOOST_PP_FOR_51_C(BOOST_PP_BOOL(p(52, s)), s, p, o, m)
-# define BOOST_PP_FOR_52(s, p, o, m) BOOST_PP_FOR_52_C(BOOST_PP_BOOL(p(53, s)), s, p, o, m)
-# define BOOST_PP_FOR_53(s, p, o, m) BOOST_PP_FOR_53_C(BOOST_PP_BOOL(p(54, s)), s, p, o, m)
-# define BOOST_PP_FOR_54(s, p, o, m) BOOST_PP_FOR_54_C(BOOST_PP_BOOL(p(55, s)), s, p, o, m)
-# define BOOST_PP_FOR_55(s, p, o, m) BOOST_PP_FOR_55_C(BOOST_PP_BOOL(p(56, s)), s, p, o, m)
-# define BOOST_PP_FOR_56(s, p, o, m) BOOST_PP_FOR_56_C(BOOST_PP_BOOL(p(57, s)), s, p, o, m)
-# define BOOST_PP_FOR_57(s, p, o, m) BOOST_PP_FOR_57_C(BOOST_PP_BOOL(p(58, s)), s, p, o, m)
-# define BOOST_PP_FOR_58(s, p, o, m) BOOST_PP_FOR_58_C(BOOST_PP_BOOL(p(59, s)), s, p, o, m)
-# define BOOST_PP_FOR_59(s, p, o, m) BOOST_PP_FOR_59_C(BOOST_PP_BOOL(p(60, s)), s, p, o, m)
-# define BOOST_PP_FOR_60(s, p, o, m) BOOST_PP_FOR_60_C(BOOST_PP_BOOL(p(61, s)), s, p, o, m)
-# define BOOST_PP_FOR_61(s, p, o, m) BOOST_PP_FOR_61_C(BOOST_PP_BOOL(p(62, s)), s, p, o, m)
-# define BOOST_PP_FOR_62(s, p, o, m) BOOST_PP_FOR_62_C(BOOST_PP_BOOL(p(63, s)), s, p, o, m)
-# define BOOST_PP_FOR_63(s, p, o, m) BOOST_PP_FOR_63_C(BOOST_PP_BOOL(p(64, s)), s, p, o, m)
-# define BOOST_PP_FOR_64(s, p, o, m) BOOST_PP_FOR_64_C(BOOST_PP_BOOL(p(65, s)), s, p, o, m)
-# define BOOST_PP_FOR_65(s, p, o, m) BOOST_PP_FOR_65_C(BOOST_PP_BOOL(p(66, s)), s, p, o, m)
-# define BOOST_PP_FOR_66(s, p, o, m) BOOST_PP_FOR_66_C(BOOST_PP_BOOL(p(67, s)), s, p, o, m)
-# define BOOST_PP_FOR_67(s, p, o, m) BOOST_PP_FOR_67_C(BOOST_PP_BOOL(p(68, s)), s, p, o, m)
-# define BOOST_PP_FOR_68(s, p, o, m) BOOST_PP_FOR_68_C(BOOST_PP_BOOL(p(69, s)), s, p, o, m)
-# define BOOST_PP_FOR_69(s, p, o, m) BOOST_PP_FOR_69_C(BOOST_PP_BOOL(p(70, s)), s, p, o, m)
-# define BOOST_PP_FOR_70(s, p, o, m) BOOST_PP_FOR_70_C(BOOST_PP_BOOL(p(71, s)), s, p, o, m)
-# define BOOST_PP_FOR_71(s, p, o, m) BOOST_PP_FOR_71_C(BOOST_PP_BOOL(p(72, s)), s, p, o, m)
-# define BOOST_PP_FOR_72(s, p, o, m) BOOST_PP_FOR_72_C(BOOST_PP_BOOL(p(73, s)), s, p, o, m)
-# define BOOST_PP_FOR_73(s, p, o, m) BOOST_PP_FOR_73_C(BOOST_PP_BOOL(p(74, s)), s, p, o, m)
-# define BOOST_PP_FOR_74(s, p, o, m) BOOST_PP_FOR_74_C(BOOST_PP_BOOL(p(75, s)), s, p, o, m)
-# define BOOST_PP_FOR_75(s, p, o, m) BOOST_PP_FOR_75_C(BOOST_PP_BOOL(p(76, s)), s, p, o, m)
-# define BOOST_PP_FOR_76(s, p, o, m) BOOST_PP_FOR_76_C(BOOST_PP_BOOL(p(77, s)), s, p, o, m)
-# define BOOST_PP_FOR_77(s, p, o, m) BOOST_PP_FOR_77_C(BOOST_PP_BOOL(p(78, s)), s, p, o, m)
-# define BOOST_PP_FOR_78(s, p, o, m) BOOST_PP_FOR_78_C(BOOST_PP_BOOL(p(79, s)), s, p, o, m)
-# define BOOST_PP_FOR_79(s, p, o, m) BOOST_PP_FOR_79_C(BOOST_PP_BOOL(p(80, s)), s, p, o, m)
-# define BOOST_PP_FOR_80(s, p, o, m) BOOST_PP_FOR_80_C(BOOST_PP_BOOL(p(81, s)), s, p, o, m)
-# define BOOST_PP_FOR_81(s, p, o, m) BOOST_PP_FOR_81_C(BOOST_PP_BOOL(p(82, s)), s, p, o, m)
-# define BOOST_PP_FOR_82(s, p, o, m) BOOST_PP_FOR_82_C(BOOST_PP_BOOL(p(83, s)), s, p, o, m)
-# define BOOST_PP_FOR_83(s, p, o, m) BOOST_PP_FOR_83_C(BOOST_PP_BOOL(p(84, s)), s, p, o, m)
-# define BOOST_PP_FOR_84(s, p, o, m) BOOST_PP_FOR_84_C(BOOST_PP_BOOL(p(85, s)), s, p, o, m)
-# define BOOST_PP_FOR_85(s, p, o, m) BOOST_PP_FOR_85_C(BOOST_PP_BOOL(p(86, s)), s, p, o, m)
-# define BOOST_PP_FOR_86(s, p, o, m) BOOST_PP_FOR_86_C(BOOST_PP_BOOL(p(87, s)), s, p, o, m)
-# define BOOST_PP_FOR_87(s, p, o, m) BOOST_PP_FOR_87_C(BOOST_PP_BOOL(p(88, s)), s, p, o, m)
-# define BOOST_PP_FOR_88(s, p, o, m) BOOST_PP_FOR_88_C(BOOST_PP_BOOL(p(89, s)), s, p, o, m)
-# define BOOST_PP_FOR_89(s, p, o, m) BOOST_PP_FOR_89_C(BOOST_PP_BOOL(p(90, s)), s, p, o, m)
-# define BOOST_PP_FOR_90(s, p, o, m) BOOST_PP_FOR_90_C(BOOST_PP_BOOL(p(91, s)), s, p, o, m)
-# define BOOST_PP_FOR_91(s, p, o, m) BOOST_PP_FOR_91_C(BOOST_PP_BOOL(p(92, s)), s, p, o, m)
-# define BOOST_PP_FOR_92(s, p, o, m) BOOST_PP_FOR_92_C(BOOST_PP_BOOL(p(93, s)), s, p, o, m)
-# define BOOST_PP_FOR_93(s, p, o, m) BOOST_PP_FOR_93_C(BOOST_PP_BOOL(p(94, s)), s, p, o, m)
-# define BOOST_PP_FOR_94(s, p, o, m) BOOST_PP_FOR_94_C(BOOST_PP_BOOL(p(95, s)), s, p, o, m)
-# define BOOST_PP_FOR_95(s, p, o, m) BOOST_PP_FOR_95_C(BOOST_PP_BOOL(p(96, s)), s, p, o, m)
-# define BOOST_PP_FOR_96(s, p, o, m) BOOST_PP_FOR_96_C(BOOST_PP_BOOL(p(97, s)), s, p, o, m)
-# define BOOST_PP_FOR_97(s, p, o, m) BOOST_PP_FOR_97_C(BOOST_PP_BOOL(p(98, s)), s, p, o, m)
-# define BOOST_PP_FOR_98(s, p, o, m) BOOST_PP_FOR_98_C(BOOST_PP_BOOL(p(99, s)), s, p, o, m)
-# define BOOST_PP_FOR_99(s, p, o, m) BOOST_PP_FOR_99_C(BOOST_PP_BOOL(p(100, s)), s, p, o, m)
-# define BOOST_PP_FOR_100(s, p, o, m) BOOST_PP_FOR_100_C(BOOST_PP_BOOL(p(101, s)), s, p, o, m)
-# define BOOST_PP_FOR_101(s, p, o, m) BOOST_PP_FOR_101_C(BOOST_PP_BOOL(p(102, s)), s, p, o, m)
-# define BOOST_PP_FOR_102(s, p, o, m) BOOST_PP_FOR_102_C(BOOST_PP_BOOL(p(103, s)), s, p, o, m)
-# define BOOST_PP_FOR_103(s, p, o, m) BOOST_PP_FOR_103_C(BOOST_PP_BOOL(p(104, s)), s, p, o, m)
-# define BOOST_PP_FOR_104(s, p, o, m) BOOST_PP_FOR_104_C(BOOST_PP_BOOL(p(105, s)), s, p, o, m)
-# define BOOST_PP_FOR_105(s, p, o, m) BOOST_PP_FOR_105_C(BOOST_PP_BOOL(p(106, s)), s, p, o, m)
-# define BOOST_PP_FOR_106(s, p, o, m) BOOST_PP_FOR_106_C(BOOST_PP_BOOL(p(107, s)), s, p, o, m)
-# define BOOST_PP_FOR_107(s, p, o, m) BOOST_PP_FOR_107_C(BOOST_PP_BOOL(p(108, s)), s, p, o, m)
-# define BOOST_PP_FOR_108(s, p, o, m) BOOST_PP_FOR_108_C(BOOST_PP_BOOL(p(109, s)), s, p, o, m)
-# define BOOST_PP_FOR_109(s, p, o, m) BOOST_PP_FOR_109_C(BOOST_PP_BOOL(p(110, s)), s, p, o, m)
-# define BOOST_PP_FOR_110(s, p, o, m) BOOST_PP_FOR_110_C(BOOST_PP_BOOL(p(111, s)), s, p, o, m)
-# define BOOST_PP_FOR_111(s, p, o, m) BOOST_PP_FOR_111_C(BOOST_PP_BOOL(p(112, s)), s, p, o, m)
-# define BOOST_PP_FOR_112(s, p, o, m) BOOST_PP_FOR_112_C(BOOST_PP_BOOL(p(113, s)), s, p, o, m)
-# define BOOST_PP_FOR_113(s, p, o, m) BOOST_PP_FOR_113_C(BOOST_PP_BOOL(p(114, s)), s, p, o, m)
-# define BOOST_PP_FOR_114(s, p, o, m) BOOST_PP_FOR_114_C(BOOST_PP_BOOL(p(115, s)), s, p, o, m)
-# define BOOST_PP_FOR_115(s, p, o, m) BOOST_PP_FOR_115_C(BOOST_PP_BOOL(p(116, s)), s, p, o, m)
-# define BOOST_PP_FOR_116(s, p, o, m) BOOST_PP_FOR_116_C(BOOST_PP_BOOL(p(117, s)), s, p, o, m)
-# define BOOST_PP_FOR_117(s, p, o, m) BOOST_PP_FOR_117_C(BOOST_PP_BOOL(p(118, s)), s, p, o, m)
-# define BOOST_PP_FOR_118(s, p, o, m) BOOST_PP_FOR_118_C(BOOST_PP_BOOL(p(119, s)), s, p, o, m)
-# define BOOST_PP_FOR_119(s, p, o, m) BOOST_PP_FOR_119_C(BOOST_PP_BOOL(p(120, s)), s, p, o, m)
-# define BOOST_PP_FOR_120(s, p, o, m) BOOST_PP_FOR_120_C(BOOST_PP_BOOL(p(121, s)), s, p, o, m)
-# define BOOST_PP_FOR_121(s, p, o, m) BOOST_PP_FOR_121_C(BOOST_PP_BOOL(p(122, s)), s, p, o, m)
-# define BOOST_PP_FOR_122(s, p, o, m) BOOST_PP_FOR_122_C(BOOST_PP_BOOL(p(123, s)), s, p, o, m)
-# define BOOST_PP_FOR_123(s, p, o, m) BOOST_PP_FOR_123_C(BOOST_PP_BOOL(p(124, s)), s, p, o, m)
-# define BOOST_PP_FOR_124(s, p, o, m) BOOST_PP_FOR_124_C(BOOST_PP_BOOL(p(125, s)), s, p, o, m)
-# define BOOST_PP_FOR_125(s, p, o, m) BOOST_PP_FOR_125_C(BOOST_PP_BOOL(p(126, s)), s, p, o, m)
-# define BOOST_PP_FOR_126(s, p, o, m) BOOST_PP_FOR_126_C(BOOST_PP_BOOL(p(127, s)), s, p, o, m)
-# define BOOST_PP_FOR_127(s, p, o, m) BOOST_PP_FOR_127_C(BOOST_PP_BOOL(p(128, s)), s, p, o, m)
-# define BOOST_PP_FOR_128(s, p, o, m) BOOST_PP_FOR_128_C(BOOST_PP_BOOL(p(129, s)), s, p, o, m)
-# define BOOST_PP_FOR_129(s, p, o, m) BOOST_PP_FOR_129_C(BOOST_PP_BOOL(p(130, s)), s, p, o, m)
-# define BOOST_PP_FOR_130(s, p, o, m) BOOST_PP_FOR_130_C(BOOST_PP_BOOL(p(131, s)), s, p, o, m)
-# define BOOST_PP_FOR_131(s, p, o, m) BOOST_PP_FOR_131_C(BOOST_PP_BOOL(p(132, s)), s, p, o, m)
-# define BOOST_PP_FOR_132(s, p, o, m) BOOST_PP_FOR_132_C(BOOST_PP_BOOL(p(133, s)), s, p, o, m)
-# define BOOST_PP_FOR_133(s, p, o, m) BOOST_PP_FOR_133_C(BOOST_PP_BOOL(p(134, s)), s, p, o, m)
-# define BOOST_PP_FOR_134(s, p, o, m) BOOST_PP_FOR_134_C(BOOST_PP_BOOL(p(135, s)), s, p, o, m)
-# define BOOST_PP_FOR_135(s, p, o, m) BOOST_PP_FOR_135_C(BOOST_PP_BOOL(p(136, s)), s, p, o, m)
-# define BOOST_PP_FOR_136(s, p, o, m) BOOST_PP_FOR_136_C(BOOST_PP_BOOL(p(137, s)), s, p, o, m)
-# define BOOST_PP_FOR_137(s, p, o, m) BOOST_PP_FOR_137_C(BOOST_PP_BOOL(p(138, s)), s, p, o, m)
-# define BOOST_PP_FOR_138(s, p, o, m) BOOST_PP_FOR_138_C(BOOST_PP_BOOL(p(139, s)), s, p, o, m)
-# define BOOST_PP_FOR_139(s, p, o, m) BOOST_PP_FOR_139_C(BOOST_PP_BOOL(p(140, s)), s, p, o, m)
-# define BOOST_PP_FOR_140(s, p, o, m) BOOST_PP_FOR_140_C(BOOST_PP_BOOL(p(141, s)), s, p, o, m)
-# define BOOST_PP_FOR_141(s, p, o, m) BOOST_PP_FOR_141_C(BOOST_PP_BOOL(p(142, s)), s, p, o, m)
-# define BOOST_PP_FOR_142(s, p, o, m) BOOST_PP_FOR_142_C(BOOST_PP_BOOL(p(143, s)), s, p, o, m)
-# define BOOST_PP_FOR_143(s, p, o, m) BOOST_PP_FOR_143_C(BOOST_PP_BOOL(p(144, s)), s, p, o, m)
-# define BOOST_PP_FOR_144(s, p, o, m) BOOST_PP_FOR_144_C(BOOST_PP_BOOL(p(145, s)), s, p, o, m)
-# define BOOST_PP_FOR_145(s, p, o, m) BOOST_PP_FOR_145_C(BOOST_PP_BOOL(p(146, s)), s, p, o, m)
-# define BOOST_PP_FOR_146(s, p, o, m) BOOST_PP_FOR_146_C(BOOST_PP_BOOL(p(147, s)), s, p, o, m)
-# define BOOST_PP_FOR_147(s, p, o, m) BOOST_PP_FOR_147_C(BOOST_PP_BOOL(p(148, s)), s, p, o, m)
-# define BOOST_PP_FOR_148(s, p, o, m) BOOST_PP_FOR_148_C(BOOST_PP_BOOL(p(149, s)), s, p, o, m)
-# define BOOST_PP_FOR_149(s, p, o, m) BOOST_PP_FOR_149_C(BOOST_PP_BOOL(p(150, s)), s, p, o, m)
-# define BOOST_PP_FOR_150(s, p, o, m) BOOST_PP_FOR_150_C(BOOST_PP_BOOL(p(151, s)), s, p, o, m)
-# define BOOST_PP_FOR_151(s, p, o, m) BOOST_PP_FOR_151_C(BOOST_PP_BOOL(p(152, s)), s, p, o, m)
-# define BOOST_PP_FOR_152(s, p, o, m) BOOST_PP_FOR_152_C(BOOST_PP_BOOL(p(153, s)), s, p, o, m)
-# define BOOST_PP_FOR_153(s, p, o, m) BOOST_PP_FOR_153_C(BOOST_PP_BOOL(p(154, s)), s, p, o, m)
-# define BOOST_PP_FOR_154(s, p, o, m) BOOST_PP_FOR_154_C(BOOST_PP_BOOL(p(155, s)), s, p, o, m)
-# define BOOST_PP_FOR_155(s, p, o, m) BOOST_PP_FOR_155_C(BOOST_PP_BOOL(p(156, s)), s, p, o, m)
-# define BOOST_PP_FOR_156(s, p, o, m) BOOST_PP_FOR_156_C(BOOST_PP_BOOL(p(157, s)), s, p, o, m)
-# define BOOST_PP_FOR_157(s, p, o, m) BOOST_PP_FOR_157_C(BOOST_PP_BOOL(p(158, s)), s, p, o, m)
-# define BOOST_PP_FOR_158(s, p, o, m) BOOST_PP_FOR_158_C(BOOST_PP_BOOL(p(159, s)), s, p, o, m)
-# define BOOST_PP_FOR_159(s, p, o, m) BOOST_PP_FOR_159_C(BOOST_PP_BOOL(p(160, s)), s, p, o, m)
-# define BOOST_PP_FOR_160(s, p, o, m) BOOST_PP_FOR_160_C(BOOST_PP_BOOL(p(161, s)), s, p, o, m)
-# define BOOST_PP_FOR_161(s, p, o, m) BOOST_PP_FOR_161_C(BOOST_PP_BOOL(p(162, s)), s, p, o, m)
-# define BOOST_PP_FOR_162(s, p, o, m) BOOST_PP_FOR_162_C(BOOST_PP_BOOL(p(163, s)), s, p, o, m)
-# define BOOST_PP_FOR_163(s, p, o, m) BOOST_PP_FOR_163_C(BOOST_PP_BOOL(p(164, s)), s, p, o, m)
-# define BOOST_PP_FOR_164(s, p, o, m) BOOST_PP_FOR_164_C(BOOST_PP_BOOL(p(165, s)), s, p, o, m)
-# define BOOST_PP_FOR_165(s, p, o, m) BOOST_PP_FOR_165_C(BOOST_PP_BOOL(p(166, s)), s, p, o, m)
-# define BOOST_PP_FOR_166(s, p, o, m) BOOST_PP_FOR_166_C(BOOST_PP_BOOL(p(167, s)), s, p, o, m)
-# define BOOST_PP_FOR_167(s, p, o, m) BOOST_PP_FOR_167_C(BOOST_PP_BOOL(p(168, s)), s, p, o, m)
-# define BOOST_PP_FOR_168(s, p, o, m) BOOST_PP_FOR_168_C(BOOST_PP_BOOL(p(169, s)), s, p, o, m)
-# define BOOST_PP_FOR_169(s, p, o, m) BOOST_PP_FOR_169_C(BOOST_PP_BOOL(p(170, s)), s, p, o, m)
-# define BOOST_PP_FOR_170(s, p, o, m) BOOST_PP_FOR_170_C(BOOST_PP_BOOL(p(171, s)), s, p, o, m)
-# define BOOST_PP_FOR_171(s, p, o, m) BOOST_PP_FOR_171_C(BOOST_PP_BOOL(p(172, s)), s, p, o, m)
-# define BOOST_PP_FOR_172(s, p, o, m) BOOST_PP_FOR_172_C(BOOST_PP_BOOL(p(173, s)), s, p, o, m)
-# define BOOST_PP_FOR_173(s, p, o, m) BOOST_PP_FOR_173_C(BOOST_PP_BOOL(p(174, s)), s, p, o, m)
-# define BOOST_PP_FOR_174(s, p, o, m) BOOST_PP_FOR_174_C(BOOST_PP_BOOL(p(175, s)), s, p, o, m)
-# define BOOST_PP_FOR_175(s, p, o, m) BOOST_PP_FOR_175_C(BOOST_PP_BOOL(p(176, s)), s, p, o, m)
-# define BOOST_PP_FOR_176(s, p, o, m) BOOST_PP_FOR_176_C(BOOST_PP_BOOL(p(177, s)), s, p, o, m)
-# define BOOST_PP_FOR_177(s, p, o, m) BOOST_PP_FOR_177_C(BOOST_PP_BOOL(p(178, s)), s, p, o, m)
-# define BOOST_PP_FOR_178(s, p, o, m) BOOST_PP_FOR_178_C(BOOST_PP_BOOL(p(179, s)), s, p, o, m)
-# define BOOST_PP_FOR_179(s, p, o, m) BOOST_PP_FOR_179_C(BOOST_PP_BOOL(p(180, s)), s, p, o, m)
-# define BOOST_PP_FOR_180(s, p, o, m) BOOST_PP_FOR_180_C(BOOST_PP_BOOL(p(181, s)), s, p, o, m)
-# define BOOST_PP_FOR_181(s, p, o, m) BOOST_PP_FOR_181_C(BOOST_PP_BOOL(p(182, s)), s, p, o, m)
-# define BOOST_PP_FOR_182(s, p, o, m) BOOST_PP_FOR_182_C(BOOST_PP_BOOL(p(183, s)), s, p, o, m)
-# define BOOST_PP_FOR_183(s, p, o, m) BOOST_PP_FOR_183_C(BOOST_PP_BOOL(p(184, s)), s, p, o, m)
-# define BOOST_PP_FOR_184(s, p, o, m) BOOST_PP_FOR_184_C(BOOST_PP_BOOL(p(185, s)), s, p, o, m)
-# define BOOST_PP_FOR_185(s, p, o, m) BOOST_PP_FOR_185_C(BOOST_PP_BOOL(p(186, s)), s, p, o, m)
-# define BOOST_PP_FOR_186(s, p, o, m) BOOST_PP_FOR_186_C(BOOST_PP_BOOL(p(187, s)), s, p, o, m)
-# define BOOST_PP_FOR_187(s, p, o, m) BOOST_PP_FOR_187_C(BOOST_PP_BOOL(p(188, s)), s, p, o, m)
-# define BOOST_PP_FOR_188(s, p, o, m) BOOST_PP_FOR_188_C(BOOST_PP_BOOL(p(189, s)), s, p, o, m)
-# define BOOST_PP_FOR_189(s, p, o, m) BOOST_PP_FOR_189_C(BOOST_PP_BOOL(p(190, s)), s, p, o, m)
-# define BOOST_PP_FOR_190(s, p, o, m) BOOST_PP_FOR_190_C(BOOST_PP_BOOL(p(191, s)), s, p, o, m)
-# define BOOST_PP_FOR_191(s, p, o, m) BOOST_PP_FOR_191_C(BOOST_PP_BOOL(p(192, s)), s, p, o, m)
-# define BOOST_PP_FOR_192(s, p, o, m) BOOST_PP_FOR_192_C(BOOST_PP_BOOL(p(193, s)), s, p, o, m)
-# define BOOST_PP_FOR_193(s, p, o, m) BOOST_PP_FOR_193_C(BOOST_PP_BOOL(p(194, s)), s, p, o, m)
-# define BOOST_PP_FOR_194(s, p, o, m) BOOST_PP_FOR_194_C(BOOST_PP_BOOL(p(195, s)), s, p, o, m)
-# define BOOST_PP_FOR_195(s, p, o, m) BOOST_PP_FOR_195_C(BOOST_PP_BOOL(p(196, s)), s, p, o, m)
-# define BOOST_PP_FOR_196(s, p, o, m) BOOST_PP_FOR_196_C(BOOST_PP_BOOL(p(197, s)), s, p, o, m)
-# define BOOST_PP_FOR_197(s, p, o, m) BOOST_PP_FOR_197_C(BOOST_PP_BOOL(p(198, s)), s, p, o, m)
-# define BOOST_PP_FOR_198(s, p, o, m) BOOST_PP_FOR_198_C(BOOST_PP_BOOL(p(199, s)), s, p, o, m)
-# define BOOST_PP_FOR_199(s, p, o, m) BOOST_PP_FOR_199_C(BOOST_PP_BOOL(p(200, s)), s, p, o, m)
-# define BOOST_PP_FOR_200(s, p, o, m) BOOST_PP_FOR_200_C(BOOST_PP_BOOL(p(201, s)), s, p, o, m)
-# define BOOST_PP_FOR_201(s, p, o, m) BOOST_PP_FOR_201_C(BOOST_PP_BOOL(p(202, s)), s, p, o, m)
-# define BOOST_PP_FOR_202(s, p, o, m) BOOST_PP_FOR_202_C(BOOST_PP_BOOL(p(203, s)), s, p, o, m)
-# define BOOST_PP_FOR_203(s, p, o, m) BOOST_PP_FOR_203_C(BOOST_PP_BOOL(p(204, s)), s, p, o, m)
-# define BOOST_PP_FOR_204(s, p, o, m) BOOST_PP_FOR_204_C(BOOST_PP_BOOL(p(205, s)), s, p, o, m)
-# define BOOST_PP_FOR_205(s, p, o, m) BOOST_PP_FOR_205_C(BOOST_PP_BOOL(p(206, s)), s, p, o, m)
-# define BOOST_PP_FOR_206(s, p, o, m) BOOST_PP_FOR_206_C(BOOST_PP_BOOL(p(207, s)), s, p, o, m)
-# define BOOST_PP_FOR_207(s, p, o, m) BOOST_PP_FOR_207_C(BOOST_PP_BOOL(p(208, s)), s, p, o, m)
-# define BOOST_PP_FOR_208(s, p, o, m) BOOST_PP_FOR_208_C(BOOST_PP_BOOL(p(209, s)), s, p, o, m)
-# define BOOST_PP_FOR_209(s, p, o, m) BOOST_PP_FOR_209_C(BOOST_PP_BOOL(p(210, s)), s, p, o, m)
-# define BOOST_PP_FOR_210(s, p, o, m) BOOST_PP_FOR_210_C(BOOST_PP_BOOL(p(211, s)), s, p, o, m)
-# define BOOST_PP_FOR_211(s, p, o, m) BOOST_PP_FOR_211_C(BOOST_PP_BOOL(p(212, s)), s, p, o, m)
-# define BOOST_PP_FOR_212(s, p, o, m) BOOST_PP_FOR_212_C(BOOST_PP_BOOL(p(213, s)), s, p, o, m)
-# define BOOST_PP_FOR_213(s, p, o, m) BOOST_PP_FOR_213_C(BOOST_PP_BOOL(p(214, s)), s, p, o, m)
-# define BOOST_PP_FOR_214(s, p, o, m) BOOST_PP_FOR_214_C(BOOST_PP_BOOL(p(215, s)), s, p, o, m)
-# define BOOST_PP_FOR_215(s, p, o, m) BOOST_PP_FOR_215_C(BOOST_PP_BOOL(p(216, s)), s, p, o, m)
-# define BOOST_PP_FOR_216(s, p, o, m) BOOST_PP_FOR_216_C(BOOST_PP_BOOL(p(217, s)), s, p, o, m)
-# define BOOST_PP_FOR_217(s, p, o, m) BOOST_PP_FOR_217_C(BOOST_PP_BOOL(p(218, s)), s, p, o, m)
-# define BOOST_PP_FOR_218(s, p, o, m) BOOST_PP_FOR_218_C(BOOST_PP_BOOL(p(219, s)), s, p, o, m)
-# define BOOST_PP_FOR_219(s, p, o, m) BOOST_PP_FOR_219_C(BOOST_PP_BOOL(p(220, s)), s, p, o, m)
-# define BOOST_PP_FOR_220(s, p, o, m) BOOST_PP_FOR_220_C(BOOST_PP_BOOL(p(221, s)), s, p, o, m)
-# define BOOST_PP_FOR_221(s, p, o, m) BOOST_PP_FOR_221_C(BOOST_PP_BOOL(p(222, s)), s, p, o, m)
-# define BOOST_PP_FOR_222(s, p, o, m) BOOST_PP_FOR_222_C(BOOST_PP_BOOL(p(223, s)), s, p, o, m)
-# define BOOST_PP_FOR_223(s, p, o, m) BOOST_PP_FOR_223_C(BOOST_PP_BOOL(p(224, s)), s, p, o, m)
-# define BOOST_PP_FOR_224(s, p, o, m) BOOST_PP_FOR_224_C(BOOST_PP_BOOL(p(225, s)), s, p, o, m)
-# define BOOST_PP_FOR_225(s, p, o, m) BOOST_PP_FOR_225_C(BOOST_PP_BOOL(p(226, s)), s, p, o, m)
-# define BOOST_PP_FOR_226(s, p, o, m) BOOST_PP_FOR_226_C(BOOST_PP_BOOL(p(227, s)), s, p, o, m)
-# define BOOST_PP_FOR_227(s, p, o, m) BOOST_PP_FOR_227_C(BOOST_PP_BOOL(p(228, s)), s, p, o, m)
-# define BOOST_PP_FOR_228(s, p, o, m) BOOST_PP_FOR_228_C(BOOST_PP_BOOL(p(229, s)), s, p, o, m)
-# define BOOST_PP_FOR_229(s, p, o, m) BOOST_PP_FOR_229_C(BOOST_PP_BOOL(p(230, s)), s, p, o, m)
-# define BOOST_PP_FOR_230(s, p, o, m) BOOST_PP_FOR_230_C(BOOST_PP_BOOL(p(231, s)), s, p, o, m)
-# define BOOST_PP_FOR_231(s, p, o, m) BOOST_PP_FOR_231_C(BOOST_PP_BOOL(p(232, s)), s, p, o, m)
-# define BOOST_PP_FOR_232(s, p, o, m) BOOST_PP_FOR_232_C(BOOST_PP_BOOL(p(233, s)), s, p, o, m)
-# define BOOST_PP_FOR_233(s, p, o, m) BOOST_PP_FOR_233_C(BOOST_PP_BOOL(p(234, s)), s, p, o, m)
-# define BOOST_PP_FOR_234(s, p, o, m) BOOST_PP_FOR_234_C(BOOST_PP_BOOL(p(235, s)), s, p, o, m)
-# define BOOST_PP_FOR_235(s, p, o, m) BOOST_PP_FOR_235_C(BOOST_PP_BOOL(p(236, s)), s, p, o, m)
-# define BOOST_PP_FOR_236(s, p, o, m) BOOST_PP_FOR_236_C(BOOST_PP_BOOL(p(237, s)), s, p, o, m)
-# define BOOST_PP_FOR_237(s, p, o, m) BOOST_PP_FOR_237_C(BOOST_PP_BOOL(p(238, s)), s, p, o, m)
-# define BOOST_PP_FOR_238(s, p, o, m) BOOST_PP_FOR_238_C(BOOST_PP_BOOL(p(239, s)), s, p, o, m)
-# define BOOST_PP_FOR_239(s, p, o, m) BOOST_PP_FOR_239_C(BOOST_PP_BOOL(p(240, s)), s, p, o, m)
-# define BOOST_PP_FOR_240(s, p, o, m) BOOST_PP_FOR_240_C(BOOST_PP_BOOL(p(241, s)), s, p, o, m)
-# define BOOST_PP_FOR_241(s, p, o, m) BOOST_PP_FOR_241_C(BOOST_PP_BOOL(p(242, s)), s, p, o, m)
-# define BOOST_PP_FOR_242(s, p, o, m) BOOST_PP_FOR_242_C(BOOST_PP_BOOL(p(243, s)), s, p, o, m)
-# define BOOST_PP_FOR_243(s, p, o, m) BOOST_PP_FOR_243_C(BOOST_PP_BOOL(p(244, s)), s, p, o, m)
-# define BOOST_PP_FOR_244(s, p, o, m) BOOST_PP_FOR_244_C(BOOST_PP_BOOL(p(245, s)), s, p, o, m)
-# define BOOST_PP_FOR_245(s, p, o, m) BOOST_PP_FOR_245_C(BOOST_PP_BOOL(p(246, s)), s, p, o, m)
-# define BOOST_PP_FOR_246(s, p, o, m) BOOST_PP_FOR_246_C(BOOST_PP_BOOL(p(247, s)), s, p, o, m)
-# define BOOST_PP_FOR_247(s, p, o, m) BOOST_PP_FOR_247_C(BOOST_PP_BOOL(p(248, s)), s, p, o, m)
-# define BOOST_PP_FOR_248(s, p, o, m) BOOST_PP_FOR_248_C(BOOST_PP_BOOL(p(249, s)), s, p, o, m)
-# define BOOST_PP_FOR_249(s, p, o, m) BOOST_PP_FOR_249_C(BOOST_PP_BOOL(p(250, s)), s, p, o, m)
-# define BOOST_PP_FOR_250(s, p, o, m) BOOST_PP_FOR_250_C(BOOST_PP_BOOL(p(251, s)), s, p, o, m)
-# define BOOST_PP_FOR_251(s, p, o, m) BOOST_PP_FOR_251_C(BOOST_PP_BOOL(p(252, s)), s, p, o, m)
-# define BOOST_PP_FOR_252(s, p, o, m) BOOST_PP_FOR_252_C(BOOST_PP_BOOL(p(253, s)), s, p, o, m)
-# define BOOST_PP_FOR_253(s, p, o, m) BOOST_PP_FOR_253_C(BOOST_PP_BOOL(p(254, s)), s, p, o, m)
-# define BOOST_PP_FOR_254(s, p, o, m) BOOST_PP_FOR_254_C(BOOST_PP_BOOL(p(255, s)), s, p, o, m)
-# define BOOST_PP_FOR_255(s, p, o, m) BOOST_PP_FOR_255_C(BOOST_PP_BOOL(p(256, s)), s, p, o, m)
-# define BOOST_PP_FOR_256(s, p, o, m) BOOST_PP_FOR_256_C(BOOST_PP_BOOL(p(257, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_1(s, p, o, m) NDNBOOST_PP_FOR_1_C(NDNBOOST_PP_BOOL(p(2, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_2(s, p, o, m) NDNBOOST_PP_FOR_2_C(NDNBOOST_PP_BOOL(p(3, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_3(s, p, o, m) NDNBOOST_PP_FOR_3_C(NDNBOOST_PP_BOOL(p(4, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_4(s, p, o, m) NDNBOOST_PP_FOR_4_C(NDNBOOST_PP_BOOL(p(5, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_5(s, p, o, m) NDNBOOST_PP_FOR_5_C(NDNBOOST_PP_BOOL(p(6, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_6(s, p, o, m) NDNBOOST_PP_FOR_6_C(NDNBOOST_PP_BOOL(p(7, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_7(s, p, o, m) NDNBOOST_PP_FOR_7_C(NDNBOOST_PP_BOOL(p(8, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_8(s, p, o, m) NDNBOOST_PP_FOR_8_C(NDNBOOST_PP_BOOL(p(9, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_9(s, p, o, m) NDNBOOST_PP_FOR_9_C(NDNBOOST_PP_BOOL(p(10, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_10(s, p, o, m) NDNBOOST_PP_FOR_10_C(NDNBOOST_PP_BOOL(p(11, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_11(s, p, o, m) NDNBOOST_PP_FOR_11_C(NDNBOOST_PP_BOOL(p(12, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_12(s, p, o, m) NDNBOOST_PP_FOR_12_C(NDNBOOST_PP_BOOL(p(13, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_13(s, p, o, m) NDNBOOST_PP_FOR_13_C(NDNBOOST_PP_BOOL(p(14, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_14(s, p, o, m) NDNBOOST_PP_FOR_14_C(NDNBOOST_PP_BOOL(p(15, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_15(s, p, o, m) NDNBOOST_PP_FOR_15_C(NDNBOOST_PP_BOOL(p(16, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_16(s, p, o, m) NDNBOOST_PP_FOR_16_C(NDNBOOST_PP_BOOL(p(17, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_17(s, p, o, m) NDNBOOST_PP_FOR_17_C(NDNBOOST_PP_BOOL(p(18, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_18(s, p, o, m) NDNBOOST_PP_FOR_18_C(NDNBOOST_PP_BOOL(p(19, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_19(s, p, o, m) NDNBOOST_PP_FOR_19_C(NDNBOOST_PP_BOOL(p(20, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_20(s, p, o, m) NDNBOOST_PP_FOR_20_C(NDNBOOST_PP_BOOL(p(21, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_21(s, p, o, m) NDNBOOST_PP_FOR_21_C(NDNBOOST_PP_BOOL(p(22, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_22(s, p, o, m) NDNBOOST_PP_FOR_22_C(NDNBOOST_PP_BOOL(p(23, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_23(s, p, o, m) NDNBOOST_PP_FOR_23_C(NDNBOOST_PP_BOOL(p(24, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_24(s, p, o, m) NDNBOOST_PP_FOR_24_C(NDNBOOST_PP_BOOL(p(25, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_25(s, p, o, m) NDNBOOST_PP_FOR_25_C(NDNBOOST_PP_BOOL(p(26, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_26(s, p, o, m) NDNBOOST_PP_FOR_26_C(NDNBOOST_PP_BOOL(p(27, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_27(s, p, o, m) NDNBOOST_PP_FOR_27_C(NDNBOOST_PP_BOOL(p(28, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_28(s, p, o, m) NDNBOOST_PP_FOR_28_C(NDNBOOST_PP_BOOL(p(29, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_29(s, p, o, m) NDNBOOST_PP_FOR_29_C(NDNBOOST_PP_BOOL(p(30, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_30(s, p, o, m) NDNBOOST_PP_FOR_30_C(NDNBOOST_PP_BOOL(p(31, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_31(s, p, o, m) NDNBOOST_PP_FOR_31_C(NDNBOOST_PP_BOOL(p(32, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_32(s, p, o, m) NDNBOOST_PP_FOR_32_C(NDNBOOST_PP_BOOL(p(33, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_33(s, p, o, m) NDNBOOST_PP_FOR_33_C(NDNBOOST_PP_BOOL(p(34, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_34(s, p, o, m) NDNBOOST_PP_FOR_34_C(NDNBOOST_PP_BOOL(p(35, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_35(s, p, o, m) NDNBOOST_PP_FOR_35_C(NDNBOOST_PP_BOOL(p(36, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_36(s, p, o, m) NDNBOOST_PP_FOR_36_C(NDNBOOST_PP_BOOL(p(37, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_37(s, p, o, m) NDNBOOST_PP_FOR_37_C(NDNBOOST_PP_BOOL(p(38, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_38(s, p, o, m) NDNBOOST_PP_FOR_38_C(NDNBOOST_PP_BOOL(p(39, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_39(s, p, o, m) NDNBOOST_PP_FOR_39_C(NDNBOOST_PP_BOOL(p(40, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_40(s, p, o, m) NDNBOOST_PP_FOR_40_C(NDNBOOST_PP_BOOL(p(41, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_41(s, p, o, m) NDNBOOST_PP_FOR_41_C(NDNBOOST_PP_BOOL(p(42, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_42(s, p, o, m) NDNBOOST_PP_FOR_42_C(NDNBOOST_PP_BOOL(p(43, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_43(s, p, o, m) NDNBOOST_PP_FOR_43_C(NDNBOOST_PP_BOOL(p(44, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_44(s, p, o, m) NDNBOOST_PP_FOR_44_C(NDNBOOST_PP_BOOL(p(45, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_45(s, p, o, m) NDNBOOST_PP_FOR_45_C(NDNBOOST_PP_BOOL(p(46, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_46(s, p, o, m) NDNBOOST_PP_FOR_46_C(NDNBOOST_PP_BOOL(p(47, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_47(s, p, o, m) NDNBOOST_PP_FOR_47_C(NDNBOOST_PP_BOOL(p(48, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_48(s, p, o, m) NDNBOOST_PP_FOR_48_C(NDNBOOST_PP_BOOL(p(49, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_49(s, p, o, m) NDNBOOST_PP_FOR_49_C(NDNBOOST_PP_BOOL(p(50, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_50(s, p, o, m) NDNBOOST_PP_FOR_50_C(NDNBOOST_PP_BOOL(p(51, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_51(s, p, o, m) NDNBOOST_PP_FOR_51_C(NDNBOOST_PP_BOOL(p(52, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_52(s, p, o, m) NDNBOOST_PP_FOR_52_C(NDNBOOST_PP_BOOL(p(53, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_53(s, p, o, m) NDNBOOST_PP_FOR_53_C(NDNBOOST_PP_BOOL(p(54, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_54(s, p, o, m) NDNBOOST_PP_FOR_54_C(NDNBOOST_PP_BOOL(p(55, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_55(s, p, o, m) NDNBOOST_PP_FOR_55_C(NDNBOOST_PP_BOOL(p(56, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_56(s, p, o, m) NDNBOOST_PP_FOR_56_C(NDNBOOST_PP_BOOL(p(57, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_57(s, p, o, m) NDNBOOST_PP_FOR_57_C(NDNBOOST_PP_BOOL(p(58, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_58(s, p, o, m) NDNBOOST_PP_FOR_58_C(NDNBOOST_PP_BOOL(p(59, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_59(s, p, o, m) NDNBOOST_PP_FOR_59_C(NDNBOOST_PP_BOOL(p(60, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_60(s, p, o, m) NDNBOOST_PP_FOR_60_C(NDNBOOST_PP_BOOL(p(61, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_61(s, p, o, m) NDNBOOST_PP_FOR_61_C(NDNBOOST_PP_BOOL(p(62, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_62(s, p, o, m) NDNBOOST_PP_FOR_62_C(NDNBOOST_PP_BOOL(p(63, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_63(s, p, o, m) NDNBOOST_PP_FOR_63_C(NDNBOOST_PP_BOOL(p(64, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_64(s, p, o, m) NDNBOOST_PP_FOR_64_C(NDNBOOST_PP_BOOL(p(65, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_65(s, p, o, m) NDNBOOST_PP_FOR_65_C(NDNBOOST_PP_BOOL(p(66, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_66(s, p, o, m) NDNBOOST_PP_FOR_66_C(NDNBOOST_PP_BOOL(p(67, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_67(s, p, o, m) NDNBOOST_PP_FOR_67_C(NDNBOOST_PP_BOOL(p(68, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_68(s, p, o, m) NDNBOOST_PP_FOR_68_C(NDNBOOST_PP_BOOL(p(69, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_69(s, p, o, m) NDNBOOST_PP_FOR_69_C(NDNBOOST_PP_BOOL(p(70, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_70(s, p, o, m) NDNBOOST_PP_FOR_70_C(NDNBOOST_PP_BOOL(p(71, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_71(s, p, o, m) NDNBOOST_PP_FOR_71_C(NDNBOOST_PP_BOOL(p(72, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_72(s, p, o, m) NDNBOOST_PP_FOR_72_C(NDNBOOST_PP_BOOL(p(73, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_73(s, p, o, m) NDNBOOST_PP_FOR_73_C(NDNBOOST_PP_BOOL(p(74, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_74(s, p, o, m) NDNBOOST_PP_FOR_74_C(NDNBOOST_PP_BOOL(p(75, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_75(s, p, o, m) NDNBOOST_PP_FOR_75_C(NDNBOOST_PP_BOOL(p(76, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_76(s, p, o, m) NDNBOOST_PP_FOR_76_C(NDNBOOST_PP_BOOL(p(77, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_77(s, p, o, m) NDNBOOST_PP_FOR_77_C(NDNBOOST_PP_BOOL(p(78, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_78(s, p, o, m) NDNBOOST_PP_FOR_78_C(NDNBOOST_PP_BOOL(p(79, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_79(s, p, o, m) NDNBOOST_PP_FOR_79_C(NDNBOOST_PP_BOOL(p(80, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_80(s, p, o, m) NDNBOOST_PP_FOR_80_C(NDNBOOST_PP_BOOL(p(81, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_81(s, p, o, m) NDNBOOST_PP_FOR_81_C(NDNBOOST_PP_BOOL(p(82, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_82(s, p, o, m) NDNBOOST_PP_FOR_82_C(NDNBOOST_PP_BOOL(p(83, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_83(s, p, o, m) NDNBOOST_PP_FOR_83_C(NDNBOOST_PP_BOOL(p(84, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_84(s, p, o, m) NDNBOOST_PP_FOR_84_C(NDNBOOST_PP_BOOL(p(85, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_85(s, p, o, m) NDNBOOST_PP_FOR_85_C(NDNBOOST_PP_BOOL(p(86, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_86(s, p, o, m) NDNBOOST_PP_FOR_86_C(NDNBOOST_PP_BOOL(p(87, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_87(s, p, o, m) NDNBOOST_PP_FOR_87_C(NDNBOOST_PP_BOOL(p(88, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_88(s, p, o, m) NDNBOOST_PP_FOR_88_C(NDNBOOST_PP_BOOL(p(89, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_89(s, p, o, m) NDNBOOST_PP_FOR_89_C(NDNBOOST_PP_BOOL(p(90, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_90(s, p, o, m) NDNBOOST_PP_FOR_90_C(NDNBOOST_PP_BOOL(p(91, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_91(s, p, o, m) NDNBOOST_PP_FOR_91_C(NDNBOOST_PP_BOOL(p(92, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_92(s, p, o, m) NDNBOOST_PP_FOR_92_C(NDNBOOST_PP_BOOL(p(93, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_93(s, p, o, m) NDNBOOST_PP_FOR_93_C(NDNBOOST_PP_BOOL(p(94, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_94(s, p, o, m) NDNBOOST_PP_FOR_94_C(NDNBOOST_PP_BOOL(p(95, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_95(s, p, o, m) NDNBOOST_PP_FOR_95_C(NDNBOOST_PP_BOOL(p(96, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_96(s, p, o, m) NDNBOOST_PP_FOR_96_C(NDNBOOST_PP_BOOL(p(97, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_97(s, p, o, m) NDNBOOST_PP_FOR_97_C(NDNBOOST_PP_BOOL(p(98, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_98(s, p, o, m) NDNBOOST_PP_FOR_98_C(NDNBOOST_PP_BOOL(p(99, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_99(s, p, o, m) NDNBOOST_PP_FOR_99_C(NDNBOOST_PP_BOOL(p(100, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_100(s, p, o, m) NDNBOOST_PP_FOR_100_C(NDNBOOST_PP_BOOL(p(101, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_101(s, p, o, m) NDNBOOST_PP_FOR_101_C(NDNBOOST_PP_BOOL(p(102, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_102(s, p, o, m) NDNBOOST_PP_FOR_102_C(NDNBOOST_PP_BOOL(p(103, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_103(s, p, o, m) NDNBOOST_PP_FOR_103_C(NDNBOOST_PP_BOOL(p(104, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_104(s, p, o, m) NDNBOOST_PP_FOR_104_C(NDNBOOST_PP_BOOL(p(105, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_105(s, p, o, m) NDNBOOST_PP_FOR_105_C(NDNBOOST_PP_BOOL(p(106, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_106(s, p, o, m) NDNBOOST_PP_FOR_106_C(NDNBOOST_PP_BOOL(p(107, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_107(s, p, o, m) NDNBOOST_PP_FOR_107_C(NDNBOOST_PP_BOOL(p(108, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_108(s, p, o, m) NDNBOOST_PP_FOR_108_C(NDNBOOST_PP_BOOL(p(109, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_109(s, p, o, m) NDNBOOST_PP_FOR_109_C(NDNBOOST_PP_BOOL(p(110, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_110(s, p, o, m) NDNBOOST_PP_FOR_110_C(NDNBOOST_PP_BOOL(p(111, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_111(s, p, o, m) NDNBOOST_PP_FOR_111_C(NDNBOOST_PP_BOOL(p(112, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_112(s, p, o, m) NDNBOOST_PP_FOR_112_C(NDNBOOST_PP_BOOL(p(113, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_113(s, p, o, m) NDNBOOST_PP_FOR_113_C(NDNBOOST_PP_BOOL(p(114, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_114(s, p, o, m) NDNBOOST_PP_FOR_114_C(NDNBOOST_PP_BOOL(p(115, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_115(s, p, o, m) NDNBOOST_PP_FOR_115_C(NDNBOOST_PP_BOOL(p(116, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_116(s, p, o, m) NDNBOOST_PP_FOR_116_C(NDNBOOST_PP_BOOL(p(117, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_117(s, p, o, m) NDNBOOST_PP_FOR_117_C(NDNBOOST_PP_BOOL(p(118, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_118(s, p, o, m) NDNBOOST_PP_FOR_118_C(NDNBOOST_PP_BOOL(p(119, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_119(s, p, o, m) NDNBOOST_PP_FOR_119_C(NDNBOOST_PP_BOOL(p(120, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_120(s, p, o, m) NDNBOOST_PP_FOR_120_C(NDNBOOST_PP_BOOL(p(121, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_121(s, p, o, m) NDNBOOST_PP_FOR_121_C(NDNBOOST_PP_BOOL(p(122, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_122(s, p, o, m) NDNBOOST_PP_FOR_122_C(NDNBOOST_PP_BOOL(p(123, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_123(s, p, o, m) NDNBOOST_PP_FOR_123_C(NDNBOOST_PP_BOOL(p(124, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_124(s, p, o, m) NDNBOOST_PP_FOR_124_C(NDNBOOST_PP_BOOL(p(125, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_125(s, p, o, m) NDNBOOST_PP_FOR_125_C(NDNBOOST_PP_BOOL(p(126, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_126(s, p, o, m) NDNBOOST_PP_FOR_126_C(NDNBOOST_PP_BOOL(p(127, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_127(s, p, o, m) NDNBOOST_PP_FOR_127_C(NDNBOOST_PP_BOOL(p(128, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_128(s, p, o, m) NDNBOOST_PP_FOR_128_C(NDNBOOST_PP_BOOL(p(129, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_129(s, p, o, m) NDNBOOST_PP_FOR_129_C(NDNBOOST_PP_BOOL(p(130, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_130(s, p, o, m) NDNBOOST_PP_FOR_130_C(NDNBOOST_PP_BOOL(p(131, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_131(s, p, o, m) NDNBOOST_PP_FOR_131_C(NDNBOOST_PP_BOOL(p(132, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_132(s, p, o, m) NDNBOOST_PP_FOR_132_C(NDNBOOST_PP_BOOL(p(133, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_133(s, p, o, m) NDNBOOST_PP_FOR_133_C(NDNBOOST_PP_BOOL(p(134, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_134(s, p, o, m) NDNBOOST_PP_FOR_134_C(NDNBOOST_PP_BOOL(p(135, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_135(s, p, o, m) NDNBOOST_PP_FOR_135_C(NDNBOOST_PP_BOOL(p(136, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_136(s, p, o, m) NDNBOOST_PP_FOR_136_C(NDNBOOST_PP_BOOL(p(137, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_137(s, p, o, m) NDNBOOST_PP_FOR_137_C(NDNBOOST_PP_BOOL(p(138, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_138(s, p, o, m) NDNBOOST_PP_FOR_138_C(NDNBOOST_PP_BOOL(p(139, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_139(s, p, o, m) NDNBOOST_PP_FOR_139_C(NDNBOOST_PP_BOOL(p(140, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_140(s, p, o, m) NDNBOOST_PP_FOR_140_C(NDNBOOST_PP_BOOL(p(141, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_141(s, p, o, m) NDNBOOST_PP_FOR_141_C(NDNBOOST_PP_BOOL(p(142, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_142(s, p, o, m) NDNBOOST_PP_FOR_142_C(NDNBOOST_PP_BOOL(p(143, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_143(s, p, o, m) NDNBOOST_PP_FOR_143_C(NDNBOOST_PP_BOOL(p(144, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_144(s, p, o, m) NDNBOOST_PP_FOR_144_C(NDNBOOST_PP_BOOL(p(145, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_145(s, p, o, m) NDNBOOST_PP_FOR_145_C(NDNBOOST_PP_BOOL(p(146, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_146(s, p, o, m) NDNBOOST_PP_FOR_146_C(NDNBOOST_PP_BOOL(p(147, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_147(s, p, o, m) NDNBOOST_PP_FOR_147_C(NDNBOOST_PP_BOOL(p(148, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_148(s, p, o, m) NDNBOOST_PP_FOR_148_C(NDNBOOST_PP_BOOL(p(149, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_149(s, p, o, m) NDNBOOST_PP_FOR_149_C(NDNBOOST_PP_BOOL(p(150, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_150(s, p, o, m) NDNBOOST_PP_FOR_150_C(NDNBOOST_PP_BOOL(p(151, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_151(s, p, o, m) NDNBOOST_PP_FOR_151_C(NDNBOOST_PP_BOOL(p(152, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_152(s, p, o, m) NDNBOOST_PP_FOR_152_C(NDNBOOST_PP_BOOL(p(153, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_153(s, p, o, m) NDNBOOST_PP_FOR_153_C(NDNBOOST_PP_BOOL(p(154, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_154(s, p, o, m) NDNBOOST_PP_FOR_154_C(NDNBOOST_PP_BOOL(p(155, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_155(s, p, o, m) NDNBOOST_PP_FOR_155_C(NDNBOOST_PP_BOOL(p(156, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_156(s, p, o, m) NDNBOOST_PP_FOR_156_C(NDNBOOST_PP_BOOL(p(157, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_157(s, p, o, m) NDNBOOST_PP_FOR_157_C(NDNBOOST_PP_BOOL(p(158, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_158(s, p, o, m) NDNBOOST_PP_FOR_158_C(NDNBOOST_PP_BOOL(p(159, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_159(s, p, o, m) NDNBOOST_PP_FOR_159_C(NDNBOOST_PP_BOOL(p(160, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_160(s, p, o, m) NDNBOOST_PP_FOR_160_C(NDNBOOST_PP_BOOL(p(161, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_161(s, p, o, m) NDNBOOST_PP_FOR_161_C(NDNBOOST_PP_BOOL(p(162, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_162(s, p, o, m) NDNBOOST_PP_FOR_162_C(NDNBOOST_PP_BOOL(p(163, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_163(s, p, o, m) NDNBOOST_PP_FOR_163_C(NDNBOOST_PP_BOOL(p(164, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_164(s, p, o, m) NDNBOOST_PP_FOR_164_C(NDNBOOST_PP_BOOL(p(165, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_165(s, p, o, m) NDNBOOST_PP_FOR_165_C(NDNBOOST_PP_BOOL(p(166, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_166(s, p, o, m) NDNBOOST_PP_FOR_166_C(NDNBOOST_PP_BOOL(p(167, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_167(s, p, o, m) NDNBOOST_PP_FOR_167_C(NDNBOOST_PP_BOOL(p(168, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_168(s, p, o, m) NDNBOOST_PP_FOR_168_C(NDNBOOST_PP_BOOL(p(169, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_169(s, p, o, m) NDNBOOST_PP_FOR_169_C(NDNBOOST_PP_BOOL(p(170, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_170(s, p, o, m) NDNBOOST_PP_FOR_170_C(NDNBOOST_PP_BOOL(p(171, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_171(s, p, o, m) NDNBOOST_PP_FOR_171_C(NDNBOOST_PP_BOOL(p(172, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_172(s, p, o, m) NDNBOOST_PP_FOR_172_C(NDNBOOST_PP_BOOL(p(173, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_173(s, p, o, m) NDNBOOST_PP_FOR_173_C(NDNBOOST_PP_BOOL(p(174, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_174(s, p, o, m) NDNBOOST_PP_FOR_174_C(NDNBOOST_PP_BOOL(p(175, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_175(s, p, o, m) NDNBOOST_PP_FOR_175_C(NDNBOOST_PP_BOOL(p(176, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_176(s, p, o, m) NDNBOOST_PP_FOR_176_C(NDNBOOST_PP_BOOL(p(177, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_177(s, p, o, m) NDNBOOST_PP_FOR_177_C(NDNBOOST_PP_BOOL(p(178, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_178(s, p, o, m) NDNBOOST_PP_FOR_178_C(NDNBOOST_PP_BOOL(p(179, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_179(s, p, o, m) NDNBOOST_PP_FOR_179_C(NDNBOOST_PP_BOOL(p(180, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_180(s, p, o, m) NDNBOOST_PP_FOR_180_C(NDNBOOST_PP_BOOL(p(181, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_181(s, p, o, m) NDNBOOST_PP_FOR_181_C(NDNBOOST_PP_BOOL(p(182, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_182(s, p, o, m) NDNBOOST_PP_FOR_182_C(NDNBOOST_PP_BOOL(p(183, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_183(s, p, o, m) NDNBOOST_PP_FOR_183_C(NDNBOOST_PP_BOOL(p(184, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_184(s, p, o, m) NDNBOOST_PP_FOR_184_C(NDNBOOST_PP_BOOL(p(185, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_185(s, p, o, m) NDNBOOST_PP_FOR_185_C(NDNBOOST_PP_BOOL(p(186, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_186(s, p, o, m) NDNBOOST_PP_FOR_186_C(NDNBOOST_PP_BOOL(p(187, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_187(s, p, o, m) NDNBOOST_PP_FOR_187_C(NDNBOOST_PP_BOOL(p(188, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_188(s, p, o, m) NDNBOOST_PP_FOR_188_C(NDNBOOST_PP_BOOL(p(189, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_189(s, p, o, m) NDNBOOST_PP_FOR_189_C(NDNBOOST_PP_BOOL(p(190, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_190(s, p, o, m) NDNBOOST_PP_FOR_190_C(NDNBOOST_PP_BOOL(p(191, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_191(s, p, o, m) NDNBOOST_PP_FOR_191_C(NDNBOOST_PP_BOOL(p(192, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_192(s, p, o, m) NDNBOOST_PP_FOR_192_C(NDNBOOST_PP_BOOL(p(193, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_193(s, p, o, m) NDNBOOST_PP_FOR_193_C(NDNBOOST_PP_BOOL(p(194, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_194(s, p, o, m) NDNBOOST_PP_FOR_194_C(NDNBOOST_PP_BOOL(p(195, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_195(s, p, o, m) NDNBOOST_PP_FOR_195_C(NDNBOOST_PP_BOOL(p(196, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_196(s, p, o, m) NDNBOOST_PP_FOR_196_C(NDNBOOST_PP_BOOL(p(197, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_197(s, p, o, m) NDNBOOST_PP_FOR_197_C(NDNBOOST_PP_BOOL(p(198, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_198(s, p, o, m) NDNBOOST_PP_FOR_198_C(NDNBOOST_PP_BOOL(p(199, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_199(s, p, o, m) NDNBOOST_PP_FOR_199_C(NDNBOOST_PP_BOOL(p(200, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_200(s, p, o, m) NDNBOOST_PP_FOR_200_C(NDNBOOST_PP_BOOL(p(201, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_201(s, p, o, m) NDNBOOST_PP_FOR_201_C(NDNBOOST_PP_BOOL(p(202, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_202(s, p, o, m) NDNBOOST_PP_FOR_202_C(NDNBOOST_PP_BOOL(p(203, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_203(s, p, o, m) NDNBOOST_PP_FOR_203_C(NDNBOOST_PP_BOOL(p(204, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_204(s, p, o, m) NDNBOOST_PP_FOR_204_C(NDNBOOST_PP_BOOL(p(205, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_205(s, p, o, m) NDNBOOST_PP_FOR_205_C(NDNBOOST_PP_BOOL(p(206, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_206(s, p, o, m) NDNBOOST_PP_FOR_206_C(NDNBOOST_PP_BOOL(p(207, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_207(s, p, o, m) NDNBOOST_PP_FOR_207_C(NDNBOOST_PP_BOOL(p(208, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_208(s, p, o, m) NDNBOOST_PP_FOR_208_C(NDNBOOST_PP_BOOL(p(209, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_209(s, p, o, m) NDNBOOST_PP_FOR_209_C(NDNBOOST_PP_BOOL(p(210, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_210(s, p, o, m) NDNBOOST_PP_FOR_210_C(NDNBOOST_PP_BOOL(p(211, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_211(s, p, o, m) NDNBOOST_PP_FOR_211_C(NDNBOOST_PP_BOOL(p(212, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_212(s, p, o, m) NDNBOOST_PP_FOR_212_C(NDNBOOST_PP_BOOL(p(213, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_213(s, p, o, m) NDNBOOST_PP_FOR_213_C(NDNBOOST_PP_BOOL(p(214, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_214(s, p, o, m) NDNBOOST_PP_FOR_214_C(NDNBOOST_PP_BOOL(p(215, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_215(s, p, o, m) NDNBOOST_PP_FOR_215_C(NDNBOOST_PP_BOOL(p(216, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_216(s, p, o, m) NDNBOOST_PP_FOR_216_C(NDNBOOST_PP_BOOL(p(217, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_217(s, p, o, m) NDNBOOST_PP_FOR_217_C(NDNBOOST_PP_BOOL(p(218, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_218(s, p, o, m) NDNBOOST_PP_FOR_218_C(NDNBOOST_PP_BOOL(p(219, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_219(s, p, o, m) NDNBOOST_PP_FOR_219_C(NDNBOOST_PP_BOOL(p(220, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_220(s, p, o, m) NDNBOOST_PP_FOR_220_C(NDNBOOST_PP_BOOL(p(221, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_221(s, p, o, m) NDNBOOST_PP_FOR_221_C(NDNBOOST_PP_BOOL(p(222, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_222(s, p, o, m) NDNBOOST_PP_FOR_222_C(NDNBOOST_PP_BOOL(p(223, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_223(s, p, o, m) NDNBOOST_PP_FOR_223_C(NDNBOOST_PP_BOOL(p(224, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_224(s, p, o, m) NDNBOOST_PP_FOR_224_C(NDNBOOST_PP_BOOL(p(225, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_225(s, p, o, m) NDNBOOST_PP_FOR_225_C(NDNBOOST_PP_BOOL(p(226, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_226(s, p, o, m) NDNBOOST_PP_FOR_226_C(NDNBOOST_PP_BOOL(p(227, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_227(s, p, o, m) NDNBOOST_PP_FOR_227_C(NDNBOOST_PP_BOOL(p(228, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_228(s, p, o, m) NDNBOOST_PP_FOR_228_C(NDNBOOST_PP_BOOL(p(229, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_229(s, p, o, m) NDNBOOST_PP_FOR_229_C(NDNBOOST_PP_BOOL(p(230, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_230(s, p, o, m) NDNBOOST_PP_FOR_230_C(NDNBOOST_PP_BOOL(p(231, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_231(s, p, o, m) NDNBOOST_PP_FOR_231_C(NDNBOOST_PP_BOOL(p(232, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_232(s, p, o, m) NDNBOOST_PP_FOR_232_C(NDNBOOST_PP_BOOL(p(233, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_233(s, p, o, m) NDNBOOST_PP_FOR_233_C(NDNBOOST_PP_BOOL(p(234, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_234(s, p, o, m) NDNBOOST_PP_FOR_234_C(NDNBOOST_PP_BOOL(p(235, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_235(s, p, o, m) NDNBOOST_PP_FOR_235_C(NDNBOOST_PP_BOOL(p(236, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_236(s, p, o, m) NDNBOOST_PP_FOR_236_C(NDNBOOST_PP_BOOL(p(237, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_237(s, p, o, m) NDNBOOST_PP_FOR_237_C(NDNBOOST_PP_BOOL(p(238, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_238(s, p, o, m) NDNBOOST_PP_FOR_238_C(NDNBOOST_PP_BOOL(p(239, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_239(s, p, o, m) NDNBOOST_PP_FOR_239_C(NDNBOOST_PP_BOOL(p(240, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_240(s, p, o, m) NDNBOOST_PP_FOR_240_C(NDNBOOST_PP_BOOL(p(241, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_241(s, p, o, m) NDNBOOST_PP_FOR_241_C(NDNBOOST_PP_BOOL(p(242, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_242(s, p, o, m) NDNBOOST_PP_FOR_242_C(NDNBOOST_PP_BOOL(p(243, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_243(s, p, o, m) NDNBOOST_PP_FOR_243_C(NDNBOOST_PP_BOOL(p(244, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_244(s, p, o, m) NDNBOOST_PP_FOR_244_C(NDNBOOST_PP_BOOL(p(245, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_245(s, p, o, m) NDNBOOST_PP_FOR_245_C(NDNBOOST_PP_BOOL(p(246, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_246(s, p, o, m) NDNBOOST_PP_FOR_246_C(NDNBOOST_PP_BOOL(p(247, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_247(s, p, o, m) NDNBOOST_PP_FOR_247_C(NDNBOOST_PP_BOOL(p(248, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_248(s, p, o, m) NDNBOOST_PP_FOR_248_C(NDNBOOST_PP_BOOL(p(249, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_249(s, p, o, m) NDNBOOST_PP_FOR_249_C(NDNBOOST_PP_BOOL(p(250, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_250(s, p, o, m) NDNBOOST_PP_FOR_250_C(NDNBOOST_PP_BOOL(p(251, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_251(s, p, o, m) NDNBOOST_PP_FOR_251_C(NDNBOOST_PP_BOOL(p(252, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_252(s, p, o, m) NDNBOOST_PP_FOR_252_C(NDNBOOST_PP_BOOL(p(253, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_253(s, p, o, m) NDNBOOST_PP_FOR_253_C(NDNBOOST_PP_BOOL(p(254, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_254(s, p, o, m) NDNBOOST_PP_FOR_254_C(NDNBOOST_PP_BOOL(p(255, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_255(s, p, o, m) NDNBOOST_PP_FOR_255_C(NDNBOOST_PP_BOOL(p(256, s)), s, p, o, m)
+# define NDNBOOST_PP_FOR_256(s, p, o, m) NDNBOOST_PP_FOR_256_C(NDNBOOST_PP_BOOL(p(257, s)), s, p, o, m)
 #
-# define BOOST_PP_FOR_1_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(2, s) BOOST_PP_IIF(c, BOOST_PP_FOR_2, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(2, s), p, o, m)
-# define BOOST_PP_FOR_2_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(3, s) BOOST_PP_IIF(c, BOOST_PP_FOR_3, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(3, s), p, o, m)
-# define BOOST_PP_FOR_3_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(4, s) BOOST_PP_IIF(c, BOOST_PP_FOR_4, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(4, s), p, o, m)
-# define BOOST_PP_FOR_4_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(5, s) BOOST_PP_IIF(c, BOOST_PP_FOR_5, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(5, s), p, o, m)
-# define BOOST_PP_FOR_5_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(6, s) BOOST_PP_IIF(c, BOOST_PP_FOR_6, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(6, s), p, o, m)
-# define BOOST_PP_FOR_6_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(7, s) BOOST_PP_IIF(c, BOOST_PP_FOR_7, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(7, s), p, o, m)
-# define BOOST_PP_FOR_7_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(8, s) BOOST_PP_IIF(c, BOOST_PP_FOR_8, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(8, s), p, o, m)
-# define BOOST_PP_FOR_8_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(9, s) BOOST_PP_IIF(c, BOOST_PP_FOR_9, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(9, s), p, o, m)
-# define BOOST_PP_FOR_9_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(10, s) BOOST_PP_IIF(c, BOOST_PP_FOR_10, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(10, s), p, o, m)
-# define BOOST_PP_FOR_10_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(11, s) BOOST_PP_IIF(c, BOOST_PP_FOR_11, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(11, s), p, o, m)
-# define BOOST_PP_FOR_11_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(12, s) BOOST_PP_IIF(c, BOOST_PP_FOR_12, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(12, s), p, o, m)
-# define BOOST_PP_FOR_12_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(13, s) BOOST_PP_IIF(c, BOOST_PP_FOR_13, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(13, s), p, o, m)
-# define BOOST_PP_FOR_13_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(14, s) BOOST_PP_IIF(c, BOOST_PP_FOR_14, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(14, s), p, o, m)
-# define BOOST_PP_FOR_14_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(15, s) BOOST_PP_IIF(c, BOOST_PP_FOR_15, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(15, s), p, o, m)
-# define BOOST_PP_FOR_15_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(16, s) BOOST_PP_IIF(c, BOOST_PP_FOR_16, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(16, s), p, o, m)
-# define BOOST_PP_FOR_16_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(17, s) BOOST_PP_IIF(c, BOOST_PP_FOR_17, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(17, s), p, o, m)
-# define BOOST_PP_FOR_17_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(18, s) BOOST_PP_IIF(c, BOOST_PP_FOR_18, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(18, s), p, o, m)
-# define BOOST_PP_FOR_18_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(19, s) BOOST_PP_IIF(c, BOOST_PP_FOR_19, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(19, s), p, o, m)
-# define BOOST_PP_FOR_19_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(20, s) BOOST_PP_IIF(c, BOOST_PP_FOR_20, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(20, s), p, o, m)
-# define BOOST_PP_FOR_20_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(21, s) BOOST_PP_IIF(c, BOOST_PP_FOR_21, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(21, s), p, o, m)
-# define BOOST_PP_FOR_21_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(22, s) BOOST_PP_IIF(c, BOOST_PP_FOR_22, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(22, s), p, o, m)
-# define BOOST_PP_FOR_22_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(23, s) BOOST_PP_IIF(c, BOOST_PP_FOR_23, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(23, s), p, o, m)
-# define BOOST_PP_FOR_23_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(24, s) BOOST_PP_IIF(c, BOOST_PP_FOR_24, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(24, s), p, o, m)
-# define BOOST_PP_FOR_24_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(25, s) BOOST_PP_IIF(c, BOOST_PP_FOR_25, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(25, s), p, o, m)
-# define BOOST_PP_FOR_25_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(26, s) BOOST_PP_IIF(c, BOOST_PP_FOR_26, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(26, s), p, o, m)
-# define BOOST_PP_FOR_26_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(27, s) BOOST_PP_IIF(c, BOOST_PP_FOR_27, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(27, s), p, o, m)
-# define BOOST_PP_FOR_27_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(28, s) BOOST_PP_IIF(c, BOOST_PP_FOR_28, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(28, s), p, o, m)
-# define BOOST_PP_FOR_28_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(29, s) BOOST_PP_IIF(c, BOOST_PP_FOR_29, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(29, s), p, o, m)
-# define BOOST_PP_FOR_29_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(30, s) BOOST_PP_IIF(c, BOOST_PP_FOR_30, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(30, s), p, o, m)
-# define BOOST_PP_FOR_30_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(31, s) BOOST_PP_IIF(c, BOOST_PP_FOR_31, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(31, s), p, o, m)
-# define BOOST_PP_FOR_31_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(32, s) BOOST_PP_IIF(c, BOOST_PP_FOR_32, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(32, s), p, o, m)
-# define BOOST_PP_FOR_32_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(33, s) BOOST_PP_IIF(c, BOOST_PP_FOR_33, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(33, s), p, o, m)
-# define BOOST_PP_FOR_33_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(34, s) BOOST_PP_IIF(c, BOOST_PP_FOR_34, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(34, s), p, o, m)
-# define BOOST_PP_FOR_34_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(35, s) BOOST_PP_IIF(c, BOOST_PP_FOR_35, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(35, s), p, o, m)
-# define BOOST_PP_FOR_35_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(36, s) BOOST_PP_IIF(c, BOOST_PP_FOR_36, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(36, s), p, o, m)
-# define BOOST_PP_FOR_36_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(37, s) BOOST_PP_IIF(c, BOOST_PP_FOR_37, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(37, s), p, o, m)
-# define BOOST_PP_FOR_37_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(38, s) BOOST_PP_IIF(c, BOOST_PP_FOR_38, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(38, s), p, o, m)
-# define BOOST_PP_FOR_38_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(39, s) BOOST_PP_IIF(c, BOOST_PP_FOR_39, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(39, s), p, o, m)
-# define BOOST_PP_FOR_39_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(40, s) BOOST_PP_IIF(c, BOOST_PP_FOR_40, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(40, s), p, o, m)
-# define BOOST_PP_FOR_40_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(41, s) BOOST_PP_IIF(c, BOOST_PP_FOR_41, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(41, s), p, o, m)
-# define BOOST_PP_FOR_41_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(42, s) BOOST_PP_IIF(c, BOOST_PP_FOR_42, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(42, s), p, o, m)
-# define BOOST_PP_FOR_42_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(43, s) BOOST_PP_IIF(c, BOOST_PP_FOR_43, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(43, s), p, o, m)
-# define BOOST_PP_FOR_43_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(44, s) BOOST_PP_IIF(c, BOOST_PP_FOR_44, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(44, s), p, o, m)
-# define BOOST_PP_FOR_44_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(45, s) BOOST_PP_IIF(c, BOOST_PP_FOR_45, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(45, s), p, o, m)
-# define BOOST_PP_FOR_45_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(46, s) BOOST_PP_IIF(c, BOOST_PP_FOR_46, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(46, s), p, o, m)
-# define BOOST_PP_FOR_46_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(47, s) BOOST_PP_IIF(c, BOOST_PP_FOR_47, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(47, s), p, o, m)
-# define BOOST_PP_FOR_47_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(48, s) BOOST_PP_IIF(c, BOOST_PP_FOR_48, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(48, s), p, o, m)
-# define BOOST_PP_FOR_48_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(49, s) BOOST_PP_IIF(c, BOOST_PP_FOR_49, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(49, s), p, o, m)
-# define BOOST_PP_FOR_49_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(50, s) BOOST_PP_IIF(c, BOOST_PP_FOR_50, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(50, s), p, o, m)
-# define BOOST_PP_FOR_50_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(51, s) BOOST_PP_IIF(c, BOOST_PP_FOR_51, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(51, s), p, o, m)
-# define BOOST_PP_FOR_51_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(52, s) BOOST_PP_IIF(c, BOOST_PP_FOR_52, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(52, s), p, o, m)
-# define BOOST_PP_FOR_52_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(53, s) BOOST_PP_IIF(c, BOOST_PP_FOR_53, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(53, s), p, o, m)
-# define BOOST_PP_FOR_53_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(54, s) BOOST_PP_IIF(c, BOOST_PP_FOR_54, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(54, s), p, o, m)
-# define BOOST_PP_FOR_54_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(55, s) BOOST_PP_IIF(c, BOOST_PP_FOR_55, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(55, s), p, o, m)
-# define BOOST_PP_FOR_55_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(56, s) BOOST_PP_IIF(c, BOOST_PP_FOR_56, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(56, s), p, o, m)
-# define BOOST_PP_FOR_56_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(57, s) BOOST_PP_IIF(c, BOOST_PP_FOR_57, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(57, s), p, o, m)
-# define BOOST_PP_FOR_57_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(58, s) BOOST_PP_IIF(c, BOOST_PP_FOR_58, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(58, s), p, o, m)
-# define BOOST_PP_FOR_58_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(59, s) BOOST_PP_IIF(c, BOOST_PP_FOR_59, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(59, s), p, o, m)
-# define BOOST_PP_FOR_59_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(60, s) BOOST_PP_IIF(c, BOOST_PP_FOR_60, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(60, s), p, o, m)
-# define BOOST_PP_FOR_60_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(61, s) BOOST_PP_IIF(c, BOOST_PP_FOR_61, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(61, s), p, o, m)
-# define BOOST_PP_FOR_61_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(62, s) BOOST_PP_IIF(c, BOOST_PP_FOR_62, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(62, s), p, o, m)
-# define BOOST_PP_FOR_62_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(63, s) BOOST_PP_IIF(c, BOOST_PP_FOR_63, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(63, s), p, o, m)
-# define BOOST_PP_FOR_63_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(64, s) BOOST_PP_IIF(c, BOOST_PP_FOR_64, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(64, s), p, o, m)
-# define BOOST_PP_FOR_64_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(65, s) BOOST_PP_IIF(c, BOOST_PP_FOR_65, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(65, s), p, o, m)
-# define BOOST_PP_FOR_65_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(66, s) BOOST_PP_IIF(c, BOOST_PP_FOR_66, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(66, s), p, o, m)
-# define BOOST_PP_FOR_66_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(67, s) BOOST_PP_IIF(c, BOOST_PP_FOR_67, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(67, s), p, o, m)
-# define BOOST_PP_FOR_67_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(68, s) BOOST_PP_IIF(c, BOOST_PP_FOR_68, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(68, s), p, o, m)
-# define BOOST_PP_FOR_68_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(69, s) BOOST_PP_IIF(c, BOOST_PP_FOR_69, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(69, s), p, o, m)
-# define BOOST_PP_FOR_69_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(70, s) BOOST_PP_IIF(c, BOOST_PP_FOR_70, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(70, s), p, o, m)
-# define BOOST_PP_FOR_70_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(71, s) BOOST_PP_IIF(c, BOOST_PP_FOR_71, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(71, s), p, o, m)
-# define BOOST_PP_FOR_71_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(72, s) BOOST_PP_IIF(c, BOOST_PP_FOR_72, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(72, s), p, o, m)
-# define BOOST_PP_FOR_72_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(73, s) BOOST_PP_IIF(c, BOOST_PP_FOR_73, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(73, s), p, o, m)
-# define BOOST_PP_FOR_73_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(74, s) BOOST_PP_IIF(c, BOOST_PP_FOR_74, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(74, s), p, o, m)
-# define BOOST_PP_FOR_74_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(75, s) BOOST_PP_IIF(c, BOOST_PP_FOR_75, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(75, s), p, o, m)
-# define BOOST_PP_FOR_75_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(76, s) BOOST_PP_IIF(c, BOOST_PP_FOR_76, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(76, s), p, o, m)
-# define BOOST_PP_FOR_76_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(77, s) BOOST_PP_IIF(c, BOOST_PP_FOR_77, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(77, s), p, o, m)
-# define BOOST_PP_FOR_77_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(78, s) BOOST_PP_IIF(c, BOOST_PP_FOR_78, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(78, s), p, o, m)
-# define BOOST_PP_FOR_78_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(79, s) BOOST_PP_IIF(c, BOOST_PP_FOR_79, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(79, s), p, o, m)
-# define BOOST_PP_FOR_79_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(80, s) BOOST_PP_IIF(c, BOOST_PP_FOR_80, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(80, s), p, o, m)
-# define BOOST_PP_FOR_80_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(81, s) BOOST_PP_IIF(c, BOOST_PP_FOR_81, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(81, s), p, o, m)
-# define BOOST_PP_FOR_81_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(82, s) BOOST_PP_IIF(c, BOOST_PP_FOR_82, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(82, s), p, o, m)
-# define BOOST_PP_FOR_82_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(83, s) BOOST_PP_IIF(c, BOOST_PP_FOR_83, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(83, s), p, o, m)
-# define BOOST_PP_FOR_83_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(84, s) BOOST_PP_IIF(c, BOOST_PP_FOR_84, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(84, s), p, o, m)
-# define BOOST_PP_FOR_84_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(85, s) BOOST_PP_IIF(c, BOOST_PP_FOR_85, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(85, s), p, o, m)
-# define BOOST_PP_FOR_85_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(86, s) BOOST_PP_IIF(c, BOOST_PP_FOR_86, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(86, s), p, o, m)
-# define BOOST_PP_FOR_86_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(87, s) BOOST_PP_IIF(c, BOOST_PP_FOR_87, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(87, s), p, o, m)
-# define BOOST_PP_FOR_87_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(88, s) BOOST_PP_IIF(c, BOOST_PP_FOR_88, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(88, s), p, o, m)
-# define BOOST_PP_FOR_88_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(89, s) BOOST_PP_IIF(c, BOOST_PP_FOR_89, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(89, s), p, o, m)
-# define BOOST_PP_FOR_89_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(90, s) BOOST_PP_IIF(c, BOOST_PP_FOR_90, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(90, s), p, o, m)
-# define BOOST_PP_FOR_90_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(91, s) BOOST_PP_IIF(c, BOOST_PP_FOR_91, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(91, s), p, o, m)
-# define BOOST_PP_FOR_91_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(92, s) BOOST_PP_IIF(c, BOOST_PP_FOR_92, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(92, s), p, o, m)
-# define BOOST_PP_FOR_92_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(93, s) BOOST_PP_IIF(c, BOOST_PP_FOR_93, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(93, s), p, o, m)
-# define BOOST_PP_FOR_93_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(94, s) BOOST_PP_IIF(c, BOOST_PP_FOR_94, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(94, s), p, o, m)
-# define BOOST_PP_FOR_94_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(95, s) BOOST_PP_IIF(c, BOOST_PP_FOR_95, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(95, s), p, o, m)
-# define BOOST_PP_FOR_95_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(96, s) BOOST_PP_IIF(c, BOOST_PP_FOR_96, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(96, s), p, o, m)
-# define BOOST_PP_FOR_96_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(97, s) BOOST_PP_IIF(c, BOOST_PP_FOR_97, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(97, s), p, o, m)
-# define BOOST_PP_FOR_97_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(98, s) BOOST_PP_IIF(c, BOOST_PP_FOR_98, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(98, s), p, o, m)
-# define BOOST_PP_FOR_98_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(99, s) BOOST_PP_IIF(c, BOOST_PP_FOR_99, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(99, s), p, o, m)
-# define BOOST_PP_FOR_99_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(100, s) BOOST_PP_IIF(c, BOOST_PP_FOR_100, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(100, s), p, o, m)
-# define BOOST_PP_FOR_100_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(101, s) BOOST_PP_IIF(c, BOOST_PP_FOR_101, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(101, s), p, o, m)
-# define BOOST_PP_FOR_101_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(102, s) BOOST_PP_IIF(c, BOOST_PP_FOR_102, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(102, s), p, o, m)
-# define BOOST_PP_FOR_102_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(103, s) BOOST_PP_IIF(c, BOOST_PP_FOR_103, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(103, s), p, o, m)
-# define BOOST_PP_FOR_103_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(104, s) BOOST_PP_IIF(c, BOOST_PP_FOR_104, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(104, s), p, o, m)
-# define BOOST_PP_FOR_104_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(105, s) BOOST_PP_IIF(c, BOOST_PP_FOR_105, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(105, s), p, o, m)
-# define BOOST_PP_FOR_105_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(106, s) BOOST_PP_IIF(c, BOOST_PP_FOR_106, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(106, s), p, o, m)
-# define BOOST_PP_FOR_106_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(107, s) BOOST_PP_IIF(c, BOOST_PP_FOR_107, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(107, s), p, o, m)
-# define BOOST_PP_FOR_107_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(108, s) BOOST_PP_IIF(c, BOOST_PP_FOR_108, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(108, s), p, o, m)
-# define BOOST_PP_FOR_108_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(109, s) BOOST_PP_IIF(c, BOOST_PP_FOR_109, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(109, s), p, o, m)
-# define BOOST_PP_FOR_109_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(110, s) BOOST_PP_IIF(c, BOOST_PP_FOR_110, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(110, s), p, o, m)
-# define BOOST_PP_FOR_110_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(111, s) BOOST_PP_IIF(c, BOOST_PP_FOR_111, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(111, s), p, o, m)
-# define BOOST_PP_FOR_111_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(112, s) BOOST_PP_IIF(c, BOOST_PP_FOR_112, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(112, s), p, o, m)
-# define BOOST_PP_FOR_112_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(113, s) BOOST_PP_IIF(c, BOOST_PP_FOR_113, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(113, s), p, o, m)
-# define BOOST_PP_FOR_113_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(114, s) BOOST_PP_IIF(c, BOOST_PP_FOR_114, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(114, s), p, o, m)
-# define BOOST_PP_FOR_114_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(115, s) BOOST_PP_IIF(c, BOOST_PP_FOR_115, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(115, s), p, o, m)
-# define BOOST_PP_FOR_115_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(116, s) BOOST_PP_IIF(c, BOOST_PP_FOR_116, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(116, s), p, o, m)
-# define BOOST_PP_FOR_116_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(117, s) BOOST_PP_IIF(c, BOOST_PP_FOR_117, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(117, s), p, o, m)
-# define BOOST_PP_FOR_117_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(118, s) BOOST_PP_IIF(c, BOOST_PP_FOR_118, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(118, s), p, o, m)
-# define BOOST_PP_FOR_118_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(119, s) BOOST_PP_IIF(c, BOOST_PP_FOR_119, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(119, s), p, o, m)
-# define BOOST_PP_FOR_119_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(120, s) BOOST_PP_IIF(c, BOOST_PP_FOR_120, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(120, s), p, o, m)
-# define BOOST_PP_FOR_120_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(121, s) BOOST_PP_IIF(c, BOOST_PP_FOR_121, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(121, s), p, o, m)
-# define BOOST_PP_FOR_121_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(122, s) BOOST_PP_IIF(c, BOOST_PP_FOR_122, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(122, s), p, o, m)
-# define BOOST_PP_FOR_122_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(123, s) BOOST_PP_IIF(c, BOOST_PP_FOR_123, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(123, s), p, o, m)
-# define BOOST_PP_FOR_123_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(124, s) BOOST_PP_IIF(c, BOOST_PP_FOR_124, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(124, s), p, o, m)
-# define BOOST_PP_FOR_124_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(125, s) BOOST_PP_IIF(c, BOOST_PP_FOR_125, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(125, s), p, o, m)
-# define BOOST_PP_FOR_125_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(126, s) BOOST_PP_IIF(c, BOOST_PP_FOR_126, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(126, s), p, o, m)
-# define BOOST_PP_FOR_126_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(127, s) BOOST_PP_IIF(c, BOOST_PP_FOR_127, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(127, s), p, o, m)
-# define BOOST_PP_FOR_127_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(128, s) BOOST_PP_IIF(c, BOOST_PP_FOR_128, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(128, s), p, o, m)
-# define BOOST_PP_FOR_128_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(129, s) BOOST_PP_IIF(c, BOOST_PP_FOR_129, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(129, s), p, o, m)
-# define BOOST_PP_FOR_129_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(130, s) BOOST_PP_IIF(c, BOOST_PP_FOR_130, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(130, s), p, o, m)
-# define BOOST_PP_FOR_130_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(131, s) BOOST_PP_IIF(c, BOOST_PP_FOR_131, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(131, s), p, o, m)
-# define BOOST_PP_FOR_131_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(132, s) BOOST_PP_IIF(c, BOOST_PP_FOR_132, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(132, s), p, o, m)
-# define BOOST_PP_FOR_132_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(133, s) BOOST_PP_IIF(c, BOOST_PP_FOR_133, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(133, s), p, o, m)
-# define BOOST_PP_FOR_133_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(134, s) BOOST_PP_IIF(c, BOOST_PP_FOR_134, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(134, s), p, o, m)
-# define BOOST_PP_FOR_134_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(135, s) BOOST_PP_IIF(c, BOOST_PP_FOR_135, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(135, s), p, o, m)
-# define BOOST_PP_FOR_135_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(136, s) BOOST_PP_IIF(c, BOOST_PP_FOR_136, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(136, s), p, o, m)
-# define BOOST_PP_FOR_136_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(137, s) BOOST_PP_IIF(c, BOOST_PP_FOR_137, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(137, s), p, o, m)
-# define BOOST_PP_FOR_137_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(138, s) BOOST_PP_IIF(c, BOOST_PP_FOR_138, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(138, s), p, o, m)
-# define BOOST_PP_FOR_138_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(139, s) BOOST_PP_IIF(c, BOOST_PP_FOR_139, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(139, s), p, o, m)
-# define BOOST_PP_FOR_139_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(140, s) BOOST_PP_IIF(c, BOOST_PP_FOR_140, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(140, s), p, o, m)
-# define BOOST_PP_FOR_140_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(141, s) BOOST_PP_IIF(c, BOOST_PP_FOR_141, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(141, s), p, o, m)
-# define BOOST_PP_FOR_141_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(142, s) BOOST_PP_IIF(c, BOOST_PP_FOR_142, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(142, s), p, o, m)
-# define BOOST_PP_FOR_142_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(143, s) BOOST_PP_IIF(c, BOOST_PP_FOR_143, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(143, s), p, o, m)
-# define BOOST_PP_FOR_143_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(144, s) BOOST_PP_IIF(c, BOOST_PP_FOR_144, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(144, s), p, o, m)
-# define BOOST_PP_FOR_144_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(145, s) BOOST_PP_IIF(c, BOOST_PP_FOR_145, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(145, s), p, o, m)
-# define BOOST_PP_FOR_145_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(146, s) BOOST_PP_IIF(c, BOOST_PP_FOR_146, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(146, s), p, o, m)
-# define BOOST_PP_FOR_146_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(147, s) BOOST_PP_IIF(c, BOOST_PP_FOR_147, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(147, s), p, o, m)
-# define BOOST_PP_FOR_147_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(148, s) BOOST_PP_IIF(c, BOOST_PP_FOR_148, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(148, s), p, o, m)
-# define BOOST_PP_FOR_148_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(149, s) BOOST_PP_IIF(c, BOOST_PP_FOR_149, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(149, s), p, o, m)
-# define BOOST_PP_FOR_149_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(150, s) BOOST_PP_IIF(c, BOOST_PP_FOR_150, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(150, s), p, o, m)
-# define BOOST_PP_FOR_150_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(151, s) BOOST_PP_IIF(c, BOOST_PP_FOR_151, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(151, s), p, o, m)
-# define BOOST_PP_FOR_151_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(152, s) BOOST_PP_IIF(c, BOOST_PP_FOR_152, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(152, s), p, o, m)
-# define BOOST_PP_FOR_152_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(153, s) BOOST_PP_IIF(c, BOOST_PP_FOR_153, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(153, s), p, o, m)
-# define BOOST_PP_FOR_153_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(154, s) BOOST_PP_IIF(c, BOOST_PP_FOR_154, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(154, s), p, o, m)
-# define BOOST_PP_FOR_154_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(155, s) BOOST_PP_IIF(c, BOOST_PP_FOR_155, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(155, s), p, o, m)
-# define BOOST_PP_FOR_155_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(156, s) BOOST_PP_IIF(c, BOOST_PP_FOR_156, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(156, s), p, o, m)
-# define BOOST_PP_FOR_156_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(157, s) BOOST_PP_IIF(c, BOOST_PP_FOR_157, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(157, s), p, o, m)
-# define BOOST_PP_FOR_157_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(158, s) BOOST_PP_IIF(c, BOOST_PP_FOR_158, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(158, s), p, o, m)
-# define BOOST_PP_FOR_158_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(159, s) BOOST_PP_IIF(c, BOOST_PP_FOR_159, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(159, s), p, o, m)
-# define BOOST_PP_FOR_159_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(160, s) BOOST_PP_IIF(c, BOOST_PP_FOR_160, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(160, s), p, o, m)
-# define BOOST_PP_FOR_160_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(161, s) BOOST_PP_IIF(c, BOOST_PP_FOR_161, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(161, s), p, o, m)
-# define BOOST_PP_FOR_161_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(162, s) BOOST_PP_IIF(c, BOOST_PP_FOR_162, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(162, s), p, o, m)
-# define BOOST_PP_FOR_162_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(163, s) BOOST_PP_IIF(c, BOOST_PP_FOR_163, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(163, s), p, o, m)
-# define BOOST_PP_FOR_163_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(164, s) BOOST_PP_IIF(c, BOOST_PP_FOR_164, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(164, s), p, o, m)
-# define BOOST_PP_FOR_164_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(165, s) BOOST_PP_IIF(c, BOOST_PP_FOR_165, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(165, s), p, o, m)
-# define BOOST_PP_FOR_165_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(166, s) BOOST_PP_IIF(c, BOOST_PP_FOR_166, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(166, s), p, o, m)
-# define BOOST_PP_FOR_166_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(167, s) BOOST_PP_IIF(c, BOOST_PP_FOR_167, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(167, s), p, o, m)
-# define BOOST_PP_FOR_167_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(168, s) BOOST_PP_IIF(c, BOOST_PP_FOR_168, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(168, s), p, o, m)
-# define BOOST_PP_FOR_168_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(169, s) BOOST_PP_IIF(c, BOOST_PP_FOR_169, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(169, s), p, o, m)
-# define BOOST_PP_FOR_169_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(170, s) BOOST_PP_IIF(c, BOOST_PP_FOR_170, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(170, s), p, o, m)
-# define BOOST_PP_FOR_170_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(171, s) BOOST_PP_IIF(c, BOOST_PP_FOR_171, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(171, s), p, o, m)
-# define BOOST_PP_FOR_171_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(172, s) BOOST_PP_IIF(c, BOOST_PP_FOR_172, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(172, s), p, o, m)
-# define BOOST_PP_FOR_172_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(173, s) BOOST_PP_IIF(c, BOOST_PP_FOR_173, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(173, s), p, o, m)
-# define BOOST_PP_FOR_173_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(174, s) BOOST_PP_IIF(c, BOOST_PP_FOR_174, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(174, s), p, o, m)
-# define BOOST_PP_FOR_174_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(175, s) BOOST_PP_IIF(c, BOOST_PP_FOR_175, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(175, s), p, o, m)
-# define BOOST_PP_FOR_175_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(176, s) BOOST_PP_IIF(c, BOOST_PP_FOR_176, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(176, s), p, o, m)
-# define BOOST_PP_FOR_176_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(177, s) BOOST_PP_IIF(c, BOOST_PP_FOR_177, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(177, s), p, o, m)
-# define BOOST_PP_FOR_177_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(178, s) BOOST_PP_IIF(c, BOOST_PP_FOR_178, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(178, s), p, o, m)
-# define BOOST_PP_FOR_178_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(179, s) BOOST_PP_IIF(c, BOOST_PP_FOR_179, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(179, s), p, o, m)
-# define BOOST_PP_FOR_179_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(180, s) BOOST_PP_IIF(c, BOOST_PP_FOR_180, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(180, s), p, o, m)
-# define BOOST_PP_FOR_180_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(181, s) BOOST_PP_IIF(c, BOOST_PP_FOR_181, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(181, s), p, o, m)
-# define BOOST_PP_FOR_181_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(182, s) BOOST_PP_IIF(c, BOOST_PP_FOR_182, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(182, s), p, o, m)
-# define BOOST_PP_FOR_182_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(183, s) BOOST_PP_IIF(c, BOOST_PP_FOR_183, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(183, s), p, o, m)
-# define BOOST_PP_FOR_183_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(184, s) BOOST_PP_IIF(c, BOOST_PP_FOR_184, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(184, s), p, o, m)
-# define BOOST_PP_FOR_184_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(185, s) BOOST_PP_IIF(c, BOOST_PP_FOR_185, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(185, s), p, o, m)
-# define BOOST_PP_FOR_185_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(186, s) BOOST_PP_IIF(c, BOOST_PP_FOR_186, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(186, s), p, o, m)
-# define BOOST_PP_FOR_186_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(187, s) BOOST_PP_IIF(c, BOOST_PP_FOR_187, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(187, s), p, o, m)
-# define BOOST_PP_FOR_187_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(188, s) BOOST_PP_IIF(c, BOOST_PP_FOR_188, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(188, s), p, o, m)
-# define BOOST_PP_FOR_188_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(189, s) BOOST_PP_IIF(c, BOOST_PP_FOR_189, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(189, s), p, o, m)
-# define BOOST_PP_FOR_189_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(190, s) BOOST_PP_IIF(c, BOOST_PP_FOR_190, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(190, s), p, o, m)
-# define BOOST_PP_FOR_190_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(191, s) BOOST_PP_IIF(c, BOOST_PP_FOR_191, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(191, s), p, o, m)
-# define BOOST_PP_FOR_191_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(192, s) BOOST_PP_IIF(c, BOOST_PP_FOR_192, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(192, s), p, o, m)
-# define BOOST_PP_FOR_192_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(193, s) BOOST_PP_IIF(c, BOOST_PP_FOR_193, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(193, s), p, o, m)
-# define BOOST_PP_FOR_193_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(194, s) BOOST_PP_IIF(c, BOOST_PP_FOR_194, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(194, s), p, o, m)
-# define BOOST_PP_FOR_194_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(195, s) BOOST_PP_IIF(c, BOOST_PP_FOR_195, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(195, s), p, o, m)
-# define BOOST_PP_FOR_195_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(196, s) BOOST_PP_IIF(c, BOOST_PP_FOR_196, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(196, s), p, o, m)
-# define BOOST_PP_FOR_196_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(197, s) BOOST_PP_IIF(c, BOOST_PP_FOR_197, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(197, s), p, o, m)
-# define BOOST_PP_FOR_197_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(198, s) BOOST_PP_IIF(c, BOOST_PP_FOR_198, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(198, s), p, o, m)
-# define BOOST_PP_FOR_198_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(199, s) BOOST_PP_IIF(c, BOOST_PP_FOR_199, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(199, s), p, o, m)
-# define BOOST_PP_FOR_199_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(200, s) BOOST_PP_IIF(c, BOOST_PP_FOR_200, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(200, s), p, o, m)
-# define BOOST_PP_FOR_200_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(201, s) BOOST_PP_IIF(c, BOOST_PP_FOR_201, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(201, s), p, o, m)
-# define BOOST_PP_FOR_201_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(202, s) BOOST_PP_IIF(c, BOOST_PP_FOR_202, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(202, s), p, o, m)
-# define BOOST_PP_FOR_202_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(203, s) BOOST_PP_IIF(c, BOOST_PP_FOR_203, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(203, s), p, o, m)
-# define BOOST_PP_FOR_203_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(204, s) BOOST_PP_IIF(c, BOOST_PP_FOR_204, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(204, s), p, o, m)
-# define BOOST_PP_FOR_204_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(205, s) BOOST_PP_IIF(c, BOOST_PP_FOR_205, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(205, s), p, o, m)
-# define BOOST_PP_FOR_205_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(206, s) BOOST_PP_IIF(c, BOOST_PP_FOR_206, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(206, s), p, o, m)
-# define BOOST_PP_FOR_206_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(207, s) BOOST_PP_IIF(c, BOOST_PP_FOR_207, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(207, s), p, o, m)
-# define BOOST_PP_FOR_207_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(208, s) BOOST_PP_IIF(c, BOOST_PP_FOR_208, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(208, s), p, o, m)
-# define BOOST_PP_FOR_208_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(209, s) BOOST_PP_IIF(c, BOOST_PP_FOR_209, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(209, s), p, o, m)
-# define BOOST_PP_FOR_209_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(210, s) BOOST_PP_IIF(c, BOOST_PP_FOR_210, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(210, s), p, o, m)
-# define BOOST_PP_FOR_210_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(211, s) BOOST_PP_IIF(c, BOOST_PP_FOR_211, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(211, s), p, o, m)
-# define BOOST_PP_FOR_211_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(212, s) BOOST_PP_IIF(c, BOOST_PP_FOR_212, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(212, s), p, o, m)
-# define BOOST_PP_FOR_212_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(213, s) BOOST_PP_IIF(c, BOOST_PP_FOR_213, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(213, s), p, o, m)
-# define BOOST_PP_FOR_213_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(214, s) BOOST_PP_IIF(c, BOOST_PP_FOR_214, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(214, s), p, o, m)
-# define BOOST_PP_FOR_214_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(215, s) BOOST_PP_IIF(c, BOOST_PP_FOR_215, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(215, s), p, o, m)
-# define BOOST_PP_FOR_215_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(216, s) BOOST_PP_IIF(c, BOOST_PP_FOR_216, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(216, s), p, o, m)
-# define BOOST_PP_FOR_216_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(217, s) BOOST_PP_IIF(c, BOOST_PP_FOR_217, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(217, s), p, o, m)
-# define BOOST_PP_FOR_217_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(218, s) BOOST_PP_IIF(c, BOOST_PP_FOR_218, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(218, s), p, o, m)
-# define BOOST_PP_FOR_218_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(219, s) BOOST_PP_IIF(c, BOOST_PP_FOR_219, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(219, s), p, o, m)
-# define BOOST_PP_FOR_219_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(220, s) BOOST_PP_IIF(c, BOOST_PP_FOR_220, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(220, s), p, o, m)
-# define BOOST_PP_FOR_220_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(221, s) BOOST_PP_IIF(c, BOOST_PP_FOR_221, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(221, s), p, o, m)
-# define BOOST_PP_FOR_221_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(222, s) BOOST_PP_IIF(c, BOOST_PP_FOR_222, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(222, s), p, o, m)
-# define BOOST_PP_FOR_222_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(223, s) BOOST_PP_IIF(c, BOOST_PP_FOR_223, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(223, s), p, o, m)
-# define BOOST_PP_FOR_223_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(224, s) BOOST_PP_IIF(c, BOOST_PP_FOR_224, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(224, s), p, o, m)
-# define BOOST_PP_FOR_224_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(225, s) BOOST_PP_IIF(c, BOOST_PP_FOR_225, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(225, s), p, o, m)
-# define BOOST_PP_FOR_225_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(226, s) BOOST_PP_IIF(c, BOOST_PP_FOR_226, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(226, s), p, o, m)
-# define BOOST_PP_FOR_226_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(227, s) BOOST_PP_IIF(c, BOOST_PP_FOR_227, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(227, s), p, o, m)
-# define BOOST_PP_FOR_227_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(228, s) BOOST_PP_IIF(c, BOOST_PP_FOR_228, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(228, s), p, o, m)
-# define BOOST_PP_FOR_228_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(229, s) BOOST_PP_IIF(c, BOOST_PP_FOR_229, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(229, s), p, o, m)
-# define BOOST_PP_FOR_229_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(230, s) BOOST_PP_IIF(c, BOOST_PP_FOR_230, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(230, s), p, o, m)
-# define BOOST_PP_FOR_230_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(231, s) BOOST_PP_IIF(c, BOOST_PP_FOR_231, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(231, s), p, o, m)
-# define BOOST_PP_FOR_231_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(232, s) BOOST_PP_IIF(c, BOOST_PP_FOR_232, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(232, s), p, o, m)
-# define BOOST_PP_FOR_232_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(233, s) BOOST_PP_IIF(c, BOOST_PP_FOR_233, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(233, s), p, o, m)
-# define BOOST_PP_FOR_233_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(234, s) BOOST_PP_IIF(c, BOOST_PP_FOR_234, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(234, s), p, o, m)
-# define BOOST_PP_FOR_234_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(235, s) BOOST_PP_IIF(c, BOOST_PP_FOR_235, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(235, s), p, o, m)
-# define BOOST_PP_FOR_235_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(236, s) BOOST_PP_IIF(c, BOOST_PP_FOR_236, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(236, s), p, o, m)
-# define BOOST_PP_FOR_236_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(237, s) BOOST_PP_IIF(c, BOOST_PP_FOR_237, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(237, s), p, o, m)
-# define BOOST_PP_FOR_237_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(238, s) BOOST_PP_IIF(c, BOOST_PP_FOR_238, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(238, s), p, o, m)
-# define BOOST_PP_FOR_238_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(239, s) BOOST_PP_IIF(c, BOOST_PP_FOR_239, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(239, s), p, o, m)
-# define BOOST_PP_FOR_239_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(240, s) BOOST_PP_IIF(c, BOOST_PP_FOR_240, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(240, s), p, o, m)
-# define BOOST_PP_FOR_240_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(241, s) BOOST_PP_IIF(c, BOOST_PP_FOR_241, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(241, s), p, o, m)
-# define BOOST_PP_FOR_241_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(242, s) BOOST_PP_IIF(c, BOOST_PP_FOR_242, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(242, s), p, o, m)
-# define BOOST_PP_FOR_242_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(243, s) BOOST_PP_IIF(c, BOOST_PP_FOR_243, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(243, s), p, o, m)
-# define BOOST_PP_FOR_243_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(244, s) BOOST_PP_IIF(c, BOOST_PP_FOR_244, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(244, s), p, o, m)
-# define BOOST_PP_FOR_244_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(245, s) BOOST_PP_IIF(c, BOOST_PP_FOR_245, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(245, s), p, o, m)
-# define BOOST_PP_FOR_245_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(246, s) BOOST_PP_IIF(c, BOOST_PP_FOR_246, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(246, s), p, o, m)
-# define BOOST_PP_FOR_246_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(247, s) BOOST_PP_IIF(c, BOOST_PP_FOR_247, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(247, s), p, o, m)
-# define BOOST_PP_FOR_247_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(248, s) BOOST_PP_IIF(c, BOOST_PP_FOR_248, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(248, s), p, o, m)
-# define BOOST_PP_FOR_248_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(249, s) BOOST_PP_IIF(c, BOOST_PP_FOR_249, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(249, s), p, o, m)
-# define BOOST_PP_FOR_249_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(250, s) BOOST_PP_IIF(c, BOOST_PP_FOR_250, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(250, s), p, o, m)
-# define BOOST_PP_FOR_250_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(251, s) BOOST_PP_IIF(c, BOOST_PP_FOR_251, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(251, s), p, o, m)
-# define BOOST_PP_FOR_251_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(252, s) BOOST_PP_IIF(c, BOOST_PP_FOR_252, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(252, s), p, o, m)
-# define BOOST_PP_FOR_252_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(253, s) BOOST_PP_IIF(c, BOOST_PP_FOR_253, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(253, s), p, o, m)
-# define BOOST_PP_FOR_253_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(254, s) BOOST_PP_IIF(c, BOOST_PP_FOR_254, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(254, s), p, o, m)
-# define BOOST_PP_FOR_254_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(255, s) BOOST_PP_IIF(c, BOOST_PP_FOR_255, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(255, s), p, o, m)
-# define BOOST_PP_FOR_255_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(256, s) BOOST_PP_IIF(c, BOOST_PP_FOR_256, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(256, s), p, o, m)
-# define BOOST_PP_FOR_256_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(257, s) BOOST_PP_IIF(c, BOOST_PP_FOR_257, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(257, s), p, o, m)
+# define NDNBOOST_PP_FOR_1_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(2, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_2, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(2, s), p, o, m)
+# define NDNBOOST_PP_FOR_2_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(3, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_3, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(3, s), p, o, m)
+# define NDNBOOST_PP_FOR_3_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(4, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_4, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(4, s), p, o, m)
+# define NDNBOOST_PP_FOR_4_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(5, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_5, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(5, s), p, o, m)
+# define NDNBOOST_PP_FOR_5_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(6, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_6, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(6, s), p, o, m)
+# define NDNBOOST_PP_FOR_6_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(7, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_7, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(7, s), p, o, m)
+# define NDNBOOST_PP_FOR_7_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(8, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_8, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(8, s), p, o, m)
+# define NDNBOOST_PP_FOR_8_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(9, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_9, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(9, s), p, o, m)
+# define NDNBOOST_PP_FOR_9_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(10, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_10, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(10, s), p, o, m)
+# define NDNBOOST_PP_FOR_10_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(11, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_11, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(11, s), p, o, m)
+# define NDNBOOST_PP_FOR_11_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(12, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_12, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(12, s), p, o, m)
+# define NDNBOOST_PP_FOR_12_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(13, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_13, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(13, s), p, o, m)
+# define NDNBOOST_PP_FOR_13_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(14, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_14, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(14, s), p, o, m)
+# define NDNBOOST_PP_FOR_14_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(15, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_15, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(15, s), p, o, m)
+# define NDNBOOST_PP_FOR_15_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(16, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_16, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(16, s), p, o, m)
+# define NDNBOOST_PP_FOR_16_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(17, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_17, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(17, s), p, o, m)
+# define NDNBOOST_PP_FOR_17_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(18, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_18, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(18, s), p, o, m)
+# define NDNBOOST_PP_FOR_18_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(19, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_19, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(19, s), p, o, m)
+# define NDNBOOST_PP_FOR_19_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(20, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_20, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(20, s), p, o, m)
+# define NDNBOOST_PP_FOR_20_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(21, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_21, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(21, s), p, o, m)
+# define NDNBOOST_PP_FOR_21_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(22, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_22, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(22, s), p, o, m)
+# define NDNBOOST_PP_FOR_22_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(23, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_23, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(23, s), p, o, m)
+# define NDNBOOST_PP_FOR_23_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(24, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_24, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(24, s), p, o, m)
+# define NDNBOOST_PP_FOR_24_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(25, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_25, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(25, s), p, o, m)
+# define NDNBOOST_PP_FOR_25_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(26, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_26, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(26, s), p, o, m)
+# define NDNBOOST_PP_FOR_26_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(27, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_27, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(27, s), p, o, m)
+# define NDNBOOST_PP_FOR_27_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(28, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_28, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(28, s), p, o, m)
+# define NDNBOOST_PP_FOR_28_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(29, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_29, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(29, s), p, o, m)
+# define NDNBOOST_PP_FOR_29_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(30, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_30, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(30, s), p, o, m)
+# define NDNBOOST_PP_FOR_30_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(31, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_31, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(31, s), p, o, m)
+# define NDNBOOST_PP_FOR_31_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(32, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_32, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(32, s), p, o, m)
+# define NDNBOOST_PP_FOR_32_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(33, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_33, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(33, s), p, o, m)
+# define NDNBOOST_PP_FOR_33_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(34, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_34, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(34, s), p, o, m)
+# define NDNBOOST_PP_FOR_34_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(35, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_35, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(35, s), p, o, m)
+# define NDNBOOST_PP_FOR_35_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(36, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_36, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(36, s), p, o, m)
+# define NDNBOOST_PP_FOR_36_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(37, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_37, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(37, s), p, o, m)
+# define NDNBOOST_PP_FOR_37_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(38, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_38, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(38, s), p, o, m)
+# define NDNBOOST_PP_FOR_38_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(39, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_39, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(39, s), p, o, m)
+# define NDNBOOST_PP_FOR_39_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(40, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_40, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(40, s), p, o, m)
+# define NDNBOOST_PP_FOR_40_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(41, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_41, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(41, s), p, o, m)
+# define NDNBOOST_PP_FOR_41_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(42, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_42, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(42, s), p, o, m)
+# define NDNBOOST_PP_FOR_42_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(43, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_43, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(43, s), p, o, m)
+# define NDNBOOST_PP_FOR_43_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(44, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_44, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(44, s), p, o, m)
+# define NDNBOOST_PP_FOR_44_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(45, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_45, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(45, s), p, o, m)
+# define NDNBOOST_PP_FOR_45_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(46, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_46, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(46, s), p, o, m)
+# define NDNBOOST_PP_FOR_46_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(47, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_47, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(47, s), p, o, m)
+# define NDNBOOST_PP_FOR_47_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(48, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_48, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(48, s), p, o, m)
+# define NDNBOOST_PP_FOR_48_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(49, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_49, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(49, s), p, o, m)
+# define NDNBOOST_PP_FOR_49_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(50, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_50, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(50, s), p, o, m)
+# define NDNBOOST_PP_FOR_50_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(51, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_51, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(51, s), p, o, m)
+# define NDNBOOST_PP_FOR_51_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(52, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_52, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(52, s), p, o, m)
+# define NDNBOOST_PP_FOR_52_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(53, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_53, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(53, s), p, o, m)
+# define NDNBOOST_PP_FOR_53_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(54, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_54, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(54, s), p, o, m)
+# define NDNBOOST_PP_FOR_54_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(55, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_55, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(55, s), p, o, m)
+# define NDNBOOST_PP_FOR_55_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(56, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_56, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(56, s), p, o, m)
+# define NDNBOOST_PP_FOR_56_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(57, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_57, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(57, s), p, o, m)
+# define NDNBOOST_PP_FOR_57_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(58, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_58, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(58, s), p, o, m)
+# define NDNBOOST_PP_FOR_58_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(59, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_59, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(59, s), p, o, m)
+# define NDNBOOST_PP_FOR_59_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(60, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_60, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(60, s), p, o, m)
+# define NDNBOOST_PP_FOR_60_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(61, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_61, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(61, s), p, o, m)
+# define NDNBOOST_PP_FOR_61_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(62, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_62, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(62, s), p, o, m)
+# define NDNBOOST_PP_FOR_62_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(63, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_63, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(63, s), p, o, m)
+# define NDNBOOST_PP_FOR_63_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(64, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_64, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(64, s), p, o, m)
+# define NDNBOOST_PP_FOR_64_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(65, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_65, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(65, s), p, o, m)
+# define NDNBOOST_PP_FOR_65_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(66, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_66, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(66, s), p, o, m)
+# define NDNBOOST_PP_FOR_66_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(67, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_67, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(67, s), p, o, m)
+# define NDNBOOST_PP_FOR_67_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(68, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_68, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(68, s), p, o, m)
+# define NDNBOOST_PP_FOR_68_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(69, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_69, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(69, s), p, o, m)
+# define NDNBOOST_PP_FOR_69_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(70, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_70, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(70, s), p, o, m)
+# define NDNBOOST_PP_FOR_70_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(71, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_71, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(71, s), p, o, m)
+# define NDNBOOST_PP_FOR_71_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(72, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_72, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(72, s), p, o, m)
+# define NDNBOOST_PP_FOR_72_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(73, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_73, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(73, s), p, o, m)
+# define NDNBOOST_PP_FOR_73_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(74, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_74, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(74, s), p, o, m)
+# define NDNBOOST_PP_FOR_74_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(75, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_75, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(75, s), p, o, m)
+# define NDNBOOST_PP_FOR_75_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(76, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_76, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(76, s), p, o, m)
+# define NDNBOOST_PP_FOR_76_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(77, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_77, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(77, s), p, o, m)
+# define NDNBOOST_PP_FOR_77_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(78, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_78, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(78, s), p, o, m)
+# define NDNBOOST_PP_FOR_78_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(79, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_79, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(79, s), p, o, m)
+# define NDNBOOST_PP_FOR_79_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(80, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_80, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(80, s), p, o, m)
+# define NDNBOOST_PP_FOR_80_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(81, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_81, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(81, s), p, o, m)
+# define NDNBOOST_PP_FOR_81_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(82, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_82, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(82, s), p, o, m)
+# define NDNBOOST_PP_FOR_82_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(83, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_83, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(83, s), p, o, m)
+# define NDNBOOST_PP_FOR_83_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(84, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_84, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(84, s), p, o, m)
+# define NDNBOOST_PP_FOR_84_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(85, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_85, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(85, s), p, o, m)
+# define NDNBOOST_PP_FOR_85_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(86, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_86, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(86, s), p, o, m)
+# define NDNBOOST_PP_FOR_86_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(87, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_87, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(87, s), p, o, m)
+# define NDNBOOST_PP_FOR_87_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(88, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_88, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(88, s), p, o, m)
+# define NDNBOOST_PP_FOR_88_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(89, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_89, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(89, s), p, o, m)
+# define NDNBOOST_PP_FOR_89_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(90, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_90, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(90, s), p, o, m)
+# define NDNBOOST_PP_FOR_90_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(91, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_91, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(91, s), p, o, m)
+# define NDNBOOST_PP_FOR_91_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(92, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_92, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(92, s), p, o, m)
+# define NDNBOOST_PP_FOR_92_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(93, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_93, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(93, s), p, o, m)
+# define NDNBOOST_PP_FOR_93_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(94, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_94, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(94, s), p, o, m)
+# define NDNBOOST_PP_FOR_94_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(95, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_95, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(95, s), p, o, m)
+# define NDNBOOST_PP_FOR_95_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(96, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_96, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(96, s), p, o, m)
+# define NDNBOOST_PP_FOR_96_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(97, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_97, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(97, s), p, o, m)
+# define NDNBOOST_PP_FOR_97_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(98, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_98, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(98, s), p, o, m)
+# define NDNBOOST_PP_FOR_98_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(99, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_99, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(99, s), p, o, m)
+# define NDNBOOST_PP_FOR_99_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(100, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_100, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(100, s), p, o, m)
+# define NDNBOOST_PP_FOR_100_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(101, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_101, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(101, s), p, o, m)
+# define NDNBOOST_PP_FOR_101_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(102, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_102, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(102, s), p, o, m)
+# define NDNBOOST_PP_FOR_102_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(103, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_103, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(103, s), p, o, m)
+# define NDNBOOST_PP_FOR_103_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(104, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_104, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(104, s), p, o, m)
+# define NDNBOOST_PP_FOR_104_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(105, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_105, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(105, s), p, o, m)
+# define NDNBOOST_PP_FOR_105_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(106, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_106, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(106, s), p, o, m)
+# define NDNBOOST_PP_FOR_106_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(107, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_107, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(107, s), p, o, m)
+# define NDNBOOST_PP_FOR_107_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(108, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_108, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(108, s), p, o, m)
+# define NDNBOOST_PP_FOR_108_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(109, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_109, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(109, s), p, o, m)
+# define NDNBOOST_PP_FOR_109_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(110, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_110, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(110, s), p, o, m)
+# define NDNBOOST_PP_FOR_110_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(111, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_111, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(111, s), p, o, m)
+# define NDNBOOST_PP_FOR_111_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(112, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_112, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(112, s), p, o, m)
+# define NDNBOOST_PP_FOR_112_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(113, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_113, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(113, s), p, o, m)
+# define NDNBOOST_PP_FOR_113_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(114, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_114, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(114, s), p, o, m)
+# define NDNBOOST_PP_FOR_114_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(115, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_115, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(115, s), p, o, m)
+# define NDNBOOST_PP_FOR_115_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(116, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_116, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(116, s), p, o, m)
+# define NDNBOOST_PP_FOR_116_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(117, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_117, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(117, s), p, o, m)
+# define NDNBOOST_PP_FOR_117_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(118, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_118, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(118, s), p, o, m)
+# define NDNBOOST_PP_FOR_118_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(119, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_119, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(119, s), p, o, m)
+# define NDNBOOST_PP_FOR_119_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(120, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_120, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(120, s), p, o, m)
+# define NDNBOOST_PP_FOR_120_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(121, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_121, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(121, s), p, o, m)
+# define NDNBOOST_PP_FOR_121_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(122, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_122, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(122, s), p, o, m)
+# define NDNBOOST_PP_FOR_122_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(123, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_123, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(123, s), p, o, m)
+# define NDNBOOST_PP_FOR_123_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(124, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_124, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(124, s), p, o, m)
+# define NDNBOOST_PP_FOR_124_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(125, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_125, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(125, s), p, o, m)
+# define NDNBOOST_PP_FOR_125_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(126, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_126, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(126, s), p, o, m)
+# define NDNBOOST_PP_FOR_126_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(127, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_127, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(127, s), p, o, m)
+# define NDNBOOST_PP_FOR_127_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(128, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_128, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(128, s), p, o, m)
+# define NDNBOOST_PP_FOR_128_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(129, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_129, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(129, s), p, o, m)
+# define NDNBOOST_PP_FOR_129_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(130, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_130, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(130, s), p, o, m)
+# define NDNBOOST_PP_FOR_130_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(131, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_131, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(131, s), p, o, m)
+# define NDNBOOST_PP_FOR_131_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(132, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_132, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(132, s), p, o, m)
+# define NDNBOOST_PP_FOR_132_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(133, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_133, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(133, s), p, o, m)
+# define NDNBOOST_PP_FOR_133_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(134, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_134, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(134, s), p, o, m)
+# define NDNBOOST_PP_FOR_134_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(135, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_135, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(135, s), p, o, m)
+# define NDNBOOST_PP_FOR_135_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(136, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_136, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(136, s), p, o, m)
+# define NDNBOOST_PP_FOR_136_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(137, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_137, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(137, s), p, o, m)
+# define NDNBOOST_PP_FOR_137_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(138, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_138, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(138, s), p, o, m)
+# define NDNBOOST_PP_FOR_138_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(139, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_139, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(139, s), p, o, m)
+# define NDNBOOST_PP_FOR_139_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(140, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_140, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(140, s), p, o, m)
+# define NDNBOOST_PP_FOR_140_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(141, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_141, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(141, s), p, o, m)
+# define NDNBOOST_PP_FOR_141_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(142, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_142, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(142, s), p, o, m)
+# define NDNBOOST_PP_FOR_142_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(143, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_143, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(143, s), p, o, m)
+# define NDNBOOST_PP_FOR_143_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(144, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_144, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(144, s), p, o, m)
+# define NDNBOOST_PP_FOR_144_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(145, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_145, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(145, s), p, o, m)
+# define NDNBOOST_PP_FOR_145_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(146, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_146, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(146, s), p, o, m)
+# define NDNBOOST_PP_FOR_146_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(147, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_147, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(147, s), p, o, m)
+# define NDNBOOST_PP_FOR_147_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(148, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_148, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(148, s), p, o, m)
+# define NDNBOOST_PP_FOR_148_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(149, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_149, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(149, s), p, o, m)
+# define NDNBOOST_PP_FOR_149_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(150, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_150, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(150, s), p, o, m)
+# define NDNBOOST_PP_FOR_150_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(151, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_151, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(151, s), p, o, m)
+# define NDNBOOST_PP_FOR_151_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(152, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_152, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(152, s), p, o, m)
+# define NDNBOOST_PP_FOR_152_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(153, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_153, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(153, s), p, o, m)
+# define NDNBOOST_PP_FOR_153_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(154, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_154, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(154, s), p, o, m)
+# define NDNBOOST_PP_FOR_154_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(155, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_155, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(155, s), p, o, m)
+# define NDNBOOST_PP_FOR_155_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(156, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_156, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(156, s), p, o, m)
+# define NDNBOOST_PP_FOR_156_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(157, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_157, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(157, s), p, o, m)
+# define NDNBOOST_PP_FOR_157_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(158, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_158, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(158, s), p, o, m)
+# define NDNBOOST_PP_FOR_158_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(159, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_159, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(159, s), p, o, m)
+# define NDNBOOST_PP_FOR_159_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(160, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_160, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(160, s), p, o, m)
+# define NDNBOOST_PP_FOR_160_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(161, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_161, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(161, s), p, o, m)
+# define NDNBOOST_PP_FOR_161_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(162, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_162, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(162, s), p, o, m)
+# define NDNBOOST_PP_FOR_162_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(163, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_163, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(163, s), p, o, m)
+# define NDNBOOST_PP_FOR_163_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(164, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_164, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(164, s), p, o, m)
+# define NDNBOOST_PP_FOR_164_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(165, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_165, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(165, s), p, o, m)
+# define NDNBOOST_PP_FOR_165_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(166, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_166, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(166, s), p, o, m)
+# define NDNBOOST_PP_FOR_166_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(167, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_167, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(167, s), p, o, m)
+# define NDNBOOST_PP_FOR_167_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(168, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_168, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(168, s), p, o, m)
+# define NDNBOOST_PP_FOR_168_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(169, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_169, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(169, s), p, o, m)
+# define NDNBOOST_PP_FOR_169_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(170, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_170, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(170, s), p, o, m)
+# define NDNBOOST_PP_FOR_170_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(171, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_171, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(171, s), p, o, m)
+# define NDNBOOST_PP_FOR_171_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(172, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_172, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(172, s), p, o, m)
+# define NDNBOOST_PP_FOR_172_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(173, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_173, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(173, s), p, o, m)
+# define NDNBOOST_PP_FOR_173_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(174, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_174, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(174, s), p, o, m)
+# define NDNBOOST_PP_FOR_174_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(175, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_175, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(175, s), p, o, m)
+# define NDNBOOST_PP_FOR_175_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(176, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_176, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(176, s), p, o, m)
+# define NDNBOOST_PP_FOR_176_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(177, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_177, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(177, s), p, o, m)
+# define NDNBOOST_PP_FOR_177_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(178, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_178, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(178, s), p, o, m)
+# define NDNBOOST_PP_FOR_178_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(179, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_179, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(179, s), p, o, m)
+# define NDNBOOST_PP_FOR_179_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(180, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_180, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(180, s), p, o, m)
+# define NDNBOOST_PP_FOR_180_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(181, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_181, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(181, s), p, o, m)
+# define NDNBOOST_PP_FOR_181_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(182, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_182, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(182, s), p, o, m)
+# define NDNBOOST_PP_FOR_182_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(183, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_183, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(183, s), p, o, m)
+# define NDNBOOST_PP_FOR_183_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(184, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_184, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(184, s), p, o, m)
+# define NDNBOOST_PP_FOR_184_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(185, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_185, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(185, s), p, o, m)
+# define NDNBOOST_PP_FOR_185_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(186, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_186, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(186, s), p, o, m)
+# define NDNBOOST_PP_FOR_186_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(187, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_187, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(187, s), p, o, m)
+# define NDNBOOST_PP_FOR_187_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(188, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_188, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(188, s), p, o, m)
+# define NDNBOOST_PP_FOR_188_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(189, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_189, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(189, s), p, o, m)
+# define NDNBOOST_PP_FOR_189_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(190, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_190, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(190, s), p, o, m)
+# define NDNBOOST_PP_FOR_190_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(191, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_191, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(191, s), p, o, m)
+# define NDNBOOST_PP_FOR_191_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(192, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_192, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(192, s), p, o, m)
+# define NDNBOOST_PP_FOR_192_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(193, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_193, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(193, s), p, o, m)
+# define NDNBOOST_PP_FOR_193_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(194, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_194, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(194, s), p, o, m)
+# define NDNBOOST_PP_FOR_194_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(195, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_195, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(195, s), p, o, m)
+# define NDNBOOST_PP_FOR_195_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(196, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_196, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(196, s), p, o, m)
+# define NDNBOOST_PP_FOR_196_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(197, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_197, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(197, s), p, o, m)
+# define NDNBOOST_PP_FOR_197_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(198, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_198, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(198, s), p, o, m)
+# define NDNBOOST_PP_FOR_198_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(199, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_199, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(199, s), p, o, m)
+# define NDNBOOST_PP_FOR_199_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(200, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_200, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(200, s), p, o, m)
+# define NDNBOOST_PP_FOR_200_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(201, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_201, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(201, s), p, o, m)
+# define NDNBOOST_PP_FOR_201_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(202, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_202, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(202, s), p, o, m)
+# define NDNBOOST_PP_FOR_202_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(203, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_203, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(203, s), p, o, m)
+# define NDNBOOST_PP_FOR_203_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(204, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_204, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(204, s), p, o, m)
+# define NDNBOOST_PP_FOR_204_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(205, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_205, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(205, s), p, o, m)
+# define NDNBOOST_PP_FOR_205_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(206, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_206, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(206, s), p, o, m)
+# define NDNBOOST_PP_FOR_206_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(207, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_207, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(207, s), p, o, m)
+# define NDNBOOST_PP_FOR_207_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(208, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_208, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(208, s), p, o, m)
+# define NDNBOOST_PP_FOR_208_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(209, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_209, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(209, s), p, o, m)
+# define NDNBOOST_PP_FOR_209_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(210, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_210, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(210, s), p, o, m)
+# define NDNBOOST_PP_FOR_210_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(211, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_211, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(211, s), p, o, m)
+# define NDNBOOST_PP_FOR_211_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(212, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_212, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(212, s), p, o, m)
+# define NDNBOOST_PP_FOR_212_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(213, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_213, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(213, s), p, o, m)
+# define NDNBOOST_PP_FOR_213_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(214, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_214, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(214, s), p, o, m)
+# define NDNBOOST_PP_FOR_214_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(215, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_215, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(215, s), p, o, m)
+# define NDNBOOST_PP_FOR_215_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(216, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_216, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(216, s), p, o, m)
+# define NDNBOOST_PP_FOR_216_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(217, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_217, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(217, s), p, o, m)
+# define NDNBOOST_PP_FOR_217_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(218, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_218, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(218, s), p, o, m)
+# define NDNBOOST_PP_FOR_218_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(219, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_219, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(219, s), p, o, m)
+# define NDNBOOST_PP_FOR_219_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(220, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_220, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(220, s), p, o, m)
+# define NDNBOOST_PP_FOR_220_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(221, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_221, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(221, s), p, o, m)
+# define NDNBOOST_PP_FOR_221_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(222, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_222, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(222, s), p, o, m)
+# define NDNBOOST_PP_FOR_222_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(223, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_223, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(223, s), p, o, m)
+# define NDNBOOST_PP_FOR_223_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(224, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_224, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(224, s), p, o, m)
+# define NDNBOOST_PP_FOR_224_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(225, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_225, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(225, s), p, o, m)
+# define NDNBOOST_PP_FOR_225_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(226, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_226, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(226, s), p, o, m)
+# define NDNBOOST_PP_FOR_226_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(227, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_227, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(227, s), p, o, m)
+# define NDNBOOST_PP_FOR_227_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(228, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_228, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(228, s), p, o, m)
+# define NDNBOOST_PP_FOR_228_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(229, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_229, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(229, s), p, o, m)
+# define NDNBOOST_PP_FOR_229_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(230, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_230, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(230, s), p, o, m)
+# define NDNBOOST_PP_FOR_230_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(231, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_231, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(231, s), p, o, m)
+# define NDNBOOST_PP_FOR_231_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(232, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_232, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(232, s), p, o, m)
+# define NDNBOOST_PP_FOR_232_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(233, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_233, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(233, s), p, o, m)
+# define NDNBOOST_PP_FOR_233_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(234, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_234, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(234, s), p, o, m)
+# define NDNBOOST_PP_FOR_234_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(235, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_235, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(235, s), p, o, m)
+# define NDNBOOST_PP_FOR_235_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(236, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_236, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(236, s), p, o, m)
+# define NDNBOOST_PP_FOR_236_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(237, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_237, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(237, s), p, o, m)
+# define NDNBOOST_PP_FOR_237_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(238, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_238, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(238, s), p, o, m)
+# define NDNBOOST_PP_FOR_238_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(239, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_239, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(239, s), p, o, m)
+# define NDNBOOST_PP_FOR_239_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(240, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_240, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(240, s), p, o, m)
+# define NDNBOOST_PP_FOR_240_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(241, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_241, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(241, s), p, o, m)
+# define NDNBOOST_PP_FOR_241_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(242, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_242, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(242, s), p, o, m)
+# define NDNBOOST_PP_FOR_242_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(243, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_243, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(243, s), p, o, m)
+# define NDNBOOST_PP_FOR_243_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(244, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_244, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(244, s), p, o, m)
+# define NDNBOOST_PP_FOR_244_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(245, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_245, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(245, s), p, o, m)
+# define NDNBOOST_PP_FOR_245_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(246, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_246, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(246, s), p, o, m)
+# define NDNBOOST_PP_FOR_246_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(247, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_247, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(247, s), p, o, m)
+# define NDNBOOST_PP_FOR_247_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(248, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_248, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(248, s), p, o, m)
+# define NDNBOOST_PP_FOR_248_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(249, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_249, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(249, s), p, o, m)
+# define NDNBOOST_PP_FOR_249_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(250, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_250, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(250, s), p, o, m)
+# define NDNBOOST_PP_FOR_250_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(251, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_251, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(251, s), p, o, m)
+# define NDNBOOST_PP_FOR_251_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(252, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_252, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(252, s), p, o, m)
+# define NDNBOOST_PP_FOR_252_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(253, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_253, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(253, s), p, o, m)
+# define NDNBOOST_PP_FOR_253_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(254, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_254, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(254, s), p, o, m)
+# define NDNBOOST_PP_FOR_254_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(255, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_255, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(255, s), p, o, m)
+# define NDNBOOST_PP_FOR_255_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(256, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_256, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(256, s), p, o, m)
+# define NDNBOOST_PP_FOR_256_C(c, s, p, o, m) NDNBOOST_PP_IIF(c, m, NDNBOOST_PP_TUPLE_EAT_2)(257, s) NDNBOOST_PP_IIF(c, NDNBOOST_PP_FOR_257, NDNBOOST_PP_TUPLE_EAT_4)(NDNBOOST_PP_EXPR_IIF(c, o)(257, s), p, o, m)
 #
 # endif
diff --git a/include/ndnboost/preprocessor/repetition/detail/msvc/for.hpp b/include/ndnboost/preprocessor/repetition/detail/msvc/for.hpp
index 1d09508..cdefb69 100644
--- a/include/ndnboost/preprocessor/repetition/detail/msvc/for.hpp
+++ b/include/ndnboost/preprocessor/repetition/detail/msvc/for.hpp
@@ -11,267 +11,267 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_REPETITION_DETAIL_MSVC_FOR_HPP
-# define BOOST_PREPROCESSOR_REPETITION_DETAIL_MSVC_FOR_HPP
+# ifndef NDNBOOST_PREPROCESSOR_REPETITION_DETAIL_MSVC_FOR_HPP
+# define NDNBOOST_PREPROCESSOR_REPETITION_DETAIL_MSVC_FOR_HPP
 #
 # include <ndnboost/preprocessor/control/if.hpp>
 # include <ndnboost/preprocessor/tuple/eat.hpp>
 #
-# define BOOST_PP_FOR_1(s, p, o, m) BOOST_PP_IF(p(2, s), m, BOOST_PP_TUPLE_EAT_2)(2, s) BOOST_PP_IF(p(2, s), BOOST_PP_FOR_2, BOOST_PP_TUPLE_EAT_4)(o(2, s), p, o, m)
-# define BOOST_PP_FOR_2(s, p, o, m) BOOST_PP_IF(p(3, s), m, BOOST_PP_TUPLE_EAT_2)(3, s) BOOST_PP_IF(p(3, s), BOOST_PP_FOR_3, BOOST_PP_TUPLE_EAT_4)(o(3, s), p, o, m)
-# define BOOST_PP_FOR_3(s, p, o, m) BOOST_PP_IF(p(4, s), m, BOOST_PP_TUPLE_EAT_2)(4, s) BOOST_PP_IF(p(4, s), BOOST_PP_FOR_4, BOOST_PP_TUPLE_EAT_4)(o(4, s), p, o, m)
-# define BOOST_PP_FOR_4(s, p, o, m) BOOST_PP_IF(p(5, s), m, BOOST_PP_TUPLE_EAT_2)(5, s) BOOST_PP_IF(p(5, s), BOOST_PP_FOR_5, BOOST_PP_TUPLE_EAT_4)(o(5, s), p, o, m)
-# define BOOST_PP_FOR_5(s, p, o, m) BOOST_PP_IF(p(6, s), m, BOOST_PP_TUPLE_EAT_2)(6, s) BOOST_PP_IF(p(6, s), BOOST_PP_FOR_6, BOOST_PP_TUPLE_EAT_4)(o(6, s), p, o, m)
-# define BOOST_PP_FOR_6(s, p, o, m) BOOST_PP_IF(p(7, s), m, BOOST_PP_TUPLE_EAT_2)(7, s) BOOST_PP_IF(p(7, s), BOOST_PP_FOR_7, BOOST_PP_TUPLE_EAT_4)(o(7, s), p, o, m)
-# define BOOST_PP_FOR_7(s, p, o, m) BOOST_PP_IF(p(8, s), m, BOOST_PP_TUPLE_EAT_2)(8, s) BOOST_PP_IF(p(8, s), BOOST_PP_FOR_8, BOOST_PP_TUPLE_EAT_4)(o(8, s), p, o, m)
-# define BOOST_PP_FOR_8(s, p, o, m) BOOST_PP_IF(p(9, s), m, BOOST_PP_TUPLE_EAT_2)(9, s) BOOST_PP_IF(p(9, s), BOOST_PP_FOR_9, BOOST_PP_TUPLE_EAT_4)(o(9, s), p, o, m)
-# define BOOST_PP_FOR_9(s, p, o, m) BOOST_PP_IF(p(10, s), m, BOOST_PP_TUPLE_EAT_2)(10, s) BOOST_PP_IF(p(10, s), BOOST_PP_FOR_10, BOOST_PP_TUPLE_EAT_4)(o(10, s), p, o, m)
-# define BOOST_PP_FOR_10(s, p, o, m) BOOST_PP_IF(p(11, s), m, BOOST_PP_TUPLE_EAT_2)(11, s) BOOST_PP_IF(p(11, s), BOOST_PP_FOR_11, BOOST_PP_TUPLE_EAT_4)(o(11, s), p, o, m)
-# define BOOST_PP_FOR_11(s, p, o, m) BOOST_PP_IF(p(12, s), m, BOOST_PP_TUPLE_EAT_2)(12, s) BOOST_PP_IF(p(12, s), BOOST_PP_FOR_12, BOOST_PP_TUPLE_EAT_4)(o(12, s), p, o, m)
-# define BOOST_PP_FOR_12(s, p, o, m) BOOST_PP_IF(p(13, s), m, BOOST_PP_TUPLE_EAT_2)(13, s) BOOST_PP_IF(p(13, s), BOOST_PP_FOR_13, BOOST_PP_TUPLE_EAT_4)(o(13, s), p, o, m)
-# define BOOST_PP_FOR_13(s, p, o, m) BOOST_PP_IF(p(14, s), m, BOOST_PP_TUPLE_EAT_2)(14, s) BOOST_PP_IF(p(14, s), BOOST_PP_FOR_14, BOOST_PP_TUPLE_EAT_4)(o(14, s), p, o, m)
-# define BOOST_PP_FOR_14(s, p, o, m) BOOST_PP_IF(p(15, s), m, BOOST_PP_TUPLE_EAT_2)(15, s) BOOST_PP_IF(p(15, s), BOOST_PP_FOR_15, BOOST_PP_TUPLE_EAT_4)(o(15, s), p, o, m)
-# define BOOST_PP_FOR_15(s, p, o, m) BOOST_PP_IF(p(16, s), m, BOOST_PP_TUPLE_EAT_2)(16, s) BOOST_PP_IF(p(16, s), BOOST_PP_FOR_16, BOOST_PP_TUPLE_EAT_4)(o(16, s), p, o, m)
-# define BOOST_PP_FOR_16(s, p, o, m) BOOST_PP_IF(p(17, s), m, BOOST_PP_TUPLE_EAT_2)(17, s) BOOST_PP_IF(p(17, s), BOOST_PP_FOR_17, BOOST_PP_TUPLE_EAT_4)(o(17, s), p, o, m)
-# define BOOST_PP_FOR_17(s, p, o, m) BOOST_PP_IF(p(18, s), m, BOOST_PP_TUPLE_EAT_2)(18, s) BOOST_PP_IF(p(18, s), BOOST_PP_FOR_18, BOOST_PP_TUPLE_EAT_4)(o(18, s), p, o, m)
-# define BOOST_PP_FOR_18(s, p, o, m) BOOST_PP_IF(p(19, s), m, BOOST_PP_TUPLE_EAT_2)(19, s) BOOST_PP_IF(p(19, s), BOOST_PP_FOR_19, BOOST_PP_TUPLE_EAT_4)(o(19, s), p, o, m)
-# define BOOST_PP_FOR_19(s, p, o, m) BOOST_PP_IF(p(20, s), m, BOOST_PP_TUPLE_EAT_2)(20, s) BOOST_PP_IF(p(20, s), BOOST_PP_FOR_20, BOOST_PP_TUPLE_EAT_4)(o(20, s), p, o, m)
-# define BOOST_PP_FOR_20(s, p, o, m) BOOST_PP_IF(p(21, s), m, BOOST_PP_TUPLE_EAT_2)(21, s) BOOST_PP_IF(p(21, s), BOOST_PP_FOR_21, BOOST_PP_TUPLE_EAT_4)(o(21, s), p, o, m)
-# define BOOST_PP_FOR_21(s, p, o, m) BOOST_PP_IF(p(22, s), m, BOOST_PP_TUPLE_EAT_2)(22, s) BOOST_PP_IF(p(22, s), BOOST_PP_FOR_22, BOOST_PP_TUPLE_EAT_4)(o(22, s), p, o, m)
-# define BOOST_PP_FOR_22(s, p, o, m) BOOST_PP_IF(p(23, s), m, BOOST_PP_TUPLE_EAT_2)(23, s) BOOST_PP_IF(p(23, s), BOOST_PP_FOR_23, BOOST_PP_TUPLE_EAT_4)(o(23, s), p, o, m)
-# define BOOST_PP_FOR_23(s, p, o, m) BOOST_PP_IF(p(24, s), m, BOOST_PP_TUPLE_EAT_2)(24, s) BOOST_PP_IF(p(24, s), BOOST_PP_FOR_24, BOOST_PP_TUPLE_EAT_4)(o(24, s), p, o, m)
-# define BOOST_PP_FOR_24(s, p, o, m) BOOST_PP_IF(p(25, s), m, BOOST_PP_TUPLE_EAT_2)(25, s) BOOST_PP_IF(p(25, s), BOOST_PP_FOR_25, BOOST_PP_TUPLE_EAT_4)(o(25, s), p, o, m)
-# define BOOST_PP_FOR_25(s, p, o, m) BOOST_PP_IF(p(26, s), m, BOOST_PP_TUPLE_EAT_2)(26, s) BOOST_PP_IF(p(26, s), BOOST_PP_FOR_26, BOOST_PP_TUPLE_EAT_4)(o(26, s), p, o, m)
-# define BOOST_PP_FOR_26(s, p, o, m) BOOST_PP_IF(p(27, s), m, BOOST_PP_TUPLE_EAT_2)(27, s) BOOST_PP_IF(p(27, s), BOOST_PP_FOR_27, BOOST_PP_TUPLE_EAT_4)(o(27, s), p, o, m)
-# define BOOST_PP_FOR_27(s, p, o, m) BOOST_PP_IF(p(28, s), m, BOOST_PP_TUPLE_EAT_2)(28, s) BOOST_PP_IF(p(28, s), BOOST_PP_FOR_28, BOOST_PP_TUPLE_EAT_4)(o(28, s), p, o, m)
-# define BOOST_PP_FOR_28(s, p, o, m) BOOST_PP_IF(p(29, s), m, BOOST_PP_TUPLE_EAT_2)(29, s) BOOST_PP_IF(p(29, s), BOOST_PP_FOR_29, BOOST_PP_TUPLE_EAT_4)(o(29, s), p, o, m)
-# define BOOST_PP_FOR_29(s, p, o, m) BOOST_PP_IF(p(30, s), m, BOOST_PP_TUPLE_EAT_2)(30, s) BOOST_PP_IF(p(30, s), BOOST_PP_FOR_30, BOOST_PP_TUPLE_EAT_4)(o(30, s), p, o, m)
-# define BOOST_PP_FOR_30(s, p, o, m) BOOST_PP_IF(p(31, s), m, BOOST_PP_TUPLE_EAT_2)(31, s) BOOST_PP_IF(p(31, s), BOOST_PP_FOR_31, BOOST_PP_TUPLE_EAT_4)(o(31, s), p, o, m)
-# define BOOST_PP_FOR_31(s, p, o, m) BOOST_PP_IF(p(32, s), m, BOOST_PP_TUPLE_EAT_2)(32, s) BOOST_PP_IF(p(32, s), BOOST_PP_FOR_32, BOOST_PP_TUPLE_EAT_4)(o(32, s), p, o, m)
-# define BOOST_PP_FOR_32(s, p, o, m) BOOST_PP_IF(p(33, s), m, BOOST_PP_TUPLE_EAT_2)(33, s) BOOST_PP_IF(p(33, s), BOOST_PP_FOR_33, BOOST_PP_TUPLE_EAT_4)(o(33, s), p, o, m)
-# define BOOST_PP_FOR_33(s, p, o, m) BOOST_PP_IF(p(34, s), m, BOOST_PP_TUPLE_EAT_2)(34, s) BOOST_PP_IF(p(34, s), BOOST_PP_FOR_34, BOOST_PP_TUPLE_EAT_4)(o(34, s), p, o, m)
-# define BOOST_PP_FOR_34(s, p, o, m) BOOST_PP_IF(p(35, s), m, BOOST_PP_TUPLE_EAT_2)(35, s) BOOST_PP_IF(p(35, s), BOOST_PP_FOR_35, BOOST_PP_TUPLE_EAT_4)(o(35, s), p, o, m)
-# define BOOST_PP_FOR_35(s, p, o, m) BOOST_PP_IF(p(36, s), m, BOOST_PP_TUPLE_EAT_2)(36, s) BOOST_PP_IF(p(36, s), BOOST_PP_FOR_36, BOOST_PP_TUPLE_EAT_4)(o(36, s), p, o, m)
-# define BOOST_PP_FOR_36(s, p, o, m) BOOST_PP_IF(p(37, s), m, BOOST_PP_TUPLE_EAT_2)(37, s) BOOST_PP_IF(p(37, s), BOOST_PP_FOR_37, BOOST_PP_TUPLE_EAT_4)(o(37, s), p, o, m)
-# define BOOST_PP_FOR_37(s, p, o, m) BOOST_PP_IF(p(38, s), m, BOOST_PP_TUPLE_EAT_2)(38, s) BOOST_PP_IF(p(38, s), BOOST_PP_FOR_38, BOOST_PP_TUPLE_EAT_4)(o(38, s), p, o, m)
-# define BOOST_PP_FOR_38(s, p, o, m) BOOST_PP_IF(p(39, s), m, BOOST_PP_TUPLE_EAT_2)(39, s) BOOST_PP_IF(p(39, s), BOOST_PP_FOR_39, BOOST_PP_TUPLE_EAT_4)(o(39, s), p, o, m)
-# define BOOST_PP_FOR_39(s, p, o, m) BOOST_PP_IF(p(40, s), m, BOOST_PP_TUPLE_EAT_2)(40, s) BOOST_PP_IF(p(40, s), BOOST_PP_FOR_40, BOOST_PP_TUPLE_EAT_4)(o(40, s), p, o, m)
-# define BOOST_PP_FOR_40(s, p, o, m) BOOST_PP_IF(p(41, s), m, BOOST_PP_TUPLE_EAT_2)(41, s) BOOST_PP_IF(p(41, s), BOOST_PP_FOR_41, BOOST_PP_TUPLE_EAT_4)(o(41, s), p, o, m)
-# define BOOST_PP_FOR_41(s, p, o, m) BOOST_PP_IF(p(42, s), m, BOOST_PP_TUPLE_EAT_2)(42, s) BOOST_PP_IF(p(42, s), BOOST_PP_FOR_42, BOOST_PP_TUPLE_EAT_4)(o(42, s), p, o, m)
-# define BOOST_PP_FOR_42(s, p, o, m) BOOST_PP_IF(p(43, s), m, BOOST_PP_TUPLE_EAT_2)(43, s) BOOST_PP_IF(p(43, s), BOOST_PP_FOR_43, BOOST_PP_TUPLE_EAT_4)(o(43, s), p, o, m)
-# define BOOST_PP_FOR_43(s, p, o, m) BOOST_PP_IF(p(44, s), m, BOOST_PP_TUPLE_EAT_2)(44, s) BOOST_PP_IF(p(44, s), BOOST_PP_FOR_44, BOOST_PP_TUPLE_EAT_4)(o(44, s), p, o, m)
-# define BOOST_PP_FOR_44(s, p, o, m) BOOST_PP_IF(p(45, s), m, BOOST_PP_TUPLE_EAT_2)(45, s) BOOST_PP_IF(p(45, s), BOOST_PP_FOR_45, BOOST_PP_TUPLE_EAT_4)(o(45, s), p, o, m)
-# define BOOST_PP_FOR_45(s, p, o, m) BOOST_PP_IF(p(46, s), m, BOOST_PP_TUPLE_EAT_2)(46, s) BOOST_PP_IF(p(46, s), BOOST_PP_FOR_46, BOOST_PP_TUPLE_EAT_4)(o(46, s), p, o, m)
-# define BOOST_PP_FOR_46(s, p, o, m) BOOST_PP_IF(p(47, s), m, BOOST_PP_TUPLE_EAT_2)(47, s) BOOST_PP_IF(p(47, s), BOOST_PP_FOR_47, BOOST_PP_TUPLE_EAT_4)(o(47, s), p, o, m)
-# define BOOST_PP_FOR_47(s, p, o, m) BOOST_PP_IF(p(48, s), m, BOOST_PP_TUPLE_EAT_2)(48, s) BOOST_PP_IF(p(48, s), BOOST_PP_FOR_48, BOOST_PP_TUPLE_EAT_4)(o(48, s), p, o, m)
-# define BOOST_PP_FOR_48(s, p, o, m) BOOST_PP_IF(p(49, s), m, BOOST_PP_TUPLE_EAT_2)(49, s) BOOST_PP_IF(p(49, s), BOOST_PP_FOR_49, BOOST_PP_TUPLE_EAT_4)(o(49, s), p, o, m)
-# define BOOST_PP_FOR_49(s, p, o, m) BOOST_PP_IF(p(50, s), m, BOOST_PP_TUPLE_EAT_2)(50, s) BOOST_PP_IF(p(50, s), BOOST_PP_FOR_50, BOOST_PP_TUPLE_EAT_4)(o(50, s), p, o, m)
-# define BOOST_PP_FOR_50(s, p, o, m) BOOST_PP_IF(p(51, s), m, BOOST_PP_TUPLE_EAT_2)(51, s) BOOST_PP_IF(p(51, s), BOOST_PP_FOR_51, BOOST_PP_TUPLE_EAT_4)(o(51, s), p, o, m)
-# define BOOST_PP_FOR_51(s, p, o, m) BOOST_PP_IF(p(52, s), m, BOOST_PP_TUPLE_EAT_2)(52, s) BOOST_PP_IF(p(52, s), BOOST_PP_FOR_52, BOOST_PP_TUPLE_EAT_4)(o(52, s), p, o, m)
-# define BOOST_PP_FOR_52(s, p, o, m) BOOST_PP_IF(p(53, s), m, BOOST_PP_TUPLE_EAT_2)(53, s) BOOST_PP_IF(p(53, s), BOOST_PP_FOR_53, BOOST_PP_TUPLE_EAT_4)(o(53, s), p, o, m)
-# define BOOST_PP_FOR_53(s, p, o, m) BOOST_PP_IF(p(54, s), m, BOOST_PP_TUPLE_EAT_2)(54, s) BOOST_PP_IF(p(54, s), BOOST_PP_FOR_54, BOOST_PP_TUPLE_EAT_4)(o(54, s), p, o, m)
-# define BOOST_PP_FOR_54(s, p, o, m) BOOST_PP_IF(p(55, s), m, BOOST_PP_TUPLE_EAT_2)(55, s) BOOST_PP_IF(p(55, s), BOOST_PP_FOR_55, BOOST_PP_TUPLE_EAT_4)(o(55, s), p, o, m)
-# define BOOST_PP_FOR_55(s, p, o, m) BOOST_PP_IF(p(56, s), m, BOOST_PP_TUPLE_EAT_2)(56, s) BOOST_PP_IF(p(56, s), BOOST_PP_FOR_56, BOOST_PP_TUPLE_EAT_4)(o(56, s), p, o, m)
-# define BOOST_PP_FOR_56(s, p, o, m) BOOST_PP_IF(p(57, s), m, BOOST_PP_TUPLE_EAT_2)(57, s) BOOST_PP_IF(p(57, s), BOOST_PP_FOR_57, BOOST_PP_TUPLE_EAT_4)(o(57, s), p, o, m)
-# define BOOST_PP_FOR_57(s, p, o, m) BOOST_PP_IF(p(58, s), m, BOOST_PP_TUPLE_EAT_2)(58, s) BOOST_PP_IF(p(58, s), BOOST_PP_FOR_58, BOOST_PP_TUPLE_EAT_4)(o(58, s), p, o, m)
-# define BOOST_PP_FOR_58(s, p, o, m) BOOST_PP_IF(p(59, s), m, BOOST_PP_TUPLE_EAT_2)(59, s) BOOST_PP_IF(p(59, s), BOOST_PP_FOR_59, BOOST_PP_TUPLE_EAT_4)(o(59, s), p, o, m)
-# define BOOST_PP_FOR_59(s, p, o, m) BOOST_PP_IF(p(60, s), m, BOOST_PP_TUPLE_EAT_2)(60, s) BOOST_PP_IF(p(60, s), BOOST_PP_FOR_60, BOOST_PP_TUPLE_EAT_4)(o(60, s), p, o, m)
-# define BOOST_PP_FOR_60(s, p, o, m) BOOST_PP_IF(p(61, s), m, BOOST_PP_TUPLE_EAT_2)(61, s) BOOST_PP_IF(p(61, s), BOOST_PP_FOR_61, BOOST_PP_TUPLE_EAT_4)(o(61, s), p, o, m)
-# define BOOST_PP_FOR_61(s, p, o, m) BOOST_PP_IF(p(62, s), m, BOOST_PP_TUPLE_EAT_2)(62, s) BOOST_PP_IF(p(62, s), BOOST_PP_FOR_62, BOOST_PP_TUPLE_EAT_4)(o(62, s), p, o, m)
-# define BOOST_PP_FOR_62(s, p, o, m) BOOST_PP_IF(p(63, s), m, BOOST_PP_TUPLE_EAT_2)(63, s) BOOST_PP_IF(p(63, s), BOOST_PP_FOR_63, BOOST_PP_TUPLE_EAT_4)(o(63, s), p, o, m)
-# define BOOST_PP_FOR_63(s, p, o, m) BOOST_PP_IF(p(64, s), m, BOOST_PP_TUPLE_EAT_2)(64, s) BOOST_PP_IF(p(64, s), BOOST_PP_FOR_64, BOOST_PP_TUPLE_EAT_4)(o(64, s), p, o, m)
-# define BOOST_PP_FOR_64(s, p, o, m) BOOST_PP_IF(p(65, s), m, BOOST_PP_TUPLE_EAT_2)(65, s) BOOST_PP_IF(p(65, s), BOOST_PP_FOR_65, BOOST_PP_TUPLE_EAT_4)(o(65, s), p, o, m)
-# define BOOST_PP_FOR_65(s, p, o, m) BOOST_PP_IF(p(66, s), m, BOOST_PP_TUPLE_EAT_2)(66, s) BOOST_PP_IF(p(66, s), BOOST_PP_FOR_66, BOOST_PP_TUPLE_EAT_4)(o(66, s), p, o, m)
-# define BOOST_PP_FOR_66(s, p, o, m) BOOST_PP_IF(p(67, s), m, BOOST_PP_TUPLE_EAT_2)(67, s) BOOST_PP_IF(p(67, s), BOOST_PP_FOR_67, BOOST_PP_TUPLE_EAT_4)(o(67, s), p, o, m)
-# define BOOST_PP_FOR_67(s, p, o, m) BOOST_PP_IF(p(68, s), m, BOOST_PP_TUPLE_EAT_2)(68, s) BOOST_PP_IF(p(68, s), BOOST_PP_FOR_68, BOOST_PP_TUPLE_EAT_4)(o(68, s), p, o, m)
-# define BOOST_PP_FOR_68(s, p, o, m) BOOST_PP_IF(p(69, s), m, BOOST_PP_TUPLE_EAT_2)(69, s) BOOST_PP_IF(p(69, s), BOOST_PP_FOR_69, BOOST_PP_TUPLE_EAT_4)(o(69, s), p, o, m)
-# define BOOST_PP_FOR_69(s, p, o, m) BOOST_PP_IF(p(70, s), m, BOOST_PP_TUPLE_EAT_2)(70, s) BOOST_PP_IF(p(70, s), BOOST_PP_FOR_70, BOOST_PP_TUPLE_EAT_4)(o(70, s), p, o, m)
-# define BOOST_PP_FOR_70(s, p, o, m) BOOST_PP_IF(p(71, s), m, BOOST_PP_TUPLE_EAT_2)(71, s) BOOST_PP_IF(p(71, s), BOOST_PP_FOR_71, BOOST_PP_TUPLE_EAT_4)(o(71, s), p, o, m)
-# define BOOST_PP_FOR_71(s, p, o, m) BOOST_PP_IF(p(72, s), m, BOOST_PP_TUPLE_EAT_2)(72, s) BOOST_PP_IF(p(72, s), BOOST_PP_FOR_72, BOOST_PP_TUPLE_EAT_4)(o(72, s), p, o, m)
-# define BOOST_PP_FOR_72(s, p, o, m) BOOST_PP_IF(p(73, s), m, BOOST_PP_TUPLE_EAT_2)(73, s) BOOST_PP_IF(p(73, s), BOOST_PP_FOR_73, BOOST_PP_TUPLE_EAT_4)(o(73, s), p, o, m)
-# define BOOST_PP_FOR_73(s, p, o, m) BOOST_PP_IF(p(74, s), m, BOOST_PP_TUPLE_EAT_2)(74, s) BOOST_PP_IF(p(74, s), BOOST_PP_FOR_74, BOOST_PP_TUPLE_EAT_4)(o(74, s), p, o, m)
-# define BOOST_PP_FOR_74(s, p, o, m) BOOST_PP_IF(p(75, s), m, BOOST_PP_TUPLE_EAT_2)(75, s) BOOST_PP_IF(p(75, s), BOOST_PP_FOR_75, BOOST_PP_TUPLE_EAT_4)(o(75, s), p, o, m)
-# define BOOST_PP_FOR_75(s, p, o, m) BOOST_PP_IF(p(76, s), m, BOOST_PP_TUPLE_EAT_2)(76, s) BOOST_PP_IF(p(76, s), BOOST_PP_FOR_76, BOOST_PP_TUPLE_EAT_4)(o(76, s), p, o, m)
-# define BOOST_PP_FOR_76(s, p, o, m) BOOST_PP_IF(p(77, s), m, BOOST_PP_TUPLE_EAT_2)(77, s) BOOST_PP_IF(p(77, s), BOOST_PP_FOR_77, BOOST_PP_TUPLE_EAT_4)(o(77, s), p, o, m)
-# define BOOST_PP_FOR_77(s, p, o, m) BOOST_PP_IF(p(78, s), m, BOOST_PP_TUPLE_EAT_2)(78, s) BOOST_PP_IF(p(78, s), BOOST_PP_FOR_78, BOOST_PP_TUPLE_EAT_4)(o(78, s), p, o, m)
-# define BOOST_PP_FOR_78(s, p, o, m) BOOST_PP_IF(p(79, s), m, BOOST_PP_TUPLE_EAT_2)(79, s) BOOST_PP_IF(p(79, s), BOOST_PP_FOR_79, BOOST_PP_TUPLE_EAT_4)(o(79, s), p, o, m)
-# define BOOST_PP_FOR_79(s, p, o, m) BOOST_PP_IF(p(80, s), m, BOOST_PP_TUPLE_EAT_2)(80, s) BOOST_PP_IF(p(80, s), BOOST_PP_FOR_80, BOOST_PP_TUPLE_EAT_4)(o(80, s), p, o, m)
-# define BOOST_PP_FOR_80(s, p, o, m) BOOST_PP_IF(p(81, s), m, BOOST_PP_TUPLE_EAT_2)(81, s) BOOST_PP_IF(p(81, s), BOOST_PP_FOR_81, BOOST_PP_TUPLE_EAT_4)(o(81, s), p, o, m)
-# define BOOST_PP_FOR_81(s, p, o, m) BOOST_PP_IF(p(82, s), m, BOOST_PP_TUPLE_EAT_2)(82, s) BOOST_PP_IF(p(82, s), BOOST_PP_FOR_82, BOOST_PP_TUPLE_EAT_4)(o(82, s), p, o, m)
-# define BOOST_PP_FOR_82(s, p, o, m) BOOST_PP_IF(p(83, s), m, BOOST_PP_TUPLE_EAT_2)(83, s) BOOST_PP_IF(p(83, s), BOOST_PP_FOR_83, BOOST_PP_TUPLE_EAT_4)(o(83, s), p, o, m)
-# define BOOST_PP_FOR_83(s, p, o, m) BOOST_PP_IF(p(84, s), m, BOOST_PP_TUPLE_EAT_2)(84, s) BOOST_PP_IF(p(84, s), BOOST_PP_FOR_84, BOOST_PP_TUPLE_EAT_4)(o(84, s), p, o, m)
-# define BOOST_PP_FOR_84(s, p, o, m) BOOST_PP_IF(p(85, s), m, BOOST_PP_TUPLE_EAT_2)(85, s) BOOST_PP_IF(p(85, s), BOOST_PP_FOR_85, BOOST_PP_TUPLE_EAT_4)(o(85, s), p, o, m)
-# define BOOST_PP_FOR_85(s, p, o, m) BOOST_PP_IF(p(86, s), m, BOOST_PP_TUPLE_EAT_2)(86, s) BOOST_PP_IF(p(86, s), BOOST_PP_FOR_86, BOOST_PP_TUPLE_EAT_4)(o(86, s), p, o, m)
-# define BOOST_PP_FOR_86(s, p, o, m) BOOST_PP_IF(p(87, s), m, BOOST_PP_TUPLE_EAT_2)(87, s) BOOST_PP_IF(p(87, s), BOOST_PP_FOR_87, BOOST_PP_TUPLE_EAT_4)(o(87, s), p, o, m)
-# define BOOST_PP_FOR_87(s, p, o, m) BOOST_PP_IF(p(88, s), m, BOOST_PP_TUPLE_EAT_2)(88, s) BOOST_PP_IF(p(88, s), BOOST_PP_FOR_88, BOOST_PP_TUPLE_EAT_4)(o(88, s), p, o, m)
-# define BOOST_PP_FOR_88(s, p, o, m) BOOST_PP_IF(p(89, s), m, BOOST_PP_TUPLE_EAT_2)(89, s) BOOST_PP_IF(p(89, s), BOOST_PP_FOR_89, BOOST_PP_TUPLE_EAT_4)(o(89, s), p, o, m)
-# define BOOST_PP_FOR_89(s, p, o, m) BOOST_PP_IF(p(90, s), m, BOOST_PP_TUPLE_EAT_2)(90, s) BOOST_PP_IF(p(90, s), BOOST_PP_FOR_90, BOOST_PP_TUPLE_EAT_4)(o(90, s), p, o, m)
-# define BOOST_PP_FOR_90(s, p, o, m) BOOST_PP_IF(p(91, s), m, BOOST_PP_TUPLE_EAT_2)(91, s) BOOST_PP_IF(p(91, s), BOOST_PP_FOR_91, BOOST_PP_TUPLE_EAT_4)(o(91, s), p, o, m)
-# define BOOST_PP_FOR_91(s, p, o, m) BOOST_PP_IF(p(92, s), m, BOOST_PP_TUPLE_EAT_2)(92, s) BOOST_PP_IF(p(92, s), BOOST_PP_FOR_92, BOOST_PP_TUPLE_EAT_4)(o(92, s), p, o, m)
-# define BOOST_PP_FOR_92(s, p, o, m) BOOST_PP_IF(p(93, s), m, BOOST_PP_TUPLE_EAT_2)(93, s) BOOST_PP_IF(p(93, s), BOOST_PP_FOR_93, BOOST_PP_TUPLE_EAT_4)(o(93, s), p, o, m)
-# define BOOST_PP_FOR_93(s, p, o, m) BOOST_PP_IF(p(94, s), m, BOOST_PP_TUPLE_EAT_2)(94, s) BOOST_PP_IF(p(94, s), BOOST_PP_FOR_94, BOOST_PP_TUPLE_EAT_4)(o(94, s), p, o, m)
-# define BOOST_PP_FOR_94(s, p, o, m) BOOST_PP_IF(p(95, s), m, BOOST_PP_TUPLE_EAT_2)(95, s) BOOST_PP_IF(p(95, s), BOOST_PP_FOR_95, BOOST_PP_TUPLE_EAT_4)(o(95, s), p, o, m)
-# define BOOST_PP_FOR_95(s, p, o, m) BOOST_PP_IF(p(96, s), m, BOOST_PP_TUPLE_EAT_2)(96, s) BOOST_PP_IF(p(96, s), BOOST_PP_FOR_96, BOOST_PP_TUPLE_EAT_4)(o(96, s), p, o, m)
-# define BOOST_PP_FOR_96(s, p, o, m) BOOST_PP_IF(p(97, s), m, BOOST_PP_TUPLE_EAT_2)(97, s) BOOST_PP_IF(p(97, s), BOOST_PP_FOR_97, BOOST_PP_TUPLE_EAT_4)(o(97, s), p, o, m)
-# define BOOST_PP_FOR_97(s, p, o, m) BOOST_PP_IF(p(98, s), m, BOOST_PP_TUPLE_EAT_2)(98, s) BOOST_PP_IF(p(98, s), BOOST_PP_FOR_98, BOOST_PP_TUPLE_EAT_4)(o(98, s), p, o, m)
-# define BOOST_PP_FOR_98(s, p, o, m) BOOST_PP_IF(p(99, s), m, BOOST_PP_TUPLE_EAT_2)(99, s) BOOST_PP_IF(p(99, s), BOOST_PP_FOR_99, BOOST_PP_TUPLE_EAT_4)(o(99, s), p, o, m)
-# define BOOST_PP_FOR_99(s, p, o, m) BOOST_PP_IF(p(100, s), m, BOOST_PP_TUPLE_EAT_2)(100, s) BOOST_PP_IF(p(100, s), BOOST_PP_FOR_100, BOOST_PP_TUPLE_EAT_4)(o(100, s), p, o, m)
-# define BOOST_PP_FOR_100(s, p, o, m) BOOST_PP_IF(p(101, s), m, BOOST_PP_TUPLE_EAT_2)(101, s) BOOST_PP_IF(p(101, s), BOOST_PP_FOR_101, BOOST_PP_TUPLE_EAT_4)(o(101, s), p, o, m)
-# define BOOST_PP_FOR_101(s, p, o, m) BOOST_PP_IF(p(102, s), m, BOOST_PP_TUPLE_EAT_2)(102, s) BOOST_PP_IF(p(102, s), BOOST_PP_FOR_102, BOOST_PP_TUPLE_EAT_4)(o(102, s), p, o, m)
-# define BOOST_PP_FOR_102(s, p, o, m) BOOST_PP_IF(p(103, s), m, BOOST_PP_TUPLE_EAT_2)(103, s) BOOST_PP_IF(p(103, s), BOOST_PP_FOR_103, BOOST_PP_TUPLE_EAT_4)(o(103, s), p, o, m)
-# define BOOST_PP_FOR_103(s, p, o, m) BOOST_PP_IF(p(104, s), m, BOOST_PP_TUPLE_EAT_2)(104, s) BOOST_PP_IF(p(104, s), BOOST_PP_FOR_104, BOOST_PP_TUPLE_EAT_4)(o(104, s), p, o, m)
-# define BOOST_PP_FOR_104(s, p, o, m) BOOST_PP_IF(p(105, s), m, BOOST_PP_TUPLE_EAT_2)(105, s) BOOST_PP_IF(p(105, s), BOOST_PP_FOR_105, BOOST_PP_TUPLE_EAT_4)(o(105, s), p, o, m)
-# define BOOST_PP_FOR_105(s, p, o, m) BOOST_PP_IF(p(106, s), m, BOOST_PP_TUPLE_EAT_2)(106, s) BOOST_PP_IF(p(106, s), BOOST_PP_FOR_106, BOOST_PP_TUPLE_EAT_4)(o(106, s), p, o, m)
-# define BOOST_PP_FOR_106(s, p, o, m) BOOST_PP_IF(p(107, s), m, BOOST_PP_TUPLE_EAT_2)(107, s) BOOST_PP_IF(p(107, s), BOOST_PP_FOR_107, BOOST_PP_TUPLE_EAT_4)(o(107, s), p, o, m)
-# define BOOST_PP_FOR_107(s, p, o, m) BOOST_PP_IF(p(108, s), m, BOOST_PP_TUPLE_EAT_2)(108, s) BOOST_PP_IF(p(108, s), BOOST_PP_FOR_108, BOOST_PP_TUPLE_EAT_4)(o(108, s), p, o, m)
-# define BOOST_PP_FOR_108(s, p, o, m) BOOST_PP_IF(p(109, s), m, BOOST_PP_TUPLE_EAT_2)(109, s) BOOST_PP_IF(p(109, s), BOOST_PP_FOR_109, BOOST_PP_TUPLE_EAT_4)(o(109, s), p, o, m)
-# define BOOST_PP_FOR_109(s, p, o, m) BOOST_PP_IF(p(110, s), m, BOOST_PP_TUPLE_EAT_2)(110, s) BOOST_PP_IF(p(110, s), BOOST_PP_FOR_110, BOOST_PP_TUPLE_EAT_4)(o(110, s), p, o, m)
-# define BOOST_PP_FOR_110(s, p, o, m) BOOST_PP_IF(p(111, s), m, BOOST_PP_TUPLE_EAT_2)(111, s) BOOST_PP_IF(p(111, s), BOOST_PP_FOR_111, BOOST_PP_TUPLE_EAT_4)(o(111, s), p, o, m)
-# define BOOST_PP_FOR_111(s, p, o, m) BOOST_PP_IF(p(112, s), m, BOOST_PP_TUPLE_EAT_2)(112, s) BOOST_PP_IF(p(112, s), BOOST_PP_FOR_112, BOOST_PP_TUPLE_EAT_4)(o(112, s), p, o, m)
-# define BOOST_PP_FOR_112(s, p, o, m) BOOST_PP_IF(p(113, s), m, BOOST_PP_TUPLE_EAT_2)(113, s) BOOST_PP_IF(p(113, s), BOOST_PP_FOR_113, BOOST_PP_TUPLE_EAT_4)(o(113, s), p, o, m)
-# define BOOST_PP_FOR_113(s, p, o, m) BOOST_PP_IF(p(114, s), m, BOOST_PP_TUPLE_EAT_2)(114, s) BOOST_PP_IF(p(114, s), BOOST_PP_FOR_114, BOOST_PP_TUPLE_EAT_4)(o(114, s), p, o, m)
-# define BOOST_PP_FOR_114(s, p, o, m) BOOST_PP_IF(p(115, s), m, BOOST_PP_TUPLE_EAT_2)(115, s) BOOST_PP_IF(p(115, s), BOOST_PP_FOR_115, BOOST_PP_TUPLE_EAT_4)(o(115, s), p, o, m)
-# define BOOST_PP_FOR_115(s, p, o, m) BOOST_PP_IF(p(116, s), m, BOOST_PP_TUPLE_EAT_2)(116, s) BOOST_PP_IF(p(116, s), BOOST_PP_FOR_116, BOOST_PP_TUPLE_EAT_4)(o(116, s), p, o, m)
-# define BOOST_PP_FOR_116(s, p, o, m) BOOST_PP_IF(p(117, s), m, BOOST_PP_TUPLE_EAT_2)(117, s) BOOST_PP_IF(p(117, s), BOOST_PP_FOR_117, BOOST_PP_TUPLE_EAT_4)(o(117, s), p, o, m)
-# define BOOST_PP_FOR_117(s, p, o, m) BOOST_PP_IF(p(118, s), m, BOOST_PP_TUPLE_EAT_2)(118, s) BOOST_PP_IF(p(118, s), BOOST_PP_FOR_118, BOOST_PP_TUPLE_EAT_4)(o(118, s), p, o, m)
-# define BOOST_PP_FOR_118(s, p, o, m) BOOST_PP_IF(p(119, s), m, BOOST_PP_TUPLE_EAT_2)(119, s) BOOST_PP_IF(p(119, s), BOOST_PP_FOR_119, BOOST_PP_TUPLE_EAT_4)(o(119, s), p, o, m)
-# define BOOST_PP_FOR_119(s, p, o, m) BOOST_PP_IF(p(120, s), m, BOOST_PP_TUPLE_EAT_2)(120, s) BOOST_PP_IF(p(120, s), BOOST_PP_FOR_120, BOOST_PP_TUPLE_EAT_4)(o(120, s), p, o, m)
-# define BOOST_PP_FOR_120(s, p, o, m) BOOST_PP_IF(p(121, s), m, BOOST_PP_TUPLE_EAT_2)(121, s) BOOST_PP_IF(p(121, s), BOOST_PP_FOR_121, BOOST_PP_TUPLE_EAT_4)(o(121, s), p, o, m)
-# define BOOST_PP_FOR_121(s, p, o, m) BOOST_PP_IF(p(122, s), m, BOOST_PP_TUPLE_EAT_2)(122, s) BOOST_PP_IF(p(122, s), BOOST_PP_FOR_122, BOOST_PP_TUPLE_EAT_4)(o(122, s), p, o, m)
-# define BOOST_PP_FOR_122(s, p, o, m) BOOST_PP_IF(p(123, s), m, BOOST_PP_TUPLE_EAT_2)(123, s) BOOST_PP_IF(p(123, s), BOOST_PP_FOR_123, BOOST_PP_TUPLE_EAT_4)(o(123, s), p, o, m)
-# define BOOST_PP_FOR_123(s, p, o, m) BOOST_PP_IF(p(124, s), m, BOOST_PP_TUPLE_EAT_2)(124, s) BOOST_PP_IF(p(124, s), BOOST_PP_FOR_124, BOOST_PP_TUPLE_EAT_4)(o(124, s), p, o, m)
-# define BOOST_PP_FOR_124(s, p, o, m) BOOST_PP_IF(p(125, s), m, BOOST_PP_TUPLE_EAT_2)(125, s) BOOST_PP_IF(p(125, s), BOOST_PP_FOR_125, BOOST_PP_TUPLE_EAT_4)(o(125, s), p, o, m)
-# define BOOST_PP_FOR_125(s, p, o, m) BOOST_PP_IF(p(126, s), m, BOOST_PP_TUPLE_EAT_2)(126, s) BOOST_PP_IF(p(126, s), BOOST_PP_FOR_126, BOOST_PP_TUPLE_EAT_4)(o(126, s), p, o, m)
-# define BOOST_PP_FOR_126(s, p, o, m) BOOST_PP_IF(p(127, s), m, BOOST_PP_TUPLE_EAT_2)(127, s) BOOST_PP_IF(p(127, s), BOOST_PP_FOR_127, BOOST_PP_TUPLE_EAT_4)(o(127, s), p, o, m)
-# define BOOST_PP_FOR_127(s, p, o, m) BOOST_PP_IF(p(128, s), m, BOOST_PP_TUPLE_EAT_2)(128, s) BOOST_PP_IF(p(128, s), BOOST_PP_FOR_128, BOOST_PP_TUPLE_EAT_4)(o(128, s), p, o, m)
-# define BOOST_PP_FOR_128(s, p, o, m) BOOST_PP_IF(p(129, s), m, BOOST_PP_TUPLE_EAT_2)(129, s) BOOST_PP_IF(p(129, s), BOOST_PP_FOR_129, BOOST_PP_TUPLE_EAT_4)(o(129, s), p, o, m)
-# define BOOST_PP_FOR_129(s, p, o, m) BOOST_PP_IF(p(130, s), m, BOOST_PP_TUPLE_EAT_2)(130, s) BOOST_PP_IF(p(130, s), BOOST_PP_FOR_130, BOOST_PP_TUPLE_EAT_4)(o(130, s), p, o, m)
-# define BOOST_PP_FOR_130(s, p, o, m) BOOST_PP_IF(p(131, s), m, BOOST_PP_TUPLE_EAT_2)(131, s) BOOST_PP_IF(p(131, s), BOOST_PP_FOR_131, BOOST_PP_TUPLE_EAT_4)(o(131, s), p, o, m)
-# define BOOST_PP_FOR_131(s, p, o, m) BOOST_PP_IF(p(132, s), m, BOOST_PP_TUPLE_EAT_2)(132, s) BOOST_PP_IF(p(132, s), BOOST_PP_FOR_132, BOOST_PP_TUPLE_EAT_4)(o(132, s), p, o, m)
-# define BOOST_PP_FOR_132(s, p, o, m) BOOST_PP_IF(p(133, s), m, BOOST_PP_TUPLE_EAT_2)(133, s) BOOST_PP_IF(p(133, s), BOOST_PP_FOR_133, BOOST_PP_TUPLE_EAT_4)(o(133, s), p, o, m)
-# define BOOST_PP_FOR_133(s, p, o, m) BOOST_PP_IF(p(134, s), m, BOOST_PP_TUPLE_EAT_2)(134, s) BOOST_PP_IF(p(134, s), BOOST_PP_FOR_134, BOOST_PP_TUPLE_EAT_4)(o(134, s), p, o, m)
-# define BOOST_PP_FOR_134(s, p, o, m) BOOST_PP_IF(p(135, s), m, BOOST_PP_TUPLE_EAT_2)(135, s) BOOST_PP_IF(p(135, s), BOOST_PP_FOR_135, BOOST_PP_TUPLE_EAT_4)(o(135, s), p, o, m)
-# define BOOST_PP_FOR_135(s, p, o, m) BOOST_PP_IF(p(136, s), m, BOOST_PP_TUPLE_EAT_2)(136, s) BOOST_PP_IF(p(136, s), BOOST_PP_FOR_136, BOOST_PP_TUPLE_EAT_4)(o(136, s), p, o, m)
-# define BOOST_PP_FOR_136(s, p, o, m) BOOST_PP_IF(p(137, s), m, BOOST_PP_TUPLE_EAT_2)(137, s) BOOST_PP_IF(p(137, s), BOOST_PP_FOR_137, BOOST_PP_TUPLE_EAT_4)(o(137, s), p, o, m)
-# define BOOST_PP_FOR_137(s, p, o, m) BOOST_PP_IF(p(138, s), m, BOOST_PP_TUPLE_EAT_2)(138, s) BOOST_PP_IF(p(138, s), BOOST_PP_FOR_138, BOOST_PP_TUPLE_EAT_4)(o(138, s), p, o, m)
-# define BOOST_PP_FOR_138(s, p, o, m) BOOST_PP_IF(p(139, s), m, BOOST_PP_TUPLE_EAT_2)(139, s) BOOST_PP_IF(p(139, s), BOOST_PP_FOR_139, BOOST_PP_TUPLE_EAT_4)(o(139, s), p, o, m)
-# define BOOST_PP_FOR_139(s, p, o, m) BOOST_PP_IF(p(140, s), m, BOOST_PP_TUPLE_EAT_2)(140, s) BOOST_PP_IF(p(140, s), BOOST_PP_FOR_140, BOOST_PP_TUPLE_EAT_4)(o(140, s), p, o, m)
-# define BOOST_PP_FOR_140(s, p, o, m) BOOST_PP_IF(p(141, s), m, BOOST_PP_TUPLE_EAT_2)(141, s) BOOST_PP_IF(p(141, s), BOOST_PP_FOR_141, BOOST_PP_TUPLE_EAT_4)(o(141, s), p, o, m)
-# define BOOST_PP_FOR_141(s, p, o, m) BOOST_PP_IF(p(142, s), m, BOOST_PP_TUPLE_EAT_2)(142, s) BOOST_PP_IF(p(142, s), BOOST_PP_FOR_142, BOOST_PP_TUPLE_EAT_4)(o(142, s), p, o, m)
-# define BOOST_PP_FOR_142(s, p, o, m) BOOST_PP_IF(p(143, s), m, BOOST_PP_TUPLE_EAT_2)(143, s) BOOST_PP_IF(p(143, s), BOOST_PP_FOR_143, BOOST_PP_TUPLE_EAT_4)(o(143, s), p, o, m)
-# define BOOST_PP_FOR_143(s, p, o, m) BOOST_PP_IF(p(144, s), m, BOOST_PP_TUPLE_EAT_2)(144, s) BOOST_PP_IF(p(144, s), BOOST_PP_FOR_144, BOOST_PP_TUPLE_EAT_4)(o(144, s), p, o, m)
-# define BOOST_PP_FOR_144(s, p, o, m) BOOST_PP_IF(p(145, s), m, BOOST_PP_TUPLE_EAT_2)(145, s) BOOST_PP_IF(p(145, s), BOOST_PP_FOR_145, BOOST_PP_TUPLE_EAT_4)(o(145, s), p, o, m)
-# define BOOST_PP_FOR_145(s, p, o, m) BOOST_PP_IF(p(146, s), m, BOOST_PP_TUPLE_EAT_2)(146, s) BOOST_PP_IF(p(146, s), BOOST_PP_FOR_146, BOOST_PP_TUPLE_EAT_4)(o(146, s), p, o, m)
-# define BOOST_PP_FOR_146(s, p, o, m) BOOST_PP_IF(p(147, s), m, BOOST_PP_TUPLE_EAT_2)(147, s) BOOST_PP_IF(p(147, s), BOOST_PP_FOR_147, BOOST_PP_TUPLE_EAT_4)(o(147, s), p, o, m)
-# define BOOST_PP_FOR_147(s, p, o, m) BOOST_PP_IF(p(148, s), m, BOOST_PP_TUPLE_EAT_2)(148, s) BOOST_PP_IF(p(148, s), BOOST_PP_FOR_148, BOOST_PP_TUPLE_EAT_4)(o(148, s), p, o, m)
-# define BOOST_PP_FOR_148(s, p, o, m) BOOST_PP_IF(p(149, s), m, BOOST_PP_TUPLE_EAT_2)(149, s) BOOST_PP_IF(p(149, s), BOOST_PP_FOR_149, BOOST_PP_TUPLE_EAT_4)(o(149, s), p, o, m)
-# define BOOST_PP_FOR_149(s, p, o, m) BOOST_PP_IF(p(150, s), m, BOOST_PP_TUPLE_EAT_2)(150, s) BOOST_PP_IF(p(150, s), BOOST_PP_FOR_150, BOOST_PP_TUPLE_EAT_4)(o(150, s), p, o, m)
-# define BOOST_PP_FOR_150(s, p, o, m) BOOST_PP_IF(p(151, s), m, BOOST_PP_TUPLE_EAT_2)(151, s) BOOST_PP_IF(p(151, s), BOOST_PP_FOR_151, BOOST_PP_TUPLE_EAT_4)(o(151, s), p, o, m)
-# define BOOST_PP_FOR_151(s, p, o, m) BOOST_PP_IF(p(152, s), m, BOOST_PP_TUPLE_EAT_2)(152, s) BOOST_PP_IF(p(152, s), BOOST_PP_FOR_152, BOOST_PP_TUPLE_EAT_4)(o(152, s), p, o, m)
-# define BOOST_PP_FOR_152(s, p, o, m) BOOST_PP_IF(p(153, s), m, BOOST_PP_TUPLE_EAT_2)(153, s) BOOST_PP_IF(p(153, s), BOOST_PP_FOR_153, BOOST_PP_TUPLE_EAT_4)(o(153, s), p, o, m)
-# define BOOST_PP_FOR_153(s, p, o, m) BOOST_PP_IF(p(154, s), m, BOOST_PP_TUPLE_EAT_2)(154, s) BOOST_PP_IF(p(154, s), BOOST_PP_FOR_154, BOOST_PP_TUPLE_EAT_4)(o(154, s), p, o, m)
-# define BOOST_PP_FOR_154(s, p, o, m) BOOST_PP_IF(p(155, s), m, BOOST_PP_TUPLE_EAT_2)(155, s) BOOST_PP_IF(p(155, s), BOOST_PP_FOR_155, BOOST_PP_TUPLE_EAT_4)(o(155, s), p, o, m)
-# define BOOST_PP_FOR_155(s, p, o, m) BOOST_PP_IF(p(156, s), m, BOOST_PP_TUPLE_EAT_2)(156, s) BOOST_PP_IF(p(156, s), BOOST_PP_FOR_156, BOOST_PP_TUPLE_EAT_4)(o(156, s), p, o, m)
-# define BOOST_PP_FOR_156(s, p, o, m) BOOST_PP_IF(p(157, s), m, BOOST_PP_TUPLE_EAT_2)(157, s) BOOST_PP_IF(p(157, s), BOOST_PP_FOR_157, BOOST_PP_TUPLE_EAT_4)(o(157, s), p, o, m)
-# define BOOST_PP_FOR_157(s, p, o, m) BOOST_PP_IF(p(158, s), m, BOOST_PP_TUPLE_EAT_2)(158, s) BOOST_PP_IF(p(158, s), BOOST_PP_FOR_158, BOOST_PP_TUPLE_EAT_4)(o(158, s), p, o, m)
-# define BOOST_PP_FOR_158(s, p, o, m) BOOST_PP_IF(p(159, s), m, BOOST_PP_TUPLE_EAT_2)(159, s) BOOST_PP_IF(p(159, s), BOOST_PP_FOR_159, BOOST_PP_TUPLE_EAT_4)(o(159, s), p, o, m)
-# define BOOST_PP_FOR_159(s, p, o, m) BOOST_PP_IF(p(160, s), m, BOOST_PP_TUPLE_EAT_2)(160, s) BOOST_PP_IF(p(160, s), BOOST_PP_FOR_160, BOOST_PP_TUPLE_EAT_4)(o(160, s), p, o, m)
-# define BOOST_PP_FOR_160(s, p, o, m) BOOST_PP_IF(p(161, s), m, BOOST_PP_TUPLE_EAT_2)(161, s) BOOST_PP_IF(p(161, s), BOOST_PP_FOR_161, BOOST_PP_TUPLE_EAT_4)(o(161, s), p, o, m)
-# define BOOST_PP_FOR_161(s, p, o, m) BOOST_PP_IF(p(162, s), m, BOOST_PP_TUPLE_EAT_2)(162, s) BOOST_PP_IF(p(162, s), BOOST_PP_FOR_162, BOOST_PP_TUPLE_EAT_4)(o(162, s), p, o, m)
-# define BOOST_PP_FOR_162(s, p, o, m) BOOST_PP_IF(p(163, s), m, BOOST_PP_TUPLE_EAT_2)(163, s) BOOST_PP_IF(p(163, s), BOOST_PP_FOR_163, BOOST_PP_TUPLE_EAT_4)(o(163, s), p, o, m)
-# define BOOST_PP_FOR_163(s, p, o, m) BOOST_PP_IF(p(164, s), m, BOOST_PP_TUPLE_EAT_2)(164, s) BOOST_PP_IF(p(164, s), BOOST_PP_FOR_164, BOOST_PP_TUPLE_EAT_4)(o(164, s), p, o, m)
-# define BOOST_PP_FOR_164(s, p, o, m) BOOST_PP_IF(p(165, s), m, BOOST_PP_TUPLE_EAT_2)(165, s) BOOST_PP_IF(p(165, s), BOOST_PP_FOR_165, BOOST_PP_TUPLE_EAT_4)(o(165, s), p, o, m)
-# define BOOST_PP_FOR_165(s, p, o, m) BOOST_PP_IF(p(166, s), m, BOOST_PP_TUPLE_EAT_2)(166, s) BOOST_PP_IF(p(166, s), BOOST_PP_FOR_166, BOOST_PP_TUPLE_EAT_4)(o(166, s), p, o, m)
-# define BOOST_PP_FOR_166(s, p, o, m) BOOST_PP_IF(p(167, s), m, BOOST_PP_TUPLE_EAT_2)(167, s) BOOST_PP_IF(p(167, s), BOOST_PP_FOR_167, BOOST_PP_TUPLE_EAT_4)(o(167, s), p, o, m)
-# define BOOST_PP_FOR_167(s, p, o, m) BOOST_PP_IF(p(168, s), m, BOOST_PP_TUPLE_EAT_2)(168, s) BOOST_PP_IF(p(168, s), BOOST_PP_FOR_168, BOOST_PP_TUPLE_EAT_4)(o(168, s), p, o, m)
-# define BOOST_PP_FOR_168(s, p, o, m) BOOST_PP_IF(p(169, s), m, BOOST_PP_TUPLE_EAT_2)(169, s) BOOST_PP_IF(p(169, s), BOOST_PP_FOR_169, BOOST_PP_TUPLE_EAT_4)(o(169, s), p, o, m)
-# define BOOST_PP_FOR_169(s, p, o, m) BOOST_PP_IF(p(170, s), m, BOOST_PP_TUPLE_EAT_2)(170, s) BOOST_PP_IF(p(170, s), BOOST_PP_FOR_170, BOOST_PP_TUPLE_EAT_4)(o(170, s), p, o, m)
-# define BOOST_PP_FOR_170(s, p, o, m) BOOST_PP_IF(p(171, s), m, BOOST_PP_TUPLE_EAT_2)(171, s) BOOST_PP_IF(p(171, s), BOOST_PP_FOR_171, BOOST_PP_TUPLE_EAT_4)(o(171, s), p, o, m)
-# define BOOST_PP_FOR_171(s, p, o, m) BOOST_PP_IF(p(172, s), m, BOOST_PP_TUPLE_EAT_2)(172, s) BOOST_PP_IF(p(172, s), BOOST_PP_FOR_172, BOOST_PP_TUPLE_EAT_4)(o(172, s), p, o, m)
-# define BOOST_PP_FOR_172(s, p, o, m) BOOST_PP_IF(p(173, s), m, BOOST_PP_TUPLE_EAT_2)(173, s) BOOST_PP_IF(p(173, s), BOOST_PP_FOR_173, BOOST_PP_TUPLE_EAT_4)(o(173, s), p, o, m)
-# define BOOST_PP_FOR_173(s, p, o, m) BOOST_PP_IF(p(174, s), m, BOOST_PP_TUPLE_EAT_2)(174, s) BOOST_PP_IF(p(174, s), BOOST_PP_FOR_174, BOOST_PP_TUPLE_EAT_4)(o(174, s), p, o, m)
-# define BOOST_PP_FOR_174(s, p, o, m) BOOST_PP_IF(p(175, s), m, BOOST_PP_TUPLE_EAT_2)(175, s) BOOST_PP_IF(p(175, s), BOOST_PP_FOR_175, BOOST_PP_TUPLE_EAT_4)(o(175, s), p, o, m)
-# define BOOST_PP_FOR_175(s, p, o, m) BOOST_PP_IF(p(176, s), m, BOOST_PP_TUPLE_EAT_2)(176, s) BOOST_PP_IF(p(176, s), BOOST_PP_FOR_176, BOOST_PP_TUPLE_EAT_4)(o(176, s), p, o, m)
-# define BOOST_PP_FOR_176(s, p, o, m) BOOST_PP_IF(p(177, s), m, BOOST_PP_TUPLE_EAT_2)(177, s) BOOST_PP_IF(p(177, s), BOOST_PP_FOR_177, BOOST_PP_TUPLE_EAT_4)(o(177, s), p, o, m)
-# define BOOST_PP_FOR_177(s, p, o, m) BOOST_PP_IF(p(178, s), m, BOOST_PP_TUPLE_EAT_2)(178, s) BOOST_PP_IF(p(178, s), BOOST_PP_FOR_178, BOOST_PP_TUPLE_EAT_4)(o(178, s), p, o, m)
-# define BOOST_PP_FOR_178(s, p, o, m) BOOST_PP_IF(p(179, s), m, BOOST_PP_TUPLE_EAT_2)(179, s) BOOST_PP_IF(p(179, s), BOOST_PP_FOR_179, BOOST_PP_TUPLE_EAT_4)(o(179, s), p, o, m)
-# define BOOST_PP_FOR_179(s, p, o, m) BOOST_PP_IF(p(180, s), m, BOOST_PP_TUPLE_EAT_2)(180, s) BOOST_PP_IF(p(180, s), BOOST_PP_FOR_180, BOOST_PP_TUPLE_EAT_4)(o(180, s), p, o, m)
-# define BOOST_PP_FOR_180(s, p, o, m) BOOST_PP_IF(p(181, s), m, BOOST_PP_TUPLE_EAT_2)(181, s) BOOST_PP_IF(p(181, s), BOOST_PP_FOR_181, BOOST_PP_TUPLE_EAT_4)(o(181, s), p, o, m)
-# define BOOST_PP_FOR_181(s, p, o, m) BOOST_PP_IF(p(182, s), m, BOOST_PP_TUPLE_EAT_2)(182, s) BOOST_PP_IF(p(182, s), BOOST_PP_FOR_182, BOOST_PP_TUPLE_EAT_4)(o(182, s), p, o, m)
-# define BOOST_PP_FOR_182(s, p, o, m) BOOST_PP_IF(p(183, s), m, BOOST_PP_TUPLE_EAT_2)(183, s) BOOST_PP_IF(p(183, s), BOOST_PP_FOR_183, BOOST_PP_TUPLE_EAT_4)(o(183, s), p, o, m)
-# define BOOST_PP_FOR_183(s, p, o, m) BOOST_PP_IF(p(184, s), m, BOOST_PP_TUPLE_EAT_2)(184, s) BOOST_PP_IF(p(184, s), BOOST_PP_FOR_184, BOOST_PP_TUPLE_EAT_4)(o(184, s), p, o, m)
-# define BOOST_PP_FOR_184(s, p, o, m) BOOST_PP_IF(p(185, s), m, BOOST_PP_TUPLE_EAT_2)(185, s) BOOST_PP_IF(p(185, s), BOOST_PP_FOR_185, BOOST_PP_TUPLE_EAT_4)(o(185, s), p, o, m)
-# define BOOST_PP_FOR_185(s, p, o, m) BOOST_PP_IF(p(186, s), m, BOOST_PP_TUPLE_EAT_2)(186, s) BOOST_PP_IF(p(186, s), BOOST_PP_FOR_186, BOOST_PP_TUPLE_EAT_4)(o(186, s), p, o, m)
-# define BOOST_PP_FOR_186(s, p, o, m) BOOST_PP_IF(p(187, s), m, BOOST_PP_TUPLE_EAT_2)(187, s) BOOST_PP_IF(p(187, s), BOOST_PP_FOR_187, BOOST_PP_TUPLE_EAT_4)(o(187, s), p, o, m)
-# define BOOST_PP_FOR_187(s, p, o, m) BOOST_PP_IF(p(188, s), m, BOOST_PP_TUPLE_EAT_2)(188, s) BOOST_PP_IF(p(188, s), BOOST_PP_FOR_188, BOOST_PP_TUPLE_EAT_4)(o(188, s), p, o, m)
-# define BOOST_PP_FOR_188(s, p, o, m) BOOST_PP_IF(p(189, s), m, BOOST_PP_TUPLE_EAT_2)(189, s) BOOST_PP_IF(p(189, s), BOOST_PP_FOR_189, BOOST_PP_TUPLE_EAT_4)(o(189, s), p, o, m)
-# define BOOST_PP_FOR_189(s, p, o, m) BOOST_PP_IF(p(190, s), m, BOOST_PP_TUPLE_EAT_2)(190, s) BOOST_PP_IF(p(190, s), BOOST_PP_FOR_190, BOOST_PP_TUPLE_EAT_4)(o(190, s), p, o, m)
-# define BOOST_PP_FOR_190(s, p, o, m) BOOST_PP_IF(p(191, s), m, BOOST_PP_TUPLE_EAT_2)(191, s) BOOST_PP_IF(p(191, s), BOOST_PP_FOR_191, BOOST_PP_TUPLE_EAT_4)(o(191, s), p, o, m)
-# define BOOST_PP_FOR_191(s, p, o, m) BOOST_PP_IF(p(192, s), m, BOOST_PP_TUPLE_EAT_2)(192, s) BOOST_PP_IF(p(192, s), BOOST_PP_FOR_192, BOOST_PP_TUPLE_EAT_4)(o(192, s), p, o, m)
-# define BOOST_PP_FOR_192(s, p, o, m) BOOST_PP_IF(p(193, s), m, BOOST_PP_TUPLE_EAT_2)(193, s) BOOST_PP_IF(p(193, s), BOOST_PP_FOR_193, BOOST_PP_TUPLE_EAT_4)(o(193, s), p, o, m)
-# define BOOST_PP_FOR_193(s, p, o, m) BOOST_PP_IF(p(194, s), m, BOOST_PP_TUPLE_EAT_2)(194, s) BOOST_PP_IF(p(194, s), BOOST_PP_FOR_194, BOOST_PP_TUPLE_EAT_4)(o(194, s), p, o, m)
-# define BOOST_PP_FOR_194(s, p, o, m) BOOST_PP_IF(p(195, s), m, BOOST_PP_TUPLE_EAT_2)(195, s) BOOST_PP_IF(p(195, s), BOOST_PP_FOR_195, BOOST_PP_TUPLE_EAT_4)(o(195, s), p, o, m)
-# define BOOST_PP_FOR_195(s, p, o, m) BOOST_PP_IF(p(196, s), m, BOOST_PP_TUPLE_EAT_2)(196, s) BOOST_PP_IF(p(196, s), BOOST_PP_FOR_196, BOOST_PP_TUPLE_EAT_4)(o(196, s), p, o, m)
-# define BOOST_PP_FOR_196(s, p, o, m) BOOST_PP_IF(p(197, s), m, BOOST_PP_TUPLE_EAT_2)(197, s) BOOST_PP_IF(p(197, s), BOOST_PP_FOR_197, BOOST_PP_TUPLE_EAT_4)(o(197, s), p, o, m)
-# define BOOST_PP_FOR_197(s, p, o, m) BOOST_PP_IF(p(198, s), m, BOOST_PP_TUPLE_EAT_2)(198, s) BOOST_PP_IF(p(198, s), BOOST_PP_FOR_198, BOOST_PP_TUPLE_EAT_4)(o(198, s), p, o, m)
-# define BOOST_PP_FOR_198(s, p, o, m) BOOST_PP_IF(p(199, s), m, BOOST_PP_TUPLE_EAT_2)(199, s) BOOST_PP_IF(p(199, s), BOOST_PP_FOR_199, BOOST_PP_TUPLE_EAT_4)(o(199, s), p, o, m)
-# define BOOST_PP_FOR_199(s, p, o, m) BOOST_PP_IF(p(200, s), m, BOOST_PP_TUPLE_EAT_2)(200, s) BOOST_PP_IF(p(200, s), BOOST_PP_FOR_200, BOOST_PP_TUPLE_EAT_4)(o(200, s), p, o, m)
-# define BOOST_PP_FOR_200(s, p, o, m) BOOST_PP_IF(p(201, s), m, BOOST_PP_TUPLE_EAT_2)(201, s) BOOST_PP_IF(p(201, s), BOOST_PP_FOR_201, BOOST_PP_TUPLE_EAT_4)(o(201, s), p, o, m)
-# define BOOST_PP_FOR_201(s, p, o, m) BOOST_PP_IF(p(202, s), m, BOOST_PP_TUPLE_EAT_2)(202, s) BOOST_PP_IF(p(202, s), BOOST_PP_FOR_202, BOOST_PP_TUPLE_EAT_4)(o(202, s), p, o, m)
-# define BOOST_PP_FOR_202(s, p, o, m) BOOST_PP_IF(p(203, s), m, BOOST_PP_TUPLE_EAT_2)(203, s) BOOST_PP_IF(p(203, s), BOOST_PP_FOR_203, BOOST_PP_TUPLE_EAT_4)(o(203, s), p, o, m)
-# define BOOST_PP_FOR_203(s, p, o, m) BOOST_PP_IF(p(204, s), m, BOOST_PP_TUPLE_EAT_2)(204, s) BOOST_PP_IF(p(204, s), BOOST_PP_FOR_204, BOOST_PP_TUPLE_EAT_4)(o(204, s), p, o, m)
-# define BOOST_PP_FOR_204(s, p, o, m) BOOST_PP_IF(p(205, s), m, BOOST_PP_TUPLE_EAT_2)(205, s) BOOST_PP_IF(p(205, s), BOOST_PP_FOR_205, BOOST_PP_TUPLE_EAT_4)(o(205, s), p, o, m)
-# define BOOST_PP_FOR_205(s, p, o, m) BOOST_PP_IF(p(206, s), m, BOOST_PP_TUPLE_EAT_2)(206, s) BOOST_PP_IF(p(206, s), BOOST_PP_FOR_206, BOOST_PP_TUPLE_EAT_4)(o(206, s), p, o, m)
-# define BOOST_PP_FOR_206(s, p, o, m) BOOST_PP_IF(p(207, s), m, BOOST_PP_TUPLE_EAT_2)(207, s) BOOST_PP_IF(p(207, s), BOOST_PP_FOR_207, BOOST_PP_TUPLE_EAT_4)(o(207, s), p, o, m)
-# define BOOST_PP_FOR_207(s, p, o, m) BOOST_PP_IF(p(208, s), m, BOOST_PP_TUPLE_EAT_2)(208, s) BOOST_PP_IF(p(208, s), BOOST_PP_FOR_208, BOOST_PP_TUPLE_EAT_4)(o(208, s), p, o, m)
-# define BOOST_PP_FOR_208(s, p, o, m) BOOST_PP_IF(p(209, s), m, BOOST_PP_TUPLE_EAT_2)(209, s) BOOST_PP_IF(p(209, s), BOOST_PP_FOR_209, BOOST_PP_TUPLE_EAT_4)(o(209, s), p, o, m)
-# define BOOST_PP_FOR_209(s, p, o, m) BOOST_PP_IF(p(210, s), m, BOOST_PP_TUPLE_EAT_2)(210, s) BOOST_PP_IF(p(210, s), BOOST_PP_FOR_210, BOOST_PP_TUPLE_EAT_4)(o(210, s), p, o, m)
-# define BOOST_PP_FOR_210(s, p, o, m) BOOST_PP_IF(p(211, s), m, BOOST_PP_TUPLE_EAT_2)(211, s) BOOST_PP_IF(p(211, s), BOOST_PP_FOR_211, BOOST_PP_TUPLE_EAT_4)(o(211, s), p, o, m)
-# define BOOST_PP_FOR_211(s, p, o, m) BOOST_PP_IF(p(212, s), m, BOOST_PP_TUPLE_EAT_2)(212, s) BOOST_PP_IF(p(212, s), BOOST_PP_FOR_212, BOOST_PP_TUPLE_EAT_4)(o(212, s), p, o, m)
-# define BOOST_PP_FOR_212(s, p, o, m) BOOST_PP_IF(p(213, s), m, BOOST_PP_TUPLE_EAT_2)(213, s) BOOST_PP_IF(p(213, s), BOOST_PP_FOR_213, BOOST_PP_TUPLE_EAT_4)(o(213, s), p, o, m)
-# define BOOST_PP_FOR_213(s, p, o, m) BOOST_PP_IF(p(214, s), m, BOOST_PP_TUPLE_EAT_2)(214, s) BOOST_PP_IF(p(214, s), BOOST_PP_FOR_214, BOOST_PP_TUPLE_EAT_4)(o(214, s), p, o, m)
-# define BOOST_PP_FOR_214(s, p, o, m) BOOST_PP_IF(p(215, s), m, BOOST_PP_TUPLE_EAT_2)(215, s) BOOST_PP_IF(p(215, s), BOOST_PP_FOR_215, BOOST_PP_TUPLE_EAT_4)(o(215, s), p, o, m)
-# define BOOST_PP_FOR_215(s, p, o, m) BOOST_PP_IF(p(216, s), m, BOOST_PP_TUPLE_EAT_2)(216, s) BOOST_PP_IF(p(216, s), BOOST_PP_FOR_216, BOOST_PP_TUPLE_EAT_4)(o(216, s), p, o, m)
-# define BOOST_PP_FOR_216(s, p, o, m) BOOST_PP_IF(p(217, s), m, BOOST_PP_TUPLE_EAT_2)(217, s) BOOST_PP_IF(p(217, s), BOOST_PP_FOR_217, BOOST_PP_TUPLE_EAT_4)(o(217, s), p, o, m)
-# define BOOST_PP_FOR_217(s, p, o, m) BOOST_PP_IF(p(218, s), m, BOOST_PP_TUPLE_EAT_2)(218, s) BOOST_PP_IF(p(218, s), BOOST_PP_FOR_218, BOOST_PP_TUPLE_EAT_4)(o(218, s), p, o, m)
-# define BOOST_PP_FOR_218(s, p, o, m) BOOST_PP_IF(p(219, s), m, BOOST_PP_TUPLE_EAT_2)(219, s) BOOST_PP_IF(p(219, s), BOOST_PP_FOR_219, BOOST_PP_TUPLE_EAT_4)(o(219, s), p, o, m)
-# define BOOST_PP_FOR_219(s, p, o, m) BOOST_PP_IF(p(220, s), m, BOOST_PP_TUPLE_EAT_2)(220, s) BOOST_PP_IF(p(220, s), BOOST_PP_FOR_220, BOOST_PP_TUPLE_EAT_4)(o(220, s), p, o, m)
-# define BOOST_PP_FOR_220(s, p, o, m) BOOST_PP_IF(p(221, s), m, BOOST_PP_TUPLE_EAT_2)(221, s) BOOST_PP_IF(p(221, s), BOOST_PP_FOR_221, BOOST_PP_TUPLE_EAT_4)(o(221, s), p, o, m)
-# define BOOST_PP_FOR_221(s, p, o, m) BOOST_PP_IF(p(222, s), m, BOOST_PP_TUPLE_EAT_2)(222, s) BOOST_PP_IF(p(222, s), BOOST_PP_FOR_222, BOOST_PP_TUPLE_EAT_4)(o(222, s), p, o, m)
-# define BOOST_PP_FOR_222(s, p, o, m) BOOST_PP_IF(p(223, s), m, BOOST_PP_TUPLE_EAT_2)(223, s) BOOST_PP_IF(p(223, s), BOOST_PP_FOR_223, BOOST_PP_TUPLE_EAT_4)(o(223, s), p, o, m)
-# define BOOST_PP_FOR_223(s, p, o, m) BOOST_PP_IF(p(224, s), m, BOOST_PP_TUPLE_EAT_2)(224, s) BOOST_PP_IF(p(224, s), BOOST_PP_FOR_224, BOOST_PP_TUPLE_EAT_4)(o(224, s), p, o, m)
-# define BOOST_PP_FOR_224(s, p, o, m) BOOST_PP_IF(p(225, s), m, BOOST_PP_TUPLE_EAT_2)(225, s) BOOST_PP_IF(p(225, s), BOOST_PP_FOR_225, BOOST_PP_TUPLE_EAT_4)(o(225, s), p, o, m)
-# define BOOST_PP_FOR_225(s, p, o, m) BOOST_PP_IF(p(226, s), m, BOOST_PP_TUPLE_EAT_2)(226, s) BOOST_PP_IF(p(226, s), BOOST_PP_FOR_226, BOOST_PP_TUPLE_EAT_4)(o(226, s), p, o, m)
-# define BOOST_PP_FOR_226(s, p, o, m) BOOST_PP_IF(p(227, s), m, BOOST_PP_TUPLE_EAT_2)(227, s) BOOST_PP_IF(p(227, s), BOOST_PP_FOR_227, BOOST_PP_TUPLE_EAT_4)(o(227, s), p, o, m)
-# define BOOST_PP_FOR_227(s, p, o, m) BOOST_PP_IF(p(228, s), m, BOOST_PP_TUPLE_EAT_2)(228, s) BOOST_PP_IF(p(228, s), BOOST_PP_FOR_228, BOOST_PP_TUPLE_EAT_4)(o(228, s), p, o, m)
-# define BOOST_PP_FOR_228(s, p, o, m) BOOST_PP_IF(p(229, s), m, BOOST_PP_TUPLE_EAT_2)(229, s) BOOST_PP_IF(p(229, s), BOOST_PP_FOR_229, BOOST_PP_TUPLE_EAT_4)(o(229, s), p, o, m)
-# define BOOST_PP_FOR_229(s, p, o, m) BOOST_PP_IF(p(230, s), m, BOOST_PP_TUPLE_EAT_2)(230, s) BOOST_PP_IF(p(230, s), BOOST_PP_FOR_230, BOOST_PP_TUPLE_EAT_4)(o(230, s), p, o, m)
-# define BOOST_PP_FOR_230(s, p, o, m) BOOST_PP_IF(p(231, s), m, BOOST_PP_TUPLE_EAT_2)(231, s) BOOST_PP_IF(p(231, s), BOOST_PP_FOR_231, BOOST_PP_TUPLE_EAT_4)(o(231, s), p, o, m)
-# define BOOST_PP_FOR_231(s, p, o, m) BOOST_PP_IF(p(232, s), m, BOOST_PP_TUPLE_EAT_2)(232, s) BOOST_PP_IF(p(232, s), BOOST_PP_FOR_232, BOOST_PP_TUPLE_EAT_4)(o(232, s), p, o, m)
-# define BOOST_PP_FOR_232(s, p, o, m) BOOST_PP_IF(p(233, s), m, BOOST_PP_TUPLE_EAT_2)(233, s) BOOST_PP_IF(p(233, s), BOOST_PP_FOR_233, BOOST_PP_TUPLE_EAT_4)(o(233, s), p, o, m)
-# define BOOST_PP_FOR_233(s, p, o, m) BOOST_PP_IF(p(234, s), m, BOOST_PP_TUPLE_EAT_2)(234, s) BOOST_PP_IF(p(234, s), BOOST_PP_FOR_234, BOOST_PP_TUPLE_EAT_4)(o(234, s), p, o, m)
-# define BOOST_PP_FOR_234(s, p, o, m) BOOST_PP_IF(p(235, s), m, BOOST_PP_TUPLE_EAT_2)(235, s) BOOST_PP_IF(p(235, s), BOOST_PP_FOR_235, BOOST_PP_TUPLE_EAT_4)(o(235, s), p, o, m)
-# define BOOST_PP_FOR_235(s, p, o, m) BOOST_PP_IF(p(236, s), m, BOOST_PP_TUPLE_EAT_2)(236, s) BOOST_PP_IF(p(236, s), BOOST_PP_FOR_236, BOOST_PP_TUPLE_EAT_4)(o(236, s), p, o, m)
-# define BOOST_PP_FOR_236(s, p, o, m) BOOST_PP_IF(p(237, s), m, BOOST_PP_TUPLE_EAT_2)(237, s) BOOST_PP_IF(p(237, s), BOOST_PP_FOR_237, BOOST_PP_TUPLE_EAT_4)(o(237, s), p, o, m)
-# define BOOST_PP_FOR_237(s, p, o, m) BOOST_PP_IF(p(238, s), m, BOOST_PP_TUPLE_EAT_2)(238, s) BOOST_PP_IF(p(238, s), BOOST_PP_FOR_238, BOOST_PP_TUPLE_EAT_4)(o(238, s), p, o, m)
-# define BOOST_PP_FOR_238(s, p, o, m) BOOST_PP_IF(p(239, s), m, BOOST_PP_TUPLE_EAT_2)(239, s) BOOST_PP_IF(p(239, s), BOOST_PP_FOR_239, BOOST_PP_TUPLE_EAT_4)(o(239, s), p, o, m)
-# define BOOST_PP_FOR_239(s, p, o, m) BOOST_PP_IF(p(240, s), m, BOOST_PP_TUPLE_EAT_2)(240, s) BOOST_PP_IF(p(240, s), BOOST_PP_FOR_240, BOOST_PP_TUPLE_EAT_4)(o(240, s), p, o, m)
-# define BOOST_PP_FOR_240(s, p, o, m) BOOST_PP_IF(p(241, s), m, BOOST_PP_TUPLE_EAT_2)(241, s) BOOST_PP_IF(p(241, s), BOOST_PP_FOR_241, BOOST_PP_TUPLE_EAT_4)(o(241, s), p, o, m)
-# define BOOST_PP_FOR_241(s, p, o, m) BOOST_PP_IF(p(242, s), m, BOOST_PP_TUPLE_EAT_2)(242, s) BOOST_PP_IF(p(242, s), BOOST_PP_FOR_242, BOOST_PP_TUPLE_EAT_4)(o(242, s), p, o, m)
-# define BOOST_PP_FOR_242(s, p, o, m) BOOST_PP_IF(p(243, s), m, BOOST_PP_TUPLE_EAT_2)(243, s) BOOST_PP_IF(p(243, s), BOOST_PP_FOR_243, BOOST_PP_TUPLE_EAT_4)(o(243, s), p, o, m)
-# define BOOST_PP_FOR_243(s, p, o, m) BOOST_PP_IF(p(244, s), m, BOOST_PP_TUPLE_EAT_2)(244, s) BOOST_PP_IF(p(244, s), BOOST_PP_FOR_244, BOOST_PP_TUPLE_EAT_4)(o(244, s), p, o, m)
-# define BOOST_PP_FOR_244(s, p, o, m) BOOST_PP_IF(p(245, s), m, BOOST_PP_TUPLE_EAT_2)(245, s) BOOST_PP_IF(p(245, s), BOOST_PP_FOR_245, BOOST_PP_TUPLE_EAT_4)(o(245, s), p, o, m)
-# define BOOST_PP_FOR_245(s, p, o, m) BOOST_PP_IF(p(246, s), m, BOOST_PP_TUPLE_EAT_2)(246, s) BOOST_PP_IF(p(246, s), BOOST_PP_FOR_246, BOOST_PP_TUPLE_EAT_4)(o(246, s), p, o, m)
-# define BOOST_PP_FOR_246(s, p, o, m) BOOST_PP_IF(p(247, s), m, BOOST_PP_TUPLE_EAT_2)(247, s) BOOST_PP_IF(p(247, s), BOOST_PP_FOR_247, BOOST_PP_TUPLE_EAT_4)(o(247, s), p, o, m)
-# define BOOST_PP_FOR_247(s, p, o, m) BOOST_PP_IF(p(248, s), m, BOOST_PP_TUPLE_EAT_2)(248, s) BOOST_PP_IF(p(248, s), BOOST_PP_FOR_248, BOOST_PP_TUPLE_EAT_4)(o(248, s), p, o, m)
-# define BOOST_PP_FOR_248(s, p, o, m) BOOST_PP_IF(p(249, s), m, BOOST_PP_TUPLE_EAT_2)(249, s) BOOST_PP_IF(p(249, s), BOOST_PP_FOR_249, BOOST_PP_TUPLE_EAT_4)(o(249, s), p, o, m)
-# define BOOST_PP_FOR_249(s, p, o, m) BOOST_PP_IF(p(250, s), m, BOOST_PP_TUPLE_EAT_2)(250, s) BOOST_PP_IF(p(250, s), BOOST_PP_FOR_250, BOOST_PP_TUPLE_EAT_4)(o(250, s), p, o, m)
-# define BOOST_PP_FOR_250(s, p, o, m) BOOST_PP_IF(p(251, s), m, BOOST_PP_TUPLE_EAT_2)(251, s) BOOST_PP_IF(p(251, s), BOOST_PP_FOR_251, BOOST_PP_TUPLE_EAT_4)(o(251, s), p, o, m)
-# define BOOST_PP_FOR_251(s, p, o, m) BOOST_PP_IF(p(252, s), m, BOOST_PP_TUPLE_EAT_2)(252, s) BOOST_PP_IF(p(252, s), BOOST_PP_FOR_252, BOOST_PP_TUPLE_EAT_4)(o(252, s), p, o, m)
-# define BOOST_PP_FOR_252(s, p, o, m) BOOST_PP_IF(p(253, s), m, BOOST_PP_TUPLE_EAT_2)(253, s) BOOST_PP_IF(p(253, s), BOOST_PP_FOR_253, BOOST_PP_TUPLE_EAT_4)(o(253, s), p, o, m)
-# define BOOST_PP_FOR_253(s, p, o, m) BOOST_PP_IF(p(254, s), m, BOOST_PP_TUPLE_EAT_2)(254, s) BOOST_PP_IF(p(254, s), BOOST_PP_FOR_254, BOOST_PP_TUPLE_EAT_4)(o(254, s), p, o, m)
-# define BOOST_PP_FOR_254(s, p, o, m) BOOST_PP_IF(p(255, s), m, BOOST_PP_TUPLE_EAT_2)(255, s) BOOST_PP_IF(p(255, s), BOOST_PP_FOR_255, BOOST_PP_TUPLE_EAT_4)(o(255, s), p, o, m)
-# define BOOST_PP_FOR_255(s, p, o, m) BOOST_PP_IF(p(256, s), m, BOOST_PP_TUPLE_EAT_2)(256, s) BOOST_PP_IF(p(256, s), BOOST_PP_FOR_256, BOOST_PP_TUPLE_EAT_4)(o(256, s), p, o, m)
-# define BOOST_PP_FOR_256(s, p, o, m) BOOST_PP_IF(p(257, s), m, BOOST_PP_TUPLE_EAT_2)(257, s) BOOST_PP_IF(p(257, s), BOOST_PP_FOR_257, BOOST_PP_TUPLE_EAT_4)(o(257, s), p, o, m)
+# define NDNBOOST_PP_FOR_1(s, p, o, m) NDNBOOST_PP_IF(p(2, s), m, NDNBOOST_PP_TUPLE_EAT_2)(2, s) NDNBOOST_PP_IF(p(2, s), NDNBOOST_PP_FOR_2, NDNBOOST_PP_TUPLE_EAT_4)(o(2, s), p, o, m)
+# define NDNBOOST_PP_FOR_2(s, p, o, m) NDNBOOST_PP_IF(p(3, s), m, NDNBOOST_PP_TUPLE_EAT_2)(3, s) NDNBOOST_PP_IF(p(3, s), NDNBOOST_PP_FOR_3, NDNBOOST_PP_TUPLE_EAT_4)(o(3, s), p, o, m)
+# define NDNBOOST_PP_FOR_3(s, p, o, m) NDNBOOST_PP_IF(p(4, s), m, NDNBOOST_PP_TUPLE_EAT_2)(4, s) NDNBOOST_PP_IF(p(4, s), NDNBOOST_PP_FOR_4, NDNBOOST_PP_TUPLE_EAT_4)(o(4, s), p, o, m)
+# define NDNBOOST_PP_FOR_4(s, p, o, m) NDNBOOST_PP_IF(p(5, s), m, NDNBOOST_PP_TUPLE_EAT_2)(5, s) NDNBOOST_PP_IF(p(5, s), NDNBOOST_PP_FOR_5, NDNBOOST_PP_TUPLE_EAT_4)(o(5, s), p, o, m)
+# define NDNBOOST_PP_FOR_5(s, p, o, m) NDNBOOST_PP_IF(p(6, s), m, NDNBOOST_PP_TUPLE_EAT_2)(6, s) NDNBOOST_PP_IF(p(6, s), NDNBOOST_PP_FOR_6, NDNBOOST_PP_TUPLE_EAT_4)(o(6, s), p, o, m)
+# define NDNBOOST_PP_FOR_6(s, p, o, m) NDNBOOST_PP_IF(p(7, s), m, NDNBOOST_PP_TUPLE_EAT_2)(7, s) NDNBOOST_PP_IF(p(7, s), NDNBOOST_PP_FOR_7, NDNBOOST_PP_TUPLE_EAT_4)(o(7, s), p, o, m)
+# define NDNBOOST_PP_FOR_7(s, p, o, m) NDNBOOST_PP_IF(p(8, s), m, NDNBOOST_PP_TUPLE_EAT_2)(8, s) NDNBOOST_PP_IF(p(8, s), NDNBOOST_PP_FOR_8, NDNBOOST_PP_TUPLE_EAT_4)(o(8, s), p, o, m)
+# define NDNBOOST_PP_FOR_8(s, p, o, m) NDNBOOST_PP_IF(p(9, s), m, NDNBOOST_PP_TUPLE_EAT_2)(9, s) NDNBOOST_PP_IF(p(9, s), NDNBOOST_PP_FOR_9, NDNBOOST_PP_TUPLE_EAT_4)(o(9, s), p, o, m)
+# define NDNBOOST_PP_FOR_9(s, p, o, m) NDNBOOST_PP_IF(p(10, s), m, NDNBOOST_PP_TUPLE_EAT_2)(10, s) NDNBOOST_PP_IF(p(10, s), NDNBOOST_PP_FOR_10, NDNBOOST_PP_TUPLE_EAT_4)(o(10, s), p, o, m)
+# define NDNBOOST_PP_FOR_10(s, p, o, m) NDNBOOST_PP_IF(p(11, s), m, NDNBOOST_PP_TUPLE_EAT_2)(11, s) NDNBOOST_PP_IF(p(11, s), NDNBOOST_PP_FOR_11, NDNBOOST_PP_TUPLE_EAT_4)(o(11, s), p, o, m)
+# define NDNBOOST_PP_FOR_11(s, p, o, m) NDNBOOST_PP_IF(p(12, s), m, NDNBOOST_PP_TUPLE_EAT_2)(12, s) NDNBOOST_PP_IF(p(12, s), NDNBOOST_PP_FOR_12, NDNBOOST_PP_TUPLE_EAT_4)(o(12, s), p, o, m)
+# define NDNBOOST_PP_FOR_12(s, p, o, m) NDNBOOST_PP_IF(p(13, s), m, NDNBOOST_PP_TUPLE_EAT_2)(13, s) NDNBOOST_PP_IF(p(13, s), NDNBOOST_PP_FOR_13, NDNBOOST_PP_TUPLE_EAT_4)(o(13, s), p, o, m)
+# define NDNBOOST_PP_FOR_13(s, p, o, m) NDNBOOST_PP_IF(p(14, s), m, NDNBOOST_PP_TUPLE_EAT_2)(14, s) NDNBOOST_PP_IF(p(14, s), NDNBOOST_PP_FOR_14, NDNBOOST_PP_TUPLE_EAT_4)(o(14, s), p, o, m)
+# define NDNBOOST_PP_FOR_14(s, p, o, m) NDNBOOST_PP_IF(p(15, s), m, NDNBOOST_PP_TUPLE_EAT_2)(15, s) NDNBOOST_PP_IF(p(15, s), NDNBOOST_PP_FOR_15, NDNBOOST_PP_TUPLE_EAT_4)(o(15, s), p, o, m)
+# define NDNBOOST_PP_FOR_15(s, p, o, m) NDNBOOST_PP_IF(p(16, s), m, NDNBOOST_PP_TUPLE_EAT_2)(16, s) NDNBOOST_PP_IF(p(16, s), NDNBOOST_PP_FOR_16, NDNBOOST_PP_TUPLE_EAT_4)(o(16, s), p, o, m)
+# define NDNBOOST_PP_FOR_16(s, p, o, m) NDNBOOST_PP_IF(p(17, s), m, NDNBOOST_PP_TUPLE_EAT_2)(17, s) NDNBOOST_PP_IF(p(17, s), NDNBOOST_PP_FOR_17, NDNBOOST_PP_TUPLE_EAT_4)(o(17, s), p, o, m)
+# define NDNBOOST_PP_FOR_17(s, p, o, m) NDNBOOST_PP_IF(p(18, s), m, NDNBOOST_PP_TUPLE_EAT_2)(18, s) NDNBOOST_PP_IF(p(18, s), NDNBOOST_PP_FOR_18, NDNBOOST_PP_TUPLE_EAT_4)(o(18, s), p, o, m)
+# define NDNBOOST_PP_FOR_18(s, p, o, m) NDNBOOST_PP_IF(p(19, s), m, NDNBOOST_PP_TUPLE_EAT_2)(19, s) NDNBOOST_PP_IF(p(19, s), NDNBOOST_PP_FOR_19, NDNBOOST_PP_TUPLE_EAT_4)(o(19, s), p, o, m)
+# define NDNBOOST_PP_FOR_19(s, p, o, m) NDNBOOST_PP_IF(p(20, s), m, NDNBOOST_PP_TUPLE_EAT_2)(20, s) NDNBOOST_PP_IF(p(20, s), NDNBOOST_PP_FOR_20, NDNBOOST_PP_TUPLE_EAT_4)(o(20, s), p, o, m)
+# define NDNBOOST_PP_FOR_20(s, p, o, m) NDNBOOST_PP_IF(p(21, s), m, NDNBOOST_PP_TUPLE_EAT_2)(21, s) NDNBOOST_PP_IF(p(21, s), NDNBOOST_PP_FOR_21, NDNBOOST_PP_TUPLE_EAT_4)(o(21, s), p, o, m)
+# define NDNBOOST_PP_FOR_21(s, p, o, m) NDNBOOST_PP_IF(p(22, s), m, NDNBOOST_PP_TUPLE_EAT_2)(22, s) NDNBOOST_PP_IF(p(22, s), NDNBOOST_PP_FOR_22, NDNBOOST_PP_TUPLE_EAT_4)(o(22, s), p, o, m)
+# define NDNBOOST_PP_FOR_22(s, p, o, m) NDNBOOST_PP_IF(p(23, s), m, NDNBOOST_PP_TUPLE_EAT_2)(23, s) NDNBOOST_PP_IF(p(23, s), NDNBOOST_PP_FOR_23, NDNBOOST_PP_TUPLE_EAT_4)(o(23, s), p, o, m)
+# define NDNBOOST_PP_FOR_23(s, p, o, m) NDNBOOST_PP_IF(p(24, s), m, NDNBOOST_PP_TUPLE_EAT_2)(24, s) NDNBOOST_PP_IF(p(24, s), NDNBOOST_PP_FOR_24, NDNBOOST_PP_TUPLE_EAT_4)(o(24, s), p, o, m)
+# define NDNBOOST_PP_FOR_24(s, p, o, m) NDNBOOST_PP_IF(p(25, s), m, NDNBOOST_PP_TUPLE_EAT_2)(25, s) NDNBOOST_PP_IF(p(25, s), NDNBOOST_PP_FOR_25, NDNBOOST_PP_TUPLE_EAT_4)(o(25, s), p, o, m)
+# define NDNBOOST_PP_FOR_25(s, p, o, m) NDNBOOST_PP_IF(p(26, s), m, NDNBOOST_PP_TUPLE_EAT_2)(26, s) NDNBOOST_PP_IF(p(26, s), NDNBOOST_PP_FOR_26, NDNBOOST_PP_TUPLE_EAT_4)(o(26, s), p, o, m)
+# define NDNBOOST_PP_FOR_26(s, p, o, m) NDNBOOST_PP_IF(p(27, s), m, NDNBOOST_PP_TUPLE_EAT_2)(27, s) NDNBOOST_PP_IF(p(27, s), NDNBOOST_PP_FOR_27, NDNBOOST_PP_TUPLE_EAT_4)(o(27, s), p, o, m)
+# define NDNBOOST_PP_FOR_27(s, p, o, m) NDNBOOST_PP_IF(p(28, s), m, NDNBOOST_PP_TUPLE_EAT_2)(28, s) NDNBOOST_PP_IF(p(28, s), NDNBOOST_PP_FOR_28, NDNBOOST_PP_TUPLE_EAT_4)(o(28, s), p, o, m)
+# define NDNBOOST_PP_FOR_28(s, p, o, m) NDNBOOST_PP_IF(p(29, s), m, NDNBOOST_PP_TUPLE_EAT_2)(29, s) NDNBOOST_PP_IF(p(29, s), NDNBOOST_PP_FOR_29, NDNBOOST_PP_TUPLE_EAT_4)(o(29, s), p, o, m)
+# define NDNBOOST_PP_FOR_29(s, p, o, m) NDNBOOST_PP_IF(p(30, s), m, NDNBOOST_PP_TUPLE_EAT_2)(30, s) NDNBOOST_PP_IF(p(30, s), NDNBOOST_PP_FOR_30, NDNBOOST_PP_TUPLE_EAT_4)(o(30, s), p, o, m)
+# define NDNBOOST_PP_FOR_30(s, p, o, m) NDNBOOST_PP_IF(p(31, s), m, NDNBOOST_PP_TUPLE_EAT_2)(31, s) NDNBOOST_PP_IF(p(31, s), NDNBOOST_PP_FOR_31, NDNBOOST_PP_TUPLE_EAT_4)(o(31, s), p, o, m)
+# define NDNBOOST_PP_FOR_31(s, p, o, m) NDNBOOST_PP_IF(p(32, s), m, NDNBOOST_PP_TUPLE_EAT_2)(32, s) NDNBOOST_PP_IF(p(32, s), NDNBOOST_PP_FOR_32, NDNBOOST_PP_TUPLE_EAT_4)(o(32, s), p, o, m)
+# define NDNBOOST_PP_FOR_32(s, p, o, m) NDNBOOST_PP_IF(p(33, s), m, NDNBOOST_PP_TUPLE_EAT_2)(33, s) NDNBOOST_PP_IF(p(33, s), NDNBOOST_PP_FOR_33, NDNBOOST_PP_TUPLE_EAT_4)(o(33, s), p, o, m)
+# define NDNBOOST_PP_FOR_33(s, p, o, m) NDNBOOST_PP_IF(p(34, s), m, NDNBOOST_PP_TUPLE_EAT_2)(34, s) NDNBOOST_PP_IF(p(34, s), NDNBOOST_PP_FOR_34, NDNBOOST_PP_TUPLE_EAT_4)(o(34, s), p, o, m)
+# define NDNBOOST_PP_FOR_34(s, p, o, m) NDNBOOST_PP_IF(p(35, s), m, NDNBOOST_PP_TUPLE_EAT_2)(35, s) NDNBOOST_PP_IF(p(35, s), NDNBOOST_PP_FOR_35, NDNBOOST_PP_TUPLE_EAT_4)(o(35, s), p, o, m)
+# define NDNBOOST_PP_FOR_35(s, p, o, m) NDNBOOST_PP_IF(p(36, s), m, NDNBOOST_PP_TUPLE_EAT_2)(36, s) NDNBOOST_PP_IF(p(36, s), NDNBOOST_PP_FOR_36, NDNBOOST_PP_TUPLE_EAT_4)(o(36, s), p, o, m)
+# define NDNBOOST_PP_FOR_36(s, p, o, m) NDNBOOST_PP_IF(p(37, s), m, NDNBOOST_PP_TUPLE_EAT_2)(37, s) NDNBOOST_PP_IF(p(37, s), NDNBOOST_PP_FOR_37, NDNBOOST_PP_TUPLE_EAT_4)(o(37, s), p, o, m)
+# define NDNBOOST_PP_FOR_37(s, p, o, m) NDNBOOST_PP_IF(p(38, s), m, NDNBOOST_PP_TUPLE_EAT_2)(38, s) NDNBOOST_PP_IF(p(38, s), NDNBOOST_PP_FOR_38, NDNBOOST_PP_TUPLE_EAT_4)(o(38, s), p, o, m)
+# define NDNBOOST_PP_FOR_38(s, p, o, m) NDNBOOST_PP_IF(p(39, s), m, NDNBOOST_PP_TUPLE_EAT_2)(39, s) NDNBOOST_PP_IF(p(39, s), NDNBOOST_PP_FOR_39, NDNBOOST_PP_TUPLE_EAT_4)(o(39, s), p, o, m)
+# define NDNBOOST_PP_FOR_39(s, p, o, m) NDNBOOST_PP_IF(p(40, s), m, NDNBOOST_PP_TUPLE_EAT_2)(40, s) NDNBOOST_PP_IF(p(40, s), NDNBOOST_PP_FOR_40, NDNBOOST_PP_TUPLE_EAT_4)(o(40, s), p, o, m)
+# define NDNBOOST_PP_FOR_40(s, p, o, m) NDNBOOST_PP_IF(p(41, s), m, NDNBOOST_PP_TUPLE_EAT_2)(41, s) NDNBOOST_PP_IF(p(41, s), NDNBOOST_PP_FOR_41, NDNBOOST_PP_TUPLE_EAT_4)(o(41, s), p, o, m)
+# define NDNBOOST_PP_FOR_41(s, p, o, m) NDNBOOST_PP_IF(p(42, s), m, NDNBOOST_PP_TUPLE_EAT_2)(42, s) NDNBOOST_PP_IF(p(42, s), NDNBOOST_PP_FOR_42, NDNBOOST_PP_TUPLE_EAT_4)(o(42, s), p, o, m)
+# define NDNBOOST_PP_FOR_42(s, p, o, m) NDNBOOST_PP_IF(p(43, s), m, NDNBOOST_PP_TUPLE_EAT_2)(43, s) NDNBOOST_PP_IF(p(43, s), NDNBOOST_PP_FOR_43, NDNBOOST_PP_TUPLE_EAT_4)(o(43, s), p, o, m)
+# define NDNBOOST_PP_FOR_43(s, p, o, m) NDNBOOST_PP_IF(p(44, s), m, NDNBOOST_PP_TUPLE_EAT_2)(44, s) NDNBOOST_PP_IF(p(44, s), NDNBOOST_PP_FOR_44, NDNBOOST_PP_TUPLE_EAT_4)(o(44, s), p, o, m)
+# define NDNBOOST_PP_FOR_44(s, p, o, m) NDNBOOST_PP_IF(p(45, s), m, NDNBOOST_PP_TUPLE_EAT_2)(45, s) NDNBOOST_PP_IF(p(45, s), NDNBOOST_PP_FOR_45, NDNBOOST_PP_TUPLE_EAT_4)(o(45, s), p, o, m)
+# define NDNBOOST_PP_FOR_45(s, p, o, m) NDNBOOST_PP_IF(p(46, s), m, NDNBOOST_PP_TUPLE_EAT_2)(46, s) NDNBOOST_PP_IF(p(46, s), NDNBOOST_PP_FOR_46, NDNBOOST_PP_TUPLE_EAT_4)(o(46, s), p, o, m)
+# define NDNBOOST_PP_FOR_46(s, p, o, m) NDNBOOST_PP_IF(p(47, s), m, NDNBOOST_PP_TUPLE_EAT_2)(47, s) NDNBOOST_PP_IF(p(47, s), NDNBOOST_PP_FOR_47, NDNBOOST_PP_TUPLE_EAT_4)(o(47, s), p, o, m)
+# define NDNBOOST_PP_FOR_47(s, p, o, m) NDNBOOST_PP_IF(p(48, s), m, NDNBOOST_PP_TUPLE_EAT_2)(48, s) NDNBOOST_PP_IF(p(48, s), NDNBOOST_PP_FOR_48, NDNBOOST_PP_TUPLE_EAT_4)(o(48, s), p, o, m)
+# define NDNBOOST_PP_FOR_48(s, p, o, m) NDNBOOST_PP_IF(p(49, s), m, NDNBOOST_PP_TUPLE_EAT_2)(49, s) NDNBOOST_PP_IF(p(49, s), NDNBOOST_PP_FOR_49, NDNBOOST_PP_TUPLE_EAT_4)(o(49, s), p, o, m)
+# define NDNBOOST_PP_FOR_49(s, p, o, m) NDNBOOST_PP_IF(p(50, s), m, NDNBOOST_PP_TUPLE_EAT_2)(50, s) NDNBOOST_PP_IF(p(50, s), NDNBOOST_PP_FOR_50, NDNBOOST_PP_TUPLE_EAT_4)(o(50, s), p, o, m)
+# define NDNBOOST_PP_FOR_50(s, p, o, m) NDNBOOST_PP_IF(p(51, s), m, NDNBOOST_PP_TUPLE_EAT_2)(51, s) NDNBOOST_PP_IF(p(51, s), NDNBOOST_PP_FOR_51, NDNBOOST_PP_TUPLE_EAT_4)(o(51, s), p, o, m)
+# define NDNBOOST_PP_FOR_51(s, p, o, m) NDNBOOST_PP_IF(p(52, s), m, NDNBOOST_PP_TUPLE_EAT_2)(52, s) NDNBOOST_PP_IF(p(52, s), NDNBOOST_PP_FOR_52, NDNBOOST_PP_TUPLE_EAT_4)(o(52, s), p, o, m)
+# define NDNBOOST_PP_FOR_52(s, p, o, m) NDNBOOST_PP_IF(p(53, s), m, NDNBOOST_PP_TUPLE_EAT_2)(53, s) NDNBOOST_PP_IF(p(53, s), NDNBOOST_PP_FOR_53, NDNBOOST_PP_TUPLE_EAT_4)(o(53, s), p, o, m)
+# define NDNBOOST_PP_FOR_53(s, p, o, m) NDNBOOST_PP_IF(p(54, s), m, NDNBOOST_PP_TUPLE_EAT_2)(54, s) NDNBOOST_PP_IF(p(54, s), NDNBOOST_PP_FOR_54, NDNBOOST_PP_TUPLE_EAT_4)(o(54, s), p, o, m)
+# define NDNBOOST_PP_FOR_54(s, p, o, m) NDNBOOST_PP_IF(p(55, s), m, NDNBOOST_PP_TUPLE_EAT_2)(55, s) NDNBOOST_PP_IF(p(55, s), NDNBOOST_PP_FOR_55, NDNBOOST_PP_TUPLE_EAT_4)(o(55, s), p, o, m)
+# define NDNBOOST_PP_FOR_55(s, p, o, m) NDNBOOST_PP_IF(p(56, s), m, NDNBOOST_PP_TUPLE_EAT_2)(56, s) NDNBOOST_PP_IF(p(56, s), NDNBOOST_PP_FOR_56, NDNBOOST_PP_TUPLE_EAT_4)(o(56, s), p, o, m)
+# define NDNBOOST_PP_FOR_56(s, p, o, m) NDNBOOST_PP_IF(p(57, s), m, NDNBOOST_PP_TUPLE_EAT_2)(57, s) NDNBOOST_PP_IF(p(57, s), NDNBOOST_PP_FOR_57, NDNBOOST_PP_TUPLE_EAT_4)(o(57, s), p, o, m)
+# define NDNBOOST_PP_FOR_57(s, p, o, m) NDNBOOST_PP_IF(p(58, s), m, NDNBOOST_PP_TUPLE_EAT_2)(58, s) NDNBOOST_PP_IF(p(58, s), NDNBOOST_PP_FOR_58, NDNBOOST_PP_TUPLE_EAT_4)(o(58, s), p, o, m)
+# define NDNBOOST_PP_FOR_58(s, p, o, m) NDNBOOST_PP_IF(p(59, s), m, NDNBOOST_PP_TUPLE_EAT_2)(59, s) NDNBOOST_PP_IF(p(59, s), NDNBOOST_PP_FOR_59, NDNBOOST_PP_TUPLE_EAT_4)(o(59, s), p, o, m)
+# define NDNBOOST_PP_FOR_59(s, p, o, m) NDNBOOST_PP_IF(p(60, s), m, NDNBOOST_PP_TUPLE_EAT_2)(60, s) NDNBOOST_PP_IF(p(60, s), NDNBOOST_PP_FOR_60, NDNBOOST_PP_TUPLE_EAT_4)(o(60, s), p, o, m)
+# define NDNBOOST_PP_FOR_60(s, p, o, m) NDNBOOST_PP_IF(p(61, s), m, NDNBOOST_PP_TUPLE_EAT_2)(61, s) NDNBOOST_PP_IF(p(61, s), NDNBOOST_PP_FOR_61, NDNBOOST_PP_TUPLE_EAT_4)(o(61, s), p, o, m)
+# define NDNBOOST_PP_FOR_61(s, p, o, m) NDNBOOST_PP_IF(p(62, s), m, NDNBOOST_PP_TUPLE_EAT_2)(62, s) NDNBOOST_PP_IF(p(62, s), NDNBOOST_PP_FOR_62, NDNBOOST_PP_TUPLE_EAT_4)(o(62, s), p, o, m)
+# define NDNBOOST_PP_FOR_62(s, p, o, m) NDNBOOST_PP_IF(p(63, s), m, NDNBOOST_PP_TUPLE_EAT_2)(63, s) NDNBOOST_PP_IF(p(63, s), NDNBOOST_PP_FOR_63, NDNBOOST_PP_TUPLE_EAT_4)(o(63, s), p, o, m)
+# define NDNBOOST_PP_FOR_63(s, p, o, m) NDNBOOST_PP_IF(p(64, s), m, NDNBOOST_PP_TUPLE_EAT_2)(64, s) NDNBOOST_PP_IF(p(64, s), NDNBOOST_PP_FOR_64, NDNBOOST_PP_TUPLE_EAT_4)(o(64, s), p, o, m)
+# define NDNBOOST_PP_FOR_64(s, p, o, m) NDNBOOST_PP_IF(p(65, s), m, NDNBOOST_PP_TUPLE_EAT_2)(65, s) NDNBOOST_PP_IF(p(65, s), NDNBOOST_PP_FOR_65, NDNBOOST_PP_TUPLE_EAT_4)(o(65, s), p, o, m)
+# define NDNBOOST_PP_FOR_65(s, p, o, m) NDNBOOST_PP_IF(p(66, s), m, NDNBOOST_PP_TUPLE_EAT_2)(66, s) NDNBOOST_PP_IF(p(66, s), NDNBOOST_PP_FOR_66, NDNBOOST_PP_TUPLE_EAT_4)(o(66, s), p, o, m)
+# define NDNBOOST_PP_FOR_66(s, p, o, m) NDNBOOST_PP_IF(p(67, s), m, NDNBOOST_PP_TUPLE_EAT_2)(67, s) NDNBOOST_PP_IF(p(67, s), NDNBOOST_PP_FOR_67, NDNBOOST_PP_TUPLE_EAT_4)(o(67, s), p, o, m)
+# define NDNBOOST_PP_FOR_67(s, p, o, m) NDNBOOST_PP_IF(p(68, s), m, NDNBOOST_PP_TUPLE_EAT_2)(68, s) NDNBOOST_PP_IF(p(68, s), NDNBOOST_PP_FOR_68, NDNBOOST_PP_TUPLE_EAT_4)(o(68, s), p, o, m)
+# define NDNBOOST_PP_FOR_68(s, p, o, m) NDNBOOST_PP_IF(p(69, s), m, NDNBOOST_PP_TUPLE_EAT_2)(69, s) NDNBOOST_PP_IF(p(69, s), NDNBOOST_PP_FOR_69, NDNBOOST_PP_TUPLE_EAT_4)(o(69, s), p, o, m)
+# define NDNBOOST_PP_FOR_69(s, p, o, m) NDNBOOST_PP_IF(p(70, s), m, NDNBOOST_PP_TUPLE_EAT_2)(70, s) NDNBOOST_PP_IF(p(70, s), NDNBOOST_PP_FOR_70, NDNBOOST_PP_TUPLE_EAT_4)(o(70, s), p, o, m)
+# define NDNBOOST_PP_FOR_70(s, p, o, m) NDNBOOST_PP_IF(p(71, s), m, NDNBOOST_PP_TUPLE_EAT_2)(71, s) NDNBOOST_PP_IF(p(71, s), NDNBOOST_PP_FOR_71, NDNBOOST_PP_TUPLE_EAT_4)(o(71, s), p, o, m)
+# define NDNBOOST_PP_FOR_71(s, p, o, m) NDNBOOST_PP_IF(p(72, s), m, NDNBOOST_PP_TUPLE_EAT_2)(72, s) NDNBOOST_PP_IF(p(72, s), NDNBOOST_PP_FOR_72, NDNBOOST_PP_TUPLE_EAT_4)(o(72, s), p, o, m)
+# define NDNBOOST_PP_FOR_72(s, p, o, m) NDNBOOST_PP_IF(p(73, s), m, NDNBOOST_PP_TUPLE_EAT_2)(73, s) NDNBOOST_PP_IF(p(73, s), NDNBOOST_PP_FOR_73, NDNBOOST_PP_TUPLE_EAT_4)(o(73, s), p, o, m)
+# define NDNBOOST_PP_FOR_73(s, p, o, m) NDNBOOST_PP_IF(p(74, s), m, NDNBOOST_PP_TUPLE_EAT_2)(74, s) NDNBOOST_PP_IF(p(74, s), NDNBOOST_PP_FOR_74, NDNBOOST_PP_TUPLE_EAT_4)(o(74, s), p, o, m)
+# define NDNBOOST_PP_FOR_74(s, p, o, m) NDNBOOST_PP_IF(p(75, s), m, NDNBOOST_PP_TUPLE_EAT_2)(75, s) NDNBOOST_PP_IF(p(75, s), NDNBOOST_PP_FOR_75, NDNBOOST_PP_TUPLE_EAT_4)(o(75, s), p, o, m)
+# define NDNBOOST_PP_FOR_75(s, p, o, m) NDNBOOST_PP_IF(p(76, s), m, NDNBOOST_PP_TUPLE_EAT_2)(76, s) NDNBOOST_PP_IF(p(76, s), NDNBOOST_PP_FOR_76, NDNBOOST_PP_TUPLE_EAT_4)(o(76, s), p, o, m)
+# define NDNBOOST_PP_FOR_76(s, p, o, m) NDNBOOST_PP_IF(p(77, s), m, NDNBOOST_PP_TUPLE_EAT_2)(77, s) NDNBOOST_PP_IF(p(77, s), NDNBOOST_PP_FOR_77, NDNBOOST_PP_TUPLE_EAT_4)(o(77, s), p, o, m)
+# define NDNBOOST_PP_FOR_77(s, p, o, m) NDNBOOST_PP_IF(p(78, s), m, NDNBOOST_PP_TUPLE_EAT_2)(78, s) NDNBOOST_PP_IF(p(78, s), NDNBOOST_PP_FOR_78, NDNBOOST_PP_TUPLE_EAT_4)(o(78, s), p, o, m)
+# define NDNBOOST_PP_FOR_78(s, p, o, m) NDNBOOST_PP_IF(p(79, s), m, NDNBOOST_PP_TUPLE_EAT_2)(79, s) NDNBOOST_PP_IF(p(79, s), NDNBOOST_PP_FOR_79, NDNBOOST_PP_TUPLE_EAT_4)(o(79, s), p, o, m)
+# define NDNBOOST_PP_FOR_79(s, p, o, m) NDNBOOST_PP_IF(p(80, s), m, NDNBOOST_PP_TUPLE_EAT_2)(80, s) NDNBOOST_PP_IF(p(80, s), NDNBOOST_PP_FOR_80, NDNBOOST_PP_TUPLE_EAT_4)(o(80, s), p, o, m)
+# define NDNBOOST_PP_FOR_80(s, p, o, m) NDNBOOST_PP_IF(p(81, s), m, NDNBOOST_PP_TUPLE_EAT_2)(81, s) NDNBOOST_PP_IF(p(81, s), NDNBOOST_PP_FOR_81, NDNBOOST_PP_TUPLE_EAT_4)(o(81, s), p, o, m)
+# define NDNBOOST_PP_FOR_81(s, p, o, m) NDNBOOST_PP_IF(p(82, s), m, NDNBOOST_PP_TUPLE_EAT_2)(82, s) NDNBOOST_PP_IF(p(82, s), NDNBOOST_PP_FOR_82, NDNBOOST_PP_TUPLE_EAT_4)(o(82, s), p, o, m)
+# define NDNBOOST_PP_FOR_82(s, p, o, m) NDNBOOST_PP_IF(p(83, s), m, NDNBOOST_PP_TUPLE_EAT_2)(83, s) NDNBOOST_PP_IF(p(83, s), NDNBOOST_PP_FOR_83, NDNBOOST_PP_TUPLE_EAT_4)(o(83, s), p, o, m)
+# define NDNBOOST_PP_FOR_83(s, p, o, m) NDNBOOST_PP_IF(p(84, s), m, NDNBOOST_PP_TUPLE_EAT_2)(84, s) NDNBOOST_PP_IF(p(84, s), NDNBOOST_PP_FOR_84, NDNBOOST_PP_TUPLE_EAT_4)(o(84, s), p, o, m)
+# define NDNBOOST_PP_FOR_84(s, p, o, m) NDNBOOST_PP_IF(p(85, s), m, NDNBOOST_PP_TUPLE_EAT_2)(85, s) NDNBOOST_PP_IF(p(85, s), NDNBOOST_PP_FOR_85, NDNBOOST_PP_TUPLE_EAT_4)(o(85, s), p, o, m)
+# define NDNBOOST_PP_FOR_85(s, p, o, m) NDNBOOST_PP_IF(p(86, s), m, NDNBOOST_PP_TUPLE_EAT_2)(86, s) NDNBOOST_PP_IF(p(86, s), NDNBOOST_PP_FOR_86, NDNBOOST_PP_TUPLE_EAT_4)(o(86, s), p, o, m)
+# define NDNBOOST_PP_FOR_86(s, p, o, m) NDNBOOST_PP_IF(p(87, s), m, NDNBOOST_PP_TUPLE_EAT_2)(87, s) NDNBOOST_PP_IF(p(87, s), NDNBOOST_PP_FOR_87, NDNBOOST_PP_TUPLE_EAT_4)(o(87, s), p, o, m)
+# define NDNBOOST_PP_FOR_87(s, p, o, m) NDNBOOST_PP_IF(p(88, s), m, NDNBOOST_PP_TUPLE_EAT_2)(88, s) NDNBOOST_PP_IF(p(88, s), NDNBOOST_PP_FOR_88, NDNBOOST_PP_TUPLE_EAT_4)(o(88, s), p, o, m)
+# define NDNBOOST_PP_FOR_88(s, p, o, m) NDNBOOST_PP_IF(p(89, s), m, NDNBOOST_PP_TUPLE_EAT_2)(89, s) NDNBOOST_PP_IF(p(89, s), NDNBOOST_PP_FOR_89, NDNBOOST_PP_TUPLE_EAT_4)(o(89, s), p, o, m)
+# define NDNBOOST_PP_FOR_89(s, p, o, m) NDNBOOST_PP_IF(p(90, s), m, NDNBOOST_PP_TUPLE_EAT_2)(90, s) NDNBOOST_PP_IF(p(90, s), NDNBOOST_PP_FOR_90, NDNBOOST_PP_TUPLE_EAT_4)(o(90, s), p, o, m)
+# define NDNBOOST_PP_FOR_90(s, p, o, m) NDNBOOST_PP_IF(p(91, s), m, NDNBOOST_PP_TUPLE_EAT_2)(91, s) NDNBOOST_PP_IF(p(91, s), NDNBOOST_PP_FOR_91, NDNBOOST_PP_TUPLE_EAT_4)(o(91, s), p, o, m)
+# define NDNBOOST_PP_FOR_91(s, p, o, m) NDNBOOST_PP_IF(p(92, s), m, NDNBOOST_PP_TUPLE_EAT_2)(92, s) NDNBOOST_PP_IF(p(92, s), NDNBOOST_PP_FOR_92, NDNBOOST_PP_TUPLE_EAT_4)(o(92, s), p, o, m)
+# define NDNBOOST_PP_FOR_92(s, p, o, m) NDNBOOST_PP_IF(p(93, s), m, NDNBOOST_PP_TUPLE_EAT_2)(93, s) NDNBOOST_PP_IF(p(93, s), NDNBOOST_PP_FOR_93, NDNBOOST_PP_TUPLE_EAT_4)(o(93, s), p, o, m)
+# define NDNBOOST_PP_FOR_93(s, p, o, m) NDNBOOST_PP_IF(p(94, s), m, NDNBOOST_PP_TUPLE_EAT_2)(94, s) NDNBOOST_PP_IF(p(94, s), NDNBOOST_PP_FOR_94, NDNBOOST_PP_TUPLE_EAT_4)(o(94, s), p, o, m)
+# define NDNBOOST_PP_FOR_94(s, p, o, m) NDNBOOST_PP_IF(p(95, s), m, NDNBOOST_PP_TUPLE_EAT_2)(95, s) NDNBOOST_PP_IF(p(95, s), NDNBOOST_PP_FOR_95, NDNBOOST_PP_TUPLE_EAT_4)(o(95, s), p, o, m)
+# define NDNBOOST_PP_FOR_95(s, p, o, m) NDNBOOST_PP_IF(p(96, s), m, NDNBOOST_PP_TUPLE_EAT_2)(96, s) NDNBOOST_PP_IF(p(96, s), NDNBOOST_PP_FOR_96, NDNBOOST_PP_TUPLE_EAT_4)(o(96, s), p, o, m)
+# define NDNBOOST_PP_FOR_96(s, p, o, m) NDNBOOST_PP_IF(p(97, s), m, NDNBOOST_PP_TUPLE_EAT_2)(97, s) NDNBOOST_PP_IF(p(97, s), NDNBOOST_PP_FOR_97, NDNBOOST_PP_TUPLE_EAT_4)(o(97, s), p, o, m)
+# define NDNBOOST_PP_FOR_97(s, p, o, m) NDNBOOST_PP_IF(p(98, s), m, NDNBOOST_PP_TUPLE_EAT_2)(98, s) NDNBOOST_PP_IF(p(98, s), NDNBOOST_PP_FOR_98, NDNBOOST_PP_TUPLE_EAT_4)(o(98, s), p, o, m)
+# define NDNBOOST_PP_FOR_98(s, p, o, m) NDNBOOST_PP_IF(p(99, s), m, NDNBOOST_PP_TUPLE_EAT_2)(99, s) NDNBOOST_PP_IF(p(99, s), NDNBOOST_PP_FOR_99, NDNBOOST_PP_TUPLE_EAT_4)(o(99, s), p, o, m)
+# define NDNBOOST_PP_FOR_99(s, p, o, m) NDNBOOST_PP_IF(p(100, s), m, NDNBOOST_PP_TUPLE_EAT_2)(100, s) NDNBOOST_PP_IF(p(100, s), NDNBOOST_PP_FOR_100, NDNBOOST_PP_TUPLE_EAT_4)(o(100, s), p, o, m)
+# define NDNBOOST_PP_FOR_100(s, p, o, m) NDNBOOST_PP_IF(p(101, s), m, NDNBOOST_PP_TUPLE_EAT_2)(101, s) NDNBOOST_PP_IF(p(101, s), NDNBOOST_PP_FOR_101, NDNBOOST_PP_TUPLE_EAT_4)(o(101, s), p, o, m)
+# define NDNBOOST_PP_FOR_101(s, p, o, m) NDNBOOST_PP_IF(p(102, s), m, NDNBOOST_PP_TUPLE_EAT_2)(102, s) NDNBOOST_PP_IF(p(102, s), NDNBOOST_PP_FOR_102, NDNBOOST_PP_TUPLE_EAT_4)(o(102, s), p, o, m)
+# define NDNBOOST_PP_FOR_102(s, p, o, m) NDNBOOST_PP_IF(p(103, s), m, NDNBOOST_PP_TUPLE_EAT_2)(103, s) NDNBOOST_PP_IF(p(103, s), NDNBOOST_PP_FOR_103, NDNBOOST_PP_TUPLE_EAT_4)(o(103, s), p, o, m)
+# define NDNBOOST_PP_FOR_103(s, p, o, m) NDNBOOST_PP_IF(p(104, s), m, NDNBOOST_PP_TUPLE_EAT_2)(104, s) NDNBOOST_PP_IF(p(104, s), NDNBOOST_PP_FOR_104, NDNBOOST_PP_TUPLE_EAT_4)(o(104, s), p, o, m)
+# define NDNBOOST_PP_FOR_104(s, p, o, m) NDNBOOST_PP_IF(p(105, s), m, NDNBOOST_PP_TUPLE_EAT_2)(105, s) NDNBOOST_PP_IF(p(105, s), NDNBOOST_PP_FOR_105, NDNBOOST_PP_TUPLE_EAT_4)(o(105, s), p, o, m)
+# define NDNBOOST_PP_FOR_105(s, p, o, m) NDNBOOST_PP_IF(p(106, s), m, NDNBOOST_PP_TUPLE_EAT_2)(106, s) NDNBOOST_PP_IF(p(106, s), NDNBOOST_PP_FOR_106, NDNBOOST_PP_TUPLE_EAT_4)(o(106, s), p, o, m)
+# define NDNBOOST_PP_FOR_106(s, p, o, m) NDNBOOST_PP_IF(p(107, s), m, NDNBOOST_PP_TUPLE_EAT_2)(107, s) NDNBOOST_PP_IF(p(107, s), NDNBOOST_PP_FOR_107, NDNBOOST_PP_TUPLE_EAT_4)(o(107, s), p, o, m)
+# define NDNBOOST_PP_FOR_107(s, p, o, m) NDNBOOST_PP_IF(p(108, s), m, NDNBOOST_PP_TUPLE_EAT_2)(108, s) NDNBOOST_PP_IF(p(108, s), NDNBOOST_PP_FOR_108, NDNBOOST_PP_TUPLE_EAT_4)(o(108, s), p, o, m)
+# define NDNBOOST_PP_FOR_108(s, p, o, m) NDNBOOST_PP_IF(p(109, s), m, NDNBOOST_PP_TUPLE_EAT_2)(109, s) NDNBOOST_PP_IF(p(109, s), NDNBOOST_PP_FOR_109, NDNBOOST_PP_TUPLE_EAT_4)(o(109, s), p, o, m)
+# define NDNBOOST_PP_FOR_109(s, p, o, m) NDNBOOST_PP_IF(p(110, s), m, NDNBOOST_PP_TUPLE_EAT_2)(110, s) NDNBOOST_PP_IF(p(110, s), NDNBOOST_PP_FOR_110, NDNBOOST_PP_TUPLE_EAT_4)(o(110, s), p, o, m)
+# define NDNBOOST_PP_FOR_110(s, p, o, m) NDNBOOST_PP_IF(p(111, s), m, NDNBOOST_PP_TUPLE_EAT_2)(111, s) NDNBOOST_PP_IF(p(111, s), NDNBOOST_PP_FOR_111, NDNBOOST_PP_TUPLE_EAT_4)(o(111, s), p, o, m)
+# define NDNBOOST_PP_FOR_111(s, p, o, m) NDNBOOST_PP_IF(p(112, s), m, NDNBOOST_PP_TUPLE_EAT_2)(112, s) NDNBOOST_PP_IF(p(112, s), NDNBOOST_PP_FOR_112, NDNBOOST_PP_TUPLE_EAT_4)(o(112, s), p, o, m)
+# define NDNBOOST_PP_FOR_112(s, p, o, m) NDNBOOST_PP_IF(p(113, s), m, NDNBOOST_PP_TUPLE_EAT_2)(113, s) NDNBOOST_PP_IF(p(113, s), NDNBOOST_PP_FOR_113, NDNBOOST_PP_TUPLE_EAT_4)(o(113, s), p, o, m)
+# define NDNBOOST_PP_FOR_113(s, p, o, m) NDNBOOST_PP_IF(p(114, s), m, NDNBOOST_PP_TUPLE_EAT_2)(114, s) NDNBOOST_PP_IF(p(114, s), NDNBOOST_PP_FOR_114, NDNBOOST_PP_TUPLE_EAT_4)(o(114, s), p, o, m)
+# define NDNBOOST_PP_FOR_114(s, p, o, m) NDNBOOST_PP_IF(p(115, s), m, NDNBOOST_PP_TUPLE_EAT_2)(115, s) NDNBOOST_PP_IF(p(115, s), NDNBOOST_PP_FOR_115, NDNBOOST_PP_TUPLE_EAT_4)(o(115, s), p, o, m)
+# define NDNBOOST_PP_FOR_115(s, p, o, m) NDNBOOST_PP_IF(p(116, s), m, NDNBOOST_PP_TUPLE_EAT_2)(116, s) NDNBOOST_PP_IF(p(116, s), NDNBOOST_PP_FOR_116, NDNBOOST_PP_TUPLE_EAT_4)(o(116, s), p, o, m)
+# define NDNBOOST_PP_FOR_116(s, p, o, m) NDNBOOST_PP_IF(p(117, s), m, NDNBOOST_PP_TUPLE_EAT_2)(117, s) NDNBOOST_PP_IF(p(117, s), NDNBOOST_PP_FOR_117, NDNBOOST_PP_TUPLE_EAT_4)(o(117, s), p, o, m)
+# define NDNBOOST_PP_FOR_117(s, p, o, m) NDNBOOST_PP_IF(p(118, s), m, NDNBOOST_PP_TUPLE_EAT_2)(118, s) NDNBOOST_PP_IF(p(118, s), NDNBOOST_PP_FOR_118, NDNBOOST_PP_TUPLE_EAT_4)(o(118, s), p, o, m)
+# define NDNBOOST_PP_FOR_118(s, p, o, m) NDNBOOST_PP_IF(p(119, s), m, NDNBOOST_PP_TUPLE_EAT_2)(119, s) NDNBOOST_PP_IF(p(119, s), NDNBOOST_PP_FOR_119, NDNBOOST_PP_TUPLE_EAT_4)(o(119, s), p, o, m)
+# define NDNBOOST_PP_FOR_119(s, p, o, m) NDNBOOST_PP_IF(p(120, s), m, NDNBOOST_PP_TUPLE_EAT_2)(120, s) NDNBOOST_PP_IF(p(120, s), NDNBOOST_PP_FOR_120, NDNBOOST_PP_TUPLE_EAT_4)(o(120, s), p, o, m)
+# define NDNBOOST_PP_FOR_120(s, p, o, m) NDNBOOST_PP_IF(p(121, s), m, NDNBOOST_PP_TUPLE_EAT_2)(121, s) NDNBOOST_PP_IF(p(121, s), NDNBOOST_PP_FOR_121, NDNBOOST_PP_TUPLE_EAT_4)(o(121, s), p, o, m)
+# define NDNBOOST_PP_FOR_121(s, p, o, m) NDNBOOST_PP_IF(p(122, s), m, NDNBOOST_PP_TUPLE_EAT_2)(122, s) NDNBOOST_PP_IF(p(122, s), NDNBOOST_PP_FOR_122, NDNBOOST_PP_TUPLE_EAT_4)(o(122, s), p, o, m)
+# define NDNBOOST_PP_FOR_122(s, p, o, m) NDNBOOST_PP_IF(p(123, s), m, NDNBOOST_PP_TUPLE_EAT_2)(123, s) NDNBOOST_PP_IF(p(123, s), NDNBOOST_PP_FOR_123, NDNBOOST_PP_TUPLE_EAT_4)(o(123, s), p, o, m)
+# define NDNBOOST_PP_FOR_123(s, p, o, m) NDNBOOST_PP_IF(p(124, s), m, NDNBOOST_PP_TUPLE_EAT_2)(124, s) NDNBOOST_PP_IF(p(124, s), NDNBOOST_PP_FOR_124, NDNBOOST_PP_TUPLE_EAT_4)(o(124, s), p, o, m)
+# define NDNBOOST_PP_FOR_124(s, p, o, m) NDNBOOST_PP_IF(p(125, s), m, NDNBOOST_PP_TUPLE_EAT_2)(125, s) NDNBOOST_PP_IF(p(125, s), NDNBOOST_PP_FOR_125, NDNBOOST_PP_TUPLE_EAT_4)(o(125, s), p, o, m)
+# define NDNBOOST_PP_FOR_125(s, p, o, m) NDNBOOST_PP_IF(p(126, s), m, NDNBOOST_PP_TUPLE_EAT_2)(126, s) NDNBOOST_PP_IF(p(126, s), NDNBOOST_PP_FOR_126, NDNBOOST_PP_TUPLE_EAT_4)(o(126, s), p, o, m)
+# define NDNBOOST_PP_FOR_126(s, p, o, m) NDNBOOST_PP_IF(p(127, s), m, NDNBOOST_PP_TUPLE_EAT_2)(127, s) NDNBOOST_PP_IF(p(127, s), NDNBOOST_PP_FOR_127, NDNBOOST_PP_TUPLE_EAT_4)(o(127, s), p, o, m)
+# define NDNBOOST_PP_FOR_127(s, p, o, m) NDNBOOST_PP_IF(p(128, s), m, NDNBOOST_PP_TUPLE_EAT_2)(128, s) NDNBOOST_PP_IF(p(128, s), NDNBOOST_PP_FOR_128, NDNBOOST_PP_TUPLE_EAT_4)(o(128, s), p, o, m)
+# define NDNBOOST_PP_FOR_128(s, p, o, m) NDNBOOST_PP_IF(p(129, s), m, NDNBOOST_PP_TUPLE_EAT_2)(129, s) NDNBOOST_PP_IF(p(129, s), NDNBOOST_PP_FOR_129, NDNBOOST_PP_TUPLE_EAT_4)(o(129, s), p, o, m)
+# define NDNBOOST_PP_FOR_129(s, p, o, m) NDNBOOST_PP_IF(p(130, s), m, NDNBOOST_PP_TUPLE_EAT_2)(130, s) NDNBOOST_PP_IF(p(130, s), NDNBOOST_PP_FOR_130, NDNBOOST_PP_TUPLE_EAT_4)(o(130, s), p, o, m)
+# define NDNBOOST_PP_FOR_130(s, p, o, m) NDNBOOST_PP_IF(p(131, s), m, NDNBOOST_PP_TUPLE_EAT_2)(131, s) NDNBOOST_PP_IF(p(131, s), NDNBOOST_PP_FOR_131, NDNBOOST_PP_TUPLE_EAT_4)(o(131, s), p, o, m)
+# define NDNBOOST_PP_FOR_131(s, p, o, m) NDNBOOST_PP_IF(p(132, s), m, NDNBOOST_PP_TUPLE_EAT_2)(132, s) NDNBOOST_PP_IF(p(132, s), NDNBOOST_PP_FOR_132, NDNBOOST_PP_TUPLE_EAT_4)(o(132, s), p, o, m)
+# define NDNBOOST_PP_FOR_132(s, p, o, m) NDNBOOST_PP_IF(p(133, s), m, NDNBOOST_PP_TUPLE_EAT_2)(133, s) NDNBOOST_PP_IF(p(133, s), NDNBOOST_PP_FOR_133, NDNBOOST_PP_TUPLE_EAT_4)(o(133, s), p, o, m)
+# define NDNBOOST_PP_FOR_133(s, p, o, m) NDNBOOST_PP_IF(p(134, s), m, NDNBOOST_PP_TUPLE_EAT_2)(134, s) NDNBOOST_PP_IF(p(134, s), NDNBOOST_PP_FOR_134, NDNBOOST_PP_TUPLE_EAT_4)(o(134, s), p, o, m)
+# define NDNBOOST_PP_FOR_134(s, p, o, m) NDNBOOST_PP_IF(p(135, s), m, NDNBOOST_PP_TUPLE_EAT_2)(135, s) NDNBOOST_PP_IF(p(135, s), NDNBOOST_PP_FOR_135, NDNBOOST_PP_TUPLE_EAT_4)(o(135, s), p, o, m)
+# define NDNBOOST_PP_FOR_135(s, p, o, m) NDNBOOST_PP_IF(p(136, s), m, NDNBOOST_PP_TUPLE_EAT_2)(136, s) NDNBOOST_PP_IF(p(136, s), NDNBOOST_PP_FOR_136, NDNBOOST_PP_TUPLE_EAT_4)(o(136, s), p, o, m)
+# define NDNBOOST_PP_FOR_136(s, p, o, m) NDNBOOST_PP_IF(p(137, s), m, NDNBOOST_PP_TUPLE_EAT_2)(137, s) NDNBOOST_PP_IF(p(137, s), NDNBOOST_PP_FOR_137, NDNBOOST_PP_TUPLE_EAT_4)(o(137, s), p, o, m)
+# define NDNBOOST_PP_FOR_137(s, p, o, m) NDNBOOST_PP_IF(p(138, s), m, NDNBOOST_PP_TUPLE_EAT_2)(138, s) NDNBOOST_PP_IF(p(138, s), NDNBOOST_PP_FOR_138, NDNBOOST_PP_TUPLE_EAT_4)(o(138, s), p, o, m)
+# define NDNBOOST_PP_FOR_138(s, p, o, m) NDNBOOST_PP_IF(p(139, s), m, NDNBOOST_PP_TUPLE_EAT_2)(139, s) NDNBOOST_PP_IF(p(139, s), NDNBOOST_PP_FOR_139, NDNBOOST_PP_TUPLE_EAT_4)(o(139, s), p, o, m)
+# define NDNBOOST_PP_FOR_139(s, p, o, m) NDNBOOST_PP_IF(p(140, s), m, NDNBOOST_PP_TUPLE_EAT_2)(140, s) NDNBOOST_PP_IF(p(140, s), NDNBOOST_PP_FOR_140, NDNBOOST_PP_TUPLE_EAT_4)(o(140, s), p, o, m)
+# define NDNBOOST_PP_FOR_140(s, p, o, m) NDNBOOST_PP_IF(p(141, s), m, NDNBOOST_PP_TUPLE_EAT_2)(141, s) NDNBOOST_PP_IF(p(141, s), NDNBOOST_PP_FOR_141, NDNBOOST_PP_TUPLE_EAT_4)(o(141, s), p, o, m)
+# define NDNBOOST_PP_FOR_141(s, p, o, m) NDNBOOST_PP_IF(p(142, s), m, NDNBOOST_PP_TUPLE_EAT_2)(142, s) NDNBOOST_PP_IF(p(142, s), NDNBOOST_PP_FOR_142, NDNBOOST_PP_TUPLE_EAT_4)(o(142, s), p, o, m)
+# define NDNBOOST_PP_FOR_142(s, p, o, m) NDNBOOST_PP_IF(p(143, s), m, NDNBOOST_PP_TUPLE_EAT_2)(143, s) NDNBOOST_PP_IF(p(143, s), NDNBOOST_PP_FOR_143, NDNBOOST_PP_TUPLE_EAT_4)(o(143, s), p, o, m)
+# define NDNBOOST_PP_FOR_143(s, p, o, m) NDNBOOST_PP_IF(p(144, s), m, NDNBOOST_PP_TUPLE_EAT_2)(144, s) NDNBOOST_PP_IF(p(144, s), NDNBOOST_PP_FOR_144, NDNBOOST_PP_TUPLE_EAT_4)(o(144, s), p, o, m)
+# define NDNBOOST_PP_FOR_144(s, p, o, m) NDNBOOST_PP_IF(p(145, s), m, NDNBOOST_PP_TUPLE_EAT_2)(145, s) NDNBOOST_PP_IF(p(145, s), NDNBOOST_PP_FOR_145, NDNBOOST_PP_TUPLE_EAT_4)(o(145, s), p, o, m)
+# define NDNBOOST_PP_FOR_145(s, p, o, m) NDNBOOST_PP_IF(p(146, s), m, NDNBOOST_PP_TUPLE_EAT_2)(146, s) NDNBOOST_PP_IF(p(146, s), NDNBOOST_PP_FOR_146, NDNBOOST_PP_TUPLE_EAT_4)(o(146, s), p, o, m)
+# define NDNBOOST_PP_FOR_146(s, p, o, m) NDNBOOST_PP_IF(p(147, s), m, NDNBOOST_PP_TUPLE_EAT_2)(147, s) NDNBOOST_PP_IF(p(147, s), NDNBOOST_PP_FOR_147, NDNBOOST_PP_TUPLE_EAT_4)(o(147, s), p, o, m)
+# define NDNBOOST_PP_FOR_147(s, p, o, m) NDNBOOST_PP_IF(p(148, s), m, NDNBOOST_PP_TUPLE_EAT_2)(148, s) NDNBOOST_PP_IF(p(148, s), NDNBOOST_PP_FOR_148, NDNBOOST_PP_TUPLE_EAT_4)(o(148, s), p, o, m)
+# define NDNBOOST_PP_FOR_148(s, p, o, m) NDNBOOST_PP_IF(p(149, s), m, NDNBOOST_PP_TUPLE_EAT_2)(149, s) NDNBOOST_PP_IF(p(149, s), NDNBOOST_PP_FOR_149, NDNBOOST_PP_TUPLE_EAT_4)(o(149, s), p, o, m)
+# define NDNBOOST_PP_FOR_149(s, p, o, m) NDNBOOST_PP_IF(p(150, s), m, NDNBOOST_PP_TUPLE_EAT_2)(150, s) NDNBOOST_PP_IF(p(150, s), NDNBOOST_PP_FOR_150, NDNBOOST_PP_TUPLE_EAT_4)(o(150, s), p, o, m)
+# define NDNBOOST_PP_FOR_150(s, p, o, m) NDNBOOST_PP_IF(p(151, s), m, NDNBOOST_PP_TUPLE_EAT_2)(151, s) NDNBOOST_PP_IF(p(151, s), NDNBOOST_PP_FOR_151, NDNBOOST_PP_TUPLE_EAT_4)(o(151, s), p, o, m)
+# define NDNBOOST_PP_FOR_151(s, p, o, m) NDNBOOST_PP_IF(p(152, s), m, NDNBOOST_PP_TUPLE_EAT_2)(152, s) NDNBOOST_PP_IF(p(152, s), NDNBOOST_PP_FOR_152, NDNBOOST_PP_TUPLE_EAT_4)(o(152, s), p, o, m)
+# define NDNBOOST_PP_FOR_152(s, p, o, m) NDNBOOST_PP_IF(p(153, s), m, NDNBOOST_PP_TUPLE_EAT_2)(153, s) NDNBOOST_PP_IF(p(153, s), NDNBOOST_PP_FOR_153, NDNBOOST_PP_TUPLE_EAT_4)(o(153, s), p, o, m)
+# define NDNBOOST_PP_FOR_153(s, p, o, m) NDNBOOST_PP_IF(p(154, s), m, NDNBOOST_PP_TUPLE_EAT_2)(154, s) NDNBOOST_PP_IF(p(154, s), NDNBOOST_PP_FOR_154, NDNBOOST_PP_TUPLE_EAT_4)(o(154, s), p, o, m)
+# define NDNBOOST_PP_FOR_154(s, p, o, m) NDNBOOST_PP_IF(p(155, s), m, NDNBOOST_PP_TUPLE_EAT_2)(155, s) NDNBOOST_PP_IF(p(155, s), NDNBOOST_PP_FOR_155, NDNBOOST_PP_TUPLE_EAT_4)(o(155, s), p, o, m)
+# define NDNBOOST_PP_FOR_155(s, p, o, m) NDNBOOST_PP_IF(p(156, s), m, NDNBOOST_PP_TUPLE_EAT_2)(156, s) NDNBOOST_PP_IF(p(156, s), NDNBOOST_PP_FOR_156, NDNBOOST_PP_TUPLE_EAT_4)(o(156, s), p, o, m)
+# define NDNBOOST_PP_FOR_156(s, p, o, m) NDNBOOST_PP_IF(p(157, s), m, NDNBOOST_PP_TUPLE_EAT_2)(157, s) NDNBOOST_PP_IF(p(157, s), NDNBOOST_PP_FOR_157, NDNBOOST_PP_TUPLE_EAT_4)(o(157, s), p, o, m)
+# define NDNBOOST_PP_FOR_157(s, p, o, m) NDNBOOST_PP_IF(p(158, s), m, NDNBOOST_PP_TUPLE_EAT_2)(158, s) NDNBOOST_PP_IF(p(158, s), NDNBOOST_PP_FOR_158, NDNBOOST_PP_TUPLE_EAT_4)(o(158, s), p, o, m)
+# define NDNBOOST_PP_FOR_158(s, p, o, m) NDNBOOST_PP_IF(p(159, s), m, NDNBOOST_PP_TUPLE_EAT_2)(159, s) NDNBOOST_PP_IF(p(159, s), NDNBOOST_PP_FOR_159, NDNBOOST_PP_TUPLE_EAT_4)(o(159, s), p, o, m)
+# define NDNBOOST_PP_FOR_159(s, p, o, m) NDNBOOST_PP_IF(p(160, s), m, NDNBOOST_PP_TUPLE_EAT_2)(160, s) NDNBOOST_PP_IF(p(160, s), NDNBOOST_PP_FOR_160, NDNBOOST_PP_TUPLE_EAT_4)(o(160, s), p, o, m)
+# define NDNBOOST_PP_FOR_160(s, p, o, m) NDNBOOST_PP_IF(p(161, s), m, NDNBOOST_PP_TUPLE_EAT_2)(161, s) NDNBOOST_PP_IF(p(161, s), NDNBOOST_PP_FOR_161, NDNBOOST_PP_TUPLE_EAT_4)(o(161, s), p, o, m)
+# define NDNBOOST_PP_FOR_161(s, p, o, m) NDNBOOST_PP_IF(p(162, s), m, NDNBOOST_PP_TUPLE_EAT_2)(162, s) NDNBOOST_PP_IF(p(162, s), NDNBOOST_PP_FOR_162, NDNBOOST_PP_TUPLE_EAT_4)(o(162, s), p, o, m)
+# define NDNBOOST_PP_FOR_162(s, p, o, m) NDNBOOST_PP_IF(p(163, s), m, NDNBOOST_PP_TUPLE_EAT_2)(163, s) NDNBOOST_PP_IF(p(163, s), NDNBOOST_PP_FOR_163, NDNBOOST_PP_TUPLE_EAT_4)(o(163, s), p, o, m)
+# define NDNBOOST_PP_FOR_163(s, p, o, m) NDNBOOST_PP_IF(p(164, s), m, NDNBOOST_PP_TUPLE_EAT_2)(164, s) NDNBOOST_PP_IF(p(164, s), NDNBOOST_PP_FOR_164, NDNBOOST_PP_TUPLE_EAT_4)(o(164, s), p, o, m)
+# define NDNBOOST_PP_FOR_164(s, p, o, m) NDNBOOST_PP_IF(p(165, s), m, NDNBOOST_PP_TUPLE_EAT_2)(165, s) NDNBOOST_PP_IF(p(165, s), NDNBOOST_PP_FOR_165, NDNBOOST_PP_TUPLE_EAT_4)(o(165, s), p, o, m)
+# define NDNBOOST_PP_FOR_165(s, p, o, m) NDNBOOST_PP_IF(p(166, s), m, NDNBOOST_PP_TUPLE_EAT_2)(166, s) NDNBOOST_PP_IF(p(166, s), NDNBOOST_PP_FOR_166, NDNBOOST_PP_TUPLE_EAT_4)(o(166, s), p, o, m)
+# define NDNBOOST_PP_FOR_166(s, p, o, m) NDNBOOST_PP_IF(p(167, s), m, NDNBOOST_PP_TUPLE_EAT_2)(167, s) NDNBOOST_PP_IF(p(167, s), NDNBOOST_PP_FOR_167, NDNBOOST_PP_TUPLE_EAT_4)(o(167, s), p, o, m)
+# define NDNBOOST_PP_FOR_167(s, p, o, m) NDNBOOST_PP_IF(p(168, s), m, NDNBOOST_PP_TUPLE_EAT_2)(168, s) NDNBOOST_PP_IF(p(168, s), NDNBOOST_PP_FOR_168, NDNBOOST_PP_TUPLE_EAT_4)(o(168, s), p, o, m)
+# define NDNBOOST_PP_FOR_168(s, p, o, m) NDNBOOST_PP_IF(p(169, s), m, NDNBOOST_PP_TUPLE_EAT_2)(169, s) NDNBOOST_PP_IF(p(169, s), NDNBOOST_PP_FOR_169, NDNBOOST_PP_TUPLE_EAT_4)(o(169, s), p, o, m)
+# define NDNBOOST_PP_FOR_169(s, p, o, m) NDNBOOST_PP_IF(p(170, s), m, NDNBOOST_PP_TUPLE_EAT_2)(170, s) NDNBOOST_PP_IF(p(170, s), NDNBOOST_PP_FOR_170, NDNBOOST_PP_TUPLE_EAT_4)(o(170, s), p, o, m)
+# define NDNBOOST_PP_FOR_170(s, p, o, m) NDNBOOST_PP_IF(p(171, s), m, NDNBOOST_PP_TUPLE_EAT_2)(171, s) NDNBOOST_PP_IF(p(171, s), NDNBOOST_PP_FOR_171, NDNBOOST_PP_TUPLE_EAT_4)(o(171, s), p, o, m)
+# define NDNBOOST_PP_FOR_171(s, p, o, m) NDNBOOST_PP_IF(p(172, s), m, NDNBOOST_PP_TUPLE_EAT_2)(172, s) NDNBOOST_PP_IF(p(172, s), NDNBOOST_PP_FOR_172, NDNBOOST_PP_TUPLE_EAT_4)(o(172, s), p, o, m)
+# define NDNBOOST_PP_FOR_172(s, p, o, m) NDNBOOST_PP_IF(p(173, s), m, NDNBOOST_PP_TUPLE_EAT_2)(173, s) NDNBOOST_PP_IF(p(173, s), NDNBOOST_PP_FOR_173, NDNBOOST_PP_TUPLE_EAT_4)(o(173, s), p, o, m)
+# define NDNBOOST_PP_FOR_173(s, p, o, m) NDNBOOST_PP_IF(p(174, s), m, NDNBOOST_PP_TUPLE_EAT_2)(174, s) NDNBOOST_PP_IF(p(174, s), NDNBOOST_PP_FOR_174, NDNBOOST_PP_TUPLE_EAT_4)(o(174, s), p, o, m)
+# define NDNBOOST_PP_FOR_174(s, p, o, m) NDNBOOST_PP_IF(p(175, s), m, NDNBOOST_PP_TUPLE_EAT_2)(175, s) NDNBOOST_PP_IF(p(175, s), NDNBOOST_PP_FOR_175, NDNBOOST_PP_TUPLE_EAT_4)(o(175, s), p, o, m)
+# define NDNBOOST_PP_FOR_175(s, p, o, m) NDNBOOST_PP_IF(p(176, s), m, NDNBOOST_PP_TUPLE_EAT_2)(176, s) NDNBOOST_PP_IF(p(176, s), NDNBOOST_PP_FOR_176, NDNBOOST_PP_TUPLE_EAT_4)(o(176, s), p, o, m)
+# define NDNBOOST_PP_FOR_176(s, p, o, m) NDNBOOST_PP_IF(p(177, s), m, NDNBOOST_PP_TUPLE_EAT_2)(177, s) NDNBOOST_PP_IF(p(177, s), NDNBOOST_PP_FOR_177, NDNBOOST_PP_TUPLE_EAT_4)(o(177, s), p, o, m)
+# define NDNBOOST_PP_FOR_177(s, p, o, m) NDNBOOST_PP_IF(p(178, s), m, NDNBOOST_PP_TUPLE_EAT_2)(178, s) NDNBOOST_PP_IF(p(178, s), NDNBOOST_PP_FOR_178, NDNBOOST_PP_TUPLE_EAT_4)(o(178, s), p, o, m)
+# define NDNBOOST_PP_FOR_178(s, p, o, m) NDNBOOST_PP_IF(p(179, s), m, NDNBOOST_PP_TUPLE_EAT_2)(179, s) NDNBOOST_PP_IF(p(179, s), NDNBOOST_PP_FOR_179, NDNBOOST_PP_TUPLE_EAT_4)(o(179, s), p, o, m)
+# define NDNBOOST_PP_FOR_179(s, p, o, m) NDNBOOST_PP_IF(p(180, s), m, NDNBOOST_PP_TUPLE_EAT_2)(180, s) NDNBOOST_PP_IF(p(180, s), NDNBOOST_PP_FOR_180, NDNBOOST_PP_TUPLE_EAT_4)(o(180, s), p, o, m)
+# define NDNBOOST_PP_FOR_180(s, p, o, m) NDNBOOST_PP_IF(p(181, s), m, NDNBOOST_PP_TUPLE_EAT_2)(181, s) NDNBOOST_PP_IF(p(181, s), NDNBOOST_PP_FOR_181, NDNBOOST_PP_TUPLE_EAT_4)(o(181, s), p, o, m)
+# define NDNBOOST_PP_FOR_181(s, p, o, m) NDNBOOST_PP_IF(p(182, s), m, NDNBOOST_PP_TUPLE_EAT_2)(182, s) NDNBOOST_PP_IF(p(182, s), NDNBOOST_PP_FOR_182, NDNBOOST_PP_TUPLE_EAT_4)(o(182, s), p, o, m)
+# define NDNBOOST_PP_FOR_182(s, p, o, m) NDNBOOST_PP_IF(p(183, s), m, NDNBOOST_PP_TUPLE_EAT_2)(183, s) NDNBOOST_PP_IF(p(183, s), NDNBOOST_PP_FOR_183, NDNBOOST_PP_TUPLE_EAT_4)(o(183, s), p, o, m)
+# define NDNBOOST_PP_FOR_183(s, p, o, m) NDNBOOST_PP_IF(p(184, s), m, NDNBOOST_PP_TUPLE_EAT_2)(184, s) NDNBOOST_PP_IF(p(184, s), NDNBOOST_PP_FOR_184, NDNBOOST_PP_TUPLE_EAT_4)(o(184, s), p, o, m)
+# define NDNBOOST_PP_FOR_184(s, p, o, m) NDNBOOST_PP_IF(p(185, s), m, NDNBOOST_PP_TUPLE_EAT_2)(185, s) NDNBOOST_PP_IF(p(185, s), NDNBOOST_PP_FOR_185, NDNBOOST_PP_TUPLE_EAT_4)(o(185, s), p, o, m)
+# define NDNBOOST_PP_FOR_185(s, p, o, m) NDNBOOST_PP_IF(p(186, s), m, NDNBOOST_PP_TUPLE_EAT_2)(186, s) NDNBOOST_PP_IF(p(186, s), NDNBOOST_PP_FOR_186, NDNBOOST_PP_TUPLE_EAT_4)(o(186, s), p, o, m)
+# define NDNBOOST_PP_FOR_186(s, p, o, m) NDNBOOST_PP_IF(p(187, s), m, NDNBOOST_PP_TUPLE_EAT_2)(187, s) NDNBOOST_PP_IF(p(187, s), NDNBOOST_PP_FOR_187, NDNBOOST_PP_TUPLE_EAT_4)(o(187, s), p, o, m)
+# define NDNBOOST_PP_FOR_187(s, p, o, m) NDNBOOST_PP_IF(p(188, s), m, NDNBOOST_PP_TUPLE_EAT_2)(188, s) NDNBOOST_PP_IF(p(188, s), NDNBOOST_PP_FOR_188, NDNBOOST_PP_TUPLE_EAT_4)(o(188, s), p, o, m)
+# define NDNBOOST_PP_FOR_188(s, p, o, m) NDNBOOST_PP_IF(p(189, s), m, NDNBOOST_PP_TUPLE_EAT_2)(189, s) NDNBOOST_PP_IF(p(189, s), NDNBOOST_PP_FOR_189, NDNBOOST_PP_TUPLE_EAT_4)(o(189, s), p, o, m)
+# define NDNBOOST_PP_FOR_189(s, p, o, m) NDNBOOST_PP_IF(p(190, s), m, NDNBOOST_PP_TUPLE_EAT_2)(190, s) NDNBOOST_PP_IF(p(190, s), NDNBOOST_PP_FOR_190, NDNBOOST_PP_TUPLE_EAT_4)(o(190, s), p, o, m)
+# define NDNBOOST_PP_FOR_190(s, p, o, m) NDNBOOST_PP_IF(p(191, s), m, NDNBOOST_PP_TUPLE_EAT_2)(191, s) NDNBOOST_PP_IF(p(191, s), NDNBOOST_PP_FOR_191, NDNBOOST_PP_TUPLE_EAT_4)(o(191, s), p, o, m)
+# define NDNBOOST_PP_FOR_191(s, p, o, m) NDNBOOST_PP_IF(p(192, s), m, NDNBOOST_PP_TUPLE_EAT_2)(192, s) NDNBOOST_PP_IF(p(192, s), NDNBOOST_PP_FOR_192, NDNBOOST_PP_TUPLE_EAT_4)(o(192, s), p, o, m)
+# define NDNBOOST_PP_FOR_192(s, p, o, m) NDNBOOST_PP_IF(p(193, s), m, NDNBOOST_PP_TUPLE_EAT_2)(193, s) NDNBOOST_PP_IF(p(193, s), NDNBOOST_PP_FOR_193, NDNBOOST_PP_TUPLE_EAT_4)(o(193, s), p, o, m)
+# define NDNBOOST_PP_FOR_193(s, p, o, m) NDNBOOST_PP_IF(p(194, s), m, NDNBOOST_PP_TUPLE_EAT_2)(194, s) NDNBOOST_PP_IF(p(194, s), NDNBOOST_PP_FOR_194, NDNBOOST_PP_TUPLE_EAT_4)(o(194, s), p, o, m)
+# define NDNBOOST_PP_FOR_194(s, p, o, m) NDNBOOST_PP_IF(p(195, s), m, NDNBOOST_PP_TUPLE_EAT_2)(195, s) NDNBOOST_PP_IF(p(195, s), NDNBOOST_PP_FOR_195, NDNBOOST_PP_TUPLE_EAT_4)(o(195, s), p, o, m)
+# define NDNBOOST_PP_FOR_195(s, p, o, m) NDNBOOST_PP_IF(p(196, s), m, NDNBOOST_PP_TUPLE_EAT_2)(196, s) NDNBOOST_PP_IF(p(196, s), NDNBOOST_PP_FOR_196, NDNBOOST_PP_TUPLE_EAT_4)(o(196, s), p, o, m)
+# define NDNBOOST_PP_FOR_196(s, p, o, m) NDNBOOST_PP_IF(p(197, s), m, NDNBOOST_PP_TUPLE_EAT_2)(197, s) NDNBOOST_PP_IF(p(197, s), NDNBOOST_PP_FOR_197, NDNBOOST_PP_TUPLE_EAT_4)(o(197, s), p, o, m)
+# define NDNBOOST_PP_FOR_197(s, p, o, m) NDNBOOST_PP_IF(p(198, s), m, NDNBOOST_PP_TUPLE_EAT_2)(198, s) NDNBOOST_PP_IF(p(198, s), NDNBOOST_PP_FOR_198, NDNBOOST_PP_TUPLE_EAT_4)(o(198, s), p, o, m)
+# define NDNBOOST_PP_FOR_198(s, p, o, m) NDNBOOST_PP_IF(p(199, s), m, NDNBOOST_PP_TUPLE_EAT_2)(199, s) NDNBOOST_PP_IF(p(199, s), NDNBOOST_PP_FOR_199, NDNBOOST_PP_TUPLE_EAT_4)(o(199, s), p, o, m)
+# define NDNBOOST_PP_FOR_199(s, p, o, m) NDNBOOST_PP_IF(p(200, s), m, NDNBOOST_PP_TUPLE_EAT_2)(200, s) NDNBOOST_PP_IF(p(200, s), NDNBOOST_PP_FOR_200, NDNBOOST_PP_TUPLE_EAT_4)(o(200, s), p, o, m)
+# define NDNBOOST_PP_FOR_200(s, p, o, m) NDNBOOST_PP_IF(p(201, s), m, NDNBOOST_PP_TUPLE_EAT_2)(201, s) NDNBOOST_PP_IF(p(201, s), NDNBOOST_PP_FOR_201, NDNBOOST_PP_TUPLE_EAT_4)(o(201, s), p, o, m)
+# define NDNBOOST_PP_FOR_201(s, p, o, m) NDNBOOST_PP_IF(p(202, s), m, NDNBOOST_PP_TUPLE_EAT_2)(202, s) NDNBOOST_PP_IF(p(202, s), NDNBOOST_PP_FOR_202, NDNBOOST_PP_TUPLE_EAT_4)(o(202, s), p, o, m)
+# define NDNBOOST_PP_FOR_202(s, p, o, m) NDNBOOST_PP_IF(p(203, s), m, NDNBOOST_PP_TUPLE_EAT_2)(203, s) NDNBOOST_PP_IF(p(203, s), NDNBOOST_PP_FOR_203, NDNBOOST_PP_TUPLE_EAT_4)(o(203, s), p, o, m)
+# define NDNBOOST_PP_FOR_203(s, p, o, m) NDNBOOST_PP_IF(p(204, s), m, NDNBOOST_PP_TUPLE_EAT_2)(204, s) NDNBOOST_PP_IF(p(204, s), NDNBOOST_PP_FOR_204, NDNBOOST_PP_TUPLE_EAT_4)(o(204, s), p, o, m)
+# define NDNBOOST_PP_FOR_204(s, p, o, m) NDNBOOST_PP_IF(p(205, s), m, NDNBOOST_PP_TUPLE_EAT_2)(205, s) NDNBOOST_PP_IF(p(205, s), NDNBOOST_PP_FOR_205, NDNBOOST_PP_TUPLE_EAT_4)(o(205, s), p, o, m)
+# define NDNBOOST_PP_FOR_205(s, p, o, m) NDNBOOST_PP_IF(p(206, s), m, NDNBOOST_PP_TUPLE_EAT_2)(206, s) NDNBOOST_PP_IF(p(206, s), NDNBOOST_PP_FOR_206, NDNBOOST_PP_TUPLE_EAT_4)(o(206, s), p, o, m)
+# define NDNBOOST_PP_FOR_206(s, p, o, m) NDNBOOST_PP_IF(p(207, s), m, NDNBOOST_PP_TUPLE_EAT_2)(207, s) NDNBOOST_PP_IF(p(207, s), NDNBOOST_PP_FOR_207, NDNBOOST_PP_TUPLE_EAT_4)(o(207, s), p, o, m)
+# define NDNBOOST_PP_FOR_207(s, p, o, m) NDNBOOST_PP_IF(p(208, s), m, NDNBOOST_PP_TUPLE_EAT_2)(208, s) NDNBOOST_PP_IF(p(208, s), NDNBOOST_PP_FOR_208, NDNBOOST_PP_TUPLE_EAT_4)(o(208, s), p, o, m)
+# define NDNBOOST_PP_FOR_208(s, p, o, m) NDNBOOST_PP_IF(p(209, s), m, NDNBOOST_PP_TUPLE_EAT_2)(209, s) NDNBOOST_PP_IF(p(209, s), NDNBOOST_PP_FOR_209, NDNBOOST_PP_TUPLE_EAT_4)(o(209, s), p, o, m)
+# define NDNBOOST_PP_FOR_209(s, p, o, m) NDNBOOST_PP_IF(p(210, s), m, NDNBOOST_PP_TUPLE_EAT_2)(210, s) NDNBOOST_PP_IF(p(210, s), NDNBOOST_PP_FOR_210, NDNBOOST_PP_TUPLE_EAT_4)(o(210, s), p, o, m)
+# define NDNBOOST_PP_FOR_210(s, p, o, m) NDNBOOST_PP_IF(p(211, s), m, NDNBOOST_PP_TUPLE_EAT_2)(211, s) NDNBOOST_PP_IF(p(211, s), NDNBOOST_PP_FOR_211, NDNBOOST_PP_TUPLE_EAT_4)(o(211, s), p, o, m)
+# define NDNBOOST_PP_FOR_211(s, p, o, m) NDNBOOST_PP_IF(p(212, s), m, NDNBOOST_PP_TUPLE_EAT_2)(212, s) NDNBOOST_PP_IF(p(212, s), NDNBOOST_PP_FOR_212, NDNBOOST_PP_TUPLE_EAT_4)(o(212, s), p, o, m)
+# define NDNBOOST_PP_FOR_212(s, p, o, m) NDNBOOST_PP_IF(p(213, s), m, NDNBOOST_PP_TUPLE_EAT_2)(213, s) NDNBOOST_PP_IF(p(213, s), NDNBOOST_PP_FOR_213, NDNBOOST_PP_TUPLE_EAT_4)(o(213, s), p, o, m)
+# define NDNBOOST_PP_FOR_213(s, p, o, m) NDNBOOST_PP_IF(p(214, s), m, NDNBOOST_PP_TUPLE_EAT_2)(214, s) NDNBOOST_PP_IF(p(214, s), NDNBOOST_PP_FOR_214, NDNBOOST_PP_TUPLE_EAT_4)(o(214, s), p, o, m)
+# define NDNBOOST_PP_FOR_214(s, p, o, m) NDNBOOST_PP_IF(p(215, s), m, NDNBOOST_PP_TUPLE_EAT_2)(215, s) NDNBOOST_PP_IF(p(215, s), NDNBOOST_PP_FOR_215, NDNBOOST_PP_TUPLE_EAT_4)(o(215, s), p, o, m)
+# define NDNBOOST_PP_FOR_215(s, p, o, m) NDNBOOST_PP_IF(p(216, s), m, NDNBOOST_PP_TUPLE_EAT_2)(216, s) NDNBOOST_PP_IF(p(216, s), NDNBOOST_PP_FOR_216, NDNBOOST_PP_TUPLE_EAT_4)(o(216, s), p, o, m)
+# define NDNBOOST_PP_FOR_216(s, p, o, m) NDNBOOST_PP_IF(p(217, s), m, NDNBOOST_PP_TUPLE_EAT_2)(217, s) NDNBOOST_PP_IF(p(217, s), NDNBOOST_PP_FOR_217, NDNBOOST_PP_TUPLE_EAT_4)(o(217, s), p, o, m)
+# define NDNBOOST_PP_FOR_217(s, p, o, m) NDNBOOST_PP_IF(p(218, s), m, NDNBOOST_PP_TUPLE_EAT_2)(218, s) NDNBOOST_PP_IF(p(218, s), NDNBOOST_PP_FOR_218, NDNBOOST_PP_TUPLE_EAT_4)(o(218, s), p, o, m)
+# define NDNBOOST_PP_FOR_218(s, p, o, m) NDNBOOST_PP_IF(p(219, s), m, NDNBOOST_PP_TUPLE_EAT_2)(219, s) NDNBOOST_PP_IF(p(219, s), NDNBOOST_PP_FOR_219, NDNBOOST_PP_TUPLE_EAT_4)(o(219, s), p, o, m)
+# define NDNBOOST_PP_FOR_219(s, p, o, m) NDNBOOST_PP_IF(p(220, s), m, NDNBOOST_PP_TUPLE_EAT_2)(220, s) NDNBOOST_PP_IF(p(220, s), NDNBOOST_PP_FOR_220, NDNBOOST_PP_TUPLE_EAT_4)(o(220, s), p, o, m)
+# define NDNBOOST_PP_FOR_220(s, p, o, m) NDNBOOST_PP_IF(p(221, s), m, NDNBOOST_PP_TUPLE_EAT_2)(221, s) NDNBOOST_PP_IF(p(221, s), NDNBOOST_PP_FOR_221, NDNBOOST_PP_TUPLE_EAT_4)(o(221, s), p, o, m)
+# define NDNBOOST_PP_FOR_221(s, p, o, m) NDNBOOST_PP_IF(p(222, s), m, NDNBOOST_PP_TUPLE_EAT_2)(222, s) NDNBOOST_PP_IF(p(222, s), NDNBOOST_PP_FOR_222, NDNBOOST_PP_TUPLE_EAT_4)(o(222, s), p, o, m)
+# define NDNBOOST_PP_FOR_222(s, p, o, m) NDNBOOST_PP_IF(p(223, s), m, NDNBOOST_PP_TUPLE_EAT_2)(223, s) NDNBOOST_PP_IF(p(223, s), NDNBOOST_PP_FOR_223, NDNBOOST_PP_TUPLE_EAT_4)(o(223, s), p, o, m)
+# define NDNBOOST_PP_FOR_223(s, p, o, m) NDNBOOST_PP_IF(p(224, s), m, NDNBOOST_PP_TUPLE_EAT_2)(224, s) NDNBOOST_PP_IF(p(224, s), NDNBOOST_PP_FOR_224, NDNBOOST_PP_TUPLE_EAT_4)(o(224, s), p, o, m)
+# define NDNBOOST_PP_FOR_224(s, p, o, m) NDNBOOST_PP_IF(p(225, s), m, NDNBOOST_PP_TUPLE_EAT_2)(225, s) NDNBOOST_PP_IF(p(225, s), NDNBOOST_PP_FOR_225, NDNBOOST_PP_TUPLE_EAT_4)(o(225, s), p, o, m)
+# define NDNBOOST_PP_FOR_225(s, p, o, m) NDNBOOST_PP_IF(p(226, s), m, NDNBOOST_PP_TUPLE_EAT_2)(226, s) NDNBOOST_PP_IF(p(226, s), NDNBOOST_PP_FOR_226, NDNBOOST_PP_TUPLE_EAT_4)(o(226, s), p, o, m)
+# define NDNBOOST_PP_FOR_226(s, p, o, m) NDNBOOST_PP_IF(p(227, s), m, NDNBOOST_PP_TUPLE_EAT_2)(227, s) NDNBOOST_PP_IF(p(227, s), NDNBOOST_PP_FOR_227, NDNBOOST_PP_TUPLE_EAT_4)(o(227, s), p, o, m)
+# define NDNBOOST_PP_FOR_227(s, p, o, m) NDNBOOST_PP_IF(p(228, s), m, NDNBOOST_PP_TUPLE_EAT_2)(228, s) NDNBOOST_PP_IF(p(228, s), NDNBOOST_PP_FOR_228, NDNBOOST_PP_TUPLE_EAT_4)(o(228, s), p, o, m)
+# define NDNBOOST_PP_FOR_228(s, p, o, m) NDNBOOST_PP_IF(p(229, s), m, NDNBOOST_PP_TUPLE_EAT_2)(229, s) NDNBOOST_PP_IF(p(229, s), NDNBOOST_PP_FOR_229, NDNBOOST_PP_TUPLE_EAT_4)(o(229, s), p, o, m)
+# define NDNBOOST_PP_FOR_229(s, p, o, m) NDNBOOST_PP_IF(p(230, s), m, NDNBOOST_PP_TUPLE_EAT_2)(230, s) NDNBOOST_PP_IF(p(230, s), NDNBOOST_PP_FOR_230, NDNBOOST_PP_TUPLE_EAT_4)(o(230, s), p, o, m)
+# define NDNBOOST_PP_FOR_230(s, p, o, m) NDNBOOST_PP_IF(p(231, s), m, NDNBOOST_PP_TUPLE_EAT_2)(231, s) NDNBOOST_PP_IF(p(231, s), NDNBOOST_PP_FOR_231, NDNBOOST_PP_TUPLE_EAT_4)(o(231, s), p, o, m)
+# define NDNBOOST_PP_FOR_231(s, p, o, m) NDNBOOST_PP_IF(p(232, s), m, NDNBOOST_PP_TUPLE_EAT_2)(232, s) NDNBOOST_PP_IF(p(232, s), NDNBOOST_PP_FOR_232, NDNBOOST_PP_TUPLE_EAT_4)(o(232, s), p, o, m)
+# define NDNBOOST_PP_FOR_232(s, p, o, m) NDNBOOST_PP_IF(p(233, s), m, NDNBOOST_PP_TUPLE_EAT_2)(233, s) NDNBOOST_PP_IF(p(233, s), NDNBOOST_PP_FOR_233, NDNBOOST_PP_TUPLE_EAT_4)(o(233, s), p, o, m)
+# define NDNBOOST_PP_FOR_233(s, p, o, m) NDNBOOST_PP_IF(p(234, s), m, NDNBOOST_PP_TUPLE_EAT_2)(234, s) NDNBOOST_PP_IF(p(234, s), NDNBOOST_PP_FOR_234, NDNBOOST_PP_TUPLE_EAT_4)(o(234, s), p, o, m)
+# define NDNBOOST_PP_FOR_234(s, p, o, m) NDNBOOST_PP_IF(p(235, s), m, NDNBOOST_PP_TUPLE_EAT_2)(235, s) NDNBOOST_PP_IF(p(235, s), NDNBOOST_PP_FOR_235, NDNBOOST_PP_TUPLE_EAT_4)(o(235, s), p, o, m)
+# define NDNBOOST_PP_FOR_235(s, p, o, m) NDNBOOST_PP_IF(p(236, s), m, NDNBOOST_PP_TUPLE_EAT_2)(236, s) NDNBOOST_PP_IF(p(236, s), NDNBOOST_PP_FOR_236, NDNBOOST_PP_TUPLE_EAT_4)(o(236, s), p, o, m)
+# define NDNBOOST_PP_FOR_236(s, p, o, m) NDNBOOST_PP_IF(p(237, s), m, NDNBOOST_PP_TUPLE_EAT_2)(237, s) NDNBOOST_PP_IF(p(237, s), NDNBOOST_PP_FOR_237, NDNBOOST_PP_TUPLE_EAT_4)(o(237, s), p, o, m)
+# define NDNBOOST_PP_FOR_237(s, p, o, m) NDNBOOST_PP_IF(p(238, s), m, NDNBOOST_PP_TUPLE_EAT_2)(238, s) NDNBOOST_PP_IF(p(238, s), NDNBOOST_PP_FOR_238, NDNBOOST_PP_TUPLE_EAT_4)(o(238, s), p, o, m)
+# define NDNBOOST_PP_FOR_238(s, p, o, m) NDNBOOST_PP_IF(p(239, s), m, NDNBOOST_PP_TUPLE_EAT_2)(239, s) NDNBOOST_PP_IF(p(239, s), NDNBOOST_PP_FOR_239, NDNBOOST_PP_TUPLE_EAT_4)(o(239, s), p, o, m)
+# define NDNBOOST_PP_FOR_239(s, p, o, m) NDNBOOST_PP_IF(p(240, s), m, NDNBOOST_PP_TUPLE_EAT_2)(240, s) NDNBOOST_PP_IF(p(240, s), NDNBOOST_PP_FOR_240, NDNBOOST_PP_TUPLE_EAT_4)(o(240, s), p, o, m)
+# define NDNBOOST_PP_FOR_240(s, p, o, m) NDNBOOST_PP_IF(p(241, s), m, NDNBOOST_PP_TUPLE_EAT_2)(241, s) NDNBOOST_PP_IF(p(241, s), NDNBOOST_PP_FOR_241, NDNBOOST_PP_TUPLE_EAT_4)(o(241, s), p, o, m)
+# define NDNBOOST_PP_FOR_241(s, p, o, m) NDNBOOST_PP_IF(p(242, s), m, NDNBOOST_PP_TUPLE_EAT_2)(242, s) NDNBOOST_PP_IF(p(242, s), NDNBOOST_PP_FOR_242, NDNBOOST_PP_TUPLE_EAT_4)(o(242, s), p, o, m)
+# define NDNBOOST_PP_FOR_242(s, p, o, m) NDNBOOST_PP_IF(p(243, s), m, NDNBOOST_PP_TUPLE_EAT_2)(243, s) NDNBOOST_PP_IF(p(243, s), NDNBOOST_PP_FOR_243, NDNBOOST_PP_TUPLE_EAT_4)(o(243, s), p, o, m)
+# define NDNBOOST_PP_FOR_243(s, p, o, m) NDNBOOST_PP_IF(p(244, s), m, NDNBOOST_PP_TUPLE_EAT_2)(244, s) NDNBOOST_PP_IF(p(244, s), NDNBOOST_PP_FOR_244, NDNBOOST_PP_TUPLE_EAT_4)(o(244, s), p, o, m)
+# define NDNBOOST_PP_FOR_244(s, p, o, m) NDNBOOST_PP_IF(p(245, s), m, NDNBOOST_PP_TUPLE_EAT_2)(245, s) NDNBOOST_PP_IF(p(245, s), NDNBOOST_PP_FOR_245, NDNBOOST_PP_TUPLE_EAT_4)(o(245, s), p, o, m)
+# define NDNBOOST_PP_FOR_245(s, p, o, m) NDNBOOST_PP_IF(p(246, s), m, NDNBOOST_PP_TUPLE_EAT_2)(246, s) NDNBOOST_PP_IF(p(246, s), NDNBOOST_PP_FOR_246, NDNBOOST_PP_TUPLE_EAT_4)(o(246, s), p, o, m)
+# define NDNBOOST_PP_FOR_246(s, p, o, m) NDNBOOST_PP_IF(p(247, s), m, NDNBOOST_PP_TUPLE_EAT_2)(247, s) NDNBOOST_PP_IF(p(247, s), NDNBOOST_PP_FOR_247, NDNBOOST_PP_TUPLE_EAT_4)(o(247, s), p, o, m)
+# define NDNBOOST_PP_FOR_247(s, p, o, m) NDNBOOST_PP_IF(p(248, s), m, NDNBOOST_PP_TUPLE_EAT_2)(248, s) NDNBOOST_PP_IF(p(248, s), NDNBOOST_PP_FOR_248, NDNBOOST_PP_TUPLE_EAT_4)(o(248, s), p, o, m)
+# define NDNBOOST_PP_FOR_248(s, p, o, m) NDNBOOST_PP_IF(p(249, s), m, NDNBOOST_PP_TUPLE_EAT_2)(249, s) NDNBOOST_PP_IF(p(249, s), NDNBOOST_PP_FOR_249, NDNBOOST_PP_TUPLE_EAT_4)(o(249, s), p, o, m)
+# define NDNBOOST_PP_FOR_249(s, p, o, m) NDNBOOST_PP_IF(p(250, s), m, NDNBOOST_PP_TUPLE_EAT_2)(250, s) NDNBOOST_PP_IF(p(250, s), NDNBOOST_PP_FOR_250, NDNBOOST_PP_TUPLE_EAT_4)(o(250, s), p, o, m)
+# define NDNBOOST_PP_FOR_250(s, p, o, m) NDNBOOST_PP_IF(p(251, s), m, NDNBOOST_PP_TUPLE_EAT_2)(251, s) NDNBOOST_PP_IF(p(251, s), NDNBOOST_PP_FOR_251, NDNBOOST_PP_TUPLE_EAT_4)(o(251, s), p, o, m)
+# define NDNBOOST_PP_FOR_251(s, p, o, m) NDNBOOST_PP_IF(p(252, s), m, NDNBOOST_PP_TUPLE_EAT_2)(252, s) NDNBOOST_PP_IF(p(252, s), NDNBOOST_PP_FOR_252, NDNBOOST_PP_TUPLE_EAT_4)(o(252, s), p, o, m)
+# define NDNBOOST_PP_FOR_252(s, p, o, m) NDNBOOST_PP_IF(p(253, s), m, NDNBOOST_PP_TUPLE_EAT_2)(253, s) NDNBOOST_PP_IF(p(253, s), NDNBOOST_PP_FOR_253, NDNBOOST_PP_TUPLE_EAT_4)(o(253, s), p, o, m)
+# define NDNBOOST_PP_FOR_253(s, p, o, m) NDNBOOST_PP_IF(p(254, s), m, NDNBOOST_PP_TUPLE_EAT_2)(254, s) NDNBOOST_PP_IF(p(254, s), NDNBOOST_PP_FOR_254, NDNBOOST_PP_TUPLE_EAT_4)(o(254, s), p, o, m)
+# define NDNBOOST_PP_FOR_254(s, p, o, m) NDNBOOST_PP_IF(p(255, s), m, NDNBOOST_PP_TUPLE_EAT_2)(255, s) NDNBOOST_PP_IF(p(255, s), NDNBOOST_PP_FOR_255, NDNBOOST_PP_TUPLE_EAT_4)(o(255, s), p, o, m)
+# define NDNBOOST_PP_FOR_255(s, p, o, m) NDNBOOST_PP_IF(p(256, s), m, NDNBOOST_PP_TUPLE_EAT_2)(256, s) NDNBOOST_PP_IF(p(256, s), NDNBOOST_PP_FOR_256, NDNBOOST_PP_TUPLE_EAT_4)(o(256, s), p, o, m)
+# define NDNBOOST_PP_FOR_256(s, p, o, m) NDNBOOST_PP_IF(p(257, s), m, NDNBOOST_PP_TUPLE_EAT_2)(257, s) NDNBOOST_PP_IF(p(257, s), NDNBOOST_PP_FOR_257, NDNBOOST_PP_TUPLE_EAT_4)(o(257, s), p, o, m)
 #
 # endif
diff --git a/include/ndnboost/preprocessor/repetition/enum.hpp b/include/ndnboost/preprocessor/repetition/enum.hpp
index eacd944..335cb1c 100644
--- a/include/ndnboost/preprocessor/repetition/enum.hpp
+++ b/include/ndnboost/preprocessor/repetition/enum.hpp
@@ -11,8 +11,8 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_HPP
-# define BOOST_PREPROCESSOR_REPETITION_ENUM_HPP
+# ifndef NDNBOOST_PREPROCESSOR_REPETITION_ENUM_HPP
+# define NDNBOOST_PREPROCESSOR_REPETITION_ENUM_HPP
 #
 # include <ndnboost/preprocessor/cat.hpp>
 # include <ndnboost/preprocessor/config/config.hpp>
@@ -23,44 +23,44 @@
 # include <ndnboost/preprocessor/tuple/elem.hpp>
 # include <ndnboost/preprocessor/tuple/rem.hpp>
 #
-# /* BOOST_PP_ENUM */
+# /* NDNBOOST_PP_ENUM */
 #
 # if 0
-#    define BOOST_PP_ENUM(count, macro, data)
+#    define NDNBOOST_PP_ENUM(count, macro, data)
 # endif
 #
-# define BOOST_PP_ENUM BOOST_PP_CAT(BOOST_PP_ENUM_, BOOST_PP_AUTO_REC(BOOST_PP_REPEAT_P, 4))
+# define NDNBOOST_PP_ENUM NDNBOOST_PP_CAT(NDNBOOST_PP_ENUM_, NDNBOOST_PP_AUTO_REC(NDNBOOST_PP_REPEAT_P, 4))
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_ENUM_1(c, m, d) BOOST_PP_REPEAT_1(c, BOOST_PP_ENUM_M_1, (m, d))
-#    define BOOST_PP_ENUM_2(c, m, d) BOOST_PP_REPEAT_2(c, BOOST_PP_ENUM_M_2, (m, d))
-#    define BOOST_PP_ENUM_3(c, m, d) BOOST_PP_REPEAT_3(c, BOOST_PP_ENUM_M_3, (m, d))
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_ENUM_1(c, m, d) NDNBOOST_PP_REPEAT_1(c, NDNBOOST_PP_ENUM_M_1, (m, d))
+#    define NDNBOOST_PP_ENUM_2(c, m, d) NDNBOOST_PP_REPEAT_2(c, NDNBOOST_PP_ENUM_M_2, (m, d))
+#    define NDNBOOST_PP_ENUM_3(c, m, d) NDNBOOST_PP_REPEAT_3(c, NDNBOOST_PP_ENUM_M_3, (m, d))
 # else
-#    define BOOST_PP_ENUM_1(c, m, d) BOOST_PP_ENUM_1_I(c, m, d)
-#    define BOOST_PP_ENUM_2(c, m, d) BOOST_PP_ENUM_2_I(c, m, d)
-#    define BOOST_PP_ENUM_3(c, m, d) BOOST_PP_ENUM_3_I(c, m, d)
-#    define BOOST_PP_ENUM_1_I(c, m, d) BOOST_PP_REPEAT_1(c, BOOST_PP_ENUM_M_1, (m, d))
-#    define BOOST_PP_ENUM_2_I(c, m, d) BOOST_PP_REPEAT_2(c, BOOST_PP_ENUM_M_2, (m, d))
-#    define BOOST_PP_ENUM_3_I(c, m, d) BOOST_PP_REPEAT_3(c, BOOST_PP_ENUM_M_3, (m, d))
+#    define NDNBOOST_PP_ENUM_1(c, m, d) NDNBOOST_PP_ENUM_1_I(c, m, d)
+#    define NDNBOOST_PP_ENUM_2(c, m, d) NDNBOOST_PP_ENUM_2_I(c, m, d)
+#    define NDNBOOST_PP_ENUM_3(c, m, d) NDNBOOST_PP_ENUM_3_I(c, m, d)
+#    define NDNBOOST_PP_ENUM_1_I(c, m, d) NDNBOOST_PP_REPEAT_1(c, NDNBOOST_PP_ENUM_M_1, (m, d))
+#    define NDNBOOST_PP_ENUM_2_I(c, m, d) NDNBOOST_PP_REPEAT_2(c, NDNBOOST_PP_ENUM_M_2, (m, d))
+#    define NDNBOOST_PP_ENUM_3_I(c, m, d) NDNBOOST_PP_REPEAT_3(c, NDNBOOST_PP_ENUM_M_3, (m, d))
 # endif
 #
-# define BOOST_PP_ENUM_4(c, m, d) BOOST_PP_ERROR(0x0003)
+# define NDNBOOST_PP_ENUM_4(c, m, d) NDNBOOST_PP_ERROR(0x0003)
 #
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
-#    define BOOST_PP_ENUM_M_1(z, n, md) BOOST_PP_ENUM_M_1_IM(z, n, BOOST_PP_TUPLE_REM_2 md)
-#    define BOOST_PP_ENUM_M_2(z, n, md) BOOST_PP_ENUM_M_2_IM(z, n, BOOST_PP_TUPLE_REM_2 md)
-#    define BOOST_PP_ENUM_M_3(z, n, md) BOOST_PP_ENUM_M_3_IM(z, n, BOOST_PP_TUPLE_REM_2 md)
-#    define BOOST_PP_ENUM_M_1_IM(z, n, im) BOOST_PP_ENUM_M_1_I(z, n, im)
-#    define BOOST_PP_ENUM_M_2_IM(z, n, im) BOOST_PP_ENUM_M_2_I(z, n, im)
-#    define BOOST_PP_ENUM_M_3_IM(z, n, im) BOOST_PP_ENUM_M_3_I(z, n, im)
+# if NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_STRICT()
+#    define NDNBOOST_PP_ENUM_M_1(z, n, md) NDNBOOST_PP_ENUM_M_1_IM(z, n, NDNBOOST_PP_TUPLE_REM_2 md)
+#    define NDNBOOST_PP_ENUM_M_2(z, n, md) NDNBOOST_PP_ENUM_M_2_IM(z, n, NDNBOOST_PP_TUPLE_REM_2 md)
+#    define NDNBOOST_PP_ENUM_M_3(z, n, md) NDNBOOST_PP_ENUM_M_3_IM(z, n, NDNBOOST_PP_TUPLE_REM_2 md)
+#    define NDNBOOST_PP_ENUM_M_1_IM(z, n, im) NDNBOOST_PP_ENUM_M_1_I(z, n, im)
+#    define NDNBOOST_PP_ENUM_M_2_IM(z, n, im) NDNBOOST_PP_ENUM_M_2_I(z, n, im)
+#    define NDNBOOST_PP_ENUM_M_3_IM(z, n, im) NDNBOOST_PP_ENUM_M_3_I(z, n, im)
 # else
-#    define BOOST_PP_ENUM_M_1(z, n, md) BOOST_PP_ENUM_M_1_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md))
-#    define BOOST_PP_ENUM_M_2(z, n, md) BOOST_PP_ENUM_M_2_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md))
-#    define BOOST_PP_ENUM_M_3(z, n, md) BOOST_PP_ENUM_M_3_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md))
+#    define NDNBOOST_PP_ENUM_M_1(z, n, md) NDNBOOST_PP_ENUM_M_1_I(z, n, NDNBOOST_PP_TUPLE_ELEM(2, 0, md), NDNBOOST_PP_TUPLE_ELEM(2, 1, md))
+#    define NDNBOOST_PP_ENUM_M_2(z, n, md) NDNBOOST_PP_ENUM_M_2_I(z, n, NDNBOOST_PP_TUPLE_ELEM(2, 0, md), NDNBOOST_PP_TUPLE_ELEM(2, 1, md))
+#    define NDNBOOST_PP_ENUM_M_3(z, n, md) NDNBOOST_PP_ENUM_M_3_I(z, n, NDNBOOST_PP_TUPLE_ELEM(2, 0, md), NDNBOOST_PP_TUPLE_ELEM(2, 1, md))
 # endif
 #
-# define BOOST_PP_ENUM_M_1_I(z, n, m, d) BOOST_PP_COMMA_IF(n) m(z, n, d)
-# define BOOST_PP_ENUM_M_2_I(z, n, m, d) BOOST_PP_COMMA_IF(n) m(z, n, d)
-# define BOOST_PP_ENUM_M_3_I(z, n, m, d) BOOST_PP_COMMA_IF(n) m(z, n, d)
+# define NDNBOOST_PP_ENUM_M_1_I(z, n, m, d) NDNBOOST_PP_COMMA_IF(n) m(z, n, d)
+# define NDNBOOST_PP_ENUM_M_2_I(z, n, m, d) NDNBOOST_PP_COMMA_IF(n) m(z, n, d)
+# define NDNBOOST_PP_ENUM_M_3_I(z, n, m, d) NDNBOOST_PP_COMMA_IF(n) m(z, n, d)
 #
 # endif
diff --git a/include/ndnboost/preprocessor/repetition/enum_binary_params.hpp b/include/ndnboost/preprocessor/repetition/enum_binary_params.hpp
index 39de801..308426f 100644
--- a/include/ndnboost/preprocessor/repetition/enum_binary_params.hpp
+++ b/include/ndnboost/preprocessor/repetition/enum_binary_params.hpp
@@ -9,8 +9,8 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_BINARY_PARAMS_HPP
-# define BOOST_PREPROCESSOR_REPETITION_ENUM_BINARY_PARAMS_HPP
+# ifndef NDNBOOST_PREPROCESSOR_REPETITION_ENUM_BINARY_PARAMS_HPP
+# define NDNBOOST_PREPROCESSOR_REPETITION_ENUM_BINARY_PARAMS_HPP
 #
 # include <ndnboost/preprocessor/cat.hpp>
 # include <ndnboost/preprocessor/config/config.hpp>
@@ -19,36 +19,36 @@
 # include <ndnboost/preprocessor/tuple/elem.hpp>
 # include <ndnboost/preprocessor/tuple/rem.hpp>
 #
-# /* BOOST_PP_ENUM_BINARY_PARAMS */
+# /* NDNBOOST_PP_ENUM_BINARY_PARAMS */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_ENUM_BINARY_PARAMS(count, p1, p2) BOOST_PP_REPEAT(count, BOOST_PP_ENUM_BINARY_PARAMS_M, (p1, p2))
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_ENUM_BINARY_PARAMS(count, p1, p2) NDNBOOST_PP_REPEAT(count, NDNBOOST_PP_ENUM_BINARY_PARAMS_M, (p1, p2))
 # else
-#    define BOOST_PP_ENUM_BINARY_PARAMS(count, p1, p2) BOOST_PP_ENUM_BINARY_PARAMS_I(count, p1, p2)
-#    define BOOST_PP_ENUM_BINARY_PARAMS_I(count, p1, p2) BOOST_PP_REPEAT(count, BOOST_PP_ENUM_BINARY_PARAMS_M, (p1, p2))
+#    define NDNBOOST_PP_ENUM_BINARY_PARAMS(count, p1, p2) NDNBOOST_PP_ENUM_BINARY_PARAMS_I(count, p1, p2)
+#    define NDNBOOST_PP_ENUM_BINARY_PARAMS_I(count, p1, p2) NDNBOOST_PP_REPEAT(count, NDNBOOST_PP_ENUM_BINARY_PARAMS_M, (p1, p2))
 # endif
 #
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
-#    define BOOST_PP_ENUM_BINARY_PARAMS_M(z, n, pp) BOOST_PP_ENUM_BINARY_PARAMS_M_IM(z, n, BOOST_PP_TUPLE_REM_2 pp)
-#    define BOOST_PP_ENUM_BINARY_PARAMS_M_IM(z, n, im) BOOST_PP_ENUM_BINARY_PARAMS_M_I(z, n, im)
+# if NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_STRICT()
+#    define NDNBOOST_PP_ENUM_BINARY_PARAMS_M(z, n, pp) NDNBOOST_PP_ENUM_BINARY_PARAMS_M_IM(z, n, NDNBOOST_PP_TUPLE_REM_2 pp)
+#    define NDNBOOST_PP_ENUM_BINARY_PARAMS_M_IM(z, n, im) NDNBOOST_PP_ENUM_BINARY_PARAMS_M_I(z, n, im)
 # else
-#    define BOOST_PP_ENUM_BINARY_PARAMS_M(z, n, pp) BOOST_PP_ENUM_BINARY_PARAMS_M_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, pp), BOOST_PP_TUPLE_ELEM(2, 1, pp))
+#    define NDNBOOST_PP_ENUM_BINARY_PARAMS_M(z, n, pp) NDNBOOST_PP_ENUM_BINARY_PARAMS_M_I(z, n, NDNBOOST_PP_TUPLE_ELEM(2, 0, pp), NDNBOOST_PP_TUPLE_ELEM(2, 1, pp))
 # endif
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-#    define BOOST_PP_ENUM_BINARY_PARAMS_M_I(z, n, p1, p2) BOOST_PP_ENUM_BINARY_PARAMS_M_II(z, n, p1, p2)
-#    define BOOST_PP_ENUM_BINARY_PARAMS_M_II(z, n, p1, p2) BOOST_PP_COMMA_IF(n) p1 ## n p2 ## n
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MSVC()
+#    define NDNBOOST_PP_ENUM_BINARY_PARAMS_M_I(z, n, p1, p2) NDNBOOST_PP_ENUM_BINARY_PARAMS_M_II(z, n, p1, p2)
+#    define NDNBOOST_PP_ENUM_BINARY_PARAMS_M_II(z, n, p1, p2) NDNBOOST_PP_COMMA_IF(n) p1 ## n p2 ## n
 # else
-#    define BOOST_PP_ENUM_BINARY_PARAMS_M_I(z, n, p1, p2) BOOST_PP_COMMA_IF(n) BOOST_PP_CAT(p1, n) BOOST_PP_CAT(p2, n)
+#    define NDNBOOST_PP_ENUM_BINARY_PARAMS_M_I(z, n, p1, p2) NDNBOOST_PP_COMMA_IF(n) NDNBOOST_PP_CAT(p1, n) NDNBOOST_PP_CAT(p2, n)
 # endif
 #
-# /* BOOST_PP_ENUM_BINARY_PARAMS_Z */
+# /* NDNBOOST_PP_ENUM_BINARY_PARAMS_Z */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_ENUM_BINARY_PARAMS_Z(z, count, p1, p2) BOOST_PP_REPEAT_ ## z(count, BOOST_PP_ENUM_BINARY_PARAMS_M, (p1, p2))
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_ENUM_BINARY_PARAMS_Z(z, count, p1, p2) NDNBOOST_PP_REPEAT_ ## z(count, NDNBOOST_PP_ENUM_BINARY_PARAMS_M, (p1, p2))
 # else
-#    define BOOST_PP_ENUM_BINARY_PARAMS_Z(z, count, p1, p2) BOOST_PP_ENUM_BINARY_PARAMS_Z_I(z, count, p1, p2)
-#    define BOOST_PP_ENUM_BINARY_PARAMS_Z_I(z, count, p1, p2) BOOST_PP_REPEAT_ ## z(count, BOOST_PP_ENUM_BINARY_PARAMS_M, (p1, p2))
+#    define NDNBOOST_PP_ENUM_BINARY_PARAMS_Z(z, count, p1, p2) NDNBOOST_PP_ENUM_BINARY_PARAMS_Z_I(z, count, p1, p2)
+#    define NDNBOOST_PP_ENUM_BINARY_PARAMS_Z_I(z, count, p1, p2) NDNBOOST_PP_REPEAT_ ## z(count, NDNBOOST_PP_ENUM_BINARY_PARAMS_M, (p1, p2))
 # endif
 #
 # endif
diff --git a/include/ndnboost/preprocessor/repetition/enum_params.hpp b/include/ndnboost/preprocessor/repetition/enum_params.hpp
index 33c8579..3dd7677 100644
--- a/include/ndnboost/preprocessor/repetition/enum_params.hpp
+++ b/include/ndnboost/preprocessor/repetition/enum_params.hpp
@@ -11,31 +11,31 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_PARAMS_HPP
-# define BOOST_PREPROCESSOR_REPETITION_ENUM_PARAMS_HPP
+# ifndef NDNBOOST_PREPROCESSOR_REPETITION_ENUM_PARAMS_HPP
+# define NDNBOOST_PREPROCESSOR_REPETITION_ENUM_PARAMS_HPP
 #
 # include <ndnboost/preprocessor/config/config.hpp>
 # include <ndnboost/preprocessor/punctuation/comma_if.hpp>
 # include <ndnboost/preprocessor/repetition/repeat.hpp>
 #
-# /* BOOST_PP_ENUM_PARAMS */
+# /* NDNBOOST_PP_ENUM_PARAMS */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_ENUM_PARAMS(count, param) BOOST_PP_REPEAT(count, BOOST_PP_ENUM_PARAMS_M, param)
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_ENUM_PARAMS(count, param) NDNBOOST_PP_REPEAT(count, NDNBOOST_PP_ENUM_PARAMS_M, param)
 # else
-#    define BOOST_PP_ENUM_PARAMS(count, param) BOOST_PP_ENUM_PARAMS_I(count, param)
-#    define BOOST_PP_ENUM_PARAMS_I(count, param) BOOST_PP_REPEAT(count, BOOST_PP_ENUM_PARAMS_M, param)
+#    define NDNBOOST_PP_ENUM_PARAMS(count, param) NDNBOOST_PP_ENUM_PARAMS_I(count, param)
+#    define NDNBOOST_PP_ENUM_PARAMS_I(count, param) NDNBOOST_PP_REPEAT(count, NDNBOOST_PP_ENUM_PARAMS_M, param)
 # endif
 #
-# define BOOST_PP_ENUM_PARAMS_M(z, n, param) BOOST_PP_COMMA_IF(n) param ## n
+# define NDNBOOST_PP_ENUM_PARAMS_M(z, n, param) NDNBOOST_PP_COMMA_IF(n) param ## n
 #
-# /* BOOST_PP_ENUM_PARAMS_Z */
+# /* NDNBOOST_PP_ENUM_PARAMS_Z */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_ENUM_PARAMS_Z(z, count, param) BOOST_PP_REPEAT_ ## z(count, BOOST_PP_ENUM_PARAMS_M, param)
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_ENUM_PARAMS_Z(z, count, param) NDNBOOST_PP_REPEAT_ ## z(count, NDNBOOST_PP_ENUM_PARAMS_M, param)
 # else
-#    define BOOST_PP_ENUM_PARAMS_Z(z, count, param) BOOST_PP_ENUM_PARAMS_Z_I(z, count, param)
-#    define BOOST_PP_ENUM_PARAMS_Z_I(z, count, param) BOOST_PP_REPEAT_ ## z(count, BOOST_PP_ENUM_PARAMS_M, param)
+#    define NDNBOOST_PP_ENUM_PARAMS_Z(z, count, param) NDNBOOST_PP_ENUM_PARAMS_Z_I(z, count, param)
+#    define NDNBOOST_PP_ENUM_PARAMS_Z_I(z, count, param) NDNBOOST_PP_REPEAT_ ## z(count, NDNBOOST_PP_ENUM_PARAMS_M, param)
 # endif
 #
 # endif
diff --git a/include/ndnboost/preprocessor/repetition/enum_params_with_a_default.hpp b/include/ndnboost/preprocessor/repetition/enum_params_with_a_default.hpp
index b76baaf..effd377 100644
--- a/include/ndnboost/preprocessor/repetition/enum_params_with_a_default.hpp
+++ b/include/ndnboost/preprocessor/repetition/enum_params_with_a_default.hpp
@@ -11,15 +11,15 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_PARAMS_WITH_A_DEFAULT_HPP
-# define BOOST_PREPROCESSOR_REPETITION_ENUM_PARAMS_WITH_A_DEFAULT_HPP
+# ifndef NDNBOOST_PREPROCESSOR_REPETITION_ENUM_PARAMS_WITH_A_DEFAULT_HPP
+# define NDNBOOST_PREPROCESSOR_REPETITION_ENUM_PARAMS_WITH_A_DEFAULT_HPP
 #
 # include <ndnboost/preprocessor/config/config.hpp>
 # include <ndnboost/preprocessor/facilities/intercept.hpp>
 # include <ndnboost/preprocessor/repetition/enum_binary_params.hpp>
 #
-# /* BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT */
+# /* NDNBOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT */
 #
-# define BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(count, param, def) BOOST_PP_ENUM_BINARY_PARAMS(count, param, = def BOOST_PP_INTERCEPT)
+# define NDNBOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(count, param, def) NDNBOOST_PP_ENUM_BINARY_PARAMS(count, param, = def NDNBOOST_PP_INTERCEPT)
 #
 # endif
diff --git a/include/ndnboost/preprocessor/repetition/enum_shifted_params.hpp b/include/ndnboost/preprocessor/repetition/enum_shifted_params.hpp
index 4c71eb9..b81af02 100644
--- a/include/ndnboost/preprocessor/repetition/enum_shifted_params.hpp
+++ b/include/ndnboost/preprocessor/repetition/enum_shifted_params.hpp
@@ -11,8 +11,8 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_SHIFTED_PARAMS_HPP
-# define BOOST_PREPROCESSOR_REPETITION_ENUM_SHIFTED_PARAMS_HPP
+# ifndef NDNBOOST_PREPROCESSOR_REPETITION_ENUM_SHIFTED_PARAMS_HPP
+# define NDNBOOST_PREPROCESSOR_REPETITION_ENUM_SHIFTED_PARAMS_HPP
 #
 # include <ndnboost/preprocessor/arithmetic/dec.hpp>
 # include <ndnboost/preprocessor/arithmetic/inc.hpp>
@@ -21,24 +21,24 @@
 # include <ndnboost/preprocessor/punctuation/comma_if.hpp>
 # include <ndnboost/preprocessor/repetition/repeat.hpp>
 #
-# /* BOOST_PP_ENUM_SHIFTED_PARAMS */
+# /* NDNBOOST_PP_ENUM_SHIFTED_PARAMS */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_ENUM_SHIFTED_PARAMS(count, param) BOOST_PP_REPEAT(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_PARAMS_M, param)
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_ENUM_SHIFTED_PARAMS(count, param) NDNBOOST_PP_REPEAT(NDNBOOST_PP_DEC(count), NDNBOOST_PP_ENUM_SHIFTED_PARAMS_M, param)
 # else
-#    define BOOST_PP_ENUM_SHIFTED_PARAMS(count, param) BOOST_PP_ENUM_SHIFTED_PARAMS_I(count, param)
-#    define BOOST_PP_ENUM_SHIFTED_PARAMS_I(count, param) BOOST_PP_REPEAT(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_PARAMS_M, param)
+#    define NDNBOOST_PP_ENUM_SHIFTED_PARAMS(count, param) NDNBOOST_PP_ENUM_SHIFTED_PARAMS_I(count, param)
+#    define NDNBOOST_PP_ENUM_SHIFTED_PARAMS_I(count, param) NDNBOOST_PP_REPEAT(NDNBOOST_PP_DEC(count), NDNBOOST_PP_ENUM_SHIFTED_PARAMS_M, param)
 # endif
 #
-# define BOOST_PP_ENUM_SHIFTED_PARAMS_M(z, n, param) BOOST_PP_COMMA_IF(n) BOOST_PP_CAT(param, BOOST_PP_INC(n))
+# define NDNBOOST_PP_ENUM_SHIFTED_PARAMS_M(z, n, param) NDNBOOST_PP_COMMA_IF(n) NDNBOOST_PP_CAT(param, NDNBOOST_PP_INC(n))
 #
-# /* BOOST_PP_ENUM_SHIFTED_PARAMS_Z */
+# /* NDNBOOST_PP_ENUM_SHIFTED_PARAMS_Z */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_ENUM_SHIFTED_PARAMS_Z(z, count, param) BOOST_PP_REPEAT_ ## z(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_PARAMS_M, param)
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_ENUM_SHIFTED_PARAMS_Z(z, count, param) NDNBOOST_PP_REPEAT_ ## z(NDNBOOST_PP_DEC(count), NDNBOOST_PP_ENUM_SHIFTED_PARAMS_M, param)
 # else
-#    define BOOST_PP_ENUM_SHIFTED_PARAMS_Z(z, count, param) BOOST_PP_ENUM_SHIFTED_PARAMS_Z_I(z, count, param)
-#    define BOOST_PP_ENUM_SHIFTED_PARAMS_Z_I(z, count, param) BOOST_PP_REPEAT_ ## z(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_PARAMS_M, param)
+#    define NDNBOOST_PP_ENUM_SHIFTED_PARAMS_Z(z, count, param) NDNBOOST_PP_ENUM_SHIFTED_PARAMS_Z_I(z, count, param)
+#    define NDNBOOST_PP_ENUM_SHIFTED_PARAMS_Z_I(z, count, param) NDNBOOST_PP_REPEAT_ ## z(NDNBOOST_PP_DEC(count), NDNBOOST_PP_ENUM_SHIFTED_PARAMS_M, param)
 # endif
 #
 # endif
diff --git a/include/ndnboost/preprocessor/repetition/enum_trailing.hpp b/include/ndnboost/preprocessor/repetition/enum_trailing.hpp
index 5493e18..fb6c523 100644
--- a/include/ndnboost/preprocessor/repetition/enum_trailing.hpp
+++ b/include/ndnboost/preprocessor/repetition/enum_trailing.hpp
@@ -9,8 +9,8 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_TRAILING_HPP
-# define BOOST_PREPROCESSOR_REPETITION_ENUM_TRAILING_HPP
+# ifndef NDNBOOST_PREPROCESSOR_REPETITION_ENUM_TRAILING_HPP
+# define NDNBOOST_PREPROCESSOR_REPETITION_ENUM_TRAILING_HPP
 #
 # include <ndnboost/preprocessor/cat.hpp>
 # include <ndnboost/preprocessor/config/config.hpp>
@@ -20,44 +20,44 @@
 # include <ndnboost/preprocessor/tuple/elem.hpp>
 # include <ndnboost/preprocessor/tuple/rem.hpp>
 #
-# /* BOOST_PP_ENUM_TRAILING */
+# /* NDNBOOST_PP_ENUM_TRAILING */
 #
 # if 0
-#    define BOOST_PP_ENUM_TRAILING(count, macro, data)
+#    define NDNBOOST_PP_ENUM_TRAILING(count, macro, data)
 # endif
 #
-# define BOOST_PP_ENUM_TRAILING BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, BOOST_PP_AUTO_REC(BOOST_PP_REPEAT_P, 4))
+# define NDNBOOST_PP_ENUM_TRAILING NDNBOOST_PP_CAT(NDNBOOST_PP_ENUM_TRAILING_, NDNBOOST_PP_AUTO_REC(NDNBOOST_PP_REPEAT_P, 4))
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_ENUM_TRAILING_1(c, m, d) BOOST_PP_REPEAT_1(c, BOOST_PP_ENUM_TRAILING_M_1, (m, d))
-#    define BOOST_PP_ENUM_TRAILING_2(c, m, d) BOOST_PP_REPEAT_2(c, BOOST_PP_ENUM_TRAILING_M_2, (m, d))
-#    define BOOST_PP_ENUM_TRAILING_3(c, m, d) BOOST_PP_REPEAT_3(c, BOOST_PP_ENUM_TRAILING_M_3, (m, d))
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_ENUM_TRAILING_1(c, m, d) NDNBOOST_PP_REPEAT_1(c, NDNBOOST_PP_ENUM_TRAILING_M_1, (m, d))
+#    define NDNBOOST_PP_ENUM_TRAILING_2(c, m, d) NDNBOOST_PP_REPEAT_2(c, NDNBOOST_PP_ENUM_TRAILING_M_2, (m, d))
+#    define NDNBOOST_PP_ENUM_TRAILING_3(c, m, d) NDNBOOST_PP_REPEAT_3(c, NDNBOOST_PP_ENUM_TRAILING_M_3, (m, d))
 # else
-#    define BOOST_PP_ENUM_TRAILING_1(c, m, d) BOOST_PP_ENUM_TRAILING_1_I(c, m, d)
-#    define BOOST_PP_ENUM_TRAILING_2(c, m, d) BOOST_PP_ENUM_TRAILING_2_I(c, m, d)
-#    define BOOST_PP_ENUM_TRAILING_3(c, m, d) BOOST_PP_ENUM_TRAILING_3_I(c, m, d)
-#    define BOOST_PP_ENUM_TRAILING_1_I(c, m, d) BOOST_PP_REPEAT_1(c, BOOST_PP_ENUM_TRAILING_M_1, (m, d))
-#    define BOOST_PP_ENUM_TRAILING_2_I(c, m, d) BOOST_PP_REPEAT_2(c, BOOST_PP_ENUM_TRAILING_M_2, (m, d))
-#    define BOOST_PP_ENUM_TRAILING_3_I(c, m, d) BOOST_PP_REPEAT_3(c, BOOST_PP_ENUM_TRAILING_M_3, (m, d))
+#    define NDNBOOST_PP_ENUM_TRAILING_1(c, m, d) NDNBOOST_PP_ENUM_TRAILING_1_I(c, m, d)
+#    define NDNBOOST_PP_ENUM_TRAILING_2(c, m, d) NDNBOOST_PP_ENUM_TRAILING_2_I(c, m, d)
+#    define NDNBOOST_PP_ENUM_TRAILING_3(c, m, d) NDNBOOST_PP_ENUM_TRAILING_3_I(c, m, d)
+#    define NDNBOOST_PP_ENUM_TRAILING_1_I(c, m, d) NDNBOOST_PP_REPEAT_1(c, NDNBOOST_PP_ENUM_TRAILING_M_1, (m, d))
+#    define NDNBOOST_PP_ENUM_TRAILING_2_I(c, m, d) NDNBOOST_PP_REPEAT_2(c, NDNBOOST_PP_ENUM_TRAILING_M_2, (m, d))
+#    define NDNBOOST_PP_ENUM_TRAILING_3_I(c, m, d) NDNBOOST_PP_REPEAT_3(c, NDNBOOST_PP_ENUM_TRAILING_M_3, (m, d))
 # endif
 #
-# define BOOST_PP_ENUM_TRAILING_4(c, m, d) BOOST_PP_ERROR(0x0003)
+# define NDNBOOST_PP_ENUM_TRAILING_4(c, m, d) NDNBOOST_PP_ERROR(0x0003)
 #
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
-#    define BOOST_PP_ENUM_TRAILING_M_1(z, n, md) BOOST_PP_ENUM_TRAILING_M_1_IM(z, n, BOOST_PP_TUPLE_REM_2 md)
-#    define BOOST_PP_ENUM_TRAILING_M_2(z, n, md) BOOST_PP_ENUM_TRAILING_M_2_IM(z, n, BOOST_PP_TUPLE_REM_2 md)
-#    define BOOST_PP_ENUM_TRAILING_M_3(z, n, md) BOOST_PP_ENUM_TRAILING_M_3_IM(z, n, BOOST_PP_TUPLE_REM_2 md)
-#    define BOOST_PP_ENUM_TRAILING_M_1_IM(z, n, im) BOOST_PP_ENUM_TRAILING_M_1_I(z, n, im)
-#    define BOOST_PP_ENUM_TRAILING_M_2_IM(z, n, im) BOOST_PP_ENUM_TRAILING_M_2_I(z, n, im)
-#    define BOOST_PP_ENUM_TRAILING_M_3_IM(z, n, im) BOOST_PP_ENUM_TRAILING_M_3_I(z, n, im)
+# if NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_STRICT()
+#    define NDNBOOST_PP_ENUM_TRAILING_M_1(z, n, md) NDNBOOST_PP_ENUM_TRAILING_M_1_IM(z, n, NDNBOOST_PP_TUPLE_REM_2 md)
+#    define NDNBOOST_PP_ENUM_TRAILING_M_2(z, n, md) NDNBOOST_PP_ENUM_TRAILING_M_2_IM(z, n, NDNBOOST_PP_TUPLE_REM_2 md)
+#    define NDNBOOST_PP_ENUM_TRAILING_M_3(z, n, md) NDNBOOST_PP_ENUM_TRAILING_M_3_IM(z, n, NDNBOOST_PP_TUPLE_REM_2 md)
+#    define NDNBOOST_PP_ENUM_TRAILING_M_1_IM(z, n, im) NDNBOOST_PP_ENUM_TRAILING_M_1_I(z, n, im)
+#    define NDNBOOST_PP_ENUM_TRAILING_M_2_IM(z, n, im) NDNBOOST_PP_ENUM_TRAILING_M_2_I(z, n, im)
+#    define NDNBOOST_PP_ENUM_TRAILING_M_3_IM(z, n, im) NDNBOOST_PP_ENUM_TRAILING_M_3_I(z, n, im)
 # else
-#    define BOOST_PP_ENUM_TRAILING_M_1(z, n, md) BOOST_PP_ENUM_TRAILING_M_1_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md))
-#    define BOOST_PP_ENUM_TRAILING_M_2(z, n, md) BOOST_PP_ENUM_TRAILING_M_2_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md))
-#    define BOOST_PP_ENUM_TRAILING_M_3(z, n, md) BOOST_PP_ENUM_TRAILING_M_3_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md))
+#    define NDNBOOST_PP_ENUM_TRAILING_M_1(z, n, md) NDNBOOST_PP_ENUM_TRAILING_M_1_I(z, n, NDNBOOST_PP_TUPLE_ELEM(2, 0, md), NDNBOOST_PP_TUPLE_ELEM(2, 1, md))
+#    define NDNBOOST_PP_ENUM_TRAILING_M_2(z, n, md) NDNBOOST_PP_ENUM_TRAILING_M_2_I(z, n, NDNBOOST_PP_TUPLE_ELEM(2, 0, md), NDNBOOST_PP_TUPLE_ELEM(2, 1, md))
+#    define NDNBOOST_PP_ENUM_TRAILING_M_3(z, n, md) NDNBOOST_PP_ENUM_TRAILING_M_3_I(z, n, NDNBOOST_PP_TUPLE_ELEM(2, 0, md), NDNBOOST_PP_TUPLE_ELEM(2, 1, md))
 # endif
 #
-# define BOOST_PP_ENUM_TRAILING_M_1_I(z, n, m, d) , m(z, n, d)
-# define BOOST_PP_ENUM_TRAILING_M_2_I(z, n, m, d) , m(z, n, d)
-# define BOOST_PP_ENUM_TRAILING_M_3_I(z, n, m, d) , m(z, n, d)
+# define NDNBOOST_PP_ENUM_TRAILING_M_1_I(z, n, m, d) , m(z, n, d)
+# define NDNBOOST_PP_ENUM_TRAILING_M_2_I(z, n, m, d) , m(z, n, d)
+# define NDNBOOST_PP_ENUM_TRAILING_M_3_I(z, n, m, d) , m(z, n, d)
 #
 # endif
diff --git a/include/ndnboost/preprocessor/repetition/enum_trailing_params.hpp b/include/ndnboost/preprocessor/repetition/enum_trailing_params.hpp
index f620129..da9cd7a 100644
--- a/include/ndnboost/preprocessor/repetition/enum_trailing_params.hpp
+++ b/include/ndnboost/preprocessor/repetition/enum_trailing_params.hpp
@@ -9,30 +9,30 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_TRAILING_PARAMS_HPP
-# define BOOST_PREPROCESSOR_REPETITION_ENUM_TRAILING_PARAMS_HPP
+# ifndef NDNBOOST_PREPROCESSOR_REPETITION_ENUM_TRAILING_PARAMS_HPP
+# define NDNBOOST_PREPROCESSOR_REPETITION_ENUM_TRAILING_PARAMS_HPP
 #
 # include <ndnboost/preprocessor/config/config.hpp>
 # include <ndnboost/preprocessor/repetition/repeat.hpp>
 #
-# /* BOOST_PP_ENUM_TRAILING_PARAMS */
+# /* NDNBOOST_PP_ENUM_TRAILING_PARAMS */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_ENUM_TRAILING_PARAMS(count, param) BOOST_PP_REPEAT(count, BOOST_PP_ENUM_TRAILING_PARAMS_M, param)
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_ENUM_TRAILING_PARAMS(count, param) NDNBOOST_PP_REPEAT(count, NDNBOOST_PP_ENUM_TRAILING_PARAMS_M, param)
 # else
-#    define BOOST_PP_ENUM_TRAILING_PARAMS(count, param) BOOST_PP_ENUM_TRAILING_PARAMS_I(count, param)
-#    define BOOST_PP_ENUM_TRAILING_PARAMS_I(count, param) BOOST_PP_REPEAT(count, BOOST_PP_ENUM_TRAILING_PARAMS_M, param)
+#    define NDNBOOST_PP_ENUM_TRAILING_PARAMS(count, param) NDNBOOST_PP_ENUM_TRAILING_PARAMS_I(count, param)
+#    define NDNBOOST_PP_ENUM_TRAILING_PARAMS_I(count, param) NDNBOOST_PP_REPEAT(count, NDNBOOST_PP_ENUM_TRAILING_PARAMS_M, param)
 # endif
 #
-# define BOOST_PP_ENUM_TRAILING_PARAMS_M(z, n, param) , param ## n
+# define NDNBOOST_PP_ENUM_TRAILING_PARAMS_M(z, n, param) , param ## n
 #
-# /* BOOST_PP_ENUM_TRAILING_PARAMS_Z */
+# /* NDNBOOST_PP_ENUM_TRAILING_PARAMS_Z */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_ENUM_TRAILING_PARAMS_Z(z, count, param) BOOST_PP_REPEAT_ ## z(count, BOOST_PP_ENUM_TRAILING_PARAMS_M, param)
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_ENUM_TRAILING_PARAMS_Z(z, count, param) NDNBOOST_PP_REPEAT_ ## z(count, NDNBOOST_PP_ENUM_TRAILING_PARAMS_M, param)
 # else
-#    define BOOST_PP_ENUM_TRAILING_PARAMS_Z(z, count, param) BOOST_PP_ENUM_TRAILING_PARAMS_Z_I(z, count, param)
-#    define BOOST_PP_ENUM_TRAILING_PARAMS_Z_I(z, count, param) BOOST_PP_REPEAT_ ## z(count, BOOST_PP_ENUM_TRAILING_PARAMS_M, param)
+#    define NDNBOOST_PP_ENUM_TRAILING_PARAMS_Z(z, count, param) NDNBOOST_PP_ENUM_TRAILING_PARAMS_Z_I(z, count, param)
+#    define NDNBOOST_PP_ENUM_TRAILING_PARAMS_Z_I(z, count, param) NDNBOOST_PP_REPEAT_ ## z(count, NDNBOOST_PP_ENUM_TRAILING_PARAMS_M, param)
 # endif
 #
 # endif
diff --git a/include/ndnboost/preprocessor/repetition/for.hpp b/include/ndnboost/preprocessor/repetition/for.hpp
index ff8114b..87adf3e 100644
--- a/include/ndnboost/preprocessor/repetition/for.hpp
+++ b/include/ndnboost/preprocessor/repetition/for.hpp
@@ -11,296 +11,296 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_REPETITION_FOR_HPP
-# define BOOST_PREPROCESSOR_REPETITION_FOR_HPP
+# ifndef NDNBOOST_PREPROCESSOR_REPETITION_FOR_HPP
+# define NDNBOOST_PREPROCESSOR_REPETITION_FOR_HPP
 #
 # include <ndnboost/preprocessor/cat.hpp>
 # include <ndnboost/preprocessor/debug/error.hpp>
 # include <ndnboost/preprocessor/detail/auto_rec.hpp>
 #
-# /* BOOST_PP_FOR */
+# /* NDNBOOST_PP_FOR */
 #
 # if 0
-#    define BOOST_PP_FOR(state, pred, op, macro)
+#    define NDNBOOST_PP_FOR(state, pred, op, macro)
 # endif
 #
-# define BOOST_PP_FOR BOOST_PP_CAT(BOOST_PP_FOR_, BOOST_PP_AUTO_REC(BOOST_PP_FOR_P, 256))
+# define NDNBOOST_PP_FOR NDNBOOST_PP_CAT(NDNBOOST_PP_FOR_, NDNBOOST_PP_AUTO_REC(NDNBOOST_PP_FOR_P, 256))
 #
-# define BOOST_PP_FOR_P(n) BOOST_PP_CAT(BOOST_PP_FOR_CHECK_, BOOST_PP_FOR_ ## n(1, BOOST_PP_FOR_SR_P, BOOST_PP_FOR_SR_O, BOOST_PP_FOR_SR_M))
+# define NDNBOOST_PP_FOR_P(n) NDNBOOST_PP_CAT(NDNBOOST_PP_FOR_CHECK_, NDNBOOST_PP_FOR_ ## n(1, NDNBOOST_PP_FOR_SR_P, NDNBOOST_PP_FOR_SR_O, NDNBOOST_PP_FOR_SR_M))
 #
-# define BOOST_PP_FOR_SR_P(r, s) s
-# define BOOST_PP_FOR_SR_O(r, s) 0
-# define BOOST_PP_FOR_SR_M(r, s) BOOST_PP_NIL
+# define NDNBOOST_PP_FOR_SR_P(r, s) s
+# define NDNBOOST_PP_FOR_SR_O(r, s) 0
+# define NDNBOOST_PP_FOR_SR_M(r, s) NDNBOOST_PP_NIL
 #
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+# if NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
 #    include <ndnboost/preprocessor/repetition/detail/edg/for.hpp>
-# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
+# elif NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MSVC()
 #    include <ndnboost/preprocessor/repetition/detail/msvc/for.hpp>
-# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC()
+# elif NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_DMC()
 #    include <ndnboost/preprocessor/repetition/detail/dmc/for.hpp>
 # else
 #    include <ndnboost/preprocessor/repetition/detail/for.hpp>
 # endif
 #
-# define BOOST_PP_FOR_257(s, p, o, m) BOOST_PP_ERROR(0x0002)
+# define NDNBOOST_PP_FOR_257(s, p, o, m) NDNBOOST_PP_ERROR(0x0002)
 #
-# define BOOST_PP_FOR_CHECK_BOOST_PP_NIL 1
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_NIL 1
 #
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_1(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_2(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_3(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_4(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_5(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_6(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_7(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_8(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_9(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_10(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_11(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_12(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_13(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_14(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_15(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_16(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_17(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_18(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_19(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_20(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_21(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_22(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_23(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_24(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_25(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_26(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_27(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_28(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_29(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_30(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_31(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_32(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_33(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_34(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_35(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_36(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_37(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_38(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_39(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_40(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_41(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_42(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_43(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_44(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_45(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_46(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_47(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_48(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_49(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_50(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_51(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_52(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_53(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_54(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_55(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_56(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_57(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_58(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_59(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_60(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_61(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_62(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_63(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_64(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_65(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_66(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_67(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_68(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_69(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_70(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_71(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_72(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_73(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_74(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_75(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_76(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_77(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_78(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_79(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_80(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_81(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_82(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_83(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_84(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_85(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_86(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_87(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_88(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_89(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_90(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_91(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_92(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_93(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_94(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_95(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_96(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_97(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_98(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_99(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_100(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_101(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_102(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_103(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_104(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_105(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_106(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_107(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_108(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_109(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_110(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_111(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_112(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_113(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_114(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_115(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_116(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_117(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_118(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_119(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_120(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_121(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_122(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_123(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_124(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_125(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_126(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_127(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_128(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_129(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_130(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_131(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_132(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_133(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_134(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_135(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_136(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_137(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_138(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_139(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_140(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_141(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_142(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_143(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_144(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_145(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_146(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_147(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_148(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_149(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_150(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_151(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_152(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_153(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_154(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_155(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_156(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_157(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_158(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_159(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_160(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_161(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_162(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_163(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_164(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_165(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_166(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_167(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_168(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_169(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_170(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_171(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_172(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_173(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_174(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_175(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_176(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_177(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_178(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_179(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_180(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_181(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_182(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_183(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_184(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_185(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_186(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_187(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_188(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_189(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_190(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_191(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_192(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_193(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_194(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_195(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_196(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_197(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_198(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_199(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_200(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_201(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_202(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_203(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_204(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_205(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_206(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_207(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_208(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_209(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_210(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_211(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_212(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_213(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_214(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_215(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_216(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_217(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_218(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_219(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_220(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_221(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_222(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_223(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_224(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_225(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_226(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_227(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_228(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_229(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_230(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_231(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_232(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_233(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_234(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_235(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_236(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_237(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_238(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_239(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_240(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_241(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_242(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_243(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_244(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_245(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_246(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_247(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_248(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_249(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_250(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_251(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_252(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_253(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_254(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_255(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_256(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_1(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_2(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_3(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_4(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_5(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_6(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_7(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_8(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_9(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_10(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_11(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_12(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_13(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_14(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_15(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_16(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_17(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_18(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_19(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_20(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_21(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_22(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_23(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_24(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_25(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_26(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_27(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_28(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_29(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_30(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_31(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_32(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_33(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_34(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_35(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_36(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_37(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_38(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_39(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_40(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_41(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_42(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_43(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_44(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_45(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_46(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_47(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_48(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_49(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_50(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_51(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_52(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_53(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_54(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_55(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_56(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_57(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_58(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_59(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_60(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_61(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_62(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_63(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_64(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_65(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_66(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_67(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_68(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_69(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_70(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_71(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_72(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_73(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_74(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_75(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_76(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_77(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_78(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_79(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_80(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_81(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_82(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_83(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_84(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_85(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_86(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_87(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_88(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_89(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_90(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_91(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_92(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_93(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_94(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_95(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_96(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_97(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_98(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_99(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_100(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_101(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_102(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_103(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_104(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_105(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_106(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_107(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_108(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_109(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_110(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_111(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_112(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_113(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_114(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_115(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_116(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_117(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_118(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_119(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_120(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_121(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_122(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_123(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_124(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_125(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_126(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_127(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_128(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_129(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_130(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_131(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_132(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_133(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_134(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_135(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_136(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_137(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_138(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_139(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_140(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_141(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_142(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_143(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_144(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_145(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_146(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_147(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_148(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_149(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_150(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_151(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_152(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_153(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_154(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_155(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_156(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_157(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_158(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_159(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_160(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_161(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_162(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_163(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_164(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_165(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_166(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_167(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_168(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_169(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_170(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_171(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_172(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_173(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_174(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_175(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_176(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_177(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_178(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_179(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_180(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_181(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_182(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_183(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_184(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_185(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_186(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_187(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_188(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_189(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_190(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_191(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_192(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_193(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_194(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_195(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_196(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_197(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_198(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_199(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_200(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_201(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_202(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_203(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_204(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_205(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_206(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_207(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_208(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_209(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_210(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_211(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_212(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_213(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_214(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_215(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_216(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_217(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_218(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_219(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_220(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_221(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_222(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_223(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_224(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_225(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_226(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_227(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_228(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_229(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_230(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_231(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_232(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_233(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_234(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_235(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_236(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_237(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_238(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_239(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_240(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_241(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_242(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_243(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_244(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_245(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_246(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_247(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_248(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_249(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_250(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_251(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_252(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_253(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_254(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_255(s, p, o, m) 0
+# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_FOR_256(s, p, o, m) 0
 #
 # endif
diff --git a/include/ndnboost/preprocessor/repetition/repeat.hpp b/include/ndnboost/preprocessor/repetition/repeat.hpp
index 1ec7d70..e5c4adc 100644
--- a/include/ndnboost/preprocessor/repetition/repeat.hpp
+++ b/include/ndnboost/preprocessor/repetition/repeat.hpp
@@ -11,8 +11,8 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_REPETITION_REPEAT_HPP
-# define BOOST_PREPROCESSOR_REPETITION_REPEAT_HPP
+# ifndef NDNBOOST_PREPROCESSOR_REPETITION_REPEAT_HPP
+# define NDNBOOST_PREPROCESSOR_REPETITION_REPEAT_HPP
 #
 # include <ndnboost/preprocessor/cat.hpp>
 # include <ndnboost/preprocessor/config/config.hpp>
@@ -20,806 +20,806 @@
 # include <ndnboost/preprocessor/detail/auto_rec.hpp>
 # include <ndnboost/preprocessor/tuple/eat.hpp>
 #
-# /* BOOST_PP_REPEAT */
+# /* NDNBOOST_PP_REPEAT */
 #
 # if 0
-#    define BOOST_PP_REPEAT(count, macro, data)
+#    define NDNBOOST_PP_REPEAT(count, macro, data)
 # endif
 #
-# define BOOST_PP_REPEAT BOOST_PP_CAT(BOOST_PP_REPEAT_, BOOST_PP_AUTO_REC(BOOST_PP_REPEAT_P, 4))
+# define NDNBOOST_PP_REPEAT NDNBOOST_PP_CAT(NDNBOOST_PP_REPEAT_, NDNBOOST_PP_AUTO_REC(NDNBOOST_PP_REPEAT_P, 4))
 #
-# define BOOST_PP_REPEAT_P(n) BOOST_PP_CAT(BOOST_PP_REPEAT_CHECK_, BOOST_PP_REPEAT_ ## n(1, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3, BOOST_PP_NIL))
+# define NDNBOOST_PP_REPEAT_P(n) NDNBOOST_PP_CAT(NDNBOOST_PP_REPEAT_CHECK_, NDNBOOST_PP_REPEAT_ ## n(1, NDNBOOST_PP_NIL NDNBOOST_PP_TUPLE_EAT_3, NDNBOOST_PP_NIL))
 #
-# define BOOST_PP_REPEAT_CHECK_BOOST_PP_NIL 1
-# define BOOST_PP_REPEAT_CHECK_BOOST_PP_REPEAT_1(c, m, d) 0
-# define BOOST_PP_REPEAT_CHECK_BOOST_PP_REPEAT_2(c, m, d) 0
-# define BOOST_PP_REPEAT_CHECK_BOOST_PP_REPEAT_3(c, m, d) 0
+# define NDNBOOST_PP_REPEAT_CHECK_NDNBOOST_PP_NIL 1
+# define NDNBOOST_PP_REPEAT_CHECK_NDNBOOST_PP_REPEAT_1(c, m, d) 0
+# define NDNBOOST_PP_REPEAT_CHECK_NDNBOOST_PP_REPEAT_2(c, m, d) 0
+# define NDNBOOST_PP_REPEAT_CHECK_NDNBOOST_PP_REPEAT_3(c, m, d) 0
 #
-# define BOOST_PP_REPEAT_1(c, m, d) BOOST_PP_REPEAT_1_I(c, m, d)
-# define BOOST_PP_REPEAT_2(c, m, d) BOOST_PP_REPEAT_2_I(c, m, d)
-# define BOOST_PP_REPEAT_3(c, m, d) BOOST_PP_REPEAT_3_I(c, m, d)
-# define BOOST_PP_REPEAT_4(c, m, d) BOOST_PP_ERROR(0x0003)
+# define NDNBOOST_PP_REPEAT_1(c, m, d) NDNBOOST_PP_REPEAT_1_I(c, m, d)
+# define NDNBOOST_PP_REPEAT_2(c, m, d) NDNBOOST_PP_REPEAT_2_I(c, m, d)
+# define NDNBOOST_PP_REPEAT_3(c, m, d) NDNBOOST_PP_REPEAT_3_I(c, m, d)
+# define NDNBOOST_PP_REPEAT_4(c, m, d) NDNBOOST_PP_ERROR(0x0003)
 #
-# define BOOST_PP_REPEAT_1_I(c, m, d) BOOST_PP_REPEAT_1_ ## c(m, d)
-# define BOOST_PP_REPEAT_2_I(c, m, d) BOOST_PP_REPEAT_2_ ## c(m, d)
-# define BOOST_PP_REPEAT_3_I(c, m, d) BOOST_PP_REPEAT_3_ ## c(m, d)
+# define NDNBOOST_PP_REPEAT_1_I(c, m, d) NDNBOOST_PP_REPEAT_1_ ## c(m, d)
+# define NDNBOOST_PP_REPEAT_2_I(c, m, d) NDNBOOST_PP_REPEAT_2_ ## c(m, d)
+# define NDNBOOST_PP_REPEAT_3_I(c, m, d) NDNBOOST_PP_REPEAT_3_ ## c(m, d)
 #
-# define BOOST_PP_REPEAT_1ST BOOST_PP_REPEAT_1
-# define BOOST_PP_REPEAT_2ND BOOST_PP_REPEAT_2
-# define BOOST_PP_REPEAT_3RD BOOST_PP_REPEAT_3
+# define NDNBOOST_PP_REPEAT_1ST NDNBOOST_PP_REPEAT_1
+# define NDNBOOST_PP_REPEAT_2ND NDNBOOST_PP_REPEAT_2
+# define NDNBOOST_PP_REPEAT_3RD NDNBOOST_PP_REPEAT_3
 #
-# define BOOST_PP_REPEAT_1_0(m, d)
-# define BOOST_PP_REPEAT_1_1(m, d) m(2, 0, d)
-# define BOOST_PP_REPEAT_1_2(m, d) BOOST_PP_REPEAT_1_1(m, d) m(2, 1, d)
-# define BOOST_PP_REPEAT_1_3(m, d) BOOST_PP_REPEAT_1_2(m, d) m(2, 2, d)
-# define BOOST_PP_REPEAT_1_4(m, d) BOOST_PP_REPEAT_1_3(m, d) m(2, 3, d)
-# define BOOST_PP_REPEAT_1_5(m, d) BOOST_PP_REPEAT_1_4(m, d) m(2, 4, d)
-# define BOOST_PP_REPEAT_1_6(m, d) BOOST_PP_REPEAT_1_5(m, d) m(2, 5, d)
-# define BOOST_PP_REPEAT_1_7(m, d) BOOST_PP_REPEAT_1_6(m, d) m(2, 6, d)
-# define BOOST_PP_REPEAT_1_8(m, d) BOOST_PP_REPEAT_1_7(m, d) m(2, 7, d)
-# define BOOST_PP_REPEAT_1_9(m, d) BOOST_PP_REPEAT_1_8(m, d) m(2, 8, d)
-# define BOOST_PP_REPEAT_1_10(m, d) BOOST_PP_REPEAT_1_9(m, d) m(2, 9, d)
-# define BOOST_PP_REPEAT_1_11(m, d) BOOST_PP_REPEAT_1_10(m, d) m(2, 10, d)
-# define BOOST_PP_REPEAT_1_12(m, d) BOOST_PP_REPEAT_1_11(m, d) m(2, 11, d)
-# define BOOST_PP_REPEAT_1_13(m, d) BOOST_PP_REPEAT_1_12(m, d) m(2, 12, d)
-# define BOOST_PP_REPEAT_1_14(m, d) BOOST_PP_REPEAT_1_13(m, d) m(2, 13, d)
-# define BOOST_PP_REPEAT_1_15(m, d) BOOST_PP_REPEAT_1_14(m, d) m(2, 14, d)
-# define BOOST_PP_REPEAT_1_16(m, d) BOOST_PP_REPEAT_1_15(m, d) m(2, 15, d)
-# define BOOST_PP_REPEAT_1_17(m, d) BOOST_PP_REPEAT_1_16(m, d) m(2, 16, d)
-# define BOOST_PP_REPEAT_1_18(m, d) BOOST_PP_REPEAT_1_17(m, d) m(2, 17, d)
-# define BOOST_PP_REPEAT_1_19(m, d) BOOST_PP_REPEAT_1_18(m, d) m(2, 18, d)
-# define BOOST_PP_REPEAT_1_20(m, d) BOOST_PP_REPEAT_1_19(m, d) m(2, 19, d)
-# define BOOST_PP_REPEAT_1_21(m, d) BOOST_PP_REPEAT_1_20(m, d) m(2, 20, d)
-# define BOOST_PP_REPEAT_1_22(m, d) BOOST_PP_REPEAT_1_21(m, d) m(2, 21, d)
-# define BOOST_PP_REPEAT_1_23(m, d) BOOST_PP_REPEAT_1_22(m, d) m(2, 22, d)
-# define BOOST_PP_REPEAT_1_24(m, d) BOOST_PP_REPEAT_1_23(m, d) m(2, 23, d)
-# define BOOST_PP_REPEAT_1_25(m, d) BOOST_PP_REPEAT_1_24(m, d) m(2, 24, d)
-# define BOOST_PP_REPEAT_1_26(m, d) BOOST_PP_REPEAT_1_25(m, d) m(2, 25, d)
-# define BOOST_PP_REPEAT_1_27(m, d) BOOST_PP_REPEAT_1_26(m, d) m(2, 26, d)
-# define BOOST_PP_REPEAT_1_28(m, d) BOOST_PP_REPEAT_1_27(m, d) m(2, 27, d)
-# define BOOST_PP_REPEAT_1_29(m, d) BOOST_PP_REPEAT_1_28(m, d) m(2, 28, d)
-# define BOOST_PP_REPEAT_1_30(m, d) BOOST_PP_REPEAT_1_29(m, d) m(2, 29, d)
-# define BOOST_PP_REPEAT_1_31(m, d) BOOST_PP_REPEAT_1_30(m, d) m(2, 30, d)
-# define BOOST_PP_REPEAT_1_32(m, d) BOOST_PP_REPEAT_1_31(m, d) m(2, 31, d)
-# define BOOST_PP_REPEAT_1_33(m, d) BOOST_PP_REPEAT_1_32(m, d) m(2, 32, d)
-# define BOOST_PP_REPEAT_1_34(m, d) BOOST_PP_REPEAT_1_33(m, d) m(2, 33, d)
-# define BOOST_PP_REPEAT_1_35(m, d) BOOST_PP_REPEAT_1_34(m, d) m(2, 34, d)
-# define BOOST_PP_REPEAT_1_36(m, d) BOOST_PP_REPEAT_1_35(m, d) m(2, 35, d)
-# define BOOST_PP_REPEAT_1_37(m, d) BOOST_PP_REPEAT_1_36(m, d) m(2, 36, d)
-# define BOOST_PP_REPEAT_1_38(m, d) BOOST_PP_REPEAT_1_37(m, d) m(2, 37, d)
-# define BOOST_PP_REPEAT_1_39(m, d) BOOST_PP_REPEAT_1_38(m, d) m(2, 38, d)
-# define BOOST_PP_REPEAT_1_40(m, d) BOOST_PP_REPEAT_1_39(m, d) m(2, 39, d)
-# define BOOST_PP_REPEAT_1_41(m, d) BOOST_PP_REPEAT_1_40(m, d) m(2, 40, d)
-# define BOOST_PP_REPEAT_1_42(m, d) BOOST_PP_REPEAT_1_41(m, d) m(2, 41, d)
-# define BOOST_PP_REPEAT_1_43(m, d) BOOST_PP_REPEAT_1_42(m, d) m(2, 42, d)
-# define BOOST_PP_REPEAT_1_44(m, d) BOOST_PP_REPEAT_1_43(m, d) m(2, 43, d)
-# define BOOST_PP_REPEAT_1_45(m, d) BOOST_PP_REPEAT_1_44(m, d) m(2, 44, d)
-# define BOOST_PP_REPEAT_1_46(m, d) BOOST_PP_REPEAT_1_45(m, d) m(2, 45, d)
-# define BOOST_PP_REPEAT_1_47(m, d) BOOST_PP_REPEAT_1_46(m, d) m(2, 46, d)
-# define BOOST_PP_REPEAT_1_48(m, d) BOOST_PP_REPEAT_1_47(m, d) m(2, 47, d)
-# define BOOST_PP_REPEAT_1_49(m, d) BOOST_PP_REPEAT_1_48(m, d) m(2, 48, d)
-# define BOOST_PP_REPEAT_1_50(m, d) BOOST_PP_REPEAT_1_49(m, d) m(2, 49, d)
-# define BOOST_PP_REPEAT_1_51(m, d) BOOST_PP_REPEAT_1_50(m, d) m(2, 50, d)
-# define BOOST_PP_REPEAT_1_52(m, d) BOOST_PP_REPEAT_1_51(m, d) m(2, 51, d)
-# define BOOST_PP_REPEAT_1_53(m, d) BOOST_PP_REPEAT_1_52(m, d) m(2, 52, d)
-# define BOOST_PP_REPEAT_1_54(m, d) BOOST_PP_REPEAT_1_53(m, d) m(2, 53, d)
-# define BOOST_PP_REPEAT_1_55(m, d) BOOST_PP_REPEAT_1_54(m, d) m(2, 54, d)
-# define BOOST_PP_REPEAT_1_56(m, d) BOOST_PP_REPEAT_1_55(m, d) m(2, 55, d)
-# define BOOST_PP_REPEAT_1_57(m, d) BOOST_PP_REPEAT_1_56(m, d) m(2, 56, d)
-# define BOOST_PP_REPEAT_1_58(m, d) BOOST_PP_REPEAT_1_57(m, d) m(2, 57, d)
-# define BOOST_PP_REPEAT_1_59(m, d) BOOST_PP_REPEAT_1_58(m, d) m(2, 58, d)
-# define BOOST_PP_REPEAT_1_60(m, d) BOOST_PP_REPEAT_1_59(m, d) m(2, 59, d)
-# define BOOST_PP_REPEAT_1_61(m, d) BOOST_PP_REPEAT_1_60(m, d) m(2, 60, d)
-# define BOOST_PP_REPEAT_1_62(m, d) BOOST_PP_REPEAT_1_61(m, d) m(2, 61, d)
-# define BOOST_PP_REPEAT_1_63(m, d) BOOST_PP_REPEAT_1_62(m, d) m(2, 62, d)
-# define BOOST_PP_REPEAT_1_64(m, d) BOOST_PP_REPEAT_1_63(m, d) m(2, 63, d)
-# define BOOST_PP_REPEAT_1_65(m, d) BOOST_PP_REPEAT_1_64(m, d) m(2, 64, d)
-# define BOOST_PP_REPEAT_1_66(m, d) BOOST_PP_REPEAT_1_65(m, d) m(2, 65, d)
-# define BOOST_PP_REPEAT_1_67(m, d) BOOST_PP_REPEAT_1_66(m, d) m(2, 66, d)
-# define BOOST_PP_REPEAT_1_68(m, d) BOOST_PP_REPEAT_1_67(m, d) m(2, 67, d)
-# define BOOST_PP_REPEAT_1_69(m, d) BOOST_PP_REPEAT_1_68(m, d) m(2, 68, d)
-# define BOOST_PP_REPEAT_1_70(m, d) BOOST_PP_REPEAT_1_69(m, d) m(2, 69, d)
-# define BOOST_PP_REPEAT_1_71(m, d) BOOST_PP_REPEAT_1_70(m, d) m(2, 70, d)
-# define BOOST_PP_REPEAT_1_72(m, d) BOOST_PP_REPEAT_1_71(m, d) m(2, 71, d)
-# define BOOST_PP_REPEAT_1_73(m, d) BOOST_PP_REPEAT_1_72(m, d) m(2, 72, d)
-# define BOOST_PP_REPEAT_1_74(m, d) BOOST_PP_REPEAT_1_73(m, d) m(2, 73, d)
-# define BOOST_PP_REPEAT_1_75(m, d) BOOST_PP_REPEAT_1_74(m, d) m(2, 74, d)
-# define BOOST_PP_REPEAT_1_76(m, d) BOOST_PP_REPEAT_1_75(m, d) m(2, 75, d)
-# define BOOST_PP_REPEAT_1_77(m, d) BOOST_PP_REPEAT_1_76(m, d) m(2, 76, d)
-# define BOOST_PP_REPEAT_1_78(m, d) BOOST_PP_REPEAT_1_77(m, d) m(2, 77, d)
-# define BOOST_PP_REPEAT_1_79(m, d) BOOST_PP_REPEAT_1_78(m, d) m(2, 78, d)
-# define BOOST_PP_REPEAT_1_80(m, d) BOOST_PP_REPEAT_1_79(m, d) m(2, 79, d)
-# define BOOST_PP_REPEAT_1_81(m, d) BOOST_PP_REPEAT_1_80(m, d) m(2, 80, d)
-# define BOOST_PP_REPEAT_1_82(m, d) BOOST_PP_REPEAT_1_81(m, d) m(2, 81, d)
-# define BOOST_PP_REPEAT_1_83(m, d) BOOST_PP_REPEAT_1_82(m, d) m(2, 82, d)
-# define BOOST_PP_REPEAT_1_84(m, d) BOOST_PP_REPEAT_1_83(m, d) m(2, 83, d)
-# define BOOST_PP_REPEAT_1_85(m, d) BOOST_PP_REPEAT_1_84(m, d) m(2, 84, d)
-# define BOOST_PP_REPEAT_1_86(m, d) BOOST_PP_REPEAT_1_85(m, d) m(2, 85, d)
-# define BOOST_PP_REPEAT_1_87(m, d) BOOST_PP_REPEAT_1_86(m, d) m(2, 86, d)
-# define BOOST_PP_REPEAT_1_88(m, d) BOOST_PP_REPEAT_1_87(m, d) m(2, 87, d)
-# define BOOST_PP_REPEAT_1_89(m, d) BOOST_PP_REPEAT_1_88(m, d) m(2, 88, d)
-# define BOOST_PP_REPEAT_1_90(m, d) BOOST_PP_REPEAT_1_89(m, d) m(2, 89, d)
-# define BOOST_PP_REPEAT_1_91(m, d) BOOST_PP_REPEAT_1_90(m, d) m(2, 90, d)
-# define BOOST_PP_REPEAT_1_92(m, d) BOOST_PP_REPEAT_1_91(m, d) m(2, 91, d)
-# define BOOST_PP_REPEAT_1_93(m, d) BOOST_PP_REPEAT_1_92(m, d) m(2, 92, d)
-# define BOOST_PP_REPEAT_1_94(m, d) BOOST_PP_REPEAT_1_93(m, d) m(2, 93, d)
-# define BOOST_PP_REPEAT_1_95(m, d) BOOST_PP_REPEAT_1_94(m, d) m(2, 94, d)
-# define BOOST_PP_REPEAT_1_96(m, d) BOOST_PP_REPEAT_1_95(m, d) m(2, 95, d)
-# define BOOST_PP_REPEAT_1_97(m, d) BOOST_PP_REPEAT_1_96(m, d) m(2, 96, d)
-# define BOOST_PP_REPEAT_1_98(m, d) BOOST_PP_REPEAT_1_97(m, d) m(2, 97, d)
-# define BOOST_PP_REPEAT_1_99(m, d) BOOST_PP_REPEAT_1_98(m, d) m(2, 98, d)
-# define BOOST_PP_REPEAT_1_100(m, d) BOOST_PP_REPEAT_1_99(m, d) m(2, 99, d)
-# define BOOST_PP_REPEAT_1_101(m, d) BOOST_PP_REPEAT_1_100(m, d) m(2, 100, d)
-# define BOOST_PP_REPEAT_1_102(m, d) BOOST_PP_REPEAT_1_101(m, d) m(2, 101, d)
-# define BOOST_PP_REPEAT_1_103(m, d) BOOST_PP_REPEAT_1_102(m, d) m(2, 102, d)
-# define BOOST_PP_REPEAT_1_104(m, d) BOOST_PP_REPEAT_1_103(m, d) m(2, 103, d)
-# define BOOST_PP_REPEAT_1_105(m, d) BOOST_PP_REPEAT_1_104(m, d) m(2, 104, d)
-# define BOOST_PP_REPEAT_1_106(m, d) BOOST_PP_REPEAT_1_105(m, d) m(2, 105, d)
-# define BOOST_PP_REPEAT_1_107(m, d) BOOST_PP_REPEAT_1_106(m, d) m(2, 106, d)
-# define BOOST_PP_REPEAT_1_108(m, d) BOOST_PP_REPEAT_1_107(m, d) m(2, 107, d)
-# define BOOST_PP_REPEAT_1_109(m, d) BOOST_PP_REPEAT_1_108(m, d) m(2, 108, d)
-# define BOOST_PP_REPEAT_1_110(m, d) BOOST_PP_REPEAT_1_109(m, d) m(2, 109, d)
-# define BOOST_PP_REPEAT_1_111(m, d) BOOST_PP_REPEAT_1_110(m, d) m(2, 110, d)
-# define BOOST_PP_REPEAT_1_112(m, d) BOOST_PP_REPEAT_1_111(m, d) m(2, 111, d)
-# define BOOST_PP_REPEAT_1_113(m, d) BOOST_PP_REPEAT_1_112(m, d) m(2, 112, d)
-# define BOOST_PP_REPEAT_1_114(m, d) BOOST_PP_REPEAT_1_113(m, d) m(2, 113, d)
-# define BOOST_PP_REPEAT_1_115(m, d) BOOST_PP_REPEAT_1_114(m, d) m(2, 114, d)
-# define BOOST_PP_REPEAT_1_116(m, d) BOOST_PP_REPEAT_1_115(m, d) m(2, 115, d)
-# define BOOST_PP_REPEAT_1_117(m, d) BOOST_PP_REPEAT_1_116(m, d) m(2, 116, d)
-# define BOOST_PP_REPEAT_1_118(m, d) BOOST_PP_REPEAT_1_117(m, d) m(2, 117, d)
-# define BOOST_PP_REPEAT_1_119(m, d) BOOST_PP_REPEAT_1_118(m, d) m(2, 118, d)
-# define BOOST_PP_REPEAT_1_120(m, d) BOOST_PP_REPEAT_1_119(m, d) m(2, 119, d)
-# define BOOST_PP_REPEAT_1_121(m, d) BOOST_PP_REPEAT_1_120(m, d) m(2, 120, d)
-# define BOOST_PP_REPEAT_1_122(m, d) BOOST_PP_REPEAT_1_121(m, d) m(2, 121, d)
-# define BOOST_PP_REPEAT_1_123(m, d) BOOST_PP_REPEAT_1_122(m, d) m(2, 122, d)
-# define BOOST_PP_REPEAT_1_124(m, d) BOOST_PP_REPEAT_1_123(m, d) m(2, 123, d)
-# define BOOST_PP_REPEAT_1_125(m, d) BOOST_PP_REPEAT_1_124(m, d) m(2, 124, d)
-# define BOOST_PP_REPEAT_1_126(m, d) BOOST_PP_REPEAT_1_125(m, d) m(2, 125, d)
-# define BOOST_PP_REPEAT_1_127(m, d) BOOST_PP_REPEAT_1_126(m, d) m(2, 126, d)
-# define BOOST_PP_REPEAT_1_128(m, d) BOOST_PP_REPEAT_1_127(m, d) m(2, 127, d)
-# define BOOST_PP_REPEAT_1_129(m, d) BOOST_PP_REPEAT_1_128(m, d) m(2, 128, d)
-# define BOOST_PP_REPEAT_1_130(m, d) BOOST_PP_REPEAT_1_129(m, d) m(2, 129, d)
-# define BOOST_PP_REPEAT_1_131(m, d) BOOST_PP_REPEAT_1_130(m, d) m(2, 130, d)
-# define BOOST_PP_REPEAT_1_132(m, d) BOOST_PP_REPEAT_1_131(m, d) m(2, 131, d)
-# define BOOST_PP_REPEAT_1_133(m, d) BOOST_PP_REPEAT_1_132(m, d) m(2, 132, d)
-# define BOOST_PP_REPEAT_1_134(m, d) BOOST_PP_REPEAT_1_133(m, d) m(2, 133, d)
-# define BOOST_PP_REPEAT_1_135(m, d) BOOST_PP_REPEAT_1_134(m, d) m(2, 134, d)
-# define BOOST_PP_REPEAT_1_136(m, d) BOOST_PP_REPEAT_1_135(m, d) m(2, 135, d)
-# define BOOST_PP_REPEAT_1_137(m, d) BOOST_PP_REPEAT_1_136(m, d) m(2, 136, d)
-# define BOOST_PP_REPEAT_1_138(m, d) BOOST_PP_REPEAT_1_137(m, d) m(2, 137, d)
-# define BOOST_PP_REPEAT_1_139(m, d) BOOST_PP_REPEAT_1_138(m, d) m(2, 138, d)
-# define BOOST_PP_REPEAT_1_140(m, d) BOOST_PP_REPEAT_1_139(m, d) m(2, 139, d)
-# define BOOST_PP_REPEAT_1_141(m, d) BOOST_PP_REPEAT_1_140(m, d) m(2, 140, d)
-# define BOOST_PP_REPEAT_1_142(m, d) BOOST_PP_REPEAT_1_141(m, d) m(2, 141, d)
-# define BOOST_PP_REPEAT_1_143(m, d) BOOST_PP_REPEAT_1_142(m, d) m(2, 142, d)
-# define BOOST_PP_REPEAT_1_144(m, d) BOOST_PP_REPEAT_1_143(m, d) m(2, 143, d)
-# define BOOST_PP_REPEAT_1_145(m, d) BOOST_PP_REPEAT_1_144(m, d) m(2, 144, d)
-# define BOOST_PP_REPEAT_1_146(m, d) BOOST_PP_REPEAT_1_145(m, d) m(2, 145, d)
-# define BOOST_PP_REPEAT_1_147(m, d) BOOST_PP_REPEAT_1_146(m, d) m(2, 146, d)
-# define BOOST_PP_REPEAT_1_148(m, d) BOOST_PP_REPEAT_1_147(m, d) m(2, 147, d)
-# define BOOST_PP_REPEAT_1_149(m, d) BOOST_PP_REPEAT_1_148(m, d) m(2, 148, d)
-# define BOOST_PP_REPEAT_1_150(m, d) BOOST_PP_REPEAT_1_149(m, d) m(2, 149, d)
-# define BOOST_PP_REPEAT_1_151(m, d) BOOST_PP_REPEAT_1_150(m, d) m(2, 150, d)
-# define BOOST_PP_REPEAT_1_152(m, d) BOOST_PP_REPEAT_1_151(m, d) m(2, 151, d)
-# define BOOST_PP_REPEAT_1_153(m, d) BOOST_PP_REPEAT_1_152(m, d) m(2, 152, d)
-# define BOOST_PP_REPEAT_1_154(m, d) BOOST_PP_REPEAT_1_153(m, d) m(2, 153, d)
-# define BOOST_PP_REPEAT_1_155(m, d) BOOST_PP_REPEAT_1_154(m, d) m(2, 154, d)
-# define BOOST_PP_REPEAT_1_156(m, d) BOOST_PP_REPEAT_1_155(m, d) m(2, 155, d)
-# define BOOST_PP_REPEAT_1_157(m, d) BOOST_PP_REPEAT_1_156(m, d) m(2, 156, d)
-# define BOOST_PP_REPEAT_1_158(m, d) BOOST_PP_REPEAT_1_157(m, d) m(2, 157, d)
-# define BOOST_PP_REPEAT_1_159(m, d) BOOST_PP_REPEAT_1_158(m, d) m(2, 158, d)
-# define BOOST_PP_REPEAT_1_160(m, d) BOOST_PP_REPEAT_1_159(m, d) m(2, 159, d)
-# define BOOST_PP_REPEAT_1_161(m, d) BOOST_PP_REPEAT_1_160(m, d) m(2, 160, d)
-# define BOOST_PP_REPEAT_1_162(m, d) BOOST_PP_REPEAT_1_161(m, d) m(2, 161, d)
-# define BOOST_PP_REPEAT_1_163(m, d) BOOST_PP_REPEAT_1_162(m, d) m(2, 162, d)
-# define BOOST_PP_REPEAT_1_164(m, d) BOOST_PP_REPEAT_1_163(m, d) m(2, 163, d)
-# define BOOST_PP_REPEAT_1_165(m, d) BOOST_PP_REPEAT_1_164(m, d) m(2, 164, d)
-# define BOOST_PP_REPEAT_1_166(m, d) BOOST_PP_REPEAT_1_165(m, d) m(2, 165, d)
-# define BOOST_PP_REPEAT_1_167(m, d) BOOST_PP_REPEAT_1_166(m, d) m(2, 166, d)
-# define BOOST_PP_REPEAT_1_168(m, d) BOOST_PP_REPEAT_1_167(m, d) m(2, 167, d)
-# define BOOST_PP_REPEAT_1_169(m, d) BOOST_PP_REPEAT_1_168(m, d) m(2, 168, d)
-# define BOOST_PP_REPEAT_1_170(m, d) BOOST_PP_REPEAT_1_169(m, d) m(2, 169, d)
-# define BOOST_PP_REPEAT_1_171(m, d) BOOST_PP_REPEAT_1_170(m, d) m(2, 170, d)
-# define BOOST_PP_REPEAT_1_172(m, d) BOOST_PP_REPEAT_1_171(m, d) m(2, 171, d)
-# define BOOST_PP_REPEAT_1_173(m, d) BOOST_PP_REPEAT_1_172(m, d) m(2, 172, d)
-# define BOOST_PP_REPEAT_1_174(m, d) BOOST_PP_REPEAT_1_173(m, d) m(2, 173, d)
-# define BOOST_PP_REPEAT_1_175(m, d) BOOST_PP_REPEAT_1_174(m, d) m(2, 174, d)
-# define BOOST_PP_REPEAT_1_176(m, d) BOOST_PP_REPEAT_1_175(m, d) m(2, 175, d)
-# define BOOST_PP_REPEAT_1_177(m, d) BOOST_PP_REPEAT_1_176(m, d) m(2, 176, d)
-# define BOOST_PP_REPEAT_1_178(m, d) BOOST_PP_REPEAT_1_177(m, d) m(2, 177, d)
-# define BOOST_PP_REPEAT_1_179(m, d) BOOST_PP_REPEAT_1_178(m, d) m(2, 178, d)
-# define BOOST_PP_REPEAT_1_180(m, d) BOOST_PP_REPEAT_1_179(m, d) m(2, 179, d)
-# define BOOST_PP_REPEAT_1_181(m, d) BOOST_PP_REPEAT_1_180(m, d) m(2, 180, d)
-# define BOOST_PP_REPEAT_1_182(m, d) BOOST_PP_REPEAT_1_181(m, d) m(2, 181, d)
-# define BOOST_PP_REPEAT_1_183(m, d) BOOST_PP_REPEAT_1_182(m, d) m(2, 182, d)
-# define BOOST_PP_REPEAT_1_184(m, d) BOOST_PP_REPEAT_1_183(m, d) m(2, 183, d)
-# define BOOST_PP_REPEAT_1_185(m, d) BOOST_PP_REPEAT_1_184(m, d) m(2, 184, d)
-# define BOOST_PP_REPEAT_1_186(m, d) BOOST_PP_REPEAT_1_185(m, d) m(2, 185, d)
-# define BOOST_PP_REPEAT_1_187(m, d) BOOST_PP_REPEAT_1_186(m, d) m(2, 186, d)
-# define BOOST_PP_REPEAT_1_188(m, d) BOOST_PP_REPEAT_1_187(m, d) m(2, 187, d)
-# define BOOST_PP_REPEAT_1_189(m, d) BOOST_PP_REPEAT_1_188(m, d) m(2, 188, d)
-# define BOOST_PP_REPEAT_1_190(m, d) BOOST_PP_REPEAT_1_189(m, d) m(2, 189, d)
-# define BOOST_PP_REPEAT_1_191(m, d) BOOST_PP_REPEAT_1_190(m, d) m(2, 190, d)
-# define BOOST_PP_REPEAT_1_192(m, d) BOOST_PP_REPEAT_1_191(m, d) m(2, 191, d)
-# define BOOST_PP_REPEAT_1_193(m, d) BOOST_PP_REPEAT_1_192(m, d) m(2, 192, d)
-# define BOOST_PP_REPEAT_1_194(m, d) BOOST_PP_REPEAT_1_193(m, d) m(2, 193, d)
-# define BOOST_PP_REPEAT_1_195(m, d) BOOST_PP_REPEAT_1_194(m, d) m(2, 194, d)
-# define BOOST_PP_REPEAT_1_196(m, d) BOOST_PP_REPEAT_1_195(m, d) m(2, 195, d)
-# define BOOST_PP_REPEAT_1_197(m, d) BOOST_PP_REPEAT_1_196(m, d) m(2, 196, d)
-# define BOOST_PP_REPEAT_1_198(m, d) BOOST_PP_REPEAT_1_197(m, d) m(2, 197, d)
-# define BOOST_PP_REPEAT_1_199(m, d) BOOST_PP_REPEAT_1_198(m, d) m(2, 198, d)
-# define BOOST_PP_REPEAT_1_200(m, d) BOOST_PP_REPEAT_1_199(m, d) m(2, 199, d)
-# define BOOST_PP_REPEAT_1_201(m, d) BOOST_PP_REPEAT_1_200(m, d) m(2, 200, d)
-# define BOOST_PP_REPEAT_1_202(m, d) BOOST_PP_REPEAT_1_201(m, d) m(2, 201, d)
-# define BOOST_PP_REPEAT_1_203(m, d) BOOST_PP_REPEAT_1_202(m, d) m(2, 202, d)
-# define BOOST_PP_REPEAT_1_204(m, d) BOOST_PP_REPEAT_1_203(m, d) m(2, 203, d)
-# define BOOST_PP_REPEAT_1_205(m, d) BOOST_PP_REPEAT_1_204(m, d) m(2, 204, d)
-# define BOOST_PP_REPEAT_1_206(m, d) BOOST_PP_REPEAT_1_205(m, d) m(2, 205, d)
-# define BOOST_PP_REPEAT_1_207(m, d) BOOST_PP_REPEAT_1_206(m, d) m(2, 206, d)
-# define BOOST_PP_REPEAT_1_208(m, d) BOOST_PP_REPEAT_1_207(m, d) m(2, 207, d)
-# define BOOST_PP_REPEAT_1_209(m, d) BOOST_PP_REPEAT_1_208(m, d) m(2, 208, d)
-# define BOOST_PP_REPEAT_1_210(m, d) BOOST_PP_REPEAT_1_209(m, d) m(2, 209, d)
-# define BOOST_PP_REPEAT_1_211(m, d) BOOST_PP_REPEAT_1_210(m, d) m(2, 210, d)
-# define BOOST_PP_REPEAT_1_212(m, d) BOOST_PP_REPEAT_1_211(m, d) m(2, 211, d)
-# define BOOST_PP_REPEAT_1_213(m, d) BOOST_PP_REPEAT_1_212(m, d) m(2, 212, d)
-# define BOOST_PP_REPEAT_1_214(m, d) BOOST_PP_REPEAT_1_213(m, d) m(2, 213, d)
-# define BOOST_PP_REPEAT_1_215(m, d) BOOST_PP_REPEAT_1_214(m, d) m(2, 214, d)
-# define BOOST_PP_REPEAT_1_216(m, d) BOOST_PP_REPEAT_1_215(m, d) m(2, 215, d)
-# define BOOST_PP_REPEAT_1_217(m, d) BOOST_PP_REPEAT_1_216(m, d) m(2, 216, d)
-# define BOOST_PP_REPEAT_1_218(m, d) BOOST_PP_REPEAT_1_217(m, d) m(2, 217, d)
-# define BOOST_PP_REPEAT_1_219(m, d) BOOST_PP_REPEAT_1_218(m, d) m(2, 218, d)
-# define BOOST_PP_REPEAT_1_220(m, d) BOOST_PP_REPEAT_1_219(m, d) m(2, 219, d)
-# define BOOST_PP_REPEAT_1_221(m, d) BOOST_PP_REPEAT_1_220(m, d) m(2, 220, d)
-# define BOOST_PP_REPEAT_1_222(m, d) BOOST_PP_REPEAT_1_221(m, d) m(2, 221, d)
-# define BOOST_PP_REPEAT_1_223(m, d) BOOST_PP_REPEAT_1_222(m, d) m(2, 222, d)
-# define BOOST_PP_REPEAT_1_224(m, d) BOOST_PP_REPEAT_1_223(m, d) m(2, 223, d)
-# define BOOST_PP_REPEAT_1_225(m, d) BOOST_PP_REPEAT_1_224(m, d) m(2, 224, d)
-# define BOOST_PP_REPEAT_1_226(m, d) BOOST_PP_REPEAT_1_225(m, d) m(2, 225, d)
-# define BOOST_PP_REPEAT_1_227(m, d) BOOST_PP_REPEAT_1_226(m, d) m(2, 226, d)
-# define BOOST_PP_REPEAT_1_228(m, d) BOOST_PP_REPEAT_1_227(m, d) m(2, 227, d)
-# define BOOST_PP_REPEAT_1_229(m, d) BOOST_PP_REPEAT_1_228(m, d) m(2, 228, d)
-# define BOOST_PP_REPEAT_1_230(m, d) BOOST_PP_REPEAT_1_229(m, d) m(2, 229, d)
-# define BOOST_PP_REPEAT_1_231(m, d) BOOST_PP_REPEAT_1_230(m, d) m(2, 230, d)
-# define BOOST_PP_REPEAT_1_232(m, d) BOOST_PP_REPEAT_1_231(m, d) m(2, 231, d)
-# define BOOST_PP_REPEAT_1_233(m, d) BOOST_PP_REPEAT_1_232(m, d) m(2, 232, d)
-# define BOOST_PP_REPEAT_1_234(m, d) BOOST_PP_REPEAT_1_233(m, d) m(2, 233, d)
-# define BOOST_PP_REPEAT_1_235(m, d) BOOST_PP_REPEAT_1_234(m, d) m(2, 234, d)
-# define BOOST_PP_REPEAT_1_236(m, d) BOOST_PP_REPEAT_1_235(m, d) m(2, 235, d)
-# define BOOST_PP_REPEAT_1_237(m, d) BOOST_PP_REPEAT_1_236(m, d) m(2, 236, d)
-# define BOOST_PP_REPEAT_1_238(m, d) BOOST_PP_REPEAT_1_237(m, d) m(2, 237, d)
-# define BOOST_PP_REPEAT_1_239(m, d) BOOST_PP_REPEAT_1_238(m, d) m(2, 238, d)
-# define BOOST_PP_REPEAT_1_240(m, d) BOOST_PP_REPEAT_1_239(m, d) m(2, 239, d)
-# define BOOST_PP_REPEAT_1_241(m, d) BOOST_PP_REPEAT_1_240(m, d) m(2, 240, d)
-# define BOOST_PP_REPEAT_1_242(m, d) BOOST_PP_REPEAT_1_241(m, d) m(2, 241, d)
-# define BOOST_PP_REPEAT_1_243(m, d) BOOST_PP_REPEAT_1_242(m, d) m(2, 242, d)
-# define BOOST_PP_REPEAT_1_244(m, d) BOOST_PP_REPEAT_1_243(m, d) m(2, 243, d)
-# define BOOST_PP_REPEAT_1_245(m, d) BOOST_PP_REPEAT_1_244(m, d) m(2, 244, d)
-# define BOOST_PP_REPEAT_1_246(m, d) BOOST_PP_REPEAT_1_245(m, d) m(2, 245, d)
-# define BOOST_PP_REPEAT_1_247(m, d) BOOST_PP_REPEAT_1_246(m, d) m(2, 246, d)
-# define BOOST_PP_REPEAT_1_248(m, d) BOOST_PP_REPEAT_1_247(m, d) m(2, 247, d)
-# define BOOST_PP_REPEAT_1_249(m, d) BOOST_PP_REPEAT_1_248(m, d) m(2, 248, d)
-# define BOOST_PP_REPEAT_1_250(m, d) BOOST_PP_REPEAT_1_249(m, d) m(2, 249, d)
-# define BOOST_PP_REPEAT_1_251(m, d) BOOST_PP_REPEAT_1_250(m, d) m(2, 250, d)
-# define BOOST_PP_REPEAT_1_252(m, d) BOOST_PP_REPEAT_1_251(m, d) m(2, 251, d)
-# define BOOST_PP_REPEAT_1_253(m, d) BOOST_PP_REPEAT_1_252(m, d) m(2, 252, d)
-# define BOOST_PP_REPEAT_1_254(m, d) BOOST_PP_REPEAT_1_253(m, d) m(2, 253, d)
-# define BOOST_PP_REPEAT_1_255(m, d) BOOST_PP_REPEAT_1_254(m, d) m(2, 254, d)
-# define BOOST_PP_REPEAT_1_256(m, d) BOOST_PP_REPEAT_1_255(m, d) m(2, 255, d)
+# define NDNBOOST_PP_REPEAT_1_0(m, d)
+# define NDNBOOST_PP_REPEAT_1_1(m, d) m(2, 0, d)
+# define NDNBOOST_PP_REPEAT_1_2(m, d) NDNBOOST_PP_REPEAT_1_1(m, d) m(2, 1, d)
+# define NDNBOOST_PP_REPEAT_1_3(m, d) NDNBOOST_PP_REPEAT_1_2(m, d) m(2, 2, d)
+# define NDNBOOST_PP_REPEAT_1_4(m, d) NDNBOOST_PP_REPEAT_1_3(m, d) m(2, 3, d)
+# define NDNBOOST_PP_REPEAT_1_5(m, d) NDNBOOST_PP_REPEAT_1_4(m, d) m(2, 4, d)
+# define NDNBOOST_PP_REPEAT_1_6(m, d) NDNBOOST_PP_REPEAT_1_5(m, d) m(2, 5, d)
+# define NDNBOOST_PP_REPEAT_1_7(m, d) NDNBOOST_PP_REPEAT_1_6(m, d) m(2, 6, d)
+# define NDNBOOST_PP_REPEAT_1_8(m, d) NDNBOOST_PP_REPEAT_1_7(m, d) m(2, 7, d)
+# define NDNBOOST_PP_REPEAT_1_9(m, d) NDNBOOST_PP_REPEAT_1_8(m, d) m(2, 8, d)
+# define NDNBOOST_PP_REPEAT_1_10(m, d) NDNBOOST_PP_REPEAT_1_9(m, d) m(2, 9, d)
+# define NDNBOOST_PP_REPEAT_1_11(m, d) NDNBOOST_PP_REPEAT_1_10(m, d) m(2, 10, d)
+# define NDNBOOST_PP_REPEAT_1_12(m, d) NDNBOOST_PP_REPEAT_1_11(m, d) m(2, 11, d)
+# define NDNBOOST_PP_REPEAT_1_13(m, d) NDNBOOST_PP_REPEAT_1_12(m, d) m(2, 12, d)
+# define NDNBOOST_PP_REPEAT_1_14(m, d) NDNBOOST_PP_REPEAT_1_13(m, d) m(2, 13, d)
+# define NDNBOOST_PP_REPEAT_1_15(m, d) NDNBOOST_PP_REPEAT_1_14(m, d) m(2, 14, d)
+# define NDNBOOST_PP_REPEAT_1_16(m, d) NDNBOOST_PP_REPEAT_1_15(m, d) m(2, 15, d)
+# define NDNBOOST_PP_REPEAT_1_17(m, d) NDNBOOST_PP_REPEAT_1_16(m, d) m(2, 16, d)
+# define NDNBOOST_PP_REPEAT_1_18(m, d) NDNBOOST_PP_REPEAT_1_17(m, d) m(2, 17, d)
+# define NDNBOOST_PP_REPEAT_1_19(m, d) NDNBOOST_PP_REPEAT_1_18(m, d) m(2, 18, d)
+# define NDNBOOST_PP_REPEAT_1_20(m, d) NDNBOOST_PP_REPEAT_1_19(m, d) m(2, 19, d)
+# define NDNBOOST_PP_REPEAT_1_21(m, d) NDNBOOST_PP_REPEAT_1_20(m, d) m(2, 20, d)
+# define NDNBOOST_PP_REPEAT_1_22(m, d) NDNBOOST_PP_REPEAT_1_21(m, d) m(2, 21, d)
+# define NDNBOOST_PP_REPEAT_1_23(m, d) NDNBOOST_PP_REPEAT_1_22(m, d) m(2, 22, d)
+# define NDNBOOST_PP_REPEAT_1_24(m, d) NDNBOOST_PP_REPEAT_1_23(m, d) m(2, 23, d)
+# define NDNBOOST_PP_REPEAT_1_25(m, d) NDNBOOST_PP_REPEAT_1_24(m, d) m(2, 24, d)
+# define NDNBOOST_PP_REPEAT_1_26(m, d) NDNBOOST_PP_REPEAT_1_25(m, d) m(2, 25, d)
+# define NDNBOOST_PP_REPEAT_1_27(m, d) NDNBOOST_PP_REPEAT_1_26(m, d) m(2, 26, d)
+# define NDNBOOST_PP_REPEAT_1_28(m, d) NDNBOOST_PP_REPEAT_1_27(m, d) m(2, 27, d)
+# define NDNBOOST_PP_REPEAT_1_29(m, d) NDNBOOST_PP_REPEAT_1_28(m, d) m(2, 28, d)
+# define NDNBOOST_PP_REPEAT_1_30(m, d) NDNBOOST_PP_REPEAT_1_29(m, d) m(2, 29, d)
+# define NDNBOOST_PP_REPEAT_1_31(m, d) NDNBOOST_PP_REPEAT_1_30(m, d) m(2, 30, d)
+# define NDNBOOST_PP_REPEAT_1_32(m, d) NDNBOOST_PP_REPEAT_1_31(m, d) m(2, 31, d)
+# define NDNBOOST_PP_REPEAT_1_33(m, d) NDNBOOST_PP_REPEAT_1_32(m, d) m(2, 32, d)
+# define NDNBOOST_PP_REPEAT_1_34(m, d) NDNBOOST_PP_REPEAT_1_33(m, d) m(2, 33, d)
+# define NDNBOOST_PP_REPEAT_1_35(m, d) NDNBOOST_PP_REPEAT_1_34(m, d) m(2, 34, d)
+# define NDNBOOST_PP_REPEAT_1_36(m, d) NDNBOOST_PP_REPEAT_1_35(m, d) m(2, 35, d)
+# define NDNBOOST_PP_REPEAT_1_37(m, d) NDNBOOST_PP_REPEAT_1_36(m, d) m(2, 36, d)
+# define NDNBOOST_PP_REPEAT_1_38(m, d) NDNBOOST_PP_REPEAT_1_37(m, d) m(2, 37, d)
+# define NDNBOOST_PP_REPEAT_1_39(m, d) NDNBOOST_PP_REPEAT_1_38(m, d) m(2, 38, d)
+# define NDNBOOST_PP_REPEAT_1_40(m, d) NDNBOOST_PP_REPEAT_1_39(m, d) m(2, 39, d)
+# define NDNBOOST_PP_REPEAT_1_41(m, d) NDNBOOST_PP_REPEAT_1_40(m, d) m(2, 40, d)
+# define NDNBOOST_PP_REPEAT_1_42(m, d) NDNBOOST_PP_REPEAT_1_41(m, d) m(2, 41, d)
+# define NDNBOOST_PP_REPEAT_1_43(m, d) NDNBOOST_PP_REPEAT_1_42(m, d) m(2, 42, d)
+# define NDNBOOST_PP_REPEAT_1_44(m, d) NDNBOOST_PP_REPEAT_1_43(m, d) m(2, 43, d)
+# define NDNBOOST_PP_REPEAT_1_45(m, d) NDNBOOST_PP_REPEAT_1_44(m, d) m(2, 44, d)
+# define NDNBOOST_PP_REPEAT_1_46(m, d) NDNBOOST_PP_REPEAT_1_45(m, d) m(2, 45, d)
+# define NDNBOOST_PP_REPEAT_1_47(m, d) NDNBOOST_PP_REPEAT_1_46(m, d) m(2, 46, d)
+# define NDNBOOST_PP_REPEAT_1_48(m, d) NDNBOOST_PP_REPEAT_1_47(m, d) m(2, 47, d)
+# define NDNBOOST_PP_REPEAT_1_49(m, d) NDNBOOST_PP_REPEAT_1_48(m, d) m(2, 48, d)
+# define NDNBOOST_PP_REPEAT_1_50(m, d) NDNBOOST_PP_REPEAT_1_49(m, d) m(2, 49, d)
+# define NDNBOOST_PP_REPEAT_1_51(m, d) NDNBOOST_PP_REPEAT_1_50(m, d) m(2, 50, d)
+# define NDNBOOST_PP_REPEAT_1_52(m, d) NDNBOOST_PP_REPEAT_1_51(m, d) m(2, 51, d)
+# define NDNBOOST_PP_REPEAT_1_53(m, d) NDNBOOST_PP_REPEAT_1_52(m, d) m(2, 52, d)
+# define NDNBOOST_PP_REPEAT_1_54(m, d) NDNBOOST_PP_REPEAT_1_53(m, d) m(2, 53, d)
+# define NDNBOOST_PP_REPEAT_1_55(m, d) NDNBOOST_PP_REPEAT_1_54(m, d) m(2, 54, d)
+# define NDNBOOST_PP_REPEAT_1_56(m, d) NDNBOOST_PP_REPEAT_1_55(m, d) m(2, 55, d)
+# define NDNBOOST_PP_REPEAT_1_57(m, d) NDNBOOST_PP_REPEAT_1_56(m, d) m(2, 56, d)
+# define NDNBOOST_PP_REPEAT_1_58(m, d) NDNBOOST_PP_REPEAT_1_57(m, d) m(2, 57, d)
+# define NDNBOOST_PP_REPEAT_1_59(m, d) NDNBOOST_PP_REPEAT_1_58(m, d) m(2, 58, d)
+# define NDNBOOST_PP_REPEAT_1_60(m, d) NDNBOOST_PP_REPEAT_1_59(m, d) m(2, 59, d)
+# define NDNBOOST_PP_REPEAT_1_61(m, d) NDNBOOST_PP_REPEAT_1_60(m, d) m(2, 60, d)
+# define NDNBOOST_PP_REPEAT_1_62(m, d) NDNBOOST_PP_REPEAT_1_61(m, d) m(2, 61, d)
+# define NDNBOOST_PP_REPEAT_1_63(m, d) NDNBOOST_PP_REPEAT_1_62(m, d) m(2, 62, d)
+# define NDNBOOST_PP_REPEAT_1_64(m, d) NDNBOOST_PP_REPEAT_1_63(m, d) m(2, 63, d)
+# define NDNBOOST_PP_REPEAT_1_65(m, d) NDNBOOST_PP_REPEAT_1_64(m, d) m(2, 64, d)
+# define NDNBOOST_PP_REPEAT_1_66(m, d) NDNBOOST_PP_REPEAT_1_65(m, d) m(2, 65, d)
+# define NDNBOOST_PP_REPEAT_1_67(m, d) NDNBOOST_PP_REPEAT_1_66(m, d) m(2, 66, d)
+# define NDNBOOST_PP_REPEAT_1_68(m, d) NDNBOOST_PP_REPEAT_1_67(m, d) m(2, 67, d)
+# define NDNBOOST_PP_REPEAT_1_69(m, d) NDNBOOST_PP_REPEAT_1_68(m, d) m(2, 68, d)
+# define NDNBOOST_PP_REPEAT_1_70(m, d) NDNBOOST_PP_REPEAT_1_69(m, d) m(2, 69, d)
+# define NDNBOOST_PP_REPEAT_1_71(m, d) NDNBOOST_PP_REPEAT_1_70(m, d) m(2, 70, d)
+# define NDNBOOST_PP_REPEAT_1_72(m, d) NDNBOOST_PP_REPEAT_1_71(m, d) m(2, 71, d)
+# define NDNBOOST_PP_REPEAT_1_73(m, d) NDNBOOST_PP_REPEAT_1_72(m, d) m(2, 72, d)
+# define NDNBOOST_PP_REPEAT_1_74(m, d) NDNBOOST_PP_REPEAT_1_73(m, d) m(2, 73, d)
+# define NDNBOOST_PP_REPEAT_1_75(m, d) NDNBOOST_PP_REPEAT_1_74(m, d) m(2, 74, d)
+# define NDNBOOST_PP_REPEAT_1_76(m, d) NDNBOOST_PP_REPEAT_1_75(m, d) m(2, 75, d)
+# define NDNBOOST_PP_REPEAT_1_77(m, d) NDNBOOST_PP_REPEAT_1_76(m, d) m(2, 76, d)
+# define NDNBOOST_PP_REPEAT_1_78(m, d) NDNBOOST_PP_REPEAT_1_77(m, d) m(2, 77, d)
+# define NDNBOOST_PP_REPEAT_1_79(m, d) NDNBOOST_PP_REPEAT_1_78(m, d) m(2, 78, d)
+# define NDNBOOST_PP_REPEAT_1_80(m, d) NDNBOOST_PP_REPEAT_1_79(m, d) m(2, 79, d)
+# define NDNBOOST_PP_REPEAT_1_81(m, d) NDNBOOST_PP_REPEAT_1_80(m, d) m(2, 80, d)
+# define NDNBOOST_PP_REPEAT_1_82(m, d) NDNBOOST_PP_REPEAT_1_81(m, d) m(2, 81, d)
+# define NDNBOOST_PP_REPEAT_1_83(m, d) NDNBOOST_PP_REPEAT_1_82(m, d) m(2, 82, d)
+# define NDNBOOST_PP_REPEAT_1_84(m, d) NDNBOOST_PP_REPEAT_1_83(m, d) m(2, 83, d)
+# define NDNBOOST_PP_REPEAT_1_85(m, d) NDNBOOST_PP_REPEAT_1_84(m, d) m(2, 84, d)
+# define NDNBOOST_PP_REPEAT_1_86(m, d) NDNBOOST_PP_REPEAT_1_85(m, d) m(2, 85, d)
+# define NDNBOOST_PP_REPEAT_1_87(m, d) NDNBOOST_PP_REPEAT_1_86(m, d) m(2, 86, d)
+# define NDNBOOST_PP_REPEAT_1_88(m, d) NDNBOOST_PP_REPEAT_1_87(m, d) m(2, 87, d)
+# define NDNBOOST_PP_REPEAT_1_89(m, d) NDNBOOST_PP_REPEAT_1_88(m, d) m(2, 88, d)
+# define NDNBOOST_PP_REPEAT_1_90(m, d) NDNBOOST_PP_REPEAT_1_89(m, d) m(2, 89, d)
+# define NDNBOOST_PP_REPEAT_1_91(m, d) NDNBOOST_PP_REPEAT_1_90(m, d) m(2, 90, d)
+# define NDNBOOST_PP_REPEAT_1_92(m, d) NDNBOOST_PP_REPEAT_1_91(m, d) m(2, 91, d)
+# define NDNBOOST_PP_REPEAT_1_93(m, d) NDNBOOST_PP_REPEAT_1_92(m, d) m(2, 92, d)
+# define NDNBOOST_PP_REPEAT_1_94(m, d) NDNBOOST_PP_REPEAT_1_93(m, d) m(2, 93, d)
+# define NDNBOOST_PP_REPEAT_1_95(m, d) NDNBOOST_PP_REPEAT_1_94(m, d) m(2, 94, d)
+# define NDNBOOST_PP_REPEAT_1_96(m, d) NDNBOOST_PP_REPEAT_1_95(m, d) m(2, 95, d)
+# define NDNBOOST_PP_REPEAT_1_97(m, d) NDNBOOST_PP_REPEAT_1_96(m, d) m(2, 96, d)
+# define NDNBOOST_PP_REPEAT_1_98(m, d) NDNBOOST_PP_REPEAT_1_97(m, d) m(2, 97, d)
+# define NDNBOOST_PP_REPEAT_1_99(m, d) NDNBOOST_PP_REPEAT_1_98(m, d) m(2, 98, d)
+# define NDNBOOST_PP_REPEAT_1_100(m, d) NDNBOOST_PP_REPEAT_1_99(m, d) m(2, 99, d)
+# define NDNBOOST_PP_REPEAT_1_101(m, d) NDNBOOST_PP_REPEAT_1_100(m, d) m(2, 100, d)
+# define NDNBOOST_PP_REPEAT_1_102(m, d) NDNBOOST_PP_REPEAT_1_101(m, d) m(2, 101, d)
+# define NDNBOOST_PP_REPEAT_1_103(m, d) NDNBOOST_PP_REPEAT_1_102(m, d) m(2, 102, d)
+# define NDNBOOST_PP_REPEAT_1_104(m, d) NDNBOOST_PP_REPEAT_1_103(m, d) m(2, 103, d)
+# define NDNBOOST_PP_REPEAT_1_105(m, d) NDNBOOST_PP_REPEAT_1_104(m, d) m(2, 104, d)
+# define NDNBOOST_PP_REPEAT_1_106(m, d) NDNBOOST_PP_REPEAT_1_105(m, d) m(2, 105, d)
+# define NDNBOOST_PP_REPEAT_1_107(m, d) NDNBOOST_PP_REPEAT_1_106(m, d) m(2, 106, d)
+# define NDNBOOST_PP_REPEAT_1_108(m, d) NDNBOOST_PP_REPEAT_1_107(m, d) m(2, 107, d)
+# define NDNBOOST_PP_REPEAT_1_109(m, d) NDNBOOST_PP_REPEAT_1_108(m, d) m(2, 108, d)
+# define NDNBOOST_PP_REPEAT_1_110(m, d) NDNBOOST_PP_REPEAT_1_109(m, d) m(2, 109, d)
+# define NDNBOOST_PP_REPEAT_1_111(m, d) NDNBOOST_PP_REPEAT_1_110(m, d) m(2, 110, d)
+# define NDNBOOST_PP_REPEAT_1_112(m, d) NDNBOOST_PP_REPEAT_1_111(m, d) m(2, 111, d)
+# define NDNBOOST_PP_REPEAT_1_113(m, d) NDNBOOST_PP_REPEAT_1_112(m, d) m(2, 112, d)
+# define NDNBOOST_PP_REPEAT_1_114(m, d) NDNBOOST_PP_REPEAT_1_113(m, d) m(2, 113, d)
+# define NDNBOOST_PP_REPEAT_1_115(m, d) NDNBOOST_PP_REPEAT_1_114(m, d) m(2, 114, d)
+# define NDNBOOST_PP_REPEAT_1_116(m, d) NDNBOOST_PP_REPEAT_1_115(m, d) m(2, 115, d)
+# define NDNBOOST_PP_REPEAT_1_117(m, d) NDNBOOST_PP_REPEAT_1_116(m, d) m(2, 116, d)
+# define NDNBOOST_PP_REPEAT_1_118(m, d) NDNBOOST_PP_REPEAT_1_117(m, d) m(2, 117, d)
+# define NDNBOOST_PP_REPEAT_1_119(m, d) NDNBOOST_PP_REPEAT_1_118(m, d) m(2, 118, d)
+# define NDNBOOST_PP_REPEAT_1_120(m, d) NDNBOOST_PP_REPEAT_1_119(m, d) m(2, 119, d)
+# define NDNBOOST_PP_REPEAT_1_121(m, d) NDNBOOST_PP_REPEAT_1_120(m, d) m(2, 120, d)
+# define NDNBOOST_PP_REPEAT_1_122(m, d) NDNBOOST_PP_REPEAT_1_121(m, d) m(2, 121, d)
+# define NDNBOOST_PP_REPEAT_1_123(m, d) NDNBOOST_PP_REPEAT_1_122(m, d) m(2, 122, d)
+# define NDNBOOST_PP_REPEAT_1_124(m, d) NDNBOOST_PP_REPEAT_1_123(m, d) m(2, 123, d)
+# define NDNBOOST_PP_REPEAT_1_125(m, d) NDNBOOST_PP_REPEAT_1_124(m, d) m(2, 124, d)
+# define NDNBOOST_PP_REPEAT_1_126(m, d) NDNBOOST_PP_REPEAT_1_125(m, d) m(2, 125, d)
+# define NDNBOOST_PP_REPEAT_1_127(m, d) NDNBOOST_PP_REPEAT_1_126(m, d) m(2, 126, d)
+# define NDNBOOST_PP_REPEAT_1_128(m, d) NDNBOOST_PP_REPEAT_1_127(m, d) m(2, 127, d)
+# define NDNBOOST_PP_REPEAT_1_129(m, d) NDNBOOST_PP_REPEAT_1_128(m, d) m(2, 128, d)
+# define NDNBOOST_PP_REPEAT_1_130(m, d) NDNBOOST_PP_REPEAT_1_129(m, d) m(2, 129, d)
+# define NDNBOOST_PP_REPEAT_1_131(m, d) NDNBOOST_PP_REPEAT_1_130(m, d) m(2, 130, d)
+# define NDNBOOST_PP_REPEAT_1_132(m, d) NDNBOOST_PP_REPEAT_1_131(m, d) m(2, 131, d)
+# define NDNBOOST_PP_REPEAT_1_133(m, d) NDNBOOST_PP_REPEAT_1_132(m, d) m(2, 132, d)
+# define NDNBOOST_PP_REPEAT_1_134(m, d) NDNBOOST_PP_REPEAT_1_133(m, d) m(2, 133, d)
+# define NDNBOOST_PP_REPEAT_1_135(m, d) NDNBOOST_PP_REPEAT_1_134(m, d) m(2, 134, d)
+# define NDNBOOST_PP_REPEAT_1_136(m, d) NDNBOOST_PP_REPEAT_1_135(m, d) m(2, 135, d)
+# define NDNBOOST_PP_REPEAT_1_137(m, d) NDNBOOST_PP_REPEAT_1_136(m, d) m(2, 136, d)
+# define NDNBOOST_PP_REPEAT_1_138(m, d) NDNBOOST_PP_REPEAT_1_137(m, d) m(2, 137, d)
+# define NDNBOOST_PP_REPEAT_1_139(m, d) NDNBOOST_PP_REPEAT_1_138(m, d) m(2, 138, d)
+# define NDNBOOST_PP_REPEAT_1_140(m, d) NDNBOOST_PP_REPEAT_1_139(m, d) m(2, 139, d)
+# define NDNBOOST_PP_REPEAT_1_141(m, d) NDNBOOST_PP_REPEAT_1_140(m, d) m(2, 140, d)
+# define NDNBOOST_PP_REPEAT_1_142(m, d) NDNBOOST_PP_REPEAT_1_141(m, d) m(2, 141, d)
+# define NDNBOOST_PP_REPEAT_1_143(m, d) NDNBOOST_PP_REPEAT_1_142(m, d) m(2, 142, d)
+# define NDNBOOST_PP_REPEAT_1_144(m, d) NDNBOOST_PP_REPEAT_1_143(m, d) m(2, 143, d)
+# define NDNBOOST_PP_REPEAT_1_145(m, d) NDNBOOST_PP_REPEAT_1_144(m, d) m(2, 144, d)
+# define NDNBOOST_PP_REPEAT_1_146(m, d) NDNBOOST_PP_REPEAT_1_145(m, d) m(2, 145, d)
+# define NDNBOOST_PP_REPEAT_1_147(m, d) NDNBOOST_PP_REPEAT_1_146(m, d) m(2, 146, d)
+# define NDNBOOST_PP_REPEAT_1_148(m, d) NDNBOOST_PP_REPEAT_1_147(m, d) m(2, 147, d)
+# define NDNBOOST_PP_REPEAT_1_149(m, d) NDNBOOST_PP_REPEAT_1_148(m, d) m(2, 148, d)
+# define NDNBOOST_PP_REPEAT_1_150(m, d) NDNBOOST_PP_REPEAT_1_149(m, d) m(2, 149, d)
+# define NDNBOOST_PP_REPEAT_1_151(m, d) NDNBOOST_PP_REPEAT_1_150(m, d) m(2, 150, d)
+# define NDNBOOST_PP_REPEAT_1_152(m, d) NDNBOOST_PP_REPEAT_1_151(m, d) m(2, 151, d)
+# define NDNBOOST_PP_REPEAT_1_153(m, d) NDNBOOST_PP_REPEAT_1_152(m, d) m(2, 152, d)
+# define NDNBOOST_PP_REPEAT_1_154(m, d) NDNBOOST_PP_REPEAT_1_153(m, d) m(2, 153, d)
+# define NDNBOOST_PP_REPEAT_1_155(m, d) NDNBOOST_PP_REPEAT_1_154(m, d) m(2, 154, d)
+# define NDNBOOST_PP_REPEAT_1_156(m, d) NDNBOOST_PP_REPEAT_1_155(m, d) m(2, 155, d)
+# define NDNBOOST_PP_REPEAT_1_157(m, d) NDNBOOST_PP_REPEAT_1_156(m, d) m(2, 156, d)
+# define NDNBOOST_PP_REPEAT_1_158(m, d) NDNBOOST_PP_REPEAT_1_157(m, d) m(2, 157, d)
+# define NDNBOOST_PP_REPEAT_1_159(m, d) NDNBOOST_PP_REPEAT_1_158(m, d) m(2, 158, d)
+# define NDNBOOST_PP_REPEAT_1_160(m, d) NDNBOOST_PP_REPEAT_1_159(m, d) m(2, 159, d)
+# define NDNBOOST_PP_REPEAT_1_161(m, d) NDNBOOST_PP_REPEAT_1_160(m, d) m(2, 160, d)
+# define NDNBOOST_PP_REPEAT_1_162(m, d) NDNBOOST_PP_REPEAT_1_161(m, d) m(2, 161, d)
+# define NDNBOOST_PP_REPEAT_1_163(m, d) NDNBOOST_PP_REPEAT_1_162(m, d) m(2, 162, d)
+# define NDNBOOST_PP_REPEAT_1_164(m, d) NDNBOOST_PP_REPEAT_1_163(m, d) m(2, 163, d)
+# define NDNBOOST_PP_REPEAT_1_165(m, d) NDNBOOST_PP_REPEAT_1_164(m, d) m(2, 164, d)
+# define NDNBOOST_PP_REPEAT_1_166(m, d) NDNBOOST_PP_REPEAT_1_165(m, d) m(2, 165, d)
+# define NDNBOOST_PP_REPEAT_1_167(m, d) NDNBOOST_PP_REPEAT_1_166(m, d) m(2, 166, d)
+# define NDNBOOST_PP_REPEAT_1_168(m, d) NDNBOOST_PP_REPEAT_1_167(m, d) m(2, 167, d)
+# define NDNBOOST_PP_REPEAT_1_169(m, d) NDNBOOST_PP_REPEAT_1_168(m, d) m(2, 168, d)
+# define NDNBOOST_PP_REPEAT_1_170(m, d) NDNBOOST_PP_REPEAT_1_169(m, d) m(2, 169, d)
+# define NDNBOOST_PP_REPEAT_1_171(m, d) NDNBOOST_PP_REPEAT_1_170(m, d) m(2, 170, d)
+# define NDNBOOST_PP_REPEAT_1_172(m, d) NDNBOOST_PP_REPEAT_1_171(m, d) m(2, 171, d)
+# define NDNBOOST_PP_REPEAT_1_173(m, d) NDNBOOST_PP_REPEAT_1_172(m, d) m(2, 172, d)
+# define NDNBOOST_PP_REPEAT_1_174(m, d) NDNBOOST_PP_REPEAT_1_173(m, d) m(2, 173, d)
+# define NDNBOOST_PP_REPEAT_1_175(m, d) NDNBOOST_PP_REPEAT_1_174(m, d) m(2, 174, d)
+# define NDNBOOST_PP_REPEAT_1_176(m, d) NDNBOOST_PP_REPEAT_1_175(m, d) m(2, 175, d)
+# define NDNBOOST_PP_REPEAT_1_177(m, d) NDNBOOST_PP_REPEAT_1_176(m, d) m(2, 176, d)
+# define NDNBOOST_PP_REPEAT_1_178(m, d) NDNBOOST_PP_REPEAT_1_177(m, d) m(2, 177, d)
+# define NDNBOOST_PP_REPEAT_1_179(m, d) NDNBOOST_PP_REPEAT_1_178(m, d) m(2, 178, d)
+# define NDNBOOST_PP_REPEAT_1_180(m, d) NDNBOOST_PP_REPEAT_1_179(m, d) m(2, 179, d)
+# define NDNBOOST_PP_REPEAT_1_181(m, d) NDNBOOST_PP_REPEAT_1_180(m, d) m(2, 180, d)
+# define NDNBOOST_PP_REPEAT_1_182(m, d) NDNBOOST_PP_REPEAT_1_181(m, d) m(2, 181, d)
+# define NDNBOOST_PP_REPEAT_1_183(m, d) NDNBOOST_PP_REPEAT_1_182(m, d) m(2, 182, d)
+# define NDNBOOST_PP_REPEAT_1_184(m, d) NDNBOOST_PP_REPEAT_1_183(m, d) m(2, 183, d)
+# define NDNBOOST_PP_REPEAT_1_185(m, d) NDNBOOST_PP_REPEAT_1_184(m, d) m(2, 184, d)
+# define NDNBOOST_PP_REPEAT_1_186(m, d) NDNBOOST_PP_REPEAT_1_185(m, d) m(2, 185, d)
+# define NDNBOOST_PP_REPEAT_1_187(m, d) NDNBOOST_PP_REPEAT_1_186(m, d) m(2, 186, d)
+# define NDNBOOST_PP_REPEAT_1_188(m, d) NDNBOOST_PP_REPEAT_1_187(m, d) m(2, 187, d)
+# define NDNBOOST_PP_REPEAT_1_189(m, d) NDNBOOST_PP_REPEAT_1_188(m, d) m(2, 188, d)
+# define NDNBOOST_PP_REPEAT_1_190(m, d) NDNBOOST_PP_REPEAT_1_189(m, d) m(2, 189, d)
+# define NDNBOOST_PP_REPEAT_1_191(m, d) NDNBOOST_PP_REPEAT_1_190(m, d) m(2, 190, d)
+# define NDNBOOST_PP_REPEAT_1_192(m, d) NDNBOOST_PP_REPEAT_1_191(m, d) m(2, 191, d)
+# define NDNBOOST_PP_REPEAT_1_193(m, d) NDNBOOST_PP_REPEAT_1_192(m, d) m(2, 192, d)
+# define NDNBOOST_PP_REPEAT_1_194(m, d) NDNBOOST_PP_REPEAT_1_193(m, d) m(2, 193, d)
+# define NDNBOOST_PP_REPEAT_1_195(m, d) NDNBOOST_PP_REPEAT_1_194(m, d) m(2, 194, d)
+# define NDNBOOST_PP_REPEAT_1_196(m, d) NDNBOOST_PP_REPEAT_1_195(m, d) m(2, 195, d)
+# define NDNBOOST_PP_REPEAT_1_197(m, d) NDNBOOST_PP_REPEAT_1_196(m, d) m(2, 196, d)
+# define NDNBOOST_PP_REPEAT_1_198(m, d) NDNBOOST_PP_REPEAT_1_197(m, d) m(2, 197, d)
+# define NDNBOOST_PP_REPEAT_1_199(m, d) NDNBOOST_PP_REPEAT_1_198(m, d) m(2, 198, d)
+# define NDNBOOST_PP_REPEAT_1_200(m, d) NDNBOOST_PP_REPEAT_1_199(m, d) m(2, 199, d)
+# define NDNBOOST_PP_REPEAT_1_201(m, d) NDNBOOST_PP_REPEAT_1_200(m, d) m(2, 200, d)
+# define NDNBOOST_PP_REPEAT_1_202(m, d) NDNBOOST_PP_REPEAT_1_201(m, d) m(2, 201, d)
+# define NDNBOOST_PP_REPEAT_1_203(m, d) NDNBOOST_PP_REPEAT_1_202(m, d) m(2, 202, d)
+# define NDNBOOST_PP_REPEAT_1_204(m, d) NDNBOOST_PP_REPEAT_1_203(m, d) m(2, 203, d)
+# define NDNBOOST_PP_REPEAT_1_205(m, d) NDNBOOST_PP_REPEAT_1_204(m, d) m(2, 204, d)
+# define NDNBOOST_PP_REPEAT_1_206(m, d) NDNBOOST_PP_REPEAT_1_205(m, d) m(2, 205, d)
+# define NDNBOOST_PP_REPEAT_1_207(m, d) NDNBOOST_PP_REPEAT_1_206(m, d) m(2, 206, d)
+# define NDNBOOST_PP_REPEAT_1_208(m, d) NDNBOOST_PP_REPEAT_1_207(m, d) m(2, 207, d)
+# define NDNBOOST_PP_REPEAT_1_209(m, d) NDNBOOST_PP_REPEAT_1_208(m, d) m(2, 208, d)
+# define NDNBOOST_PP_REPEAT_1_210(m, d) NDNBOOST_PP_REPEAT_1_209(m, d) m(2, 209, d)
+# define NDNBOOST_PP_REPEAT_1_211(m, d) NDNBOOST_PP_REPEAT_1_210(m, d) m(2, 210, d)
+# define NDNBOOST_PP_REPEAT_1_212(m, d) NDNBOOST_PP_REPEAT_1_211(m, d) m(2, 211, d)
+# define NDNBOOST_PP_REPEAT_1_213(m, d) NDNBOOST_PP_REPEAT_1_212(m, d) m(2, 212, d)
+# define NDNBOOST_PP_REPEAT_1_214(m, d) NDNBOOST_PP_REPEAT_1_213(m, d) m(2, 213, d)
+# define NDNBOOST_PP_REPEAT_1_215(m, d) NDNBOOST_PP_REPEAT_1_214(m, d) m(2, 214, d)
+# define NDNBOOST_PP_REPEAT_1_216(m, d) NDNBOOST_PP_REPEAT_1_215(m, d) m(2, 215, d)
+# define NDNBOOST_PP_REPEAT_1_217(m, d) NDNBOOST_PP_REPEAT_1_216(m, d) m(2, 216, d)
+# define NDNBOOST_PP_REPEAT_1_218(m, d) NDNBOOST_PP_REPEAT_1_217(m, d) m(2, 217, d)
+# define NDNBOOST_PP_REPEAT_1_219(m, d) NDNBOOST_PP_REPEAT_1_218(m, d) m(2, 218, d)
+# define NDNBOOST_PP_REPEAT_1_220(m, d) NDNBOOST_PP_REPEAT_1_219(m, d) m(2, 219, d)
+# define NDNBOOST_PP_REPEAT_1_221(m, d) NDNBOOST_PP_REPEAT_1_220(m, d) m(2, 220, d)
+# define NDNBOOST_PP_REPEAT_1_222(m, d) NDNBOOST_PP_REPEAT_1_221(m, d) m(2, 221, d)
+# define NDNBOOST_PP_REPEAT_1_223(m, d) NDNBOOST_PP_REPEAT_1_222(m, d) m(2, 222, d)
+# define NDNBOOST_PP_REPEAT_1_224(m, d) NDNBOOST_PP_REPEAT_1_223(m, d) m(2, 223, d)
+# define NDNBOOST_PP_REPEAT_1_225(m, d) NDNBOOST_PP_REPEAT_1_224(m, d) m(2, 224, d)
+# define NDNBOOST_PP_REPEAT_1_226(m, d) NDNBOOST_PP_REPEAT_1_225(m, d) m(2, 225, d)
+# define NDNBOOST_PP_REPEAT_1_227(m, d) NDNBOOST_PP_REPEAT_1_226(m, d) m(2, 226, d)
+# define NDNBOOST_PP_REPEAT_1_228(m, d) NDNBOOST_PP_REPEAT_1_227(m, d) m(2, 227, d)
+# define NDNBOOST_PP_REPEAT_1_229(m, d) NDNBOOST_PP_REPEAT_1_228(m, d) m(2, 228, d)
+# define NDNBOOST_PP_REPEAT_1_230(m, d) NDNBOOST_PP_REPEAT_1_229(m, d) m(2, 229, d)
+# define NDNBOOST_PP_REPEAT_1_231(m, d) NDNBOOST_PP_REPEAT_1_230(m, d) m(2, 230, d)
+# define NDNBOOST_PP_REPEAT_1_232(m, d) NDNBOOST_PP_REPEAT_1_231(m, d) m(2, 231, d)
+# define NDNBOOST_PP_REPEAT_1_233(m, d) NDNBOOST_PP_REPEAT_1_232(m, d) m(2, 232, d)
+# define NDNBOOST_PP_REPEAT_1_234(m, d) NDNBOOST_PP_REPEAT_1_233(m, d) m(2, 233, d)
+# define NDNBOOST_PP_REPEAT_1_235(m, d) NDNBOOST_PP_REPEAT_1_234(m, d) m(2, 234, d)
+# define NDNBOOST_PP_REPEAT_1_236(m, d) NDNBOOST_PP_REPEAT_1_235(m, d) m(2, 235, d)
+# define NDNBOOST_PP_REPEAT_1_237(m, d) NDNBOOST_PP_REPEAT_1_236(m, d) m(2, 236, d)
+# define NDNBOOST_PP_REPEAT_1_238(m, d) NDNBOOST_PP_REPEAT_1_237(m, d) m(2, 237, d)
+# define NDNBOOST_PP_REPEAT_1_239(m, d) NDNBOOST_PP_REPEAT_1_238(m, d) m(2, 238, d)
+# define NDNBOOST_PP_REPEAT_1_240(m, d) NDNBOOST_PP_REPEAT_1_239(m, d) m(2, 239, d)
+# define NDNBOOST_PP_REPEAT_1_241(m, d) NDNBOOST_PP_REPEAT_1_240(m, d) m(2, 240, d)
+# define NDNBOOST_PP_REPEAT_1_242(m, d) NDNBOOST_PP_REPEAT_1_241(m, d) m(2, 241, d)
+# define NDNBOOST_PP_REPEAT_1_243(m, d) NDNBOOST_PP_REPEAT_1_242(m, d) m(2, 242, d)
+# define NDNBOOST_PP_REPEAT_1_244(m, d) NDNBOOST_PP_REPEAT_1_243(m, d) m(2, 243, d)
+# define NDNBOOST_PP_REPEAT_1_245(m, d) NDNBOOST_PP_REPEAT_1_244(m, d) m(2, 244, d)
+# define NDNBOOST_PP_REPEAT_1_246(m, d) NDNBOOST_PP_REPEAT_1_245(m, d) m(2, 245, d)
+# define NDNBOOST_PP_REPEAT_1_247(m, d) NDNBOOST_PP_REPEAT_1_246(m, d) m(2, 246, d)
+# define NDNBOOST_PP_REPEAT_1_248(m, d) NDNBOOST_PP_REPEAT_1_247(m, d) m(2, 247, d)
+# define NDNBOOST_PP_REPEAT_1_249(m, d) NDNBOOST_PP_REPEAT_1_248(m, d) m(2, 248, d)
+# define NDNBOOST_PP_REPEAT_1_250(m, d) NDNBOOST_PP_REPEAT_1_249(m, d) m(2, 249, d)
+# define NDNBOOST_PP_REPEAT_1_251(m, d) NDNBOOST_PP_REPEAT_1_250(m, d) m(2, 250, d)
+# define NDNBOOST_PP_REPEAT_1_252(m, d) NDNBOOST_PP_REPEAT_1_251(m, d) m(2, 251, d)
+# define NDNBOOST_PP_REPEAT_1_253(m, d) NDNBOOST_PP_REPEAT_1_252(m, d) m(2, 252, d)
+# define NDNBOOST_PP_REPEAT_1_254(m, d) NDNBOOST_PP_REPEAT_1_253(m, d) m(2, 253, d)
+# define NDNBOOST_PP_REPEAT_1_255(m, d) NDNBOOST_PP_REPEAT_1_254(m, d) m(2, 254, d)
+# define NDNBOOST_PP_REPEAT_1_256(m, d) NDNBOOST_PP_REPEAT_1_255(m, d) m(2, 255, d)
 #
-# define BOOST_PP_REPEAT_2_0(m, d)
-# define BOOST_PP_REPEAT_2_1(m, d) m(3, 0, d)
-# define BOOST_PP_REPEAT_2_2(m, d) BOOST_PP_REPEAT_2_1(m, d) m(3, 1, d)
-# define BOOST_PP_REPEAT_2_3(m, d) BOOST_PP_REPEAT_2_2(m, d) m(3, 2, d)
-# define BOOST_PP_REPEAT_2_4(m, d) BOOST_PP_REPEAT_2_3(m, d) m(3, 3, d)
-# define BOOST_PP_REPEAT_2_5(m, d) BOOST_PP_REPEAT_2_4(m, d) m(3, 4, d)
-# define BOOST_PP_REPEAT_2_6(m, d) BOOST_PP_REPEAT_2_5(m, d) m(3, 5, d)
-# define BOOST_PP_REPEAT_2_7(m, d) BOOST_PP_REPEAT_2_6(m, d) m(3, 6, d)
-# define BOOST_PP_REPEAT_2_8(m, d) BOOST_PP_REPEAT_2_7(m, d) m(3, 7, d)
-# define BOOST_PP_REPEAT_2_9(m, d) BOOST_PP_REPEAT_2_8(m, d) m(3, 8, d)
-# define BOOST_PP_REPEAT_2_10(m, d) BOOST_PP_REPEAT_2_9(m, d) m(3, 9, d)
-# define BOOST_PP_REPEAT_2_11(m, d) BOOST_PP_REPEAT_2_10(m, d) m(3, 10, d)
-# define BOOST_PP_REPEAT_2_12(m, d) BOOST_PP_REPEAT_2_11(m, d) m(3, 11, d)
-# define BOOST_PP_REPEAT_2_13(m, d) BOOST_PP_REPEAT_2_12(m, d) m(3, 12, d)
-# define BOOST_PP_REPEAT_2_14(m, d) BOOST_PP_REPEAT_2_13(m, d) m(3, 13, d)
-# define BOOST_PP_REPEAT_2_15(m, d) BOOST_PP_REPEAT_2_14(m, d) m(3, 14, d)
-# define BOOST_PP_REPEAT_2_16(m, d) BOOST_PP_REPEAT_2_15(m, d) m(3, 15, d)
-# define BOOST_PP_REPEAT_2_17(m, d) BOOST_PP_REPEAT_2_16(m, d) m(3, 16, d)
-# define BOOST_PP_REPEAT_2_18(m, d) BOOST_PP_REPEAT_2_17(m, d) m(3, 17, d)
-# define BOOST_PP_REPEAT_2_19(m, d) BOOST_PP_REPEAT_2_18(m, d) m(3, 18, d)
-# define BOOST_PP_REPEAT_2_20(m, d) BOOST_PP_REPEAT_2_19(m, d) m(3, 19, d)
-# define BOOST_PP_REPEAT_2_21(m, d) BOOST_PP_REPEAT_2_20(m, d) m(3, 20, d)
-# define BOOST_PP_REPEAT_2_22(m, d) BOOST_PP_REPEAT_2_21(m, d) m(3, 21, d)
-# define BOOST_PP_REPEAT_2_23(m, d) BOOST_PP_REPEAT_2_22(m, d) m(3, 22, d)
-# define BOOST_PP_REPEAT_2_24(m, d) BOOST_PP_REPEAT_2_23(m, d) m(3, 23, d)
-# define BOOST_PP_REPEAT_2_25(m, d) BOOST_PP_REPEAT_2_24(m, d) m(3, 24, d)
-# define BOOST_PP_REPEAT_2_26(m, d) BOOST_PP_REPEAT_2_25(m, d) m(3, 25, d)
-# define BOOST_PP_REPEAT_2_27(m, d) BOOST_PP_REPEAT_2_26(m, d) m(3, 26, d)
-# define BOOST_PP_REPEAT_2_28(m, d) BOOST_PP_REPEAT_2_27(m, d) m(3, 27, d)
-# define BOOST_PP_REPEAT_2_29(m, d) BOOST_PP_REPEAT_2_28(m, d) m(3, 28, d)
-# define BOOST_PP_REPEAT_2_30(m, d) BOOST_PP_REPEAT_2_29(m, d) m(3, 29, d)
-# define BOOST_PP_REPEAT_2_31(m, d) BOOST_PP_REPEAT_2_30(m, d) m(3, 30, d)
-# define BOOST_PP_REPEAT_2_32(m, d) BOOST_PP_REPEAT_2_31(m, d) m(3, 31, d)
-# define BOOST_PP_REPEAT_2_33(m, d) BOOST_PP_REPEAT_2_32(m, d) m(3, 32, d)
-# define BOOST_PP_REPEAT_2_34(m, d) BOOST_PP_REPEAT_2_33(m, d) m(3, 33, d)
-# define BOOST_PP_REPEAT_2_35(m, d) BOOST_PP_REPEAT_2_34(m, d) m(3, 34, d)
-# define BOOST_PP_REPEAT_2_36(m, d) BOOST_PP_REPEAT_2_35(m, d) m(3, 35, d)
-# define BOOST_PP_REPEAT_2_37(m, d) BOOST_PP_REPEAT_2_36(m, d) m(3, 36, d)
-# define BOOST_PP_REPEAT_2_38(m, d) BOOST_PP_REPEAT_2_37(m, d) m(3, 37, d)
-# define BOOST_PP_REPEAT_2_39(m, d) BOOST_PP_REPEAT_2_38(m, d) m(3, 38, d)
-# define BOOST_PP_REPEAT_2_40(m, d) BOOST_PP_REPEAT_2_39(m, d) m(3, 39, d)
-# define BOOST_PP_REPEAT_2_41(m, d) BOOST_PP_REPEAT_2_40(m, d) m(3, 40, d)
-# define BOOST_PP_REPEAT_2_42(m, d) BOOST_PP_REPEAT_2_41(m, d) m(3, 41, d)
-# define BOOST_PP_REPEAT_2_43(m, d) BOOST_PP_REPEAT_2_42(m, d) m(3, 42, d)
-# define BOOST_PP_REPEAT_2_44(m, d) BOOST_PP_REPEAT_2_43(m, d) m(3, 43, d)
-# define BOOST_PP_REPEAT_2_45(m, d) BOOST_PP_REPEAT_2_44(m, d) m(3, 44, d)
-# define BOOST_PP_REPEAT_2_46(m, d) BOOST_PP_REPEAT_2_45(m, d) m(3, 45, d)
-# define BOOST_PP_REPEAT_2_47(m, d) BOOST_PP_REPEAT_2_46(m, d) m(3, 46, d)
-# define BOOST_PP_REPEAT_2_48(m, d) BOOST_PP_REPEAT_2_47(m, d) m(3, 47, d)
-# define BOOST_PP_REPEAT_2_49(m, d) BOOST_PP_REPEAT_2_48(m, d) m(3, 48, d)
-# define BOOST_PP_REPEAT_2_50(m, d) BOOST_PP_REPEAT_2_49(m, d) m(3, 49, d)
-# define BOOST_PP_REPEAT_2_51(m, d) BOOST_PP_REPEAT_2_50(m, d) m(3, 50, d)
-# define BOOST_PP_REPEAT_2_52(m, d) BOOST_PP_REPEAT_2_51(m, d) m(3, 51, d)
-# define BOOST_PP_REPEAT_2_53(m, d) BOOST_PP_REPEAT_2_52(m, d) m(3, 52, d)
-# define BOOST_PP_REPEAT_2_54(m, d) BOOST_PP_REPEAT_2_53(m, d) m(3, 53, d)
-# define BOOST_PP_REPEAT_2_55(m, d) BOOST_PP_REPEAT_2_54(m, d) m(3, 54, d)
-# define BOOST_PP_REPEAT_2_56(m, d) BOOST_PP_REPEAT_2_55(m, d) m(3, 55, d)
-# define BOOST_PP_REPEAT_2_57(m, d) BOOST_PP_REPEAT_2_56(m, d) m(3, 56, d)
-# define BOOST_PP_REPEAT_2_58(m, d) BOOST_PP_REPEAT_2_57(m, d) m(3, 57, d)
-# define BOOST_PP_REPEAT_2_59(m, d) BOOST_PP_REPEAT_2_58(m, d) m(3, 58, d)
-# define BOOST_PP_REPEAT_2_60(m, d) BOOST_PP_REPEAT_2_59(m, d) m(3, 59, d)
-# define BOOST_PP_REPEAT_2_61(m, d) BOOST_PP_REPEAT_2_60(m, d) m(3, 60, d)
-# define BOOST_PP_REPEAT_2_62(m, d) BOOST_PP_REPEAT_2_61(m, d) m(3, 61, d)
-# define BOOST_PP_REPEAT_2_63(m, d) BOOST_PP_REPEAT_2_62(m, d) m(3, 62, d)
-# define BOOST_PP_REPEAT_2_64(m, d) BOOST_PP_REPEAT_2_63(m, d) m(3, 63, d)
-# define BOOST_PP_REPEAT_2_65(m, d) BOOST_PP_REPEAT_2_64(m, d) m(3, 64, d)
-# define BOOST_PP_REPEAT_2_66(m, d) BOOST_PP_REPEAT_2_65(m, d) m(3, 65, d)
-# define BOOST_PP_REPEAT_2_67(m, d) BOOST_PP_REPEAT_2_66(m, d) m(3, 66, d)
-# define BOOST_PP_REPEAT_2_68(m, d) BOOST_PP_REPEAT_2_67(m, d) m(3, 67, d)
-# define BOOST_PP_REPEAT_2_69(m, d) BOOST_PP_REPEAT_2_68(m, d) m(3, 68, d)
-# define BOOST_PP_REPEAT_2_70(m, d) BOOST_PP_REPEAT_2_69(m, d) m(3, 69, d)
-# define BOOST_PP_REPEAT_2_71(m, d) BOOST_PP_REPEAT_2_70(m, d) m(3, 70, d)
-# define BOOST_PP_REPEAT_2_72(m, d) BOOST_PP_REPEAT_2_71(m, d) m(3, 71, d)
-# define BOOST_PP_REPEAT_2_73(m, d) BOOST_PP_REPEAT_2_72(m, d) m(3, 72, d)
-# define BOOST_PP_REPEAT_2_74(m, d) BOOST_PP_REPEAT_2_73(m, d) m(3, 73, d)
-# define BOOST_PP_REPEAT_2_75(m, d) BOOST_PP_REPEAT_2_74(m, d) m(3, 74, d)
-# define BOOST_PP_REPEAT_2_76(m, d) BOOST_PP_REPEAT_2_75(m, d) m(3, 75, d)
-# define BOOST_PP_REPEAT_2_77(m, d) BOOST_PP_REPEAT_2_76(m, d) m(3, 76, d)
-# define BOOST_PP_REPEAT_2_78(m, d) BOOST_PP_REPEAT_2_77(m, d) m(3, 77, d)
-# define BOOST_PP_REPEAT_2_79(m, d) BOOST_PP_REPEAT_2_78(m, d) m(3, 78, d)
-# define BOOST_PP_REPEAT_2_80(m, d) BOOST_PP_REPEAT_2_79(m, d) m(3, 79, d)
-# define BOOST_PP_REPEAT_2_81(m, d) BOOST_PP_REPEAT_2_80(m, d) m(3, 80, d)
-# define BOOST_PP_REPEAT_2_82(m, d) BOOST_PP_REPEAT_2_81(m, d) m(3, 81, d)
-# define BOOST_PP_REPEAT_2_83(m, d) BOOST_PP_REPEAT_2_82(m, d) m(3, 82, d)
-# define BOOST_PP_REPEAT_2_84(m, d) BOOST_PP_REPEAT_2_83(m, d) m(3, 83, d)
-# define BOOST_PP_REPEAT_2_85(m, d) BOOST_PP_REPEAT_2_84(m, d) m(3, 84, d)
-# define BOOST_PP_REPEAT_2_86(m, d) BOOST_PP_REPEAT_2_85(m, d) m(3, 85, d)
-# define BOOST_PP_REPEAT_2_87(m, d) BOOST_PP_REPEAT_2_86(m, d) m(3, 86, d)
-# define BOOST_PP_REPEAT_2_88(m, d) BOOST_PP_REPEAT_2_87(m, d) m(3, 87, d)
-# define BOOST_PP_REPEAT_2_89(m, d) BOOST_PP_REPEAT_2_88(m, d) m(3, 88, d)
-# define BOOST_PP_REPEAT_2_90(m, d) BOOST_PP_REPEAT_2_89(m, d) m(3, 89, d)
-# define BOOST_PP_REPEAT_2_91(m, d) BOOST_PP_REPEAT_2_90(m, d) m(3, 90, d)
-# define BOOST_PP_REPEAT_2_92(m, d) BOOST_PP_REPEAT_2_91(m, d) m(3, 91, d)
-# define BOOST_PP_REPEAT_2_93(m, d) BOOST_PP_REPEAT_2_92(m, d) m(3, 92, d)
-# define BOOST_PP_REPEAT_2_94(m, d) BOOST_PP_REPEAT_2_93(m, d) m(3, 93, d)
-# define BOOST_PP_REPEAT_2_95(m, d) BOOST_PP_REPEAT_2_94(m, d) m(3, 94, d)
-# define BOOST_PP_REPEAT_2_96(m, d) BOOST_PP_REPEAT_2_95(m, d) m(3, 95, d)
-# define BOOST_PP_REPEAT_2_97(m, d) BOOST_PP_REPEAT_2_96(m, d) m(3, 96, d)
-# define BOOST_PP_REPEAT_2_98(m, d) BOOST_PP_REPEAT_2_97(m, d) m(3, 97, d)
-# define BOOST_PP_REPEAT_2_99(m, d) BOOST_PP_REPEAT_2_98(m, d) m(3, 98, d)
-# define BOOST_PP_REPEAT_2_100(m, d) BOOST_PP_REPEAT_2_99(m, d) m(3, 99, d)
-# define BOOST_PP_REPEAT_2_101(m, d) BOOST_PP_REPEAT_2_100(m, d) m(3, 100, d)
-# define BOOST_PP_REPEAT_2_102(m, d) BOOST_PP_REPEAT_2_101(m, d) m(3, 101, d)
-# define BOOST_PP_REPEAT_2_103(m, d) BOOST_PP_REPEAT_2_102(m, d) m(3, 102, d)
-# define BOOST_PP_REPEAT_2_104(m, d) BOOST_PP_REPEAT_2_103(m, d) m(3, 103, d)
-# define BOOST_PP_REPEAT_2_105(m, d) BOOST_PP_REPEAT_2_104(m, d) m(3, 104, d)
-# define BOOST_PP_REPEAT_2_106(m, d) BOOST_PP_REPEAT_2_105(m, d) m(3, 105, d)
-# define BOOST_PP_REPEAT_2_107(m, d) BOOST_PP_REPEAT_2_106(m, d) m(3, 106, d)
-# define BOOST_PP_REPEAT_2_108(m, d) BOOST_PP_REPEAT_2_107(m, d) m(3, 107, d)
-# define BOOST_PP_REPEAT_2_109(m, d) BOOST_PP_REPEAT_2_108(m, d) m(3, 108, d)
-# define BOOST_PP_REPEAT_2_110(m, d) BOOST_PP_REPEAT_2_109(m, d) m(3, 109, d)
-# define BOOST_PP_REPEAT_2_111(m, d) BOOST_PP_REPEAT_2_110(m, d) m(3, 110, d)
-# define BOOST_PP_REPEAT_2_112(m, d) BOOST_PP_REPEAT_2_111(m, d) m(3, 111, d)
-# define BOOST_PP_REPEAT_2_113(m, d) BOOST_PP_REPEAT_2_112(m, d) m(3, 112, d)
-# define BOOST_PP_REPEAT_2_114(m, d) BOOST_PP_REPEAT_2_113(m, d) m(3, 113, d)
-# define BOOST_PP_REPEAT_2_115(m, d) BOOST_PP_REPEAT_2_114(m, d) m(3, 114, d)
-# define BOOST_PP_REPEAT_2_116(m, d) BOOST_PP_REPEAT_2_115(m, d) m(3, 115, d)
-# define BOOST_PP_REPEAT_2_117(m, d) BOOST_PP_REPEAT_2_116(m, d) m(3, 116, d)
-# define BOOST_PP_REPEAT_2_118(m, d) BOOST_PP_REPEAT_2_117(m, d) m(3, 117, d)
-# define BOOST_PP_REPEAT_2_119(m, d) BOOST_PP_REPEAT_2_118(m, d) m(3, 118, d)
-# define BOOST_PP_REPEAT_2_120(m, d) BOOST_PP_REPEAT_2_119(m, d) m(3, 119, d)
-# define BOOST_PP_REPEAT_2_121(m, d) BOOST_PP_REPEAT_2_120(m, d) m(3, 120, d)
-# define BOOST_PP_REPEAT_2_122(m, d) BOOST_PP_REPEAT_2_121(m, d) m(3, 121, d)
-# define BOOST_PP_REPEAT_2_123(m, d) BOOST_PP_REPEAT_2_122(m, d) m(3, 122, d)
-# define BOOST_PP_REPEAT_2_124(m, d) BOOST_PP_REPEAT_2_123(m, d) m(3, 123, d)
-# define BOOST_PP_REPEAT_2_125(m, d) BOOST_PP_REPEAT_2_124(m, d) m(3, 124, d)
-# define BOOST_PP_REPEAT_2_126(m, d) BOOST_PP_REPEAT_2_125(m, d) m(3, 125, d)
-# define BOOST_PP_REPEAT_2_127(m, d) BOOST_PP_REPEAT_2_126(m, d) m(3, 126, d)
-# define BOOST_PP_REPEAT_2_128(m, d) BOOST_PP_REPEAT_2_127(m, d) m(3, 127, d)
-# define BOOST_PP_REPEAT_2_129(m, d) BOOST_PP_REPEAT_2_128(m, d) m(3, 128, d)
-# define BOOST_PP_REPEAT_2_130(m, d) BOOST_PP_REPEAT_2_129(m, d) m(3, 129, d)
-# define BOOST_PP_REPEAT_2_131(m, d) BOOST_PP_REPEAT_2_130(m, d) m(3, 130, d)
-# define BOOST_PP_REPEAT_2_132(m, d) BOOST_PP_REPEAT_2_131(m, d) m(3, 131, d)
-# define BOOST_PP_REPEAT_2_133(m, d) BOOST_PP_REPEAT_2_132(m, d) m(3, 132, d)
-# define BOOST_PP_REPEAT_2_134(m, d) BOOST_PP_REPEAT_2_133(m, d) m(3, 133, d)
-# define BOOST_PP_REPEAT_2_135(m, d) BOOST_PP_REPEAT_2_134(m, d) m(3, 134, d)
-# define BOOST_PP_REPEAT_2_136(m, d) BOOST_PP_REPEAT_2_135(m, d) m(3, 135, d)
-# define BOOST_PP_REPEAT_2_137(m, d) BOOST_PP_REPEAT_2_136(m, d) m(3, 136, d)
-# define BOOST_PP_REPEAT_2_138(m, d) BOOST_PP_REPEAT_2_137(m, d) m(3, 137, d)
-# define BOOST_PP_REPEAT_2_139(m, d) BOOST_PP_REPEAT_2_138(m, d) m(3, 138, d)
-# define BOOST_PP_REPEAT_2_140(m, d) BOOST_PP_REPEAT_2_139(m, d) m(3, 139, d)
-# define BOOST_PP_REPEAT_2_141(m, d) BOOST_PP_REPEAT_2_140(m, d) m(3, 140, d)
-# define BOOST_PP_REPEAT_2_142(m, d) BOOST_PP_REPEAT_2_141(m, d) m(3, 141, d)
-# define BOOST_PP_REPEAT_2_143(m, d) BOOST_PP_REPEAT_2_142(m, d) m(3, 142, d)
-# define BOOST_PP_REPEAT_2_144(m, d) BOOST_PP_REPEAT_2_143(m, d) m(3, 143, d)
-# define BOOST_PP_REPEAT_2_145(m, d) BOOST_PP_REPEAT_2_144(m, d) m(3, 144, d)
-# define BOOST_PP_REPEAT_2_146(m, d) BOOST_PP_REPEAT_2_145(m, d) m(3, 145, d)
-# define BOOST_PP_REPEAT_2_147(m, d) BOOST_PP_REPEAT_2_146(m, d) m(3, 146, d)
-# define BOOST_PP_REPEAT_2_148(m, d) BOOST_PP_REPEAT_2_147(m, d) m(3, 147, d)
-# define BOOST_PP_REPEAT_2_149(m, d) BOOST_PP_REPEAT_2_148(m, d) m(3, 148, d)
-# define BOOST_PP_REPEAT_2_150(m, d) BOOST_PP_REPEAT_2_149(m, d) m(3, 149, d)
-# define BOOST_PP_REPEAT_2_151(m, d) BOOST_PP_REPEAT_2_150(m, d) m(3, 150, d)
-# define BOOST_PP_REPEAT_2_152(m, d) BOOST_PP_REPEAT_2_151(m, d) m(3, 151, d)
-# define BOOST_PP_REPEAT_2_153(m, d) BOOST_PP_REPEAT_2_152(m, d) m(3, 152, d)
-# define BOOST_PP_REPEAT_2_154(m, d) BOOST_PP_REPEAT_2_153(m, d) m(3, 153, d)
-# define BOOST_PP_REPEAT_2_155(m, d) BOOST_PP_REPEAT_2_154(m, d) m(3, 154, d)
-# define BOOST_PP_REPEAT_2_156(m, d) BOOST_PP_REPEAT_2_155(m, d) m(3, 155, d)
-# define BOOST_PP_REPEAT_2_157(m, d) BOOST_PP_REPEAT_2_156(m, d) m(3, 156, d)
-# define BOOST_PP_REPEAT_2_158(m, d) BOOST_PP_REPEAT_2_157(m, d) m(3, 157, d)
-# define BOOST_PP_REPEAT_2_159(m, d) BOOST_PP_REPEAT_2_158(m, d) m(3, 158, d)
-# define BOOST_PP_REPEAT_2_160(m, d) BOOST_PP_REPEAT_2_159(m, d) m(3, 159, d)
-# define BOOST_PP_REPEAT_2_161(m, d) BOOST_PP_REPEAT_2_160(m, d) m(3, 160, d)
-# define BOOST_PP_REPEAT_2_162(m, d) BOOST_PP_REPEAT_2_161(m, d) m(3, 161, d)
-# define BOOST_PP_REPEAT_2_163(m, d) BOOST_PP_REPEAT_2_162(m, d) m(3, 162, d)
-# define BOOST_PP_REPEAT_2_164(m, d) BOOST_PP_REPEAT_2_163(m, d) m(3, 163, d)
-# define BOOST_PP_REPEAT_2_165(m, d) BOOST_PP_REPEAT_2_164(m, d) m(3, 164, d)
-# define BOOST_PP_REPEAT_2_166(m, d) BOOST_PP_REPEAT_2_165(m, d) m(3, 165, d)
-# define BOOST_PP_REPEAT_2_167(m, d) BOOST_PP_REPEAT_2_166(m, d) m(3, 166, d)
-# define BOOST_PP_REPEAT_2_168(m, d) BOOST_PP_REPEAT_2_167(m, d) m(3, 167, d)
-# define BOOST_PP_REPEAT_2_169(m, d) BOOST_PP_REPEAT_2_168(m, d) m(3, 168, d)
-# define BOOST_PP_REPEAT_2_170(m, d) BOOST_PP_REPEAT_2_169(m, d) m(3, 169, d)
-# define BOOST_PP_REPEAT_2_171(m, d) BOOST_PP_REPEAT_2_170(m, d) m(3, 170, d)
-# define BOOST_PP_REPEAT_2_172(m, d) BOOST_PP_REPEAT_2_171(m, d) m(3, 171, d)
-# define BOOST_PP_REPEAT_2_173(m, d) BOOST_PP_REPEAT_2_172(m, d) m(3, 172, d)
-# define BOOST_PP_REPEAT_2_174(m, d) BOOST_PP_REPEAT_2_173(m, d) m(3, 173, d)
-# define BOOST_PP_REPEAT_2_175(m, d) BOOST_PP_REPEAT_2_174(m, d) m(3, 174, d)
-# define BOOST_PP_REPEAT_2_176(m, d) BOOST_PP_REPEAT_2_175(m, d) m(3, 175, d)
-# define BOOST_PP_REPEAT_2_177(m, d) BOOST_PP_REPEAT_2_176(m, d) m(3, 176, d)
-# define BOOST_PP_REPEAT_2_178(m, d) BOOST_PP_REPEAT_2_177(m, d) m(3, 177, d)
-# define BOOST_PP_REPEAT_2_179(m, d) BOOST_PP_REPEAT_2_178(m, d) m(3, 178, d)
-# define BOOST_PP_REPEAT_2_180(m, d) BOOST_PP_REPEAT_2_179(m, d) m(3, 179, d)
-# define BOOST_PP_REPEAT_2_181(m, d) BOOST_PP_REPEAT_2_180(m, d) m(3, 180, d)
-# define BOOST_PP_REPEAT_2_182(m, d) BOOST_PP_REPEAT_2_181(m, d) m(3, 181, d)
-# define BOOST_PP_REPEAT_2_183(m, d) BOOST_PP_REPEAT_2_182(m, d) m(3, 182, d)
-# define BOOST_PP_REPEAT_2_184(m, d) BOOST_PP_REPEAT_2_183(m, d) m(3, 183, d)
-# define BOOST_PP_REPEAT_2_185(m, d) BOOST_PP_REPEAT_2_184(m, d) m(3, 184, d)
-# define BOOST_PP_REPEAT_2_186(m, d) BOOST_PP_REPEAT_2_185(m, d) m(3, 185, d)
-# define BOOST_PP_REPEAT_2_187(m, d) BOOST_PP_REPEAT_2_186(m, d) m(3, 186, d)
-# define BOOST_PP_REPEAT_2_188(m, d) BOOST_PP_REPEAT_2_187(m, d) m(3, 187, d)
-# define BOOST_PP_REPEAT_2_189(m, d) BOOST_PP_REPEAT_2_188(m, d) m(3, 188, d)
-# define BOOST_PP_REPEAT_2_190(m, d) BOOST_PP_REPEAT_2_189(m, d) m(3, 189, d)
-# define BOOST_PP_REPEAT_2_191(m, d) BOOST_PP_REPEAT_2_190(m, d) m(3, 190, d)
-# define BOOST_PP_REPEAT_2_192(m, d) BOOST_PP_REPEAT_2_191(m, d) m(3, 191, d)
-# define BOOST_PP_REPEAT_2_193(m, d) BOOST_PP_REPEAT_2_192(m, d) m(3, 192, d)
-# define BOOST_PP_REPEAT_2_194(m, d) BOOST_PP_REPEAT_2_193(m, d) m(3, 193, d)
-# define BOOST_PP_REPEAT_2_195(m, d) BOOST_PP_REPEAT_2_194(m, d) m(3, 194, d)
-# define BOOST_PP_REPEAT_2_196(m, d) BOOST_PP_REPEAT_2_195(m, d) m(3, 195, d)
-# define BOOST_PP_REPEAT_2_197(m, d) BOOST_PP_REPEAT_2_196(m, d) m(3, 196, d)
-# define BOOST_PP_REPEAT_2_198(m, d) BOOST_PP_REPEAT_2_197(m, d) m(3, 197, d)
-# define BOOST_PP_REPEAT_2_199(m, d) BOOST_PP_REPEAT_2_198(m, d) m(3, 198, d)
-# define BOOST_PP_REPEAT_2_200(m, d) BOOST_PP_REPEAT_2_199(m, d) m(3, 199, d)
-# define BOOST_PP_REPEAT_2_201(m, d) BOOST_PP_REPEAT_2_200(m, d) m(3, 200, d)
-# define BOOST_PP_REPEAT_2_202(m, d) BOOST_PP_REPEAT_2_201(m, d) m(3, 201, d)
-# define BOOST_PP_REPEAT_2_203(m, d) BOOST_PP_REPEAT_2_202(m, d) m(3, 202, d)
-# define BOOST_PP_REPEAT_2_204(m, d) BOOST_PP_REPEAT_2_203(m, d) m(3, 203, d)
-# define BOOST_PP_REPEAT_2_205(m, d) BOOST_PP_REPEAT_2_204(m, d) m(3, 204, d)
-# define BOOST_PP_REPEAT_2_206(m, d) BOOST_PP_REPEAT_2_205(m, d) m(3, 205, d)
-# define BOOST_PP_REPEAT_2_207(m, d) BOOST_PP_REPEAT_2_206(m, d) m(3, 206, d)
-# define BOOST_PP_REPEAT_2_208(m, d) BOOST_PP_REPEAT_2_207(m, d) m(3, 207, d)
-# define BOOST_PP_REPEAT_2_209(m, d) BOOST_PP_REPEAT_2_208(m, d) m(3, 208, d)
-# define BOOST_PP_REPEAT_2_210(m, d) BOOST_PP_REPEAT_2_209(m, d) m(3, 209, d)
-# define BOOST_PP_REPEAT_2_211(m, d) BOOST_PP_REPEAT_2_210(m, d) m(3, 210, d)
-# define BOOST_PP_REPEAT_2_212(m, d) BOOST_PP_REPEAT_2_211(m, d) m(3, 211, d)
-# define BOOST_PP_REPEAT_2_213(m, d) BOOST_PP_REPEAT_2_212(m, d) m(3, 212, d)
-# define BOOST_PP_REPEAT_2_214(m, d) BOOST_PP_REPEAT_2_213(m, d) m(3, 213, d)
-# define BOOST_PP_REPEAT_2_215(m, d) BOOST_PP_REPEAT_2_214(m, d) m(3, 214, d)
-# define BOOST_PP_REPEAT_2_216(m, d) BOOST_PP_REPEAT_2_215(m, d) m(3, 215, d)
-# define BOOST_PP_REPEAT_2_217(m, d) BOOST_PP_REPEAT_2_216(m, d) m(3, 216, d)
-# define BOOST_PP_REPEAT_2_218(m, d) BOOST_PP_REPEAT_2_217(m, d) m(3, 217, d)
-# define BOOST_PP_REPEAT_2_219(m, d) BOOST_PP_REPEAT_2_218(m, d) m(3, 218, d)
-# define BOOST_PP_REPEAT_2_220(m, d) BOOST_PP_REPEAT_2_219(m, d) m(3, 219, d)
-# define BOOST_PP_REPEAT_2_221(m, d) BOOST_PP_REPEAT_2_220(m, d) m(3, 220, d)
-# define BOOST_PP_REPEAT_2_222(m, d) BOOST_PP_REPEAT_2_221(m, d) m(3, 221, d)
-# define BOOST_PP_REPEAT_2_223(m, d) BOOST_PP_REPEAT_2_222(m, d) m(3, 222, d)
-# define BOOST_PP_REPEAT_2_224(m, d) BOOST_PP_REPEAT_2_223(m, d) m(3, 223, d)
-# define BOOST_PP_REPEAT_2_225(m, d) BOOST_PP_REPEAT_2_224(m, d) m(3, 224, d)
-# define BOOST_PP_REPEAT_2_226(m, d) BOOST_PP_REPEAT_2_225(m, d) m(3, 225, d)
-# define BOOST_PP_REPEAT_2_227(m, d) BOOST_PP_REPEAT_2_226(m, d) m(3, 226, d)
-# define BOOST_PP_REPEAT_2_228(m, d) BOOST_PP_REPEAT_2_227(m, d) m(3, 227, d)
-# define BOOST_PP_REPEAT_2_229(m, d) BOOST_PP_REPEAT_2_228(m, d) m(3, 228, d)
-# define BOOST_PP_REPEAT_2_230(m, d) BOOST_PP_REPEAT_2_229(m, d) m(3, 229, d)
-# define BOOST_PP_REPEAT_2_231(m, d) BOOST_PP_REPEAT_2_230(m, d) m(3, 230, d)
-# define BOOST_PP_REPEAT_2_232(m, d) BOOST_PP_REPEAT_2_231(m, d) m(3, 231, d)
-# define BOOST_PP_REPEAT_2_233(m, d) BOOST_PP_REPEAT_2_232(m, d) m(3, 232, d)
-# define BOOST_PP_REPEAT_2_234(m, d) BOOST_PP_REPEAT_2_233(m, d) m(3, 233, d)
-# define BOOST_PP_REPEAT_2_235(m, d) BOOST_PP_REPEAT_2_234(m, d) m(3, 234, d)
-# define BOOST_PP_REPEAT_2_236(m, d) BOOST_PP_REPEAT_2_235(m, d) m(3, 235, d)
-# define BOOST_PP_REPEAT_2_237(m, d) BOOST_PP_REPEAT_2_236(m, d) m(3, 236, d)
-# define BOOST_PP_REPEAT_2_238(m, d) BOOST_PP_REPEAT_2_237(m, d) m(3, 237, d)
-# define BOOST_PP_REPEAT_2_239(m, d) BOOST_PP_REPEAT_2_238(m, d) m(3, 238, d)
-# define BOOST_PP_REPEAT_2_240(m, d) BOOST_PP_REPEAT_2_239(m, d) m(3, 239, d)
-# define BOOST_PP_REPEAT_2_241(m, d) BOOST_PP_REPEAT_2_240(m, d) m(3, 240, d)
-# define BOOST_PP_REPEAT_2_242(m, d) BOOST_PP_REPEAT_2_241(m, d) m(3, 241, d)
-# define BOOST_PP_REPEAT_2_243(m, d) BOOST_PP_REPEAT_2_242(m, d) m(3, 242, d)
-# define BOOST_PP_REPEAT_2_244(m, d) BOOST_PP_REPEAT_2_243(m, d) m(3, 243, d)
-# define BOOST_PP_REPEAT_2_245(m, d) BOOST_PP_REPEAT_2_244(m, d) m(3, 244, d)
-# define BOOST_PP_REPEAT_2_246(m, d) BOOST_PP_REPEAT_2_245(m, d) m(3, 245, d)
-# define BOOST_PP_REPEAT_2_247(m, d) BOOST_PP_REPEAT_2_246(m, d) m(3, 246, d)
-# define BOOST_PP_REPEAT_2_248(m, d) BOOST_PP_REPEAT_2_247(m, d) m(3, 247, d)
-# define BOOST_PP_REPEAT_2_249(m, d) BOOST_PP_REPEAT_2_248(m, d) m(3, 248, d)
-# define BOOST_PP_REPEAT_2_250(m, d) BOOST_PP_REPEAT_2_249(m, d) m(3, 249, d)
-# define BOOST_PP_REPEAT_2_251(m, d) BOOST_PP_REPEAT_2_250(m, d) m(3, 250, d)
-# define BOOST_PP_REPEAT_2_252(m, d) BOOST_PP_REPEAT_2_251(m, d) m(3, 251, d)
-# define BOOST_PP_REPEAT_2_253(m, d) BOOST_PP_REPEAT_2_252(m, d) m(3, 252, d)
-# define BOOST_PP_REPEAT_2_254(m, d) BOOST_PP_REPEAT_2_253(m, d) m(3, 253, d)
-# define BOOST_PP_REPEAT_2_255(m, d) BOOST_PP_REPEAT_2_254(m, d) m(3, 254, d)
-# define BOOST_PP_REPEAT_2_256(m, d) BOOST_PP_REPEAT_2_255(m, d) m(3, 255, d)
+# define NDNBOOST_PP_REPEAT_2_0(m, d)
+# define NDNBOOST_PP_REPEAT_2_1(m, d) m(3, 0, d)
+# define NDNBOOST_PP_REPEAT_2_2(m, d) NDNBOOST_PP_REPEAT_2_1(m, d) m(3, 1, d)
+# define NDNBOOST_PP_REPEAT_2_3(m, d) NDNBOOST_PP_REPEAT_2_2(m, d) m(3, 2, d)
+# define NDNBOOST_PP_REPEAT_2_4(m, d) NDNBOOST_PP_REPEAT_2_3(m, d) m(3, 3, d)
+# define NDNBOOST_PP_REPEAT_2_5(m, d) NDNBOOST_PP_REPEAT_2_4(m, d) m(3, 4, d)
+# define NDNBOOST_PP_REPEAT_2_6(m, d) NDNBOOST_PP_REPEAT_2_5(m, d) m(3, 5, d)
+# define NDNBOOST_PP_REPEAT_2_7(m, d) NDNBOOST_PP_REPEAT_2_6(m, d) m(3, 6, d)
+# define NDNBOOST_PP_REPEAT_2_8(m, d) NDNBOOST_PP_REPEAT_2_7(m, d) m(3, 7, d)
+# define NDNBOOST_PP_REPEAT_2_9(m, d) NDNBOOST_PP_REPEAT_2_8(m, d) m(3, 8, d)
+# define NDNBOOST_PP_REPEAT_2_10(m, d) NDNBOOST_PP_REPEAT_2_9(m, d) m(3, 9, d)
+# define NDNBOOST_PP_REPEAT_2_11(m, d) NDNBOOST_PP_REPEAT_2_10(m, d) m(3, 10, d)
+# define NDNBOOST_PP_REPEAT_2_12(m, d) NDNBOOST_PP_REPEAT_2_11(m, d) m(3, 11, d)
+# define NDNBOOST_PP_REPEAT_2_13(m, d) NDNBOOST_PP_REPEAT_2_12(m, d) m(3, 12, d)
+# define NDNBOOST_PP_REPEAT_2_14(m, d) NDNBOOST_PP_REPEAT_2_13(m, d) m(3, 13, d)
+# define NDNBOOST_PP_REPEAT_2_15(m, d) NDNBOOST_PP_REPEAT_2_14(m, d) m(3, 14, d)
+# define NDNBOOST_PP_REPEAT_2_16(m, d) NDNBOOST_PP_REPEAT_2_15(m, d) m(3, 15, d)
+# define NDNBOOST_PP_REPEAT_2_17(m, d) NDNBOOST_PP_REPEAT_2_16(m, d) m(3, 16, d)
+# define NDNBOOST_PP_REPEAT_2_18(m, d) NDNBOOST_PP_REPEAT_2_17(m, d) m(3, 17, d)
+# define NDNBOOST_PP_REPEAT_2_19(m, d) NDNBOOST_PP_REPEAT_2_18(m, d) m(3, 18, d)
+# define NDNBOOST_PP_REPEAT_2_20(m, d) NDNBOOST_PP_REPEAT_2_19(m, d) m(3, 19, d)
+# define NDNBOOST_PP_REPEAT_2_21(m, d) NDNBOOST_PP_REPEAT_2_20(m, d) m(3, 20, d)
+# define NDNBOOST_PP_REPEAT_2_22(m, d) NDNBOOST_PP_REPEAT_2_21(m, d) m(3, 21, d)
+# define NDNBOOST_PP_REPEAT_2_23(m, d) NDNBOOST_PP_REPEAT_2_22(m, d) m(3, 22, d)
+# define NDNBOOST_PP_REPEAT_2_24(m, d) NDNBOOST_PP_REPEAT_2_23(m, d) m(3, 23, d)
+# define NDNBOOST_PP_REPEAT_2_25(m, d) NDNBOOST_PP_REPEAT_2_24(m, d) m(3, 24, d)
+# define NDNBOOST_PP_REPEAT_2_26(m, d) NDNBOOST_PP_REPEAT_2_25(m, d) m(3, 25, d)
+# define NDNBOOST_PP_REPEAT_2_27(m, d) NDNBOOST_PP_REPEAT_2_26(m, d) m(3, 26, d)
+# define NDNBOOST_PP_REPEAT_2_28(m, d) NDNBOOST_PP_REPEAT_2_27(m, d) m(3, 27, d)
+# define NDNBOOST_PP_REPEAT_2_29(m, d) NDNBOOST_PP_REPEAT_2_28(m, d) m(3, 28, d)
+# define NDNBOOST_PP_REPEAT_2_30(m, d) NDNBOOST_PP_REPEAT_2_29(m, d) m(3, 29, d)
+# define NDNBOOST_PP_REPEAT_2_31(m, d) NDNBOOST_PP_REPEAT_2_30(m, d) m(3, 30, d)
+# define NDNBOOST_PP_REPEAT_2_32(m, d) NDNBOOST_PP_REPEAT_2_31(m, d) m(3, 31, d)
+# define NDNBOOST_PP_REPEAT_2_33(m, d) NDNBOOST_PP_REPEAT_2_32(m, d) m(3, 32, d)
+# define NDNBOOST_PP_REPEAT_2_34(m, d) NDNBOOST_PP_REPEAT_2_33(m, d) m(3, 33, d)
+# define NDNBOOST_PP_REPEAT_2_35(m, d) NDNBOOST_PP_REPEAT_2_34(m, d) m(3, 34, d)
+# define NDNBOOST_PP_REPEAT_2_36(m, d) NDNBOOST_PP_REPEAT_2_35(m, d) m(3, 35, d)
+# define NDNBOOST_PP_REPEAT_2_37(m, d) NDNBOOST_PP_REPEAT_2_36(m, d) m(3, 36, d)
+# define NDNBOOST_PP_REPEAT_2_38(m, d) NDNBOOST_PP_REPEAT_2_37(m, d) m(3, 37, d)
+# define NDNBOOST_PP_REPEAT_2_39(m, d) NDNBOOST_PP_REPEAT_2_38(m, d) m(3, 38, d)
+# define NDNBOOST_PP_REPEAT_2_40(m, d) NDNBOOST_PP_REPEAT_2_39(m, d) m(3, 39, d)
+# define NDNBOOST_PP_REPEAT_2_41(m, d) NDNBOOST_PP_REPEAT_2_40(m, d) m(3, 40, d)
+# define NDNBOOST_PP_REPEAT_2_42(m, d) NDNBOOST_PP_REPEAT_2_41(m, d) m(3, 41, d)
+# define NDNBOOST_PP_REPEAT_2_43(m, d) NDNBOOST_PP_REPEAT_2_42(m, d) m(3, 42, d)
+# define NDNBOOST_PP_REPEAT_2_44(m, d) NDNBOOST_PP_REPEAT_2_43(m, d) m(3, 43, d)
+# define NDNBOOST_PP_REPEAT_2_45(m, d) NDNBOOST_PP_REPEAT_2_44(m, d) m(3, 44, d)
+# define NDNBOOST_PP_REPEAT_2_46(m, d) NDNBOOST_PP_REPEAT_2_45(m, d) m(3, 45, d)
+# define NDNBOOST_PP_REPEAT_2_47(m, d) NDNBOOST_PP_REPEAT_2_46(m, d) m(3, 46, d)
+# define NDNBOOST_PP_REPEAT_2_48(m, d) NDNBOOST_PP_REPEAT_2_47(m, d) m(3, 47, d)
+# define NDNBOOST_PP_REPEAT_2_49(m, d) NDNBOOST_PP_REPEAT_2_48(m, d) m(3, 48, d)
+# define NDNBOOST_PP_REPEAT_2_50(m, d) NDNBOOST_PP_REPEAT_2_49(m, d) m(3, 49, d)
+# define NDNBOOST_PP_REPEAT_2_51(m, d) NDNBOOST_PP_REPEAT_2_50(m, d) m(3, 50, d)
+# define NDNBOOST_PP_REPEAT_2_52(m, d) NDNBOOST_PP_REPEAT_2_51(m, d) m(3, 51, d)
+# define NDNBOOST_PP_REPEAT_2_53(m, d) NDNBOOST_PP_REPEAT_2_52(m, d) m(3, 52, d)
+# define NDNBOOST_PP_REPEAT_2_54(m, d) NDNBOOST_PP_REPEAT_2_53(m, d) m(3, 53, d)
+# define NDNBOOST_PP_REPEAT_2_55(m, d) NDNBOOST_PP_REPEAT_2_54(m, d) m(3, 54, d)
+# define NDNBOOST_PP_REPEAT_2_56(m, d) NDNBOOST_PP_REPEAT_2_55(m, d) m(3, 55, d)
+# define NDNBOOST_PP_REPEAT_2_57(m, d) NDNBOOST_PP_REPEAT_2_56(m, d) m(3, 56, d)
+# define NDNBOOST_PP_REPEAT_2_58(m, d) NDNBOOST_PP_REPEAT_2_57(m, d) m(3, 57, d)
+# define NDNBOOST_PP_REPEAT_2_59(m, d) NDNBOOST_PP_REPEAT_2_58(m, d) m(3, 58, d)
+# define NDNBOOST_PP_REPEAT_2_60(m, d) NDNBOOST_PP_REPEAT_2_59(m, d) m(3, 59, d)
+# define NDNBOOST_PP_REPEAT_2_61(m, d) NDNBOOST_PP_REPEAT_2_60(m, d) m(3, 60, d)
+# define NDNBOOST_PP_REPEAT_2_62(m, d) NDNBOOST_PP_REPEAT_2_61(m, d) m(3, 61, d)
+# define NDNBOOST_PP_REPEAT_2_63(m, d) NDNBOOST_PP_REPEAT_2_62(m, d) m(3, 62, d)
+# define NDNBOOST_PP_REPEAT_2_64(m, d) NDNBOOST_PP_REPEAT_2_63(m, d) m(3, 63, d)
+# define NDNBOOST_PP_REPEAT_2_65(m, d) NDNBOOST_PP_REPEAT_2_64(m, d) m(3, 64, d)
+# define NDNBOOST_PP_REPEAT_2_66(m, d) NDNBOOST_PP_REPEAT_2_65(m, d) m(3, 65, d)
+# define NDNBOOST_PP_REPEAT_2_67(m, d) NDNBOOST_PP_REPEAT_2_66(m, d) m(3, 66, d)
+# define NDNBOOST_PP_REPEAT_2_68(m, d) NDNBOOST_PP_REPEAT_2_67(m, d) m(3, 67, d)
+# define NDNBOOST_PP_REPEAT_2_69(m, d) NDNBOOST_PP_REPEAT_2_68(m, d) m(3, 68, d)
+# define NDNBOOST_PP_REPEAT_2_70(m, d) NDNBOOST_PP_REPEAT_2_69(m, d) m(3, 69, d)
+# define NDNBOOST_PP_REPEAT_2_71(m, d) NDNBOOST_PP_REPEAT_2_70(m, d) m(3, 70, d)
+# define NDNBOOST_PP_REPEAT_2_72(m, d) NDNBOOST_PP_REPEAT_2_71(m, d) m(3, 71, d)
+# define NDNBOOST_PP_REPEAT_2_73(m, d) NDNBOOST_PP_REPEAT_2_72(m, d) m(3, 72, d)
+# define NDNBOOST_PP_REPEAT_2_74(m, d) NDNBOOST_PP_REPEAT_2_73(m, d) m(3, 73, d)
+# define NDNBOOST_PP_REPEAT_2_75(m, d) NDNBOOST_PP_REPEAT_2_74(m, d) m(3, 74, d)
+# define NDNBOOST_PP_REPEAT_2_76(m, d) NDNBOOST_PP_REPEAT_2_75(m, d) m(3, 75, d)
+# define NDNBOOST_PP_REPEAT_2_77(m, d) NDNBOOST_PP_REPEAT_2_76(m, d) m(3, 76, d)
+# define NDNBOOST_PP_REPEAT_2_78(m, d) NDNBOOST_PP_REPEAT_2_77(m, d) m(3, 77, d)
+# define NDNBOOST_PP_REPEAT_2_79(m, d) NDNBOOST_PP_REPEAT_2_78(m, d) m(3, 78, d)
+# define NDNBOOST_PP_REPEAT_2_80(m, d) NDNBOOST_PP_REPEAT_2_79(m, d) m(3, 79, d)
+# define NDNBOOST_PP_REPEAT_2_81(m, d) NDNBOOST_PP_REPEAT_2_80(m, d) m(3, 80, d)
+# define NDNBOOST_PP_REPEAT_2_82(m, d) NDNBOOST_PP_REPEAT_2_81(m, d) m(3, 81, d)
+# define NDNBOOST_PP_REPEAT_2_83(m, d) NDNBOOST_PP_REPEAT_2_82(m, d) m(3, 82, d)
+# define NDNBOOST_PP_REPEAT_2_84(m, d) NDNBOOST_PP_REPEAT_2_83(m, d) m(3, 83, d)
+# define NDNBOOST_PP_REPEAT_2_85(m, d) NDNBOOST_PP_REPEAT_2_84(m, d) m(3, 84, d)
+# define NDNBOOST_PP_REPEAT_2_86(m, d) NDNBOOST_PP_REPEAT_2_85(m, d) m(3, 85, d)
+# define NDNBOOST_PP_REPEAT_2_87(m, d) NDNBOOST_PP_REPEAT_2_86(m, d) m(3, 86, d)
+# define NDNBOOST_PP_REPEAT_2_88(m, d) NDNBOOST_PP_REPEAT_2_87(m, d) m(3, 87, d)
+# define NDNBOOST_PP_REPEAT_2_89(m, d) NDNBOOST_PP_REPEAT_2_88(m, d) m(3, 88, d)
+# define NDNBOOST_PP_REPEAT_2_90(m, d) NDNBOOST_PP_REPEAT_2_89(m, d) m(3, 89, d)
+# define NDNBOOST_PP_REPEAT_2_91(m, d) NDNBOOST_PP_REPEAT_2_90(m, d) m(3, 90, d)
+# define NDNBOOST_PP_REPEAT_2_92(m, d) NDNBOOST_PP_REPEAT_2_91(m, d) m(3, 91, d)
+# define NDNBOOST_PP_REPEAT_2_93(m, d) NDNBOOST_PP_REPEAT_2_92(m, d) m(3, 92, d)
+# define NDNBOOST_PP_REPEAT_2_94(m, d) NDNBOOST_PP_REPEAT_2_93(m, d) m(3, 93, d)
+# define NDNBOOST_PP_REPEAT_2_95(m, d) NDNBOOST_PP_REPEAT_2_94(m, d) m(3, 94, d)
+# define NDNBOOST_PP_REPEAT_2_96(m, d) NDNBOOST_PP_REPEAT_2_95(m, d) m(3, 95, d)
+# define NDNBOOST_PP_REPEAT_2_97(m, d) NDNBOOST_PP_REPEAT_2_96(m, d) m(3, 96, d)
+# define NDNBOOST_PP_REPEAT_2_98(m, d) NDNBOOST_PP_REPEAT_2_97(m, d) m(3, 97, d)
+# define NDNBOOST_PP_REPEAT_2_99(m, d) NDNBOOST_PP_REPEAT_2_98(m, d) m(3, 98, d)
+# define NDNBOOST_PP_REPEAT_2_100(m, d) NDNBOOST_PP_REPEAT_2_99(m, d) m(3, 99, d)
+# define NDNBOOST_PP_REPEAT_2_101(m, d) NDNBOOST_PP_REPEAT_2_100(m, d) m(3, 100, d)
+# define NDNBOOST_PP_REPEAT_2_102(m, d) NDNBOOST_PP_REPEAT_2_101(m, d) m(3, 101, d)
+# define NDNBOOST_PP_REPEAT_2_103(m, d) NDNBOOST_PP_REPEAT_2_102(m, d) m(3, 102, d)
+# define NDNBOOST_PP_REPEAT_2_104(m, d) NDNBOOST_PP_REPEAT_2_103(m, d) m(3, 103, d)
+# define NDNBOOST_PP_REPEAT_2_105(m, d) NDNBOOST_PP_REPEAT_2_104(m, d) m(3, 104, d)
+# define NDNBOOST_PP_REPEAT_2_106(m, d) NDNBOOST_PP_REPEAT_2_105(m, d) m(3, 105, d)
+# define NDNBOOST_PP_REPEAT_2_107(m, d) NDNBOOST_PP_REPEAT_2_106(m, d) m(3, 106, d)
+# define NDNBOOST_PP_REPEAT_2_108(m, d) NDNBOOST_PP_REPEAT_2_107(m, d) m(3, 107, d)
+# define NDNBOOST_PP_REPEAT_2_109(m, d) NDNBOOST_PP_REPEAT_2_108(m, d) m(3, 108, d)
+# define NDNBOOST_PP_REPEAT_2_110(m, d) NDNBOOST_PP_REPEAT_2_109(m, d) m(3, 109, d)
+# define NDNBOOST_PP_REPEAT_2_111(m, d) NDNBOOST_PP_REPEAT_2_110(m, d) m(3, 110, d)
+# define NDNBOOST_PP_REPEAT_2_112(m, d) NDNBOOST_PP_REPEAT_2_111(m, d) m(3, 111, d)
+# define NDNBOOST_PP_REPEAT_2_113(m, d) NDNBOOST_PP_REPEAT_2_112(m, d) m(3, 112, d)
+# define NDNBOOST_PP_REPEAT_2_114(m, d) NDNBOOST_PP_REPEAT_2_113(m, d) m(3, 113, d)
+# define NDNBOOST_PP_REPEAT_2_115(m, d) NDNBOOST_PP_REPEAT_2_114(m, d) m(3, 114, d)
+# define NDNBOOST_PP_REPEAT_2_116(m, d) NDNBOOST_PP_REPEAT_2_115(m, d) m(3, 115, d)
+# define NDNBOOST_PP_REPEAT_2_117(m, d) NDNBOOST_PP_REPEAT_2_116(m, d) m(3, 116, d)
+# define NDNBOOST_PP_REPEAT_2_118(m, d) NDNBOOST_PP_REPEAT_2_117(m, d) m(3, 117, d)
+# define NDNBOOST_PP_REPEAT_2_119(m, d) NDNBOOST_PP_REPEAT_2_118(m, d) m(3, 118, d)
+# define NDNBOOST_PP_REPEAT_2_120(m, d) NDNBOOST_PP_REPEAT_2_119(m, d) m(3, 119, d)
+# define NDNBOOST_PP_REPEAT_2_121(m, d) NDNBOOST_PP_REPEAT_2_120(m, d) m(3, 120, d)
+# define NDNBOOST_PP_REPEAT_2_122(m, d) NDNBOOST_PP_REPEAT_2_121(m, d) m(3, 121, d)
+# define NDNBOOST_PP_REPEAT_2_123(m, d) NDNBOOST_PP_REPEAT_2_122(m, d) m(3, 122, d)
+# define NDNBOOST_PP_REPEAT_2_124(m, d) NDNBOOST_PP_REPEAT_2_123(m, d) m(3, 123, d)
+# define NDNBOOST_PP_REPEAT_2_125(m, d) NDNBOOST_PP_REPEAT_2_124(m, d) m(3, 124, d)
+# define NDNBOOST_PP_REPEAT_2_126(m, d) NDNBOOST_PP_REPEAT_2_125(m, d) m(3, 125, d)
+# define NDNBOOST_PP_REPEAT_2_127(m, d) NDNBOOST_PP_REPEAT_2_126(m, d) m(3, 126, d)
+# define NDNBOOST_PP_REPEAT_2_128(m, d) NDNBOOST_PP_REPEAT_2_127(m, d) m(3, 127, d)
+# define NDNBOOST_PP_REPEAT_2_129(m, d) NDNBOOST_PP_REPEAT_2_128(m, d) m(3, 128, d)
+# define NDNBOOST_PP_REPEAT_2_130(m, d) NDNBOOST_PP_REPEAT_2_129(m, d) m(3, 129, d)
+# define NDNBOOST_PP_REPEAT_2_131(m, d) NDNBOOST_PP_REPEAT_2_130(m, d) m(3, 130, d)
+# define NDNBOOST_PP_REPEAT_2_132(m, d) NDNBOOST_PP_REPEAT_2_131(m, d) m(3, 131, d)
+# define NDNBOOST_PP_REPEAT_2_133(m, d) NDNBOOST_PP_REPEAT_2_132(m, d) m(3, 132, d)
+# define NDNBOOST_PP_REPEAT_2_134(m, d) NDNBOOST_PP_REPEAT_2_133(m, d) m(3, 133, d)
+# define NDNBOOST_PP_REPEAT_2_135(m, d) NDNBOOST_PP_REPEAT_2_134(m, d) m(3, 134, d)
+# define NDNBOOST_PP_REPEAT_2_136(m, d) NDNBOOST_PP_REPEAT_2_135(m, d) m(3, 135, d)
+# define NDNBOOST_PP_REPEAT_2_137(m, d) NDNBOOST_PP_REPEAT_2_136(m, d) m(3, 136, d)
+# define NDNBOOST_PP_REPEAT_2_138(m, d) NDNBOOST_PP_REPEAT_2_137(m, d) m(3, 137, d)
+# define NDNBOOST_PP_REPEAT_2_139(m, d) NDNBOOST_PP_REPEAT_2_138(m, d) m(3, 138, d)
+# define NDNBOOST_PP_REPEAT_2_140(m, d) NDNBOOST_PP_REPEAT_2_139(m, d) m(3, 139, d)
+# define NDNBOOST_PP_REPEAT_2_141(m, d) NDNBOOST_PP_REPEAT_2_140(m, d) m(3, 140, d)
+# define NDNBOOST_PP_REPEAT_2_142(m, d) NDNBOOST_PP_REPEAT_2_141(m, d) m(3, 141, d)
+# define NDNBOOST_PP_REPEAT_2_143(m, d) NDNBOOST_PP_REPEAT_2_142(m, d) m(3, 142, d)
+# define NDNBOOST_PP_REPEAT_2_144(m, d) NDNBOOST_PP_REPEAT_2_143(m, d) m(3, 143, d)
+# define NDNBOOST_PP_REPEAT_2_145(m, d) NDNBOOST_PP_REPEAT_2_144(m, d) m(3, 144, d)
+# define NDNBOOST_PP_REPEAT_2_146(m, d) NDNBOOST_PP_REPEAT_2_145(m, d) m(3, 145, d)
+# define NDNBOOST_PP_REPEAT_2_147(m, d) NDNBOOST_PP_REPEAT_2_146(m, d) m(3, 146, d)
+# define NDNBOOST_PP_REPEAT_2_148(m, d) NDNBOOST_PP_REPEAT_2_147(m, d) m(3, 147, d)
+# define NDNBOOST_PP_REPEAT_2_149(m, d) NDNBOOST_PP_REPEAT_2_148(m, d) m(3, 148, d)
+# define NDNBOOST_PP_REPEAT_2_150(m, d) NDNBOOST_PP_REPEAT_2_149(m, d) m(3, 149, d)
+# define NDNBOOST_PP_REPEAT_2_151(m, d) NDNBOOST_PP_REPEAT_2_150(m, d) m(3, 150, d)
+# define NDNBOOST_PP_REPEAT_2_152(m, d) NDNBOOST_PP_REPEAT_2_151(m, d) m(3, 151, d)
+# define NDNBOOST_PP_REPEAT_2_153(m, d) NDNBOOST_PP_REPEAT_2_152(m, d) m(3, 152, d)
+# define NDNBOOST_PP_REPEAT_2_154(m, d) NDNBOOST_PP_REPEAT_2_153(m, d) m(3, 153, d)
+# define NDNBOOST_PP_REPEAT_2_155(m, d) NDNBOOST_PP_REPEAT_2_154(m, d) m(3, 154, d)
+# define NDNBOOST_PP_REPEAT_2_156(m, d) NDNBOOST_PP_REPEAT_2_155(m, d) m(3, 155, d)
+# define NDNBOOST_PP_REPEAT_2_157(m, d) NDNBOOST_PP_REPEAT_2_156(m, d) m(3, 156, d)
+# define NDNBOOST_PP_REPEAT_2_158(m, d) NDNBOOST_PP_REPEAT_2_157(m, d) m(3, 157, d)
+# define NDNBOOST_PP_REPEAT_2_159(m, d) NDNBOOST_PP_REPEAT_2_158(m, d) m(3, 158, d)
+# define NDNBOOST_PP_REPEAT_2_160(m, d) NDNBOOST_PP_REPEAT_2_159(m, d) m(3, 159, d)
+# define NDNBOOST_PP_REPEAT_2_161(m, d) NDNBOOST_PP_REPEAT_2_160(m, d) m(3, 160, d)
+# define NDNBOOST_PP_REPEAT_2_162(m, d) NDNBOOST_PP_REPEAT_2_161(m, d) m(3, 161, d)
+# define NDNBOOST_PP_REPEAT_2_163(m, d) NDNBOOST_PP_REPEAT_2_162(m, d) m(3, 162, d)
+# define NDNBOOST_PP_REPEAT_2_164(m, d) NDNBOOST_PP_REPEAT_2_163(m, d) m(3, 163, d)
+# define NDNBOOST_PP_REPEAT_2_165(m, d) NDNBOOST_PP_REPEAT_2_164(m, d) m(3, 164, d)
+# define NDNBOOST_PP_REPEAT_2_166(m, d) NDNBOOST_PP_REPEAT_2_165(m, d) m(3, 165, d)
+# define NDNBOOST_PP_REPEAT_2_167(m, d) NDNBOOST_PP_REPEAT_2_166(m, d) m(3, 166, d)
+# define NDNBOOST_PP_REPEAT_2_168(m, d) NDNBOOST_PP_REPEAT_2_167(m, d) m(3, 167, d)
+# define NDNBOOST_PP_REPEAT_2_169(m, d) NDNBOOST_PP_REPEAT_2_168(m, d) m(3, 168, d)
+# define NDNBOOST_PP_REPEAT_2_170(m, d) NDNBOOST_PP_REPEAT_2_169(m, d) m(3, 169, d)
+# define NDNBOOST_PP_REPEAT_2_171(m, d) NDNBOOST_PP_REPEAT_2_170(m, d) m(3, 170, d)
+# define NDNBOOST_PP_REPEAT_2_172(m, d) NDNBOOST_PP_REPEAT_2_171(m, d) m(3, 171, d)
+# define NDNBOOST_PP_REPEAT_2_173(m, d) NDNBOOST_PP_REPEAT_2_172(m, d) m(3, 172, d)
+# define NDNBOOST_PP_REPEAT_2_174(m, d) NDNBOOST_PP_REPEAT_2_173(m, d) m(3, 173, d)
+# define NDNBOOST_PP_REPEAT_2_175(m, d) NDNBOOST_PP_REPEAT_2_174(m, d) m(3, 174, d)
+# define NDNBOOST_PP_REPEAT_2_176(m, d) NDNBOOST_PP_REPEAT_2_175(m, d) m(3, 175, d)
+# define NDNBOOST_PP_REPEAT_2_177(m, d) NDNBOOST_PP_REPEAT_2_176(m, d) m(3, 176, d)
+# define NDNBOOST_PP_REPEAT_2_178(m, d) NDNBOOST_PP_REPEAT_2_177(m, d) m(3, 177, d)
+# define NDNBOOST_PP_REPEAT_2_179(m, d) NDNBOOST_PP_REPEAT_2_178(m, d) m(3, 178, d)
+# define NDNBOOST_PP_REPEAT_2_180(m, d) NDNBOOST_PP_REPEAT_2_179(m, d) m(3, 179, d)
+# define NDNBOOST_PP_REPEAT_2_181(m, d) NDNBOOST_PP_REPEAT_2_180(m, d) m(3, 180, d)
+# define NDNBOOST_PP_REPEAT_2_182(m, d) NDNBOOST_PP_REPEAT_2_181(m, d) m(3, 181, d)
+# define NDNBOOST_PP_REPEAT_2_183(m, d) NDNBOOST_PP_REPEAT_2_182(m, d) m(3, 182, d)
+# define NDNBOOST_PP_REPEAT_2_184(m, d) NDNBOOST_PP_REPEAT_2_183(m, d) m(3, 183, d)
+# define NDNBOOST_PP_REPEAT_2_185(m, d) NDNBOOST_PP_REPEAT_2_184(m, d) m(3, 184, d)
+# define NDNBOOST_PP_REPEAT_2_186(m, d) NDNBOOST_PP_REPEAT_2_185(m, d) m(3, 185, d)
+# define NDNBOOST_PP_REPEAT_2_187(m, d) NDNBOOST_PP_REPEAT_2_186(m, d) m(3, 186, d)
+# define NDNBOOST_PP_REPEAT_2_188(m, d) NDNBOOST_PP_REPEAT_2_187(m, d) m(3, 187, d)
+# define NDNBOOST_PP_REPEAT_2_189(m, d) NDNBOOST_PP_REPEAT_2_188(m, d) m(3, 188, d)
+# define NDNBOOST_PP_REPEAT_2_190(m, d) NDNBOOST_PP_REPEAT_2_189(m, d) m(3, 189, d)
+# define NDNBOOST_PP_REPEAT_2_191(m, d) NDNBOOST_PP_REPEAT_2_190(m, d) m(3, 190, d)
+# define NDNBOOST_PP_REPEAT_2_192(m, d) NDNBOOST_PP_REPEAT_2_191(m, d) m(3, 191, d)
+# define NDNBOOST_PP_REPEAT_2_193(m, d) NDNBOOST_PP_REPEAT_2_192(m, d) m(3, 192, d)
+# define NDNBOOST_PP_REPEAT_2_194(m, d) NDNBOOST_PP_REPEAT_2_193(m, d) m(3, 193, d)
+# define NDNBOOST_PP_REPEAT_2_195(m, d) NDNBOOST_PP_REPEAT_2_194(m, d) m(3, 194, d)
+# define NDNBOOST_PP_REPEAT_2_196(m, d) NDNBOOST_PP_REPEAT_2_195(m, d) m(3, 195, d)
+# define NDNBOOST_PP_REPEAT_2_197(m, d) NDNBOOST_PP_REPEAT_2_196(m, d) m(3, 196, d)
+# define NDNBOOST_PP_REPEAT_2_198(m, d) NDNBOOST_PP_REPEAT_2_197(m, d) m(3, 197, d)
+# define NDNBOOST_PP_REPEAT_2_199(m, d) NDNBOOST_PP_REPEAT_2_198(m, d) m(3, 198, d)
+# define NDNBOOST_PP_REPEAT_2_200(m, d) NDNBOOST_PP_REPEAT_2_199(m, d) m(3, 199, d)
+# define NDNBOOST_PP_REPEAT_2_201(m, d) NDNBOOST_PP_REPEAT_2_200(m, d) m(3, 200, d)
+# define NDNBOOST_PP_REPEAT_2_202(m, d) NDNBOOST_PP_REPEAT_2_201(m, d) m(3, 201, d)
+# define NDNBOOST_PP_REPEAT_2_203(m, d) NDNBOOST_PP_REPEAT_2_202(m, d) m(3, 202, d)
+# define NDNBOOST_PP_REPEAT_2_204(m, d) NDNBOOST_PP_REPEAT_2_203(m, d) m(3, 203, d)
+# define NDNBOOST_PP_REPEAT_2_205(m, d) NDNBOOST_PP_REPEAT_2_204(m, d) m(3, 204, d)
+# define NDNBOOST_PP_REPEAT_2_206(m, d) NDNBOOST_PP_REPEAT_2_205(m, d) m(3, 205, d)
+# define NDNBOOST_PP_REPEAT_2_207(m, d) NDNBOOST_PP_REPEAT_2_206(m, d) m(3, 206, d)
+# define NDNBOOST_PP_REPEAT_2_208(m, d) NDNBOOST_PP_REPEAT_2_207(m, d) m(3, 207, d)
+# define NDNBOOST_PP_REPEAT_2_209(m, d) NDNBOOST_PP_REPEAT_2_208(m, d) m(3, 208, d)
+# define NDNBOOST_PP_REPEAT_2_210(m, d) NDNBOOST_PP_REPEAT_2_209(m, d) m(3, 209, d)
+# define NDNBOOST_PP_REPEAT_2_211(m, d) NDNBOOST_PP_REPEAT_2_210(m, d) m(3, 210, d)
+# define NDNBOOST_PP_REPEAT_2_212(m, d) NDNBOOST_PP_REPEAT_2_211(m, d) m(3, 211, d)
+# define NDNBOOST_PP_REPEAT_2_213(m, d) NDNBOOST_PP_REPEAT_2_212(m, d) m(3, 212, d)
+# define NDNBOOST_PP_REPEAT_2_214(m, d) NDNBOOST_PP_REPEAT_2_213(m, d) m(3, 213, d)
+# define NDNBOOST_PP_REPEAT_2_215(m, d) NDNBOOST_PP_REPEAT_2_214(m, d) m(3, 214, d)
+# define NDNBOOST_PP_REPEAT_2_216(m, d) NDNBOOST_PP_REPEAT_2_215(m, d) m(3, 215, d)
+# define NDNBOOST_PP_REPEAT_2_217(m, d) NDNBOOST_PP_REPEAT_2_216(m, d) m(3, 216, d)
+# define NDNBOOST_PP_REPEAT_2_218(m, d) NDNBOOST_PP_REPEAT_2_217(m, d) m(3, 217, d)
+# define NDNBOOST_PP_REPEAT_2_219(m, d) NDNBOOST_PP_REPEAT_2_218(m, d) m(3, 218, d)
+# define NDNBOOST_PP_REPEAT_2_220(m, d) NDNBOOST_PP_REPEAT_2_219(m, d) m(3, 219, d)
+# define NDNBOOST_PP_REPEAT_2_221(m, d) NDNBOOST_PP_REPEAT_2_220(m, d) m(3, 220, d)
+# define NDNBOOST_PP_REPEAT_2_222(m, d) NDNBOOST_PP_REPEAT_2_221(m, d) m(3, 221, d)
+# define NDNBOOST_PP_REPEAT_2_223(m, d) NDNBOOST_PP_REPEAT_2_222(m, d) m(3, 222, d)
+# define NDNBOOST_PP_REPEAT_2_224(m, d) NDNBOOST_PP_REPEAT_2_223(m, d) m(3, 223, d)
+# define NDNBOOST_PP_REPEAT_2_225(m, d) NDNBOOST_PP_REPEAT_2_224(m, d) m(3, 224, d)
+# define NDNBOOST_PP_REPEAT_2_226(m, d) NDNBOOST_PP_REPEAT_2_225(m, d) m(3, 225, d)
+# define NDNBOOST_PP_REPEAT_2_227(m, d) NDNBOOST_PP_REPEAT_2_226(m, d) m(3, 226, d)
+# define NDNBOOST_PP_REPEAT_2_228(m, d) NDNBOOST_PP_REPEAT_2_227(m, d) m(3, 227, d)
+# define NDNBOOST_PP_REPEAT_2_229(m, d) NDNBOOST_PP_REPEAT_2_228(m, d) m(3, 228, d)
+# define NDNBOOST_PP_REPEAT_2_230(m, d) NDNBOOST_PP_REPEAT_2_229(m, d) m(3, 229, d)
+# define NDNBOOST_PP_REPEAT_2_231(m, d) NDNBOOST_PP_REPEAT_2_230(m, d) m(3, 230, d)
+# define NDNBOOST_PP_REPEAT_2_232(m, d) NDNBOOST_PP_REPEAT_2_231(m, d) m(3, 231, d)
+# define NDNBOOST_PP_REPEAT_2_233(m, d) NDNBOOST_PP_REPEAT_2_232(m, d) m(3, 232, d)
+# define NDNBOOST_PP_REPEAT_2_234(m, d) NDNBOOST_PP_REPEAT_2_233(m, d) m(3, 233, d)
+# define NDNBOOST_PP_REPEAT_2_235(m, d) NDNBOOST_PP_REPEAT_2_234(m, d) m(3, 234, d)
+# define NDNBOOST_PP_REPEAT_2_236(m, d) NDNBOOST_PP_REPEAT_2_235(m, d) m(3, 235, d)
+# define NDNBOOST_PP_REPEAT_2_237(m, d) NDNBOOST_PP_REPEAT_2_236(m, d) m(3, 236, d)
+# define NDNBOOST_PP_REPEAT_2_238(m, d) NDNBOOST_PP_REPEAT_2_237(m, d) m(3, 237, d)
+# define NDNBOOST_PP_REPEAT_2_239(m, d) NDNBOOST_PP_REPEAT_2_238(m, d) m(3, 238, d)
+# define NDNBOOST_PP_REPEAT_2_240(m, d) NDNBOOST_PP_REPEAT_2_239(m, d) m(3, 239, d)
+# define NDNBOOST_PP_REPEAT_2_241(m, d) NDNBOOST_PP_REPEAT_2_240(m, d) m(3, 240, d)
+# define NDNBOOST_PP_REPEAT_2_242(m, d) NDNBOOST_PP_REPEAT_2_241(m, d) m(3, 241, d)
+# define NDNBOOST_PP_REPEAT_2_243(m, d) NDNBOOST_PP_REPEAT_2_242(m, d) m(3, 242, d)
+# define NDNBOOST_PP_REPEAT_2_244(m, d) NDNBOOST_PP_REPEAT_2_243(m, d) m(3, 243, d)
+# define NDNBOOST_PP_REPEAT_2_245(m, d) NDNBOOST_PP_REPEAT_2_244(m, d) m(3, 244, d)
+# define NDNBOOST_PP_REPEAT_2_246(m, d) NDNBOOST_PP_REPEAT_2_245(m, d) m(3, 245, d)
+# define NDNBOOST_PP_REPEAT_2_247(m, d) NDNBOOST_PP_REPEAT_2_246(m, d) m(3, 246, d)
+# define NDNBOOST_PP_REPEAT_2_248(m, d) NDNBOOST_PP_REPEAT_2_247(m, d) m(3, 247, d)
+# define NDNBOOST_PP_REPEAT_2_249(m, d) NDNBOOST_PP_REPEAT_2_248(m, d) m(3, 248, d)
+# define NDNBOOST_PP_REPEAT_2_250(m, d) NDNBOOST_PP_REPEAT_2_249(m, d) m(3, 249, d)
+# define NDNBOOST_PP_REPEAT_2_251(m, d) NDNBOOST_PP_REPEAT_2_250(m, d) m(3, 250, d)
+# define NDNBOOST_PP_REPEAT_2_252(m, d) NDNBOOST_PP_REPEAT_2_251(m, d) m(3, 251, d)
+# define NDNBOOST_PP_REPEAT_2_253(m, d) NDNBOOST_PP_REPEAT_2_252(m, d) m(3, 252, d)
+# define NDNBOOST_PP_REPEAT_2_254(m, d) NDNBOOST_PP_REPEAT_2_253(m, d) m(3, 253, d)
+# define NDNBOOST_PP_REPEAT_2_255(m, d) NDNBOOST_PP_REPEAT_2_254(m, d) m(3, 254, d)
+# define NDNBOOST_PP_REPEAT_2_256(m, d) NDNBOOST_PP_REPEAT_2_255(m, d) m(3, 255, d)
 #
-# define BOOST_PP_REPEAT_3_0(m, d)
-# define BOOST_PP_REPEAT_3_1(m, d) m(4, 0, d)
-# define BOOST_PP_REPEAT_3_2(m, d) BOOST_PP_REPEAT_3_1(m, d) m(4, 1, d)
-# define BOOST_PP_REPEAT_3_3(m, d) BOOST_PP_REPEAT_3_2(m, d) m(4, 2, d)
-# define BOOST_PP_REPEAT_3_4(m, d) BOOST_PP_REPEAT_3_3(m, d) m(4, 3, d)
-# define BOOST_PP_REPEAT_3_5(m, d) BOOST_PP_REPEAT_3_4(m, d) m(4, 4, d)
-# define BOOST_PP_REPEAT_3_6(m, d) BOOST_PP_REPEAT_3_5(m, d) m(4, 5, d)
-# define BOOST_PP_REPEAT_3_7(m, d) BOOST_PP_REPEAT_3_6(m, d) m(4, 6, d)
-# define BOOST_PP_REPEAT_3_8(m, d) BOOST_PP_REPEAT_3_7(m, d) m(4, 7, d)
-# define BOOST_PP_REPEAT_3_9(m, d) BOOST_PP_REPEAT_3_8(m, d) m(4, 8, d)
-# define BOOST_PP_REPEAT_3_10(m, d) BOOST_PP_REPEAT_3_9(m, d) m(4, 9, d)
-# define BOOST_PP_REPEAT_3_11(m, d) BOOST_PP_REPEAT_3_10(m, d) m(4, 10, d)
-# define BOOST_PP_REPEAT_3_12(m, d) BOOST_PP_REPEAT_3_11(m, d) m(4, 11, d)
-# define BOOST_PP_REPEAT_3_13(m, d) BOOST_PP_REPEAT_3_12(m, d) m(4, 12, d)
-# define BOOST_PP_REPEAT_3_14(m, d) BOOST_PP_REPEAT_3_13(m, d) m(4, 13, d)
-# define BOOST_PP_REPEAT_3_15(m, d) BOOST_PP_REPEAT_3_14(m, d) m(4, 14, d)
-# define BOOST_PP_REPEAT_3_16(m, d) BOOST_PP_REPEAT_3_15(m, d) m(4, 15, d)
-# define BOOST_PP_REPEAT_3_17(m, d) BOOST_PP_REPEAT_3_16(m, d) m(4, 16, d)
-# define BOOST_PP_REPEAT_3_18(m, d) BOOST_PP_REPEAT_3_17(m, d) m(4, 17, d)
-# define BOOST_PP_REPEAT_3_19(m, d) BOOST_PP_REPEAT_3_18(m, d) m(4, 18, d)
-# define BOOST_PP_REPEAT_3_20(m, d) BOOST_PP_REPEAT_3_19(m, d) m(4, 19, d)
-# define BOOST_PP_REPEAT_3_21(m, d) BOOST_PP_REPEAT_3_20(m, d) m(4, 20, d)
-# define BOOST_PP_REPEAT_3_22(m, d) BOOST_PP_REPEAT_3_21(m, d) m(4, 21, d)
-# define BOOST_PP_REPEAT_3_23(m, d) BOOST_PP_REPEAT_3_22(m, d) m(4, 22, d)
-# define BOOST_PP_REPEAT_3_24(m, d) BOOST_PP_REPEAT_3_23(m, d) m(4, 23, d)
-# define BOOST_PP_REPEAT_3_25(m, d) BOOST_PP_REPEAT_3_24(m, d) m(4, 24, d)
-# define BOOST_PP_REPEAT_3_26(m, d) BOOST_PP_REPEAT_3_25(m, d) m(4, 25, d)
-# define BOOST_PP_REPEAT_3_27(m, d) BOOST_PP_REPEAT_3_26(m, d) m(4, 26, d)
-# define BOOST_PP_REPEAT_3_28(m, d) BOOST_PP_REPEAT_3_27(m, d) m(4, 27, d)
-# define BOOST_PP_REPEAT_3_29(m, d) BOOST_PP_REPEAT_3_28(m, d) m(4, 28, d)
-# define BOOST_PP_REPEAT_3_30(m, d) BOOST_PP_REPEAT_3_29(m, d) m(4, 29, d)
-# define BOOST_PP_REPEAT_3_31(m, d) BOOST_PP_REPEAT_3_30(m, d) m(4, 30, d)
-# define BOOST_PP_REPEAT_3_32(m, d) BOOST_PP_REPEAT_3_31(m, d) m(4, 31, d)
-# define BOOST_PP_REPEAT_3_33(m, d) BOOST_PP_REPEAT_3_32(m, d) m(4, 32, d)
-# define BOOST_PP_REPEAT_3_34(m, d) BOOST_PP_REPEAT_3_33(m, d) m(4, 33, d)
-# define BOOST_PP_REPEAT_3_35(m, d) BOOST_PP_REPEAT_3_34(m, d) m(4, 34, d)
-# define BOOST_PP_REPEAT_3_36(m, d) BOOST_PP_REPEAT_3_35(m, d) m(4, 35, d)
-# define BOOST_PP_REPEAT_3_37(m, d) BOOST_PP_REPEAT_3_36(m, d) m(4, 36, d)
-# define BOOST_PP_REPEAT_3_38(m, d) BOOST_PP_REPEAT_3_37(m, d) m(4, 37, d)
-# define BOOST_PP_REPEAT_3_39(m, d) BOOST_PP_REPEAT_3_38(m, d) m(4, 38, d)
-# define BOOST_PP_REPEAT_3_40(m, d) BOOST_PP_REPEAT_3_39(m, d) m(4, 39, d)
-# define BOOST_PP_REPEAT_3_41(m, d) BOOST_PP_REPEAT_3_40(m, d) m(4, 40, d)
-# define BOOST_PP_REPEAT_3_42(m, d) BOOST_PP_REPEAT_3_41(m, d) m(4, 41, d)
-# define BOOST_PP_REPEAT_3_43(m, d) BOOST_PP_REPEAT_3_42(m, d) m(4, 42, d)
-# define BOOST_PP_REPEAT_3_44(m, d) BOOST_PP_REPEAT_3_43(m, d) m(4, 43, d)
-# define BOOST_PP_REPEAT_3_45(m, d) BOOST_PP_REPEAT_3_44(m, d) m(4, 44, d)
-# define BOOST_PP_REPEAT_3_46(m, d) BOOST_PP_REPEAT_3_45(m, d) m(4, 45, d)
-# define BOOST_PP_REPEAT_3_47(m, d) BOOST_PP_REPEAT_3_46(m, d) m(4, 46, d)
-# define BOOST_PP_REPEAT_3_48(m, d) BOOST_PP_REPEAT_3_47(m, d) m(4, 47, d)
-# define BOOST_PP_REPEAT_3_49(m, d) BOOST_PP_REPEAT_3_48(m, d) m(4, 48, d)
-# define BOOST_PP_REPEAT_3_50(m, d) BOOST_PP_REPEAT_3_49(m, d) m(4, 49, d)
-# define BOOST_PP_REPEAT_3_51(m, d) BOOST_PP_REPEAT_3_50(m, d) m(4, 50, d)
-# define BOOST_PP_REPEAT_3_52(m, d) BOOST_PP_REPEAT_3_51(m, d) m(4, 51, d)
-# define BOOST_PP_REPEAT_3_53(m, d) BOOST_PP_REPEAT_3_52(m, d) m(4, 52, d)
-# define BOOST_PP_REPEAT_3_54(m, d) BOOST_PP_REPEAT_3_53(m, d) m(4, 53, d)
-# define BOOST_PP_REPEAT_3_55(m, d) BOOST_PP_REPEAT_3_54(m, d) m(4, 54, d)
-# define BOOST_PP_REPEAT_3_56(m, d) BOOST_PP_REPEAT_3_55(m, d) m(4, 55, d)
-# define BOOST_PP_REPEAT_3_57(m, d) BOOST_PP_REPEAT_3_56(m, d) m(4, 56, d)
-# define BOOST_PP_REPEAT_3_58(m, d) BOOST_PP_REPEAT_3_57(m, d) m(4, 57, d)
-# define BOOST_PP_REPEAT_3_59(m, d) BOOST_PP_REPEAT_3_58(m, d) m(4, 58, d)
-# define BOOST_PP_REPEAT_3_60(m, d) BOOST_PP_REPEAT_3_59(m, d) m(4, 59, d)
-# define BOOST_PP_REPEAT_3_61(m, d) BOOST_PP_REPEAT_3_60(m, d) m(4, 60, d)
-# define BOOST_PP_REPEAT_3_62(m, d) BOOST_PP_REPEAT_3_61(m, d) m(4, 61, d)
-# define BOOST_PP_REPEAT_3_63(m, d) BOOST_PP_REPEAT_3_62(m, d) m(4, 62, d)
-# define BOOST_PP_REPEAT_3_64(m, d) BOOST_PP_REPEAT_3_63(m, d) m(4, 63, d)
-# define BOOST_PP_REPEAT_3_65(m, d) BOOST_PP_REPEAT_3_64(m, d) m(4, 64, d)
-# define BOOST_PP_REPEAT_3_66(m, d) BOOST_PP_REPEAT_3_65(m, d) m(4, 65, d)
-# define BOOST_PP_REPEAT_3_67(m, d) BOOST_PP_REPEAT_3_66(m, d) m(4, 66, d)
-# define BOOST_PP_REPEAT_3_68(m, d) BOOST_PP_REPEAT_3_67(m, d) m(4, 67, d)
-# define BOOST_PP_REPEAT_3_69(m, d) BOOST_PP_REPEAT_3_68(m, d) m(4, 68, d)
-# define BOOST_PP_REPEAT_3_70(m, d) BOOST_PP_REPEAT_3_69(m, d) m(4, 69, d)
-# define BOOST_PP_REPEAT_3_71(m, d) BOOST_PP_REPEAT_3_70(m, d) m(4, 70, d)
-# define BOOST_PP_REPEAT_3_72(m, d) BOOST_PP_REPEAT_3_71(m, d) m(4, 71, d)
-# define BOOST_PP_REPEAT_3_73(m, d) BOOST_PP_REPEAT_3_72(m, d) m(4, 72, d)
-# define BOOST_PP_REPEAT_3_74(m, d) BOOST_PP_REPEAT_3_73(m, d) m(4, 73, d)
-# define BOOST_PP_REPEAT_3_75(m, d) BOOST_PP_REPEAT_3_74(m, d) m(4, 74, d)
-# define BOOST_PP_REPEAT_3_76(m, d) BOOST_PP_REPEAT_3_75(m, d) m(4, 75, d)
-# define BOOST_PP_REPEAT_3_77(m, d) BOOST_PP_REPEAT_3_76(m, d) m(4, 76, d)
-# define BOOST_PP_REPEAT_3_78(m, d) BOOST_PP_REPEAT_3_77(m, d) m(4, 77, d)
-# define BOOST_PP_REPEAT_3_79(m, d) BOOST_PP_REPEAT_3_78(m, d) m(4, 78, d)
-# define BOOST_PP_REPEAT_3_80(m, d) BOOST_PP_REPEAT_3_79(m, d) m(4, 79, d)
-# define BOOST_PP_REPEAT_3_81(m, d) BOOST_PP_REPEAT_3_80(m, d) m(4, 80, d)
-# define BOOST_PP_REPEAT_3_82(m, d) BOOST_PP_REPEAT_3_81(m, d) m(4, 81, d)
-# define BOOST_PP_REPEAT_3_83(m, d) BOOST_PP_REPEAT_3_82(m, d) m(4, 82, d)
-# define BOOST_PP_REPEAT_3_84(m, d) BOOST_PP_REPEAT_3_83(m, d) m(4, 83, d)
-# define BOOST_PP_REPEAT_3_85(m, d) BOOST_PP_REPEAT_3_84(m, d) m(4, 84, d)
-# define BOOST_PP_REPEAT_3_86(m, d) BOOST_PP_REPEAT_3_85(m, d) m(4, 85, d)
-# define BOOST_PP_REPEAT_3_87(m, d) BOOST_PP_REPEAT_3_86(m, d) m(4, 86, d)
-# define BOOST_PP_REPEAT_3_88(m, d) BOOST_PP_REPEAT_3_87(m, d) m(4, 87, d)
-# define BOOST_PP_REPEAT_3_89(m, d) BOOST_PP_REPEAT_3_88(m, d) m(4, 88, d)
-# define BOOST_PP_REPEAT_3_90(m, d) BOOST_PP_REPEAT_3_89(m, d) m(4, 89, d)
-# define BOOST_PP_REPEAT_3_91(m, d) BOOST_PP_REPEAT_3_90(m, d) m(4, 90, d)
-# define BOOST_PP_REPEAT_3_92(m, d) BOOST_PP_REPEAT_3_91(m, d) m(4, 91, d)
-# define BOOST_PP_REPEAT_3_93(m, d) BOOST_PP_REPEAT_3_92(m, d) m(4, 92, d)
-# define BOOST_PP_REPEAT_3_94(m, d) BOOST_PP_REPEAT_3_93(m, d) m(4, 93, d)
-# define BOOST_PP_REPEAT_3_95(m, d) BOOST_PP_REPEAT_3_94(m, d) m(4, 94, d)
-# define BOOST_PP_REPEAT_3_96(m, d) BOOST_PP_REPEAT_3_95(m, d) m(4, 95, d)
-# define BOOST_PP_REPEAT_3_97(m, d) BOOST_PP_REPEAT_3_96(m, d) m(4, 96, d)
-# define BOOST_PP_REPEAT_3_98(m, d) BOOST_PP_REPEAT_3_97(m, d) m(4, 97, d)
-# define BOOST_PP_REPEAT_3_99(m, d) BOOST_PP_REPEAT_3_98(m, d) m(4, 98, d)
-# define BOOST_PP_REPEAT_3_100(m, d) BOOST_PP_REPEAT_3_99(m, d) m(4, 99, d)
-# define BOOST_PP_REPEAT_3_101(m, d) BOOST_PP_REPEAT_3_100(m, d) m(4, 100, d)
-# define BOOST_PP_REPEAT_3_102(m, d) BOOST_PP_REPEAT_3_101(m, d) m(4, 101, d)
-# define BOOST_PP_REPEAT_3_103(m, d) BOOST_PP_REPEAT_3_102(m, d) m(4, 102, d)
-# define BOOST_PP_REPEAT_3_104(m, d) BOOST_PP_REPEAT_3_103(m, d) m(4, 103, d)
-# define BOOST_PP_REPEAT_3_105(m, d) BOOST_PP_REPEAT_3_104(m, d) m(4, 104, d)
-# define BOOST_PP_REPEAT_3_106(m, d) BOOST_PP_REPEAT_3_105(m, d) m(4, 105, d)
-# define BOOST_PP_REPEAT_3_107(m, d) BOOST_PP_REPEAT_3_106(m, d) m(4, 106, d)
-# define BOOST_PP_REPEAT_3_108(m, d) BOOST_PP_REPEAT_3_107(m, d) m(4, 107, d)
-# define BOOST_PP_REPEAT_3_109(m, d) BOOST_PP_REPEAT_3_108(m, d) m(4, 108, d)
-# define BOOST_PP_REPEAT_3_110(m, d) BOOST_PP_REPEAT_3_109(m, d) m(4, 109, d)
-# define BOOST_PP_REPEAT_3_111(m, d) BOOST_PP_REPEAT_3_110(m, d) m(4, 110, d)
-# define BOOST_PP_REPEAT_3_112(m, d) BOOST_PP_REPEAT_3_111(m, d) m(4, 111, d)
-# define BOOST_PP_REPEAT_3_113(m, d) BOOST_PP_REPEAT_3_112(m, d) m(4, 112, d)
-# define BOOST_PP_REPEAT_3_114(m, d) BOOST_PP_REPEAT_3_113(m, d) m(4, 113, d)
-# define BOOST_PP_REPEAT_3_115(m, d) BOOST_PP_REPEAT_3_114(m, d) m(4, 114, d)
-# define BOOST_PP_REPEAT_3_116(m, d) BOOST_PP_REPEAT_3_115(m, d) m(4, 115, d)
-# define BOOST_PP_REPEAT_3_117(m, d) BOOST_PP_REPEAT_3_116(m, d) m(4, 116, d)
-# define BOOST_PP_REPEAT_3_118(m, d) BOOST_PP_REPEAT_3_117(m, d) m(4, 117, d)
-# define BOOST_PP_REPEAT_3_119(m, d) BOOST_PP_REPEAT_3_118(m, d) m(4, 118, d)
-# define BOOST_PP_REPEAT_3_120(m, d) BOOST_PP_REPEAT_3_119(m, d) m(4, 119, d)
-# define BOOST_PP_REPEAT_3_121(m, d) BOOST_PP_REPEAT_3_120(m, d) m(4, 120, d)
-# define BOOST_PP_REPEAT_3_122(m, d) BOOST_PP_REPEAT_3_121(m, d) m(4, 121, d)
-# define BOOST_PP_REPEAT_3_123(m, d) BOOST_PP_REPEAT_3_122(m, d) m(4, 122, d)
-# define BOOST_PP_REPEAT_3_124(m, d) BOOST_PP_REPEAT_3_123(m, d) m(4, 123, d)
-# define BOOST_PP_REPEAT_3_125(m, d) BOOST_PP_REPEAT_3_124(m, d) m(4, 124, d)
-# define BOOST_PP_REPEAT_3_126(m, d) BOOST_PP_REPEAT_3_125(m, d) m(4, 125, d)
-# define BOOST_PP_REPEAT_3_127(m, d) BOOST_PP_REPEAT_3_126(m, d) m(4, 126, d)
-# define BOOST_PP_REPEAT_3_128(m, d) BOOST_PP_REPEAT_3_127(m, d) m(4, 127, d)
-# define BOOST_PP_REPEAT_3_129(m, d) BOOST_PP_REPEAT_3_128(m, d) m(4, 128, d)
-# define BOOST_PP_REPEAT_3_130(m, d) BOOST_PP_REPEAT_3_129(m, d) m(4, 129, d)
-# define BOOST_PP_REPEAT_3_131(m, d) BOOST_PP_REPEAT_3_130(m, d) m(4, 130, d)
-# define BOOST_PP_REPEAT_3_132(m, d) BOOST_PP_REPEAT_3_131(m, d) m(4, 131, d)
-# define BOOST_PP_REPEAT_3_133(m, d) BOOST_PP_REPEAT_3_132(m, d) m(4, 132, d)
-# define BOOST_PP_REPEAT_3_134(m, d) BOOST_PP_REPEAT_3_133(m, d) m(4, 133, d)
-# define BOOST_PP_REPEAT_3_135(m, d) BOOST_PP_REPEAT_3_134(m, d) m(4, 134, d)
-# define BOOST_PP_REPEAT_3_136(m, d) BOOST_PP_REPEAT_3_135(m, d) m(4, 135, d)
-# define BOOST_PP_REPEAT_3_137(m, d) BOOST_PP_REPEAT_3_136(m, d) m(4, 136, d)
-# define BOOST_PP_REPEAT_3_138(m, d) BOOST_PP_REPEAT_3_137(m, d) m(4, 137, d)
-# define BOOST_PP_REPEAT_3_139(m, d) BOOST_PP_REPEAT_3_138(m, d) m(4, 138, d)
-# define BOOST_PP_REPEAT_3_140(m, d) BOOST_PP_REPEAT_3_139(m, d) m(4, 139, d)
-# define BOOST_PP_REPEAT_3_141(m, d) BOOST_PP_REPEAT_3_140(m, d) m(4, 140, d)
-# define BOOST_PP_REPEAT_3_142(m, d) BOOST_PP_REPEAT_3_141(m, d) m(4, 141, d)
-# define BOOST_PP_REPEAT_3_143(m, d) BOOST_PP_REPEAT_3_142(m, d) m(4, 142, d)
-# define BOOST_PP_REPEAT_3_144(m, d) BOOST_PP_REPEAT_3_143(m, d) m(4, 143, d)
-# define BOOST_PP_REPEAT_3_145(m, d) BOOST_PP_REPEAT_3_144(m, d) m(4, 144, d)
-# define BOOST_PP_REPEAT_3_146(m, d) BOOST_PP_REPEAT_3_145(m, d) m(4, 145, d)
-# define BOOST_PP_REPEAT_3_147(m, d) BOOST_PP_REPEAT_3_146(m, d) m(4, 146, d)
-# define BOOST_PP_REPEAT_3_148(m, d) BOOST_PP_REPEAT_3_147(m, d) m(4, 147, d)
-# define BOOST_PP_REPEAT_3_149(m, d) BOOST_PP_REPEAT_3_148(m, d) m(4, 148, d)
-# define BOOST_PP_REPEAT_3_150(m, d) BOOST_PP_REPEAT_3_149(m, d) m(4, 149, d)
-# define BOOST_PP_REPEAT_3_151(m, d) BOOST_PP_REPEAT_3_150(m, d) m(4, 150, d)
-# define BOOST_PP_REPEAT_3_152(m, d) BOOST_PP_REPEAT_3_151(m, d) m(4, 151, d)
-# define BOOST_PP_REPEAT_3_153(m, d) BOOST_PP_REPEAT_3_152(m, d) m(4, 152, d)
-# define BOOST_PP_REPEAT_3_154(m, d) BOOST_PP_REPEAT_3_153(m, d) m(4, 153, d)
-# define BOOST_PP_REPEAT_3_155(m, d) BOOST_PP_REPEAT_3_154(m, d) m(4, 154, d)
-# define BOOST_PP_REPEAT_3_156(m, d) BOOST_PP_REPEAT_3_155(m, d) m(4, 155, d)
-# define BOOST_PP_REPEAT_3_157(m, d) BOOST_PP_REPEAT_3_156(m, d) m(4, 156, d)
-# define BOOST_PP_REPEAT_3_158(m, d) BOOST_PP_REPEAT_3_157(m, d) m(4, 157, d)
-# define BOOST_PP_REPEAT_3_159(m, d) BOOST_PP_REPEAT_3_158(m, d) m(4, 158, d)
-# define BOOST_PP_REPEAT_3_160(m, d) BOOST_PP_REPEAT_3_159(m, d) m(4, 159, d)
-# define BOOST_PP_REPEAT_3_161(m, d) BOOST_PP_REPEAT_3_160(m, d) m(4, 160, d)
-# define BOOST_PP_REPEAT_3_162(m, d) BOOST_PP_REPEAT_3_161(m, d) m(4, 161, d)
-# define BOOST_PP_REPEAT_3_163(m, d) BOOST_PP_REPEAT_3_162(m, d) m(4, 162, d)
-# define BOOST_PP_REPEAT_3_164(m, d) BOOST_PP_REPEAT_3_163(m, d) m(4, 163, d)
-# define BOOST_PP_REPEAT_3_165(m, d) BOOST_PP_REPEAT_3_164(m, d) m(4, 164, d)
-# define BOOST_PP_REPEAT_3_166(m, d) BOOST_PP_REPEAT_3_165(m, d) m(4, 165, d)
-# define BOOST_PP_REPEAT_3_167(m, d) BOOST_PP_REPEAT_3_166(m, d) m(4, 166, d)
-# define BOOST_PP_REPEAT_3_168(m, d) BOOST_PP_REPEAT_3_167(m, d) m(4, 167, d)
-# define BOOST_PP_REPEAT_3_169(m, d) BOOST_PP_REPEAT_3_168(m, d) m(4, 168, d)
-# define BOOST_PP_REPEAT_3_170(m, d) BOOST_PP_REPEAT_3_169(m, d) m(4, 169, d)
-# define BOOST_PP_REPEAT_3_171(m, d) BOOST_PP_REPEAT_3_170(m, d) m(4, 170, d)
-# define BOOST_PP_REPEAT_3_172(m, d) BOOST_PP_REPEAT_3_171(m, d) m(4, 171, d)
-# define BOOST_PP_REPEAT_3_173(m, d) BOOST_PP_REPEAT_3_172(m, d) m(4, 172, d)
-# define BOOST_PP_REPEAT_3_174(m, d) BOOST_PP_REPEAT_3_173(m, d) m(4, 173, d)
-# define BOOST_PP_REPEAT_3_175(m, d) BOOST_PP_REPEAT_3_174(m, d) m(4, 174, d)
-# define BOOST_PP_REPEAT_3_176(m, d) BOOST_PP_REPEAT_3_175(m, d) m(4, 175, d)
-# define BOOST_PP_REPEAT_3_177(m, d) BOOST_PP_REPEAT_3_176(m, d) m(4, 176, d)
-# define BOOST_PP_REPEAT_3_178(m, d) BOOST_PP_REPEAT_3_177(m, d) m(4, 177, d)
-# define BOOST_PP_REPEAT_3_179(m, d) BOOST_PP_REPEAT_3_178(m, d) m(4, 178, d)
-# define BOOST_PP_REPEAT_3_180(m, d) BOOST_PP_REPEAT_3_179(m, d) m(4, 179, d)
-# define BOOST_PP_REPEAT_3_181(m, d) BOOST_PP_REPEAT_3_180(m, d) m(4, 180, d)
-# define BOOST_PP_REPEAT_3_182(m, d) BOOST_PP_REPEAT_3_181(m, d) m(4, 181, d)
-# define BOOST_PP_REPEAT_3_183(m, d) BOOST_PP_REPEAT_3_182(m, d) m(4, 182, d)
-# define BOOST_PP_REPEAT_3_184(m, d) BOOST_PP_REPEAT_3_183(m, d) m(4, 183, d)
-# define BOOST_PP_REPEAT_3_185(m, d) BOOST_PP_REPEAT_3_184(m, d) m(4, 184, d)
-# define BOOST_PP_REPEAT_3_186(m, d) BOOST_PP_REPEAT_3_185(m, d) m(4, 185, d)
-# define BOOST_PP_REPEAT_3_187(m, d) BOOST_PP_REPEAT_3_186(m, d) m(4, 186, d)
-# define BOOST_PP_REPEAT_3_188(m, d) BOOST_PP_REPEAT_3_187(m, d) m(4, 187, d)
-# define BOOST_PP_REPEAT_3_189(m, d) BOOST_PP_REPEAT_3_188(m, d) m(4, 188, d)
-# define BOOST_PP_REPEAT_3_190(m, d) BOOST_PP_REPEAT_3_189(m, d) m(4, 189, d)
-# define BOOST_PP_REPEAT_3_191(m, d) BOOST_PP_REPEAT_3_190(m, d) m(4, 190, d)
-# define BOOST_PP_REPEAT_3_192(m, d) BOOST_PP_REPEAT_3_191(m, d) m(4, 191, d)
-# define BOOST_PP_REPEAT_3_193(m, d) BOOST_PP_REPEAT_3_192(m, d) m(4, 192, d)
-# define BOOST_PP_REPEAT_3_194(m, d) BOOST_PP_REPEAT_3_193(m, d) m(4, 193, d)
-# define BOOST_PP_REPEAT_3_195(m, d) BOOST_PP_REPEAT_3_194(m, d) m(4, 194, d)
-# define BOOST_PP_REPEAT_3_196(m, d) BOOST_PP_REPEAT_3_195(m, d) m(4, 195, d)
-# define BOOST_PP_REPEAT_3_197(m, d) BOOST_PP_REPEAT_3_196(m, d) m(4, 196, d)
-# define BOOST_PP_REPEAT_3_198(m, d) BOOST_PP_REPEAT_3_197(m, d) m(4, 197, d)
-# define BOOST_PP_REPEAT_3_199(m, d) BOOST_PP_REPEAT_3_198(m, d) m(4, 198, d)
-# define BOOST_PP_REPEAT_3_200(m, d) BOOST_PP_REPEAT_3_199(m, d) m(4, 199, d)
-# define BOOST_PP_REPEAT_3_201(m, d) BOOST_PP_REPEAT_3_200(m, d) m(4, 200, d)
-# define BOOST_PP_REPEAT_3_202(m, d) BOOST_PP_REPEAT_3_201(m, d) m(4, 201, d)
-# define BOOST_PP_REPEAT_3_203(m, d) BOOST_PP_REPEAT_3_202(m, d) m(4, 202, d)
-# define BOOST_PP_REPEAT_3_204(m, d) BOOST_PP_REPEAT_3_203(m, d) m(4, 203, d)
-# define BOOST_PP_REPEAT_3_205(m, d) BOOST_PP_REPEAT_3_204(m, d) m(4, 204, d)
-# define BOOST_PP_REPEAT_3_206(m, d) BOOST_PP_REPEAT_3_205(m, d) m(4, 205, d)
-# define BOOST_PP_REPEAT_3_207(m, d) BOOST_PP_REPEAT_3_206(m, d) m(4, 206, d)
-# define BOOST_PP_REPEAT_3_208(m, d) BOOST_PP_REPEAT_3_207(m, d) m(4, 207, d)
-# define BOOST_PP_REPEAT_3_209(m, d) BOOST_PP_REPEAT_3_208(m, d) m(4, 208, d)
-# define BOOST_PP_REPEAT_3_210(m, d) BOOST_PP_REPEAT_3_209(m, d) m(4, 209, d)
-# define BOOST_PP_REPEAT_3_211(m, d) BOOST_PP_REPEAT_3_210(m, d) m(4, 210, d)
-# define BOOST_PP_REPEAT_3_212(m, d) BOOST_PP_REPEAT_3_211(m, d) m(4, 211, d)
-# define BOOST_PP_REPEAT_3_213(m, d) BOOST_PP_REPEAT_3_212(m, d) m(4, 212, d)
-# define BOOST_PP_REPEAT_3_214(m, d) BOOST_PP_REPEAT_3_213(m, d) m(4, 213, d)
-# define BOOST_PP_REPEAT_3_215(m, d) BOOST_PP_REPEAT_3_214(m, d) m(4, 214, d)
-# define BOOST_PP_REPEAT_3_216(m, d) BOOST_PP_REPEAT_3_215(m, d) m(4, 215, d)
-# define BOOST_PP_REPEAT_3_217(m, d) BOOST_PP_REPEAT_3_216(m, d) m(4, 216, d)
-# define BOOST_PP_REPEAT_3_218(m, d) BOOST_PP_REPEAT_3_217(m, d) m(4, 217, d)
-# define BOOST_PP_REPEAT_3_219(m, d) BOOST_PP_REPEAT_3_218(m, d) m(4, 218, d)
-# define BOOST_PP_REPEAT_3_220(m, d) BOOST_PP_REPEAT_3_219(m, d) m(4, 219, d)
-# define BOOST_PP_REPEAT_3_221(m, d) BOOST_PP_REPEAT_3_220(m, d) m(4, 220, d)
-# define BOOST_PP_REPEAT_3_222(m, d) BOOST_PP_REPEAT_3_221(m, d) m(4, 221, d)
-# define BOOST_PP_REPEAT_3_223(m, d) BOOST_PP_REPEAT_3_222(m, d) m(4, 222, d)
-# define BOOST_PP_REPEAT_3_224(m, d) BOOST_PP_REPEAT_3_223(m, d) m(4, 223, d)
-# define BOOST_PP_REPEAT_3_225(m, d) BOOST_PP_REPEAT_3_224(m, d) m(4, 224, d)
-# define BOOST_PP_REPEAT_3_226(m, d) BOOST_PP_REPEAT_3_225(m, d) m(4, 225, d)
-# define BOOST_PP_REPEAT_3_227(m, d) BOOST_PP_REPEAT_3_226(m, d) m(4, 226, d)
-# define BOOST_PP_REPEAT_3_228(m, d) BOOST_PP_REPEAT_3_227(m, d) m(4, 227, d)
-# define BOOST_PP_REPEAT_3_229(m, d) BOOST_PP_REPEAT_3_228(m, d) m(4, 228, d)
-# define BOOST_PP_REPEAT_3_230(m, d) BOOST_PP_REPEAT_3_229(m, d) m(4, 229, d)
-# define BOOST_PP_REPEAT_3_231(m, d) BOOST_PP_REPEAT_3_230(m, d) m(4, 230, d)
-# define BOOST_PP_REPEAT_3_232(m, d) BOOST_PP_REPEAT_3_231(m, d) m(4, 231, d)
-# define BOOST_PP_REPEAT_3_233(m, d) BOOST_PP_REPEAT_3_232(m, d) m(4, 232, d)
-# define BOOST_PP_REPEAT_3_234(m, d) BOOST_PP_REPEAT_3_233(m, d) m(4, 233, d)
-# define BOOST_PP_REPEAT_3_235(m, d) BOOST_PP_REPEAT_3_234(m, d) m(4, 234, d)
-# define BOOST_PP_REPEAT_3_236(m, d) BOOST_PP_REPEAT_3_235(m, d) m(4, 235, d)
-# define BOOST_PP_REPEAT_3_237(m, d) BOOST_PP_REPEAT_3_236(m, d) m(4, 236, d)
-# define BOOST_PP_REPEAT_3_238(m, d) BOOST_PP_REPEAT_3_237(m, d) m(4, 237, d)
-# define BOOST_PP_REPEAT_3_239(m, d) BOOST_PP_REPEAT_3_238(m, d) m(4, 238, d)
-# define BOOST_PP_REPEAT_3_240(m, d) BOOST_PP_REPEAT_3_239(m, d) m(4, 239, d)
-# define BOOST_PP_REPEAT_3_241(m, d) BOOST_PP_REPEAT_3_240(m, d) m(4, 240, d)
-# define BOOST_PP_REPEAT_3_242(m, d) BOOST_PP_REPEAT_3_241(m, d) m(4, 241, d)
-# define BOOST_PP_REPEAT_3_243(m, d) BOOST_PP_REPEAT_3_242(m, d) m(4, 242, d)
-# define BOOST_PP_REPEAT_3_244(m, d) BOOST_PP_REPEAT_3_243(m, d) m(4, 243, d)
-# define BOOST_PP_REPEAT_3_245(m, d) BOOST_PP_REPEAT_3_244(m, d) m(4, 244, d)
-# define BOOST_PP_REPEAT_3_246(m, d) BOOST_PP_REPEAT_3_245(m, d) m(4, 245, d)
-# define BOOST_PP_REPEAT_3_247(m, d) BOOST_PP_REPEAT_3_246(m, d) m(4, 246, d)
-# define BOOST_PP_REPEAT_3_248(m, d) BOOST_PP_REPEAT_3_247(m, d) m(4, 247, d)
-# define BOOST_PP_REPEAT_3_249(m, d) BOOST_PP_REPEAT_3_248(m, d) m(4, 248, d)
-# define BOOST_PP_REPEAT_3_250(m, d) BOOST_PP_REPEAT_3_249(m, d) m(4, 249, d)
-# define BOOST_PP_REPEAT_3_251(m, d) BOOST_PP_REPEAT_3_250(m, d) m(4, 250, d)
-# define BOOST_PP_REPEAT_3_252(m, d) BOOST_PP_REPEAT_3_251(m, d) m(4, 251, d)
-# define BOOST_PP_REPEAT_3_253(m, d) BOOST_PP_REPEAT_3_252(m, d) m(4, 252, d)
-# define BOOST_PP_REPEAT_3_254(m, d) BOOST_PP_REPEAT_3_253(m, d) m(4, 253, d)
-# define BOOST_PP_REPEAT_3_255(m, d) BOOST_PP_REPEAT_3_254(m, d) m(4, 254, d)
-# define BOOST_PP_REPEAT_3_256(m, d) BOOST_PP_REPEAT_3_255(m, d) m(4, 255, d)
+# define NDNBOOST_PP_REPEAT_3_0(m, d)
+# define NDNBOOST_PP_REPEAT_3_1(m, d) m(4, 0, d)
+# define NDNBOOST_PP_REPEAT_3_2(m, d) NDNBOOST_PP_REPEAT_3_1(m, d) m(4, 1, d)
+# define NDNBOOST_PP_REPEAT_3_3(m, d) NDNBOOST_PP_REPEAT_3_2(m, d) m(4, 2, d)
+# define NDNBOOST_PP_REPEAT_3_4(m, d) NDNBOOST_PP_REPEAT_3_3(m, d) m(4, 3, d)
+# define NDNBOOST_PP_REPEAT_3_5(m, d) NDNBOOST_PP_REPEAT_3_4(m, d) m(4, 4, d)
+# define NDNBOOST_PP_REPEAT_3_6(m, d) NDNBOOST_PP_REPEAT_3_5(m, d) m(4, 5, d)
+# define NDNBOOST_PP_REPEAT_3_7(m, d) NDNBOOST_PP_REPEAT_3_6(m, d) m(4, 6, d)
+# define NDNBOOST_PP_REPEAT_3_8(m, d) NDNBOOST_PP_REPEAT_3_7(m, d) m(4, 7, d)
+# define NDNBOOST_PP_REPEAT_3_9(m, d) NDNBOOST_PP_REPEAT_3_8(m, d) m(4, 8, d)
+# define NDNBOOST_PP_REPEAT_3_10(m, d) NDNBOOST_PP_REPEAT_3_9(m, d) m(4, 9, d)
+# define NDNBOOST_PP_REPEAT_3_11(m, d) NDNBOOST_PP_REPEAT_3_10(m, d) m(4, 10, d)
+# define NDNBOOST_PP_REPEAT_3_12(m, d) NDNBOOST_PP_REPEAT_3_11(m, d) m(4, 11, d)
+# define NDNBOOST_PP_REPEAT_3_13(m, d) NDNBOOST_PP_REPEAT_3_12(m, d) m(4, 12, d)
+# define NDNBOOST_PP_REPEAT_3_14(m, d) NDNBOOST_PP_REPEAT_3_13(m, d) m(4, 13, d)
+# define NDNBOOST_PP_REPEAT_3_15(m, d) NDNBOOST_PP_REPEAT_3_14(m, d) m(4, 14, d)
+# define NDNBOOST_PP_REPEAT_3_16(m, d) NDNBOOST_PP_REPEAT_3_15(m, d) m(4, 15, d)
+# define NDNBOOST_PP_REPEAT_3_17(m, d) NDNBOOST_PP_REPEAT_3_16(m, d) m(4, 16, d)
+# define NDNBOOST_PP_REPEAT_3_18(m, d) NDNBOOST_PP_REPEAT_3_17(m, d) m(4, 17, d)
+# define NDNBOOST_PP_REPEAT_3_19(m, d) NDNBOOST_PP_REPEAT_3_18(m, d) m(4, 18, d)
+# define NDNBOOST_PP_REPEAT_3_20(m, d) NDNBOOST_PP_REPEAT_3_19(m, d) m(4, 19, d)
+# define NDNBOOST_PP_REPEAT_3_21(m, d) NDNBOOST_PP_REPEAT_3_20(m, d) m(4, 20, d)
+# define NDNBOOST_PP_REPEAT_3_22(m, d) NDNBOOST_PP_REPEAT_3_21(m, d) m(4, 21, d)
+# define NDNBOOST_PP_REPEAT_3_23(m, d) NDNBOOST_PP_REPEAT_3_22(m, d) m(4, 22, d)
+# define NDNBOOST_PP_REPEAT_3_24(m, d) NDNBOOST_PP_REPEAT_3_23(m, d) m(4, 23, d)
+# define NDNBOOST_PP_REPEAT_3_25(m, d) NDNBOOST_PP_REPEAT_3_24(m, d) m(4, 24, d)
+# define NDNBOOST_PP_REPEAT_3_26(m, d) NDNBOOST_PP_REPEAT_3_25(m, d) m(4, 25, d)
+# define NDNBOOST_PP_REPEAT_3_27(m, d) NDNBOOST_PP_REPEAT_3_26(m, d) m(4, 26, d)
+# define NDNBOOST_PP_REPEAT_3_28(m, d) NDNBOOST_PP_REPEAT_3_27(m, d) m(4, 27, d)
+# define NDNBOOST_PP_REPEAT_3_29(m, d) NDNBOOST_PP_REPEAT_3_28(m, d) m(4, 28, d)
+# define NDNBOOST_PP_REPEAT_3_30(m, d) NDNBOOST_PP_REPEAT_3_29(m, d) m(4, 29, d)
+# define NDNBOOST_PP_REPEAT_3_31(m, d) NDNBOOST_PP_REPEAT_3_30(m, d) m(4, 30, d)
+# define NDNBOOST_PP_REPEAT_3_32(m, d) NDNBOOST_PP_REPEAT_3_31(m, d) m(4, 31, d)
+# define NDNBOOST_PP_REPEAT_3_33(m, d) NDNBOOST_PP_REPEAT_3_32(m, d) m(4, 32, d)
+# define NDNBOOST_PP_REPEAT_3_34(m, d) NDNBOOST_PP_REPEAT_3_33(m, d) m(4, 33, d)
+# define NDNBOOST_PP_REPEAT_3_35(m, d) NDNBOOST_PP_REPEAT_3_34(m, d) m(4, 34, d)
+# define NDNBOOST_PP_REPEAT_3_36(m, d) NDNBOOST_PP_REPEAT_3_35(m, d) m(4, 35, d)
+# define NDNBOOST_PP_REPEAT_3_37(m, d) NDNBOOST_PP_REPEAT_3_36(m, d) m(4, 36, d)
+# define NDNBOOST_PP_REPEAT_3_38(m, d) NDNBOOST_PP_REPEAT_3_37(m, d) m(4, 37, d)
+# define NDNBOOST_PP_REPEAT_3_39(m, d) NDNBOOST_PP_REPEAT_3_38(m, d) m(4, 38, d)
+# define NDNBOOST_PP_REPEAT_3_40(m, d) NDNBOOST_PP_REPEAT_3_39(m, d) m(4, 39, d)
+# define NDNBOOST_PP_REPEAT_3_41(m, d) NDNBOOST_PP_REPEAT_3_40(m, d) m(4, 40, d)
+# define NDNBOOST_PP_REPEAT_3_42(m, d) NDNBOOST_PP_REPEAT_3_41(m, d) m(4, 41, d)
+# define NDNBOOST_PP_REPEAT_3_43(m, d) NDNBOOST_PP_REPEAT_3_42(m, d) m(4, 42, d)
+# define NDNBOOST_PP_REPEAT_3_44(m, d) NDNBOOST_PP_REPEAT_3_43(m, d) m(4, 43, d)
+# define NDNBOOST_PP_REPEAT_3_45(m, d) NDNBOOST_PP_REPEAT_3_44(m, d) m(4, 44, d)
+# define NDNBOOST_PP_REPEAT_3_46(m, d) NDNBOOST_PP_REPEAT_3_45(m, d) m(4, 45, d)
+# define NDNBOOST_PP_REPEAT_3_47(m, d) NDNBOOST_PP_REPEAT_3_46(m, d) m(4, 46, d)
+# define NDNBOOST_PP_REPEAT_3_48(m, d) NDNBOOST_PP_REPEAT_3_47(m, d) m(4, 47, d)
+# define NDNBOOST_PP_REPEAT_3_49(m, d) NDNBOOST_PP_REPEAT_3_48(m, d) m(4, 48, d)
+# define NDNBOOST_PP_REPEAT_3_50(m, d) NDNBOOST_PP_REPEAT_3_49(m, d) m(4, 49, d)
+# define NDNBOOST_PP_REPEAT_3_51(m, d) NDNBOOST_PP_REPEAT_3_50(m, d) m(4, 50, d)
+# define NDNBOOST_PP_REPEAT_3_52(m, d) NDNBOOST_PP_REPEAT_3_51(m, d) m(4, 51, d)
+# define NDNBOOST_PP_REPEAT_3_53(m, d) NDNBOOST_PP_REPEAT_3_52(m, d) m(4, 52, d)
+# define NDNBOOST_PP_REPEAT_3_54(m, d) NDNBOOST_PP_REPEAT_3_53(m, d) m(4, 53, d)
+# define NDNBOOST_PP_REPEAT_3_55(m, d) NDNBOOST_PP_REPEAT_3_54(m, d) m(4, 54, d)
+# define NDNBOOST_PP_REPEAT_3_56(m, d) NDNBOOST_PP_REPEAT_3_55(m, d) m(4, 55, d)
+# define NDNBOOST_PP_REPEAT_3_57(m, d) NDNBOOST_PP_REPEAT_3_56(m, d) m(4, 56, d)
+# define NDNBOOST_PP_REPEAT_3_58(m, d) NDNBOOST_PP_REPEAT_3_57(m, d) m(4, 57, d)
+# define NDNBOOST_PP_REPEAT_3_59(m, d) NDNBOOST_PP_REPEAT_3_58(m, d) m(4, 58, d)
+# define NDNBOOST_PP_REPEAT_3_60(m, d) NDNBOOST_PP_REPEAT_3_59(m, d) m(4, 59, d)
+# define NDNBOOST_PP_REPEAT_3_61(m, d) NDNBOOST_PP_REPEAT_3_60(m, d) m(4, 60, d)
+# define NDNBOOST_PP_REPEAT_3_62(m, d) NDNBOOST_PP_REPEAT_3_61(m, d) m(4, 61, d)
+# define NDNBOOST_PP_REPEAT_3_63(m, d) NDNBOOST_PP_REPEAT_3_62(m, d) m(4, 62, d)
+# define NDNBOOST_PP_REPEAT_3_64(m, d) NDNBOOST_PP_REPEAT_3_63(m, d) m(4, 63, d)
+# define NDNBOOST_PP_REPEAT_3_65(m, d) NDNBOOST_PP_REPEAT_3_64(m, d) m(4, 64, d)
+# define NDNBOOST_PP_REPEAT_3_66(m, d) NDNBOOST_PP_REPEAT_3_65(m, d) m(4, 65, d)
+# define NDNBOOST_PP_REPEAT_3_67(m, d) NDNBOOST_PP_REPEAT_3_66(m, d) m(4, 66, d)
+# define NDNBOOST_PP_REPEAT_3_68(m, d) NDNBOOST_PP_REPEAT_3_67(m, d) m(4, 67, d)
+# define NDNBOOST_PP_REPEAT_3_69(m, d) NDNBOOST_PP_REPEAT_3_68(m, d) m(4, 68, d)
+# define NDNBOOST_PP_REPEAT_3_70(m, d) NDNBOOST_PP_REPEAT_3_69(m, d) m(4, 69, d)
+# define NDNBOOST_PP_REPEAT_3_71(m, d) NDNBOOST_PP_REPEAT_3_70(m, d) m(4, 70, d)
+# define NDNBOOST_PP_REPEAT_3_72(m, d) NDNBOOST_PP_REPEAT_3_71(m, d) m(4, 71, d)
+# define NDNBOOST_PP_REPEAT_3_73(m, d) NDNBOOST_PP_REPEAT_3_72(m, d) m(4, 72, d)
+# define NDNBOOST_PP_REPEAT_3_74(m, d) NDNBOOST_PP_REPEAT_3_73(m, d) m(4, 73, d)
+# define NDNBOOST_PP_REPEAT_3_75(m, d) NDNBOOST_PP_REPEAT_3_74(m, d) m(4, 74, d)
+# define NDNBOOST_PP_REPEAT_3_76(m, d) NDNBOOST_PP_REPEAT_3_75(m, d) m(4, 75, d)
+# define NDNBOOST_PP_REPEAT_3_77(m, d) NDNBOOST_PP_REPEAT_3_76(m, d) m(4, 76, d)
+# define NDNBOOST_PP_REPEAT_3_78(m, d) NDNBOOST_PP_REPEAT_3_77(m, d) m(4, 77, d)
+# define NDNBOOST_PP_REPEAT_3_79(m, d) NDNBOOST_PP_REPEAT_3_78(m, d) m(4, 78, d)
+# define NDNBOOST_PP_REPEAT_3_80(m, d) NDNBOOST_PP_REPEAT_3_79(m, d) m(4, 79, d)
+# define NDNBOOST_PP_REPEAT_3_81(m, d) NDNBOOST_PP_REPEAT_3_80(m, d) m(4, 80, d)
+# define NDNBOOST_PP_REPEAT_3_82(m, d) NDNBOOST_PP_REPEAT_3_81(m, d) m(4, 81, d)
+# define NDNBOOST_PP_REPEAT_3_83(m, d) NDNBOOST_PP_REPEAT_3_82(m, d) m(4, 82, d)
+# define NDNBOOST_PP_REPEAT_3_84(m, d) NDNBOOST_PP_REPEAT_3_83(m, d) m(4, 83, d)
+# define NDNBOOST_PP_REPEAT_3_85(m, d) NDNBOOST_PP_REPEAT_3_84(m, d) m(4, 84, d)
+# define NDNBOOST_PP_REPEAT_3_86(m, d) NDNBOOST_PP_REPEAT_3_85(m, d) m(4, 85, d)
+# define NDNBOOST_PP_REPEAT_3_87(m, d) NDNBOOST_PP_REPEAT_3_86(m, d) m(4, 86, d)
+# define NDNBOOST_PP_REPEAT_3_88(m, d) NDNBOOST_PP_REPEAT_3_87(m, d) m(4, 87, d)
+# define NDNBOOST_PP_REPEAT_3_89(m, d) NDNBOOST_PP_REPEAT_3_88(m, d) m(4, 88, d)
+# define NDNBOOST_PP_REPEAT_3_90(m, d) NDNBOOST_PP_REPEAT_3_89(m, d) m(4, 89, d)
+# define NDNBOOST_PP_REPEAT_3_91(m, d) NDNBOOST_PP_REPEAT_3_90(m, d) m(4, 90, d)
+# define NDNBOOST_PP_REPEAT_3_92(m, d) NDNBOOST_PP_REPEAT_3_91(m, d) m(4, 91, d)
+# define NDNBOOST_PP_REPEAT_3_93(m, d) NDNBOOST_PP_REPEAT_3_92(m, d) m(4, 92, d)
+# define NDNBOOST_PP_REPEAT_3_94(m, d) NDNBOOST_PP_REPEAT_3_93(m, d) m(4, 93, d)
+# define NDNBOOST_PP_REPEAT_3_95(m, d) NDNBOOST_PP_REPEAT_3_94(m, d) m(4, 94, d)
+# define NDNBOOST_PP_REPEAT_3_96(m, d) NDNBOOST_PP_REPEAT_3_95(m, d) m(4, 95, d)
+# define NDNBOOST_PP_REPEAT_3_97(m, d) NDNBOOST_PP_REPEAT_3_96(m, d) m(4, 96, d)
+# define NDNBOOST_PP_REPEAT_3_98(m, d) NDNBOOST_PP_REPEAT_3_97(m, d) m(4, 97, d)
+# define NDNBOOST_PP_REPEAT_3_99(m, d) NDNBOOST_PP_REPEAT_3_98(m, d) m(4, 98, d)
+# define NDNBOOST_PP_REPEAT_3_100(m, d) NDNBOOST_PP_REPEAT_3_99(m, d) m(4, 99, d)
+# define NDNBOOST_PP_REPEAT_3_101(m, d) NDNBOOST_PP_REPEAT_3_100(m, d) m(4, 100, d)
+# define NDNBOOST_PP_REPEAT_3_102(m, d) NDNBOOST_PP_REPEAT_3_101(m, d) m(4, 101, d)
+# define NDNBOOST_PP_REPEAT_3_103(m, d) NDNBOOST_PP_REPEAT_3_102(m, d) m(4, 102, d)
+# define NDNBOOST_PP_REPEAT_3_104(m, d) NDNBOOST_PP_REPEAT_3_103(m, d) m(4, 103, d)
+# define NDNBOOST_PP_REPEAT_3_105(m, d) NDNBOOST_PP_REPEAT_3_104(m, d) m(4, 104, d)
+# define NDNBOOST_PP_REPEAT_3_106(m, d) NDNBOOST_PP_REPEAT_3_105(m, d) m(4, 105, d)
+# define NDNBOOST_PP_REPEAT_3_107(m, d) NDNBOOST_PP_REPEAT_3_106(m, d) m(4, 106, d)
+# define NDNBOOST_PP_REPEAT_3_108(m, d) NDNBOOST_PP_REPEAT_3_107(m, d) m(4, 107, d)
+# define NDNBOOST_PP_REPEAT_3_109(m, d) NDNBOOST_PP_REPEAT_3_108(m, d) m(4, 108, d)
+# define NDNBOOST_PP_REPEAT_3_110(m, d) NDNBOOST_PP_REPEAT_3_109(m, d) m(4, 109, d)
+# define NDNBOOST_PP_REPEAT_3_111(m, d) NDNBOOST_PP_REPEAT_3_110(m, d) m(4, 110, d)
+# define NDNBOOST_PP_REPEAT_3_112(m, d) NDNBOOST_PP_REPEAT_3_111(m, d) m(4, 111, d)
+# define NDNBOOST_PP_REPEAT_3_113(m, d) NDNBOOST_PP_REPEAT_3_112(m, d) m(4, 112, d)
+# define NDNBOOST_PP_REPEAT_3_114(m, d) NDNBOOST_PP_REPEAT_3_113(m, d) m(4, 113, d)
+# define NDNBOOST_PP_REPEAT_3_115(m, d) NDNBOOST_PP_REPEAT_3_114(m, d) m(4, 114, d)
+# define NDNBOOST_PP_REPEAT_3_116(m, d) NDNBOOST_PP_REPEAT_3_115(m, d) m(4, 115, d)
+# define NDNBOOST_PP_REPEAT_3_117(m, d) NDNBOOST_PP_REPEAT_3_116(m, d) m(4, 116, d)
+# define NDNBOOST_PP_REPEAT_3_118(m, d) NDNBOOST_PP_REPEAT_3_117(m, d) m(4, 117, d)
+# define NDNBOOST_PP_REPEAT_3_119(m, d) NDNBOOST_PP_REPEAT_3_118(m, d) m(4, 118, d)
+# define NDNBOOST_PP_REPEAT_3_120(m, d) NDNBOOST_PP_REPEAT_3_119(m, d) m(4, 119, d)
+# define NDNBOOST_PP_REPEAT_3_121(m, d) NDNBOOST_PP_REPEAT_3_120(m, d) m(4, 120, d)
+# define NDNBOOST_PP_REPEAT_3_122(m, d) NDNBOOST_PP_REPEAT_3_121(m, d) m(4, 121, d)
+# define NDNBOOST_PP_REPEAT_3_123(m, d) NDNBOOST_PP_REPEAT_3_122(m, d) m(4, 122, d)
+# define NDNBOOST_PP_REPEAT_3_124(m, d) NDNBOOST_PP_REPEAT_3_123(m, d) m(4, 123, d)
+# define NDNBOOST_PP_REPEAT_3_125(m, d) NDNBOOST_PP_REPEAT_3_124(m, d) m(4, 124, d)
+# define NDNBOOST_PP_REPEAT_3_126(m, d) NDNBOOST_PP_REPEAT_3_125(m, d) m(4, 125, d)
+# define NDNBOOST_PP_REPEAT_3_127(m, d) NDNBOOST_PP_REPEAT_3_126(m, d) m(4, 126, d)
+# define NDNBOOST_PP_REPEAT_3_128(m, d) NDNBOOST_PP_REPEAT_3_127(m, d) m(4, 127, d)
+# define NDNBOOST_PP_REPEAT_3_129(m, d) NDNBOOST_PP_REPEAT_3_128(m, d) m(4, 128, d)
+# define NDNBOOST_PP_REPEAT_3_130(m, d) NDNBOOST_PP_REPEAT_3_129(m, d) m(4, 129, d)
+# define NDNBOOST_PP_REPEAT_3_131(m, d) NDNBOOST_PP_REPEAT_3_130(m, d) m(4, 130, d)
+# define NDNBOOST_PP_REPEAT_3_132(m, d) NDNBOOST_PP_REPEAT_3_131(m, d) m(4, 131, d)
+# define NDNBOOST_PP_REPEAT_3_133(m, d) NDNBOOST_PP_REPEAT_3_132(m, d) m(4, 132, d)
+# define NDNBOOST_PP_REPEAT_3_134(m, d) NDNBOOST_PP_REPEAT_3_133(m, d) m(4, 133, d)
+# define NDNBOOST_PP_REPEAT_3_135(m, d) NDNBOOST_PP_REPEAT_3_134(m, d) m(4, 134, d)
+# define NDNBOOST_PP_REPEAT_3_136(m, d) NDNBOOST_PP_REPEAT_3_135(m, d) m(4, 135, d)
+# define NDNBOOST_PP_REPEAT_3_137(m, d) NDNBOOST_PP_REPEAT_3_136(m, d) m(4, 136, d)
+# define NDNBOOST_PP_REPEAT_3_138(m, d) NDNBOOST_PP_REPEAT_3_137(m, d) m(4, 137, d)
+# define NDNBOOST_PP_REPEAT_3_139(m, d) NDNBOOST_PP_REPEAT_3_138(m, d) m(4, 138, d)
+# define NDNBOOST_PP_REPEAT_3_140(m, d) NDNBOOST_PP_REPEAT_3_139(m, d) m(4, 139, d)
+# define NDNBOOST_PP_REPEAT_3_141(m, d) NDNBOOST_PP_REPEAT_3_140(m, d) m(4, 140, d)
+# define NDNBOOST_PP_REPEAT_3_142(m, d) NDNBOOST_PP_REPEAT_3_141(m, d) m(4, 141, d)
+# define NDNBOOST_PP_REPEAT_3_143(m, d) NDNBOOST_PP_REPEAT_3_142(m, d) m(4, 142, d)
+# define NDNBOOST_PP_REPEAT_3_144(m, d) NDNBOOST_PP_REPEAT_3_143(m, d) m(4, 143, d)
+# define NDNBOOST_PP_REPEAT_3_145(m, d) NDNBOOST_PP_REPEAT_3_144(m, d) m(4, 144, d)
+# define NDNBOOST_PP_REPEAT_3_146(m, d) NDNBOOST_PP_REPEAT_3_145(m, d) m(4, 145, d)
+# define NDNBOOST_PP_REPEAT_3_147(m, d) NDNBOOST_PP_REPEAT_3_146(m, d) m(4, 146, d)
+# define NDNBOOST_PP_REPEAT_3_148(m, d) NDNBOOST_PP_REPEAT_3_147(m, d) m(4, 147, d)
+# define NDNBOOST_PP_REPEAT_3_149(m, d) NDNBOOST_PP_REPEAT_3_148(m, d) m(4, 148, d)
+# define NDNBOOST_PP_REPEAT_3_150(m, d) NDNBOOST_PP_REPEAT_3_149(m, d) m(4, 149, d)
+# define NDNBOOST_PP_REPEAT_3_151(m, d) NDNBOOST_PP_REPEAT_3_150(m, d) m(4, 150, d)
+# define NDNBOOST_PP_REPEAT_3_152(m, d) NDNBOOST_PP_REPEAT_3_151(m, d) m(4, 151, d)
+# define NDNBOOST_PP_REPEAT_3_153(m, d) NDNBOOST_PP_REPEAT_3_152(m, d) m(4, 152, d)
+# define NDNBOOST_PP_REPEAT_3_154(m, d) NDNBOOST_PP_REPEAT_3_153(m, d) m(4, 153, d)
+# define NDNBOOST_PP_REPEAT_3_155(m, d) NDNBOOST_PP_REPEAT_3_154(m, d) m(4, 154, d)
+# define NDNBOOST_PP_REPEAT_3_156(m, d) NDNBOOST_PP_REPEAT_3_155(m, d) m(4, 155, d)
+# define NDNBOOST_PP_REPEAT_3_157(m, d) NDNBOOST_PP_REPEAT_3_156(m, d) m(4, 156, d)
+# define NDNBOOST_PP_REPEAT_3_158(m, d) NDNBOOST_PP_REPEAT_3_157(m, d) m(4, 157, d)
+# define NDNBOOST_PP_REPEAT_3_159(m, d) NDNBOOST_PP_REPEAT_3_158(m, d) m(4, 158, d)
+# define NDNBOOST_PP_REPEAT_3_160(m, d) NDNBOOST_PP_REPEAT_3_159(m, d) m(4, 159, d)
+# define NDNBOOST_PP_REPEAT_3_161(m, d) NDNBOOST_PP_REPEAT_3_160(m, d) m(4, 160, d)
+# define NDNBOOST_PP_REPEAT_3_162(m, d) NDNBOOST_PP_REPEAT_3_161(m, d) m(4, 161, d)
+# define NDNBOOST_PP_REPEAT_3_163(m, d) NDNBOOST_PP_REPEAT_3_162(m, d) m(4, 162, d)
+# define NDNBOOST_PP_REPEAT_3_164(m, d) NDNBOOST_PP_REPEAT_3_163(m, d) m(4, 163, d)
+# define NDNBOOST_PP_REPEAT_3_165(m, d) NDNBOOST_PP_REPEAT_3_164(m, d) m(4, 164, d)
+# define NDNBOOST_PP_REPEAT_3_166(m, d) NDNBOOST_PP_REPEAT_3_165(m, d) m(4, 165, d)
+# define NDNBOOST_PP_REPEAT_3_167(m, d) NDNBOOST_PP_REPEAT_3_166(m, d) m(4, 166, d)
+# define NDNBOOST_PP_REPEAT_3_168(m, d) NDNBOOST_PP_REPEAT_3_167(m, d) m(4, 167, d)
+# define NDNBOOST_PP_REPEAT_3_169(m, d) NDNBOOST_PP_REPEAT_3_168(m, d) m(4, 168, d)
+# define NDNBOOST_PP_REPEAT_3_170(m, d) NDNBOOST_PP_REPEAT_3_169(m, d) m(4, 169, d)
+# define NDNBOOST_PP_REPEAT_3_171(m, d) NDNBOOST_PP_REPEAT_3_170(m, d) m(4, 170, d)
+# define NDNBOOST_PP_REPEAT_3_172(m, d) NDNBOOST_PP_REPEAT_3_171(m, d) m(4, 171, d)
+# define NDNBOOST_PP_REPEAT_3_173(m, d) NDNBOOST_PP_REPEAT_3_172(m, d) m(4, 172, d)
+# define NDNBOOST_PP_REPEAT_3_174(m, d) NDNBOOST_PP_REPEAT_3_173(m, d) m(4, 173, d)
+# define NDNBOOST_PP_REPEAT_3_175(m, d) NDNBOOST_PP_REPEAT_3_174(m, d) m(4, 174, d)
+# define NDNBOOST_PP_REPEAT_3_176(m, d) NDNBOOST_PP_REPEAT_3_175(m, d) m(4, 175, d)
+# define NDNBOOST_PP_REPEAT_3_177(m, d) NDNBOOST_PP_REPEAT_3_176(m, d) m(4, 176, d)
+# define NDNBOOST_PP_REPEAT_3_178(m, d) NDNBOOST_PP_REPEAT_3_177(m, d) m(4, 177, d)
+# define NDNBOOST_PP_REPEAT_3_179(m, d) NDNBOOST_PP_REPEAT_3_178(m, d) m(4, 178, d)
+# define NDNBOOST_PP_REPEAT_3_180(m, d) NDNBOOST_PP_REPEAT_3_179(m, d) m(4, 179, d)
+# define NDNBOOST_PP_REPEAT_3_181(m, d) NDNBOOST_PP_REPEAT_3_180(m, d) m(4, 180, d)
+# define NDNBOOST_PP_REPEAT_3_182(m, d) NDNBOOST_PP_REPEAT_3_181(m, d) m(4, 181, d)
+# define NDNBOOST_PP_REPEAT_3_183(m, d) NDNBOOST_PP_REPEAT_3_182(m, d) m(4, 182, d)
+# define NDNBOOST_PP_REPEAT_3_184(m, d) NDNBOOST_PP_REPEAT_3_183(m, d) m(4, 183, d)
+# define NDNBOOST_PP_REPEAT_3_185(m, d) NDNBOOST_PP_REPEAT_3_184(m, d) m(4, 184, d)
+# define NDNBOOST_PP_REPEAT_3_186(m, d) NDNBOOST_PP_REPEAT_3_185(m, d) m(4, 185, d)
+# define NDNBOOST_PP_REPEAT_3_187(m, d) NDNBOOST_PP_REPEAT_3_186(m, d) m(4, 186, d)
+# define NDNBOOST_PP_REPEAT_3_188(m, d) NDNBOOST_PP_REPEAT_3_187(m, d) m(4, 187, d)
+# define NDNBOOST_PP_REPEAT_3_189(m, d) NDNBOOST_PP_REPEAT_3_188(m, d) m(4, 188, d)
+# define NDNBOOST_PP_REPEAT_3_190(m, d) NDNBOOST_PP_REPEAT_3_189(m, d) m(4, 189, d)
+# define NDNBOOST_PP_REPEAT_3_191(m, d) NDNBOOST_PP_REPEAT_3_190(m, d) m(4, 190, d)
+# define NDNBOOST_PP_REPEAT_3_192(m, d) NDNBOOST_PP_REPEAT_3_191(m, d) m(4, 191, d)
+# define NDNBOOST_PP_REPEAT_3_193(m, d) NDNBOOST_PP_REPEAT_3_192(m, d) m(4, 192, d)
+# define NDNBOOST_PP_REPEAT_3_194(m, d) NDNBOOST_PP_REPEAT_3_193(m, d) m(4, 193, d)
+# define NDNBOOST_PP_REPEAT_3_195(m, d) NDNBOOST_PP_REPEAT_3_194(m, d) m(4, 194, d)
+# define NDNBOOST_PP_REPEAT_3_196(m, d) NDNBOOST_PP_REPEAT_3_195(m, d) m(4, 195, d)
+# define NDNBOOST_PP_REPEAT_3_197(m, d) NDNBOOST_PP_REPEAT_3_196(m, d) m(4, 196, d)
+# define NDNBOOST_PP_REPEAT_3_198(m, d) NDNBOOST_PP_REPEAT_3_197(m, d) m(4, 197, d)
+# define NDNBOOST_PP_REPEAT_3_199(m, d) NDNBOOST_PP_REPEAT_3_198(m, d) m(4, 198, d)
+# define NDNBOOST_PP_REPEAT_3_200(m, d) NDNBOOST_PP_REPEAT_3_199(m, d) m(4, 199, d)
+# define NDNBOOST_PP_REPEAT_3_201(m, d) NDNBOOST_PP_REPEAT_3_200(m, d) m(4, 200, d)
+# define NDNBOOST_PP_REPEAT_3_202(m, d) NDNBOOST_PP_REPEAT_3_201(m, d) m(4, 201, d)
+# define NDNBOOST_PP_REPEAT_3_203(m, d) NDNBOOST_PP_REPEAT_3_202(m, d) m(4, 202, d)
+# define NDNBOOST_PP_REPEAT_3_204(m, d) NDNBOOST_PP_REPEAT_3_203(m, d) m(4, 203, d)
+# define NDNBOOST_PP_REPEAT_3_205(m, d) NDNBOOST_PP_REPEAT_3_204(m, d) m(4, 204, d)
+# define NDNBOOST_PP_REPEAT_3_206(m, d) NDNBOOST_PP_REPEAT_3_205(m, d) m(4, 205, d)
+# define NDNBOOST_PP_REPEAT_3_207(m, d) NDNBOOST_PP_REPEAT_3_206(m, d) m(4, 206, d)
+# define NDNBOOST_PP_REPEAT_3_208(m, d) NDNBOOST_PP_REPEAT_3_207(m, d) m(4, 207, d)
+# define NDNBOOST_PP_REPEAT_3_209(m, d) NDNBOOST_PP_REPEAT_3_208(m, d) m(4, 208, d)
+# define NDNBOOST_PP_REPEAT_3_210(m, d) NDNBOOST_PP_REPEAT_3_209(m, d) m(4, 209, d)
+# define NDNBOOST_PP_REPEAT_3_211(m, d) NDNBOOST_PP_REPEAT_3_210(m, d) m(4, 210, d)
+# define NDNBOOST_PP_REPEAT_3_212(m, d) NDNBOOST_PP_REPEAT_3_211(m, d) m(4, 211, d)
+# define NDNBOOST_PP_REPEAT_3_213(m, d) NDNBOOST_PP_REPEAT_3_212(m, d) m(4, 212, d)
+# define NDNBOOST_PP_REPEAT_3_214(m, d) NDNBOOST_PP_REPEAT_3_213(m, d) m(4, 213, d)
+# define NDNBOOST_PP_REPEAT_3_215(m, d) NDNBOOST_PP_REPEAT_3_214(m, d) m(4, 214, d)
+# define NDNBOOST_PP_REPEAT_3_216(m, d) NDNBOOST_PP_REPEAT_3_215(m, d) m(4, 215, d)
+# define NDNBOOST_PP_REPEAT_3_217(m, d) NDNBOOST_PP_REPEAT_3_216(m, d) m(4, 216, d)
+# define NDNBOOST_PP_REPEAT_3_218(m, d) NDNBOOST_PP_REPEAT_3_217(m, d) m(4, 217, d)
+# define NDNBOOST_PP_REPEAT_3_219(m, d) NDNBOOST_PP_REPEAT_3_218(m, d) m(4, 218, d)
+# define NDNBOOST_PP_REPEAT_3_220(m, d) NDNBOOST_PP_REPEAT_3_219(m, d) m(4, 219, d)
+# define NDNBOOST_PP_REPEAT_3_221(m, d) NDNBOOST_PP_REPEAT_3_220(m, d) m(4, 220, d)
+# define NDNBOOST_PP_REPEAT_3_222(m, d) NDNBOOST_PP_REPEAT_3_221(m, d) m(4, 221, d)
+# define NDNBOOST_PP_REPEAT_3_223(m, d) NDNBOOST_PP_REPEAT_3_222(m, d) m(4, 222, d)
+# define NDNBOOST_PP_REPEAT_3_224(m, d) NDNBOOST_PP_REPEAT_3_223(m, d) m(4, 223, d)
+# define NDNBOOST_PP_REPEAT_3_225(m, d) NDNBOOST_PP_REPEAT_3_224(m, d) m(4, 224, d)
+# define NDNBOOST_PP_REPEAT_3_226(m, d) NDNBOOST_PP_REPEAT_3_225(m, d) m(4, 225, d)
+# define NDNBOOST_PP_REPEAT_3_227(m, d) NDNBOOST_PP_REPEAT_3_226(m, d) m(4, 226, d)
+# define NDNBOOST_PP_REPEAT_3_228(m, d) NDNBOOST_PP_REPEAT_3_227(m, d) m(4, 227, d)
+# define NDNBOOST_PP_REPEAT_3_229(m, d) NDNBOOST_PP_REPEAT_3_228(m, d) m(4, 228, d)
+# define NDNBOOST_PP_REPEAT_3_230(m, d) NDNBOOST_PP_REPEAT_3_229(m, d) m(4, 229, d)
+# define NDNBOOST_PP_REPEAT_3_231(m, d) NDNBOOST_PP_REPEAT_3_230(m, d) m(4, 230, d)
+# define NDNBOOST_PP_REPEAT_3_232(m, d) NDNBOOST_PP_REPEAT_3_231(m, d) m(4, 231, d)
+# define NDNBOOST_PP_REPEAT_3_233(m, d) NDNBOOST_PP_REPEAT_3_232(m, d) m(4, 232, d)
+# define NDNBOOST_PP_REPEAT_3_234(m, d) NDNBOOST_PP_REPEAT_3_233(m, d) m(4, 233, d)
+# define NDNBOOST_PP_REPEAT_3_235(m, d) NDNBOOST_PP_REPEAT_3_234(m, d) m(4, 234, d)
+# define NDNBOOST_PP_REPEAT_3_236(m, d) NDNBOOST_PP_REPEAT_3_235(m, d) m(4, 235, d)
+# define NDNBOOST_PP_REPEAT_3_237(m, d) NDNBOOST_PP_REPEAT_3_236(m, d) m(4, 236, d)
+# define NDNBOOST_PP_REPEAT_3_238(m, d) NDNBOOST_PP_REPEAT_3_237(m, d) m(4, 237, d)
+# define NDNBOOST_PP_REPEAT_3_239(m, d) NDNBOOST_PP_REPEAT_3_238(m, d) m(4, 238, d)
+# define NDNBOOST_PP_REPEAT_3_240(m, d) NDNBOOST_PP_REPEAT_3_239(m, d) m(4, 239, d)
+# define NDNBOOST_PP_REPEAT_3_241(m, d) NDNBOOST_PP_REPEAT_3_240(m, d) m(4, 240, d)
+# define NDNBOOST_PP_REPEAT_3_242(m, d) NDNBOOST_PP_REPEAT_3_241(m, d) m(4, 241, d)
+# define NDNBOOST_PP_REPEAT_3_243(m, d) NDNBOOST_PP_REPEAT_3_242(m, d) m(4, 242, d)
+# define NDNBOOST_PP_REPEAT_3_244(m, d) NDNBOOST_PP_REPEAT_3_243(m, d) m(4, 243, d)
+# define NDNBOOST_PP_REPEAT_3_245(m, d) NDNBOOST_PP_REPEAT_3_244(m, d) m(4, 244, d)
+# define NDNBOOST_PP_REPEAT_3_246(m, d) NDNBOOST_PP_REPEAT_3_245(m, d) m(4, 245, d)
+# define NDNBOOST_PP_REPEAT_3_247(m, d) NDNBOOST_PP_REPEAT_3_246(m, d) m(4, 246, d)
+# define NDNBOOST_PP_REPEAT_3_248(m, d) NDNBOOST_PP_REPEAT_3_247(m, d) m(4, 247, d)
+# define NDNBOOST_PP_REPEAT_3_249(m, d) NDNBOOST_PP_REPEAT_3_248(m, d) m(4, 248, d)
+# define NDNBOOST_PP_REPEAT_3_250(m, d) NDNBOOST_PP_REPEAT_3_249(m, d) m(4, 249, d)
+# define NDNBOOST_PP_REPEAT_3_251(m, d) NDNBOOST_PP_REPEAT_3_250(m, d) m(4, 250, d)
+# define NDNBOOST_PP_REPEAT_3_252(m, d) NDNBOOST_PP_REPEAT_3_251(m, d) m(4, 251, d)
+# define NDNBOOST_PP_REPEAT_3_253(m, d) NDNBOOST_PP_REPEAT_3_252(m, d) m(4, 252, d)
+# define NDNBOOST_PP_REPEAT_3_254(m, d) NDNBOOST_PP_REPEAT_3_253(m, d) m(4, 253, d)
+# define NDNBOOST_PP_REPEAT_3_255(m, d) NDNBOOST_PP_REPEAT_3_254(m, d) m(4, 254, d)
+# define NDNBOOST_PP_REPEAT_3_256(m, d) NDNBOOST_PP_REPEAT_3_255(m, d) m(4, 255, d)
 #
 # endif
diff --git a/include/ndnboost/preprocessor/repetition/repeat_from_to.hpp b/include/ndnboost/preprocessor/repetition/repeat_from_to.hpp
index 6be8c70..194c5b0 100644
--- a/include/ndnboost/preprocessor/repetition/repeat_from_to.hpp
+++ b/include/ndnboost/preprocessor/repetition/repeat_from_to.hpp
@@ -11,8 +11,8 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_REPETITION_REPEAT_FROM_TO_HPP
-# define BOOST_PREPROCESSOR_REPETITION_REPEAT_FROM_TO_HPP
+# ifndef NDNBOOST_PREPROCESSOR_REPETITION_REPEAT_FROM_TO_HPP
+# define NDNBOOST_PREPROCESSOR_REPETITION_REPEAT_FROM_TO_HPP
 #
 # include <ndnboost/preprocessor/arithmetic/add.hpp>
 # include <ndnboost/preprocessor/arithmetic/sub.hpp>
@@ -25,63 +25,63 @@
 # include <ndnboost/preprocessor/tuple/elem.hpp>
 # include <ndnboost/preprocessor/tuple/rem.hpp>
 #
-# /* BOOST_PP_REPEAT_FROM_TO */
+# /* NDNBOOST_PP_REPEAT_FROM_TO */
 #
 # if 0
-#    define BOOST_PP_REPEAT_FROM_TO(first, last, macro, data)
+#    define NDNBOOST_PP_REPEAT_FROM_TO(first, last, macro, data)
 # endif
 #
-# define BOOST_PP_REPEAT_FROM_TO BOOST_PP_CAT(BOOST_PP_REPEAT_FROM_TO_, BOOST_PP_AUTO_REC(BOOST_PP_REPEAT_P, 4))
+# define NDNBOOST_PP_REPEAT_FROM_TO NDNBOOST_PP_CAT(NDNBOOST_PP_REPEAT_FROM_TO_, NDNBOOST_PP_AUTO_REC(NDNBOOST_PP_REPEAT_P, 4))
 #
-# define BOOST_PP_REPEAT_FROM_TO_1(f, l, m, dt) BOOST_PP_REPEAT_FROM_TO_D_1(BOOST_PP_AUTO_REC(BOOST_PP_WHILE_P, 256), f, l, m, dt)
-# define BOOST_PP_REPEAT_FROM_TO_2(f, l, m, dt) BOOST_PP_REPEAT_FROM_TO_D_2(BOOST_PP_AUTO_REC(BOOST_PP_WHILE_P, 256), f, l, m, dt)
-# define BOOST_PP_REPEAT_FROM_TO_3(f, l, m, dt) BOOST_PP_REPEAT_FROM_TO_D_3(BOOST_PP_AUTO_REC(BOOST_PP_WHILE_P, 256), f, l, m, dt)
-# define BOOST_PP_REPEAT_FROM_TO_4(f, l, m, dt) BOOST_PP_ERROR(0x0003)
+# define NDNBOOST_PP_REPEAT_FROM_TO_1(f, l, m, dt) NDNBOOST_PP_REPEAT_FROM_TO_D_1(NDNBOOST_PP_AUTO_REC(NDNBOOST_PP_WHILE_P, 256), f, l, m, dt)
+# define NDNBOOST_PP_REPEAT_FROM_TO_2(f, l, m, dt) NDNBOOST_PP_REPEAT_FROM_TO_D_2(NDNBOOST_PP_AUTO_REC(NDNBOOST_PP_WHILE_P, 256), f, l, m, dt)
+# define NDNBOOST_PP_REPEAT_FROM_TO_3(f, l, m, dt) NDNBOOST_PP_REPEAT_FROM_TO_D_3(NDNBOOST_PP_AUTO_REC(NDNBOOST_PP_WHILE_P, 256), f, l, m, dt)
+# define NDNBOOST_PP_REPEAT_FROM_TO_4(f, l, m, dt) NDNBOOST_PP_ERROR(0x0003)
 #
-# define BOOST_PP_REPEAT_FROM_TO_1ST BOOST_PP_REPEAT_FROM_TO_1
-# define BOOST_PP_REPEAT_FROM_TO_2ND BOOST_PP_REPEAT_FROM_TO_2
-# define BOOST_PP_REPEAT_FROM_TO_3RD BOOST_PP_REPEAT_FROM_TO_3
+# define NDNBOOST_PP_REPEAT_FROM_TO_1ST NDNBOOST_PP_REPEAT_FROM_TO_1
+# define NDNBOOST_PP_REPEAT_FROM_TO_2ND NDNBOOST_PP_REPEAT_FROM_TO_2
+# define NDNBOOST_PP_REPEAT_FROM_TO_3RD NDNBOOST_PP_REPEAT_FROM_TO_3
 #
-# /* BOOST_PP_REPEAT_FROM_TO_D */
+# /* NDNBOOST_PP_REPEAT_FROM_TO_D */
 #
 # if 0
-#    define BOOST_PP_REPEAT_FROM_TO_D(d, first, last, macro, data)
+#    define NDNBOOST_PP_REPEAT_FROM_TO_D(d, first, last, macro, data)
 # endif
 #
-# define BOOST_PP_REPEAT_FROM_TO_D BOOST_PP_CAT(BOOST_PP_REPEAT_FROM_TO_D_, BOOST_PP_AUTO_REC(BOOST_PP_REPEAT_P, 4))
+# define NDNBOOST_PP_REPEAT_FROM_TO_D NDNBOOST_PP_CAT(NDNBOOST_PP_REPEAT_FROM_TO_D_, NDNBOOST_PP_AUTO_REC(NDNBOOST_PP_REPEAT_P, 4))
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_REPEAT_FROM_TO_D_1(d, f, l, m, dt) BOOST_PP_REPEAT_1(BOOST_PP_SUB_D(d, l, f), BOOST_PP_REPEAT_FROM_TO_M_1, (d, f, m, dt))
-#    define BOOST_PP_REPEAT_FROM_TO_D_2(d, f, l, m, dt) BOOST_PP_REPEAT_2(BOOST_PP_SUB_D(d, l, f), BOOST_PP_REPEAT_FROM_TO_M_2, (d, f, m, dt))
-#    define BOOST_PP_REPEAT_FROM_TO_D_3(d, f, l, m, dt) BOOST_PP_REPEAT_3(BOOST_PP_SUB_D(d, l, f), BOOST_PP_REPEAT_FROM_TO_M_3, (d, f, m, dt))
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_REPEAT_FROM_TO_D_1(d, f, l, m, dt) NDNBOOST_PP_REPEAT_1(NDNBOOST_PP_SUB_D(d, l, f), NDNBOOST_PP_REPEAT_FROM_TO_M_1, (d, f, m, dt))
+#    define NDNBOOST_PP_REPEAT_FROM_TO_D_2(d, f, l, m, dt) NDNBOOST_PP_REPEAT_2(NDNBOOST_PP_SUB_D(d, l, f), NDNBOOST_PP_REPEAT_FROM_TO_M_2, (d, f, m, dt))
+#    define NDNBOOST_PP_REPEAT_FROM_TO_D_3(d, f, l, m, dt) NDNBOOST_PP_REPEAT_3(NDNBOOST_PP_SUB_D(d, l, f), NDNBOOST_PP_REPEAT_FROM_TO_M_3, (d, f, m, dt))
 # else
-#    define BOOST_PP_REPEAT_FROM_TO_D_1(d, f, l, m, dt) BOOST_PP_REPEAT_FROM_TO_D_1_I(d, f, l, m, dt)
-#    define BOOST_PP_REPEAT_FROM_TO_D_2(d, f, l, m, dt) BOOST_PP_REPEAT_FROM_TO_D_2_I(d, f, l, m, dt)
-#    define BOOST_PP_REPEAT_FROM_TO_D_3(d, f, l, m, dt) BOOST_PP_REPEAT_FROM_TO_D_3_I(d, f, l, m, dt)
-#    define BOOST_PP_REPEAT_FROM_TO_D_1_I(d, f, l, m, dt) BOOST_PP_REPEAT_1(BOOST_PP_SUB_D(d, l, f), BOOST_PP_REPEAT_FROM_TO_M_1, (d, f, m, dt))
-#    define BOOST_PP_REPEAT_FROM_TO_D_2_I(d, f, l, m, dt) BOOST_PP_REPEAT_2(BOOST_PP_SUB_D(d, l, f), BOOST_PP_REPEAT_FROM_TO_M_2, (d, f, m, dt))
-#    define BOOST_PP_REPEAT_FROM_TO_D_3_I(d, f, l, m, dt) BOOST_PP_REPEAT_3(BOOST_PP_SUB_D(d, l, f), BOOST_PP_REPEAT_FROM_TO_M_3, (d, f, m, dt))
+#    define NDNBOOST_PP_REPEAT_FROM_TO_D_1(d, f, l, m, dt) NDNBOOST_PP_REPEAT_FROM_TO_D_1_I(d, f, l, m, dt)
+#    define NDNBOOST_PP_REPEAT_FROM_TO_D_2(d, f, l, m, dt) NDNBOOST_PP_REPEAT_FROM_TO_D_2_I(d, f, l, m, dt)
+#    define NDNBOOST_PP_REPEAT_FROM_TO_D_3(d, f, l, m, dt) NDNBOOST_PP_REPEAT_FROM_TO_D_3_I(d, f, l, m, dt)
+#    define NDNBOOST_PP_REPEAT_FROM_TO_D_1_I(d, f, l, m, dt) NDNBOOST_PP_REPEAT_1(NDNBOOST_PP_SUB_D(d, l, f), NDNBOOST_PP_REPEAT_FROM_TO_M_1, (d, f, m, dt))
+#    define NDNBOOST_PP_REPEAT_FROM_TO_D_2_I(d, f, l, m, dt) NDNBOOST_PP_REPEAT_2(NDNBOOST_PP_SUB_D(d, l, f), NDNBOOST_PP_REPEAT_FROM_TO_M_2, (d, f, m, dt))
+#    define NDNBOOST_PP_REPEAT_FROM_TO_D_3_I(d, f, l, m, dt) NDNBOOST_PP_REPEAT_3(NDNBOOST_PP_SUB_D(d, l, f), NDNBOOST_PP_REPEAT_FROM_TO_M_3, (d, f, m, dt))
 # endif
 #
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
-#    define BOOST_PP_REPEAT_FROM_TO_M_1(z, n, dfmd) BOOST_PP_REPEAT_FROM_TO_M_1_IM(z, n, BOOST_PP_TUPLE_REM_4 dfmd)
-#    define BOOST_PP_REPEAT_FROM_TO_M_2(z, n, dfmd) BOOST_PP_REPEAT_FROM_TO_M_2_IM(z, n, BOOST_PP_TUPLE_REM_4 dfmd)
-#    define BOOST_PP_REPEAT_FROM_TO_M_3(z, n, dfmd) BOOST_PP_REPEAT_FROM_TO_M_3_IM(z, n, BOOST_PP_TUPLE_REM_4 dfmd)
-#    define BOOST_PP_REPEAT_FROM_TO_M_1_IM(z, n, im) BOOST_PP_REPEAT_FROM_TO_M_1_I(z, n, im)
-#    define BOOST_PP_REPEAT_FROM_TO_M_2_IM(z, n, im) BOOST_PP_REPEAT_FROM_TO_M_2_I(z, n, im)
-#    define BOOST_PP_REPEAT_FROM_TO_M_3_IM(z, n, im) BOOST_PP_REPEAT_FROM_TO_M_3_I(z, n, im)
+# if NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_STRICT()
+#    define NDNBOOST_PP_REPEAT_FROM_TO_M_1(z, n, dfmd) NDNBOOST_PP_REPEAT_FROM_TO_M_1_IM(z, n, NDNBOOST_PP_TUPLE_REM_4 dfmd)
+#    define NDNBOOST_PP_REPEAT_FROM_TO_M_2(z, n, dfmd) NDNBOOST_PP_REPEAT_FROM_TO_M_2_IM(z, n, NDNBOOST_PP_TUPLE_REM_4 dfmd)
+#    define NDNBOOST_PP_REPEAT_FROM_TO_M_3(z, n, dfmd) NDNBOOST_PP_REPEAT_FROM_TO_M_3_IM(z, n, NDNBOOST_PP_TUPLE_REM_4 dfmd)
+#    define NDNBOOST_PP_REPEAT_FROM_TO_M_1_IM(z, n, im) NDNBOOST_PP_REPEAT_FROM_TO_M_1_I(z, n, im)
+#    define NDNBOOST_PP_REPEAT_FROM_TO_M_2_IM(z, n, im) NDNBOOST_PP_REPEAT_FROM_TO_M_2_I(z, n, im)
+#    define NDNBOOST_PP_REPEAT_FROM_TO_M_3_IM(z, n, im) NDNBOOST_PP_REPEAT_FROM_TO_M_3_I(z, n, im)
 # else
-#    define BOOST_PP_REPEAT_FROM_TO_M_1(z, n, dfmd) BOOST_PP_REPEAT_FROM_TO_M_1_I(z, n, BOOST_PP_TUPLE_ELEM(4, 0, dfmd), BOOST_PP_TUPLE_ELEM(4, 1, dfmd), BOOST_PP_TUPLE_ELEM(4, 2, dfmd), BOOST_PP_TUPLE_ELEM(4, 3, dfmd))
-#    define BOOST_PP_REPEAT_FROM_TO_M_2(z, n, dfmd) BOOST_PP_REPEAT_FROM_TO_M_2_I(z, n, BOOST_PP_TUPLE_ELEM(4, 0, dfmd), BOOST_PP_TUPLE_ELEM(4, 1, dfmd), BOOST_PP_TUPLE_ELEM(4, 2, dfmd), BOOST_PP_TUPLE_ELEM(4, 3, dfmd))
-#    define BOOST_PP_REPEAT_FROM_TO_M_3(z, n, dfmd) BOOST_PP_REPEAT_FROM_TO_M_3_I(z, n, BOOST_PP_TUPLE_ELEM(4, 0, dfmd), BOOST_PP_TUPLE_ELEM(4, 1, dfmd), BOOST_PP_TUPLE_ELEM(4, 2, dfmd), BOOST_PP_TUPLE_ELEM(4, 3, dfmd))
+#    define NDNBOOST_PP_REPEAT_FROM_TO_M_1(z, n, dfmd) NDNBOOST_PP_REPEAT_FROM_TO_M_1_I(z, n, NDNBOOST_PP_TUPLE_ELEM(4, 0, dfmd), NDNBOOST_PP_TUPLE_ELEM(4, 1, dfmd), NDNBOOST_PP_TUPLE_ELEM(4, 2, dfmd), NDNBOOST_PP_TUPLE_ELEM(4, 3, dfmd))
+#    define NDNBOOST_PP_REPEAT_FROM_TO_M_2(z, n, dfmd) NDNBOOST_PP_REPEAT_FROM_TO_M_2_I(z, n, NDNBOOST_PP_TUPLE_ELEM(4, 0, dfmd), NDNBOOST_PP_TUPLE_ELEM(4, 1, dfmd), NDNBOOST_PP_TUPLE_ELEM(4, 2, dfmd), NDNBOOST_PP_TUPLE_ELEM(4, 3, dfmd))
+#    define NDNBOOST_PP_REPEAT_FROM_TO_M_3(z, n, dfmd) NDNBOOST_PP_REPEAT_FROM_TO_M_3_I(z, n, NDNBOOST_PP_TUPLE_ELEM(4, 0, dfmd), NDNBOOST_PP_TUPLE_ELEM(4, 1, dfmd), NDNBOOST_PP_TUPLE_ELEM(4, 2, dfmd), NDNBOOST_PP_TUPLE_ELEM(4, 3, dfmd))
 # endif
 #
-# define BOOST_PP_REPEAT_FROM_TO_M_1_I(z, n, d, f, m, dt) BOOST_PP_REPEAT_FROM_TO_M_1_II(z, BOOST_PP_ADD_D(d, n, f), m, dt)
-# define BOOST_PP_REPEAT_FROM_TO_M_2_I(z, n, d, f, m, dt) BOOST_PP_REPEAT_FROM_TO_M_2_II(z, BOOST_PP_ADD_D(d, n, f), m, dt)
-# define BOOST_PP_REPEAT_FROM_TO_M_3_I(z, n, d, f, m, dt) BOOST_PP_REPEAT_FROM_TO_M_3_II(z, BOOST_PP_ADD_D(d, n, f), m, dt)
+# define NDNBOOST_PP_REPEAT_FROM_TO_M_1_I(z, n, d, f, m, dt) NDNBOOST_PP_REPEAT_FROM_TO_M_1_II(z, NDNBOOST_PP_ADD_D(d, n, f), m, dt)
+# define NDNBOOST_PP_REPEAT_FROM_TO_M_2_I(z, n, d, f, m, dt) NDNBOOST_PP_REPEAT_FROM_TO_M_2_II(z, NDNBOOST_PP_ADD_D(d, n, f), m, dt)
+# define NDNBOOST_PP_REPEAT_FROM_TO_M_3_I(z, n, d, f, m, dt) NDNBOOST_PP_REPEAT_FROM_TO_M_3_II(z, NDNBOOST_PP_ADD_D(d, n, f), m, dt)
 #
-# define BOOST_PP_REPEAT_FROM_TO_M_1_II(z, n, m, dt) m(z, n, dt)
-# define BOOST_PP_REPEAT_FROM_TO_M_2_II(z, n, m, dt) m(z, n, dt)
-# define BOOST_PP_REPEAT_FROM_TO_M_3_II(z, n, m, dt) m(z, n, dt)
+# define NDNBOOST_PP_REPEAT_FROM_TO_M_1_II(z, n, m, dt) m(z, n, dt)
+# define NDNBOOST_PP_REPEAT_FROM_TO_M_2_II(z, n, m, dt) m(z, n, dt)
+# define NDNBOOST_PP_REPEAT_FROM_TO_M_3_II(z, n, m, dt) m(z, n, dt)
 #
 # endif
diff --git a/include/ndnboost/preprocessor/seq/cat.hpp b/include/ndnboost/preprocessor/seq/cat.hpp
index e0b1046..1e689b1 100644
--- a/include/ndnboost/preprocessor/seq/cat.hpp
+++ b/include/ndnboost/preprocessor/seq/cat.hpp
@@ -9,8 +9,8 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_SEQ_CAT_HPP
-# define BOOST_PREPROCESSOR_SEQ_CAT_HPP
+# ifndef NDNBOOST_PREPROCESSOR_SEQ_CAT_HPP
+# define NDNBOOST_PREPROCESSOR_SEQ_CAT_HPP
 #
 # include <ndnboost/preprocessor/arithmetic/dec.hpp>
 # include <ndnboost/preprocessor/config/config.hpp>
@@ -20,30 +20,30 @@
 # include <ndnboost/preprocessor/seq/size.hpp>
 # include <ndnboost/preprocessor/tuple/eat.hpp>
 #
-# /* BOOST_PP_SEQ_CAT */
+# /* NDNBOOST_PP_SEQ_CAT */
 #
-# define BOOST_PP_SEQ_CAT(seq) \
-    BOOST_PP_IF( \
-        BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(seq)), \
-        BOOST_PP_SEQ_CAT_I, \
-        BOOST_PP_SEQ_HEAD \
+# define NDNBOOST_PP_SEQ_CAT(seq) \
+    NDNBOOST_PP_IF( \
+        NDNBOOST_PP_DEC(NDNBOOST_PP_SEQ_SIZE(seq)), \
+        NDNBOOST_PP_SEQ_CAT_I, \
+        NDNBOOST_PP_SEQ_HEAD \
     )(seq) \
     /**/
-# define BOOST_PP_SEQ_CAT_I(seq) BOOST_PP_SEQ_FOLD_LEFT(BOOST_PP_SEQ_CAT_O, BOOST_PP_SEQ_HEAD(seq), BOOST_PP_SEQ_TAIL(seq))
+# define NDNBOOST_PP_SEQ_CAT_I(seq) NDNBOOST_PP_SEQ_FOLD_LEFT(NDNBOOST_PP_SEQ_CAT_O, NDNBOOST_PP_SEQ_HEAD(seq), NDNBOOST_PP_SEQ_TAIL(seq))
 #
-# define BOOST_PP_SEQ_CAT_O(s, st, elem) BOOST_PP_SEQ_CAT_O_I(st, elem)
-# define BOOST_PP_SEQ_CAT_O_I(a, b) a ## b
+# define NDNBOOST_PP_SEQ_CAT_O(s, st, elem) NDNBOOST_PP_SEQ_CAT_O_I(st, elem)
+# define NDNBOOST_PP_SEQ_CAT_O_I(a, b) a ## b
 #
-# /* BOOST_PP_SEQ_CAT_S */
+# /* NDNBOOST_PP_SEQ_CAT_S */
 #
-# define BOOST_PP_SEQ_CAT_S(s, seq) \
-    BOOST_PP_IF( \
-        BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(seq)), \
-        BOOST_PP_SEQ_CAT_S_I_A, \
-        BOOST_PP_SEQ_CAT_S_I_B \
+# define NDNBOOST_PP_SEQ_CAT_S(s, seq) \
+    NDNBOOST_PP_IF( \
+        NDNBOOST_PP_DEC(NDNBOOST_PP_SEQ_SIZE(seq)), \
+        NDNBOOST_PP_SEQ_CAT_S_I_A, \
+        NDNBOOST_PP_SEQ_CAT_S_I_B \
     )(s, seq) \
     /**/
-# define BOOST_PP_SEQ_CAT_S_I_A(s, seq) BOOST_PP_SEQ_FOLD_LEFT_ ## s(BOOST_PP_SEQ_CAT_O, BOOST_PP_SEQ_HEAD(seq), BOOST_PP_SEQ_TAIL(seq))
-# define BOOST_PP_SEQ_CAT_S_I_B(s, seq) BOOST_PP_SEQ_HEAD(seq)
+# define NDNBOOST_PP_SEQ_CAT_S_I_A(s, seq) NDNBOOST_PP_SEQ_FOLD_LEFT_ ## s(NDNBOOST_PP_SEQ_CAT_O, NDNBOOST_PP_SEQ_HEAD(seq), NDNBOOST_PP_SEQ_TAIL(seq))
+# define NDNBOOST_PP_SEQ_CAT_S_I_B(s, seq) NDNBOOST_PP_SEQ_HEAD(seq)
 #
 # endif
diff --git a/include/ndnboost/preprocessor/seq/detail/split.hpp b/include/ndnboost/preprocessor/seq/detail/split.hpp
index 2a56280..8e833ad 100644
--- a/include/ndnboost/preprocessor/seq/detail/split.hpp
+++ b/include/ndnboost/preprocessor/seq/detail/split.hpp
@@ -9,276 +9,276 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_SEQ_DETAIL_SPLIT_HPP
-# define BOOST_PREPROCESSOR_SEQ_DETAIL_SPLIT_HPP
+# ifndef NDNBOOST_PREPROCESSOR_SEQ_DETAIL_SPLIT_HPP
+# define NDNBOOST_PREPROCESSOR_SEQ_DETAIL_SPLIT_HPP
 #
 # include <ndnboost/preprocessor/config/config.hpp>
 #
-# /* BOOST_PP_SEQ_SPLIT */
+# /* NDNBOOST_PP_SEQ_SPLIT */
 #
-# define BOOST_PP_SEQ_SPLIT(n, seq) BOOST_PP_SEQ_SPLIT_D(n, seq)
+# define NDNBOOST_PP_SEQ_SPLIT(n, seq) NDNBOOST_PP_SEQ_SPLIT_D(n, seq)
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_SEQ_SPLIT_D(n, seq) (BOOST_PP_SEQ_SPLIT_ ## n seq)
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MWCC()
+#    define NDNBOOST_PP_SEQ_SPLIT_D(n, seq) (NDNBOOST_PP_SEQ_SPLIT_ ## n seq)
 # else
-#    define BOOST_PP_SEQ_SPLIT_D(n, seq) (BOOST_PP_SEQ_SPLIT_ ## n ## seq)
+#    define NDNBOOST_PP_SEQ_SPLIT_D(n, seq) (NDNBOOST_PP_SEQ_SPLIT_ ## n ## seq)
 # endif
 #
-# define BOOST_PP_SEQ_SPLIT_1(x) (x),
-# define BOOST_PP_SEQ_SPLIT_2(x) (x) BOOST_PP_SEQ_SPLIT_1
-# define BOOST_PP_SEQ_SPLIT_3(x) (x) BOOST_PP_SEQ_SPLIT_2
-# define BOOST_PP_SEQ_SPLIT_4(x) (x) BOOST_PP_SEQ_SPLIT_3
-# define BOOST_PP_SEQ_SPLIT_5(x) (x) BOOST_PP_SEQ_SPLIT_4
-# define BOOST_PP_SEQ_SPLIT_6(x) (x) BOOST_PP_SEQ_SPLIT_5
-# define BOOST_PP_SEQ_SPLIT_7(x) (x) BOOST_PP_SEQ_SPLIT_6
-# define BOOST_PP_SEQ_SPLIT_8(x) (x) BOOST_PP_SEQ_SPLIT_7
-# define BOOST_PP_SEQ_SPLIT_9(x) (x) BOOST_PP_SEQ_SPLIT_8
-# define BOOST_PP_SEQ_SPLIT_10(x) (x) BOOST_PP_SEQ_SPLIT_9
-# define BOOST_PP_SEQ_SPLIT_11(x) (x) BOOST_PP_SEQ_SPLIT_10
-# define BOOST_PP_SEQ_SPLIT_12(x) (x) BOOST_PP_SEQ_SPLIT_11
-# define BOOST_PP_SEQ_SPLIT_13(x) (x) BOOST_PP_SEQ_SPLIT_12
-# define BOOST_PP_SEQ_SPLIT_14(x) (x) BOOST_PP_SEQ_SPLIT_13
-# define BOOST_PP_SEQ_SPLIT_15(x) (x) BOOST_PP_SEQ_SPLIT_14
-# define BOOST_PP_SEQ_SPLIT_16(x) (x) BOOST_PP_SEQ_SPLIT_15
-# define BOOST_PP_SEQ_SPLIT_17(x) (x) BOOST_PP_SEQ_SPLIT_16
-# define BOOST_PP_SEQ_SPLIT_18(x) (x) BOOST_PP_SEQ_SPLIT_17
-# define BOOST_PP_SEQ_SPLIT_19(x) (x) BOOST_PP_SEQ_SPLIT_18
-# define BOOST_PP_SEQ_SPLIT_20(x) (x) BOOST_PP_SEQ_SPLIT_19
-# define BOOST_PP_SEQ_SPLIT_21(x) (x) BOOST_PP_SEQ_SPLIT_20
-# define BOOST_PP_SEQ_SPLIT_22(x) (x) BOOST_PP_SEQ_SPLIT_21
-# define BOOST_PP_SEQ_SPLIT_23(x) (x) BOOST_PP_SEQ_SPLIT_22
-# define BOOST_PP_SEQ_SPLIT_24(x) (x) BOOST_PP_SEQ_SPLIT_23
-# define BOOST_PP_SEQ_SPLIT_25(x) (x) BOOST_PP_SEQ_SPLIT_24
-# define BOOST_PP_SEQ_SPLIT_26(x) (x) BOOST_PP_SEQ_SPLIT_25
-# define BOOST_PP_SEQ_SPLIT_27(x) (x) BOOST_PP_SEQ_SPLIT_26
-# define BOOST_PP_SEQ_SPLIT_28(x) (x) BOOST_PP_SEQ_SPLIT_27
-# define BOOST_PP_SEQ_SPLIT_29(x) (x) BOOST_PP_SEQ_SPLIT_28
-# define BOOST_PP_SEQ_SPLIT_30(x) (x) BOOST_PP_SEQ_SPLIT_29
-# define BOOST_PP_SEQ_SPLIT_31(x) (x) BOOST_PP_SEQ_SPLIT_30
-# define BOOST_PP_SEQ_SPLIT_32(x) (x) BOOST_PP_SEQ_SPLIT_31
-# define BOOST_PP_SEQ_SPLIT_33(x) (x) BOOST_PP_SEQ_SPLIT_32
-# define BOOST_PP_SEQ_SPLIT_34(x) (x) BOOST_PP_SEQ_SPLIT_33
-# define BOOST_PP_SEQ_SPLIT_35(x) (x) BOOST_PP_SEQ_SPLIT_34
-# define BOOST_PP_SEQ_SPLIT_36(x) (x) BOOST_PP_SEQ_SPLIT_35
-# define BOOST_PP_SEQ_SPLIT_37(x) (x) BOOST_PP_SEQ_SPLIT_36
-# define BOOST_PP_SEQ_SPLIT_38(x) (x) BOOST_PP_SEQ_SPLIT_37
-# define BOOST_PP_SEQ_SPLIT_39(x) (x) BOOST_PP_SEQ_SPLIT_38
-# define BOOST_PP_SEQ_SPLIT_40(x) (x) BOOST_PP_SEQ_SPLIT_39
-# define BOOST_PP_SEQ_SPLIT_41(x) (x) BOOST_PP_SEQ_SPLIT_40
-# define BOOST_PP_SEQ_SPLIT_42(x) (x) BOOST_PP_SEQ_SPLIT_41
-# define BOOST_PP_SEQ_SPLIT_43(x) (x) BOOST_PP_SEQ_SPLIT_42
-# define BOOST_PP_SEQ_SPLIT_44(x) (x) BOOST_PP_SEQ_SPLIT_43
-# define BOOST_PP_SEQ_SPLIT_45(x) (x) BOOST_PP_SEQ_SPLIT_44
-# define BOOST_PP_SEQ_SPLIT_46(x) (x) BOOST_PP_SEQ_SPLIT_45
-# define BOOST_PP_SEQ_SPLIT_47(x) (x) BOOST_PP_SEQ_SPLIT_46
-# define BOOST_PP_SEQ_SPLIT_48(x) (x) BOOST_PP_SEQ_SPLIT_47
-# define BOOST_PP_SEQ_SPLIT_49(x) (x) BOOST_PP_SEQ_SPLIT_48
-# define BOOST_PP_SEQ_SPLIT_50(x) (x) BOOST_PP_SEQ_SPLIT_49
-# define BOOST_PP_SEQ_SPLIT_51(x) (x) BOOST_PP_SEQ_SPLIT_50
-# define BOOST_PP_SEQ_SPLIT_52(x) (x) BOOST_PP_SEQ_SPLIT_51
-# define BOOST_PP_SEQ_SPLIT_53(x) (x) BOOST_PP_SEQ_SPLIT_52
-# define BOOST_PP_SEQ_SPLIT_54(x) (x) BOOST_PP_SEQ_SPLIT_53
-# define BOOST_PP_SEQ_SPLIT_55(x) (x) BOOST_PP_SEQ_SPLIT_54
-# define BOOST_PP_SEQ_SPLIT_56(x) (x) BOOST_PP_SEQ_SPLIT_55
-# define BOOST_PP_SEQ_SPLIT_57(x) (x) BOOST_PP_SEQ_SPLIT_56
-# define BOOST_PP_SEQ_SPLIT_58(x) (x) BOOST_PP_SEQ_SPLIT_57
-# define BOOST_PP_SEQ_SPLIT_59(x) (x) BOOST_PP_SEQ_SPLIT_58
-# define BOOST_PP_SEQ_SPLIT_60(x) (x) BOOST_PP_SEQ_SPLIT_59
-# define BOOST_PP_SEQ_SPLIT_61(x) (x) BOOST_PP_SEQ_SPLIT_60
-# define BOOST_PP_SEQ_SPLIT_62(x) (x) BOOST_PP_SEQ_SPLIT_61
-# define BOOST_PP_SEQ_SPLIT_63(x) (x) BOOST_PP_SEQ_SPLIT_62
-# define BOOST_PP_SEQ_SPLIT_64(x) (x) BOOST_PP_SEQ_SPLIT_63
-# define BOOST_PP_SEQ_SPLIT_65(x) (x) BOOST_PP_SEQ_SPLIT_64
-# define BOOST_PP_SEQ_SPLIT_66(x) (x) BOOST_PP_SEQ_SPLIT_65
-# define BOOST_PP_SEQ_SPLIT_67(x) (x) BOOST_PP_SEQ_SPLIT_66
-# define BOOST_PP_SEQ_SPLIT_68(x) (x) BOOST_PP_SEQ_SPLIT_67
-# define BOOST_PP_SEQ_SPLIT_69(x) (x) BOOST_PP_SEQ_SPLIT_68
-# define BOOST_PP_SEQ_SPLIT_70(x) (x) BOOST_PP_SEQ_SPLIT_69
-# define BOOST_PP_SEQ_SPLIT_71(x) (x) BOOST_PP_SEQ_SPLIT_70
-# define BOOST_PP_SEQ_SPLIT_72(x) (x) BOOST_PP_SEQ_SPLIT_71
-# define BOOST_PP_SEQ_SPLIT_73(x) (x) BOOST_PP_SEQ_SPLIT_72
-# define BOOST_PP_SEQ_SPLIT_74(x) (x) BOOST_PP_SEQ_SPLIT_73
-# define BOOST_PP_SEQ_SPLIT_75(x) (x) BOOST_PP_SEQ_SPLIT_74
-# define BOOST_PP_SEQ_SPLIT_76(x) (x) BOOST_PP_SEQ_SPLIT_75
-# define BOOST_PP_SEQ_SPLIT_77(x) (x) BOOST_PP_SEQ_SPLIT_76
-# define BOOST_PP_SEQ_SPLIT_78(x) (x) BOOST_PP_SEQ_SPLIT_77
-# define BOOST_PP_SEQ_SPLIT_79(x) (x) BOOST_PP_SEQ_SPLIT_78
-# define BOOST_PP_SEQ_SPLIT_80(x) (x) BOOST_PP_SEQ_SPLIT_79
-# define BOOST_PP_SEQ_SPLIT_81(x) (x) BOOST_PP_SEQ_SPLIT_80
-# define BOOST_PP_SEQ_SPLIT_82(x) (x) BOOST_PP_SEQ_SPLIT_81
-# define BOOST_PP_SEQ_SPLIT_83(x) (x) BOOST_PP_SEQ_SPLIT_82
-# define BOOST_PP_SEQ_SPLIT_84(x) (x) BOOST_PP_SEQ_SPLIT_83
-# define BOOST_PP_SEQ_SPLIT_85(x) (x) BOOST_PP_SEQ_SPLIT_84
-# define BOOST_PP_SEQ_SPLIT_86(x) (x) BOOST_PP_SEQ_SPLIT_85
-# define BOOST_PP_SEQ_SPLIT_87(x) (x) BOOST_PP_SEQ_SPLIT_86
-# define BOOST_PP_SEQ_SPLIT_88(x) (x) BOOST_PP_SEQ_SPLIT_87
-# define BOOST_PP_SEQ_SPLIT_89(x) (x) BOOST_PP_SEQ_SPLIT_88
-# define BOOST_PP_SEQ_SPLIT_90(x) (x) BOOST_PP_SEQ_SPLIT_89
-# define BOOST_PP_SEQ_SPLIT_91(x) (x) BOOST_PP_SEQ_SPLIT_90
-# define BOOST_PP_SEQ_SPLIT_92(x) (x) BOOST_PP_SEQ_SPLIT_91
-# define BOOST_PP_SEQ_SPLIT_93(x) (x) BOOST_PP_SEQ_SPLIT_92
-# define BOOST_PP_SEQ_SPLIT_94(x) (x) BOOST_PP_SEQ_SPLIT_93
-# define BOOST_PP_SEQ_SPLIT_95(x) (x) BOOST_PP_SEQ_SPLIT_94
-# define BOOST_PP_SEQ_SPLIT_96(x) (x) BOOST_PP_SEQ_SPLIT_95
-# define BOOST_PP_SEQ_SPLIT_97(x) (x) BOOST_PP_SEQ_SPLIT_96
-# define BOOST_PP_SEQ_SPLIT_98(x) (x) BOOST_PP_SEQ_SPLIT_97
-# define BOOST_PP_SEQ_SPLIT_99(x) (x) BOOST_PP_SEQ_SPLIT_98
-# define BOOST_PP_SEQ_SPLIT_100(x) (x) BOOST_PP_SEQ_SPLIT_99
-# define BOOST_PP_SEQ_SPLIT_101(x) (x) BOOST_PP_SEQ_SPLIT_100
-# define BOOST_PP_SEQ_SPLIT_102(x) (x) BOOST_PP_SEQ_SPLIT_101
-# define BOOST_PP_SEQ_SPLIT_103(x) (x) BOOST_PP_SEQ_SPLIT_102
-# define BOOST_PP_SEQ_SPLIT_104(x) (x) BOOST_PP_SEQ_SPLIT_103
-# define BOOST_PP_SEQ_SPLIT_105(x) (x) BOOST_PP_SEQ_SPLIT_104
-# define BOOST_PP_SEQ_SPLIT_106(x) (x) BOOST_PP_SEQ_SPLIT_105
-# define BOOST_PP_SEQ_SPLIT_107(x) (x) BOOST_PP_SEQ_SPLIT_106
-# define BOOST_PP_SEQ_SPLIT_108(x) (x) BOOST_PP_SEQ_SPLIT_107
-# define BOOST_PP_SEQ_SPLIT_109(x) (x) BOOST_PP_SEQ_SPLIT_108
-# define BOOST_PP_SEQ_SPLIT_110(x) (x) BOOST_PP_SEQ_SPLIT_109
-# define BOOST_PP_SEQ_SPLIT_111(x) (x) BOOST_PP_SEQ_SPLIT_110
-# define BOOST_PP_SEQ_SPLIT_112(x) (x) BOOST_PP_SEQ_SPLIT_111
-# define BOOST_PP_SEQ_SPLIT_113(x) (x) BOOST_PP_SEQ_SPLIT_112
-# define BOOST_PP_SEQ_SPLIT_114(x) (x) BOOST_PP_SEQ_SPLIT_113
-# define BOOST_PP_SEQ_SPLIT_115(x) (x) BOOST_PP_SEQ_SPLIT_114
-# define BOOST_PP_SEQ_SPLIT_116(x) (x) BOOST_PP_SEQ_SPLIT_115
-# define BOOST_PP_SEQ_SPLIT_117(x) (x) BOOST_PP_SEQ_SPLIT_116
-# define BOOST_PP_SEQ_SPLIT_118(x) (x) BOOST_PP_SEQ_SPLIT_117
-# define BOOST_PP_SEQ_SPLIT_119(x) (x) BOOST_PP_SEQ_SPLIT_118
-# define BOOST_PP_SEQ_SPLIT_120(x) (x) BOOST_PP_SEQ_SPLIT_119
-# define BOOST_PP_SEQ_SPLIT_121(x) (x) BOOST_PP_SEQ_SPLIT_120
-# define BOOST_PP_SEQ_SPLIT_122(x) (x) BOOST_PP_SEQ_SPLIT_121
-# define BOOST_PP_SEQ_SPLIT_123(x) (x) BOOST_PP_SEQ_SPLIT_122
-# define BOOST_PP_SEQ_SPLIT_124(x) (x) BOOST_PP_SEQ_SPLIT_123
-# define BOOST_PP_SEQ_SPLIT_125(x) (x) BOOST_PP_SEQ_SPLIT_124
-# define BOOST_PP_SEQ_SPLIT_126(x) (x) BOOST_PP_SEQ_SPLIT_125
-# define BOOST_PP_SEQ_SPLIT_127(x) (x) BOOST_PP_SEQ_SPLIT_126
-# define BOOST_PP_SEQ_SPLIT_128(x) (x) BOOST_PP_SEQ_SPLIT_127
-# define BOOST_PP_SEQ_SPLIT_129(x) (x) BOOST_PP_SEQ_SPLIT_128
-# define BOOST_PP_SEQ_SPLIT_130(x) (x) BOOST_PP_SEQ_SPLIT_129
-# define BOOST_PP_SEQ_SPLIT_131(x) (x) BOOST_PP_SEQ_SPLIT_130
-# define BOOST_PP_SEQ_SPLIT_132(x) (x) BOOST_PP_SEQ_SPLIT_131
-# define BOOST_PP_SEQ_SPLIT_133(x) (x) BOOST_PP_SEQ_SPLIT_132
-# define BOOST_PP_SEQ_SPLIT_134(x) (x) BOOST_PP_SEQ_SPLIT_133
-# define BOOST_PP_SEQ_SPLIT_135(x) (x) BOOST_PP_SEQ_SPLIT_134
-# define BOOST_PP_SEQ_SPLIT_136(x) (x) BOOST_PP_SEQ_SPLIT_135
-# define BOOST_PP_SEQ_SPLIT_137(x) (x) BOOST_PP_SEQ_SPLIT_136
-# define BOOST_PP_SEQ_SPLIT_138(x) (x) BOOST_PP_SEQ_SPLIT_137
-# define BOOST_PP_SEQ_SPLIT_139(x) (x) BOOST_PP_SEQ_SPLIT_138
-# define BOOST_PP_SEQ_SPLIT_140(x) (x) BOOST_PP_SEQ_SPLIT_139
-# define BOOST_PP_SEQ_SPLIT_141(x) (x) BOOST_PP_SEQ_SPLIT_140
-# define BOOST_PP_SEQ_SPLIT_142(x) (x) BOOST_PP_SEQ_SPLIT_141
-# define BOOST_PP_SEQ_SPLIT_143(x) (x) BOOST_PP_SEQ_SPLIT_142
-# define BOOST_PP_SEQ_SPLIT_144(x) (x) BOOST_PP_SEQ_SPLIT_143
-# define BOOST_PP_SEQ_SPLIT_145(x) (x) BOOST_PP_SEQ_SPLIT_144
-# define BOOST_PP_SEQ_SPLIT_146(x) (x) BOOST_PP_SEQ_SPLIT_145
-# define BOOST_PP_SEQ_SPLIT_147(x) (x) BOOST_PP_SEQ_SPLIT_146
-# define BOOST_PP_SEQ_SPLIT_148(x) (x) BOOST_PP_SEQ_SPLIT_147
-# define BOOST_PP_SEQ_SPLIT_149(x) (x) BOOST_PP_SEQ_SPLIT_148
-# define BOOST_PP_SEQ_SPLIT_150(x) (x) BOOST_PP_SEQ_SPLIT_149
-# define BOOST_PP_SEQ_SPLIT_151(x) (x) BOOST_PP_SEQ_SPLIT_150
-# define BOOST_PP_SEQ_SPLIT_152(x) (x) BOOST_PP_SEQ_SPLIT_151
-# define BOOST_PP_SEQ_SPLIT_153(x) (x) BOOST_PP_SEQ_SPLIT_152
-# define BOOST_PP_SEQ_SPLIT_154(x) (x) BOOST_PP_SEQ_SPLIT_153
-# define BOOST_PP_SEQ_SPLIT_155(x) (x) BOOST_PP_SEQ_SPLIT_154
-# define BOOST_PP_SEQ_SPLIT_156(x) (x) BOOST_PP_SEQ_SPLIT_155
-# define BOOST_PP_SEQ_SPLIT_157(x) (x) BOOST_PP_SEQ_SPLIT_156
-# define BOOST_PP_SEQ_SPLIT_158(x) (x) BOOST_PP_SEQ_SPLIT_157
-# define BOOST_PP_SEQ_SPLIT_159(x) (x) BOOST_PP_SEQ_SPLIT_158
-# define BOOST_PP_SEQ_SPLIT_160(x) (x) BOOST_PP_SEQ_SPLIT_159
-# define BOOST_PP_SEQ_SPLIT_161(x) (x) BOOST_PP_SEQ_SPLIT_160
-# define BOOST_PP_SEQ_SPLIT_162(x) (x) BOOST_PP_SEQ_SPLIT_161
-# define BOOST_PP_SEQ_SPLIT_163(x) (x) BOOST_PP_SEQ_SPLIT_162
-# define BOOST_PP_SEQ_SPLIT_164(x) (x) BOOST_PP_SEQ_SPLIT_163
-# define BOOST_PP_SEQ_SPLIT_165(x) (x) BOOST_PP_SEQ_SPLIT_164
-# define BOOST_PP_SEQ_SPLIT_166(x) (x) BOOST_PP_SEQ_SPLIT_165
-# define BOOST_PP_SEQ_SPLIT_167(x) (x) BOOST_PP_SEQ_SPLIT_166
-# define BOOST_PP_SEQ_SPLIT_168(x) (x) BOOST_PP_SEQ_SPLIT_167
-# define BOOST_PP_SEQ_SPLIT_169(x) (x) BOOST_PP_SEQ_SPLIT_168
-# define BOOST_PP_SEQ_SPLIT_170(x) (x) BOOST_PP_SEQ_SPLIT_169
-# define BOOST_PP_SEQ_SPLIT_171(x) (x) BOOST_PP_SEQ_SPLIT_170
-# define BOOST_PP_SEQ_SPLIT_172(x) (x) BOOST_PP_SEQ_SPLIT_171
-# define BOOST_PP_SEQ_SPLIT_173(x) (x) BOOST_PP_SEQ_SPLIT_172
-# define BOOST_PP_SEQ_SPLIT_174(x) (x) BOOST_PP_SEQ_SPLIT_173
-# define BOOST_PP_SEQ_SPLIT_175(x) (x) BOOST_PP_SEQ_SPLIT_174
-# define BOOST_PP_SEQ_SPLIT_176(x) (x) BOOST_PP_SEQ_SPLIT_175
-# define BOOST_PP_SEQ_SPLIT_177(x) (x) BOOST_PP_SEQ_SPLIT_176
-# define BOOST_PP_SEQ_SPLIT_178(x) (x) BOOST_PP_SEQ_SPLIT_177
-# define BOOST_PP_SEQ_SPLIT_179(x) (x) BOOST_PP_SEQ_SPLIT_178
-# define BOOST_PP_SEQ_SPLIT_180(x) (x) BOOST_PP_SEQ_SPLIT_179
-# define BOOST_PP_SEQ_SPLIT_181(x) (x) BOOST_PP_SEQ_SPLIT_180
-# define BOOST_PP_SEQ_SPLIT_182(x) (x) BOOST_PP_SEQ_SPLIT_181
-# define BOOST_PP_SEQ_SPLIT_183(x) (x) BOOST_PP_SEQ_SPLIT_182
-# define BOOST_PP_SEQ_SPLIT_184(x) (x) BOOST_PP_SEQ_SPLIT_183
-# define BOOST_PP_SEQ_SPLIT_185(x) (x) BOOST_PP_SEQ_SPLIT_184
-# define BOOST_PP_SEQ_SPLIT_186(x) (x) BOOST_PP_SEQ_SPLIT_185
-# define BOOST_PP_SEQ_SPLIT_187(x) (x) BOOST_PP_SEQ_SPLIT_186
-# define BOOST_PP_SEQ_SPLIT_188(x) (x) BOOST_PP_SEQ_SPLIT_187
-# define BOOST_PP_SEQ_SPLIT_189(x) (x) BOOST_PP_SEQ_SPLIT_188
-# define BOOST_PP_SEQ_SPLIT_190(x) (x) BOOST_PP_SEQ_SPLIT_189
-# define BOOST_PP_SEQ_SPLIT_191(x) (x) BOOST_PP_SEQ_SPLIT_190
-# define BOOST_PP_SEQ_SPLIT_192(x) (x) BOOST_PP_SEQ_SPLIT_191
-# define BOOST_PP_SEQ_SPLIT_193(x) (x) BOOST_PP_SEQ_SPLIT_192
-# define BOOST_PP_SEQ_SPLIT_194(x) (x) BOOST_PP_SEQ_SPLIT_193
-# define BOOST_PP_SEQ_SPLIT_195(x) (x) BOOST_PP_SEQ_SPLIT_194
-# define BOOST_PP_SEQ_SPLIT_196(x) (x) BOOST_PP_SEQ_SPLIT_195
-# define BOOST_PP_SEQ_SPLIT_197(x) (x) BOOST_PP_SEQ_SPLIT_196
-# define BOOST_PP_SEQ_SPLIT_198(x) (x) BOOST_PP_SEQ_SPLIT_197
-# define BOOST_PP_SEQ_SPLIT_199(x) (x) BOOST_PP_SEQ_SPLIT_198
-# define BOOST_PP_SEQ_SPLIT_200(x) (x) BOOST_PP_SEQ_SPLIT_199
-# define BOOST_PP_SEQ_SPLIT_201(x) (x) BOOST_PP_SEQ_SPLIT_200
-# define BOOST_PP_SEQ_SPLIT_202(x) (x) BOOST_PP_SEQ_SPLIT_201
-# define BOOST_PP_SEQ_SPLIT_203(x) (x) BOOST_PP_SEQ_SPLIT_202
-# define BOOST_PP_SEQ_SPLIT_204(x) (x) BOOST_PP_SEQ_SPLIT_203
-# define BOOST_PP_SEQ_SPLIT_205(x) (x) BOOST_PP_SEQ_SPLIT_204
-# define BOOST_PP_SEQ_SPLIT_206(x) (x) BOOST_PP_SEQ_SPLIT_205
-# define BOOST_PP_SEQ_SPLIT_207(x) (x) BOOST_PP_SEQ_SPLIT_206
-# define BOOST_PP_SEQ_SPLIT_208(x) (x) BOOST_PP_SEQ_SPLIT_207
-# define BOOST_PP_SEQ_SPLIT_209(x) (x) BOOST_PP_SEQ_SPLIT_208
-# define BOOST_PP_SEQ_SPLIT_210(x) (x) BOOST_PP_SEQ_SPLIT_209
-# define BOOST_PP_SEQ_SPLIT_211(x) (x) BOOST_PP_SEQ_SPLIT_210
-# define BOOST_PP_SEQ_SPLIT_212(x) (x) BOOST_PP_SEQ_SPLIT_211
-# define BOOST_PP_SEQ_SPLIT_213(x) (x) BOOST_PP_SEQ_SPLIT_212
-# define BOOST_PP_SEQ_SPLIT_214(x) (x) BOOST_PP_SEQ_SPLIT_213
-# define BOOST_PP_SEQ_SPLIT_215(x) (x) BOOST_PP_SEQ_SPLIT_214
-# define BOOST_PP_SEQ_SPLIT_216(x) (x) BOOST_PP_SEQ_SPLIT_215
-# define BOOST_PP_SEQ_SPLIT_217(x) (x) BOOST_PP_SEQ_SPLIT_216
-# define BOOST_PP_SEQ_SPLIT_218(x) (x) BOOST_PP_SEQ_SPLIT_217
-# define BOOST_PP_SEQ_SPLIT_219(x) (x) BOOST_PP_SEQ_SPLIT_218
-# define BOOST_PP_SEQ_SPLIT_220(x) (x) BOOST_PP_SEQ_SPLIT_219
-# define BOOST_PP_SEQ_SPLIT_221(x) (x) BOOST_PP_SEQ_SPLIT_220
-# define BOOST_PP_SEQ_SPLIT_222(x) (x) BOOST_PP_SEQ_SPLIT_221
-# define BOOST_PP_SEQ_SPLIT_223(x) (x) BOOST_PP_SEQ_SPLIT_222
-# define BOOST_PP_SEQ_SPLIT_224(x) (x) BOOST_PP_SEQ_SPLIT_223
-# define BOOST_PP_SEQ_SPLIT_225(x) (x) BOOST_PP_SEQ_SPLIT_224
-# define BOOST_PP_SEQ_SPLIT_226(x) (x) BOOST_PP_SEQ_SPLIT_225
-# define BOOST_PP_SEQ_SPLIT_227(x) (x) BOOST_PP_SEQ_SPLIT_226
-# define BOOST_PP_SEQ_SPLIT_228(x) (x) BOOST_PP_SEQ_SPLIT_227
-# define BOOST_PP_SEQ_SPLIT_229(x) (x) BOOST_PP_SEQ_SPLIT_228
-# define BOOST_PP_SEQ_SPLIT_230(x) (x) BOOST_PP_SEQ_SPLIT_229
-# define BOOST_PP_SEQ_SPLIT_231(x) (x) BOOST_PP_SEQ_SPLIT_230
-# define BOOST_PP_SEQ_SPLIT_232(x) (x) BOOST_PP_SEQ_SPLIT_231
-# define BOOST_PP_SEQ_SPLIT_233(x) (x) BOOST_PP_SEQ_SPLIT_232
-# define BOOST_PP_SEQ_SPLIT_234(x) (x) BOOST_PP_SEQ_SPLIT_233
-# define BOOST_PP_SEQ_SPLIT_235(x) (x) BOOST_PP_SEQ_SPLIT_234
-# define BOOST_PP_SEQ_SPLIT_236(x) (x) BOOST_PP_SEQ_SPLIT_235
-# define BOOST_PP_SEQ_SPLIT_237(x) (x) BOOST_PP_SEQ_SPLIT_236
-# define BOOST_PP_SEQ_SPLIT_238(x) (x) BOOST_PP_SEQ_SPLIT_237
-# define BOOST_PP_SEQ_SPLIT_239(x) (x) BOOST_PP_SEQ_SPLIT_238
-# define BOOST_PP_SEQ_SPLIT_240(x) (x) BOOST_PP_SEQ_SPLIT_239
-# define BOOST_PP_SEQ_SPLIT_241(x) (x) BOOST_PP_SEQ_SPLIT_240
-# define BOOST_PP_SEQ_SPLIT_242(x) (x) BOOST_PP_SEQ_SPLIT_241
-# define BOOST_PP_SEQ_SPLIT_243(x) (x) BOOST_PP_SEQ_SPLIT_242
-# define BOOST_PP_SEQ_SPLIT_244(x) (x) BOOST_PP_SEQ_SPLIT_243
-# define BOOST_PP_SEQ_SPLIT_245(x) (x) BOOST_PP_SEQ_SPLIT_244
-# define BOOST_PP_SEQ_SPLIT_246(x) (x) BOOST_PP_SEQ_SPLIT_245
-# define BOOST_PP_SEQ_SPLIT_247(x) (x) BOOST_PP_SEQ_SPLIT_246
-# define BOOST_PP_SEQ_SPLIT_248(x) (x) BOOST_PP_SEQ_SPLIT_247
-# define BOOST_PP_SEQ_SPLIT_249(x) (x) BOOST_PP_SEQ_SPLIT_248
-# define BOOST_PP_SEQ_SPLIT_250(x) (x) BOOST_PP_SEQ_SPLIT_249
-# define BOOST_PP_SEQ_SPLIT_251(x) (x) BOOST_PP_SEQ_SPLIT_250
-# define BOOST_PP_SEQ_SPLIT_252(x) (x) BOOST_PP_SEQ_SPLIT_251
-# define BOOST_PP_SEQ_SPLIT_253(x) (x) BOOST_PP_SEQ_SPLIT_252
-# define BOOST_PP_SEQ_SPLIT_254(x) (x) BOOST_PP_SEQ_SPLIT_253
-# define BOOST_PP_SEQ_SPLIT_255(x) (x) BOOST_PP_SEQ_SPLIT_254
-# define BOOST_PP_SEQ_SPLIT_256(x) (x) BOOST_PP_SEQ_SPLIT_255
+# define NDNBOOST_PP_SEQ_SPLIT_1(x) (x),
+# define NDNBOOST_PP_SEQ_SPLIT_2(x) (x) NDNBOOST_PP_SEQ_SPLIT_1
+# define NDNBOOST_PP_SEQ_SPLIT_3(x) (x) NDNBOOST_PP_SEQ_SPLIT_2
+# define NDNBOOST_PP_SEQ_SPLIT_4(x) (x) NDNBOOST_PP_SEQ_SPLIT_3
+# define NDNBOOST_PP_SEQ_SPLIT_5(x) (x) NDNBOOST_PP_SEQ_SPLIT_4
+# define NDNBOOST_PP_SEQ_SPLIT_6(x) (x) NDNBOOST_PP_SEQ_SPLIT_5
+# define NDNBOOST_PP_SEQ_SPLIT_7(x) (x) NDNBOOST_PP_SEQ_SPLIT_6
+# define NDNBOOST_PP_SEQ_SPLIT_8(x) (x) NDNBOOST_PP_SEQ_SPLIT_7
+# define NDNBOOST_PP_SEQ_SPLIT_9(x) (x) NDNBOOST_PP_SEQ_SPLIT_8
+# define NDNBOOST_PP_SEQ_SPLIT_10(x) (x) NDNBOOST_PP_SEQ_SPLIT_9
+# define NDNBOOST_PP_SEQ_SPLIT_11(x) (x) NDNBOOST_PP_SEQ_SPLIT_10
+# define NDNBOOST_PP_SEQ_SPLIT_12(x) (x) NDNBOOST_PP_SEQ_SPLIT_11
+# define NDNBOOST_PP_SEQ_SPLIT_13(x) (x) NDNBOOST_PP_SEQ_SPLIT_12
+# define NDNBOOST_PP_SEQ_SPLIT_14(x) (x) NDNBOOST_PP_SEQ_SPLIT_13
+# define NDNBOOST_PP_SEQ_SPLIT_15(x) (x) NDNBOOST_PP_SEQ_SPLIT_14
+# define NDNBOOST_PP_SEQ_SPLIT_16(x) (x) NDNBOOST_PP_SEQ_SPLIT_15
+# define NDNBOOST_PP_SEQ_SPLIT_17(x) (x) NDNBOOST_PP_SEQ_SPLIT_16
+# define NDNBOOST_PP_SEQ_SPLIT_18(x) (x) NDNBOOST_PP_SEQ_SPLIT_17
+# define NDNBOOST_PP_SEQ_SPLIT_19(x) (x) NDNBOOST_PP_SEQ_SPLIT_18
+# define NDNBOOST_PP_SEQ_SPLIT_20(x) (x) NDNBOOST_PP_SEQ_SPLIT_19
+# define NDNBOOST_PP_SEQ_SPLIT_21(x) (x) NDNBOOST_PP_SEQ_SPLIT_20
+# define NDNBOOST_PP_SEQ_SPLIT_22(x) (x) NDNBOOST_PP_SEQ_SPLIT_21
+# define NDNBOOST_PP_SEQ_SPLIT_23(x) (x) NDNBOOST_PP_SEQ_SPLIT_22
+# define NDNBOOST_PP_SEQ_SPLIT_24(x) (x) NDNBOOST_PP_SEQ_SPLIT_23
+# define NDNBOOST_PP_SEQ_SPLIT_25(x) (x) NDNBOOST_PP_SEQ_SPLIT_24
+# define NDNBOOST_PP_SEQ_SPLIT_26(x) (x) NDNBOOST_PP_SEQ_SPLIT_25
+# define NDNBOOST_PP_SEQ_SPLIT_27(x) (x) NDNBOOST_PP_SEQ_SPLIT_26
+# define NDNBOOST_PP_SEQ_SPLIT_28(x) (x) NDNBOOST_PP_SEQ_SPLIT_27
+# define NDNBOOST_PP_SEQ_SPLIT_29(x) (x) NDNBOOST_PP_SEQ_SPLIT_28
+# define NDNBOOST_PP_SEQ_SPLIT_30(x) (x) NDNBOOST_PP_SEQ_SPLIT_29
+# define NDNBOOST_PP_SEQ_SPLIT_31(x) (x) NDNBOOST_PP_SEQ_SPLIT_30
+# define NDNBOOST_PP_SEQ_SPLIT_32(x) (x) NDNBOOST_PP_SEQ_SPLIT_31
+# define NDNBOOST_PP_SEQ_SPLIT_33(x) (x) NDNBOOST_PP_SEQ_SPLIT_32
+# define NDNBOOST_PP_SEQ_SPLIT_34(x) (x) NDNBOOST_PP_SEQ_SPLIT_33
+# define NDNBOOST_PP_SEQ_SPLIT_35(x) (x) NDNBOOST_PP_SEQ_SPLIT_34
+# define NDNBOOST_PP_SEQ_SPLIT_36(x) (x) NDNBOOST_PP_SEQ_SPLIT_35
+# define NDNBOOST_PP_SEQ_SPLIT_37(x) (x) NDNBOOST_PP_SEQ_SPLIT_36
+# define NDNBOOST_PP_SEQ_SPLIT_38(x) (x) NDNBOOST_PP_SEQ_SPLIT_37
+# define NDNBOOST_PP_SEQ_SPLIT_39(x) (x) NDNBOOST_PP_SEQ_SPLIT_38
+# define NDNBOOST_PP_SEQ_SPLIT_40(x) (x) NDNBOOST_PP_SEQ_SPLIT_39
+# define NDNBOOST_PP_SEQ_SPLIT_41(x) (x) NDNBOOST_PP_SEQ_SPLIT_40
+# define NDNBOOST_PP_SEQ_SPLIT_42(x) (x) NDNBOOST_PP_SEQ_SPLIT_41
+# define NDNBOOST_PP_SEQ_SPLIT_43(x) (x) NDNBOOST_PP_SEQ_SPLIT_42
+# define NDNBOOST_PP_SEQ_SPLIT_44(x) (x) NDNBOOST_PP_SEQ_SPLIT_43
+# define NDNBOOST_PP_SEQ_SPLIT_45(x) (x) NDNBOOST_PP_SEQ_SPLIT_44
+# define NDNBOOST_PP_SEQ_SPLIT_46(x) (x) NDNBOOST_PP_SEQ_SPLIT_45
+# define NDNBOOST_PP_SEQ_SPLIT_47(x) (x) NDNBOOST_PP_SEQ_SPLIT_46
+# define NDNBOOST_PP_SEQ_SPLIT_48(x) (x) NDNBOOST_PP_SEQ_SPLIT_47
+# define NDNBOOST_PP_SEQ_SPLIT_49(x) (x) NDNBOOST_PP_SEQ_SPLIT_48
+# define NDNBOOST_PP_SEQ_SPLIT_50(x) (x) NDNBOOST_PP_SEQ_SPLIT_49
+# define NDNBOOST_PP_SEQ_SPLIT_51(x) (x) NDNBOOST_PP_SEQ_SPLIT_50
+# define NDNBOOST_PP_SEQ_SPLIT_52(x) (x) NDNBOOST_PP_SEQ_SPLIT_51
+# define NDNBOOST_PP_SEQ_SPLIT_53(x) (x) NDNBOOST_PP_SEQ_SPLIT_52
+# define NDNBOOST_PP_SEQ_SPLIT_54(x) (x) NDNBOOST_PP_SEQ_SPLIT_53
+# define NDNBOOST_PP_SEQ_SPLIT_55(x) (x) NDNBOOST_PP_SEQ_SPLIT_54
+# define NDNBOOST_PP_SEQ_SPLIT_56(x) (x) NDNBOOST_PP_SEQ_SPLIT_55
+# define NDNBOOST_PP_SEQ_SPLIT_57(x) (x) NDNBOOST_PP_SEQ_SPLIT_56
+# define NDNBOOST_PP_SEQ_SPLIT_58(x) (x) NDNBOOST_PP_SEQ_SPLIT_57
+# define NDNBOOST_PP_SEQ_SPLIT_59(x) (x) NDNBOOST_PP_SEQ_SPLIT_58
+# define NDNBOOST_PP_SEQ_SPLIT_60(x) (x) NDNBOOST_PP_SEQ_SPLIT_59
+# define NDNBOOST_PP_SEQ_SPLIT_61(x) (x) NDNBOOST_PP_SEQ_SPLIT_60
+# define NDNBOOST_PP_SEQ_SPLIT_62(x) (x) NDNBOOST_PP_SEQ_SPLIT_61
+# define NDNBOOST_PP_SEQ_SPLIT_63(x) (x) NDNBOOST_PP_SEQ_SPLIT_62
+# define NDNBOOST_PP_SEQ_SPLIT_64(x) (x) NDNBOOST_PP_SEQ_SPLIT_63
+# define NDNBOOST_PP_SEQ_SPLIT_65(x) (x) NDNBOOST_PP_SEQ_SPLIT_64
+# define NDNBOOST_PP_SEQ_SPLIT_66(x) (x) NDNBOOST_PP_SEQ_SPLIT_65
+# define NDNBOOST_PP_SEQ_SPLIT_67(x) (x) NDNBOOST_PP_SEQ_SPLIT_66
+# define NDNBOOST_PP_SEQ_SPLIT_68(x) (x) NDNBOOST_PP_SEQ_SPLIT_67
+# define NDNBOOST_PP_SEQ_SPLIT_69(x) (x) NDNBOOST_PP_SEQ_SPLIT_68
+# define NDNBOOST_PP_SEQ_SPLIT_70(x) (x) NDNBOOST_PP_SEQ_SPLIT_69
+# define NDNBOOST_PP_SEQ_SPLIT_71(x) (x) NDNBOOST_PP_SEQ_SPLIT_70
+# define NDNBOOST_PP_SEQ_SPLIT_72(x) (x) NDNBOOST_PP_SEQ_SPLIT_71
+# define NDNBOOST_PP_SEQ_SPLIT_73(x) (x) NDNBOOST_PP_SEQ_SPLIT_72
+# define NDNBOOST_PP_SEQ_SPLIT_74(x) (x) NDNBOOST_PP_SEQ_SPLIT_73
+# define NDNBOOST_PP_SEQ_SPLIT_75(x) (x) NDNBOOST_PP_SEQ_SPLIT_74
+# define NDNBOOST_PP_SEQ_SPLIT_76(x) (x) NDNBOOST_PP_SEQ_SPLIT_75
+# define NDNBOOST_PP_SEQ_SPLIT_77(x) (x) NDNBOOST_PP_SEQ_SPLIT_76
+# define NDNBOOST_PP_SEQ_SPLIT_78(x) (x) NDNBOOST_PP_SEQ_SPLIT_77
+# define NDNBOOST_PP_SEQ_SPLIT_79(x) (x) NDNBOOST_PP_SEQ_SPLIT_78
+# define NDNBOOST_PP_SEQ_SPLIT_80(x) (x) NDNBOOST_PP_SEQ_SPLIT_79
+# define NDNBOOST_PP_SEQ_SPLIT_81(x) (x) NDNBOOST_PP_SEQ_SPLIT_80
+# define NDNBOOST_PP_SEQ_SPLIT_82(x) (x) NDNBOOST_PP_SEQ_SPLIT_81
+# define NDNBOOST_PP_SEQ_SPLIT_83(x) (x) NDNBOOST_PP_SEQ_SPLIT_82
+# define NDNBOOST_PP_SEQ_SPLIT_84(x) (x) NDNBOOST_PP_SEQ_SPLIT_83
+# define NDNBOOST_PP_SEQ_SPLIT_85(x) (x) NDNBOOST_PP_SEQ_SPLIT_84
+# define NDNBOOST_PP_SEQ_SPLIT_86(x) (x) NDNBOOST_PP_SEQ_SPLIT_85
+# define NDNBOOST_PP_SEQ_SPLIT_87(x) (x) NDNBOOST_PP_SEQ_SPLIT_86
+# define NDNBOOST_PP_SEQ_SPLIT_88(x) (x) NDNBOOST_PP_SEQ_SPLIT_87
+# define NDNBOOST_PP_SEQ_SPLIT_89(x) (x) NDNBOOST_PP_SEQ_SPLIT_88
+# define NDNBOOST_PP_SEQ_SPLIT_90(x) (x) NDNBOOST_PP_SEQ_SPLIT_89
+# define NDNBOOST_PP_SEQ_SPLIT_91(x) (x) NDNBOOST_PP_SEQ_SPLIT_90
+# define NDNBOOST_PP_SEQ_SPLIT_92(x) (x) NDNBOOST_PP_SEQ_SPLIT_91
+# define NDNBOOST_PP_SEQ_SPLIT_93(x) (x) NDNBOOST_PP_SEQ_SPLIT_92
+# define NDNBOOST_PP_SEQ_SPLIT_94(x) (x) NDNBOOST_PP_SEQ_SPLIT_93
+# define NDNBOOST_PP_SEQ_SPLIT_95(x) (x) NDNBOOST_PP_SEQ_SPLIT_94
+# define NDNBOOST_PP_SEQ_SPLIT_96(x) (x) NDNBOOST_PP_SEQ_SPLIT_95
+# define NDNBOOST_PP_SEQ_SPLIT_97(x) (x) NDNBOOST_PP_SEQ_SPLIT_96
+# define NDNBOOST_PP_SEQ_SPLIT_98(x) (x) NDNBOOST_PP_SEQ_SPLIT_97
+# define NDNBOOST_PP_SEQ_SPLIT_99(x) (x) NDNBOOST_PP_SEQ_SPLIT_98
+# define NDNBOOST_PP_SEQ_SPLIT_100(x) (x) NDNBOOST_PP_SEQ_SPLIT_99
+# define NDNBOOST_PP_SEQ_SPLIT_101(x) (x) NDNBOOST_PP_SEQ_SPLIT_100
+# define NDNBOOST_PP_SEQ_SPLIT_102(x) (x) NDNBOOST_PP_SEQ_SPLIT_101
+# define NDNBOOST_PP_SEQ_SPLIT_103(x) (x) NDNBOOST_PP_SEQ_SPLIT_102
+# define NDNBOOST_PP_SEQ_SPLIT_104(x) (x) NDNBOOST_PP_SEQ_SPLIT_103
+# define NDNBOOST_PP_SEQ_SPLIT_105(x) (x) NDNBOOST_PP_SEQ_SPLIT_104
+# define NDNBOOST_PP_SEQ_SPLIT_106(x) (x) NDNBOOST_PP_SEQ_SPLIT_105
+# define NDNBOOST_PP_SEQ_SPLIT_107(x) (x) NDNBOOST_PP_SEQ_SPLIT_106
+# define NDNBOOST_PP_SEQ_SPLIT_108(x) (x) NDNBOOST_PP_SEQ_SPLIT_107
+# define NDNBOOST_PP_SEQ_SPLIT_109(x) (x) NDNBOOST_PP_SEQ_SPLIT_108
+# define NDNBOOST_PP_SEQ_SPLIT_110(x) (x) NDNBOOST_PP_SEQ_SPLIT_109
+# define NDNBOOST_PP_SEQ_SPLIT_111(x) (x) NDNBOOST_PP_SEQ_SPLIT_110
+# define NDNBOOST_PP_SEQ_SPLIT_112(x) (x) NDNBOOST_PP_SEQ_SPLIT_111
+# define NDNBOOST_PP_SEQ_SPLIT_113(x) (x) NDNBOOST_PP_SEQ_SPLIT_112
+# define NDNBOOST_PP_SEQ_SPLIT_114(x) (x) NDNBOOST_PP_SEQ_SPLIT_113
+# define NDNBOOST_PP_SEQ_SPLIT_115(x) (x) NDNBOOST_PP_SEQ_SPLIT_114
+# define NDNBOOST_PP_SEQ_SPLIT_116(x) (x) NDNBOOST_PP_SEQ_SPLIT_115
+# define NDNBOOST_PP_SEQ_SPLIT_117(x) (x) NDNBOOST_PP_SEQ_SPLIT_116
+# define NDNBOOST_PP_SEQ_SPLIT_118(x) (x) NDNBOOST_PP_SEQ_SPLIT_117
+# define NDNBOOST_PP_SEQ_SPLIT_119(x) (x) NDNBOOST_PP_SEQ_SPLIT_118
+# define NDNBOOST_PP_SEQ_SPLIT_120(x) (x) NDNBOOST_PP_SEQ_SPLIT_119
+# define NDNBOOST_PP_SEQ_SPLIT_121(x) (x) NDNBOOST_PP_SEQ_SPLIT_120
+# define NDNBOOST_PP_SEQ_SPLIT_122(x) (x) NDNBOOST_PP_SEQ_SPLIT_121
+# define NDNBOOST_PP_SEQ_SPLIT_123(x) (x) NDNBOOST_PP_SEQ_SPLIT_122
+# define NDNBOOST_PP_SEQ_SPLIT_124(x) (x) NDNBOOST_PP_SEQ_SPLIT_123
+# define NDNBOOST_PP_SEQ_SPLIT_125(x) (x) NDNBOOST_PP_SEQ_SPLIT_124
+# define NDNBOOST_PP_SEQ_SPLIT_126(x) (x) NDNBOOST_PP_SEQ_SPLIT_125
+# define NDNBOOST_PP_SEQ_SPLIT_127(x) (x) NDNBOOST_PP_SEQ_SPLIT_126
+# define NDNBOOST_PP_SEQ_SPLIT_128(x) (x) NDNBOOST_PP_SEQ_SPLIT_127
+# define NDNBOOST_PP_SEQ_SPLIT_129(x) (x) NDNBOOST_PP_SEQ_SPLIT_128
+# define NDNBOOST_PP_SEQ_SPLIT_130(x) (x) NDNBOOST_PP_SEQ_SPLIT_129
+# define NDNBOOST_PP_SEQ_SPLIT_131(x) (x) NDNBOOST_PP_SEQ_SPLIT_130
+# define NDNBOOST_PP_SEQ_SPLIT_132(x) (x) NDNBOOST_PP_SEQ_SPLIT_131
+# define NDNBOOST_PP_SEQ_SPLIT_133(x) (x) NDNBOOST_PP_SEQ_SPLIT_132
+# define NDNBOOST_PP_SEQ_SPLIT_134(x) (x) NDNBOOST_PP_SEQ_SPLIT_133
+# define NDNBOOST_PP_SEQ_SPLIT_135(x) (x) NDNBOOST_PP_SEQ_SPLIT_134
+# define NDNBOOST_PP_SEQ_SPLIT_136(x) (x) NDNBOOST_PP_SEQ_SPLIT_135
+# define NDNBOOST_PP_SEQ_SPLIT_137(x) (x) NDNBOOST_PP_SEQ_SPLIT_136
+# define NDNBOOST_PP_SEQ_SPLIT_138(x) (x) NDNBOOST_PP_SEQ_SPLIT_137
+# define NDNBOOST_PP_SEQ_SPLIT_139(x) (x) NDNBOOST_PP_SEQ_SPLIT_138
+# define NDNBOOST_PP_SEQ_SPLIT_140(x) (x) NDNBOOST_PP_SEQ_SPLIT_139
+# define NDNBOOST_PP_SEQ_SPLIT_141(x) (x) NDNBOOST_PP_SEQ_SPLIT_140
+# define NDNBOOST_PP_SEQ_SPLIT_142(x) (x) NDNBOOST_PP_SEQ_SPLIT_141
+# define NDNBOOST_PP_SEQ_SPLIT_143(x) (x) NDNBOOST_PP_SEQ_SPLIT_142
+# define NDNBOOST_PP_SEQ_SPLIT_144(x) (x) NDNBOOST_PP_SEQ_SPLIT_143
+# define NDNBOOST_PP_SEQ_SPLIT_145(x) (x) NDNBOOST_PP_SEQ_SPLIT_144
+# define NDNBOOST_PP_SEQ_SPLIT_146(x) (x) NDNBOOST_PP_SEQ_SPLIT_145
+# define NDNBOOST_PP_SEQ_SPLIT_147(x) (x) NDNBOOST_PP_SEQ_SPLIT_146
+# define NDNBOOST_PP_SEQ_SPLIT_148(x) (x) NDNBOOST_PP_SEQ_SPLIT_147
+# define NDNBOOST_PP_SEQ_SPLIT_149(x) (x) NDNBOOST_PP_SEQ_SPLIT_148
+# define NDNBOOST_PP_SEQ_SPLIT_150(x) (x) NDNBOOST_PP_SEQ_SPLIT_149
+# define NDNBOOST_PP_SEQ_SPLIT_151(x) (x) NDNBOOST_PP_SEQ_SPLIT_150
+# define NDNBOOST_PP_SEQ_SPLIT_152(x) (x) NDNBOOST_PP_SEQ_SPLIT_151
+# define NDNBOOST_PP_SEQ_SPLIT_153(x) (x) NDNBOOST_PP_SEQ_SPLIT_152
+# define NDNBOOST_PP_SEQ_SPLIT_154(x) (x) NDNBOOST_PP_SEQ_SPLIT_153
+# define NDNBOOST_PP_SEQ_SPLIT_155(x) (x) NDNBOOST_PP_SEQ_SPLIT_154
+# define NDNBOOST_PP_SEQ_SPLIT_156(x) (x) NDNBOOST_PP_SEQ_SPLIT_155
+# define NDNBOOST_PP_SEQ_SPLIT_157(x) (x) NDNBOOST_PP_SEQ_SPLIT_156
+# define NDNBOOST_PP_SEQ_SPLIT_158(x) (x) NDNBOOST_PP_SEQ_SPLIT_157
+# define NDNBOOST_PP_SEQ_SPLIT_159(x) (x) NDNBOOST_PP_SEQ_SPLIT_158
+# define NDNBOOST_PP_SEQ_SPLIT_160(x) (x) NDNBOOST_PP_SEQ_SPLIT_159
+# define NDNBOOST_PP_SEQ_SPLIT_161(x) (x) NDNBOOST_PP_SEQ_SPLIT_160
+# define NDNBOOST_PP_SEQ_SPLIT_162(x) (x) NDNBOOST_PP_SEQ_SPLIT_161
+# define NDNBOOST_PP_SEQ_SPLIT_163(x) (x) NDNBOOST_PP_SEQ_SPLIT_162
+# define NDNBOOST_PP_SEQ_SPLIT_164(x) (x) NDNBOOST_PP_SEQ_SPLIT_163
+# define NDNBOOST_PP_SEQ_SPLIT_165(x) (x) NDNBOOST_PP_SEQ_SPLIT_164
+# define NDNBOOST_PP_SEQ_SPLIT_166(x) (x) NDNBOOST_PP_SEQ_SPLIT_165
+# define NDNBOOST_PP_SEQ_SPLIT_167(x) (x) NDNBOOST_PP_SEQ_SPLIT_166
+# define NDNBOOST_PP_SEQ_SPLIT_168(x) (x) NDNBOOST_PP_SEQ_SPLIT_167
+# define NDNBOOST_PP_SEQ_SPLIT_169(x) (x) NDNBOOST_PP_SEQ_SPLIT_168
+# define NDNBOOST_PP_SEQ_SPLIT_170(x) (x) NDNBOOST_PP_SEQ_SPLIT_169
+# define NDNBOOST_PP_SEQ_SPLIT_171(x) (x) NDNBOOST_PP_SEQ_SPLIT_170
+# define NDNBOOST_PP_SEQ_SPLIT_172(x) (x) NDNBOOST_PP_SEQ_SPLIT_171
+# define NDNBOOST_PP_SEQ_SPLIT_173(x) (x) NDNBOOST_PP_SEQ_SPLIT_172
+# define NDNBOOST_PP_SEQ_SPLIT_174(x) (x) NDNBOOST_PP_SEQ_SPLIT_173
+# define NDNBOOST_PP_SEQ_SPLIT_175(x) (x) NDNBOOST_PP_SEQ_SPLIT_174
+# define NDNBOOST_PP_SEQ_SPLIT_176(x) (x) NDNBOOST_PP_SEQ_SPLIT_175
+# define NDNBOOST_PP_SEQ_SPLIT_177(x) (x) NDNBOOST_PP_SEQ_SPLIT_176
+# define NDNBOOST_PP_SEQ_SPLIT_178(x) (x) NDNBOOST_PP_SEQ_SPLIT_177
+# define NDNBOOST_PP_SEQ_SPLIT_179(x) (x) NDNBOOST_PP_SEQ_SPLIT_178
+# define NDNBOOST_PP_SEQ_SPLIT_180(x) (x) NDNBOOST_PP_SEQ_SPLIT_179
+# define NDNBOOST_PP_SEQ_SPLIT_181(x) (x) NDNBOOST_PP_SEQ_SPLIT_180
+# define NDNBOOST_PP_SEQ_SPLIT_182(x) (x) NDNBOOST_PP_SEQ_SPLIT_181
+# define NDNBOOST_PP_SEQ_SPLIT_183(x) (x) NDNBOOST_PP_SEQ_SPLIT_182
+# define NDNBOOST_PP_SEQ_SPLIT_184(x) (x) NDNBOOST_PP_SEQ_SPLIT_183
+# define NDNBOOST_PP_SEQ_SPLIT_185(x) (x) NDNBOOST_PP_SEQ_SPLIT_184
+# define NDNBOOST_PP_SEQ_SPLIT_186(x) (x) NDNBOOST_PP_SEQ_SPLIT_185
+# define NDNBOOST_PP_SEQ_SPLIT_187(x) (x) NDNBOOST_PP_SEQ_SPLIT_186
+# define NDNBOOST_PP_SEQ_SPLIT_188(x) (x) NDNBOOST_PP_SEQ_SPLIT_187
+# define NDNBOOST_PP_SEQ_SPLIT_189(x) (x) NDNBOOST_PP_SEQ_SPLIT_188
+# define NDNBOOST_PP_SEQ_SPLIT_190(x) (x) NDNBOOST_PP_SEQ_SPLIT_189
+# define NDNBOOST_PP_SEQ_SPLIT_191(x) (x) NDNBOOST_PP_SEQ_SPLIT_190
+# define NDNBOOST_PP_SEQ_SPLIT_192(x) (x) NDNBOOST_PP_SEQ_SPLIT_191
+# define NDNBOOST_PP_SEQ_SPLIT_193(x) (x) NDNBOOST_PP_SEQ_SPLIT_192
+# define NDNBOOST_PP_SEQ_SPLIT_194(x) (x) NDNBOOST_PP_SEQ_SPLIT_193
+# define NDNBOOST_PP_SEQ_SPLIT_195(x) (x) NDNBOOST_PP_SEQ_SPLIT_194
+# define NDNBOOST_PP_SEQ_SPLIT_196(x) (x) NDNBOOST_PP_SEQ_SPLIT_195
+# define NDNBOOST_PP_SEQ_SPLIT_197(x) (x) NDNBOOST_PP_SEQ_SPLIT_196
+# define NDNBOOST_PP_SEQ_SPLIT_198(x) (x) NDNBOOST_PP_SEQ_SPLIT_197
+# define NDNBOOST_PP_SEQ_SPLIT_199(x) (x) NDNBOOST_PP_SEQ_SPLIT_198
+# define NDNBOOST_PP_SEQ_SPLIT_200(x) (x) NDNBOOST_PP_SEQ_SPLIT_199
+# define NDNBOOST_PP_SEQ_SPLIT_201(x) (x) NDNBOOST_PP_SEQ_SPLIT_200
+# define NDNBOOST_PP_SEQ_SPLIT_202(x) (x) NDNBOOST_PP_SEQ_SPLIT_201
+# define NDNBOOST_PP_SEQ_SPLIT_203(x) (x) NDNBOOST_PP_SEQ_SPLIT_202
+# define NDNBOOST_PP_SEQ_SPLIT_204(x) (x) NDNBOOST_PP_SEQ_SPLIT_203
+# define NDNBOOST_PP_SEQ_SPLIT_205(x) (x) NDNBOOST_PP_SEQ_SPLIT_204
+# define NDNBOOST_PP_SEQ_SPLIT_206(x) (x) NDNBOOST_PP_SEQ_SPLIT_205
+# define NDNBOOST_PP_SEQ_SPLIT_207(x) (x) NDNBOOST_PP_SEQ_SPLIT_206
+# define NDNBOOST_PP_SEQ_SPLIT_208(x) (x) NDNBOOST_PP_SEQ_SPLIT_207
+# define NDNBOOST_PP_SEQ_SPLIT_209(x) (x) NDNBOOST_PP_SEQ_SPLIT_208
+# define NDNBOOST_PP_SEQ_SPLIT_210(x) (x) NDNBOOST_PP_SEQ_SPLIT_209
+# define NDNBOOST_PP_SEQ_SPLIT_211(x) (x) NDNBOOST_PP_SEQ_SPLIT_210
+# define NDNBOOST_PP_SEQ_SPLIT_212(x) (x) NDNBOOST_PP_SEQ_SPLIT_211
+# define NDNBOOST_PP_SEQ_SPLIT_213(x) (x) NDNBOOST_PP_SEQ_SPLIT_212
+# define NDNBOOST_PP_SEQ_SPLIT_214(x) (x) NDNBOOST_PP_SEQ_SPLIT_213
+# define NDNBOOST_PP_SEQ_SPLIT_215(x) (x) NDNBOOST_PP_SEQ_SPLIT_214
+# define NDNBOOST_PP_SEQ_SPLIT_216(x) (x) NDNBOOST_PP_SEQ_SPLIT_215
+# define NDNBOOST_PP_SEQ_SPLIT_217(x) (x) NDNBOOST_PP_SEQ_SPLIT_216
+# define NDNBOOST_PP_SEQ_SPLIT_218(x) (x) NDNBOOST_PP_SEQ_SPLIT_217
+# define NDNBOOST_PP_SEQ_SPLIT_219(x) (x) NDNBOOST_PP_SEQ_SPLIT_218
+# define NDNBOOST_PP_SEQ_SPLIT_220(x) (x) NDNBOOST_PP_SEQ_SPLIT_219
+# define NDNBOOST_PP_SEQ_SPLIT_221(x) (x) NDNBOOST_PP_SEQ_SPLIT_220
+# define NDNBOOST_PP_SEQ_SPLIT_222(x) (x) NDNBOOST_PP_SEQ_SPLIT_221
+# define NDNBOOST_PP_SEQ_SPLIT_223(x) (x) NDNBOOST_PP_SEQ_SPLIT_222
+# define NDNBOOST_PP_SEQ_SPLIT_224(x) (x) NDNBOOST_PP_SEQ_SPLIT_223
+# define NDNBOOST_PP_SEQ_SPLIT_225(x) (x) NDNBOOST_PP_SEQ_SPLIT_224
+# define NDNBOOST_PP_SEQ_SPLIT_226(x) (x) NDNBOOST_PP_SEQ_SPLIT_225
+# define NDNBOOST_PP_SEQ_SPLIT_227(x) (x) NDNBOOST_PP_SEQ_SPLIT_226
+# define NDNBOOST_PP_SEQ_SPLIT_228(x) (x) NDNBOOST_PP_SEQ_SPLIT_227
+# define NDNBOOST_PP_SEQ_SPLIT_229(x) (x) NDNBOOST_PP_SEQ_SPLIT_228
+# define NDNBOOST_PP_SEQ_SPLIT_230(x) (x) NDNBOOST_PP_SEQ_SPLIT_229
+# define NDNBOOST_PP_SEQ_SPLIT_231(x) (x) NDNBOOST_PP_SEQ_SPLIT_230
+# define NDNBOOST_PP_SEQ_SPLIT_232(x) (x) NDNBOOST_PP_SEQ_SPLIT_231
+# define NDNBOOST_PP_SEQ_SPLIT_233(x) (x) NDNBOOST_PP_SEQ_SPLIT_232
+# define NDNBOOST_PP_SEQ_SPLIT_234(x) (x) NDNBOOST_PP_SEQ_SPLIT_233
+# define NDNBOOST_PP_SEQ_SPLIT_235(x) (x) NDNBOOST_PP_SEQ_SPLIT_234
+# define NDNBOOST_PP_SEQ_SPLIT_236(x) (x) NDNBOOST_PP_SEQ_SPLIT_235
+# define NDNBOOST_PP_SEQ_SPLIT_237(x) (x) NDNBOOST_PP_SEQ_SPLIT_236
+# define NDNBOOST_PP_SEQ_SPLIT_238(x) (x) NDNBOOST_PP_SEQ_SPLIT_237
+# define NDNBOOST_PP_SEQ_SPLIT_239(x) (x) NDNBOOST_PP_SEQ_SPLIT_238
+# define NDNBOOST_PP_SEQ_SPLIT_240(x) (x) NDNBOOST_PP_SEQ_SPLIT_239
+# define NDNBOOST_PP_SEQ_SPLIT_241(x) (x) NDNBOOST_PP_SEQ_SPLIT_240
+# define NDNBOOST_PP_SEQ_SPLIT_242(x) (x) NDNBOOST_PP_SEQ_SPLIT_241
+# define NDNBOOST_PP_SEQ_SPLIT_243(x) (x) NDNBOOST_PP_SEQ_SPLIT_242
+# define NDNBOOST_PP_SEQ_SPLIT_244(x) (x) NDNBOOST_PP_SEQ_SPLIT_243
+# define NDNBOOST_PP_SEQ_SPLIT_245(x) (x) NDNBOOST_PP_SEQ_SPLIT_244
+# define NDNBOOST_PP_SEQ_SPLIT_246(x) (x) NDNBOOST_PP_SEQ_SPLIT_245
+# define NDNBOOST_PP_SEQ_SPLIT_247(x) (x) NDNBOOST_PP_SEQ_SPLIT_246
+# define NDNBOOST_PP_SEQ_SPLIT_248(x) (x) NDNBOOST_PP_SEQ_SPLIT_247
+# define NDNBOOST_PP_SEQ_SPLIT_249(x) (x) NDNBOOST_PP_SEQ_SPLIT_248
+# define NDNBOOST_PP_SEQ_SPLIT_250(x) (x) NDNBOOST_PP_SEQ_SPLIT_249
+# define NDNBOOST_PP_SEQ_SPLIT_251(x) (x) NDNBOOST_PP_SEQ_SPLIT_250
+# define NDNBOOST_PP_SEQ_SPLIT_252(x) (x) NDNBOOST_PP_SEQ_SPLIT_251
+# define NDNBOOST_PP_SEQ_SPLIT_253(x) (x) NDNBOOST_PP_SEQ_SPLIT_252
+# define NDNBOOST_PP_SEQ_SPLIT_254(x) (x) NDNBOOST_PP_SEQ_SPLIT_253
+# define NDNBOOST_PP_SEQ_SPLIT_255(x) (x) NDNBOOST_PP_SEQ_SPLIT_254
+# define NDNBOOST_PP_SEQ_SPLIT_256(x) (x) NDNBOOST_PP_SEQ_SPLIT_255
 #
 # endif
diff --git a/include/ndnboost/preprocessor/seq/elem.hpp b/include/ndnboost/preprocessor/seq/elem.hpp
index 029a8a2..4be16cc 100644
--- a/include/ndnboost/preprocessor/seq/elem.hpp
+++ b/include/ndnboost/preprocessor/seq/elem.hpp
@@ -9,296 +9,296 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_SEQ_ELEM_HPP
-# define BOOST_PREPROCESSOR_SEQ_ELEM_HPP
+# ifndef NDNBOOST_PREPROCESSOR_SEQ_ELEM_HPP
+# define NDNBOOST_PREPROCESSOR_SEQ_ELEM_HPP
 #
 # include <ndnboost/preprocessor/cat.hpp>
 # include <ndnboost/preprocessor/config/config.hpp>
 # include <ndnboost/preprocessor/facilities/empty.hpp>
 #
-# /* BOOST_PP_SEQ_ELEM */
+# /* NDNBOOST_PP_SEQ_ELEM */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_SEQ_ELEM(i, seq) BOOST_PP_SEQ_ELEM_I(i, seq)
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MWCC()
+#    define NDNBOOST_PP_SEQ_ELEM(i, seq) NDNBOOST_PP_SEQ_ELEM_I(i, seq)
 # else
-#    define BOOST_PP_SEQ_ELEM(i, seq) BOOST_PP_SEQ_ELEM_I((i, seq))
+#    define NDNBOOST_PP_SEQ_ELEM(i, seq) NDNBOOST_PP_SEQ_ELEM_I((i, seq))
 # endif
 #
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-#    define BOOST_PP_SEQ_ELEM_I(i, seq) BOOST_PP_SEQ_ELEM_II((BOOST_PP_SEQ_ELEM_ ## i seq))
-#    define BOOST_PP_SEQ_ELEM_II(res) BOOST_PP_SEQ_ELEM_IV(BOOST_PP_SEQ_ELEM_III res)
-#    define BOOST_PP_SEQ_ELEM_III(x, _) x BOOST_PP_EMPTY()
-#    define BOOST_PP_SEQ_ELEM_IV(x) x
-# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_SEQ_ELEM_I(par) BOOST_PP_SEQ_ELEM_II ## par
-#    define BOOST_PP_SEQ_ELEM_II(i, seq) BOOST_PP_SEQ_ELEM_III(BOOST_PP_SEQ_ELEM_ ## i ## seq)
-#    define BOOST_PP_SEQ_ELEM_III(im) BOOST_PP_SEQ_ELEM_IV(im)
-#    define BOOST_PP_SEQ_ELEM_IV(x, _) x
+# if NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MSVC()
+#    define NDNBOOST_PP_SEQ_ELEM_I(i, seq) NDNBOOST_PP_SEQ_ELEM_II((NDNBOOST_PP_SEQ_ELEM_ ## i seq))
+#    define NDNBOOST_PP_SEQ_ELEM_II(res) NDNBOOST_PP_SEQ_ELEM_IV(NDNBOOST_PP_SEQ_ELEM_III res)
+#    define NDNBOOST_PP_SEQ_ELEM_III(x, _) x NDNBOOST_PP_EMPTY()
+#    define NDNBOOST_PP_SEQ_ELEM_IV(x) x
+# elif NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MWCC()
+#    define NDNBOOST_PP_SEQ_ELEM_I(par) NDNBOOST_PP_SEQ_ELEM_II ## par
+#    define NDNBOOST_PP_SEQ_ELEM_II(i, seq) NDNBOOST_PP_SEQ_ELEM_III(NDNBOOST_PP_SEQ_ELEM_ ## i ## seq)
+#    define NDNBOOST_PP_SEQ_ELEM_III(im) NDNBOOST_PP_SEQ_ELEM_IV(im)
+#    define NDNBOOST_PP_SEQ_ELEM_IV(x, _) x
 # else
 #    if defined(__IBMC__) || defined(__IBMCPP__)
-#        define BOOST_PP_SEQ_ELEM_I(i, seq) BOOST_PP_SEQ_ELEM_II(BOOST_PP_CAT(BOOST_PP_SEQ_ELEM_ ## i, seq))
+#        define NDNBOOST_PP_SEQ_ELEM_I(i, seq) NDNBOOST_PP_SEQ_ELEM_II(NDNBOOST_PP_CAT(NDNBOOST_PP_SEQ_ELEM_ ## i, seq))
 #    else
-#        define BOOST_PP_SEQ_ELEM_I(i, seq) BOOST_PP_SEQ_ELEM_II(BOOST_PP_SEQ_ELEM_ ## i seq)
+#        define NDNBOOST_PP_SEQ_ELEM_I(i, seq) NDNBOOST_PP_SEQ_ELEM_II(NDNBOOST_PP_SEQ_ELEM_ ## i seq)
 #    endif
-#    define BOOST_PP_SEQ_ELEM_II(im) BOOST_PP_SEQ_ELEM_III(im)
-#    define BOOST_PP_SEQ_ELEM_III(x, _) x
+#    define NDNBOOST_PP_SEQ_ELEM_II(im) NDNBOOST_PP_SEQ_ELEM_III(im)
+#    define NDNBOOST_PP_SEQ_ELEM_III(x, _) x
 # endif
 #
-# define BOOST_PP_SEQ_ELEM_0(x) x, BOOST_PP_NIL
-# define BOOST_PP_SEQ_ELEM_1(_) BOOST_PP_SEQ_ELEM_0
-# define BOOST_PP_SEQ_ELEM_2(_) BOOST_PP_SEQ_ELEM_1
-# define BOOST_PP_SEQ_ELEM_3(_) BOOST_PP_SEQ_ELEM_2
-# define BOOST_PP_SEQ_ELEM_4(_) BOOST_PP_SEQ_ELEM_3
-# define BOOST_PP_SEQ_ELEM_5(_) BOOST_PP_SEQ_ELEM_4
-# define BOOST_PP_SEQ_ELEM_6(_) BOOST_PP_SEQ_ELEM_5
-# define BOOST_PP_SEQ_ELEM_7(_) BOOST_PP_SEQ_ELEM_6
-# define BOOST_PP_SEQ_ELEM_8(_) BOOST_PP_SEQ_ELEM_7
-# define BOOST_PP_SEQ_ELEM_9(_) BOOST_PP_SEQ_ELEM_8
-# define BOOST_PP_SEQ_ELEM_10(_) BOOST_PP_SEQ_ELEM_9
-# define BOOST_PP_SEQ_ELEM_11(_) BOOST_PP_SEQ_ELEM_10
-# define BOOST_PP_SEQ_ELEM_12(_) BOOST_PP_SEQ_ELEM_11
-# define BOOST_PP_SEQ_ELEM_13(_) BOOST_PP_SEQ_ELEM_12
-# define BOOST_PP_SEQ_ELEM_14(_) BOOST_PP_SEQ_ELEM_13
-# define BOOST_PP_SEQ_ELEM_15(_) BOOST_PP_SEQ_ELEM_14
-# define BOOST_PP_SEQ_ELEM_16(_) BOOST_PP_SEQ_ELEM_15
-# define BOOST_PP_SEQ_ELEM_17(_) BOOST_PP_SEQ_ELEM_16
-# define BOOST_PP_SEQ_ELEM_18(_) BOOST_PP_SEQ_ELEM_17
-# define BOOST_PP_SEQ_ELEM_19(_) BOOST_PP_SEQ_ELEM_18
-# define BOOST_PP_SEQ_ELEM_20(_) BOOST_PP_SEQ_ELEM_19
-# define BOOST_PP_SEQ_ELEM_21(_) BOOST_PP_SEQ_ELEM_20
-# define BOOST_PP_SEQ_ELEM_22(_) BOOST_PP_SEQ_ELEM_21
-# define BOOST_PP_SEQ_ELEM_23(_) BOOST_PP_SEQ_ELEM_22
-# define BOOST_PP_SEQ_ELEM_24(_) BOOST_PP_SEQ_ELEM_23
-# define BOOST_PP_SEQ_ELEM_25(_) BOOST_PP_SEQ_ELEM_24
-# define BOOST_PP_SEQ_ELEM_26(_) BOOST_PP_SEQ_ELEM_25
-# define BOOST_PP_SEQ_ELEM_27(_) BOOST_PP_SEQ_ELEM_26
-# define BOOST_PP_SEQ_ELEM_28(_) BOOST_PP_SEQ_ELEM_27
-# define BOOST_PP_SEQ_ELEM_29(_) BOOST_PP_SEQ_ELEM_28
-# define BOOST_PP_SEQ_ELEM_30(_) BOOST_PP_SEQ_ELEM_29
-# define BOOST_PP_SEQ_ELEM_31(_) BOOST_PP_SEQ_ELEM_30
-# define BOOST_PP_SEQ_ELEM_32(_) BOOST_PP_SEQ_ELEM_31
-# define BOOST_PP_SEQ_ELEM_33(_) BOOST_PP_SEQ_ELEM_32
-# define BOOST_PP_SEQ_ELEM_34(_) BOOST_PP_SEQ_ELEM_33
-# define BOOST_PP_SEQ_ELEM_35(_) BOOST_PP_SEQ_ELEM_34
-# define BOOST_PP_SEQ_ELEM_36(_) BOOST_PP_SEQ_ELEM_35
-# define BOOST_PP_SEQ_ELEM_37(_) BOOST_PP_SEQ_ELEM_36
-# define BOOST_PP_SEQ_ELEM_38(_) BOOST_PP_SEQ_ELEM_37
-# define BOOST_PP_SEQ_ELEM_39(_) BOOST_PP_SEQ_ELEM_38
-# define BOOST_PP_SEQ_ELEM_40(_) BOOST_PP_SEQ_ELEM_39
-# define BOOST_PP_SEQ_ELEM_41(_) BOOST_PP_SEQ_ELEM_40
-# define BOOST_PP_SEQ_ELEM_42(_) BOOST_PP_SEQ_ELEM_41
-# define BOOST_PP_SEQ_ELEM_43(_) BOOST_PP_SEQ_ELEM_42
-# define BOOST_PP_SEQ_ELEM_44(_) BOOST_PP_SEQ_ELEM_43
-# define BOOST_PP_SEQ_ELEM_45(_) BOOST_PP_SEQ_ELEM_44
-# define BOOST_PP_SEQ_ELEM_46(_) BOOST_PP_SEQ_ELEM_45
-# define BOOST_PP_SEQ_ELEM_47(_) BOOST_PP_SEQ_ELEM_46
-# define BOOST_PP_SEQ_ELEM_48(_) BOOST_PP_SEQ_ELEM_47
-# define BOOST_PP_SEQ_ELEM_49(_) BOOST_PP_SEQ_ELEM_48
-# define BOOST_PP_SEQ_ELEM_50(_) BOOST_PP_SEQ_ELEM_49
-# define BOOST_PP_SEQ_ELEM_51(_) BOOST_PP_SEQ_ELEM_50
-# define BOOST_PP_SEQ_ELEM_52(_) BOOST_PP_SEQ_ELEM_51
-# define BOOST_PP_SEQ_ELEM_53(_) BOOST_PP_SEQ_ELEM_52
-# define BOOST_PP_SEQ_ELEM_54(_) BOOST_PP_SEQ_ELEM_53
-# define BOOST_PP_SEQ_ELEM_55(_) BOOST_PP_SEQ_ELEM_54
-# define BOOST_PP_SEQ_ELEM_56(_) BOOST_PP_SEQ_ELEM_55
-# define BOOST_PP_SEQ_ELEM_57(_) BOOST_PP_SEQ_ELEM_56
-# define BOOST_PP_SEQ_ELEM_58(_) BOOST_PP_SEQ_ELEM_57
-# define BOOST_PP_SEQ_ELEM_59(_) BOOST_PP_SEQ_ELEM_58
-# define BOOST_PP_SEQ_ELEM_60(_) BOOST_PP_SEQ_ELEM_59
-# define BOOST_PP_SEQ_ELEM_61(_) BOOST_PP_SEQ_ELEM_60
-# define BOOST_PP_SEQ_ELEM_62(_) BOOST_PP_SEQ_ELEM_61
-# define BOOST_PP_SEQ_ELEM_63(_) BOOST_PP_SEQ_ELEM_62
-# define BOOST_PP_SEQ_ELEM_64(_) BOOST_PP_SEQ_ELEM_63
-# define BOOST_PP_SEQ_ELEM_65(_) BOOST_PP_SEQ_ELEM_64
-# define BOOST_PP_SEQ_ELEM_66(_) BOOST_PP_SEQ_ELEM_65
-# define BOOST_PP_SEQ_ELEM_67(_) BOOST_PP_SEQ_ELEM_66
-# define BOOST_PP_SEQ_ELEM_68(_) BOOST_PP_SEQ_ELEM_67
-# define BOOST_PP_SEQ_ELEM_69(_) BOOST_PP_SEQ_ELEM_68
-# define BOOST_PP_SEQ_ELEM_70(_) BOOST_PP_SEQ_ELEM_69
-# define BOOST_PP_SEQ_ELEM_71(_) BOOST_PP_SEQ_ELEM_70
-# define BOOST_PP_SEQ_ELEM_72(_) BOOST_PP_SEQ_ELEM_71
-# define BOOST_PP_SEQ_ELEM_73(_) BOOST_PP_SEQ_ELEM_72
-# define BOOST_PP_SEQ_ELEM_74(_) BOOST_PP_SEQ_ELEM_73
-# define BOOST_PP_SEQ_ELEM_75(_) BOOST_PP_SEQ_ELEM_74
-# define BOOST_PP_SEQ_ELEM_76(_) BOOST_PP_SEQ_ELEM_75
-# define BOOST_PP_SEQ_ELEM_77(_) BOOST_PP_SEQ_ELEM_76
-# define BOOST_PP_SEQ_ELEM_78(_) BOOST_PP_SEQ_ELEM_77
-# define BOOST_PP_SEQ_ELEM_79(_) BOOST_PP_SEQ_ELEM_78
-# define BOOST_PP_SEQ_ELEM_80(_) BOOST_PP_SEQ_ELEM_79
-# define BOOST_PP_SEQ_ELEM_81(_) BOOST_PP_SEQ_ELEM_80
-# define BOOST_PP_SEQ_ELEM_82(_) BOOST_PP_SEQ_ELEM_81
-# define BOOST_PP_SEQ_ELEM_83(_) BOOST_PP_SEQ_ELEM_82
-# define BOOST_PP_SEQ_ELEM_84(_) BOOST_PP_SEQ_ELEM_83
-# define BOOST_PP_SEQ_ELEM_85(_) BOOST_PP_SEQ_ELEM_84
-# define BOOST_PP_SEQ_ELEM_86(_) BOOST_PP_SEQ_ELEM_85
-# define BOOST_PP_SEQ_ELEM_87(_) BOOST_PP_SEQ_ELEM_86
-# define BOOST_PP_SEQ_ELEM_88(_) BOOST_PP_SEQ_ELEM_87
-# define BOOST_PP_SEQ_ELEM_89(_) BOOST_PP_SEQ_ELEM_88
-# define BOOST_PP_SEQ_ELEM_90(_) BOOST_PP_SEQ_ELEM_89
-# define BOOST_PP_SEQ_ELEM_91(_) BOOST_PP_SEQ_ELEM_90
-# define BOOST_PP_SEQ_ELEM_92(_) BOOST_PP_SEQ_ELEM_91
-# define BOOST_PP_SEQ_ELEM_93(_) BOOST_PP_SEQ_ELEM_92
-# define BOOST_PP_SEQ_ELEM_94(_) BOOST_PP_SEQ_ELEM_93
-# define BOOST_PP_SEQ_ELEM_95(_) BOOST_PP_SEQ_ELEM_94
-# define BOOST_PP_SEQ_ELEM_96(_) BOOST_PP_SEQ_ELEM_95
-# define BOOST_PP_SEQ_ELEM_97(_) BOOST_PP_SEQ_ELEM_96
-# define BOOST_PP_SEQ_ELEM_98(_) BOOST_PP_SEQ_ELEM_97
-# define BOOST_PP_SEQ_ELEM_99(_) BOOST_PP_SEQ_ELEM_98
-# define BOOST_PP_SEQ_ELEM_100(_) BOOST_PP_SEQ_ELEM_99
-# define BOOST_PP_SEQ_ELEM_101(_) BOOST_PP_SEQ_ELEM_100
-# define BOOST_PP_SEQ_ELEM_102(_) BOOST_PP_SEQ_ELEM_101
-# define BOOST_PP_SEQ_ELEM_103(_) BOOST_PP_SEQ_ELEM_102
-# define BOOST_PP_SEQ_ELEM_104(_) BOOST_PP_SEQ_ELEM_103
-# define BOOST_PP_SEQ_ELEM_105(_) BOOST_PP_SEQ_ELEM_104
-# define BOOST_PP_SEQ_ELEM_106(_) BOOST_PP_SEQ_ELEM_105
-# define BOOST_PP_SEQ_ELEM_107(_) BOOST_PP_SEQ_ELEM_106
-# define BOOST_PP_SEQ_ELEM_108(_) BOOST_PP_SEQ_ELEM_107
-# define BOOST_PP_SEQ_ELEM_109(_) BOOST_PP_SEQ_ELEM_108
-# define BOOST_PP_SEQ_ELEM_110(_) BOOST_PP_SEQ_ELEM_109
-# define BOOST_PP_SEQ_ELEM_111(_) BOOST_PP_SEQ_ELEM_110
-# define BOOST_PP_SEQ_ELEM_112(_) BOOST_PP_SEQ_ELEM_111
-# define BOOST_PP_SEQ_ELEM_113(_) BOOST_PP_SEQ_ELEM_112
-# define BOOST_PP_SEQ_ELEM_114(_) BOOST_PP_SEQ_ELEM_113
-# define BOOST_PP_SEQ_ELEM_115(_) BOOST_PP_SEQ_ELEM_114
-# define BOOST_PP_SEQ_ELEM_116(_) BOOST_PP_SEQ_ELEM_115
-# define BOOST_PP_SEQ_ELEM_117(_) BOOST_PP_SEQ_ELEM_116
-# define BOOST_PP_SEQ_ELEM_118(_) BOOST_PP_SEQ_ELEM_117
-# define BOOST_PP_SEQ_ELEM_119(_) BOOST_PP_SEQ_ELEM_118
-# define BOOST_PP_SEQ_ELEM_120(_) BOOST_PP_SEQ_ELEM_119
-# define BOOST_PP_SEQ_ELEM_121(_) BOOST_PP_SEQ_ELEM_120
-# define BOOST_PP_SEQ_ELEM_122(_) BOOST_PP_SEQ_ELEM_121
-# define BOOST_PP_SEQ_ELEM_123(_) BOOST_PP_SEQ_ELEM_122
-# define BOOST_PP_SEQ_ELEM_124(_) BOOST_PP_SEQ_ELEM_123
-# define BOOST_PP_SEQ_ELEM_125(_) BOOST_PP_SEQ_ELEM_124
-# define BOOST_PP_SEQ_ELEM_126(_) BOOST_PP_SEQ_ELEM_125
-# define BOOST_PP_SEQ_ELEM_127(_) BOOST_PP_SEQ_ELEM_126
-# define BOOST_PP_SEQ_ELEM_128(_) BOOST_PP_SEQ_ELEM_127
-# define BOOST_PP_SEQ_ELEM_129(_) BOOST_PP_SEQ_ELEM_128
-# define BOOST_PP_SEQ_ELEM_130(_) BOOST_PP_SEQ_ELEM_129
-# define BOOST_PP_SEQ_ELEM_131(_) BOOST_PP_SEQ_ELEM_130
-# define BOOST_PP_SEQ_ELEM_132(_) BOOST_PP_SEQ_ELEM_131
-# define BOOST_PP_SEQ_ELEM_133(_) BOOST_PP_SEQ_ELEM_132
-# define BOOST_PP_SEQ_ELEM_134(_) BOOST_PP_SEQ_ELEM_133
-# define BOOST_PP_SEQ_ELEM_135(_) BOOST_PP_SEQ_ELEM_134
-# define BOOST_PP_SEQ_ELEM_136(_) BOOST_PP_SEQ_ELEM_135
-# define BOOST_PP_SEQ_ELEM_137(_) BOOST_PP_SEQ_ELEM_136
-# define BOOST_PP_SEQ_ELEM_138(_) BOOST_PP_SEQ_ELEM_137
-# define BOOST_PP_SEQ_ELEM_139(_) BOOST_PP_SEQ_ELEM_138
-# define BOOST_PP_SEQ_ELEM_140(_) BOOST_PP_SEQ_ELEM_139
-# define BOOST_PP_SEQ_ELEM_141(_) BOOST_PP_SEQ_ELEM_140
-# define BOOST_PP_SEQ_ELEM_142(_) BOOST_PP_SEQ_ELEM_141
-# define BOOST_PP_SEQ_ELEM_143(_) BOOST_PP_SEQ_ELEM_142
-# define BOOST_PP_SEQ_ELEM_144(_) BOOST_PP_SEQ_ELEM_143
-# define BOOST_PP_SEQ_ELEM_145(_) BOOST_PP_SEQ_ELEM_144
-# define BOOST_PP_SEQ_ELEM_146(_) BOOST_PP_SEQ_ELEM_145
-# define BOOST_PP_SEQ_ELEM_147(_) BOOST_PP_SEQ_ELEM_146
-# define BOOST_PP_SEQ_ELEM_148(_) BOOST_PP_SEQ_ELEM_147
-# define BOOST_PP_SEQ_ELEM_149(_) BOOST_PP_SEQ_ELEM_148
-# define BOOST_PP_SEQ_ELEM_150(_) BOOST_PP_SEQ_ELEM_149
-# define BOOST_PP_SEQ_ELEM_151(_) BOOST_PP_SEQ_ELEM_150
-# define BOOST_PP_SEQ_ELEM_152(_) BOOST_PP_SEQ_ELEM_151
-# define BOOST_PP_SEQ_ELEM_153(_) BOOST_PP_SEQ_ELEM_152
-# define BOOST_PP_SEQ_ELEM_154(_) BOOST_PP_SEQ_ELEM_153
-# define BOOST_PP_SEQ_ELEM_155(_) BOOST_PP_SEQ_ELEM_154
-# define BOOST_PP_SEQ_ELEM_156(_) BOOST_PP_SEQ_ELEM_155
-# define BOOST_PP_SEQ_ELEM_157(_) BOOST_PP_SEQ_ELEM_156
-# define BOOST_PP_SEQ_ELEM_158(_) BOOST_PP_SEQ_ELEM_157
-# define BOOST_PP_SEQ_ELEM_159(_) BOOST_PP_SEQ_ELEM_158
-# define BOOST_PP_SEQ_ELEM_160(_) BOOST_PP_SEQ_ELEM_159
-# define BOOST_PP_SEQ_ELEM_161(_) BOOST_PP_SEQ_ELEM_160
-# define BOOST_PP_SEQ_ELEM_162(_) BOOST_PP_SEQ_ELEM_161
-# define BOOST_PP_SEQ_ELEM_163(_) BOOST_PP_SEQ_ELEM_162
-# define BOOST_PP_SEQ_ELEM_164(_) BOOST_PP_SEQ_ELEM_163
-# define BOOST_PP_SEQ_ELEM_165(_) BOOST_PP_SEQ_ELEM_164
-# define BOOST_PP_SEQ_ELEM_166(_) BOOST_PP_SEQ_ELEM_165
-# define BOOST_PP_SEQ_ELEM_167(_) BOOST_PP_SEQ_ELEM_166
-# define BOOST_PP_SEQ_ELEM_168(_) BOOST_PP_SEQ_ELEM_167
-# define BOOST_PP_SEQ_ELEM_169(_) BOOST_PP_SEQ_ELEM_168
-# define BOOST_PP_SEQ_ELEM_170(_) BOOST_PP_SEQ_ELEM_169
-# define BOOST_PP_SEQ_ELEM_171(_) BOOST_PP_SEQ_ELEM_170
-# define BOOST_PP_SEQ_ELEM_172(_) BOOST_PP_SEQ_ELEM_171
-# define BOOST_PP_SEQ_ELEM_173(_) BOOST_PP_SEQ_ELEM_172
-# define BOOST_PP_SEQ_ELEM_174(_) BOOST_PP_SEQ_ELEM_173
-# define BOOST_PP_SEQ_ELEM_175(_) BOOST_PP_SEQ_ELEM_174
-# define BOOST_PP_SEQ_ELEM_176(_) BOOST_PP_SEQ_ELEM_175
-# define BOOST_PP_SEQ_ELEM_177(_) BOOST_PP_SEQ_ELEM_176
-# define BOOST_PP_SEQ_ELEM_178(_) BOOST_PP_SEQ_ELEM_177
-# define BOOST_PP_SEQ_ELEM_179(_) BOOST_PP_SEQ_ELEM_178
-# define BOOST_PP_SEQ_ELEM_180(_) BOOST_PP_SEQ_ELEM_179
-# define BOOST_PP_SEQ_ELEM_181(_) BOOST_PP_SEQ_ELEM_180
-# define BOOST_PP_SEQ_ELEM_182(_) BOOST_PP_SEQ_ELEM_181
-# define BOOST_PP_SEQ_ELEM_183(_) BOOST_PP_SEQ_ELEM_182
-# define BOOST_PP_SEQ_ELEM_184(_) BOOST_PP_SEQ_ELEM_183
-# define BOOST_PP_SEQ_ELEM_185(_) BOOST_PP_SEQ_ELEM_184
-# define BOOST_PP_SEQ_ELEM_186(_) BOOST_PP_SEQ_ELEM_185
-# define BOOST_PP_SEQ_ELEM_187(_) BOOST_PP_SEQ_ELEM_186
-# define BOOST_PP_SEQ_ELEM_188(_) BOOST_PP_SEQ_ELEM_187
-# define BOOST_PP_SEQ_ELEM_189(_) BOOST_PP_SEQ_ELEM_188
-# define BOOST_PP_SEQ_ELEM_190(_) BOOST_PP_SEQ_ELEM_189
-# define BOOST_PP_SEQ_ELEM_191(_) BOOST_PP_SEQ_ELEM_190
-# define BOOST_PP_SEQ_ELEM_192(_) BOOST_PP_SEQ_ELEM_191
-# define BOOST_PP_SEQ_ELEM_193(_) BOOST_PP_SEQ_ELEM_192
-# define BOOST_PP_SEQ_ELEM_194(_) BOOST_PP_SEQ_ELEM_193
-# define BOOST_PP_SEQ_ELEM_195(_) BOOST_PP_SEQ_ELEM_194
-# define BOOST_PP_SEQ_ELEM_196(_) BOOST_PP_SEQ_ELEM_195
-# define BOOST_PP_SEQ_ELEM_197(_) BOOST_PP_SEQ_ELEM_196
-# define BOOST_PP_SEQ_ELEM_198(_) BOOST_PP_SEQ_ELEM_197
-# define BOOST_PP_SEQ_ELEM_199(_) BOOST_PP_SEQ_ELEM_198
-# define BOOST_PP_SEQ_ELEM_200(_) BOOST_PP_SEQ_ELEM_199
-# define BOOST_PP_SEQ_ELEM_201(_) BOOST_PP_SEQ_ELEM_200
-# define BOOST_PP_SEQ_ELEM_202(_) BOOST_PP_SEQ_ELEM_201
-# define BOOST_PP_SEQ_ELEM_203(_) BOOST_PP_SEQ_ELEM_202
-# define BOOST_PP_SEQ_ELEM_204(_) BOOST_PP_SEQ_ELEM_203
-# define BOOST_PP_SEQ_ELEM_205(_) BOOST_PP_SEQ_ELEM_204
-# define BOOST_PP_SEQ_ELEM_206(_) BOOST_PP_SEQ_ELEM_205
-# define BOOST_PP_SEQ_ELEM_207(_) BOOST_PP_SEQ_ELEM_206
-# define BOOST_PP_SEQ_ELEM_208(_) BOOST_PP_SEQ_ELEM_207
-# define BOOST_PP_SEQ_ELEM_209(_) BOOST_PP_SEQ_ELEM_208
-# define BOOST_PP_SEQ_ELEM_210(_) BOOST_PP_SEQ_ELEM_209
-# define BOOST_PP_SEQ_ELEM_211(_) BOOST_PP_SEQ_ELEM_210
-# define BOOST_PP_SEQ_ELEM_212(_) BOOST_PP_SEQ_ELEM_211
-# define BOOST_PP_SEQ_ELEM_213(_) BOOST_PP_SEQ_ELEM_212
-# define BOOST_PP_SEQ_ELEM_214(_) BOOST_PP_SEQ_ELEM_213
-# define BOOST_PP_SEQ_ELEM_215(_) BOOST_PP_SEQ_ELEM_214
-# define BOOST_PP_SEQ_ELEM_216(_) BOOST_PP_SEQ_ELEM_215
-# define BOOST_PP_SEQ_ELEM_217(_) BOOST_PP_SEQ_ELEM_216
-# define BOOST_PP_SEQ_ELEM_218(_) BOOST_PP_SEQ_ELEM_217
-# define BOOST_PP_SEQ_ELEM_219(_) BOOST_PP_SEQ_ELEM_218
-# define BOOST_PP_SEQ_ELEM_220(_) BOOST_PP_SEQ_ELEM_219
-# define BOOST_PP_SEQ_ELEM_221(_) BOOST_PP_SEQ_ELEM_220
-# define BOOST_PP_SEQ_ELEM_222(_) BOOST_PP_SEQ_ELEM_221
-# define BOOST_PP_SEQ_ELEM_223(_) BOOST_PP_SEQ_ELEM_222
-# define BOOST_PP_SEQ_ELEM_224(_) BOOST_PP_SEQ_ELEM_223
-# define BOOST_PP_SEQ_ELEM_225(_) BOOST_PP_SEQ_ELEM_224
-# define BOOST_PP_SEQ_ELEM_226(_) BOOST_PP_SEQ_ELEM_225
-# define BOOST_PP_SEQ_ELEM_227(_) BOOST_PP_SEQ_ELEM_226
-# define BOOST_PP_SEQ_ELEM_228(_) BOOST_PP_SEQ_ELEM_227
-# define BOOST_PP_SEQ_ELEM_229(_) BOOST_PP_SEQ_ELEM_228
-# define BOOST_PP_SEQ_ELEM_230(_) BOOST_PP_SEQ_ELEM_229
-# define BOOST_PP_SEQ_ELEM_231(_) BOOST_PP_SEQ_ELEM_230
-# define BOOST_PP_SEQ_ELEM_232(_) BOOST_PP_SEQ_ELEM_231
-# define BOOST_PP_SEQ_ELEM_233(_) BOOST_PP_SEQ_ELEM_232
-# define BOOST_PP_SEQ_ELEM_234(_) BOOST_PP_SEQ_ELEM_233
-# define BOOST_PP_SEQ_ELEM_235(_) BOOST_PP_SEQ_ELEM_234
-# define BOOST_PP_SEQ_ELEM_236(_) BOOST_PP_SEQ_ELEM_235
-# define BOOST_PP_SEQ_ELEM_237(_) BOOST_PP_SEQ_ELEM_236
-# define BOOST_PP_SEQ_ELEM_238(_) BOOST_PP_SEQ_ELEM_237
-# define BOOST_PP_SEQ_ELEM_239(_) BOOST_PP_SEQ_ELEM_238
-# define BOOST_PP_SEQ_ELEM_240(_) BOOST_PP_SEQ_ELEM_239
-# define BOOST_PP_SEQ_ELEM_241(_) BOOST_PP_SEQ_ELEM_240
-# define BOOST_PP_SEQ_ELEM_242(_) BOOST_PP_SEQ_ELEM_241
-# define BOOST_PP_SEQ_ELEM_243(_) BOOST_PP_SEQ_ELEM_242
-# define BOOST_PP_SEQ_ELEM_244(_) BOOST_PP_SEQ_ELEM_243
-# define BOOST_PP_SEQ_ELEM_245(_) BOOST_PP_SEQ_ELEM_244
-# define BOOST_PP_SEQ_ELEM_246(_) BOOST_PP_SEQ_ELEM_245
-# define BOOST_PP_SEQ_ELEM_247(_) BOOST_PP_SEQ_ELEM_246
-# define BOOST_PP_SEQ_ELEM_248(_) BOOST_PP_SEQ_ELEM_247
-# define BOOST_PP_SEQ_ELEM_249(_) BOOST_PP_SEQ_ELEM_248
-# define BOOST_PP_SEQ_ELEM_250(_) BOOST_PP_SEQ_ELEM_249
-# define BOOST_PP_SEQ_ELEM_251(_) BOOST_PP_SEQ_ELEM_250
-# define BOOST_PP_SEQ_ELEM_252(_) BOOST_PP_SEQ_ELEM_251
-# define BOOST_PP_SEQ_ELEM_253(_) BOOST_PP_SEQ_ELEM_252
-# define BOOST_PP_SEQ_ELEM_254(_) BOOST_PP_SEQ_ELEM_253
-# define BOOST_PP_SEQ_ELEM_255(_) BOOST_PP_SEQ_ELEM_254
+# define NDNBOOST_PP_SEQ_ELEM_0(x) x, NDNBOOST_PP_NIL
+# define NDNBOOST_PP_SEQ_ELEM_1(_) NDNBOOST_PP_SEQ_ELEM_0
+# define NDNBOOST_PP_SEQ_ELEM_2(_) NDNBOOST_PP_SEQ_ELEM_1
+# define NDNBOOST_PP_SEQ_ELEM_3(_) NDNBOOST_PP_SEQ_ELEM_2
+# define NDNBOOST_PP_SEQ_ELEM_4(_) NDNBOOST_PP_SEQ_ELEM_3
+# define NDNBOOST_PP_SEQ_ELEM_5(_) NDNBOOST_PP_SEQ_ELEM_4
+# define NDNBOOST_PP_SEQ_ELEM_6(_) NDNBOOST_PP_SEQ_ELEM_5
+# define NDNBOOST_PP_SEQ_ELEM_7(_) NDNBOOST_PP_SEQ_ELEM_6
+# define NDNBOOST_PP_SEQ_ELEM_8(_) NDNBOOST_PP_SEQ_ELEM_7
+# define NDNBOOST_PP_SEQ_ELEM_9(_) NDNBOOST_PP_SEQ_ELEM_8
+# define NDNBOOST_PP_SEQ_ELEM_10(_) NDNBOOST_PP_SEQ_ELEM_9
+# define NDNBOOST_PP_SEQ_ELEM_11(_) NDNBOOST_PP_SEQ_ELEM_10
+# define NDNBOOST_PP_SEQ_ELEM_12(_) NDNBOOST_PP_SEQ_ELEM_11
+# define NDNBOOST_PP_SEQ_ELEM_13(_) NDNBOOST_PP_SEQ_ELEM_12
+# define NDNBOOST_PP_SEQ_ELEM_14(_) NDNBOOST_PP_SEQ_ELEM_13
+# define NDNBOOST_PP_SEQ_ELEM_15(_) NDNBOOST_PP_SEQ_ELEM_14
+# define NDNBOOST_PP_SEQ_ELEM_16(_) NDNBOOST_PP_SEQ_ELEM_15
+# define NDNBOOST_PP_SEQ_ELEM_17(_) NDNBOOST_PP_SEQ_ELEM_16
+# define NDNBOOST_PP_SEQ_ELEM_18(_) NDNBOOST_PP_SEQ_ELEM_17
+# define NDNBOOST_PP_SEQ_ELEM_19(_) NDNBOOST_PP_SEQ_ELEM_18
+# define NDNBOOST_PP_SEQ_ELEM_20(_) NDNBOOST_PP_SEQ_ELEM_19
+# define NDNBOOST_PP_SEQ_ELEM_21(_) NDNBOOST_PP_SEQ_ELEM_20
+# define NDNBOOST_PP_SEQ_ELEM_22(_) NDNBOOST_PP_SEQ_ELEM_21
+# define NDNBOOST_PP_SEQ_ELEM_23(_) NDNBOOST_PP_SEQ_ELEM_22
+# define NDNBOOST_PP_SEQ_ELEM_24(_) NDNBOOST_PP_SEQ_ELEM_23
+# define NDNBOOST_PP_SEQ_ELEM_25(_) NDNBOOST_PP_SEQ_ELEM_24
+# define NDNBOOST_PP_SEQ_ELEM_26(_) NDNBOOST_PP_SEQ_ELEM_25
+# define NDNBOOST_PP_SEQ_ELEM_27(_) NDNBOOST_PP_SEQ_ELEM_26
+# define NDNBOOST_PP_SEQ_ELEM_28(_) NDNBOOST_PP_SEQ_ELEM_27
+# define NDNBOOST_PP_SEQ_ELEM_29(_) NDNBOOST_PP_SEQ_ELEM_28
+# define NDNBOOST_PP_SEQ_ELEM_30(_) NDNBOOST_PP_SEQ_ELEM_29
+# define NDNBOOST_PP_SEQ_ELEM_31(_) NDNBOOST_PP_SEQ_ELEM_30
+# define NDNBOOST_PP_SEQ_ELEM_32(_) NDNBOOST_PP_SEQ_ELEM_31
+# define NDNBOOST_PP_SEQ_ELEM_33(_) NDNBOOST_PP_SEQ_ELEM_32
+# define NDNBOOST_PP_SEQ_ELEM_34(_) NDNBOOST_PP_SEQ_ELEM_33
+# define NDNBOOST_PP_SEQ_ELEM_35(_) NDNBOOST_PP_SEQ_ELEM_34
+# define NDNBOOST_PP_SEQ_ELEM_36(_) NDNBOOST_PP_SEQ_ELEM_35
+# define NDNBOOST_PP_SEQ_ELEM_37(_) NDNBOOST_PP_SEQ_ELEM_36
+# define NDNBOOST_PP_SEQ_ELEM_38(_) NDNBOOST_PP_SEQ_ELEM_37
+# define NDNBOOST_PP_SEQ_ELEM_39(_) NDNBOOST_PP_SEQ_ELEM_38
+# define NDNBOOST_PP_SEQ_ELEM_40(_) NDNBOOST_PP_SEQ_ELEM_39
+# define NDNBOOST_PP_SEQ_ELEM_41(_) NDNBOOST_PP_SEQ_ELEM_40
+# define NDNBOOST_PP_SEQ_ELEM_42(_) NDNBOOST_PP_SEQ_ELEM_41
+# define NDNBOOST_PP_SEQ_ELEM_43(_) NDNBOOST_PP_SEQ_ELEM_42
+# define NDNBOOST_PP_SEQ_ELEM_44(_) NDNBOOST_PP_SEQ_ELEM_43
+# define NDNBOOST_PP_SEQ_ELEM_45(_) NDNBOOST_PP_SEQ_ELEM_44
+# define NDNBOOST_PP_SEQ_ELEM_46(_) NDNBOOST_PP_SEQ_ELEM_45
+# define NDNBOOST_PP_SEQ_ELEM_47(_) NDNBOOST_PP_SEQ_ELEM_46
+# define NDNBOOST_PP_SEQ_ELEM_48(_) NDNBOOST_PP_SEQ_ELEM_47
+# define NDNBOOST_PP_SEQ_ELEM_49(_) NDNBOOST_PP_SEQ_ELEM_48
+# define NDNBOOST_PP_SEQ_ELEM_50(_) NDNBOOST_PP_SEQ_ELEM_49
+# define NDNBOOST_PP_SEQ_ELEM_51(_) NDNBOOST_PP_SEQ_ELEM_50
+# define NDNBOOST_PP_SEQ_ELEM_52(_) NDNBOOST_PP_SEQ_ELEM_51
+# define NDNBOOST_PP_SEQ_ELEM_53(_) NDNBOOST_PP_SEQ_ELEM_52
+# define NDNBOOST_PP_SEQ_ELEM_54(_) NDNBOOST_PP_SEQ_ELEM_53
+# define NDNBOOST_PP_SEQ_ELEM_55(_) NDNBOOST_PP_SEQ_ELEM_54
+# define NDNBOOST_PP_SEQ_ELEM_56(_) NDNBOOST_PP_SEQ_ELEM_55
+# define NDNBOOST_PP_SEQ_ELEM_57(_) NDNBOOST_PP_SEQ_ELEM_56
+# define NDNBOOST_PP_SEQ_ELEM_58(_) NDNBOOST_PP_SEQ_ELEM_57
+# define NDNBOOST_PP_SEQ_ELEM_59(_) NDNBOOST_PP_SEQ_ELEM_58
+# define NDNBOOST_PP_SEQ_ELEM_60(_) NDNBOOST_PP_SEQ_ELEM_59
+# define NDNBOOST_PP_SEQ_ELEM_61(_) NDNBOOST_PP_SEQ_ELEM_60
+# define NDNBOOST_PP_SEQ_ELEM_62(_) NDNBOOST_PP_SEQ_ELEM_61
+# define NDNBOOST_PP_SEQ_ELEM_63(_) NDNBOOST_PP_SEQ_ELEM_62
+# define NDNBOOST_PP_SEQ_ELEM_64(_) NDNBOOST_PP_SEQ_ELEM_63
+# define NDNBOOST_PP_SEQ_ELEM_65(_) NDNBOOST_PP_SEQ_ELEM_64
+# define NDNBOOST_PP_SEQ_ELEM_66(_) NDNBOOST_PP_SEQ_ELEM_65
+# define NDNBOOST_PP_SEQ_ELEM_67(_) NDNBOOST_PP_SEQ_ELEM_66
+# define NDNBOOST_PP_SEQ_ELEM_68(_) NDNBOOST_PP_SEQ_ELEM_67
+# define NDNBOOST_PP_SEQ_ELEM_69(_) NDNBOOST_PP_SEQ_ELEM_68
+# define NDNBOOST_PP_SEQ_ELEM_70(_) NDNBOOST_PP_SEQ_ELEM_69
+# define NDNBOOST_PP_SEQ_ELEM_71(_) NDNBOOST_PP_SEQ_ELEM_70
+# define NDNBOOST_PP_SEQ_ELEM_72(_) NDNBOOST_PP_SEQ_ELEM_71
+# define NDNBOOST_PP_SEQ_ELEM_73(_) NDNBOOST_PP_SEQ_ELEM_72
+# define NDNBOOST_PP_SEQ_ELEM_74(_) NDNBOOST_PP_SEQ_ELEM_73
+# define NDNBOOST_PP_SEQ_ELEM_75(_) NDNBOOST_PP_SEQ_ELEM_74
+# define NDNBOOST_PP_SEQ_ELEM_76(_) NDNBOOST_PP_SEQ_ELEM_75
+# define NDNBOOST_PP_SEQ_ELEM_77(_) NDNBOOST_PP_SEQ_ELEM_76
+# define NDNBOOST_PP_SEQ_ELEM_78(_) NDNBOOST_PP_SEQ_ELEM_77
+# define NDNBOOST_PP_SEQ_ELEM_79(_) NDNBOOST_PP_SEQ_ELEM_78
+# define NDNBOOST_PP_SEQ_ELEM_80(_) NDNBOOST_PP_SEQ_ELEM_79
+# define NDNBOOST_PP_SEQ_ELEM_81(_) NDNBOOST_PP_SEQ_ELEM_80
+# define NDNBOOST_PP_SEQ_ELEM_82(_) NDNBOOST_PP_SEQ_ELEM_81
+# define NDNBOOST_PP_SEQ_ELEM_83(_) NDNBOOST_PP_SEQ_ELEM_82
+# define NDNBOOST_PP_SEQ_ELEM_84(_) NDNBOOST_PP_SEQ_ELEM_83
+# define NDNBOOST_PP_SEQ_ELEM_85(_) NDNBOOST_PP_SEQ_ELEM_84
+# define NDNBOOST_PP_SEQ_ELEM_86(_) NDNBOOST_PP_SEQ_ELEM_85
+# define NDNBOOST_PP_SEQ_ELEM_87(_) NDNBOOST_PP_SEQ_ELEM_86
+# define NDNBOOST_PP_SEQ_ELEM_88(_) NDNBOOST_PP_SEQ_ELEM_87
+# define NDNBOOST_PP_SEQ_ELEM_89(_) NDNBOOST_PP_SEQ_ELEM_88
+# define NDNBOOST_PP_SEQ_ELEM_90(_) NDNBOOST_PP_SEQ_ELEM_89
+# define NDNBOOST_PP_SEQ_ELEM_91(_) NDNBOOST_PP_SEQ_ELEM_90
+# define NDNBOOST_PP_SEQ_ELEM_92(_) NDNBOOST_PP_SEQ_ELEM_91
+# define NDNBOOST_PP_SEQ_ELEM_93(_) NDNBOOST_PP_SEQ_ELEM_92
+# define NDNBOOST_PP_SEQ_ELEM_94(_) NDNBOOST_PP_SEQ_ELEM_93
+# define NDNBOOST_PP_SEQ_ELEM_95(_) NDNBOOST_PP_SEQ_ELEM_94
+# define NDNBOOST_PP_SEQ_ELEM_96(_) NDNBOOST_PP_SEQ_ELEM_95
+# define NDNBOOST_PP_SEQ_ELEM_97(_) NDNBOOST_PP_SEQ_ELEM_96
+# define NDNBOOST_PP_SEQ_ELEM_98(_) NDNBOOST_PP_SEQ_ELEM_97
+# define NDNBOOST_PP_SEQ_ELEM_99(_) NDNBOOST_PP_SEQ_ELEM_98
+# define NDNBOOST_PP_SEQ_ELEM_100(_) NDNBOOST_PP_SEQ_ELEM_99
+# define NDNBOOST_PP_SEQ_ELEM_101(_) NDNBOOST_PP_SEQ_ELEM_100
+# define NDNBOOST_PP_SEQ_ELEM_102(_) NDNBOOST_PP_SEQ_ELEM_101
+# define NDNBOOST_PP_SEQ_ELEM_103(_) NDNBOOST_PP_SEQ_ELEM_102
+# define NDNBOOST_PP_SEQ_ELEM_104(_) NDNBOOST_PP_SEQ_ELEM_103
+# define NDNBOOST_PP_SEQ_ELEM_105(_) NDNBOOST_PP_SEQ_ELEM_104
+# define NDNBOOST_PP_SEQ_ELEM_106(_) NDNBOOST_PP_SEQ_ELEM_105
+# define NDNBOOST_PP_SEQ_ELEM_107(_) NDNBOOST_PP_SEQ_ELEM_106
+# define NDNBOOST_PP_SEQ_ELEM_108(_) NDNBOOST_PP_SEQ_ELEM_107
+# define NDNBOOST_PP_SEQ_ELEM_109(_) NDNBOOST_PP_SEQ_ELEM_108
+# define NDNBOOST_PP_SEQ_ELEM_110(_) NDNBOOST_PP_SEQ_ELEM_109
+# define NDNBOOST_PP_SEQ_ELEM_111(_) NDNBOOST_PP_SEQ_ELEM_110
+# define NDNBOOST_PP_SEQ_ELEM_112(_) NDNBOOST_PP_SEQ_ELEM_111
+# define NDNBOOST_PP_SEQ_ELEM_113(_) NDNBOOST_PP_SEQ_ELEM_112
+# define NDNBOOST_PP_SEQ_ELEM_114(_) NDNBOOST_PP_SEQ_ELEM_113
+# define NDNBOOST_PP_SEQ_ELEM_115(_) NDNBOOST_PP_SEQ_ELEM_114
+# define NDNBOOST_PP_SEQ_ELEM_116(_) NDNBOOST_PP_SEQ_ELEM_115
+# define NDNBOOST_PP_SEQ_ELEM_117(_) NDNBOOST_PP_SEQ_ELEM_116
+# define NDNBOOST_PP_SEQ_ELEM_118(_) NDNBOOST_PP_SEQ_ELEM_117
+# define NDNBOOST_PP_SEQ_ELEM_119(_) NDNBOOST_PP_SEQ_ELEM_118
+# define NDNBOOST_PP_SEQ_ELEM_120(_) NDNBOOST_PP_SEQ_ELEM_119
+# define NDNBOOST_PP_SEQ_ELEM_121(_) NDNBOOST_PP_SEQ_ELEM_120
+# define NDNBOOST_PP_SEQ_ELEM_122(_) NDNBOOST_PP_SEQ_ELEM_121
+# define NDNBOOST_PP_SEQ_ELEM_123(_) NDNBOOST_PP_SEQ_ELEM_122
+# define NDNBOOST_PP_SEQ_ELEM_124(_) NDNBOOST_PP_SEQ_ELEM_123
+# define NDNBOOST_PP_SEQ_ELEM_125(_) NDNBOOST_PP_SEQ_ELEM_124
+# define NDNBOOST_PP_SEQ_ELEM_126(_) NDNBOOST_PP_SEQ_ELEM_125
+# define NDNBOOST_PP_SEQ_ELEM_127(_) NDNBOOST_PP_SEQ_ELEM_126
+# define NDNBOOST_PP_SEQ_ELEM_128(_) NDNBOOST_PP_SEQ_ELEM_127
+# define NDNBOOST_PP_SEQ_ELEM_129(_) NDNBOOST_PP_SEQ_ELEM_128
+# define NDNBOOST_PP_SEQ_ELEM_130(_) NDNBOOST_PP_SEQ_ELEM_129
+# define NDNBOOST_PP_SEQ_ELEM_131(_) NDNBOOST_PP_SEQ_ELEM_130
+# define NDNBOOST_PP_SEQ_ELEM_132(_) NDNBOOST_PP_SEQ_ELEM_131
+# define NDNBOOST_PP_SEQ_ELEM_133(_) NDNBOOST_PP_SEQ_ELEM_132
+# define NDNBOOST_PP_SEQ_ELEM_134(_) NDNBOOST_PP_SEQ_ELEM_133
+# define NDNBOOST_PP_SEQ_ELEM_135(_) NDNBOOST_PP_SEQ_ELEM_134
+# define NDNBOOST_PP_SEQ_ELEM_136(_) NDNBOOST_PP_SEQ_ELEM_135
+# define NDNBOOST_PP_SEQ_ELEM_137(_) NDNBOOST_PP_SEQ_ELEM_136
+# define NDNBOOST_PP_SEQ_ELEM_138(_) NDNBOOST_PP_SEQ_ELEM_137
+# define NDNBOOST_PP_SEQ_ELEM_139(_) NDNBOOST_PP_SEQ_ELEM_138
+# define NDNBOOST_PP_SEQ_ELEM_140(_) NDNBOOST_PP_SEQ_ELEM_139
+# define NDNBOOST_PP_SEQ_ELEM_141(_) NDNBOOST_PP_SEQ_ELEM_140
+# define NDNBOOST_PP_SEQ_ELEM_142(_) NDNBOOST_PP_SEQ_ELEM_141
+# define NDNBOOST_PP_SEQ_ELEM_143(_) NDNBOOST_PP_SEQ_ELEM_142
+# define NDNBOOST_PP_SEQ_ELEM_144(_) NDNBOOST_PP_SEQ_ELEM_143
+# define NDNBOOST_PP_SEQ_ELEM_145(_) NDNBOOST_PP_SEQ_ELEM_144
+# define NDNBOOST_PP_SEQ_ELEM_146(_) NDNBOOST_PP_SEQ_ELEM_145
+# define NDNBOOST_PP_SEQ_ELEM_147(_) NDNBOOST_PP_SEQ_ELEM_146
+# define NDNBOOST_PP_SEQ_ELEM_148(_) NDNBOOST_PP_SEQ_ELEM_147
+# define NDNBOOST_PP_SEQ_ELEM_149(_) NDNBOOST_PP_SEQ_ELEM_148
+# define NDNBOOST_PP_SEQ_ELEM_150(_) NDNBOOST_PP_SEQ_ELEM_149
+# define NDNBOOST_PP_SEQ_ELEM_151(_) NDNBOOST_PP_SEQ_ELEM_150
+# define NDNBOOST_PP_SEQ_ELEM_152(_) NDNBOOST_PP_SEQ_ELEM_151
+# define NDNBOOST_PP_SEQ_ELEM_153(_) NDNBOOST_PP_SEQ_ELEM_152
+# define NDNBOOST_PP_SEQ_ELEM_154(_) NDNBOOST_PP_SEQ_ELEM_153
+# define NDNBOOST_PP_SEQ_ELEM_155(_) NDNBOOST_PP_SEQ_ELEM_154
+# define NDNBOOST_PP_SEQ_ELEM_156(_) NDNBOOST_PP_SEQ_ELEM_155
+# define NDNBOOST_PP_SEQ_ELEM_157(_) NDNBOOST_PP_SEQ_ELEM_156
+# define NDNBOOST_PP_SEQ_ELEM_158(_) NDNBOOST_PP_SEQ_ELEM_157
+# define NDNBOOST_PP_SEQ_ELEM_159(_) NDNBOOST_PP_SEQ_ELEM_158
+# define NDNBOOST_PP_SEQ_ELEM_160(_) NDNBOOST_PP_SEQ_ELEM_159
+# define NDNBOOST_PP_SEQ_ELEM_161(_) NDNBOOST_PP_SEQ_ELEM_160
+# define NDNBOOST_PP_SEQ_ELEM_162(_) NDNBOOST_PP_SEQ_ELEM_161
+# define NDNBOOST_PP_SEQ_ELEM_163(_) NDNBOOST_PP_SEQ_ELEM_162
+# define NDNBOOST_PP_SEQ_ELEM_164(_) NDNBOOST_PP_SEQ_ELEM_163
+# define NDNBOOST_PP_SEQ_ELEM_165(_) NDNBOOST_PP_SEQ_ELEM_164
+# define NDNBOOST_PP_SEQ_ELEM_166(_) NDNBOOST_PP_SEQ_ELEM_165
+# define NDNBOOST_PP_SEQ_ELEM_167(_) NDNBOOST_PP_SEQ_ELEM_166
+# define NDNBOOST_PP_SEQ_ELEM_168(_) NDNBOOST_PP_SEQ_ELEM_167
+# define NDNBOOST_PP_SEQ_ELEM_169(_) NDNBOOST_PP_SEQ_ELEM_168
+# define NDNBOOST_PP_SEQ_ELEM_170(_) NDNBOOST_PP_SEQ_ELEM_169
+# define NDNBOOST_PP_SEQ_ELEM_171(_) NDNBOOST_PP_SEQ_ELEM_170
+# define NDNBOOST_PP_SEQ_ELEM_172(_) NDNBOOST_PP_SEQ_ELEM_171
+# define NDNBOOST_PP_SEQ_ELEM_173(_) NDNBOOST_PP_SEQ_ELEM_172
+# define NDNBOOST_PP_SEQ_ELEM_174(_) NDNBOOST_PP_SEQ_ELEM_173
+# define NDNBOOST_PP_SEQ_ELEM_175(_) NDNBOOST_PP_SEQ_ELEM_174
+# define NDNBOOST_PP_SEQ_ELEM_176(_) NDNBOOST_PP_SEQ_ELEM_175
+# define NDNBOOST_PP_SEQ_ELEM_177(_) NDNBOOST_PP_SEQ_ELEM_176
+# define NDNBOOST_PP_SEQ_ELEM_178(_) NDNBOOST_PP_SEQ_ELEM_177
+# define NDNBOOST_PP_SEQ_ELEM_179(_) NDNBOOST_PP_SEQ_ELEM_178
+# define NDNBOOST_PP_SEQ_ELEM_180(_) NDNBOOST_PP_SEQ_ELEM_179
+# define NDNBOOST_PP_SEQ_ELEM_181(_) NDNBOOST_PP_SEQ_ELEM_180
+# define NDNBOOST_PP_SEQ_ELEM_182(_) NDNBOOST_PP_SEQ_ELEM_181
+# define NDNBOOST_PP_SEQ_ELEM_183(_) NDNBOOST_PP_SEQ_ELEM_182
+# define NDNBOOST_PP_SEQ_ELEM_184(_) NDNBOOST_PP_SEQ_ELEM_183
+# define NDNBOOST_PP_SEQ_ELEM_185(_) NDNBOOST_PP_SEQ_ELEM_184
+# define NDNBOOST_PP_SEQ_ELEM_186(_) NDNBOOST_PP_SEQ_ELEM_185
+# define NDNBOOST_PP_SEQ_ELEM_187(_) NDNBOOST_PP_SEQ_ELEM_186
+# define NDNBOOST_PP_SEQ_ELEM_188(_) NDNBOOST_PP_SEQ_ELEM_187
+# define NDNBOOST_PP_SEQ_ELEM_189(_) NDNBOOST_PP_SEQ_ELEM_188
+# define NDNBOOST_PP_SEQ_ELEM_190(_) NDNBOOST_PP_SEQ_ELEM_189
+# define NDNBOOST_PP_SEQ_ELEM_191(_) NDNBOOST_PP_SEQ_ELEM_190
+# define NDNBOOST_PP_SEQ_ELEM_192(_) NDNBOOST_PP_SEQ_ELEM_191
+# define NDNBOOST_PP_SEQ_ELEM_193(_) NDNBOOST_PP_SEQ_ELEM_192
+# define NDNBOOST_PP_SEQ_ELEM_194(_) NDNBOOST_PP_SEQ_ELEM_193
+# define NDNBOOST_PP_SEQ_ELEM_195(_) NDNBOOST_PP_SEQ_ELEM_194
+# define NDNBOOST_PP_SEQ_ELEM_196(_) NDNBOOST_PP_SEQ_ELEM_195
+# define NDNBOOST_PP_SEQ_ELEM_197(_) NDNBOOST_PP_SEQ_ELEM_196
+# define NDNBOOST_PP_SEQ_ELEM_198(_) NDNBOOST_PP_SEQ_ELEM_197
+# define NDNBOOST_PP_SEQ_ELEM_199(_) NDNBOOST_PP_SEQ_ELEM_198
+# define NDNBOOST_PP_SEQ_ELEM_200(_) NDNBOOST_PP_SEQ_ELEM_199
+# define NDNBOOST_PP_SEQ_ELEM_201(_) NDNBOOST_PP_SEQ_ELEM_200
+# define NDNBOOST_PP_SEQ_ELEM_202(_) NDNBOOST_PP_SEQ_ELEM_201
+# define NDNBOOST_PP_SEQ_ELEM_203(_) NDNBOOST_PP_SEQ_ELEM_202
+# define NDNBOOST_PP_SEQ_ELEM_204(_) NDNBOOST_PP_SEQ_ELEM_203
+# define NDNBOOST_PP_SEQ_ELEM_205(_) NDNBOOST_PP_SEQ_ELEM_204
+# define NDNBOOST_PP_SEQ_ELEM_206(_) NDNBOOST_PP_SEQ_ELEM_205
+# define NDNBOOST_PP_SEQ_ELEM_207(_) NDNBOOST_PP_SEQ_ELEM_206
+# define NDNBOOST_PP_SEQ_ELEM_208(_) NDNBOOST_PP_SEQ_ELEM_207
+# define NDNBOOST_PP_SEQ_ELEM_209(_) NDNBOOST_PP_SEQ_ELEM_208
+# define NDNBOOST_PP_SEQ_ELEM_210(_) NDNBOOST_PP_SEQ_ELEM_209
+# define NDNBOOST_PP_SEQ_ELEM_211(_) NDNBOOST_PP_SEQ_ELEM_210
+# define NDNBOOST_PP_SEQ_ELEM_212(_) NDNBOOST_PP_SEQ_ELEM_211
+# define NDNBOOST_PP_SEQ_ELEM_213(_) NDNBOOST_PP_SEQ_ELEM_212
+# define NDNBOOST_PP_SEQ_ELEM_214(_) NDNBOOST_PP_SEQ_ELEM_213
+# define NDNBOOST_PP_SEQ_ELEM_215(_) NDNBOOST_PP_SEQ_ELEM_214
+# define NDNBOOST_PP_SEQ_ELEM_216(_) NDNBOOST_PP_SEQ_ELEM_215
+# define NDNBOOST_PP_SEQ_ELEM_217(_) NDNBOOST_PP_SEQ_ELEM_216
+# define NDNBOOST_PP_SEQ_ELEM_218(_) NDNBOOST_PP_SEQ_ELEM_217
+# define NDNBOOST_PP_SEQ_ELEM_219(_) NDNBOOST_PP_SEQ_ELEM_218
+# define NDNBOOST_PP_SEQ_ELEM_220(_) NDNBOOST_PP_SEQ_ELEM_219
+# define NDNBOOST_PP_SEQ_ELEM_221(_) NDNBOOST_PP_SEQ_ELEM_220
+# define NDNBOOST_PP_SEQ_ELEM_222(_) NDNBOOST_PP_SEQ_ELEM_221
+# define NDNBOOST_PP_SEQ_ELEM_223(_) NDNBOOST_PP_SEQ_ELEM_222
+# define NDNBOOST_PP_SEQ_ELEM_224(_) NDNBOOST_PP_SEQ_ELEM_223
+# define NDNBOOST_PP_SEQ_ELEM_225(_) NDNBOOST_PP_SEQ_ELEM_224
+# define NDNBOOST_PP_SEQ_ELEM_226(_) NDNBOOST_PP_SEQ_ELEM_225
+# define NDNBOOST_PP_SEQ_ELEM_227(_) NDNBOOST_PP_SEQ_ELEM_226
+# define NDNBOOST_PP_SEQ_ELEM_228(_) NDNBOOST_PP_SEQ_ELEM_227
+# define NDNBOOST_PP_SEQ_ELEM_229(_) NDNBOOST_PP_SEQ_ELEM_228
+# define NDNBOOST_PP_SEQ_ELEM_230(_) NDNBOOST_PP_SEQ_ELEM_229
+# define NDNBOOST_PP_SEQ_ELEM_231(_) NDNBOOST_PP_SEQ_ELEM_230
+# define NDNBOOST_PP_SEQ_ELEM_232(_) NDNBOOST_PP_SEQ_ELEM_231
+# define NDNBOOST_PP_SEQ_ELEM_233(_) NDNBOOST_PP_SEQ_ELEM_232
+# define NDNBOOST_PP_SEQ_ELEM_234(_) NDNBOOST_PP_SEQ_ELEM_233
+# define NDNBOOST_PP_SEQ_ELEM_235(_) NDNBOOST_PP_SEQ_ELEM_234
+# define NDNBOOST_PP_SEQ_ELEM_236(_) NDNBOOST_PP_SEQ_ELEM_235
+# define NDNBOOST_PP_SEQ_ELEM_237(_) NDNBOOST_PP_SEQ_ELEM_236
+# define NDNBOOST_PP_SEQ_ELEM_238(_) NDNBOOST_PP_SEQ_ELEM_237
+# define NDNBOOST_PP_SEQ_ELEM_239(_) NDNBOOST_PP_SEQ_ELEM_238
+# define NDNBOOST_PP_SEQ_ELEM_240(_) NDNBOOST_PP_SEQ_ELEM_239
+# define NDNBOOST_PP_SEQ_ELEM_241(_) NDNBOOST_PP_SEQ_ELEM_240
+# define NDNBOOST_PP_SEQ_ELEM_242(_) NDNBOOST_PP_SEQ_ELEM_241
+# define NDNBOOST_PP_SEQ_ELEM_243(_) NDNBOOST_PP_SEQ_ELEM_242
+# define NDNBOOST_PP_SEQ_ELEM_244(_) NDNBOOST_PP_SEQ_ELEM_243
+# define NDNBOOST_PP_SEQ_ELEM_245(_) NDNBOOST_PP_SEQ_ELEM_244
+# define NDNBOOST_PP_SEQ_ELEM_246(_) NDNBOOST_PP_SEQ_ELEM_245
+# define NDNBOOST_PP_SEQ_ELEM_247(_) NDNBOOST_PP_SEQ_ELEM_246
+# define NDNBOOST_PP_SEQ_ELEM_248(_) NDNBOOST_PP_SEQ_ELEM_247
+# define NDNBOOST_PP_SEQ_ELEM_249(_) NDNBOOST_PP_SEQ_ELEM_248
+# define NDNBOOST_PP_SEQ_ELEM_250(_) NDNBOOST_PP_SEQ_ELEM_249
+# define NDNBOOST_PP_SEQ_ELEM_251(_) NDNBOOST_PP_SEQ_ELEM_250
+# define NDNBOOST_PP_SEQ_ELEM_252(_) NDNBOOST_PP_SEQ_ELEM_251
+# define NDNBOOST_PP_SEQ_ELEM_253(_) NDNBOOST_PP_SEQ_ELEM_252
+# define NDNBOOST_PP_SEQ_ELEM_254(_) NDNBOOST_PP_SEQ_ELEM_253
+# define NDNBOOST_PP_SEQ_ELEM_255(_) NDNBOOST_PP_SEQ_ELEM_254
 #
 # endif
diff --git a/include/ndnboost/preprocessor/seq/enum.hpp b/include/ndnboost/preprocessor/seq/enum.hpp
index 17227f0..8526af8 100644
--- a/include/ndnboost/preprocessor/seq/enum.hpp
+++ b/include/ndnboost/preprocessor/seq/enum.hpp
@@ -9,280 +9,280 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_SEQ_ENUM_HPP
-# define BOOST_PREPROCESSOR_SEQ_ENUM_HPP
+# ifndef NDNBOOST_PREPROCESSOR_SEQ_ENUM_HPP
+# define NDNBOOST_PREPROCESSOR_SEQ_ENUM_HPP
 #
 # include <ndnboost/preprocessor/cat.hpp>
 # include <ndnboost/preprocessor/config/config.hpp>
 # include <ndnboost/preprocessor/seq/size.hpp>
 #
-# /* BOOST_PP_SEQ_ENUM */
+# /* NDNBOOST_PP_SEQ_ENUM */
 #
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_SEQ_ENUM(seq) BOOST_PP_SEQ_ENUM_I(seq)
-#    define BOOST_PP_SEQ_ENUM_I(seq) BOOST_PP_CAT(BOOST_PP_SEQ_ENUM_, BOOST_PP_SEQ_SIZE(seq)) seq
-# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_SEQ_ENUM(seq) BOOST_PP_SEQ_ENUM_I(BOOST_PP_SEQ_SIZE(seq), seq)
-#    define BOOST_PP_SEQ_ENUM_I(size, seq) BOOST_PP_CAT(BOOST_PP_SEQ_ENUM_, size) seq
+# if NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_SEQ_ENUM(seq) NDNBOOST_PP_SEQ_ENUM_I(seq)
+#    define NDNBOOST_PP_SEQ_ENUM_I(seq) NDNBOOST_PP_CAT(NDNBOOST_PP_SEQ_ENUM_, NDNBOOST_PP_SEQ_SIZE(seq)) seq
+# elif NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MWCC()
+#    define NDNBOOST_PP_SEQ_ENUM(seq) NDNBOOST_PP_SEQ_ENUM_I(NDNBOOST_PP_SEQ_SIZE(seq), seq)
+#    define NDNBOOST_PP_SEQ_ENUM_I(size, seq) NDNBOOST_PP_CAT(NDNBOOST_PP_SEQ_ENUM_, size) seq
 # else
-#    define BOOST_PP_SEQ_ENUM(seq) BOOST_PP_CAT(BOOST_PP_SEQ_ENUM_, BOOST_PP_SEQ_SIZE(seq)) seq
+#    define NDNBOOST_PP_SEQ_ENUM(seq) NDNBOOST_PP_CAT(NDNBOOST_PP_SEQ_ENUM_, NDNBOOST_PP_SEQ_SIZE(seq)) seq
 # endif
 #
-# define BOOST_PP_SEQ_ENUM_1(x) x
-# define BOOST_PP_SEQ_ENUM_2(x) x, BOOST_PP_SEQ_ENUM_1
-# define BOOST_PP_SEQ_ENUM_3(x) x, BOOST_PP_SEQ_ENUM_2
-# define BOOST_PP_SEQ_ENUM_4(x) x, BOOST_PP_SEQ_ENUM_3
-# define BOOST_PP_SEQ_ENUM_5(x) x, BOOST_PP_SEQ_ENUM_4
-# define BOOST_PP_SEQ_ENUM_6(x) x, BOOST_PP_SEQ_ENUM_5
-# define BOOST_PP_SEQ_ENUM_7(x) x, BOOST_PP_SEQ_ENUM_6
-# define BOOST_PP_SEQ_ENUM_8(x) x, BOOST_PP_SEQ_ENUM_7
-# define BOOST_PP_SEQ_ENUM_9(x) x, BOOST_PP_SEQ_ENUM_8
-# define BOOST_PP_SEQ_ENUM_10(x) x, BOOST_PP_SEQ_ENUM_9
-# define BOOST_PP_SEQ_ENUM_11(x) x, BOOST_PP_SEQ_ENUM_10
-# define BOOST_PP_SEQ_ENUM_12(x) x, BOOST_PP_SEQ_ENUM_11
-# define BOOST_PP_SEQ_ENUM_13(x) x, BOOST_PP_SEQ_ENUM_12
-# define BOOST_PP_SEQ_ENUM_14(x) x, BOOST_PP_SEQ_ENUM_13
-# define BOOST_PP_SEQ_ENUM_15(x) x, BOOST_PP_SEQ_ENUM_14
-# define BOOST_PP_SEQ_ENUM_16(x) x, BOOST_PP_SEQ_ENUM_15
-# define BOOST_PP_SEQ_ENUM_17(x) x, BOOST_PP_SEQ_ENUM_16
-# define BOOST_PP_SEQ_ENUM_18(x) x, BOOST_PP_SEQ_ENUM_17
-# define BOOST_PP_SEQ_ENUM_19(x) x, BOOST_PP_SEQ_ENUM_18
-# define BOOST_PP_SEQ_ENUM_20(x) x, BOOST_PP_SEQ_ENUM_19
-# define BOOST_PP_SEQ_ENUM_21(x) x, BOOST_PP_SEQ_ENUM_20
-# define BOOST_PP_SEQ_ENUM_22(x) x, BOOST_PP_SEQ_ENUM_21
-# define BOOST_PP_SEQ_ENUM_23(x) x, BOOST_PP_SEQ_ENUM_22
-# define BOOST_PP_SEQ_ENUM_24(x) x, BOOST_PP_SEQ_ENUM_23
-# define BOOST_PP_SEQ_ENUM_25(x) x, BOOST_PP_SEQ_ENUM_24
-# define BOOST_PP_SEQ_ENUM_26(x) x, BOOST_PP_SEQ_ENUM_25
-# define BOOST_PP_SEQ_ENUM_27(x) x, BOOST_PP_SEQ_ENUM_26
-# define BOOST_PP_SEQ_ENUM_28(x) x, BOOST_PP_SEQ_ENUM_27
-# define BOOST_PP_SEQ_ENUM_29(x) x, BOOST_PP_SEQ_ENUM_28
-# define BOOST_PP_SEQ_ENUM_30(x) x, BOOST_PP_SEQ_ENUM_29
-# define BOOST_PP_SEQ_ENUM_31(x) x, BOOST_PP_SEQ_ENUM_30
-# define BOOST_PP_SEQ_ENUM_32(x) x, BOOST_PP_SEQ_ENUM_31
-# define BOOST_PP_SEQ_ENUM_33(x) x, BOOST_PP_SEQ_ENUM_32
-# define BOOST_PP_SEQ_ENUM_34(x) x, BOOST_PP_SEQ_ENUM_33
-# define BOOST_PP_SEQ_ENUM_35(x) x, BOOST_PP_SEQ_ENUM_34
-# define BOOST_PP_SEQ_ENUM_36(x) x, BOOST_PP_SEQ_ENUM_35
-# define BOOST_PP_SEQ_ENUM_37(x) x, BOOST_PP_SEQ_ENUM_36
-# define BOOST_PP_SEQ_ENUM_38(x) x, BOOST_PP_SEQ_ENUM_37
-# define BOOST_PP_SEQ_ENUM_39(x) x, BOOST_PP_SEQ_ENUM_38
-# define BOOST_PP_SEQ_ENUM_40(x) x, BOOST_PP_SEQ_ENUM_39
-# define BOOST_PP_SEQ_ENUM_41(x) x, BOOST_PP_SEQ_ENUM_40
-# define BOOST_PP_SEQ_ENUM_42(x) x, BOOST_PP_SEQ_ENUM_41
-# define BOOST_PP_SEQ_ENUM_43(x) x, BOOST_PP_SEQ_ENUM_42
-# define BOOST_PP_SEQ_ENUM_44(x) x, BOOST_PP_SEQ_ENUM_43
-# define BOOST_PP_SEQ_ENUM_45(x) x, BOOST_PP_SEQ_ENUM_44
-# define BOOST_PP_SEQ_ENUM_46(x) x, BOOST_PP_SEQ_ENUM_45
-# define BOOST_PP_SEQ_ENUM_47(x) x, BOOST_PP_SEQ_ENUM_46
-# define BOOST_PP_SEQ_ENUM_48(x) x, BOOST_PP_SEQ_ENUM_47
-# define BOOST_PP_SEQ_ENUM_49(x) x, BOOST_PP_SEQ_ENUM_48
-# define BOOST_PP_SEQ_ENUM_50(x) x, BOOST_PP_SEQ_ENUM_49
-# define BOOST_PP_SEQ_ENUM_51(x) x, BOOST_PP_SEQ_ENUM_50
-# define BOOST_PP_SEQ_ENUM_52(x) x, BOOST_PP_SEQ_ENUM_51
-# define BOOST_PP_SEQ_ENUM_53(x) x, BOOST_PP_SEQ_ENUM_52
-# define BOOST_PP_SEQ_ENUM_54(x) x, BOOST_PP_SEQ_ENUM_53
-# define BOOST_PP_SEQ_ENUM_55(x) x, BOOST_PP_SEQ_ENUM_54
-# define BOOST_PP_SEQ_ENUM_56(x) x, BOOST_PP_SEQ_ENUM_55
-# define BOOST_PP_SEQ_ENUM_57(x) x, BOOST_PP_SEQ_ENUM_56
-# define BOOST_PP_SEQ_ENUM_58(x) x, BOOST_PP_SEQ_ENUM_57
-# define BOOST_PP_SEQ_ENUM_59(x) x, BOOST_PP_SEQ_ENUM_58
-# define BOOST_PP_SEQ_ENUM_60(x) x, BOOST_PP_SEQ_ENUM_59
-# define BOOST_PP_SEQ_ENUM_61(x) x, BOOST_PP_SEQ_ENUM_60
-# define BOOST_PP_SEQ_ENUM_62(x) x, BOOST_PP_SEQ_ENUM_61
-# define BOOST_PP_SEQ_ENUM_63(x) x, BOOST_PP_SEQ_ENUM_62
-# define BOOST_PP_SEQ_ENUM_64(x) x, BOOST_PP_SEQ_ENUM_63
-# define BOOST_PP_SEQ_ENUM_65(x) x, BOOST_PP_SEQ_ENUM_64
-# define BOOST_PP_SEQ_ENUM_66(x) x, BOOST_PP_SEQ_ENUM_65
-# define BOOST_PP_SEQ_ENUM_67(x) x, BOOST_PP_SEQ_ENUM_66
-# define BOOST_PP_SEQ_ENUM_68(x) x, BOOST_PP_SEQ_ENUM_67
-# define BOOST_PP_SEQ_ENUM_69(x) x, BOOST_PP_SEQ_ENUM_68
-# define BOOST_PP_SEQ_ENUM_70(x) x, BOOST_PP_SEQ_ENUM_69
-# define BOOST_PP_SEQ_ENUM_71(x) x, BOOST_PP_SEQ_ENUM_70
-# define BOOST_PP_SEQ_ENUM_72(x) x, BOOST_PP_SEQ_ENUM_71
-# define BOOST_PP_SEQ_ENUM_73(x) x, BOOST_PP_SEQ_ENUM_72
-# define BOOST_PP_SEQ_ENUM_74(x) x, BOOST_PP_SEQ_ENUM_73
-# define BOOST_PP_SEQ_ENUM_75(x) x, BOOST_PP_SEQ_ENUM_74
-# define BOOST_PP_SEQ_ENUM_76(x) x, BOOST_PP_SEQ_ENUM_75
-# define BOOST_PP_SEQ_ENUM_77(x) x, BOOST_PP_SEQ_ENUM_76
-# define BOOST_PP_SEQ_ENUM_78(x) x, BOOST_PP_SEQ_ENUM_77
-# define BOOST_PP_SEQ_ENUM_79(x) x, BOOST_PP_SEQ_ENUM_78
-# define BOOST_PP_SEQ_ENUM_80(x) x, BOOST_PP_SEQ_ENUM_79
-# define BOOST_PP_SEQ_ENUM_81(x) x, BOOST_PP_SEQ_ENUM_80
-# define BOOST_PP_SEQ_ENUM_82(x) x, BOOST_PP_SEQ_ENUM_81
-# define BOOST_PP_SEQ_ENUM_83(x) x, BOOST_PP_SEQ_ENUM_82
-# define BOOST_PP_SEQ_ENUM_84(x) x, BOOST_PP_SEQ_ENUM_83
-# define BOOST_PP_SEQ_ENUM_85(x) x, BOOST_PP_SEQ_ENUM_84
-# define BOOST_PP_SEQ_ENUM_86(x) x, BOOST_PP_SEQ_ENUM_85
-# define BOOST_PP_SEQ_ENUM_87(x) x, BOOST_PP_SEQ_ENUM_86
-# define BOOST_PP_SEQ_ENUM_88(x) x, BOOST_PP_SEQ_ENUM_87
-# define BOOST_PP_SEQ_ENUM_89(x) x, BOOST_PP_SEQ_ENUM_88
-# define BOOST_PP_SEQ_ENUM_90(x) x, BOOST_PP_SEQ_ENUM_89
-# define BOOST_PP_SEQ_ENUM_91(x) x, BOOST_PP_SEQ_ENUM_90
-# define BOOST_PP_SEQ_ENUM_92(x) x, BOOST_PP_SEQ_ENUM_91
-# define BOOST_PP_SEQ_ENUM_93(x) x, BOOST_PP_SEQ_ENUM_92
-# define BOOST_PP_SEQ_ENUM_94(x) x, BOOST_PP_SEQ_ENUM_93
-# define BOOST_PP_SEQ_ENUM_95(x) x, BOOST_PP_SEQ_ENUM_94
-# define BOOST_PP_SEQ_ENUM_96(x) x, BOOST_PP_SEQ_ENUM_95
-# define BOOST_PP_SEQ_ENUM_97(x) x, BOOST_PP_SEQ_ENUM_96
-# define BOOST_PP_SEQ_ENUM_98(x) x, BOOST_PP_SEQ_ENUM_97
-# define BOOST_PP_SEQ_ENUM_99(x) x, BOOST_PP_SEQ_ENUM_98
-# define BOOST_PP_SEQ_ENUM_100(x) x, BOOST_PP_SEQ_ENUM_99
-# define BOOST_PP_SEQ_ENUM_101(x) x, BOOST_PP_SEQ_ENUM_100
-# define BOOST_PP_SEQ_ENUM_102(x) x, BOOST_PP_SEQ_ENUM_101
-# define BOOST_PP_SEQ_ENUM_103(x) x, BOOST_PP_SEQ_ENUM_102
-# define BOOST_PP_SEQ_ENUM_104(x) x, BOOST_PP_SEQ_ENUM_103
-# define BOOST_PP_SEQ_ENUM_105(x) x, BOOST_PP_SEQ_ENUM_104
-# define BOOST_PP_SEQ_ENUM_106(x) x, BOOST_PP_SEQ_ENUM_105
-# define BOOST_PP_SEQ_ENUM_107(x) x, BOOST_PP_SEQ_ENUM_106
-# define BOOST_PP_SEQ_ENUM_108(x) x, BOOST_PP_SEQ_ENUM_107
-# define BOOST_PP_SEQ_ENUM_109(x) x, BOOST_PP_SEQ_ENUM_108
-# define BOOST_PP_SEQ_ENUM_110(x) x, BOOST_PP_SEQ_ENUM_109
-# define BOOST_PP_SEQ_ENUM_111(x) x, BOOST_PP_SEQ_ENUM_110
-# define BOOST_PP_SEQ_ENUM_112(x) x, BOOST_PP_SEQ_ENUM_111
-# define BOOST_PP_SEQ_ENUM_113(x) x, BOOST_PP_SEQ_ENUM_112
-# define BOOST_PP_SEQ_ENUM_114(x) x, BOOST_PP_SEQ_ENUM_113
-# define BOOST_PP_SEQ_ENUM_115(x) x, BOOST_PP_SEQ_ENUM_114
-# define BOOST_PP_SEQ_ENUM_116(x) x, BOOST_PP_SEQ_ENUM_115
-# define BOOST_PP_SEQ_ENUM_117(x) x, BOOST_PP_SEQ_ENUM_116
-# define BOOST_PP_SEQ_ENUM_118(x) x, BOOST_PP_SEQ_ENUM_117
-# define BOOST_PP_SEQ_ENUM_119(x) x, BOOST_PP_SEQ_ENUM_118
-# define BOOST_PP_SEQ_ENUM_120(x) x, BOOST_PP_SEQ_ENUM_119
-# define BOOST_PP_SEQ_ENUM_121(x) x, BOOST_PP_SEQ_ENUM_120
-# define BOOST_PP_SEQ_ENUM_122(x) x, BOOST_PP_SEQ_ENUM_121
-# define BOOST_PP_SEQ_ENUM_123(x) x, BOOST_PP_SEQ_ENUM_122
-# define BOOST_PP_SEQ_ENUM_124(x) x, BOOST_PP_SEQ_ENUM_123
-# define BOOST_PP_SEQ_ENUM_125(x) x, BOOST_PP_SEQ_ENUM_124
-# define BOOST_PP_SEQ_ENUM_126(x) x, BOOST_PP_SEQ_ENUM_125
-# define BOOST_PP_SEQ_ENUM_127(x) x, BOOST_PP_SEQ_ENUM_126
-# define BOOST_PP_SEQ_ENUM_128(x) x, BOOST_PP_SEQ_ENUM_127
-# define BOOST_PP_SEQ_ENUM_129(x) x, BOOST_PP_SEQ_ENUM_128
-# define BOOST_PP_SEQ_ENUM_130(x) x, BOOST_PP_SEQ_ENUM_129
-# define BOOST_PP_SEQ_ENUM_131(x) x, BOOST_PP_SEQ_ENUM_130
-# define BOOST_PP_SEQ_ENUM_132(x) x, BOOST_PP_SEQ_ENUM_131
-# define BOOST_PP_SEQ_ENUM_133(x) x, BOOST_PP_SEQ_ENUM_132
-# define BOOST_PP_SEQ_ENUM_134(x) x, BOOST_PP_SEQ_ENUM_133
-# define BOOST_PP_SEQ_ENUM_135(x) x, BOOST_PP_SEQ_ENUM_134
-# define BOOST_PP_SEQ_ENUM_136(x) x, BOOST_PP_SEQ_ENUM_135
-# define BOOST_PP_SEQ_ENUM_137(x) x, BOOST_PP_SEQ_ENUM_136
-# define BOOST_PP_SEQ_ENUM_138(x) x, BOOST_PP_SEQ_ENUM_137
-# define BOOST_PP_SEQ_ENUM_139(x) x, BOOST_PP_SEQ_ENUM_138
-# define BOOST_PP_SEQ_ENUM_140(x) x, BOOST_PP_SEQ_ENUM_139
-# define BOOST_PP_SEQ_ENUM_141(x) x, BOOST_PP_SEQ_ENUM_140
-# define BOOST_PP_SEQ_ENUM_142(x) x, BOOST_PP_SEQ_ENUM_141
-# define BOOST_PP_SEQ_ENUM_143(x) x, BOOST_PP_SEQ_ENUM_142
-# define BOOST_PP_SEQ_ENUM_144(x) x, BOOST_PP_SEQ_ENUM_143
-# define BOOST_PP_SEQ_ENUM_145(x) x, BOOST_PP_SEQ_ENUM_144
-# define BOOST_PP_SEQ_ENUM_146(x) x, BOOST_PP_SEQ_ENUM_145
-# define BOOST_PP_SEQ_ENUM_147(x) x, BOOST_PP_SEQ_ENUM_146
-# define BOOST_PP_SEQ_ENUM_148(x) x, BOOST_PP_SEQ_ENUM_147
-# define BOOST_PP_SEQ_ENUM_149(x) x, BOOST_PP_SEQ_ENUM_148
-# define BOOST_PP_SEQ_ENUM_150(x) x, BOOST_PP_SEQ_ENUM_149
-# define BOOST_PP_SEQ_ENUM_151(x) x, BOOST_PP_SEQ_ENUM_150
-# define BOOST_PP_SEQ_ENUM_152(x) x, BOOST_PP_SEQ_ENUM_151
-# define BOOST_PP_SEQ_ENUM_153(x) x, BOOST_PP_SEQ_ENUM_152
-# define BOOST_PP_SEQ_ENUM_154(x) x, BOOST_PP_SEQ_ENUM_153
-# define BOOST_PP_SEQ_ENUM_155(x) x, BOOST_PP_SEQ_ENUM_154
-# define BOOST_PP_SEQ_ENUM_156(x) x, BOOST_PP_SEQ_ENUM_155
-# define BOOST_PP_SEQ_ENUM_157(x) x, BOOST_PP_SEQ_ENUM_156
-# define BOOST_PP_SEQ_ENUM_158(x) x, BOOST_PP_SEQ_ENUM_157
-# define BOOST_PP_SEQ_ENUM_159(x) x, BOOST_PP_SEQ_ENUM_158
-# define BOOST_PP_SEQ_ENUM_160(x) x, BOOST_PP_SEQ_ENUM_159
-# define BOOST_PP_SEQ_ENUM_161(x) x, BOOST_PP_SEQ_ENUM_160
-# define BOOST_PP_SEQ_ENUM_162(x) x, BOOST_PP_SEQ_ENUM_161
-# define BOOST_PP_SEQ_ENUM_163(x) x, BOOST_PP_SEQ_ENUM_162
-# define BOOST_PP_SEQ_ENUM_164(x) x, BOOST_PP_SEQ_ENUM_163
-# define BOOST_PP_SEQ_ENUM_165(x) x, BOOST_PP_SEQ_ENUM_164
-# define BOOST_PP_SEQ_ENUM_166(x) x, BOOST_PP_SEQ_ENUM_165
-# define BOOST_PP_SEQ_ENUM_167(x) x, BOOST_PP_SEQ_ENUM_166
-# define BOOST_PP_SEQ_ENUM_168(x) x, BOOST_PP_SEQ_ENUM_167
-# define BOOST_PP_SEQ_ENUM_169(x) x, BOOST_PP_SEQ_ENUM_168
-# define BOOST_PP_SEQ_ENUM_170(x) x, BOOST_PP_SEQ_ENUM_169
-# define BOOST_PP_SEQ_ENUM_171(x) x, BOOST_PP_SEQ_ENUM_170
-# define BOOST_PP_SEQ_ENUM_172(x) x, BOOST_PP_SEQ_ENUM_171
-# define BOOST_PP_SEQ_ENUM_173(x) x, BOOST_PP_SEQ_ENUM_172
-# define BOOST_PP_SEQ_ENUM_174(x) x, BOOST_PP_SEQ_ENUM_173
-# define BOOST_PP_SEQ_ENUM_175(x) x, BOOST_PP_SEQ_ENUM_174
-# define BOOST_PP_SEQ_ENUM_176(x) x, BOOST_PP_SEQ_ENUM_175
-# define BOOST_PP_SEQ_ENUM_177(x) x, BOOST_PP_SEQ_ENUM_176
-# define BOOST_PP_SEQ_ENUM_178(x) x, BOOST_PP_SEQ_ENUM_177
-# define BOOST_PP_SEQ_ENUM_179(x) x, BOOST_PP_SEQ_ENUM_178
-# define BOOST_PP_SEQ_ENUM_180(x) x, BOOST_PP_SEQ_ENUM_179
-# define BOOST_PP_SEQ_ENUM_181(x) x, BOOST_PP_SEQ_ENUM_180
-# define BOOST_PP_SEQ_ENUM_182(x) x, BOOST_PP_SEQ_ENUM_181
-# define BOOST_PP_SEQ_ENUM_183(x) x, BOOST_PP_SEQ_ENUM_182
-# define BOOST_PP_SEQ_ENUM_184(x) x, BOOST_PP_SEQ_ENUM_183
-# define BOOST_PP_SEQ_ENUM_185(x) x, BOOST_PP_SEQ_ENUM_184
-# define BOOST_PP_SEQ_ENUM_186(x) x, BOOST_PP_SEQ_ENUM_185
-# define BOOST_PP_SEQ_ENUM_187(x) x, BOOST_PP_SEQ_ENUM_186
-# define BOOST_PP_SEQ_ENUM_188(x) x, BOOST_PP_SEQ_ENUM_187
-# define BOOST_PP_SEQ_ENUM_189(x) x, BOOST_PP_SEQ_ENUM_188
-# define BOOST_PP_SEQ_ENUM_190(x) x, BOOST_PP_SEQ_ENUM_189
-# define BOOST_PP_SEQ_ENUM_191(x) x, BOOST_PP_SEQ_ENUM_190
-# define BOOST_PP_SEQ_ENUM_192(x) x, BOOST_PP_SEQ_ENUM_191
-# define BOOST_PP_SEQ_ENUM_193(x) x, BOOST_PP_SEQ_ENUM_192
-# define BOOST_PP_SEQ_ENUM_194(x) x, BOOST_PP_SEQ_ENUM_193
-# define BOOST_PP_SEQ_ENUM_195(x) x, BOOST_PP_SEQ_ENUM_194
-# define BOOST_PP_SEQ_ENUM_196(x) x, BOOST_PP_SEQ_ENUM_195
-# define BOOST_PP_SEQ_ENUM_197(x) x, BOOST_PP_SEQ_ENUM_196
-# define BOOST_PP_SEQ_ENUM_198(x) x, BOOST_PP_SEQ_ENUM_197
-# define BOOST_PP_SEQ_ENUM_199(x) x, BOOST_PP_SEQ_ENUM_198
-# define BOOST_PP_SEQ_ENUM_200(x) x, BOOST_PP_SEQ_ENUM_199
-# define BOOST_PP_SEQ_ENUM_201(x) x, BOOST_PP_SEQ_ENUM_200
-# define BOOST_PP_SEQ_ENUM_202(x) x, BOOST_PP_SEQ_ENUM_201
-# define BOOST_PP_SEQ_ENUM_203(x) x, BOOST_PP_SEQ_ENUM_202
-# define BOOST_PP_SEQ_ENUM_204(x) x, BOOST_PP_SEQ_ENUM_203
-# define BOOST_PP_SEQ_ENUM_205(x) x, BOOST_PP_SEQ_ENUM_204
-# define BOOST_PP_SEQ_ENUM_206(x) x, BOOST_PP_SEQ_ENUM_205
-# define BOOST_PP_SEQ_ENUM_207(x) x, BOOST_PP_SEQ_ENUM_206
-# define BOOST_PP_SEQ_ENUM_208(x) x, BOOST_PP_SEQ_ENUM_207
-# define BOOST_PP_SEQ_ENUM_209(x) x, BOOST_PP_SEQ_ENUM_208
-# define BOOST_PP_SEQ_ENUM_210(x) x, BOOST_PP_SEQ_ENUM_209
-# define BOOST_PP_SEQ_ENUM_211(x) x, BOOST_PP_SEQ_ENUM_210
-# define BOOST_PP_SEQ_ENUM_212(x) x, BOOST_PP_SEQ_ENUM_211
-# define BOOST_PP_SEQ_ENUM_213(x) x, BOOST_PP_SEQ_ENUM_212
-# define BOOST_PP_SEQ_ENUM_214(x) x, BOOST_PP_SEQ_ENUM_213
-# define BOOST_PP_SEQ_ENUM_215(x) x, BOOST_PP_SEQ_ENUM_214
-# define BOOST_PP_SEQ_ENUM_216(x) x, BOOST_PP_SEQ_ENUM_215
-# define BOOST_PP_SEQ_ENUM_217(x) x, BOOST_PP_SEQ_ENUM_216
-# define BOOST_PP_SEQ_ENUM_218(x) x, BOOST_PP_SEQ_ENUM_217
-# define BOOST_PP_SEQ_ENUM_219(x) x, BOOST_PP_SEQ_ENUM_218
-# define BOOST_PP_SEQ_ENUM_220(x) x, BOOST_PP_SEQ_ENUM_219
-# define BOOST_PP_SEQ_ENUM_221(x) x, BOOST_PP_SEQ_ENUM_220
-# define BOOST_PP_SEQ_ENUM_222(x) x, BOOST_PP_SEQ_ENUM_221
-# define BOOST_PP_SEQ_ENUM_223(x) x, BOOST_PP_SEQ_ENUM_222
-# define BOOST_PP_SEQ_ENUM_224(x) x, BOOST_PP_SEQ_ENUM_223
-# define BOOST_PP_SEQ_ENUM_225(x) x, BOOST_PP_SEQ_ENUM_224
-# define BOOST_PP_SEQ_ENUM_226(x) x, BOOST_PP_SEQ_ENUM_225
-# define BOOST_PP_SEQ_ENUM_227(x) x, BOOST_PP_SEQ_ENUM_226
-# define BOOST_PP_SEQ_ENUM_228(x) x, BOOST_PP_SEQ_ENUM_227
-# define BOOST_PP_SEQ_ENUM_229(x) x, BOOST_PP_SEQ_ENUM_228
-# define BOOST_PP_SEQ_ENUM_230(x) x, BOOST_PP_SEQ_ENUM_229
-# define BOOST_PP_SEQ_ENUM_231(x) x, BOOST_PP_SEQ_ENUM_230
-# define BOOST_PP_SEQ_ENUM_232(x) x, BOOST_PP_SEQ_ENUM_231
-# define BOOST_PP_SEQ_ENUM_233(x) x, BOOST_PP_SEQ_ENUM_232
-# define BOOST_PP_SEQ_ENUM_234(x) x, BOOST_PP_SEQ_ENUM_233
-# define BOOST_PP_SEQ_ENUM_235(x) x, BOOST_PP_SEQ_ENUM_234
-# define BOOST_PP_SEQ_ENUM_236(x) x, BOOST_PP_SEQ_ENUM_235
-# define BOOST_PP_SEQ_ENUM_237(x) x, BOOST_PP_SEQ_ENUM_236
-# define BOOST_PP_SEQ_ENUM_238(x) x, BOOST_PP_SEQ_ENUM_237
-# define BOOST_PP_SEQ_ENUM_239(x) x, BOOST_PP_SEQ_ENUM_238
-# define BOOST_PP_SEQ_ENUM_240(x) x, BOOST_PP_SEQ_ENUM_239
-# define BOOST_PP_SEQ_ENUM_241(x) x, BOOST_PP_SEQ_ENUM_240
-# define BOOST_PP_SEQ_ENUM_242(x) x, BOOST_PP_SEQ_ENUM_241
-# define BOOST_PP_SEQ_ENUM_243(x) x, BOOST_PP_SEQ_ENUM_242
-# define BOOST_PP_SEQ_ENUM_244(x) x, BOOST_PP_SEQ_ENUM_243
-# define BOOST_PP_SEQ_ENUM_245(x) x, BOOST_PP_SEQ_ENUM_244
-# define BOOST_PP_SEQ_ENUM_246(x) x, BOOST_PP_SEQ_ENUM_245
-# define BOOST_PP_SEQ_ENUM_247(x) x, BOOST_PP_SEQ_ENUM_246
-# define BOOST_PP_SEQ_ENUM_248(x) x, BOOST_PP_SEQ_ENUM_247
-# define BOOST_PP_SEQ_ENUM_249(x) x, BOOST_PP_SEQ_ENUM_248
-# define BOOST_PP_SEQ_ENUM_250(x) x, BOOST_PP_SEQ_ENUM_249
-# define BOOST_PP_SEQ_ENUM_251(x) x, BOOST_PP_SEQ_ENUM_250
-# define BOOST_PP_SEQ_ENUM_252(x) x, BOOST_PP_SEQ_ENUM_251
-# define BOOST_PP_SEQ_ENUM_253(x) x, BOOST_PP_SEQ_ENUM_252
-# define BOOST_PP_SEQ_ENUM_254(x) x, BOOST_PP_SEQ_ENUM_253
-# define BOOST_PP_SEQ_ENUM_255(x) x, BOOST_PP_SEQ_ENUM_254
-# define BOOST_PP_SEQ_ENUM_256(x) x, BOOST_PP_SEQ_ENUM_255
+# define NDNBOOST_PP_SEQ_ENUM_1(x) x
+# define NDNBOOST_PP_SEQ_ENUM_2(x) x, NDNBOOST_PP_SEQ_ENUM_1
+# define NDNBOOST_PP_SEQ_ENUM_3(x) x, NDNBOOST_PP_SEQ_ENUM_2
+# define NDNBOOST_PP_SEQ_ENUM_4(x) x, NDNBOOST_PP_SEQ_ENUM_3
+# define NDNBOOST_PP_SEQ_ENUM_5(x) x, NDNBOOST_PP_SEQ_ENUM_4
+# define NDNBOOST_PP_SEQ_ENUM_6(x) x, NDNBOOST_PP_SEQ_ENUM_5
+# define NDNBOOST_PP_SEQ_ENUM_7(x) x, NDNBOOST_PP_SEQ_ENUM_6
+# define NDNBOOST_PP_SEQ_ENUM_8(x) x, NDNBOOST_PP_SEQ_ENUM_7
+# define NDNBOOST_PP_SEQ_ENUM_9(x) x, NDNBOOST_PP_SEQ_ENUM_8
+# define NDNBOOST_PP_SEQ_ENUM_10(x) x, NDNBOOST_PP_SEQ_ENUM_9
+# define NDNBOOST_PP_SEQ_ENUM_11(x) x, NDNBOOST_PP_SEQ_ENUM_10
+# define NDNBOOST_PP_SEQ_ENUM_12(x) x, NDNBOOST_PP_SEQ_ENUM_11
+# define NDNBOOST_PP_SEQ_ENUM_13(x) x, NDNBOOST_PP_SEQ_ENUM_12
+# define NDNBOOST_PP_SEQ_ENUM_14(x) x, NDNBOOST_PP_SEQ_ENUM_13
+# define NDNBOOST_PP_SEQ_ENUM_15(x) x, NDNBOOST_PP_SEQ_ENUM_14
+# define NDNBOOST_PP_SEQ_ENUM_16(x) x, NDNBOOST_PP_SEQ_ENUM_15
+# define NDNBOOST_PP_SEQ_ENUM_17(x) x, NDNBOOST_PP_SEQ_ENUM_16
+# define NDNBOOST_PP_SEQ_ENUM_18(x) x, NDNBOOST_PP_SEQ_ENUM_17
+# define NDNBOOST_PP_SEQ_ENUM_19(x) x, NDNBOOST_PP_SEQ_ENUM_18
+# define NDNBOOST_PP_SEQ_ENUM_20(x) x, NDNBOOST_PP_SEQ_ENUM_19
+# define NDNBOOST_PP_SEQ_ENUM_21(x) x, NDNBOOST_PP_SEQ_ENUM_20
+# define NDNBOOST_PP_SEQ_ENUM_22(x) x, NDNBOOST_PP_SEQ_ENUM_21
+# define NDNBOOST_PP_SEQ_ENUM_23(x) x, NDNBOOST_PP_SEQ_ENUM_22
+# define NDNBOOST_PP_SEQ_ENUM_24(x) x, NDNBOOST_PP_SEQ_ENUM_23
+# define NDNBOOST_PP_SEQ_ENUM_25(x) x, NDNBOOST_PP_SEQ_ENUM_24
+# define NDNBOOST_PP_SEQ_ENUM_26(x) x, NDNBOOST_PP_SEQ_ENUM_25
+# define NDNBOOST_PP_SEQ_ENUM_27(x) x, NDNBOOST_PP_SEQ_ENUM_26
+# define NDNBOOST_PP_SEQ_ENUM_28(x) x, NDNBOOST_PP_SEQ_ENUM_27
+# define NDNBOOST_PP_SEQ_ENUM_29(x) x, NDNBOOST_PP_SEQ_ENUM_28
+# define NDNBOOST_PP_SEQ_ENUM_30(x) x, NDNBOOST_PP_SEQ_ENUM_29
+# define NDNBOOST_PP_SEQ_ENUM_31(x) x, NDNBOOST_PP_SEQ_ENUM_30
+# define NDNBOOST_PP_SEQ_ENUM_32(x) x, NDNBOOST_PP_SEQ_ENUM_31
+# define NDNBOOST_PP_SEQ_ENUM_33(x) x, NDNBOOST_PP_SEQ_ENUM_32
+# define NDNBOOST_PP_SEQ_ENUM_34(x) x, NDNBOOST_PP_SEQ_ENUM_33
+# define NDNBOOST_PP_SEQ_ENUM_35(x) x, NDNBOOST_PP_SEQ_ENUM_34
+# define NDNBOOST_PP_SEQ_ENUM_36(x) x, NDNBOOST_PP_SEQ_ENUM_35
+# define NDNBOOST_PP_SEQ_ENUM_37(x) x, NDNBOOST_PP_SEQ_ENUM_36
+# define NDNBOOST_PP_SEQ_ENUM_38(x) x, NDNBOOST_PP_SEQ_ENUM_37
+# define NDNBOOST_PP_SEQ_ENUM_39(x) x, NDNBOOST_PP_SEQ_ENUM_38
+# define NDNBOOST_PP_SEQ_ENUM_40(x) x, NDNBOOST_PP_SEQ_ENUM_39
+# define NDNBOOST_PP_SEQ_ENUM_41(x) x, NDNBOOST_PP_SEQ_ENUM_40
+# define NDNBOOST_PP_SEQ_ENUM_42(x) x, NDNBOOST_PP_SEQ_ENUM_41
+# define NDNBOOST_PP_SEQ_ENUM_43(x) x, NDNBOOST_PP_SEQ_ENUM_42
+# define NDNBOOST_PP_SEQ_ENUM_44(x) x, NDNBOOST_PP_SEQ_ENUM_43
+# define NDNBOOST_PP_SEQ_ENUM_45(x) x, NDNBOOST_PP_SEQ_ENUM_44
+# define NDNBOOST_PP_SEQ_ENUM_46(x) x, NDNBOOST_PP_SEQ_ENUM_45
+# define NDNBOOST_PP_SEQ_ENUM_47(x) x, NDNBOOST_PP_SEQ_ENUM_46
+# define NDNBOOST_PP_SEQ_ENUM_48(x) x, NDNBOOST_PP_SEQ_ENUM_47
+# define NDNBOOST_PP_SEQ_ENUM_49(x) x, NDNBOOST_PP_SEQ_ENUM_48
+# define NDNBOOST_PP_SEQ_ENUM_50(x) x, NDNBOOST_PP_SEQ_ENUM_49
+# define NDNBOOST_PP_SEQ_ENUM_51(x) x, NDNBOOST_PP_SEQ_ENUM_50
+# define NDNBOOST_PP_SEQ_ENUM_52(x) x, NDNBOOST_PP_SEQ_ENUM_51
+# define NDNBOOST_PP_SEQ_ENUM_53(x) x, NDNBOOST_PP_SEQ_ENUM_52
+# define NDNBOOST_PP_SEQ_ENUM_54(x) x, NDNBOOST_PP_SEQ_ENUM_53
+# define NDNBOOST_PP_SEQ_ENUM_55(x) x, NDNBOOST_PP_SEQ_ENUM_54
+# define NDNBOOST_PP_SEQ_ENUM_56(x) x, NDNBOOST_PP_SEQ_ENUM_55
+# define NDNBOOST_PP_SEQ_ENUM_57(x) x, NDNBOOST_PP_SEQ_ENUM_56
+# define NDNBOOST_PP_SEQ_ENUM_58(x) x, NDNBOOST_PP_SEQ_ENUM_57
+# define NDNBOOST_PP_SEQ_ENUM_59(x) x, NDNBOOST_PP_SEQ_ENUM_58
+# define NDNBOOST_PP_SEQ_ENUM_60(x) x, NDNBOOST_PP_SEQ_ENUM_59
+# define NDNBOOST_PP_SEQ_ENUM_61(x) x, NDNBOOST_PP_SEQ_ENUM_60
+# define NDNBOOST_PP_SEQ_ENUM_62(x) x, NDNBOOST_PP_SEQ_ENUM_61
+# define NDNBOOST_PP_SEQ_ENUM_63(x) x, NDNBOOST_PP_SEQ_ENUM_62
+# define NDNBOOST_PP_SEQ_ENUM_64(x) x, NDNBOOST_PP_SEQ_ENUM_63
+# define NDNBOOST_PP_SEQ_ENUM_65(x) x, NDNBOOST_PP_SEQ_ENUM_64
+# define NDNBOOST_PP_SEQ_ENUM_66(x) x, NDNBOOST_PP_SEQ_ENUM_65
+# define NDNBOOST_PP_SEQ_ENUM_67(x) x, NDNBOOST_PP_SEQ_ENUM_66
+# define NDNBOOST_PP_SEQ_ENUM_68(x) x, NDNBOOST_PP_SEQ_ENUM_67
+# define NDNBOOST_PP_SEQ_ENUM_69(x) x, NDNBOOST_PP_SEQ_ENUM_68
+# define NDNBOOST_PP_SEQ_ENUM_70(x) x, NDNBOOST_PP_SEQ_ENUM_69
+# define NDNBOOST_PP_SEQ_ENUM_71(x) x, NDNBOOST_PP_SEQ_ENUM_70
+# define NDNBOOST_PP_SEQ_ENUM_72(x) x, NDNBOOST_PP_SEQ_ENUM_71
+# define NDNBOOST_PP_SEQ_ENUM_73(x) x, NDNBOOST_PP_SEQ_ENUM_72
+# define NDNBOOST_PP_SEQ_ENUM_74(x) x, NDNBOOST_PP_SEQ_ENUM_73
+# define NDNBOOST_PP_SEQ_ENUM_75(x) x, NDNBOOST_PP_SEQ_ENUM_74
+# define NDNBOOST_PP_SEQ_ENUM_76(x) x, NDNBOOST_PP_SEQ_ENUM_75
+# define NDNBOOST_PP_SEQ_ENUM_77(x) x, NDNBOOST_PP_SEQ_ENUM_76
+# define NDNBOOST_PP_SEQ_ENUM_78(x) x, NDNBOOST_PP_SEQ_ENUM_77
+# define NDNBOOST_PP_SEQ_ENUM_79(x) x, NDNBOOST_PP_SEQ_ENUM_78
+# define NDNBOOST_PP_SEQ_ENUM_80(x) x, NDNBOOST_PP_SEQ_ENUM_79
+# define NDNBOOST_PP_SEQ_ENUM_81(x) x, NDNBOOST_PP_SEQ_ENUM_80
+# define NDNBOOST_PP_SEQ_ENUM_82(x) x, NDNBOOST_PP_SEQ_ENUM_81
+# define NDNBOOST_PP_SEQ_ENUM_83(x) x, NDNBOOST_PP_SEQ_ENUM_82
+# define NDNBOOST_PP_SEQ_ENUM_84(x) x, NDNBOOST_PP_SEQ_ENUM_83
+# define NDNBOOST_PP_SEQ_ENUM_85(x) x, NDNBOOST_PP_SEQ_ENUM_84
+# define NDNBOOST_PP_SEQ_ENUM_86(x) x, NDNBOOST_PP_SEQ_ENUM_85
+# define NDNBOOST_PP_SEQ_ENUM_87(x) x, NDNBOOST_PP_SEQ_ENUM_86
+# define NDNBOOST_PP_SEQ_ENUM_88(x) x, NDNBOOST_PP_SEQ_ENUM_87
+# define NDNBOOST_PP_SEQ_ENUM_89(x) x, NDNBOOST_PP_SEQ_ENUM_88
+# define NDNBOOST_PP_SEQ_ENUM_90(x) x, NDNBOOST_PP_SEQ_ENUM_89
+# define NDNBOOST_PP_SEQ_ENUM_91(x) x, NDNBOOST_PP_SEQ_ENUM_90
+# define NDNBOOST_PP_SEQ_ENUM_92(x) x, NDNBOOST_PP_SEQ_ENUM_91
+# define NDNBOOST_PP_SEQ_ENUM_93(x) x, NDNBOOST_PP_SEQ_ENUM_92
+# define NDNBOOST_PP_SEQ_ENUM_94(x) x, NDNBOOST_PP_SEQ_ENUM_93
+# define NDNBOOST_PP_SEQ_ENUM_95(x) x, NDNBOOST_PP_SEQ_ENUM_94
+# define NDNBOOST_PP_SEQ_ENUM_96(x) x, NDNBOOST_PP_SEQ_ENUM_95
+# define NDNBOOST_PP_SEQ_ENUM_97(x) x, NDNBOOST_PP_SEQ_ENUM_96
+# define NDNBOOST_PP_SEQ_ENUM_98(x) x, NDNBOOST_PP_SEQ_ENUM_97
+# define NDNBOOST_PP_SEQ_ENUM_99(x) x, NDNBOOST_PP_SEQ_ENUM_98
+# define NDNBOOST_PP_SEQ_ENUM_100(x) x, NDNBOOST_PP_SEQ_ENUM_99
+# define NDNBOOST_PP_SEQ_ENUM_101(x) x, NDNBOOST_PP_SEQ_ENUM_100
+# define NDNBOOST_PP_SEQ_ENUM_102(x) x, NDNBOOST_PP_SEQ_ENUM_101
+# define NDNBOOST_PP_SEQ_ENUM_103(x) x, NDNBOOST_PP_SEQ_ENUM_102
+# define NDNBOOST_PP_SEQ_ENUM_104(x) x, NDNBOOST_PP_SEQ_ENUM_103
+# define NDNBOOST_PP_SEQ_ENUM_105(x) x, NDNBOOST_PP_SEQ_ENUM_104
+# define NDNBOOST_PP_SEQ_ENUM_106(x) x, NDNBOOST_PP_SEQ_ENUM_105
+# define NDNBOOST_PP_SEQ_ENUM_107(x) x, NDNBOOST_PP_SEQ_ENUM_106
+# define NDNBOOST_PP_SEQ_ENUM_108(x) x, NDNBOOST_PP_SEQ_ENUM_107
+# define NDNBOOST_PP_SEQ_ENUM_109(x) x, NDNBOOST_PP_SEQ_ENUM_108
+# define NDNBOOST_PP_SEQ_ENUM_110(x) x, NDNBOOST_PP_SEQ_ENUM_109
+# define NDNBOOST_PP_SEQ_ENUM_111(x) x, NDNBOOST_PP_SEQ_ENUM_110
+# define NDNBOOST_PP_SEQ_ENUM_112(x) x, NDNBOOST_PP_SEQ_ENUM_111
+# define NDNBOOST_PP_SEQ_ENUM_113(x) x, NDNBOOST_PP_SEQ_ENUM_112
+# define NDNBOOST_PP_SEQ_ENUM_114(x) x, NDNBOOST_PP_SEQ_ENUM_113
+# define NDNBOOST_PP_SEQ_ENUM_115(x) x, NDNBOOST_PP_SEQ_ENUM_114
+# define NDNBOOST_PP_SEQ_ENUM_116(x) x, NDNBOOST_PP_SEQ_ENUM_115
+# define NDNBOOST_PP_SEQ_ENUM_117(x) x, NDNBOOST_PP_SEQ_ENUM_116
+# define NDNBOOST_PP_SEQ_ENUM_118(x) x, NDNBOOST_PP_SEQ_ENUM_117
+# define NDNBOOST_PP_SEQ_ENUM_119(x) x, NDNBOOST_PP_SEQ_ENUM_118
+# define NDNBOOST_PP_SEQ_ENUM_120(x) x, NDNBOOST_PP_SEQ_ENUM_119
+# define NDNBOOST_PP_SEQ_ENUM_121(x) x, NDNBOOST_PP_SEQ_ENUM_120
+# define NDNBOOST_PP_SEQ_ENUM_122(x) x, NDNBOOST_PP_SEQ_ENUM_121
+# define NDNBOOST_PP_SEQ_ENUM_123(x) x, NDNBOOST_PP_SEQ_ENUM_122
+# define NDNBOOST_PP_SEQ_ENUM_124(x) x, NDNBOOST_PP_SEQ_ENUM_123
+# define NDNBOOST_PP_SEQ_ENUM_125(x) x, NDNBOOST_PP_SEQ_ENUM_124
+# define NDNBOOST_PP_SEQ_ENUM_126(x) x, NDNBOOST_PP_SEQ_ENUM_125
+# define NDNBOOST_PP_SEQ_ENUM_127(x) x, NDNBOOST_PP_SEQ_ENUM_126
+# define NDNBOOST_PP_SEQ_ENUM_128(x) x, NDNBOOST_PP_SEQ_ENUM_127
+# define NDNBOOST_PP_SEQ_ENUM_129(x) x, NDNBOOST_PP_SEQ_ENUM_128
+# define NDNBOOST_PP_SEQ_ENUM_130(x) x, NDNBOOST_PP_SEQ_ENUM_129
+# define NDNBOOST_PP_SEQ_ENUM_131(x) x, NDNBOOST_PP_SEQ_ENUM_130
+# define NDNBOOST_PP_SEQ_ENUM_132(x) x, NDNBOOST_PP_SEQ_ENUM_131
+# define NDNBOOST_PP_SEQ_ENUM_133(x) x, NDNBOOST_PP_SEQ_ENUM_132
+# define NDNBOOST_PP_SEQ_ENUM_134(x) x, NDNBOOST_PP_SEQ_ENUM_133
+# define NDNBOOST_PP_SEQ_ENUM_135(x) x, NDNBOOST_PP_SEQ_ENUM_134
+# define NDNBOOST_PP_SEQ_ENUM_136(x) x, NDNBOOST_PP_SEQ_ENUM_135
+# define NDNBOOST_PP_SEQ_ENUM_137(x) x, NDNBOOST_PP_SEQ_ENUM_136
+# define NDNBOOST_PP_SEQ_ENUM_138(x) x, NDNBOOST_PP_SEQ_ENUM_137
+# define NDNBOOST_PP_SEQ_ENUM_139(x) x, NDNBOOST_PP_SEQ_ENUM_138
+# define NDNBOOST_PP_SEQ_ENUM_140(x) x, NDNBOOST_PP_SEQ_ENUM_139
+# define NDNBOOST_PP_SEQ_ENUM_141(x) x, NDNBOOST_PP_SEQ_ENUM_140
+# define NDNBOOST_PP_SEQ_ENUM_142(x) x, NDNBOOST_PP_SEQ_ENUM_141
+# define NDNBOOST_PP_SEQ_ENUM_143(x) x, NDNBOOST_PP_SEQ_ENUM_142
+# define NDNBOOST_PP_SEQ_ENUM_144(x) x, NDNBOOST_PP_SEQ_ENUM_143
+# define NDNBOOST_PP_SEQ_ENUM_145(x) x, NDNBOOST_PP_SEQ_ENUM_144
+# define NDNBOOST_PP_SEQ_ENUM_146(x) x, NDNBOOST_PP_SEQ_ENUM_145
+# define NDNBOOST_PP_SEQ_ENUM_147(x) x, NDNBOOST_PP_SEQ_ENUM_146
+# define NDNBOOST_PP_SEQ_ENUM_148(x) x, NDNBOOST_PP_SEQ_ENUM_147
+# define NDNBOOST_PP_SEQ_ENUM_149(x) x, NDNBOOST_PP_SEQ_ENUM_148
+# define NDNBOOST_PP_SEQ_ENUM_150(x) x, NDNBOOST_PP_SEQ_ENUM_149
+# define NDNBOOST_PP_SEQ_ENUM_151(x) x, NDNBOOST_PP_SEQ_ENUM_150
+# define NDNBOOST_PP_SEQ_ENUM_152(x) x, NDNBOOST_PP_SEQ_ENUM_151
+# define NDNBOOST_PP_SEQ_ENUM_153(x) x, NDNBOOST_PP_SEQ_ENUM_152
+# define NDNBOOST_PP_SEQ_ENUM_154(x) x, NDNBOOST_PP_SEQ_ENUM_153
+# define NDNBOOST_PP_SEQ_ENUM_155(x) x, NDNBOOST_PP_SEQ_ENUM_154
+# define NDNBOOST_PP_SEQ_ENUM_156(x) x, NDNBOOST_PP_SEQ_ENUM_155
+# define NDNBOOST_PP_SEQ_ENUM_157(x) x, NDNBOOST_PP_SEQ_ENUM_156
+# define NDNBOOST_PP_SEQ_ENUM_158(x) x, NDNBOOST_PP_SEQ_ENUM_157
+# define NDNBOOST_PP_SEQ_ENUM_159(x) x, NDNBOOST_PP_SEQ_ENUM_158
+# define NDNBOOST_PP_SEQ_ENUM_160(x) x, NDNBOOST_PP_SEQ_ENUM_159
+# define NDNBOOST_PP_SEQ_ENUM_161(x) x, NDNBOOST_PP_SEQ_ENUM_160
+# define NDNBOOST_PP_SEQ_ENUM_162(x) x, NDNBOOST_PP_SEQ_ENUM_161
+# define NDNBOOST_PP_SEQ_ENUM_163(x) x, NDNBOOST_PP_SEQ_ENUM_162
+# define NDNBOOST_PP_SEQ_ENUM_164(x) x, NDNBOOST_PP_SEQ_ENUM_163
+# define NDNBOOST_PP_SEQ_ENUM_165(x) x, NDNBOOST_PP_SEQ_ENUM_164
+# define NDNBOOST_PP_SEQ_ENUM_166(x) x, NDNBOOST_PP_SEQ_ENUM_165
+# define NDNBOOST_PP_SEQ_ENUM_167(x) x, NDNBOOST_PP_SEQ_ENUM_166
+# define NDNBOOST_PP_SEQ_ENUM_168(x) x, NDNBOOST_PP_SEQ_ENUM_167
+# define NDNBOOST_PP_SEQ_ENUM_169(x) x, NDNBOOST_PP_SEQ_ENUM_168
+# define NDNBOOST_PP_SEQ_ENUM_170(x) x, NDNBOOST_PP_SEQ_ENUM_169
+# define NDNBOOST_PP_SEQ_ENUM_171(x) x, NDNBOOST_PP_SEQ_ENUM_170
+# define NDNBOOST_PP_SEQ_ENUM_172(x) x, NDNBOOST_PP_SEQ_ENUM_171
+# define NDNBOOST_PP_SEQ_ENUM_173(x) x, NDNBOOST_PP_SEQ_ENUM_172
+# define NDNBOOST_PP_SEQ_ENUM_174(x) x, NDNBOOST_PP_SEQ_ENUM_173
+# define NDNBOOST_PP_SEQ_ENUM_175(x) x, NDNBOOST_PP_SEQ_ENUM_174
+# define NDNBOOST_PP_SEQ_ENUM_176(x) x, NDNBOOST_PP_SEQ_ENUM_175
+# define NDNBOOST_PP_SEQ_ENUM_177(x) x, NDNBOOST_PP_SEQ_ENUM_176
+# define NDNBOOST_PP_SEQ_ENUM_178(x) x, NDNBOOST_PP_SEQ_ENUM_177
+# define NDNBOOST_PP_SEQ_ENUM_179(x) x, NDNBOOST_PP_SEQ_ENUM_178
+# define NDNBOOST_PP_SEQ_ENUM_180(x) x, NDNBOOST_PP_SEQ_ENUM_179
+# define NDNBOOST_PP_SEQ_ENUM_181(x) x, NDNBOOST_PP_SEQ_ENUM_180
+# define NDNBOOST_PP_SEQ_ENUM_182(x) x, NDNBOOST_PP_SEQ_ENUM_181
+# define NDNBOOST_PP_SEQ_ENUM_183(x) x, NDNBOOST_PP_SEQ_ENUM_182
+# define NDNBOOST_PP_SEQ_ENUM_184(x) x, NDNBOOST_PP_SEQ_ENUM_183
+# define NDNBOOST_PP_SEQ_ENUM_185(x) x, NDNBOOST_PP_SEQ_ENUM_184
+# define NDNBOOST_PP_SEQ_ENUM_186(x) x, NDNBOOST_PP_SEQ_ENUM_185
+# define NDNBOOST_PP_SEQ_ENUM_187(x) x, NDNBOOST_PP_SEQ_ENUM_186
+# define NDNBOOST_PP_SEQ_ENUM_188(x) x, NDNBOOST_PP_SEQ_ENUM_187
+# define NDNBOOST_PP_SEQ_ENUM_189(x) x, NDNBOOST_PP_SEQ_ENUM_188
+# define NDNBOOST_PP_SEQ_ENUM_190(x) x, NDNBOOST_PP_SEQ_ENUM_189
+# define NDNBOOST_PP_SEQ_ENUM_191(x) x, NDNBOOST_PP_SEQ_ENUM_190
+# define NDNBOOST_PP_SEQ_ENUM_192(x) x, NDNBOOST_PP_SEQ_ENUM_191
+# define NDNBOOST_PP_SEQ_ENUM_193(x) x, NDNBOOST_PP_SEQ_ENUM_192
+# define NDNBOOST_PP_SEQ_ENUM_194(x) x, NDNBOOST_PP_SEQ_ENUM_193
+# define NDNBOOST_PP_SEQ_ENUM_195(x) x, NDNBOOST_PP_SEQ_ENUM_194
+# define NDNBOOST_PP_SEQ_ENUM_196(x) x, NDNBOOST_PP_SEQ_ENUM_195
+# define NDNBOOST_PP_SEQ_ENUM_197(x) x, NDNBOOST_PP_SEQ_ENUM_196
+# define NDNBOOST_PP_SEQ_ENUM_198(x) x, NDNBOOST_PP_SEQ_ENUM_197
+# define NDNBOOST_PP_SEQ_ENUM_199(x) x, NDNBOOST_PP_SEQ_ENUM_198
+# define NDNBOOST_PP_SEQ_ENUM_200(x) x, NDNBOOST_PP_SEQ_ENUM_199
+# define NDNBOOST_PP_SEQ_ENUM_201(x) x, NDNBOOST_PP_SEQ_ENUM_200
+# define NDNBOOST_PP_SEQ_ENUM_202(x) x, NDNBOOST_PP_SEQ_ENUM_201
+# define NDNBOOST_PP_SEQ_ENUM_203(x) x, NDNBOOST_PP_SEQ_ENUM_202
+# define NDNBOOST_PP_SEQ_ENUM_204(x) x, NDNBOOST_PP_SEQ_ENUM_203
+# define NDNBOOST_PP_SEQ_ENUM_205(x) x, NDNBOOST_PP_SEQ_ENUM_204
+# define NDNBOOST_PP_SEQ_ENUM_206(x) x, NDNBOOST_PP_SEQ_ENUM_205
+# define NDNBOOST_PP_SEQ_ENUM_207(x) x, NDNBOOST_PP_SEQ_ENUM_206
+# define NDNBOOST_PP_SEQ_ENUM_208(x) x, NDNBOOST_PP_SEQ_ENUM_207
+# define NDNBOOST_PP_SEQ_ENUM_209(x) x, NDNBOOST_PP_SEQ_ENUM_208
+# define NDNBOOST_PP_SEQ_ENUM_210(x) x, NDNBOOST_PP_SEQ_ENUM_209
+# define NDNBOOST_PP_SEQ_ENUM_211(x) x, NDNBOOST_PP_SEQ_ENUM_210
+# define NDNBOOST_PP_SEQ_ENUM_212(x) x, NDNBOOST_PP_SEQ_ENUM_211
+# define NDNBOOST_PP_SEQ_ENUM_213(x) x, NDNBOOST_PP_SEQ_ENUM_212
+# define NDNBOOST_PP_SEQ_ENUM_214(x) x, NDNBOOST_PP_SEQ_ENUM_213
+# define NDNBOOST_PP_SEQ_ENUM_215(x) x, NDNBOOST_PP_SEQ_ENUM_214
+# define NDNBOOST_PP_SEQ_ENUM_216(x) x, NDNBOOST_PP_SEQ_ENUM_215
+# define NDNBOOST_PP_SEQ_ENUM_217(x) x, NDNBOOST_PP_SEQ_ENUM_216
+# define NDNBOOST_PP_SEQ_ENUM_218(x) x, NDNBOOST_PP_SEQ_ENUM_217
+# define NDNBOOST_PP_SEQ_ENUM_219(x) x, NDNBOOST_PP_SEQ_ENUM_218
+# define NDNBOOST_PP_SEQ_ENUM_220(x) x, NDNBOOST_PP_SEQ_ENUM_219
+# define NDNBOOST_PP_SEQ_ENUM_221(x) x, NDNBOOST_PP_SEQ_ENUM_220
+# define NDNBOOST_PP_SEQ_ENUM_222(x) x, NDNBOOST_PP_SEQ_ENUM_221
+# define NDNBOOST_PP_SEQ_ENUM_223(x) x, NDNBOOST_PP_SEQ_ENUM_222
+# define NDNBOOST_PP_SEQ_ENUM_224(x) x, NDNBOOST_PP_SEQ_ENUM_223
+# define NDNBOOST_PP_SEQ_ENUM_225(x) x, NDNBOOST_PP_SEQ_ENUM_224
+# define NDNBOOST_PP_SEQ_ENUM_226(x) x, NDNBOOST_PP_SEQ_ENUM_225
+# define NDNBOOST_PP_SEQ_ENUM_227(x) x, NDNBOOST_PP_SEQ_ENUM_226
+# define NDNBOOST_PP_SEQ_ENUM_228(x) x, NDNBOOST_PP_SEQ_ENUM_227
+# define NDNBOOST_PP_SEQ_ENUM_229(x) x, NDNBOOST_PP_SEQ_ENUM_228
+# define NDNBOOST_PP_SEQ_ENUM_230(x) x, NDNBOOST_PP_SEQ_ENUM_229
+# define NDNBOOST_PP_SEQ_ENUM_231(x) x, NDNBOOST_PP_SEQ_ENUM_230
+# define NDNBOOST_PP_SEQ_ENUM_232(x) x, NDNBOOST_PP_SEQ_ENUM_231
+# define NDNBOOST_PP_SEQ_ENUM_233(x) x, NDNBOOST_PP_SEQ_ENUM_232
+# define NDNBOOST_PP_SEQ_ENUM_234(x) x, NDNBOOST_PP_SEQ_ENUM_233
+# define NDNBOOST_PP_SEQ_ENUM_235(x) x, NDNBOOST_PP_SEQ_ENUM_234
+# define NDNBOOST_PP_SEQ_ENUM_236(x) x, NDNBOOST_PP_SEQ_ENUM_235
+# define NDNBOOST_PP_SEQ_ENUM_237(x) x, NDNBOOST_PP_SEQ_ENUM_236
+# define NDNBOOST_PP_SEQ_ENUM_238(x) x, NDNBOOST_PP_SEQ_ENUM_237
+# define NDNBOOST_PP_SEQ_ENUM_239(x) x, NDNBOOST_PP_SEQ_ENUM_238
+# define NDNBOOST_PP_SEQ_ENUM_240(x) x, NDNBOOST_PP_SEQ_ENUM_239
+# define NDNBOOST_PP_SEQ_ENUM_241(x) x, NDNBOOST_PP_SEQ_ENUM_240
+# define NDNBOOST_PP_SEQ_ENUM_242(x) x, NDNBOOST_PP_SEQ_ENUM_241
+# define NDNBOOST_PP_SEQ_ENUM_243(x) x, NDNBOOST_PP_SEQ_ENUM_242
+# define NDNBOOST_PP_SEQ_ENUM_244(x) x, NDNBOOST_PP_SEQ_ENUM_243
+# define NDNBOOST_PP_SEQ_ENUM_245(x) x, NDNBOOST_PP_SEQ_ENUM_244
+# define NDNBOOST_PP_SEQ_ENUM_246(x) x, NDNBOOST_PP_SEQ_ENUM_245
+# define NDNBOOST_PP_SEQ_ENUM_247(x) x, NDNBOOST_PP_SEQ_ENUM_246
+# define NDNBOOST_PP_SEQ_ENUM_248(x) x, NDNBOOST_PP_SEQ_ENUM_247
+# define NDNBOOST_PP_SEQ_ENUM_249(x) x, NDNBOOST_PP_SEQ_ENUM_248
+# define NDNBOOST_PP_SEQ_ENUM_250(x) x, NDNBOOST_PP_SEQ_ENUM_249
+# define NDNBOOST_PP_SEQ_ENUM_251(x) x, NDNBOOST_PP_SEQ_ENUM_250
+# define NDNBOOST_PP_SEQ_ENUM_252(x) x, NDNBOOST_PP_SEQ_ENUM_251
+# define NDNBOOST_PP_SEQ_ENUM_253(x) x, NDNBOOST_PP_SEQ_ENUM_252
+# define NDNBOOST_PP_SEQ_ENUM_254(x) x, NDNBOOST_PP_SEQ_ENUM_253
+# define NDNBOOST_PP_SEQ_ENUM_255(x) x, NDNBOOST_PP_SEQ_ENUM_254
+# define NDNBOOST_PP_SEQ_ENUM_256(x) x, NDNBOOST_PP_SEQ_ENUM_255
 #
 # endif
diff --git a/include/ndnboost/preprocessor/seq/first_n.hpp b/include/ndnboost/preprocessor/seq/first_n.hpp
index d69cec8..adb4de7 100644
--- a/include/ndnboost/preprocessor/seq/first_n.hpp
+++ b/include/ndnboost/preprocessor/seq/first_n.hpp
@@ -9,8 +9,8 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_SEQ_FIRST_N_HPP
-# define BOOST_PREPROCESSOR_SEQ_FIRST_N_HPP
+# ifndef NDNBOOST_PREPROCESSOR_SEQ_FIRST_N_HPP
+# define NDNBOOST_PREPROCESSOR_SEQ_FIRST_N_HPP
 #
 # include <ndnboost/preprocessor/config/config.hpp>
 # include <ndnboost/preprocessor/control/if.hpp>
@@ -18,13 +18,13 @@
 # include <ndnboost/preprocessor/tuple/eat.hpp>
 # include <ndnboost/preprocessor/tuple/elem.hpp>
 #
-# /* BOOST_PP_SEQ_FIRST_N */
+# /* NDNBOOST_PP_SEQ_FIRST_N */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_SEQ_FIRST_N(n, seq) BOOST_PP_IF(n, BOOST_PP_TUPLE_ELEM, BOOST_PP_TUPLE_EAT_3)(2, 0, BOOST_PP_SEQ_SPLIT(n, seq (nil)))
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_SEQ_FIRST_N(n, seq) NDNBOOST_PP_IF(n, NDNBOOST_PP_TUPLE_ELEM, NDNBOOST_PP_TUPLE_EAT_3)(2, 0, NDNBOOST_PP_SEQ_SPLIT(n, seq (nil)))
 # else
-#    define BOOST_PP_SEQ_FIRST_N(n, seq) BOOST_PP_SEQ_FIRST_N_I(n, seq)
-#    define BOOST_PP_SEQ_FIRST_N_I(n, seq) BOOST_PP_IF(n, BOOST_PP_TUPLE_ELEM, BOOST_PP_TUPLE_EAT_3)(2, 0, BOOST_PP_SEQ_SPLIT(n, seq (nil)))
+#    define NDNBOOST_PP_SEQ_FIRST_N(n, seq) NDNBOOST_PP_SEQ_FIRST_N_I(n, seq)
+#    define NDNBOOST_PP_SEQ_FIRST_N_I(n, seq) NDNBOOST_PP_IF(n, NDNBOOST_PP_TUPLE_ELEM, NDNBOOST_PP_TUPLE_EAT_3)(2, 0, NDNBOOST_PP_SEQ_SPLIT(n, seq (nil)))
 # endif
 #
 # endif
diff --git a/include/ndnboost/preprocessor/seq/fold_left.hpp b/include/ndnboost/preprocessor/seq/fold_left.hpp
index 06877de..f232936 100644
--- a/include/ndnboost/preprocessor/seq/fold_left.hpp
+++ b/include/ndnboost/preprocessor/seq/fold_left.hpp
@@ -9,8 +9,8 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_SEQ_FOLD_LEFT_HPP
-# define BOOST_PREPROCESSOR_SEQ_FOLD_LEFT_HPP
+# ifndef NDNBOOST_PREPROCESSOR_SEQ_FOLD_LEFT_HPP
+# define NDNBOOST_PREPROCESSOR_SEQ_FOLD_LEFT_HPP
 #
 # include <ndnboost/preprocessor/arithmetic/dec.hpp>
 # include <ndnboost/preprocessor/cat.hpp>
@@ -20,1051 +20,1051 @@
 # include <ndnboost/preprocessor/seq/seq.hpp>
 # include <ndnboost/preprocessor/seq/size.hpp>
 #
-# /* BOOST_PP_SEQ_FOLD_LEFT */
+# /* NDNBOOST_PP_SEQ_FOLD_LEFT */
 #
 # if 0
-#    define BOOST_PP_SEQ_FOLD_LEFT(op, state, seq) ...
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT(op, state, seq) ...
 # endif
 #
-# define BOOST_PP_SEQ_FOLD_LEFT BOOST_PP_CAT(BOOST_PP_SEQ_FOLD_LEFT_, BOOST_PP_AUTO_REC(BOOST_PP_SEQ_FOLD_LEFT_P, 256))
-# define BOOST_PP_SEQ_FOLD_LEFT_P(n) BOOST_PP_CAT(BOOST_PP_SEQ_FOLD_LEFT_CHECK_, BOOST_PP_SEQ_FOLD_LEFT_I_ ## n(BOOST_PP_SEQ_FOLD_LEFT_O, BOOST_PP_NIL, (nil), 1))
-# define BOOST_PP_SEQ_FOLD_LEFT_O(s, st, _) st
+# define NDNBOOST_PP_SEQ_FOLD_LEFT NDNBOOST_PP_CAT(NDNBOOST_PP_SEQ_FOLD_LEFT_, NDNBOOST_PP_AUTO_REC(NDNBOOST_PP_SEQ_FOLD_LEFT_P, 256))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_P(n) NDNBOOST_PP_CAT(NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_, NDNBOOST_PP_SEQ_FOLD_LEFT_I_ ## n(NDNBOOST_PP_SEQ_FOLD_LEFT_O, NDNBOOST_PP_NIL, (nil), 1))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_O(s, st, _) st
 #
-# define BOOST_PP_SEQ_FOLD_LEFT_257(op, st, ss) BOOST_PP_ERROR(0x0005)
-# define BOOST_PP_SEQ_FOLD_LEFT_I_257(op, st, ss, sz) BOOST_PP_ERROR(0x0005)
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_257(op, st, ss) NDNBOOST_PP_ERROR(0x0005)
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_I_257(op, st, ss, sz) NDNBOOST_PP_ERROR(0x0005)
 #
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_NIL 1
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_NIL 1
 #
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_1(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_2(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_3(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_4(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_5(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_6(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_7(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_8(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_9(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_10(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_11(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_12(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_13(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_14(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_15(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_16(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_17(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_18(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_19(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_20(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_21(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_22(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_23(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_24(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_25(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_26(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_27(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_28(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_29(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_30(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_31(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_32(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_33(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_34(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_35(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_36(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_37(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_38(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_39(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_40(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_41(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_42(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_43(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_44(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_45(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_46(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_47(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_48(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_49(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_50(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_51(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_52(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_53(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_54(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_55(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_56(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_57(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_58(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_59(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_60(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_61(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_62(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_63(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_64(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_65(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_66(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_67(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_68(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_69(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_70(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_71(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_72(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_73(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_74(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_75(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_76(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_77(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_78(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_79(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_80(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_81(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_82(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_83(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_84(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_85(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_86(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_87(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_88(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_89(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_90(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_91(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_92(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_93(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_94(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_95(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_96(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_97(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_98(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_99(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_100(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_101(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_102(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_103(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_104(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_105(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_106(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_107(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_108(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_109(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_110(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_111(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_112(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_113(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_114(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_115(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_116(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_117(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_118(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_119(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_120(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_121(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_122(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_123(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_124(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_125(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_126(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_127(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_128(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_129(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_130(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_131(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_132(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_133(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_134(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_135(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_136(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_137(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_138(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_139(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_140(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_141(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_142(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_143(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_144(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_145(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_146(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_147(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_148(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_149(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_150(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_151(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_152(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_153(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_154(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_155(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_156(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_157(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_158(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_159(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_160(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_161(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_162(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_163(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_164(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_165(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_166(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_167(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_168(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_169(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_170(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_171(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_172(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_173(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_174(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_175(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_176(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_177(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_178(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_179(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_180(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_181(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_182(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_183(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_184(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_185(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_186(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_187(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_188(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_189(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_190(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_191(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_192(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_193(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_194(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_195(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_196(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_197(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_198(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_199(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_200(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_201(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_202(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_203(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_204(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_205(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_206(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_207(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_208(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_209(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_210(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_211(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_212(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_213(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_214(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_215(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_216(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_217(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_218(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_219(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_220(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_221(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_222(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_223(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_224(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_225(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_226(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_227(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_228(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_229(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_230(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_231(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_232(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_233(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_234(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_235(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_236(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_237(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_238(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_239(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_240(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_241(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_242(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_243(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_244(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_245(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_246(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_247(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_248(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_249(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_250(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_251(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_252(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_253(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_254(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_255(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_256(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_1(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_2(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_3(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_4(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_5(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_6(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_7(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_8(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_9(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_10(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_11(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_12(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_13(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_14(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_15(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_16(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_17(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_18(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_19(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_20(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_21(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_22(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_23(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_24(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_25(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_26(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_27(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_28(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_29(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_30(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_31(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_32(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_33(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_34(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_35(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_36(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_37(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_38(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_39(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_40(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_41(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_42(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_43(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_44(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_45(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_46(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_47(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_48(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_49(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_50(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_51(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_52(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_53(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_54(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_55(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_56(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_57(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_58(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_59(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_60(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_61(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_62(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_63(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_64(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_65(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_66(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_67(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_68(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_69(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_70(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_71(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_72(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_73(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_74(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_75(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_76(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_77(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_78(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_79(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_80(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_81(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_82(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_83(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_84(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_85(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_86(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_87(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_88(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_89(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_90(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_91(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_92(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_93(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_94(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_95(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_96(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_97(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_98(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_99(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_100(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_101(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_102(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_103(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_104(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_105(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_106(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_107(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_108(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_109(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_110(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_111(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_112(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_113(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_114(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_115(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_116(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_117(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_118(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_119(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_120(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_121(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_122(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_123(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_124(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_125(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_126(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_127(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_128(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_129(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_130(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_131(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_132(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_133(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_134(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_135(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_136(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_137(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_138(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_139(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_140(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_141(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_142(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_143(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_144(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_145(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_146(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_147(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_148(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_149(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_150(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_151(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_152(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_153(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_154(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_155(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_156(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_157(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_158(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_159(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_160(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_161(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_162(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_163(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_164(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_165(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_166(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_167(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_168(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_169(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_170(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_171(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_172(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_173(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_174(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_175(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_176(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_177(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_178(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_179(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_180(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_181(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_182(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_183(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_184(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_185(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_186(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_187(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_188(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_189(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_190(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_191(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_192(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_193(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_194(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_195(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_196(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_197(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_198(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_199(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_200(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_201(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_202(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_203(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_204(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_205(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_206(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_207(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_208(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_209(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_210(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_211(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_212(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_213(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_214(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_215(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_216(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_217(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_218(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_219(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_220(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_221(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_222(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_223(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_224(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_225(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_226(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_227(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_228(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_229(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_230(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_231(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_232(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_233(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_234(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_235(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_236(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_237(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_238(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_239(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_240(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_241(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_242(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_243(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_244(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_245(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_246(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_247(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_248(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_249(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_250(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_251(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_252(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_253(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_254(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_255(op, st, ss, sz) 0
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_SEQ_FOLD_LEFT_I_256(op, st, ss, sz) 0
 #
-# define BOOST_PP_SEQ_FOLD_LEFT_F(op, st, ss, sz) st
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_F(op, st, ss, sz) st
 #
-# define BOOST_PP_SEQ_FOLD_LEFT_1(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_1(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_2(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_2(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_3(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_3(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_4(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_4(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_5(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_5(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_6(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_6(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_7(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_7(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_8(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_8(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_9(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_9(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_10(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_10(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_11(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_11(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_12(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_12(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_13(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_13(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_14(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_14(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_15(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_15(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_16(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_16(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_17(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_17(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_18(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_18(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_19(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_19(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_20(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_20(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_21(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_21(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_22(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_22(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_23(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_23(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_24(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_24(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_25(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_25(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_26(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_26(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_27(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_27(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_28(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_28(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_29(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_29(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_30(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_30(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_31(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_31(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_32(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_32(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_33(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_33(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_34(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_34(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_35(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_35(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_36(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_36(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_37(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_37(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_38(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_38(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_39(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_39(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_40(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_40(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_41(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_41(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_42(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_42(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_43(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_43(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_44(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_44(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_45(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_45(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_46(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_46(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_47(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_47(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_48(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_48(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_49(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_49(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_50(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_50(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_51(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_51(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_52(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_52(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_53(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_53(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_54(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_54(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_55(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_55(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_56(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_56(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_57(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_57(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_58(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_58(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_59(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_59(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_60(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_60(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_61(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_61(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_62(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_62(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_63(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_63(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_64(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_64(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_65(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_65(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_66(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_66(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_67(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_67(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_68(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_68(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_69(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_69(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_70(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_70(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_71(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_71(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_72(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_72(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_73(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_73(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_74(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_74(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_75(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_75(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_76(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_76(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_77(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_77(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_78(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_78(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_79(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_79(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_80(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_80(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_81(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_81(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_82(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_82(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_83(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_83(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_84(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_84(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_85(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_85(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_86(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_86(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_87(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_87(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_88(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_88(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_89(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_89(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_90(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_90(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_91(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_91(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_92(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_92(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_93(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_93(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_94(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_94(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_95(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_95(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_96(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_96(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_97(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_97(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_98(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_98(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_99(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_99(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_100(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_100(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_101(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_101(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_102(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_102(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_103(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_103(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_104(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_104(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_105(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_105(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_106(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_106(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_107(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_107(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_108(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_108(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_109(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_109(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_110(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_110(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_111(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_111(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_112(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_112(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_113(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_113(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_114(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_114(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_115(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_115(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_116(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_116(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_117(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_117(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_118(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_118(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_119(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_119(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_120(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_120(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_121(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_121(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_122(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_122(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_123(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_123(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_124(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_124(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_125(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_125(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_126(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_126(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_127(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_127(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_128(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_128(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_129(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_129(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_130(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_130(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_131(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_131(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_132(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_132(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_133(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_133(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_134(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_134(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_135(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_135(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_136(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_136(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_137(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_137(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_138(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_138(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_139(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_139(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_140(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_140(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_141(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_141(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_142(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_142(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_143(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_143(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_144(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_144(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_145(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_145(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_146(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_146(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_147(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_147(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_148(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_148(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_149(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_149(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_150(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_150(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_151(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_151(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_152(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_152(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_153(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_153(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_154(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_154(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_155(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_155(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_156(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_156(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_157(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_157(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_158(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_158(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_159(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_159(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_160(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_160(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_161(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_161(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_162(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_162(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_163(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_163(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_164(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_164(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_165(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_165(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_166(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_166(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_167(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_167(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_168(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_168(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_169(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_169(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_170(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_170(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_171(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_171(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_172(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_172(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_173(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_173(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_174(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_174(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_175(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_175(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_176(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_176(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_177(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_177(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_178(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_178(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_179(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_179(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_180(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_180(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_181(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_181(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_182(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_182(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_183(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_183(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_184(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_184(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_185(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_185(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_186(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_186(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_187(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_187(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_188(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_188(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_189(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_189(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_190(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_190(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_191(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_191(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_192(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_192(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_193(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_193(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_194(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_194(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_195(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_195(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_196(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_196(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_197(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_197(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_198(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_198(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_199(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_199(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_200(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_200(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_201(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_201(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_202(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_202(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_203(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_203(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_204(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_204(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_205(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_205(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_206(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_206(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_207(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_207(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_208(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_208(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_209(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_209(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_210(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_210(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_211(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_211(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_212(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_212(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_213(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_213(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_214(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_214(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_215(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_215(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_216(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_216(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_217(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_217(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_218(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_218(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_219(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_219(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_220(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_220(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_221(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_221(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_222(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_222(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_223(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_223(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_224(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_224(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_225(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_225(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_226(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_226(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_227(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_227(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_228(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_228(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_229(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_229(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_230(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_230(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_231(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_231(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_232(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_232(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_233(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_233(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_234(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_234(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_235(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_235(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_236(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_236(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_237(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_237(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_238(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_238(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_239(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_239(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_240(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_240(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_241(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_241(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_242(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_242(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_243(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_243(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_244(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_244(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_245(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_245(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_246(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_246(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_247(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_247(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_248(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_248(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_249(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_249(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_250(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_250(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_251(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_251(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_252(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_252(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_253(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_253(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_254(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_254(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_255(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_255(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_256(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_256(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_1(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_1(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_2(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_2(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_3(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_3(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_4(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_4(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_5(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_5(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_6(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_6(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_7(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_7(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_8(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_8(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_9(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_9(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_10(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_10(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_11(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_11(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_12(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_12(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_13(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_13(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_14(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_14(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_15(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_15(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_16(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_16(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_17(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_17(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_18(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_18(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_19(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_19(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_20(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_20(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_21(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_21(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_22(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_22(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_23(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_23(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_24(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_24(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_25(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_25(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_26(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_26(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_27(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_27(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_28(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_28(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_29(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_29(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_30(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_30(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_31(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_31(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_32(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_32(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_33(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_33(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_34(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_34(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_35(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_35(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_36(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_36(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_37(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_37(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_38(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_38(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_39(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_39(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_40(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_40(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_41(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_41(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_42(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_42(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_43(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_43(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_44(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_44(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_45(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_45(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_46(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_46(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_47(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_47(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_48(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_48(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_49(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_49(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_50(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_50(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_51(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_51(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_52(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_52(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_53(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_53(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_54(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_54(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_55(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_55(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_56(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_56(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_57(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_57(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_58(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_58(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_59(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_59(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_60(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_60(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_61(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_61(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_62(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_62(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_63(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_63(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_64(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_64(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_65(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_65(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_66(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_66(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_67(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_67(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_68(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_68(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_69(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_69(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_70(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_70(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_71(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_71(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_72(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_72(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_73(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_73(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_74(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_74(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_75(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_75(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_76(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_76(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_77(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_77(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_78(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_78(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_79(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_79(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_80(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_80(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_81(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_81(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_82(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_82(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_83(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_83(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_84(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_84(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_85(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_85(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_86(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_86(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_87(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_87(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_88(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_88(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_89(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_89(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_90(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_90(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_91(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_91(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_92(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_92(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_93(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_93(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_94(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_94(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_95(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_95(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_96(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_96(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_97(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_97(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_98(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_98(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_99(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_99(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_100(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_100(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_101(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_101(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_102(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_102(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_103(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_103(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_104(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_104(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_105(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_105(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_106(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_106(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_107(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_107(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_108(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_108(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_109(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_109(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_110(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_110(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_111(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_111(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_112(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_112(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_113(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_113(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_114(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_114(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_115(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_115(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_116(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_116(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_117(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_117(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_118(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_118(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_119(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_119(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_120(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_120(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_121(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_121(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_122(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_122(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_123(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_123(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_124(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_124(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_125(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_125(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_126(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_126(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_127(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_127(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_128(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_128(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_129(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_129(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_130(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_130(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_131(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_131(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_132(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_132(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_133(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_133(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_134(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_134(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_135(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_135(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_136(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_136(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_137(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_137(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_138(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_138(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_139(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_139(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_140(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_140(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_141(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_141(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_142(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_142(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_143(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_143(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_144(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_144(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_145(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_145(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_146(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_146(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_147(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_147(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_148(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_148(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_149(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_149(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_150(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_150(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_151(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_151(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_152(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_152(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_153(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_153(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_154(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_154(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_155(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_155(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_156(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_156(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_157(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_157(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_158(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_158(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_159(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_159(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_160(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_160(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_161(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_161(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_162(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_162(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_163(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_163(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_164(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_164(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_165(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_165(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_166(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_166(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_167(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_167(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_168(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_168(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_169(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_169(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_170(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_170(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_171(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_171(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_172(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_172(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_173(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_173(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_174(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_174(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_175(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_175(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_176(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_176(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_177(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_177(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_178(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_178(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_179(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_179(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_180(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_180(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_181(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_181(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_182(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_182(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_183(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_183(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_184(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_184(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_185(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_185(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_186(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_186(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_187(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_187(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_188(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_188(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_189(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_189(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_190(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_190(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_191(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_191(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_192(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_192(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_193(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_193(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_194(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_194(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_195(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_195(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_196(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_196(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_197(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_197(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_198(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_198(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_199(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_199(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_200(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_200(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_201(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_201(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_202(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_202(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_203(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_203(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_204(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_204(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_205(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_205(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_206(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_206(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_207(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_207(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_208(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_208(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_209(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_209(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_210(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_210(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_211(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_211(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_212(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_212(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_213(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_213(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_214(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_214(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_215(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_215(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_216(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_216(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_217(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_217(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_218(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_218(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_219(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_219(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_220(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_220(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_221(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_221(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_222(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_222(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_223(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_223(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_224(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_224(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_225(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_225(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_226(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_226(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_227(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_227(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_228(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_228(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_229(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_229(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_230(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_230(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_231(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_231(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_232(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_232(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_233(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_233(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_234(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_234(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_235(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_235(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_236(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_236(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_237(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_237(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_238(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_238(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_239(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_239(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_240(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_240(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_241(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_241(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_242(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_242(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_243(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_243(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_244(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_244(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_245(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_245(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_246(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_246(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_247(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_247(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_248(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_248(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_249(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_249(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_250(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_250(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_251(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_251(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_252(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_252(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_253(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_253(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_254(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_254(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_255(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_255(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
+# define NDNBOOST_PP_SEQ_FOLD_LEFT_256(op, st, ss) NDNBOOST_PP_SEQ_FOLD_LEFT_I_256(op, st, ss, NDNBOOST_PP_SEQ_SIZE(ss))
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC()
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_1(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_2, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(2, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_2(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_3, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(3, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_3(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_4, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(4, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_4(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_5, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(5, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_5(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_6, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(6, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_6(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_7, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(7, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_7(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_8, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(8, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_8(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_9, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(9, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_9(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_10, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(10, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_10(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_11, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(11, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_11(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_12, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(12, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_12(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_13, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(13, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_13(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_14, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(14, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_14(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_15, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(15, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_15(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_16, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(16, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_16(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_17, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(17, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_17(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_18, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(18, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_18(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_19, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(19, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_19(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_20, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(20, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_20(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_21, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(21, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_21(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_22, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(22, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_22(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_23, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(23, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_23(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_24, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(24, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_24(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_25, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(25, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_25(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_26, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(26, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_26(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_27, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(27, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_27(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_28, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(28, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_28(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_29, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(29, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_29(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_30, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(30, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_30(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_31, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(31, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_31(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_32, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(32, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_32(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_33, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(33, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_33(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_34, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(34, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_34(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_35, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(35, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_35(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_36, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(36, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_36(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_37, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(37, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_37(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_38, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(38, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_38(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_39, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(39, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_39(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_40, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(40, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_40(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_41, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(41, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_41(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_42, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(42, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_42(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_43, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(43, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_43(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_44, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(44, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_44(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_45, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(45, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_45(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_46, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(46, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_46(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_47, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(47, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_47(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_48, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(48, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_48(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_49, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(49, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_49(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_50, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(50, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_50(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_51, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(51, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_51(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_52, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(52, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_52(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_53, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(53, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_53(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_54, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(54, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_54(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_55, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(55, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_55(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_56, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(56, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_56(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_57, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(57, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_57(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_58, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(58, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_58(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_59, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(59, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_59(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_60, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(60, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_60(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_61, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(61, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_61(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_62, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(62, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_62(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_63, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(63, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_63(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_64, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(64, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_64(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_65, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(65, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_65(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_66, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(66, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_66(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_67, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(67, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_67(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_68, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(68, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_68(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_69, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(69, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_69(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_70, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(70, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_70(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_71, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(71, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_71(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_72, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(72, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_72(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_73, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(73, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_73(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_74, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(74, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_74(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_75, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(75, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_75(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_76, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(76, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_76(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_77, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(77, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_77(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_78, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(78, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_78(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_79, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(79, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_79(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_80, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(80, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_80(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_81, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(81, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_81(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_82, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(82, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_82(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_83, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(83, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_83(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_84, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(84, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_84(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_85, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(85, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_85(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_86, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(86, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_86(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_87, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(87, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_87(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_88, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(88, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_88(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_89, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(89, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_89(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_90, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(90, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_90(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_91, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(91, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_91(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_92, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(92, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_92(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_93, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(93, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_93(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_94, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(94, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_94(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_95, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(95, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_95(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_96, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(96, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_96(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_97, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(97, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_97(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_98, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(98, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_98(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_99, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(99, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_99(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_100, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(100, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_100(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_101, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(101, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_101(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_102, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(102, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_102(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_103, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(103, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_103(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_104, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(104, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_104(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_105, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(105, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_105(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_106, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(106, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_106(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_107, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(107, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_107(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_108, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(108, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_108(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_109, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(109, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_109(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_110, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(110, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_110(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_111, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(111, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_111(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_112, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(112, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_112(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_113, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(113, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_113(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_114, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(114, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_114(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_115, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(115, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_115(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_116, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(116, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_116(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_117, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(117, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_117(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_118, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(118, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_118(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_119, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(119, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_119(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_120, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(120, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_120(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_121, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(121, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_121(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_122, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(122, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_122(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_123, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(123, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_123(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_124, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(124, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_124(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_125, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(125, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_125(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_126, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(126, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_126(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_127, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(127, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_127(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_128, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(128, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_128(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_129, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(129, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_129(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_130, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(130, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_130(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_131, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(131, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_131(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_132, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(132, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_132(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_133, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(133, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_133(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_134, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(134, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_134(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_135, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(135, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_135(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_136, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(136, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_136(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_137, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(137, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_137(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_138, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(138, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_138(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_139, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(139, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_139(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_140, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(140, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_140(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_141, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(141, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_141(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_142, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(142, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_142(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_143, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(143, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_143(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_144, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(144, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_144(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_145, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(145, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_145(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_146, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(146, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_146(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_147, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(147, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_147(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_148, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(148, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_148(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_149, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(149, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_149(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_150, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(150, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_150(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_151, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(151, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_151(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_152, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(152, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_152(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_153, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(153, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_153(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_154, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(154, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_154(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_155, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(155, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_155(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_156, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(156, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_156(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_157, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(157, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_157(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_158, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(158, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_158(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_159, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(159, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_159(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_160, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(160, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_160(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_161, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(161, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_161(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_162, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(162, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_162(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_163, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(163, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_163(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_164, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(164, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_164(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_165, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(165, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_165(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_166, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(166, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_166(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_167, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(167, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_167(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_168, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(168, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_168(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_169, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(169, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_169(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_170, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(170, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_170(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_171, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(171, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_171(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_172, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(172, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_172(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_173, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(173, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_173(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_174, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(174, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_174(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_175, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(175, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_175(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_176, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(176, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_176(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_177, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(177, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_177(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_178, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(178, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_178(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_179, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(179, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_179(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_180, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(180, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_180(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_181, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(181, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_181(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_182, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(182, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_182(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_183, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(183, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_183(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_184, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(184, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_184(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_185, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(185, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_185(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_186, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(186, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_186(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_187, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(187, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_187(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_188, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(188, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_188(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_189, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(189, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_189(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_190, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(190, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_190(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_191, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(191, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_191(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_192, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(192, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_192(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_193, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(193, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_193(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_194, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(194, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_194(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_195, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(195, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_195(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_196, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(196, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_196(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_197, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(197, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_197(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_198, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(198, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_198(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_199, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(199, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_199(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_200, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(200, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_200(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_201, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(201, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_201(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_202, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(202, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_202(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_203, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(203, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_203(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_204, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(204, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_204(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_205, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(205, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_205(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_206, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(206, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_206(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_207, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(207, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_207(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_208, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(208, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_208(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_209, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(209, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_209(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_210, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(210, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_210(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_211, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(211, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_211(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_212, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(212, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_212(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_213, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(213, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_213(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_214, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(214, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_214(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_215, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(215, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_215(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_216, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(216, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_216(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_217, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(217, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_217(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_218, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(218, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_218(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_219, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(219, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_219(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_220, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(220, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_220(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_221, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(221, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_221(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_222, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(222, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_222(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_223, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(223, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_223(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_224, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(224, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_224(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_225, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(225, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_225(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_226, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(226, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_226(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_227, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(227, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_227(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_228, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(228, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_228(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_229, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(229, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_229(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_230, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(230, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_230(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_231, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(231, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_231(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_232, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(232, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_232(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_233, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(233, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_233(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_234, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(234, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_234(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_235, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(235, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_235(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_236, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(236, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_236(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_237, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(237, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_237(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_238, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(238, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_238(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_239, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(239, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_239(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_240, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(240, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_240(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_241, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(241, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_241(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_242, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(242, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_242(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_243, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(243, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_243(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_244, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(244, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_244(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_245, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(245, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_245(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_246, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(246, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_246(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_247, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(247, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_247(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_248, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(248, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_248(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_249, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(249, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_249(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_250, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(250, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_250(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_251, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(251, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_251(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_252, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(252, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_252(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_253, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(253, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_253(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_254, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(254, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_254(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_255, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(255, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_255(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_256, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(256, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_256(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_257, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(257, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_DMC()
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_1(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_2, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(2, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_2(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_3, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(3, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_3(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_4, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(4, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_4(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_5, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(5, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_5(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_6, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(6, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_6(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_7, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(7, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_7(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_8, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(8, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_8(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_9, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(9, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_9(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_10, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(10, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_10(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_11, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(11, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_11(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_12, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(12, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_12(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_13, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(13, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_13(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_14, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(14, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_14(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_15, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(15, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_15(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_16, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(16, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_16(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_17, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(17, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_17(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_18, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(18, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_18(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_19, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(19, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_19(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_20, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(20, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_20(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_21, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(21, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_21(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_22, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(22, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_22(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_23, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(23, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_23(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_24, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(24, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_24(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_25, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(25, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_25(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_26, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(26, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_26(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_27, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(27, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_27(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_28, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(28, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_28(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_29, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(29, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_29(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_30, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(30, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_30(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_31, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(31, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_31(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_32, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(32, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_32(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_33, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(33, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_33(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_34, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(34, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_34(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_35, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(35, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_35(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_36, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(36, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_36(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_37, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(37, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_37(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_38, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(38, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_38(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_39, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(39, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_39(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_40, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(40, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_40(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_41, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(41, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_41(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_42, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(42, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_42(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_43, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(43, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_43(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_44, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(44, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_44(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_45, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(45, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_45(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_46, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(46, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_46(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_47, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(47, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_47(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_48, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(48, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_48(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_49, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(49, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_49(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_50, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(50, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_50(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_51, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(51, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_51(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_52, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(52, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_52(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_53, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(53, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_53(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_54, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(54, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_54(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_55, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(55, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_55(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_56, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(56, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_56(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_57, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(57, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_57(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_58, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(58, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_58(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_59, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(59, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_59(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_60, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(60, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_60(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_61, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(61, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_61(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_62, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(62, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_62(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_63, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(63, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_63(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_64, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(64, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_64(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_65, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(65, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_65(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_66, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(66, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_66(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_67, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(67, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_67(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_68, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(68, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_68(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_69, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(69, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_69(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_70, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(70, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_70(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_71, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(71, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_71(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_72, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(72, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_72(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_73, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(73, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_73(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_74, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(74, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_74(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_75, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(75, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_75(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_76, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(76, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_76(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_77, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(77, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_77(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_78, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(78, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_78(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_79, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(79, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_79(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_80, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(80, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_80(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_81, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(81, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_81(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_82, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(82, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_82(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_83, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(83, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_83(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_84, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(84, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_84(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_85, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(85, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_85(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_86, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(86, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_86(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_87, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(87, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_87(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_88, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(88, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_88(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_89, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(89, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_89(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_90, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(90, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_90(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_91, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(91, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_91(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_92, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(92, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_92(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_93, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(93, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_93(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_94, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(94, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_94(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_95, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(95, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_95(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_96, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(96, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_96(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_97, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(97, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_97(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_98, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(98, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_98(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_99, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(99, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_99(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_100, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(100, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_100(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_101, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(101, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_101(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_102, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(102, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_102(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_103, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(103, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_103(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_104, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(104, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_104(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_105, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(105, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_105(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_106, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(106, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_106(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_107, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(107, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_107(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_108, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(108, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_108(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_109, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(109, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_109(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_110, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(110, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_110(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_111, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(111, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_111(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_112, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(112, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_112(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_113, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(113, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_113(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_114, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(114, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_114(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_115, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(115, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_115(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_116, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(116, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_116(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_117, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(117, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_117(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_118, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(118, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_118(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_119, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(119, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_119(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_120, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(120, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_120(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_121, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(121, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_121(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_122, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(122, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_122(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_123, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(123, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_123(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_124, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(124, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_124(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_125, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(125, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_125(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_126, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(126, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_126(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_127, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(127, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_127(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_128, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(128, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_128(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_129, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(129, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_129(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_130, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(130, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_130(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_131, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(131, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_131(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_132, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(132, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_132(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_133, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(133, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_133(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_134, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(134, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_134(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_135, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(135, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_135(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_136, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(136, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_136(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_137, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(137, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_137(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_138, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(138, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_138(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_139, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(139, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_139(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_140, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(140, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_140(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_141, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(141, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_141(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_142, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(142, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_142(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_143, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(143, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_143(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_144, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(144, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_144(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_145, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(145, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_145(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_146, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(146, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_146(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_147, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(147, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_147(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_148, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(148, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_148(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_149, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(149, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_149(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_150, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(150, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_150(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_151, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(151, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_151(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_152, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(152, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_152(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_153, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(153, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_153(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_154, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(154, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_154(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_155, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(155, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_155(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_156, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(156, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_156(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_157, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(157, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_157(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_158, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(158, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_158(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_159, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(159, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_159(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_160, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(160, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_160(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_161, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(161, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_161(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_162, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(162, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_162(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_163, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(163, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_163(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_164, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(164, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_164(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_165, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(165, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_165(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_166, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(166, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_166(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_167, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(167, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_167(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_168, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(168, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_168(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_169, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(169, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_169(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_170, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(170, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_170(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_171, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(171, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_171(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_172, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(172, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_172(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_173, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(173, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_173(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_174, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(174, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_174(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_175, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(175, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_175(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_176, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(176, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_176(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_177, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(177, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_177(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_178, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(178, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_178(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_179, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(179, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_179(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_180, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(180, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_180(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_181, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(181, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_181(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_182, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(182, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_182(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_183, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(183, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_183(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_184, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(184, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_184(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_185, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(185, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_185(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_186, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(186, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_186(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_187, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(187, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_187(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_188, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(188, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_188(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_189, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(189, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_189(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_190, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(190, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_190(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_191, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(191, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_191(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_192, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(192, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_192(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_193, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(193, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_193(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_194, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(194, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_194(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_195, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(195, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_195(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_196, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(196, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_196(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_197, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(197, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_197(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_198, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(198, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_198(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_199, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(199, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_199(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_200, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(200, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_200(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_201, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(201, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_201(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_202, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(202, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_202(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_203, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(203, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_203(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_204, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(204, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_204(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_205, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(205, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_205(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_206, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(206, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_206(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_207, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(207, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_207(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_208, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(208, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_208(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_209, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(209, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_209(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_210, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(210, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_210(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_211, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(211, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_211(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_212, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(212, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_212(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_213, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(213, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_213(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_214, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(214, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_214(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_215, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(215, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_215(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_216, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(216, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_216(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_217, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(217, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_217(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_218, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(218, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_218(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_219, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(219, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_219(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_220, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(220, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_220(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_221, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(221, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_221(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_222, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(222, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_222(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_223, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(223, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_223(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_224, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(224, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_224(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_225, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(225, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_225(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_226, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(226, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_226(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_227, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(227, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_227(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_228, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(228, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_228(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_229, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(229, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_229(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_230, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(230, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_230(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_231, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(231, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_231(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_232, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(232, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_232(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_233, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(233, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_233(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_234, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(234, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_234(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_235, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(235, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_235(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_236, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(236, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_236(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_237, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(237, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_237(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_238, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(238, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_238(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_239, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(239, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_239(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_240, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(240, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_240(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_241, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(241, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_241(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_242, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(242, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_242(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_243, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(243, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_243(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_244, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(244, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_244(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_245, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(245, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_245(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_246, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(246, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_246(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_247, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(247, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_247(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_248, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(248, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_248(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_249, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(249, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_249(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_250, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(250, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_250(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_251, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(251, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_251(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_252, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(252, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_252(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_253, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(253, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_253(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_254, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(254, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_254(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_255, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(255, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_255(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_256, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(256, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_256(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_257, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op(257, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
 # else
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_1(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_2, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(2, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_2(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_3, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(3, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_3(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_4, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(4, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_4(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_5, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(5, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_5(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_6, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(6, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_6(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_7, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(7, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_7(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_8, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(8, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_8(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_9, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(9, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_9(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_10, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(10, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_10(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_11, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(11, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_11(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_12, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(12, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_12(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_13, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(13, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_13(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_14, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(14, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_14(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_15, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(15, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_15(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_16, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(16, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_16(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_17, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(17, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_17(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_18, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(18, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_18(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_19, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(19, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_19(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_20, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(20, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_20(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_21, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(21, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_21(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_22, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(22, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_22(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_23, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(23, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_23(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_24, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(24, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_24(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_25, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(25, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_25(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_26, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(26, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_26(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_27, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(27, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_27(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_28, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(28, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_28(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_29, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(29, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_29(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_30, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(30, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_30(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_31, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(31, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_31(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_32, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(32, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_32(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_33, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(33, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_33(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_34, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(34, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_34(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_35, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(35, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_35(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_36, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(36, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_36(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_37, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(37, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_37(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_38, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(38, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_38(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_39, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(39, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_39(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_40, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(40, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_40(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_41, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(41, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_41(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_42, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(42, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_42(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_43, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(43, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_43(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_44, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(44, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_44(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_45, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(45, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_45(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_46, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(46, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_46(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_47, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(47, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_47(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_48, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(48, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_48(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_49, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(49, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_49(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_50, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(50, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_50(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_51, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(51, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_51(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_52, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(52, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_52(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_53, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(53, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_53(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_54, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(54, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_54(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_55, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(55, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_55(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_56, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(56, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_56(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_57, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(57, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_57(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_58, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(58, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_58(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_59, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(59, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_59(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_60, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(60, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_60(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_61, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(61, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_61(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_62, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(62, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_62(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_63, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(63, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_63(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_64, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(64, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_64(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_65, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(65, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_65(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_66, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(66, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_66(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_67, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(67, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_67(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_68, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(68, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_68(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_69, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(69, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_69(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_70, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(70, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_70(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_71, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(71, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_71(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_72, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(72, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_72(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_73, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(73, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_73(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_74, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(74, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_74(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_75, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(75, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_75(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_76, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(76, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_76(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_77, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(77, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_77(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_78, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(78, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_78(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_79, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(79, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_79(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_80, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(80, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_80(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_81, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(81, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_81(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_82, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(82, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_82(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_83, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(83, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_83(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_84, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(84, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_84(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_85, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(85, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_85(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_86, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(86, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_86(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_87, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(87, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_87(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_88, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(88, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_88(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_89, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(89, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_89(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_90, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(90, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_90(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_91, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(91, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_91(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_92, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(92, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_92(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_93, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(93, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_93(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_94, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(94, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_94(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_95, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(95, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_95(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_96, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(96, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_96(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_97, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(97, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_97(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_98, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(98, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_98(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_99, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(99, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_99(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_100, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(100, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_100(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_101, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(101, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_101(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_102, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(102, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_102(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_103, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(103, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_103(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_104, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(104, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_104(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_105, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(105, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_105(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_106, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(106, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_106(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_107, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(107, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_107(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_108, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(108, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_108(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_109, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(109, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_109(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_110, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(110, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_110(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_111, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(111, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_111(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_112, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(112, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_112(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_113, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(113, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_113(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_114, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(114, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_114(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_115, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(115, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_115(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_116, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(116, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_116(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_117, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(117, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_117(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_118, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(118, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_118(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_119, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(119, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_119(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_120, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(120, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_120(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_121, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(121, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_121(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_122, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(122, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_122(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_123, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(123, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_123(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_124, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(124, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_124(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_125, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(125, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_125(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_126, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(126, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_126(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_127, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(127, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_127(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_128, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(128, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_128(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_129, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(129, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_129(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_130, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(130, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_130(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_131, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(131, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_131(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_132, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(132, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_132(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_133, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(133, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_133(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_134, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(134, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_134(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_135, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(135, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_135(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_136, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(136, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_136(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_137, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(137, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_137(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_138, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(138, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_138(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_139, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(139, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_139(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_140, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(140, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_140(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_141, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(141, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_141(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_142, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(142, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_142(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_143, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(143, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_143(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_144, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(144, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_144(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_145, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(145, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_145(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_146, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(146, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_146(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_147, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(147, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_147(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_148, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(148, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_148(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_149, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(149, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_149(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_150, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(150, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_150(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_151, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(151, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_151(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_152, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(152, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_152(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_153, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(153, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_153(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_154, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(154, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_154(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_155, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(155, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_155(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_156, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(156, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_156(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_157, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(157, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_157(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_158, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(158, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_158(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_159, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(159, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_159(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_160, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(160, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_160(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_161, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(161, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_161(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_162, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(162, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_162(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_163, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(163, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_163(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_164, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(164, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_164(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_165, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(165, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_165(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_166, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(166, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_166(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_167, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(167, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_167(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_168, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(168, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_168(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_169, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(169, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_169(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_170, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(170, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_170(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_171, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(171, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_171(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_172, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(172, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_172(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_173, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(173, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_173(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_174, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(174, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_174(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_175, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(175, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_175(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_176, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(176, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_176(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_177, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(177, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_177(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_178, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(178, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_178(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_179, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(179, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_179(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_180, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(180, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_180(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_181, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(181, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_181(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_182, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(182, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_182(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_183, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(183, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_183(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_184, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(184, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_184(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_185, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(185, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_185(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_186, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(186, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_186(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_187, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(187, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_187(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_188, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(188, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_188(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_189, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(189, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_189(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_190, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(190, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_190(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_191, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(191, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_191(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_192, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(192, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_192(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_193, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(193, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_193(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_194, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(194, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_194(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_195, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(195, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_195(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_196, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(196, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_196(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_197, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(197, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_197(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_198, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(198, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_198(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_199, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(199, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_199(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_200, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(200, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_200(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_201, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(201, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_201(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_202, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(202, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_202(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_203, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(203, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_203(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_204, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(204, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_204(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_205, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(205, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_205(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_206, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(206, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_206(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_207, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(207, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_207(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_208, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(208, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_208(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_209, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(209, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_209(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_210, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(210, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_210(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_211, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(211, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_211(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_212, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(212, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_212(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_213, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(213, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_213(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_214, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(214, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_214(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_215, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(215, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_215(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_216, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(216, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_216(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_217, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(217, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_217(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_218, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(218, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_218(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_219, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(219, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_219(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_220, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(220, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_220(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_221, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(221, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_221(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_222, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(222, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_222(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_223, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(223, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_223(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_224, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(224, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_224(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_225, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(225, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_225(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_226, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(226, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_226(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_227, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(227, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_227(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_228, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(228, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_228(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_229, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(229, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_229(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_230, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(230, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_230(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_231, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(231, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_231(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_232, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(232, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_232(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_233, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(233, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_233(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_234, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(234, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_234(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_235, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(235, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_235(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_236, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(236, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_236(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_237, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(237, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_237(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_238, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(238, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_238(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_239, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(239, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_239(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_240, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(240, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_240(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_241, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(241, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_241(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_242, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(242, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_242(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_243, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(243, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_243(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_244, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(244, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_244(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_245, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(245, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_245(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_246, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(246, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_246(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_247, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(247, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_247(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_248, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(248, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_248(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_249, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(249, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_249(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_250, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(250, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_250(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_251, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(251, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_251(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_252, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(252, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_252(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_253, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(253, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_253(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_254, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(254, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_254(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_255, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(255, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_255(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_256, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(256, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_256(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_257, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(257, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_1(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_2, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(2, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_2(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_3, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(3, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_3(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_4, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(4, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_4(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_5, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(5, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_5(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_6, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(6, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_6(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_7, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(7, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_7(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_8, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(8, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_8(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_9, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(9, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_9(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_10, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(10, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_10(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_11, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(11, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_11(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_12, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(12, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_12(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_13, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(13, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_13(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_14, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(14, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_14(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_15, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(15, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_15(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_16, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(16, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_16(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_17, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(17, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_17(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_18, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(18, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_18(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_19, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(19, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_19(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_20, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(20, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_20(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_21, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(21, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_21(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_22, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(22, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_22(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_23, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(23, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_23(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_24, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(24, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_24(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_25, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(25, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_25(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_26, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(26, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_26(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_27, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(27, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_27(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_28, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(28, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_28(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_29, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(29, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_29(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_30, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(30, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_30(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_31, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(31, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_31(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_32, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(32, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_32(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_33, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(33, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_33(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_34, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(34, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_34(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_35, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(35, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_35(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_36, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(36, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_36(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_37, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(37, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_37(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_38, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(38, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_38(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_39, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(39, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_39(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_40, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(40, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_40(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_41, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(41, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_41(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_42, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(42, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_42(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_43, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(43, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_43(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_44, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(44, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_44(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_45, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(45, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_45(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_46, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(46, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_46(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_47, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(47, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_47(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_48, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(48, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_48(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_49, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(49, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_49(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_50, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(50, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_50(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_51, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(51, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_51(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_52, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(52, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_52(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_53, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(53, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_53(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_54, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(54, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_54(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_55, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(55, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_55(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_56, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(56, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_56(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_57, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(57, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_57(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_58, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(58, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_58(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_59, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(59, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_59(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_60, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(60, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_60(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_61, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(61, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_61(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_62, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(62, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_62(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_63, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(63, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_63(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_64, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(64, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_64(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_65, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(65, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_65(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_66, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(66, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_66(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_67, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(67, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_67(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_68, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(68, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_68(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_69, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(69, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_69(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_70, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(70, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_70(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_71, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(71, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_71(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_72, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(72, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_72(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_73, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(73, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_73(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_74, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(74, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_74(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_75, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(75, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_75(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_76, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(76, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_76(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_77, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(77, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_77(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_78, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(78, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_78(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_79, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(79, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_79(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_80, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(80, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_80(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_81, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(81, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_81(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_82, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(82, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_82(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_83, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(83, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_83(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_84, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(84, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_84(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_85, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(85, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_85(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_86, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(86, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_86(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_87, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(87, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_87(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_88, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(88, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_88(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_89, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(89, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_89(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_90, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(90, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_90(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_91, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(91, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_91(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_92, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(92, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_92(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_93, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(93, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_93(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_94, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(94, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_94(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_95, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(95, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_95(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_96, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(96, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_96(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_97, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(97, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_97(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_98, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(98, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_98(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_99, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(99, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_99(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_100, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(100, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_100(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_101, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(101, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_101(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_102, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(102, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_102(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_103, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(103, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_103(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_104, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(104, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_104(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_105, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(105, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_105(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_106, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(106, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_106(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_107, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(107, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_107(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_108, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(108, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_108(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_109, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(109, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_109(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_110, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(110, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_110(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_111, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(111, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_111(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_112, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(112, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_112(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_113, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(113, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_113(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_114, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(114, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_114(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_115, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(115, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_115(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_116, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(116, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_116(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_117, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(117, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_117(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_118, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(118, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_118(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_119, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(119, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_119(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_120, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(120, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_120(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_121, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(121, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_121(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_122, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(122, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_122(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_123, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(123, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_123(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_124, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(124, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_124(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_125, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(125, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_125(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_126, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(126, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_126(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_127, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(127, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_127(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_128, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(128, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_128(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_129, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(129, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_129(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_130, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(130, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_130(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_131, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(131, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_131(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_132, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(132, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_132(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_133, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(133, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_133(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_134, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(134, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_134(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_135, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(135, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_135(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_136, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(136, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_136(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_137, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(137, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_137(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_138, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(138, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_138(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_139, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(139, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_139(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_140, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(140, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_140(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_141, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(141, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_141(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_142, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(142, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_142(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_143, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(143, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_143(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_144, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(144, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_144(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_145, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(145, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_145(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_146, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(146, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_146(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_147, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(147, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_147(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_148, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(148, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_148(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_149, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(149, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_149(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_150, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(150, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_150(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_151, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(151, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_151(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_152, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(152, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_152(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_153, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(153, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_153(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_154, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(154, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_154(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_155, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(155, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_155(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_156, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(156, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_156(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_157, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(157, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_157(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_158, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(158, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_158(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_159, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(159, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_159(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_160, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(160, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_160(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_161, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(161, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_161(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_162, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(162, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_162(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_163, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(163, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_163(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_164, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(164, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_164(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_165, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(165, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_165(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_166, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(166, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_166(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_167, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(167, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_167(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_168, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(168, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_168(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_169, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(169, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_169(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_170, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(170, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_170(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_171, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(171, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_171(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_172, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(172, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_172(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_173, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(173, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_173(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_174, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(174, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_174(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_175, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(175, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_175(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_176, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(176, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_176(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_177, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(177, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_177(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_178, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(178, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_178(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_179, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(179, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_179(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_180, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(180, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_180(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_181, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(181, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_181(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_182, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(182, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_182(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_183, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(183, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_183(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_184, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(184, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_184(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_185, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(185, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_185(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_186, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(186, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_186(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_187, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(187, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_187(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_188, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(188, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_188(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_189, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(189, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_189(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_190, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(190, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_190(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_191, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(191, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_191(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_192, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(192, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_192(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_193, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(193, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_193(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_194, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(194, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_194(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_195, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(195, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_195(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_196, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(196, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_196(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_197, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(197, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_197(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_198, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(198, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_198(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_199, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(199, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_199(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_200, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(200, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_200(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_201, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(201, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_201(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_202, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(202, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_202(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_203, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(203, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_203(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_204, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(204, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_204(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_205, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(205, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_205(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_206, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(206, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_206(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_207, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(207, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_207(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_208, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(208, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_208(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_209, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(209, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_209(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_210, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(210, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_210(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_211, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(211, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_211(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_212, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(212, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_212(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_213, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(213, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_213(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_214, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(214, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_214(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_215, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(215, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_215(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_216, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(216, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_216(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_217, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(217, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_217(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_218, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(218, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_218(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_219, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(219, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_219(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_220, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(220, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_220(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_221, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(221, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_221(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_222, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(222, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_222(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_223, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(223, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_223(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_224, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(224, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_224(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_225, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(225, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_225(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_226, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(226, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_226(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_227, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(227, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_227(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_228, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(228, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_228(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_229, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(229, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_229(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_230, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(230, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_230(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_231, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(231, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_231(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_232, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(232, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_232(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_233, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(233, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_233(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_234, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(234, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_234(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_235, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(235, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_235(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_236, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(236, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_236(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_237, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(237, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_237(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_238, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(238, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_238(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_239, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(239, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_239(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_240, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(240, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_240(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_241, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(241, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_241(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_242, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(242, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_242(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_243, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(243, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_243(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_244, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(244, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_244(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_245, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(245, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_245(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_246, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(246, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_246(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_247, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(247, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_247(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_248, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(248, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_248(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_249, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(249, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_249(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_250, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(250, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_250(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_251, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(251, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_251(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_252, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(252, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_252(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_253, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(253, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_253(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_254, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(254, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_254(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_255, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(255, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_255(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_256, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(256, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
+#    define NDNBOOST_PP_SEQ_FOLD_LEFT_I_256(op, st, ss, sz) NDNBOOST_PP_IF(NDNBOOST_PP_DEC(sz), NDNBOOST_PP_SEQ_FOLD_LEFT_I_257, NDNBOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(257, st, NDNBOOST_PP_SEQ_HEAD(ss)), NDNBOOST_PP_SEQ_TAIL(ss), NDNBOOST_PP_DEC(sz))
 # endif
 #
 # endif
diff --git a/include/ndnboost/preprocessor/seq/for_each.hpp b/include/ndnboost/preprocessor/seq/for_each.hpp
index 02a082a..24df067 100644
--- a/include/ndnboost/preprocessor/seq/for_each.hpp
+++ b/include/ndnboost/preprocessor/seq/for_each.hpp
@@ -9,8 +9,8 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_SEQ_FOR_EACH_HPP
-# define BOOST_PREPROCESSOR_SEQ_FOR_EACH_HPP
+# ifndef NDNBOOST_PREPROCESSOR_SEQ_FOR_EACH_HPP
+# define NDNBOOST_PREPROCESSOR_SEQ_FOR_EACH_HPP
 #
 # include <ndnboost/preprocessor/arithmetic/dec.hpp>
 # include <ndnboost/preprocessor/config/config.hpp>
@@ -20,41 +20,41 @@
 # include <ndnboost/preprocessor/tuple/elem.hpp>
 # include <ndnboost/preprocessor/tuple/rem.hpp>
 #
-# /* BOOST_PP_SEQ_FOR_EACH */
+# /* NDNBOOST_PP_SEQ_FOR_EACH */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_SEQ_FOR_EACH(macro, data, seq) BOOST_PP_FOR((macro, data, seq (nil)), BOOST_PP_SEQ_FOR_EACH_P, BOOST_PP_SEQ_FOR_EACH_O, BOOST_PP_SEQ_FOR_EACH_M)
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_SEQ_FOR_EACH(macro, data, seq) NDNBOOST_PP_FOR((macro, data, seq (nil)), NDNBOOST_PP_SEQ_FOR_EACH_P, NDNBOOST_PP_SEQ_FOR_EACH_O, NDNBOOST_PP_SEQ_FOR_EACH_M)
 # else
-#    define BOOST_PP_SEQ_FOR_EACH(macro, data, seq) BOOST_PP_SEQ_FOR_EACH_D(macro, data, seq)
-#    define BOOST_PP_SEQ_FOR_EACH_D(macro, data, seq) BOOST_PP_FOR((macro, data, seq (nil)), BOOST_PP_SEQ_FOR_EACH_P, BOOST_PP_SEQ_FOR_EACH_O, BOOST_PP_SEQ_FOR_EACH_M)
+#    define NDNBOOST_PP_SEQ_FOR_EACH(macro, data, seq) NDNBOOST_PP_SEQ_FOR_EACH_D(macro, data, seq)
+#    define NDNBOOST_PP_SEQ_FOR_EACH_D(macro, data, seq) NDNBOOST_PP_FOR((macro, data, seq (nil)), NDNBOOST_PP_SEQ_FOR_EACH_P, NDNBOOST_PP_SEQ_FOR_EACH_O, NDNBOOST_PP_SEQ_FOR_EACH_M)
 # endif
 #
-# define BOOST_PP_SEQ_FOR_EACH_P(r, x) BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(BOOST_PP_TUPLE_ELEM(3, 2, x)))
+# define NDNBOOST_PP_SEQ_FOR_EACH_P(r, x) NDNBOOST_PP_DEC(NDNBOOST_PP_SEQ_SIZE(NDNBOOST_PP_TUPLE_ELEM(3, 2, x)))
 #
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
-#    define BOOST_PP_SEQ_FOR_EACH_O(r, x) BOOST_PP_SEQ_FOR_EACH_O_I x
+# if NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_STRICT()
+#    define NDNBOOST_PP_SEQ_FOR_EACH_O(r, x) NDNBOOST_PP_SEQ_FOR_EACH_O_I x
 # else
-#    define BOOST_PP_SEQ_FOR_EACH_O(r, x) BOOST_PP_SEQ_FOR_EACH_O_I(BOOST_PP_TUPLE_ELEM(3, 0, x), BOOST_PP_TUPLE_ELEM(3, 1, x), BOOST_PP_TUPLE_ELEM(3, 2, x))
+#    define NDNBOOST_PP_SEQ_FOR_EACH_O(r, x) NDNBOOST_PP_SEQ_FOR_EACH_O_I(NDNBOOST_PP_TUPLE_ELEM(3, 0, x), NDNBOOST_PP_TUPLE_ELEM(3, 1, x), NDNBOOST_PP_TUPLE_ELEM(3, 2, x))
 # endif
 #
-# define BOOST_PP_SEQ_FOR_EACH_O_I(macro, data, seq) (macro, data, BOOST_PP_SEQ_TAIL(seq))
+# define NDNBOOST_PP_SEQ_FOR_EACH_O_I(macro, data, seq) (macro, data, NDNBOOST_PP_SEQ_TAIL(seq))
 #
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
-#    define BOOST_PP_SEQ_FOR_EACH_M(r, x) BOOST_PP_SEQ_FOR_EACH_M_IM(r, BOOST_PP_TUPLE_REM_3 x)
-#    define BOOST_PP_SEQ_FOR_EACH_M_IM(r, im) BOOST_PP_SEQ_FOR_EACH_M_I(r, im)
+# if NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_STRICT()
+#    define NDNBOOST_PP_SEQ_FOR_EACH_M(r, x) NDNBOOST_PP_SEQ_FOR_EACH_M_IM(r, NDNBOOST_PP_TUPLE_REM_3 x)
+#    define NDNBOOST_PP_SEQ_FOR_EACH_M_IM(r, im) NDNBOOST_PP_SEQ_FOR_EACH_M_I(r, im)
 # else
-#    define BOOST_PP_SEQ_FOR_EACH_M(r, x) BOOST_PP_SEQ_FOR_EACH_M_I(r, BOOST_PP_TUPLE_ELEM(3, 0, x), BOOST_PP_TUPLE_ELEM(3, 1, x), BOOST_PP_TUPLE_ELEM(3, 2, x))
+#    define NDNBOOST_PP_SEQ_FOR_EACH_M(r, x) NDNBOOST_PP_SEQ_FOR_EACH_M_I(r, NDNBOOST_PP_TUPLE_ELEM(3, 0, x), NDNBOOST_PP_TUPLE_ELEM(3, 1, x), NDNBOOST_PP_TUPLE_ELEM(3, 2, x))
 # endif
 #
-# define BOOST_PP_SEQ_FOR_EACH_M_I(r, macro, data, seq) macro(r, data, BOOST_PP_SEQ_HEAD(seq))
+# define NDNBOOST_PP_SEQ_FOR_EACH_M_I(r, macro, data, seq) macro(r, data, NDNBOOST_PP_SEQ_HEAD(seq))
 #
-# /* BOOST_PP_SEQ_FOR_EACH_R */
+# /* NDNBOOST_PP_SEQ_FOR_EACH_R */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_SEQ_FOR_EACH_R(r, macro, data, seq) BOOST_PP_FOR_ ## r((macro, data, seq (nil)), BOOST_PP_SEQ_FOR_EACH_P, BOOST_PP_SEQ_FOR_EACH_O, BOOST_PP_SEQ_FOR_EACH_M)
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_SEQ_FOR_EACH_R(r, macro, data, seq) NDNBOOST_PP_FOR_ ## r((macro, data, seq (nil)), NDNBOOST_PP_SEQ_FOR_EACH_P, NDNBOOST_PP_SEQ_FOR_EACH_O, NDNBOOST_PP_SEQ_FOR_EACH_M)
 # else
-#    define BOOST_PP_SEQ_FOR_EACH_R(r, macro, data, seq) BOOST_PP_SEQ_FOR_EACH_R_I(r, macro, data, seq)
-#    define BOOST_PP_SEQ_FOR_EACH_R_I(r, macro, data, seq) BOOST_PP_FOR_ ## r((macro, data, seq (nil)), BOOST_PP_SEQ_FOR_EACH_P, BOOST_PP_SEQ_FOR_EACH_O, BOOST_PP_SEQ_FOR_EACH_M)
+#    define NDNBOOST_PP_SEQ_FOR_EACH_R(r, macro, data, seq) NDNBOOST_PP_SEQ_FOR_EACH_R_I(r, macro, data, seq)
+#    define NDNBOOST_PP_SEQ_FOR_EACH_R_I(r, macro, data, seq) NDNBOOST_PP_FOR_ ## r((macro, data, seq (nil)), NDNBOOST_PP_SEQ_FOR_EACH_P, NDNBOOST_PP_SEQ_FOR_EACH_O, NDNBOOST_PP_SEQ_FOR_EACH_M)
 # endif
 #
 # endif
diff --git a/include/ndnboost/preprocessor/seq/for_each_i.hpp b/include/ndnboost/preprocessor/seq/for_each_i.hpp
index 1b36baa..cc1b812 100644
--- a/include/ndnboost/preprocessor/seq/for_each_i.hpp
+++ b/include/ndnboost/preprocessor/seq/for_each_i.hpp
@@ -9,8 +9,8 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_SEQ_FOR_EACH_I_HPP
-# define BOOST_PREPROCESSOR_SEQ_FOR_EACH_I_HPP
+# ifndef NDNBOOST_PREPROCESSOR_SEQ_FOR_EACH_I_HPP
+# define NDNBOOST_PREPROCESSOR_SEQ_FOR_EACH_I_HPP
 #
 # include <ndnboost/preprocessor/arithmetic/dec.hpp>
 # include <ndnboost/preprocessor/arithmetic/inc.hpp>
@@ -21,41 +21,41 @@
 # include <ndnboost/preprocessor/tuple/elem.hpp>
 # include <ndnboost/preprocessor/tuple/rem.hpp>
 #
-# /* BOOST_PP_SEQ_FOR_EACH_I */
+# /* NDNBOOST_PP_SEQ_FOR_EACH_I */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_SEQ_FOR_EACH_I(macro, data, seq) BOOST_PP_FOR((macro, data, seq (nil), 0), BOOST_PP_SEQ_FOR_EACH_I_P, BOOST_PP_SEQ_FOR_EACH_I_O, BOOST_PP_SEQ_FOR_EACH_I_M)
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_SEQ_FOR_EACH_I(macro, data, seq) NDNBOOST_PP_FOR((macro, data, seq (nil), 0), NDNBOOST_PP_SEQ_FOR_EACH_I_P, NDNBOOST_PP_SEQ_FOR_EACH_I_O, NDNBOOST_PP_SEQ_FOR_EACH_I_M)
 # else
-#    define BOOST_PP_SEQ_FOR_EACH_I(macro, data, seq) BOOST_PP_SEQ_FOR_EACH_I_I(macro, data, seq)
-#    define BOOST_PP_SEQ_FOR_EACH_I_I(macro, data, seq) BOOST_PP_FOR((macro, data, seq (nil), 0), BOOST_PP_SEQ_FOR_EACH_I_P, BOOST_PP_SEQ_FOR_EACH_I_O, BOOST_PP_SEQ_FOR_EACH_I_M)
+#    define NDNBOOST_PP_SEQ_FOR_EACH_I(macro, data, seq) NDNBOOST_PP_SEQ_FOR_EACH_I_I(macro, data, seq)
+#    define NDNBOOST_PP_SEQ_FOR_EACH_I_I(macro, data, seq) NDNBOOST_PP_FOR((macro, data, seq (nil), 0), NDNBOOST_PP_SEQ_FOR_EACH_I_P, NDNBOOST_PP_SEQ_FOR_EACH_I_O, NDNBOOST_PP_SEQ_FOR_EACH_I_M)
 # endif
 #
-# define BOOST_PP_SEQ_FOR_EACH_I_P(r, x) BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(BOOST_PP_TUPLE_ELEM(4, 2, x)))
+# define NDNBOOST_PP_SEQ_FOR_EACH_I_P(r, x) NDNBOOST_PP_DEC(NDNBOOST_PP_SEQ_SIZE(NDNBOOST_PP_TUPLE_ELEM(4, 2, x)))
 #
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
-#    define BOOST_PP_SEQ_FOR_EACH_I_O(r, x) BOOST_PP_SEQ_FOR_EACH_I_O_I x
+# if NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_STRICT()
+#    define NDNBOOST_PP_SEQ_FOR_EACH_I_O(r, x) NDNBOOST_PP_SEQ_FOR_EACH_I_O_I x
 # else
-#    define BOOST_PP_SEQ_FOR_EACH_I_O(r, x) BOOST_PP_SEQ_FOR_EACH_I_O_I(BOOST_PP_TUPLE_ELEM(4, 0, x), BOOST_PP_TUPLE_ELEM(4, 1, x), BOOST_PP_TUPLE_ELEM(4, 2, x), BOOST_PP_TUPLE_ELEM(4, 3, x))
+#    define NDNBOOST_PP_SEQ_FOR_EACH_I_O(r, x) NDNBOOST_PP_SEQ_FOR_EACH_I_O_I(NDNBOOST_PP_TUPLE_ELEM(4, 0, x), NDNBOOST_PP_TUPLE_ELEM(4, 1, x), NDNBOOST_PP_TUPLE_ELEM(4, 2, x), NDNBOOST_PP_TUPLE_ELEM(4, 3, x))
 # endif
 #
-# define BOOST_PP_SEQ_FOR_EACH_I_O_I(macro, data, seq, i) (macro, data, BOOST_PP_SEQ_TAIL(seq), BOOST_PP_INC(i))
+# define NDNBOOST_PP_SEQ_FOR_EACH_I_O_I(macro, data, seq, i) (macro, data, NDNBOOST_PP_SEQ_TAIL(seq), NDNBOOST_PP_INC(i))
 #
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
-#    define BOOST_PP_SEQ_FOR_EACH_I_M(r, x) BOOST_PP_SEQ_FOR_EACH_I_M_IM(r, BOOST_PP_TUPLE_REM_4 x)
-#    define BOOST_PP_SEQ_FOR_EACH_I_M_IM(r, im) BOOST_PP_SEQ_FOR_EACH_I_M_I(r, im)
+# if NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_STRICT()
+#    define NDNBOOST_PP_SEQ_FOR_EACH_I_M(r, x) NDNBOOST_PP_SEQ_FOR_EACH_I_M_IM(r, NDNBOOST_PP_TUPLE_REM_4 x)
+#    define NDNBOOST_PP_SEQ_FOR_EACH_I_M_IM(r, im) NDNBOOST_PP_SEQ_FOR_EACH_I_M_I(r, im)
 # else
-#    define BOOST_PP_SEQ_FOR_EACH_I_M(r, x) BOOST_PP_SEQ_FOR_EACH_I_M_I(r, BOOST_PP_TUPLE_ELEM(4, 0, x), BOOST_PP_TUPLE_ELEM(4, 1, x), BOOST_PP_TUPLE_ELEM(4, 2, x), BOOST_PP_TUPLE_ELEM(4, 3, x))
+#    define NDNBOOST_PP_SEQ_FOR_EACH_I_M(r, x) NDNBOOST_PP_SEQ_FOR_EACH_I_M_I(r, NDNBOOST_PP_TUPLE_ELEM(4, 0, x), NDNBOOST_PP_TUPLE_ELEM(4, 1, x), NDNBOOST_PP_TUPLE_ELEM(4, 2, x), NDNBOOST_PP_TUPLE_ELEM(4, 3, x))
 # endif
 #
-# define BOOST_PP_SEQ_FOR_EACH_I_M_I(r, macro, data, seq, i) macro(r, data, i, BOOST_PP_SEQ_HEAD(seq))
+# define NDNBOOST_PP_SEQ_FOR_EACH_I_M_I(r, macro, data, seq, i) macro(r, data, i, NDNBOOST_PP_SEQ_HEAD(seq))
 #
-# /* BOOST_PP_SEQ_FOR_EACH_I_R */
+# /* NDNBOOST_PP_SEQ_FOR_EACH_I_R */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_SEQ_FOR_EACH_I_R(r, macro, data, seq) BOOST_PP_FOR_ ## r((macro, data, seq (nil), 0), BOOST_PP_SEQ_FOR_EACH_I_P, BOOST_PP_SEQ_FOR_EACH_I_O, BOOST_PP_SEQ_FOR_EACH_I_M)
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_SEQ_FOR_EACH_I_R(r, macro, data, seq) NDNBOOST_PP_FOR_ ## r((macro, data, seq (nil), 0), NDNBOOST_PP_SEQ_FOR_EACH_I_P, NDNBOOST_PP_SEQ_FOR_EACH_I_O, NDNBOOST_PP_SEQ_FOR_EACH_I_M)
 # else
-#    define BOOST_PP_SEQ_FOR_EACH_I_R(r, macro, data, seq) BOOST_PP_SEQ_FOR_EACH_I_R_I(r, macro, data, seq)
-#    define BOOST_PP_SEQ_FOR_EACH_I_R_I(r, macro, data, seq) BOOST_PP_FOR_ ## r((macro, data, seq (nil), 0), BOOST_PP_SEQ_FOR_EACH_I_P, BOOST_PP_SEQ_FOR_EACH_I_O, BOOST_PP_SEQ_FOR_EACH_I_M)
+#    define NDNBOOST_PP_SEQ_FOR_EACH_I_R(r, macro, data, seq) NDNBOOST_PP_SEQ_FOR_EACH_I_R_I(r, macro, data, seq)
+#    define NDNBOOST_PP_SEQ_FOR_EACH_I_R_I(r, macro, data, seq) NDNBOOST_PP_FOR_ ## r((macro, data, seq (nil), 0), NDNBOOST_PP_SEQ_FOR_EACH_I_P, NDNBOOST_PP_SEQ_FOR_EACH_I_O, NDNBOOST_PP_SEQ_FOR_EACH_I_M)
 # endif
 #
 # endif
diff --git a/include/ndnboost/preprocessor/seq/rest_n.hpp b/include/ndnboost/preprocessor/seq/rest_n.hpp
index 6fd3d84..9350ed3 100644
--- a/include/ndnboost/preprocessor/seq/rest_n.hpp
+++ b/include/ndnboost/preprocessor/seq/rest_n.hpp
@@ -9,8 +9,8 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_SEQ_REST_N_HPP
-# define BOOST_PREPROCESSOR_SEQ_REST_N_HPP
+# ifndef NDNBOOST_PREPROCESSOR_SEQ_REST_N_HPP
+# define NDNBOOST_PREPROCESSOR_SEQ_REST_N_HPP
 #
 # include <ndnboost/preprocessor/arithmetic/inc.hpp>
 # include <ndnboost/preprocessor/config/config.hpp>
@@ -18,13 +18,13 @@
 # include <ndnboost/preprocessor/seq/detail/split.hpp>
 # include <ndnboost/preprocessor/tuple/elem.hpp>
 #
-# /* BOOST_PP_SEQ_REST_N */
+# /* NDNBOOST_PP_SEQ_REST_N */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_SEQ_REST_N(n, seq) BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_SEQ_SPLIT(BOOST_PP_INC(n), (nil) seq BOOST_PP_EMPTY))()
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_SEQ_REST_N(n, seq) NDNBOOST_PP_TUPLE_ELEM(2, 1, NDNBOOST_PP_SEQ_SPLIT(NDNBOOST_PP_INC(n), (nil) seq NDNBOOST_PP_EMPTY))()
 # else
-#    define BOOST_PP_SEQ_REST_N(n, seq) BOOST_PP_SEQ_REST_N_I(n, seq)
-#    define BOOST_PP_SEQ_REST_N_I(n, seq) BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_SEQ_SPLIT(BOOST_PP_INC(n), (nil) seq BOOST_PP_EMPTY))()
+#    define NDNBOOST_PP_SEQ_REST_N(n, seq) NDNBOOST_PP_SEQ_REST_N_I(n, seq)
+#    define NDNBOOST_PP_SEQ_REST_N_I(n, seq) NDNBOOST_PP_TUPLE_ELEM(2, 1, NDNBOOST_PP_SEQ_SPLIT(NDNBOOST_PP_INC(n), (nil) seq NDNBOOST_PP_EMPTY))()
 # endif
 #
 # endif
diff --git a/include/ndnboost/preprocessor/seq/seq.hpp b/include/ndnboost/preprocessor/seq/seq.hpp
index de65672..3c06fe9 100644
--- a/include/ndnboost/preprocessor/seq/seq.hpp
+++ b/include/ndnboost/preprocessor/seq/seq.hpp
@@ -9,36 +9,36 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_SEQ_SEQ_HPP
-# define BOOST_PREPROCESSOR_SEQ_SEQ_HPP
+# ifndef NDNBOOST_PREPROCESSOR_SEQ_SEQ_HPP
+# define NDNBOOST_PREPROCESSOR_SEQ_SEQ_HPP
 #
 # include <ndnboost/preprocessor/config/config.hpp>
 # include <ndnboost/preprocessor/seq/elem.hpp>
 #
-# /* BOOST_PP_SEQ_HEAD */
+# /* NDNBOOST_PP_SEQ_HEAD */
 #
-# define BOOST_PP_SEQ_HEAD(seq) BOOST_PP_SEQ_ELEM(0, seq)
+# define NDNBOOST_PP_SEQ_HEAD(seq) NDNBOOST_PP_SEQ_ELEM(0, seq)
 #
-# /* BOOST_PP_SEQ_TAIL */
+# /* NDNBOOST_PP_SEQ_TAIL */
 #
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_SEQ_TAIL(seq) BOOST_PP_SEQ_TAIL_1((seq))
-#    define BOOST_PP_SEQ_TAIL_1(par) BOOST_PP_SEQ_TAIL_2 ## par
-#    define BOOST_PP_SEQ_TAIL_2(seq) BOOST_PP_SEQ_TAIL_I ## seq
-# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-#    define BOOST_PP_SEQ_TAIL(seq) BOOST_PP_SEQ_TAIL_ID(BOOST_PP_SEQ_TAIL_I seq)
-#    define BOOST_PP_SEQ_TAIL_ID(id) id
-# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_SEQ_TAIL(seq) BOOST_PP_SEQ_TAIL_D(seq)
-#    define BOOST_PP_SEQ_TAIL_D(seq) BOOST_PP_SEQ_TAIL_I seq
+# if NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MWCC()
+#    define NDNBOOST_PP_SEQ_TAIL(seq) NDNBOOST_PP_SEQ_TAIL_1((seq))
+#    define NDNBOOST_PP_SEQ_TAIL_1(par) NDNBOOST_PP_SEQ_TAIL_2 ## par
+#    define NDNBOOST_PP_SEQ_TAIL_2(seq) NDNBOOST_PP_SEQ_TAIL_I ## seq
+# elif NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MSVC()
+#    define NDNBOOST_PP_SEQ_TAIL(seq) NDNBOOST_PP_SEQ_TAIL_ID(NDNBOOST_PP_SEQ_TAIL_I seq)
+#    define NDNBOOST_PP_SEQ_TAIL_ID(id) id
+# elif NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_SEQ_TAIL(seq) NDNBOOST_PP_SEQ_TAIL_D(seq)
+#    define NDNBOOST_PP_SEQ_TAIL_D(seq) NDNBOOST_PP_SEQ_TAIL_I seq
 # else
-#    define BOOST_PP_SEQ_TAIL(seq) BOOST_PP_SEQ_TAIL_I seq
+#    define NDNBOOST_PP_SEQ_TAIL(seq) NDNBOOST_PP_SEQ_TAIL_I seq
 # endif
 #
-# define BOOST_PP_SEQ_TAIL_I(x)
+# define NDNBOOST_PP_SEQ_TAIL_I(x)
 #
-# /* BOOST_PP_SEQ_NIL */
+# /* NDNBOOST_PP_SEQ_NIL */
 #
-# define BOOST_PP_SEQ_NIL(x) (x)
+# define NDNBOOST_PP_SEQ_NIL(x) (x)
 #
 # endif
diff --git a/include/ndnboost/preprocessor/seq/size.hpp b/include/ndnboost/preprocessor/seq/size.hpp
index ceb2d12..4834c0d 100644
--- a/include/ndnboost/preprocessor/seq/size.hpp
+++ b/include/ndnboost/preprocessor/seq/size.hpp
@@ -9,539 +9,539 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_SEQ_SIZE_HPP
-# define BOOST_PREPROCESSOR_SEQ_SIZE_HPP
+# ifndef NDNBOOST_PREPROCESSOR_SEQ_SIZE_HPP
+# define NDNBOOST_PREPROCESSOR_SEQ_SIZE_HPP
 #
 # include <ndnboost/preprocessor/cat.hpp>
 # include <ndnboost/preprocessor/config/config.hpp>
 #
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_SEQ_SIZE(seq) BOOST_PP_SEQ_SIZE_I((seq))
-#    define BOOST_PP_SEQ_SIZE_I(par) BOOST_PP_SEQ_SIZE_II ## par
-#    define BOOST_PP_SEQ_SIZE_II(seq) BOOST_PP_CAT(BOOST_PP_SEQ_SIZE_, BOOST_PP_SEQ_SIZE_0 ## seq)
-# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() || BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-#    define BOOST_PP_SEQ_SIZE(seq) BOOST_PP_SEQ_SIZE_I(seq)
-#    define BOOST_PP_SEQ_SIZE_I(seq) BOOST_PP_CAT(BOOST_PP_SEQ_SIZE_, BOOST_PP_SEQ_SIZE_0 seq)
+# if NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MWCC()
+#    define NDNBOOST_PP_SEQ_SIZE(seq) NDNBOOST_PP_SEQ_SIZE_I((seq))
+#    define NDNBOOST_PP_SEQ_SIZE_I(par) NDNBOOST_PP_SEQ_SIZE_II ## par
+#    define NDNBOOST_PP_SEQ_SIZE_II(seq) NDNBOOST_PP_CAT(NDNBOOST_PP_SEQ_SIZE_, NDNBOOST_PP_SEQ_SIZE_0 ## seq)
+# elif NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG() || NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MSVC()
+#    define NDNBOOST_PP_SEQ_SIZE(seq) NDNBOOST_PP_SEQ_SIZE_I(seq)
+#    define NDNBOOST_PP_SEQ_SIZE_I(seq) NDNBOOST_PP_CAT(NDNBOOST_PP_SEQ_SIZE_, NDNBOOST_PP_SEQ_SIZE_0 seq)
 # elif defined(__IBMC__) || defined(__IBMCPP__)
-#    define BOOST_PP_SEQ_SIZE(seq) BOOST_PP_CAT(BOOST_PP_SEQ_SIZE_, BOOST_PP_CAT(BOOST_PP_SEQ_SIZE_0, seq))
+#    define NDNBOOST_PP_SEQ_SIZE(seq) NDNBOOST_PP_CAT(NDNBOOST_PP_SEQ_SIZE_, NDNBOOST_PP_CAT(NDNBOOST_PP_SEQ_SIZE_0, seq))
 # else
-#    define BOOST_PP_SEQ_SIZE(seq) BOOST_PP_CAT(BOOST_PP_SEQ_SIZE_, BOOST_PP_SEQ_SIZE_0 seq)
+#    define NDNBOOST_PP_SEQ_SIZE(seq) NDNBOOST_PP_CAT(NDNBOOST_PP_SEQ_SIZE_, NDNBOOST_PP_SEQ_SIZE_0 seq)
 # endif
 #
-# define BOOST_PP_SEQ_SIZE_0(_) BOOST_PP_SEQ_SIZE_1
-# define BOOST_PP_SEQ_SIZE_1(_) BOOST_PP_SEQ_SIZE_2
-# define BOOST_PP_SEQ_SIZE_2(_) BOOST_PP_SEQ_SIZE_3
-# define BOOST_PP_SEQ_SIZE_3(_) BOOST_PP_SEQ_SIZE_4
-# define BOOST_PP_SEQ_SIZE_4(_) BOOST_PP_SEQ_SIZE_5
-# define BOOST_PP_SEQ_SIZE_5(_) BOOST_PP_SEQ_SIZE_6
-# define BOOST_PP_SEQ_SIZE_6(_) BOOST_PP_SEQ_SIZE_7
-# define BOOST_PP_SEQ_SIZE_7(_) BOOST_PP_SEQ_SIZE_8
-# define BOOST_PP_SEQ_SIZE_8(_) BOOST_PP_SEQ_SIZE_9
-# define BOOST_PP_SEQ_SIZE_9(_) BOOST_PP_SEQ_SIZE_10
-# define BOOST_PP_SEQ_SIZE_10(_) BOOST_PP_SEQ_SIZE_11
-# define BOOST_PP_SEQ_SIZE_11(_) BOOST_PP_SEQ_SIZE_12
-# define BOOST_PP_SEQ_SIZE_12(_) BOOST_PP_SEQ_SIZE_13
-# define BOOST_PP_SEQ_SIZE_13(_) BOOST_PP_SEQ_SIZE_14
-# define BOOST_PP_SEQ_SIZE_14(_) BOOST_PP_SEQ_SIZE_15
-# define BOOST_PP_SEQ_SIZE_15(_) BOOST_PP_SEQ_SIZE_16
-# define BOOST_PP_SEQ_SIZE_16(_) BOOST_PP_SEQ_SIZE_17
-# define BOOST_PP_SEQ_SIZE_17(_) BOOST_PP_SEQ_SIZE_18
-# define BOOST_PP_SEQ_SIZE_18(_) BOOST_PP_SEQ_SIZE_19
-# define BOOST_PP_SEQ_SIZE_19(_) BOOST_PP_SEQ_SIZE_20
-# define BOOST_PP_SEQ_SIZE_20(_) BOOST_PP_SEQ_SIZE_21
-# define BOOST_PP_SEQ_SIZE_21(_) BOOST_PP_SEQ_SIZE_22
-# define BOOST_PP_SEQ_SIZE_22(_) BOOST_PP_SEQ_SIZE_23
-# define BOOST_PP_SEQ_SIZE_23(_) BOOST_PP_SEQ_SIZE_24
-# define BOOST_PP_SEQ_SIZE_24(_) BOOST_PP_SEQ_SIZE_25
-# define BOOST_PP_SEQ_SIZE_25(_) BOOST_PP_SEQ_SIZE_26
-# define BOOST_PP_SEQ_SIZE_26(_) BOOST_PP_SEQ_SIZE_27
-# define BOOST_PP_SEQ_SIZE_27(_) BOOST_PP_SEQ_SIZE_28
-# define BOOST_PP_SEQ_SIZE_28(_) BOOST_PP_SEQ_SIZE_29
-# define BOOST_PP_SEQ_SIZE_29(_) BOOST_PP_SEQ_SIZE_30
-# define BOOST_PP_SEQ_SIZE_30(_) BOOST_PP_SEQ_SIZE_31
-# define BOOST_PP_SEQ_SIZE_31(_) BOOST_PP_SEQ_SIZE_32
-# define BOOST_PP_SEQ_SIZE_32(_) BOOST_PP_SEQ_SIZE_33
-# define BOOST_PP_SEQ_SIZE_33(_) BOOST_PP_SEQ_SIZE_34
-# define BOOST_PP_SEQ_SIZE_34(_) BOOST_PP_SEQ_SIZE_35
-# define BOOST_PP_SEQ_SIZE_35(_) BOOST_PP_SEQ_SIZE_36
-# define BOOST_PP_SEQ_SIZE_36(_) BOOST_PP_SEQ_SIZE_37
-# define BOOST_PP_SEQ_SIZE_37(_) BOOST_PP_SEQ_SIZE_38
-# define BOOST_PP_SEQ_SIZE_38(_) BOOST_PP_SEQ_SIZE_39
-# define BOOST_PP_SEQ_SIZE_39(_) BOOST_PP_SEQ_SIZE_40
-# define BOOST_PP_SEQ_SIZE_40(_) BOOST_PP_SEQ_SIZE_41
-# define BOOST_PP_SEQ_SIZE_41(_) BOOST_PP_SEQ_SIZE_42
-# define BOOST_PP_SEQ_SIZE_42(_) BOOST_PP_SEQ_SIZE_43
-# define BOOST_PP_SEQ_SIZE_43(_) BOOST_PP_SEQ_SIZE_44
-# define BOOST_PP_SEQ_SIZE_44(_) BOOST_PP_SEQ_SIZE_45
-# define BOOST_PP_SEQ_SIZE_45(_) BOOST_PP_SEQ_SIZE_46
-# define BOOST_PP_SEQ_SIZE_46(_) BOOST_PP_SEQ_SIZE_47
-# define BOOST_PP_SEQ_SIZE_47(_) BOOST_PP_SEQ_SIZE_48
-# define BOOST_PP_SEQ_SIZE_48(_) BOOST_PP_SEQ_SIZE_49
-# define BOOST_PP_SEQ_SIZE_49(_) BOOST_PP_SEQ_SIZE_50
-# define BOOST_PP_SEQ_SIZE_50(_) BOOST_PP_SEQ_SIZE_51
-# define BOOST_PP_SEQ_SIZE_51(_) BOOST_PP_SEQ_SIZE_52
-# define BOOST_PP_SEQ_SIZE_52(_) BOOST_PP_SEQ_SIZE_53
-# define BOOST_PP_SEQ_SIZE_53(_) BOOST_PP_SEQ_SIZE_54
-# define BOOST_PP_SEQ_SIZE_54(_) BOOST_PP_SEQ_SIZE_55
-# define BOOST_PP_SEQ_SIZE_55(_) BOOST_PP_SEQ_SIZE_56
-# define BOOST_PP_SEQ_SIZE_56(_) BOOST_PP_SEQ_SIZE_57
-# define BOOST_PP_SEQ_SIZE_57(_) BOOST_PP_SEQ_SIZE_58
-# define BOOST_PP_SEQ_SIZE_58(_) BOOST_PP_SEQ_SIZE_59
-# define BOOST_PP_SEQ_SIZE_59(_) BOOST_PP_SEQ_SIZE_60
-# define BOOST_PP_SEQ_SIZE_60(_) BOOST_PP_SEQ_SIZE_61
-# define BOOST_PP_SEQ_SIZE_61(_) BOOST_PP_SEQ_SIZE_62
-# define BOOST_PP_SEQ_SIZE_62(_) BOOST_PP_SEQ_SIZE_63
-# define BOOST_PP_SEQ_SIZE_63(_) BOOST_PP_SEQ_SIZE_64
-# define BOOST_PP_SEQ_SIZE_64(_) BOOST_PP_SEQ_SIZE_65
-# define BOOST_PP_SEQ_SIZE_65(_) BOOST_PP_SEQ_SIZE_66
-# define BOOST_PP_SEQ_SIZE_66(_) BOOST_PP_SEQ_SIZE_67
-# define BOOST_PP_SEQ_SIZE_67(_) BOOST_PP_SEQ_SIZE_68
-# define BOOST_PP_SEQ_SIZE_68(_) BOOST_PP_SEQ_SIZE_69
-# define BOOST_PP_SEQ_SIZE_69(_) BOOST_PP_SEQ_SIZE_70
-# define BOOST_PP_SEQ_SIZE_70(_) BOOST_PP_SEQ_SIZE_71
-# define BOOST_PP_SEQ_SIZE_71(_) BOOST_PP_SEQ_SIZE_72
-# define BOOST_PP_SEQ_SIZE_72(_) BOOST_PP_SEQ_SIZE_73
-# define BOOST_PP_SEQ_SIZE_73(_) BOOST_PP_SEQ_SIZE_74
-# define BOOST_PP_SEQ_SIZE_74(_) BOOST_PP_SEQ_SIZE_75
-# define BOOST_PP_SEQ_SIZE_75(_) BOOST_PP_SEQ_SIZE_76
-# define BOOST_PP_SEQ_SIZE_76(_) BOOST_PP_SEQ_SIZE_77
-# define BOOST_PP_SEQ_SIZE_77(_) BOOST_PP_SEQ_SIZE_78
-# define BOOST_PP_SEQ_SIZE_78(_) BOOST_PP_SEQ_SIZE_79
-# define BOOST_PP_SEQ_SIZE_79(_) BOOST_PP_SEQ_SIZE_80
-# define BOOST_PP_SEQ_SIZE_80(_) BOOST_PP_SEQ_SIZE_81
-# define BOOST_PP_SEQ_SIZE_81(_) BOOST_PP_SEQ_SIZE_82
-# define BOOST_PP_SEQ_SIZE_82(_) BOOST_PP_SEQ_SIZE_83
-# define BOOST_PP_SEQ_SIZE_83(_) BOOST_PP_SEQ_SIZE_84
-# define BOOST_PP_SEQ_SIZE_84(_) BOOST_PP_SEQ_SIZE_85
-# define BOOST_PP_SEQ_SIZE_85(_) BOOST_PP_SEQ_SIZE_86
-# define BOOST_PP_SEQ_SIZE_86(_) BOOST_PP_SEQ_SIZE_87
-# define BOOST_PP_SEQ_SIZE_87(_) BOOST_PP_SEQ_SIZE_88
-# define BOOST_PP_SEQ_SIZE_88(_) BOOST_PP_SEQ_SIZE_89
-# define BOOST_PP_SEQ_SIZE_89(_) BOOST_PP_SEQ_SIZE_90
-# define BOOST_PP_SEQ_SIZE_90(_) BOOST_PP_SEQ_SIZE_91
-# define BOOST_PP_SEQ_SIZE_91(_) BOOST_PP_SEQ_SIZE_92
-# define BOOST_PP_SEQ_SIZE_92(_) BOOST_PP_SEQ_SIZE_93
-# define BOOST_PP_SEQ_SIZE_93(_) BOOST_PP_SEQ_SIZE_94
-# define BOOST_PP_SEQ_SIZE_94(_) BOOST_PP_SEQ_SIZE_95
-# define BOOST_PP_SEQ_SIZE_95(_) BOOST_PP_SEQ_SIZE_96
-# define BOOST_PP_SEQ_SIZE_96(_) BOOST_PP_SEQ_SIZE_97
-# define BOOST_PP_SEQ_SIZE_97(_) BOOST_PP_SEQ_SIZE_98
-# define BOOST_PP_SEQ_SIZE_98(_) BOOST_PP_SEQ_SIZE_99
-# define BOOST_PP_SEQ_SIZE_99(_) BOOST_PP_SEQ_SIZE_100
-# define BOOST_PP_SEQ_SIZE_100(_) BOOST_PP_SEQ_SIZE_101
-# define BOOST_PP_SEQ_SIZE_101(_) BOOST_PP_SEQ_SIZE_102
-# define BOOST_PP_SEQ_SIZE_102(_) BOOST_PP_SEQ_SIZE_103
-# define BOOST_PP_SEQ_SIZE_103(_) BOOST_PP_SEQ_SIZE_104
-# define BOOST_PP_SEQ_SIZE_104(_) BOOST_PP_SEQ_SIZE_105
-# define BOOST_PP_SEQ_SIZE_105(_) BOOST_PP_SEQ_SIZE_106
-# define BOOST_PP_SEQ_SIZE_106(_) BOOST_PP_SEQ_SIZE_107
-# define BOOST_PP_SEQ_SIZE_107(_) BOOST_PP_SEQ_SIZE_108
-# define BOOST_PP_SEQ_SIZE_108(_) BOOST_PP_SEQ_SIZE_109
-# define BOOST_PP_SEQ_SIZE_109(_) BOOST_PP_SEQ_SIZE_110
-# define BOOST_PP_SEQ_SIZE_110(_) BOOST_PP_SEQ_SIZE_111
-# define BOOST_PP_SEQ_SIZE_111(_) BOOST_PP_SEQ_SIZE_112
-# define BOOST_PP_SEQ_SIZE_112(_) BOOST_PP_SEQ_SIZE_113
-# define BOOST_PP_SEQ_SIZE_113(_) BOOST_PP_SEQ_SIZE_114
-# define BOOST_PP_SEQ_SIZE_114(_) BOOST_PP_SEQ_SIZE_115
-# define BOOST_PP_SEQ_SIZE_115(_) BOOST_PP_SEQ_SIZE_116
-# define BOOST_PP_SEQ_SIZE_116(_) BOOST_PP_SEQ_SIZE_117
-# define BOOST_PP_SEQ_SIZE_117(_) BOOST_PP_SEQ_SIZE_118
-# define BOOST_PP_SEQ_SIZE_118(_) BOOST_PP_SEQ_SIZE_119
-# define BOOST_PP_SEQ_SIZE_119(_) BOOST_PP_SEQ_SIZE_120
-# define BOOST_PP_SEQ_SIZE_120(_) BOOST_PP_SEQ_SIZE_121
-# define BOOST_PP_SEQ_SIZE_121(_) BOOST_PP_SEQ_SIZE_122
-# define BOOST_PP_SEQ_SIZE_122(_) BOOST_PP_SEQ_SIZE_123
-# define BOOST_PP_SEQ_SIZE_123(_) BOOST_PP_SEQ_SIZE_124
-# define BOOST_PP_SEQ_SIZE_124(_) BOOST_PP_SEQ_SIZE_125
-# define BOOST_PP_SEQ_SIZE_125(_) BOOST_PP_SEQ_SIZE_126
-# define BOOST_PP_SEQ_SIZE_126(_) BOOST_PP_SEQ_SIZE_127
-# define BOOST_PP_SEQ_SIZE_127(_) BOOST_PP_SEQ_SIZE_128
-# define BOOST_PP_SEQ_SIZE_128(_) BOOST_PP_SEQ_SIZE_129
-# define BOOST_PP_SEQ_SIZE_129(_) BOOST_PP_SEQ_SIZE_130
-# define BOOST_PP_SEQ_SIZE_130(_) BOOST_PP_SEQ_SIZE_131
-# define BOOST_PP_SEQ_SIZE_131(_) BOOST_PP_SEQ_SIZE_132
-# define BOOST_PP_SEQ_SIZE_132(_) BOOST_PP_SEQ_SIZE_133
-# define BOOST_PP_SEQ_SIZE_133(_) BOOST_PP_SEQ_SIZE_134
-# define BOOST_PP_SEQ_SIZE_134(_) BOOST_PP_SEQ_SIZE_135
-# define BOOST_PP_SEQ_SIZE_135(_) BOOST_PP_SEQ_SIZE_136
-# define BOOST_PP_SEQ_SIZE_136(_) BOOST_PP_SEQ_SIZE_137
-# define BOOST_PP_SEQ_SIZE_137(_) BOOST_PP_SEQ_SIZE_138
-# define BOOST_PP_SEQ_SIZE_138(_) BOOST_PP_SEQ_SIZE_139
-# define BOOST_PP_SEQ_SIZE_139(_) BOOST_PP_SEQ_SIZE_140
-# define BOOST_PP_SEQ_SIZE_140(_) BOOST_PP_SEQ_SIZE_141
-# define BOOST_PP_SEQ_SIZE_141(_) BOOST_PP_SEQ_SIZE_142
-# define BOOST_PP_SEQ_SIZE_142(_) BOOST_PP_SEQ_SIZE_143
-# define BOOST_PP_SEQ_SIZE_143(_) BOOST_PP_SEQ_SIZE_144
-# define BOOST_PP_SEQ_SIZE_144(_) BOOST_PP_SEQ_SIZE_145
-# define BOOST_PP_SEQ_SIZE_145(_) BOOST_PP_SEQ_SIZE_146
-# define BOOST_PP_SEQ_SIZE_146(_) BOOST_PP_SEQ_SIZE_147
-# define BOOST_PP_SEQ_SIZE_147(_) BOOST_PP_SEQ_SIZE_148
-# define BOOST_PP_SEQ_SIZE_148(_) BOOST_PP_SEQ_SIZE_149
-# define BOOST_PP_SEQ_SIZE_149(_) BOOST_PP_SEQ_SIZE_150
-# define BOOST_PP_SEQ_SIZE_150(_) BOOST_PP_SEQ_SIZE_151
-# define BOOST_PP_SEQ_SIZE_151(_) BOOST_PP_SEQ_SIZE_152
-# define BOOST_PP_SEQ_SIZE_152(_) BOOST_PP_SEQ_SIZE_153
-# define BOOST_PP_SEQ_SIZE_153(_) BOOST_PP_SEQ_SIZE_154
-# define BOOST_PP_SEQ_SIZE_154(_) BOOST_PP_SEQ_SIZE_155
-# define BOOST_PP_SEQ_SIZE_155(_) BOOST_PP_SEQ_SIZE_156
-# define BOOST_PP_SEQ_SIZE_156(_) BOOST_PP_SEQ_SIZE_157
-# define BOOST_PP_SEQ_SIZE_157(_) BOOST_PP_SEQ_SIZE_158
-# define BOOST_PP_SEQ_SIZE_158(_) BOOST_PP_SEQ_SIZE_159
-# define BOOST_PP_SEQ_SIZE_159(_) BOOST_PP_SEQ_SIZE_160
-# define BOOST_PP_SEQ_SIZE_160(_) BOOST_PP_SEQ_SIZE_161
-# define BOOST_PP_SEQ_SIZE_161(_) BOOST_PP_SEQ_SIZE_162
-# define BOOST_PP_SEQ_SIZE_162(_) BOOST_PP_SEQ_SIZE_163
-# define BOOST_PP_SEQ_SIZE_163(_) BOOST_PP_SEQ_SIZE_164
-# define BOOST_PP_SEQ_SIZE_164(_) BOOST_PP_SEQ_SIZE_165
-# define BOOST_PP_SEQ_SIZE_165(_) BOOST_PP_SEQ_SIZE_166
-# define BOOST_PP_SEQ_SIZE_166(_) BOOST_PP_SEQ_SIZE_167
-# define BOOST_PP_SEQ_SIZE_167(_) BOOST_PP_SEQ_SIZE_168
-# define BOOST_PP_SEQ_SIZE_168(_) BOOST_PP_SEQ_SIZE_169
-# define BOOST_PP_SEQ_SIZE_169(_) BOOST_PP_SEQ_SIZE_170
-# define BOOST_PP_SEQ_SIZE_170(_) BOOST_PP_SEQ_SIZE_171
-# define BOOST_PP_SEQ_SIZE_171(_) BOOST_PP_SEQ_SIZE_172
-# define BOOST_PP_SEQ_SIZE_172(_) BOOST_PP_SEQ_SIZE_173
-# define BOOST_PP_SEQ_SIZE_173(_) BOOST_PP_SEQ_SIZE_174
-# define BOOST_PP_SEQ_SIZE_174(_) BOOST_PP_SEQ_SIZE_175
-# define BOOST_PP_SEQ_SIZE_175(_) BOOST_PP_SEQ_SIZE_176
-# define BOOST_PP_SEQ_SIZE_176(_) BOOST_PP_SEQ_SIZE_177
-# define BOOST_PP_SEQ_SIZE_177(_) BOOST_PP_SEQ_SIZE_178
-# define BOOST_PP_SEQ_SIZE_178(_) BOOST_PP_SEQ_SIZE_179
-# define BOOST_PP_SEQ_SIZE_179(_) BOOST_PP_SEQ_SIZE_180
-# define BOOST_PP_SEQ_SIZE_180(_) BOOST_PP_SEQ_SIZE_181
-# define BOOST_PP_SEQ_SIZE_181(_) BOOST_PP_SEQ_SIZE_182
-# define BOOST_PP_SEQ_SIZE_182(_) BOOST_PP_SEQ_SIZE_183
-# define BOOST_PP_SEQ_SIZE_183(_) BOOST_PP_SEQ_SIZE_184
-# define BOOST_PP_SEQ_SIZE_184(_) BOOST_PP_SEQ_SIZE_185
-# define BOOST_PP_SEQ_SIZE_185(_) BOOST_PP_SEQ_SIZE_186
-# define BOOST_PP_SEQ_SIZE_186(_) BOOST_PP_SEQ_SIZE_187
-# define BOOST_PP_SEQ_SIZE_187(_) BOOST_PP_SEQ_SIZE_188
-# define BOOST_PP_SEQ_SIZE_188(_) BOOST_PP_SEQ_SIZE_189
-# define BOOST_PP_SEQ_SIZE_189(_) BOOST_PP_SEQ_SIZE_190
-# define BOOST_PP_SEQ_SIZE_190(_) BOOST_PP_SEQ_SIZE_191
-# define BOOST_PP_SEQ_SIZE_191(_) BOOST_PP_SEQ_SIZE_192
-# define BOOST_PP_SEQ_SIZE_192(_) BOOST_PP_SEQ_SIZE_193
-# define BOOST_PP_SEQ_SIZE_193(_) BOOST_PP_SEQ_SIZE_194
-# define BOOST_PP_SEQ_SIZE_194(_) BOOST_PP_SEQ_SIZE_195
-# define BOOST_PP_SEQ_SIZE_195(_) BOOST_PP_SEQ_SIZE_196
-# define BOOST_PP_SEQ_SIZE_196(_) BOOST_PP_SEQ_SIZE_197
-# define BOOST_PP_SEQ_SIZE_197(_) BOOST_PP_SEQ_SIZE_198
-# define BOOST_PP_SEQ_SIZE_198(_) BOOST_PP_SEQ_SIZE_199
-# define BOOST_PP_SEQ_SIZE_199(_) BOOST_PP_SEQ_SIZE_200
-# define BOOST_PP_SEQ_SIZE_200(_) BOOST_PP_SEQ_SIZE_201
-# define BOOST_PP_SEQ_SIZE_201(_) BOOST_PP_SEQ_SIZE_202
-# define BOOST_PP_SEQ_SIZE_202(_) BOOST_PP_SEQ_SIZE_203
-# define BOOST_PP_SEQ_SIZE_203(_) BOOST_PP_SEQ_SIZE_204
-# define BOOST_PP_SEQ_SIZE_204(_) BOOST_PP_SEQ_SIZE_205
-# define BOOST_PP_SEQ_SIZE_205(_) BOOST_PP_SEQ_SIZE_206
-# define BOOST_PP_SEQ_SIZE_206(_) BOOST_PP_SEQ_SIZE_207
-# define BOOST_PP_SEQ_SIZE_207(_) BOOST_PP_SEQ_SIZE_208
-# define BOOST_PP_SEQ_SIZE_208(_) BOOST_PP_SEQ_SIZE_209
-# define BOOST_PP_SEQ_SIZE_209(_) BOOST_PP_SEQ_SIZE_210
-# define BOOST_PP_SEQ_SIZE_210(_) BOOST_PP_SEQ_SIZE_211
-# define BOOST_PP_SEQ_SIZE_211(_) BOOST_PP_SEQ_SIZE_212
-# define BOOST_PP_SEQ_SIZE_212(_) BOOST_PP_SEQ_SIZE_213
-# define BOOST_PP_SEQ_SIZE_213(_) BOOST_PP_SEQ_SIZE_214
-# define BOOST_PP_SEQ_SIZE_214(_) BOOST_PP_SEQ_SIZE_215
-# define BOOST_PP_SEQ_SIZE_215(_) BOOST_PP_SEQ_SIZE_216
-# define BOOST_PP_SEQ_SIZE_216(_) BOOST_PP_SEQ_SIZE_217
-# define BOOST_PP_SEQ_SIZE_217(_) BOOST_PP_SEQ_SIZE_218
-# define BOOST_PP_SEQ_SIZE_218(_) BOOST_PP_SEQ_SIZE_219
-# define BOOST_PP_SEQ_SIZE_219(_) BOOST_PP_SEQ_SIZE_220
-# define BOOST_PP_SEQ_SIZE_220(_) BOOST_PP_SEQ_SIZE_221
-# define BOOST_PP_SEQ_SIZE_221(_) BOOST_PP_SEQ_SIZE_222
-# define BOOST_PP_SEQ_SIZE_222(_) BOOST_PP_SEQ_SIZE_223
-# define BOOST_PP_SEQ_SIZE_223(_) BOOST_PP_SEQ_SIZE_224
-# define BOOST_PP_SEQ_SIZE_224(_) BOOST_PP_SEQ_SIZE_225
-# define BOOST_PP_SEQ_SIZE_225(_) BOOST_PP_SEQ_SIZE_226
-# define BOOST_PP_SEQ_SIZE_226(_) BOOST_PP_SEQ_SIZE_227
-# define BOOST_PP_SEQ_SIZE_227(_) BOOST_PP_SEQ_SIZE_228
-# define BOOST_PP_SEQ_SIZE_228(_) BOOST_PP_SEQ_SIZE_229
-# define BOOST_PP_SEQ_SIZE_229(_) BOOST_PP_SEQ_SIZE_230
-# define BOOST_PP_SEQ_SIZE_230(_) BOOST_PP_SEQ_SIZE_231
-# define BOOST_PP_SEQ_SIZE_231(_) BOOST_PP_SEQ_SIZE_232
-# define BOOST_PP_SEQ_SIZE_232(_) BOOST_PP_SEQ_SIZE_233
-# define BOOST_PP_SEQ_SIZE_233(_) BOOST_PP_SEQ_SIZE_234
-# define BOOST_PP_SEQ_SIZE_234(_) BOOST_PP_SEQ_SIZE_235
-# define BOOST_PP_SEQ_SIZE_235(_) BOOST_PP_SEQ_SIZE_236
-# define BOOST_PP_SEQ_SIZE_236(_) BOOST_PP_SEQ_SIZE_237
-# define BOOST_PP_SEQ_SIZE_237(_) BOOST_PP_SEQ_SIZE_238
-# define BOOST_PP_SEQ_SIZE_238(_) BOOST_PP_SEQ_SIZE_239
-# define BOOST_PP_SEQ_SIZE_239(_) BOOST_PP_SEQ_SIZE_240
-# define BOOST_PP_SEQ_SIZE_240(_) BOOST_PP_SEQ_SIZE_241
-# define BOOST_PP_SEQ_SIZE_241(_) BOOST_PP_SEQ_SIZE_242
-# define BOOST_PP_SEQ_SIZE_242(_) BOOST_PP_SEQ_SIZE_243
-# define BOOST_PP_SEQ_SIZE_243(_) BOOST_PP_SEQ_SIZE_244
-# define BOOST_PP_SEQ_SIZE_244(_) BOOST_PP_SEQ_SIZE_245
-# define BOOST_PP_SEQ_SIZE_245(_) BOOST_PP_SEQ_SIZE_246
-# define BOOST_PP_SEQ_SIZE_246(_) BOOST_PP_SEQ_SIZE_247
-# define BOOST_PP_SEQ_SIZE_247(_) BOOST_PP_SEQ_SIZE_248
-# define BOOST_PP_SEQ_SIZE_248(_) BOOST_PP_SEQ_SIZE_249
-# define BOOST_PP_SEQ_SIZE_249(_) BOOST_PP_SEQ_SIZE_250
-# define BOOST_PP_SEQ_SIZE_250(_) BOOST_PP_SEQ_SIZE_251
-# define BOOST_PP_SEQ_SIZE_251(_) BOOST_PP_SEQ_SIZE_252
-# define BOOST_PP_SEQ_SIZE_252(_) BOOST_PP_SEQ_SIZE_253
-# define BOOST_PP_SEQ_SIZE_253(_) BOOST_PP_SEQ_SIZE_254
-# define BOOST_PP_SEQ_SIZE_254(_) BOOST_PP_SEQ_SIZE_255
-# define BOOST_PP_SEQ_SIZE_255(_) BOOST_PP_SEQ_SIZE_256
-# define BOOST_PP_SEQ_SIZE_256(_) BOOST_PP_SEQ_SIZE_257
+# define NDNBOOST_PP_SEQ_SIZE_0(_) NDNBOOST_PP_SEQ_SIZE_1
+# define NDNBOOST_PP_SEQ_SIZE_1(_) NDNBOOST_PP_SEQ_SIZE_2
+# define NDNBOOST_PP_SEQ_SIZE_2(_) NDNBOOST_PP_SEQ_SIZE_3
+# define NDNBOOST_PP_SEQ_SIZE_3(_) NDNBOOST_PP_SEQ_SIZE_4
+# define NDNBOOST_PP_SEQ_SIZE_4(_) NDNBOOST_PP_SEQ_SIZE_5
+# define NDNBOOST_PP_SEQ_SIZE_5(_) NDNBOOST_PP_SEQ_SIZE_6
+# define NDNBOOST_PP_SEQ_SIZE_6(_) NDNBOOST_PP_SEQ_SIZE_7
+# define NDNBOOST_PP_SEQ_SIZE_7(_) NDNBOOST_PP_SEQ_SIZE_8
+# define NDNBOOST_PP_SEQ_SIZE_8(_) NDNBOOST_PP_SEQ_SIZE_9
+# define NDNBOOST_PP_SEQ_SIZE_9(_) NDNBOOST_PP_SEQ_SIZE_10
+# define NDNBOOST_PP_SEQ_SIZE_10(_) NDNBOOST_PP_SEQ_SIZE_11
+# define NDNBOOST_PP_SEQ_SIZE_11(_) NDNBOOST_PP_SEQ_SIZE_12
+# define NDNBOOST_PP_SEQ_SIZE_12(_) NDNBOOST_PP_SEQ_SIZE_13
+# define NDNBOOST_PP_SEQ_SIZE_13(_) NDNBOOST_PP_SEQ_SIZE_14
+# define NDNBOOST_PP_SEQ_SIZE_14(_) NDNBOOST_PP_SEQ_SIZE_15
+# define NDNBOOST_PP_SEQ_SIZE_15(_) NDNBOOST_PP_SEQ_SIZE_16
+# define NDNBOOST_PP_SEQ_SIZE_16(_) NDNBOOST_PP_SEQ_SIZE_17
+# define NDNBOOST_PP_SEQ_SIZE_17(_) NDNBOOST_PP_SEQ_SIZE_18
+# define NDNBOOST_PP_SEQ_SIZE_18(_) NDNBOOST_PP_SEQ_SIZE_19
+# define NDNBOOST_PP_SEQ_SIZE_19(_) NDNBOOST_PP_SEQ_SIZE_20
+# define NDNBOOST_PP_SEQ_SIZE_20(_) NDNBOOST_PP_SEQ_SIZE_21
+# define NDNBOOST_PP_SEQ_SIZE_21(_) NDNBOOST_PP_SEQ_SIZE_22
+# define NDNBOOST_PP_SEQ_SIZE_22(_) NDNBOOST_PP_SEQ_SIZE_23
+# define NDNBOOST_PP_SEQ_SIZE_23(_) NDNBOOST_PP_SEQ_SIZE_24
+# define NDNBOOST_PP_SEQ_SIZE_24(_) NDNBOOST_PP_SEQ_SIZE_25
+# define NDNBOOST_PP_SEQ_SIZE_25(_) NDNBOOST_PP_SEQ_SIZE_26
+# define NDNBOOST_PP_SEQ_SIZE_26(_) NDNBOOST_PP_SEQ_SIZE_27
+# define NDNBOOST_PP_SEQ_SIZE_27(_) NDNBOOST_PP_SEQ_SIZE_28
+# define NDNBOOST_PP_SEQ_SIZE_28(_) NDNBOOST_PP_SEQ_SIZE_29
+# define NDNBOOST_PP_SEQ_SIZE_29(_) NDNBOOST_PP_SEQ_SIZE_30
+# define NDNBOOST_PP_SEQ_SIZE_30(_) NDNBOOST_PP_SEQ_SIZE_31
+# define NDNBOOST_PP_SEQ_SIZE_31(_) NDNBOOST_PP_SEQ_SIZE_32
+# define NDNBOOST_PP_SEQ_SIZE_32(_) NDNBOOST_PP_SEQ_SIZE_33
+# define NDNBOOST_PP_SEQ_SIZE_33(_) NDNBOOST_PP_SEQ_SIZE_34
+# define NDNBOOST_PP_SEQ_SIZE_34(_) NDNBOOST_PP_SEQ_SIZE_35
+# define NDNBOOST_PP_SEQ_SIZE_35(_) NDNBOOST_PP_SEQ_SIZE_36
+# define NDNBOOST_PP_SEQ_SIZE_36(_) NDNBOOST_PP_SEQ_SIZE_37
+# define NDNBOOST_PP_SEQ_SIZE_37(_) NDNBOOST_PP_SEQ_SIZE_38
+# define NDNBOOST_PP_SEQ_SIZE_38(_) NDNBOOST_PP_SEQ_SIZE_39
+# define NDNBOOST_PP_SEQ_SIZE_39(_) NDNBOOST_PP_SEQ_SIZE_40
+# define NDNBOOST_PP_SEQ_SIZE_40(_) NDNBOOST_PP_SEQ_SIZE_41
+# define NDNBOOST_PP_SEQ_SIZE_41(_) NDNBOOST_PP_SEQ_SIZE_42
+# define NDNBOOST_PP_SEQ_SIZE_42(_) NDNBOOST_PP_SEQ_SIZE_43
+# define NDNBOOST_PP_SEQ_SIZE_43(_) NDNBOOST_PP_SEQ_SIZE_44
+# define NDNBOOST_PP_SEQ_SIZE_44(_) NDNBOOST_PP_SEQ_SIZE_45
+# define NDNBOOST_PP_SEQ_SIZE_45(_) NDNBOOST_PP_SEQ_SIZE_46
+# define NDNBOOST_PP_SEQ_SIZE_46(_) NDNBOOST_PP_SEQ_SIZE_47
+# define NDNBOOST_PP_SEQ_SIZE_47(_) NDNBOOST_PP_SEQ_SIZE_48
+# define NDNBOOST_PP_SEQ_SIZE_48(_) NDNBOOST_PP_SEQ_SIZE_49
+# define NDNBOOST_PP_SEQ_SIZE_49(_) NDNBOOST_PP_SEQ_SIZE_50
+# define NDNBOOST_PP_SEQ_SIZE_50(_) NDNBOOST_PP_SEQ_SIZE_51
+# define NDNBOOST_PP_SEQ_SIZE_51(_) NDNBOOST_PP_SEQ_SIZE_52
+# define NDNBOOST_PP_SEQ_SIZE_52(_) NDNBOOST_PP_SEQ_SIZE_53
+# define NDNBOOST_PP_SEQ_SIZE_53(_) NDNBOOST_PP_SEQ_SIZE_54
+# define NDNBOOST_PP_SEQ_SIZE_54(_) NDNBOOST_PP_SEQ_SIZE_55
+# define NDNBOOST_PP_SEQ_SIZE_55(_) NDNBOOST_PP_SEQ_SIZE_56
+# define NDNBOOST_PP_SEQ_SIZE_56(_) NDNBOOST_PP_SEQ_SIZE_57
+# define NDNBOOST_PP_SEQ_SIZE_57(_) NDNBOOST_PP_SEQ_SIZE_58
+# define NDNBOOST_PP_SEQ_SIZE_58(_) NDNBOOST_PP_SEQ_SIZE_59
+# define NDNBOOST_PP_SEQ_SIZE_59(_) NDNBOOST_PP_SEQ_SIZE_60
+# define NDNBOOST_PP_SEQ_SIZE_60(_) NDNBOOST_PP_SEQ_SIZE_61
+# define NDNBOOST_PP_SEQ_SIZE_61(_) NDNBOOST_PP_SEQ_SIZE_62
+# define NDNBOOST_PP_SEQ_SIZE_62(_) NDNBOOST_PP_SEQ_SIZE_63
+# define NDNBOOST_PP_SEQ_SIZE_63(_) NDNBOOST_PP_SEQ_SIZE_64
+# define NDNBOOST_PP_SEQ_SIZE_64(_) NDNBOOST_PP_SEQ_SIZE_65
+# define NDNBOOST_PP_SEQ_SIZE_65(_) NDNBOOST_PP_SEQ_SIZE_66
+# define NDNBOOST_PP_SEQ_SIZE_66(_) NDNBOOST_PP_SEQ_SIZE_67
+# define NDNBOOST_PP_SEQ_SIZE_67(_) NDNBOOST_PP_SEQ_SIZE_68
+# define NDNBOOST_PP_SEQ_SIZE_68(_) NDNBOOST_PP_SEQ_SIZE_69
+# define NDNBOOST_PP_SEQ_SIZE_69(_) NDNBOOST_PP_SEQ_SIZE_70
+# define NDNBOOST_PP_SEQ_SIZE_70(_) NDNBOOST_PP_SEQ_SIZE_71
+# define NDNBOOST_PP_SEQ_SIZE_71(_) NDNBOOST_PP_SEQ_SIZE_72
+# define NDNBOOST_PP_SEQ_SIZE_72(_) NDNBOOST_PP_SEQ_SIZE_73
+# define NDNBOOST_PP_SEQ_SIZE_73(_) NDNBOOST_PP_SEQ_SIZE_74
+# define NDNBOOST_PP_SEQ_SIZE_74(_) NDNBOOST_PP_SEQ_SIZE_75
+# define NDNBOOST_PP_SEQ_SIZE_75(_) NDNBOOST_PP_SEQ_SIZE_76
+# define NDNBOOST_PP_SEQ_SIZE_76(_) NDNBOOST_PP_SEQ_SIZE_77
+# define NDNBOOST_PP_SEQ_SIZE_77(_) NDNBOOST_PP_SEQ_SIZE_78
+# define NDNBOOST_PP_SEQ_SIZE_78(_) NDNBOOST_PP_SEQ_SIZE_79
+# define NDNBOOST_PP_SEQ_SIZE_79(_) NDNBOOST_PP_SEQ_SIZE_80
+# define NDNBOOST_PP_SEQ_SIZE_80(_) NDNBOOST_PP_SEQ_SIZE_81
+# define NDNBOOST_PP_SEQ_SIZE_81(_) NDNBOOST_PP_SEQ_SIZE_82
+# define NDNBOOST_PP_SEQ_SIZE_82(_) NDNBOOST_PP_SEQ_SIZE_83
+# define NDNBOOST_PP_SEQ_SIZE_83(_) NDNBOOST_PP_SEQ_SIZE_84
+# define NDNBOOST_PP_SEQ_SIZE_84(_) NDNBOOST_PP_SEQ_SIZE_85
+# define NDNBOOST_PP_SEQ_SIZE_85(_) NDNBOOST_PP_SEQ_SIZE_86
+# define NDNBOOST_PP_SEQ_SIZE_86(_) NDNBOOST_PP_SEQ_SIZE_87
+# define NDNBOOST_PP_SEQ_SIZE_87(_) NDNBOOST_PP_SEQ_SIZE_88
+# define NDNBOOST_PP_SEQ_SIZE_88(_) NDNBOOST_PP_SEQ_SIZE_89
+# define NDNBOOST_PP_SEQ_SIZE_89(_) NDNBOOST_PP_SEQ_SIZE_90
+# define NDNBOOST_PP_SEQ_SIZE_90(_) NDNBOOST_PP_SEQ_SIZE_91
+# define NDNBOOST_PP_SEQ_SIZE_91(_) NDNBOOST_PP_SEQ_SIZE_92
+# define NDNBOOST_PP_SEQ_SIZE_92(_) NDNBOOST_PP_SEQ_SIZE_93
+# define NDNBOOST_PP_SEQ_SIZE_93(_) NDNBOOST_PP_SEQ_SIZE_94
+# define NDNBOOST_PP_SEQ_SIZE_94(_) NDNBOOST_PP_SEQ_SIZE_95
+# define NDNBOOST_PP_SEQ_SIZE_95(_) NDNBOOST_PP_SEQ_SIZE_96
+# define NDNBOOST_PP_SEQ_SIZE_96(_) NDNBOOST_PP_SEQ_SIZE_97
+# define NDNBOOST_PP_SEQ_SIZE_97(_) NDNBOOST_PP_SEQ_SIZE_98
+# define NDNBOOST_PP_SEQ_SIZE_98(_) NDNBOOST_PP_SEQ_SIZE_99
+# define NDNBOOST_PP_SEQ_SIZE_99(_) NDNBOOST_PP_SEQ_SIZE_100
+# define NDNBOOST_PP_SEQ_SIZE_100(_) NDNBOOST_PP_SEQ_SIZE_101
+# define NDNBOOST_PP_SEQ_SIZE_101(_) NDNBOOST_PP_SEQ_SIZE_102
+# define NDNBOOST_PP_SEQ_SIZE_102(_) NDNBOOST_PP_SEQ_SIZE_103
+# define NDNBOOST_PP_SEQ_SIZE_103(_) NDNBOOST_PP_SEQ_SIZE_104
+# define NDNBOOST_PP_SEQ_SIZE_104(_) NDNBOOST_PP_SEQ_SIZE_105
+# define NDNBOOST_PP_SEQ_SIZE_105(_) NDNBOOST_PP_SEQ_SIZE_106
+# define NDNBOOST_PP_SEQ_SIZE_106(_) NDNBOOST_PP_SEQ_SIZE_107
+# define NDNBOOST_PP_SEQ_SIZE_107(_) NDNBOOST_PP_SEQ_SIZE_108
+# define NDNBOOST_PP_SEQ_SIZE_108(_) NDNBOOST_PP_SEQ_SIZE_109
+# define NDNBOOST_PP_SEQ_SIZE_109(_) NDNBOOST_PP_SEQ_SIZE_110
+# define NDNBOOST_PP_SEQ_SIZE_110(_) NDNBOOST_PP_SEQ_SIZE_111
+# define NDNBOOST_PP_SEQ_SIZE_111(_) NDNBOOST_PP_SEQ_SIZE_112
+# define NDNBOOST_PP_SEQ_SIZE_112(_) NDNBOOST_PP_SEQ_SIZE_113
+# define NDNBOOST_PP_SEQ_SIZE_113(_) NDNBOOST_PP_SEQ_SIZE_114
+# define NDNBOOST_PP_SEQ_SIZE_114(_) NDNBOOST_PP_SEQ_SIZE_115
+# define NDNBOOST_PP_SEQ_SIZE_115(_) NDNBOOST_PP_SEQ_SIZE_116
+# define NDNBOOST_PP_SEQ_SIZE_116(_) NDNBOOST_PP_SEQ_SIZE_117
+# define NDNBOOST_PP_SEQ_SIZE_117(_) NDNBOOST_PP_SEQ_SIZE_118
+# define NDNBOOST_PP_SEQ_SIZE_118(_) NDNBOOST_PP_SEQ_SIZE_119
+# define NDNBOOST_PP_SEQ_SIZE_119(_) NDNBOOST_PP_SEQ_SIZE_120
+# define NDNBOOST_PP_SEQ_SIZE_120(_) NDNBOOST_PP_SEQ_SIZE_121
+# define NDNBOOST_PP_SEQ_SIZE_121(_) NDNBOOST_PP_SEQ_SIZE_122
+# define NDNBOOST_PP_SEQ_SIZE_122(_) NDNBOOST_PP_SEQ_SIZE_123
+# define NDNBOOST_PP_SEQ_SIZE_123(_) NDNBOOST_PP_SEQ_SIZE_124
+# define NDNBOOST_PP_SEQ_SIZE_124(_) NDNBOOST_PP_SEQ_SIZE_125
+# define NDNBOOST_PP_SEQ_SIZE_125(_) NDNBOOST_PP_SEQ_SIZE_126
+# define NDNBOOST_PP_SEQ_SIZE_126(_) NDNBOOST_PP_SEQ_SIZE_127
+# define NDNBOOST_PP_SEQ_SIZE_127(_) NDNBOOST_PP_SEQ_SIZE_128
+# define NDNBOOST_PP_SEQ_SIZE_128(_) NDNBOOST_PP_SEQ_SIZE_129
+# define NDNBOOST_PP_SEQ_SIZE_129(_) NDNBOOST_PP_SEQ_SIZE_130
+# define NDNBOOST_PP_SEQ_SIZE_130(_) NDNBOOST_PP_SEQ_SIZE_131
+# define NDNBOOST_PP_SEQ_SIZE_131(_) NDNBOOST_PP_SEQ_SIZE_132
+# define NDNBOOST_PP_SEQ_SIZE_132(_) NDNBOOST_PP_SEQ_SIZE_133
+# define NDNBOOST_PP_SEQ_SIZE_133(_) NDNBOOST_PP_SEQ_SIZE_134
+# define NDNBOOST_PP_SEQ_SIZE_134(_) NDNBOOST_PP_SEQ_SIZE_135
+# define NDNBOOST_PP_SEQ_SIZE_135(_) NDNBOOST_PP_SEQ_SIZE_136
+# define NDNBOOST_PP_SEQ_SIZE_136(_) NDNBOOST_PP_SEQ_SIZE_137
+# define NDNBOOST_PP_SEQ_SIZE_137(_) NDNBOOST_PP_SEQ_SIZE_138
+# define NDNBOOST_PP_SEQ_SIZE_138(_) NDNBOOST_PP_SEQ_SIZE_139
+# define NDNBOOST_PP_SEQ_SIZE_139(_) NDNBOOST_PP_SEQ_SIZE_140
+# define NDNBOOST_PP_SEQ_SIZE_140(_) NDNBOOST_PP_SEQ_SIZE_141
+# define NDNBOOST_PP_SEQ_SIZE_141(_) NDNBOOST_PP_SEQ_SIZE_142
+# define NDNBOOST_PP_SEQ_SIZE_142(_) NDNBOOST_PP_SEQ_SIZE_143
+# define NDNBOOST_PP_SEQ_SIZE_143(_) NDNBOOST_PP_SEQ_SIZE_144
+# define NDNBOOST_PP_SEQ_SIZE_144(_) NDNBOOST_PP_SEQ_SIZE_145
+# define NDNBOOST_PP_SEQ_SIZE_145(_) NDNBOOST_PP_SEQ_SIZE_146
+# define NDNBOOST_PP_SEQ_SIZE_146(_) NDNBOOST_PP_SEQ_SIZE_147
+# define NDNBOOST_PP_SEQ_SIZE_147(_) NDNBOOST_PP_SEQ_SIZE_148
+# define NDNBOOST_PP_SEQ_SIZE_148(_) NDNBOOST_PP_SEQ_SIZE_149
+# define NDNBOOST_PP_SEQ_SIZE_149(_) NDNBOOST_PP_SEQ_SIZE_150
+# define NDNBOOST_PP_SEQ_SIZE_150(_) NDNBOOST_PP_SEQ_SIZE_151
+# define NDNBOOST_PP_SEQ_SIZE_151(_) NDNBOOST_PP_SEQ_SIZE_152
+# define NDNBOOST_PP_SEQ_SIZE_152(_) NDNBOOST_PP_SEQ_SIZE_153
+# define NDNBOOST_PP_SEQ_SIZE_153(_) NDNBOOST_PP_SEQ_SIZE_154
+# define NDNBOOST_PP_SEQ_SIZE_154(_) NDNBOOST_PP_SEQ_SIZE_155
+# define NDNBOOST_PP_SEQ_SIZE_155(_) NDNBOOST_PP_SEQ_SIZE_156
+# define NDNBOOST_PP_SEQ_SIZE_156(_) NDNBOOST_PP_SEQ_SIZE_157
+# define NDNBOOST_PP_SEQ_SIZE_157(_) NDNBOOST_PP_SEQ_SIZE_158
+# define NDNBOOST_PP_SEQ_SIZE_158(_) NDNBOOST_PP_SEQ_SIZE_159
+# define NDNBOOST_PP_SEQ_SIZE_159(_) NDNBOOST_PP_SEQ_SIZE_160
+# define NDNBOOST_PP_SEQ_SIZE_160(_) NDNBOOST_PP_SEQ_SIZE_161
+# define NDNBOOST_PP_SEQ_SIZE_161(_) NDNBOOST_PP_SEQ_SIZE_162
+# define NDNBOOST_PP_SEQ_SIZE_162(_) NDNBOOST_PP_SEQ_SIZE_163
+# define NDNBOOST_PP_SEQ_SIZE_163(_) NDNBOOST_PP_SEQ_SIZE_164
+# define NDNBOOST_PP_SEQ_SIZE_164(_) NDNBOOST_PP_SEQ_SIZE_165
+# define NDNBOOST_PP_SEQ_SIZE_165(_) NDNBOOST_PP_SEQ_SIZE_166
+# define NDNBOOST_PP_SEQ_SIZE_166(_) NDNBOOST_PP_SEQ_SIZE_167
+# define NDNBOOST_PP_SEQ_SIZE_167(_) NDNBOOST_PP_SEQ_SIZE_168
+# define NDNBOOST_PP_SEQ_SIZE_168(_) NDNBOOST_PP_SEQ_SIZE_169
+# define NDNBOOST_PP_SEQ_SIZE_169(_) NDNBOOST_PP_SEQ_SIZE_170
+# define NDNBOOST_PP_SEQ_SIZE_170(_) NDNBOOST_PP_SEQ_SIZE_171
+# define NDNBOOST_PP_SEQ_SIZE_171(_) NDNBOOST_PP_SEQ_SIZE_172
+# define NDNBOOST_PP_SEQ_SIZE_172(_) NDNBOOST_PP_SEQ_SIZE_173
+# define NDNBOOST_PP_SEQ_SIZE_173(_) NDNBOOST_PP_SEQ_SIZE_174
+# define NDNBOOST_PP_SEQ_SIZE_174(_) NDNBOOST_PP_SEQ_SIZE_175
+# define NDNBOOST_PP_SEQ_SIZE_175(_) NDNBOOST_PP_SEQ_SIZE_176
+# define NDNBOOST_PP_SEQ_SIZE_176(_) NDNBOOST_PP_SEQ_SIZE_177
+# define NDNBOOST_PP_SEQ_SIZE_177(_) NDNBOOST_PP_SEQ_SIZE_178
+# define NDNBOOST_PP_SEQ_SIZE_178(_) NDNBOOST_PP_SEQ_SIZE_179
+# define NDNBOOST_PP_SEQ_SIZE_179(_) NDNBOOST_PP_SEQ_SIZE_180
+# define NDNBOOST_PP_SEQ_SIZE_180(_) NDNBOOST_PP_SEQ_SIZE_181
+# define NDNBOOST_PP_SEQ_SIZE_181(_) NDNBOOST_PP_SEQ_SIZE_182
+# define NDNBOOST_PP_SEQ_SIZE_182(_) NDNBOOST_PP_SEQ_SIZE_183
+# define NDNBOOST_PP_SEQ_SIZE_183(_) NDNBOOST_PP_SEQ_SIZE_184
+# define NDNBOOST_PP_SEQ_SIZE_184(_) NDNBOOST_PP_SEQ_SIZE_185
+# define NDNBOOST_PP_SEQ_SIZE_185(_) NDNBOOST_PP_SEQ_SIZE_186
+# define NDNBOOST_PP_SEQ_SIZE_186(_) NDNBOOST_PP_SEQ_SIZE_187
+# define NDNBOOST_PP_SEQ_SIZE_187(_) NDNBOOST_PP_SEQ_SIZE_188
+# define NDNBOOST_PP_SEQ_SIZE_188(_) NDNBOOST_PP_SEQ_SIZE_189
+# define NDNBOOST_PP_SEQ_SIZE_189(_) NDNBOOST_PP_SEQ_SIZE_190
+# define NDNBOOST_PP_SEQ_SIZE_190(_) NDNBOOST_PP_SEQ_SIZE_191
+# define NDNBOOST_PP_SEQ_SIZE_191(_) NDNBOOST_PP_SEQ_SIZE_192
+# define NDNBOOST_PP_SEQ_SIZE_192(_) NDNBOOST_PP_SEQ_SIZE_193
+# define NDNBOOST_PP_SEQ_SIZE_193(_) NDNBOOST_PP_SEQ_SIZE_194
+# define NDNBOOST_PP_SEQ_SIZE_194(_) NDNBOOST_PP_SEQ_SIZE_195
+# define NDNBOOST_PP_SEQ_SIZE_195(_) NDNBOOST_PP_SEQ_SIZE_196
+# define NDNBOOST_PP_SEQ_SIZE_196(_) NDNBOOST_PP_SEQ_SIZE_197
+# define NDNBOOST_PP_SEQ_SIZE_197(_) NDNBOOST_PP_SEQ_SIZE_198
+# define NDNBOOST_PP_SEQ_SIZE_198(_) NDNBOOST_PP_SEQ_SIZE_199
+# define NDNBOOST_PP_SEQ_SIZE_199(_) NDNBOOST_PP_SEQ_SIZE_200
+# define NDNBOOST_PP_SEQ_SIZE_200(_) NDNBOOST_PP_SEQ_SIZE_201
+# define NDNBOOST_PP_SEQ_SIZE_201(_) NDNBOOST_PP_SEQ_SIZE_202
+# define NDNBOOST_PP_SEQ_SIZE_202(_) NDNBOOST_PP_SEQ_SIZE_203
+# define NDNBOOST_PP_SEQ_SIZE_203(_) NDNBOOST_PP_SEQ_SIZE_204
+# define NDNBOOST_PP_SEQ_SIZE_204(_) NDNBOOST_PP_SEQ_SIZE_205
+# define NDNBOOST_PP_SEQ_SIZE_205(_) NDNBOOST_PP_SEQ_SIZE_206
+# define NDNBOOST_PP_SEQ_SIZE_206(_) NDNBOOST_PP_SEQ_SIZE_207
+# define NDNBOOST_PP_SEQ_SIZE_207(_) NDNBOOST_PP_SEQ_SIZE_208
+# define NDNBOOST_PP_SEQ_SIZE_208(_) NDNBOOST_PP_SEQ_SIZE_209
+# define NDNBOOST_PP_SEQ_SIZE_209(_) NDNBOOST_PP_SEQ_SIZE_210
+# define NDNBOOST_PP_SEQ_SIZE_210(_) NDNBOOST_PP_SEQ_SIZE_211
+# define NDNBOOST_PP_SEQ_SIZE_211(_) NDNBOOST_PP_SEQ_SIZE_212
+# define NDNBOOST_PP_SEQ_SIZE_212(_) NDNBOOST_PP_SEQ_SIZE_213
+# define NDNBOOST_PP_SEQ_SIZE_213(_) NDNBOOST_PP_SEQ_SIZE_214
+# define NDNBOOST_PP_SEQ_SIZE_214(_) NDNBOOST_PP_SEQ_SIZE_215
+# define NDNBOOST_PP_SEQ_SIZE_215(_) NDNBOOST_PP_SEQ_SIZE_216
+# define NDNBOOST_PP_SEQ_SIZE_216(_) NDNBOOST_PP_SEQ_SIZE_217
+# define NDNBOOST_PP_SEQ_SIZE_217(_) NDNBOOST_PP_SEQ_SIZE_218
+# define NDNBOOST_PP_SEQ_SIZE_218(_) NDNBOOST_PP_SEQ_SIZE_219
+# define NDNBOOST_PP_SEQ_SIZE_219(_) NDNBOOST_PP_SEQ_SIZE_220
+# define NDNBOOST_PP_SEQ_SIZE_220(_) NDNBOOST_PP_SEQ_SIZE_221
+# define NDNBOOST_PP_SEQ_SIZE_221(_) NDNBOOST_PP_SEQ_SIZE_222
+# define NDNBOOST_PP_SEQ_SIZE_222(_) NDNBOOST_PP_SEQ_SIZE_223
+# define NDNBOOST_PP_SEQ_SIZE_223(_) NDNBOOST_PP_SEQ_SIZE_224
+# define NDNBOOST_PP_SEQ_SIZE_224(_) NDNBOOST_PP_SEQ_SIZE_225
+# define NDNBOOST_PP_SEQ_SIZE_225(_) NDNBOOST_PP_SEQ_SIZE_226
+# define NDNBOOST_PP_SEQ_SIZE_226(_) NDNBOOST_PP_SEQ_SIZE_227
+# define NDNBOOST_PP_SEQ_SIZE_227(_) NDNBOOST_PP_SEQ_SIZE_228
+# define NDNBOOST_PP_SEQ_SIZE_228(_) NDNBOOST_PP_SEQ_SIZE_229
+# define NDNBOOST_PP_SEQ_SIZE_229(_) NDNBOOST_PP_SEQ_SIZE_230
+# define NDNBOOST_PP_SEQ_SIZE_230(_) NDNBOOST_PP_SEQ_SIZE_231
+# define NDNBOOST_PP_SEQ_SIZE_231(_) NDNBOOST_PP_SEQ_SIZE_232
+# define NDNBOOST_PP_SEQ_SIZE_232(_) NDNBOOST_PP_SEQ_SIZE_233
+# define NDNBOOST_PP_SEQ_SIZE_233(_) NDNBOOST_PP_SEQ_SIZE_234
+# define NDNBOOST_PP_SEQ_SIZE_234(_) NDNBOOST_PP_SEQ_SIZE_235
+# define NDNBOOST_PP_SEQ_SIZE_235(_) NDNBOOST_PP_SEQ_SIZE_236
+# define NDNBOOST_PP_SEQ_SIZE_236(_) NDNBOOST_PP_SEQ_SIZE_237
+# define NDNBOOST_PP_SEQ_SIZE_237(_) NDNBOOST_PP_SEQ_SIZE_238
+# define NDNBOOST_PP_SEQ_SIZE_238(_) NDNBOOST_PP_SEQ_SIZE_239
+# define NDNBOOST_PP_SEQ_SIZE_239(_) NDNBOOST_PP_SEQ_SIZE_240
+# define NDNBOOST_PP_SEQ_SIZE_240(_) NDNBOOST_PP_SEQ_SIZE_241
+# define NDNBOOST_PP_SEQ_SIZE_241(_) NDNBOOST_PP_SEQ_SIZE_242
+# define NDNBOOST_PP_SEQ_SIZE_242(_) NDNBOOST_PP_SEQ_SIZE_243
+# define NDNBOOST_PP_SEQ_SIZE_243(_) NDNBOOST_PP_SEQ_SIZE_244
+# define NDNBOOST_PP_SEQ_SIZE_244(_) NDNBOOST_PP_SEQ_SIZE_245
+# define NDNBOOST_PP_SEQ_SIZE_245(_) NDNBOOST_PP_SEQ_SIZE_246
+# define NDNBOOST_PP_SEQ_SIZE_246(_) NDNBOOST_PP_SEQ_SIZE_247
+# define NDNBOOST_PP_SEQ_SIZE_247(_) NDNBOOST_PP_SEQ_SIZE_248
+# define NDNBOOST_PP_SEQ_SIZE_248(_) NDNBOOST_PP_SEQ_SIZE_249
+# define NDNBOOST_PP_SEQ_SIZE_249(_) NDNBOOST_PP_SEQ_SIZE_250
+# define NDNBOOST_PP_SEQ_SIZE_250(_) NDNBOOST_PP_SEQ_SIZE_251
+# define NDNBOOST_PP_SEQ_SIZE_251(_) NDNBOOST_PP_SEQ_SIZE_252
+# define NDNBOOST_PP_SEQ_SIZE_252(_) NDNBOOST_PP_SEQ_SIZE_253
+# define NDNBOOST_PP_SEQ_SIZE_253(_) NDNBOOST_PP_SEQ_SIZE_254
+# define NDNBOOST_PP_SEQ_SIZE_254(_) NDNBOOST_PP_SEQ_SIZE_255
+# define NDNBOOST_PP_SEQ_SIZE_255(_) NDNBOOST_PP_SEQ_SIZE_256
+# define NDNBOOST_PP_SEQ_SIZE_256(_) NDNBOOST_PP_SEQ_SIZE_257
 #
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_0 0
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_1 1
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_2 2
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_3 3
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_4 4
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_5 5
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_6 6
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_7 7
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_8 8
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_9 9
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_10 10
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_11 11
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_12 12
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_13 13
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_14 14
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_15 15
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_16 16
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_17 17
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_18 18
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_19 19
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_20 20
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_21 21
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_22 22
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_23 23
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_24 24
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_25 25
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_26 26
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_27 27
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_28 28
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_29 29
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_30 30
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_31 31
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_32 32
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_33 33
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_34 34
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_35 35
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_36 36
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_37 37
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_38 38
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_39 39
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_40 40
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_41 41
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_42 42
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_43 43
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_44 44
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_45 45
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_46 46
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_47 47
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_48 48
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_49 49
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_50 50
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_51 51
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_52 52
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_53 53
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_54 54
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_55 55
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_56 56
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_57 57
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_58 58
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_59 59
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_60 60
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_61 61
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_62 62
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_63 63
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_64 64
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_65 65
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_66 66
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_67 67
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_68 68
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_69 69
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_70 70
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_71 71
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_72 72
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_73 73
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_74 74
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_75 75
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_76 76
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_77 77
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_78 78
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_79 79
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_80 80
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_81 81
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_82 82
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_83 83
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_84 84
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_85 85
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_86 86
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_87 87
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_88 88
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_89 89
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_90 90
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_91 91
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_92 92
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_93 93
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_94 94
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_95 95
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_96 96
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_97 97
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_98 98
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_99 99
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_100 100
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_101 101
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_102 102
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_103 103
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_104 104
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_105 105
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_106 106
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_107 107
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_108 108
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_109 109
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_110 110
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_111 111
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_112 112
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_113 113
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_114 114
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_115 115
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_116 116
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_117 117
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_118 118
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_119 119
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_120 120
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_121 121
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_122 122
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_123 123
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_124 124
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_125 125
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_126 126
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_127 127
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_128 128
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_129 129
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_130 130
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_131 131
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_132 132
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_133 133
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_134 134
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_135 135
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_136 136
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_137 137
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_138 138
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_139 139
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_140 140
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_141 141
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_142 142
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_143 143
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_144 144
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_145 145
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_146 146
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_147 147
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_148 148
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_149 149
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_150 150
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_151 151
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_152 152
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_153 153
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_154 154
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_155 155
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_156 156
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_157 157
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_158 158
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_159 159
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_160 160
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_161 161
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_162 162
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_163 163
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_164 164
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_165 165
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_166 166
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_167 167
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_168 168
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_169 169
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_170 170
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_171 171
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_172 172
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_173 173
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_174 174
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_175 175
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_176 176
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_177 177
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_178 178
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_179 179
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_180 180
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_181 181
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_182 182
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_183 183
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_184 184
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_185 185
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_186 186
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_187 187
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_188 188
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_189 189
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_190 190
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_191 191
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_192 192
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_193 193
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_194 194
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_195 195
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_196 196
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_197 197
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_198 198
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_199 199
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_200 200
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_201 201
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_202 202
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_203 203
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_204 204
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_205 205
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_206 206
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_207 207
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_208 208
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_209 209
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_210 210
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_211 211
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_212 212
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_213 213
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_214 214
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_215 215
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_216 216
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_217 217
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_218 218
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_219 219
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_220 220
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_221 221
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_222 222
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_223 223
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_224 224
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_225 225
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_226 226
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_227 227
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_228 228
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_229 229
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_230 230
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_231 231
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_232 232
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_233 233
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_234 234
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_235 235
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_236 236
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_237 237
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_238 238
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_239 239
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_240 240
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_241 241
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_242 242
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_243 243
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_244 244
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_245 245
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_246 246
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_247 247
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_248 248
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_249 249
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_250 250
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_251 251
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_252 252
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_253 253
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_254 254
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_255 255
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_256 256
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_0 0
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_1 1
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_2 2
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_3 3
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_4 4
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_5 5
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_6 6
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_7 7
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_8 8
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_9 9
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_10 10
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_11 11
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_12 12
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_13 13
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_14 14
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_15 15
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_16 16
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_17 17
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_18 18
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_19 19
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_20 20
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_21 21
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_22 22
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_23 23
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_24 24
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_25 25
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_26 26
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_27 27
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_28 28
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_29 29
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_30 30
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_31 31
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_32 32
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_33 33
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_34 34
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_35 35
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_36 36
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_37 37
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_38 38
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_39 39
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_40 40
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_41 41
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_42 42
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_43 43
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_44 44
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_45 45
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_46 46
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_47 47
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_48 48
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_49 49
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_50 50
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_51 51
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_52 52
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_53 53
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_54 54
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_55 55
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_56 56
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_57 57
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_58 58
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_59 59
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_60 60
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_61 61
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_62 62
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_63 63
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_64 64
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_65 65
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_66 66
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_67 67
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_68 68
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_69 69
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_70 70
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_71 71
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_72 72
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_73 73
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_74 74
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_75 75
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_76 76
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_77 77
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_78 78
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_79 79
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_80 80
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_81 81
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_82 82
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_83 83
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_84 84
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_85 85
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_86 86
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_87 87
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_88 88
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_89 89
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_90 90
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_91 91
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_92 92
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_93 93
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_94 94
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_95 95
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_96 96
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_97 97
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_98 98
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_99 99
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_100 100
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_101 101
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_102 102
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_103 103
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_104 104
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_105 105
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_106 106
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_107 107
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_108 108
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_109 109
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_110 110
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_111 111
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_112 112
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_113 113
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_114 114
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_115 115
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_116 116
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_117 117
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_118 118
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_119 119
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_120 120
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_121 121
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_122 122
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_123 123
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_124 124
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_125 125
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_126 126
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_127 127
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_128 128
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_129 129
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_130 130
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_131 131
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_132 132
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_133 133
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_134 134
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_135 135
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_136 136
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_137 137
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_138 138
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_139 139
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_140 140
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_141 141
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_142 142
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_143 143
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_144 144
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_145 145
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_146 146
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_147 147
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_148 148
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_149 149
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_150 150
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_151 151
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_152 152
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_153 153
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_154 154
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_155 155
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_156 156
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_157 157
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_158 158
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_159 159
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_160 160
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_161 161
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_162 162
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_163 163
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_164 164
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_165 165
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_166 166
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_167 167
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_168 168
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_169 169
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_170 170
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_171 171
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_172 172
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_173 173
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_174 174
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_175 175
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_176 176
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_177 177
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_178 178
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_179 179
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_180 180
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_181 181
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_182 182
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_183 183
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_184 184
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_185 185
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_186 186
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_187 187
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_188 188
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_189 189
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_190 190
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_191 191
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_192 192
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_193 193
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_194 194
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_195 195
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_196 196
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_197 197
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_198 198
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_199 199
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_200 200
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_201 201
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_202 202
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_203 203
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_204 204
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_205 205
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_206 206
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_207 207
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_208 208
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_209 209
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_210 210
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_211 211
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_212 212
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_213 213
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_214 214
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_215 215
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_216 216
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_217 217
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_218 218
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_219 219
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_220 220
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_221 221
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_222 222
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_223 223
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_224 224
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_225 225
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_226 226
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_227 227
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_228 228
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_229 229
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_230 230
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_231 231
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_232 232
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_233 233
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_234 234
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_235 235
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_236 236
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_237 237
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_238 238
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_239 239
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_240 240
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_241 241
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_242 242
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_243 243
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_244 244
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_245 245
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_246 246
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_247 247
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_248 248
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_249 249
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_250 250
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_251 251
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_252 252
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_253 253
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_254 254
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_255 255
+# define NDNBOOST_PP_SEQ_SIZE_NDNBOOST_PP_SEQ_SIZE_256 256
 #
 # endif
diff --git a/include/ndnboost/preprocessor/seq/subseq.hpp b/include/ndnboost/preprocessor/seq/subseq.hpp
index 529e0dc..a14ee66 100644
--- a/include/ndnboost/preprocessor/seq/subseq.hpp
+++ b/include/ndnboost/preprocessor/seq/subseq.hpp
@@ -9,20 +9,20 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_SEQ_SUBSEQ_HPP
-# define BOOST_PREPROCESSOR_SEQ_SUBSEQ_HPP
+# ifndef NDNBOOST_PREPROCESSOR_SEQ_SUBSEQ_HPP
+# define NDNBOOST_PREPROCESSOR_SEQ_SUBSEQ_HPP
 #
 # include <ndnboost/preprocessor/config/config.hpp>
 # include <ndnboost/preprocessor/seq/first_n.hpp>
 # include <ndnboost/preprocessor/seq/rest_n.hpp>
 #
-# /* BOOST_PP_SEQ_SUBSEQ */
+# /* NDNBOOST_PP_SEQ_SUBSEQ */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_SEQ_SUBSEQ(seq, i, len) BOOST_PP_SEQ_FIRST_N(len, BOOST_PP_SEQ_REST_N(i, seq))
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_SEQ_SUBSEQ(seq, i, len) NDNBOOST_PP_SEQ_FIRST_N(len, NDNBOOST_PP_SEQ_REST_N(i, seq))
 # else
-#    define BOOST_PP_SEQ_SUBSEQ(seq, i, len) BOOST_PP_SEQ_SUBSEQ_I(seq, i, len)
-#    define BOOST_PP_SEQ_SUBSEQ_I(seq, i, len) BOOST_PP_SEQ_FIRST_N(len, BOOST_PP_SEQ_REST_N(i, seq))
+#    define NDNBOOST_PP_SEQ_SUBSEQ(seq, i, len) NDNBOOST_PP_SEQ_SUBSEQ_I(seq, i, len)
+#    define NDNBOOST_PP_SEQ_SUBSEQ_I(seq, i, len) NDNBOOST_PP_SEQ_FIRST_N(len, NDNBOOST_PP_SEQ_REST_N(i, seq))
 # endif
 #
 # endif
diff --git a/include/ndnboost/preprocessor/seq/transform.hpp b/include/ndnboost/preprocessor/seq/transform.hpp
index a7793f1..304eb52 100644
--- a/include/ndnboost/preprocessor/seq/transform.hpp
+++ b/include/ndnboost/preprocessor/seq/transform.hpp
@@ -9,8 +9,8 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_SEQ_TRANSFORM_HPP
-# define BOOST_PREPROCESSOR_SEQ_TRANSFORM_HPP
+# ifndef NDNBOOST_PREPROCESSOR_SEQ_TRANSFORM_HPP
+# define NDNBOOST_PREPROCESSOR_SEQ_TRANSFORM_HPP
 #
 # include <ndnboost/preprocessor/config/config.hpp>
 # include <ndnboost/preprocessor/seq/fold_left.hpp>
@@ -18,31 +18,31 @@
 # include <ndnboost/preprocessor/tuple/elem.hpp>
 # include <ndnboost/preprocessor/tuple/rem.hpp>
 #
-# /* BOOST_PP_SEQ_TRANSFORM */
+# /* NDNBOOST_PP_SEQ_TRANSFORM */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_SEQ_TRANSFORM(op, data, seq) BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_SEQ_FOLD_LEFT(BOOST_PP_SEQ_TRANSFORM_O, (op, data, (nil)), seq)))
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_SEQ_TRANSFORM(op, data, seq) NDNBOOST_PP_SEQ_TAIL(NDNBOOST_PP_TUPLE_ELEM(3, 2, NDNBOOST_PP_SEQ_FOLD_LEFT(NDNBOOST_PP_SEQ_TRANSFORM_O, (op, data, (nil)), seq)))
 # else
-#    define BOOST_PP_SEQ_TRANSFORM(op, data, seq) BOOST_PP_SEQ_TRANSFORM_I(op, data, seq)
-#    define BOOST_PP_SEQ_TRANSFORM_I(op, data, seq) BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_SEQ_FOLD_LEFT(BOOST_PP_SEQ_TRANSFORM_O, (op, data, (nil)), seq)))
+#    define NDNBOOST_PP_SEQ_TRANSFORM(op, data, seq) NDNBOOST_PP_SEQ_TRANSFORM_I(op, data, seq)
+#    define NDNBOOST_PP_SEQ_TRANSFORM_I(op, data, seq) NDNBOOST_PP_SEQ_TAIL(NDNBOOST_PP_TUPLE_ELEM(3, 2, NDNBOOST_PP_SEQ_FOLD_LEFT(NDNBOOST_PP_SEQ_TRANSFORM_O, (op, data, (nil)), seq)))
 # endif
 #
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
-#    define BOOST_PP_SEQ_TRANSFORM_O(s, state, elem) BOOST_PP_SEQ_TRANSFORM_O_IM(s, BOOST_PP_TUPLE_REM_3 state, elem)
-#    define BOOST_PP_SEQ_TRANSFORM_O_IM(s, im, elem) BOOST_PP_SEQ_TRANSFORM_O_I(s, im, elem)
+# if NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_STRICT()
+#    define NDNBOOST_PP_SEQ_TRANSFORM_O(s, state, elem) NDNBOOST_PP_SEQ_TRANSFORM_O_IM(s, NDNBOOST_PP_TUPLE_REM_3 state, elem)
+#    define NDNBOOST_PP_SEQ_TRANSFORM_O_IM(s, im, elem) NDNBOOST_PP_SEQ_TRANSFORM_O_I(s, im, elem)
 # else
-#    define BOOST_PP_SEQ_TRANSFORM_O(s, state, elem) BOOST_PP_SEQ_TRANSFORM_O_I(s, BOOST_PP_TUPLE_ELEM(3, 0, state), BOOST_PP_TUPLE_ELEM(3, 1, state), BOOST_PP_TUPLE_ELEM(3, 2, state), elem)
+#    define NDNBOOST_PP_SEQ_TRANSFORM_O(s, state, elem) NDNBOOST_PP_SEQ_TRANSFORM_O_I(s, NDNBOOST_PP_TUPLE_ELEM(3, 0, state), NDNBOOST_PP_TUPLE_ELEM(3, 1, state), NDNBOOST_PP_TUPLE_ELEM(3, 2, state), elem)
 # endif
 #
-# define BOOST_PP_SEQ_TRANSFORM_O_I(s, op, data, res, elem) (op, data, res (op(s, data, elem)))
+# define NDNBOOST_PP_SEQ_TRANSFORM_O_I(s, op, data, res, elem) (op, data, res (op(s, data, elem)))
 #
-# /* BOOST_PP_SEQ_TRANSFORM_S */
+# /* NDNBOOST_PP_SEQ_TRANSFORM_S */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_SEQ_TRANSFORM_S(s, op, data, seq) BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_SEQ_FOLD_LEFT_ ## s(BOOST_PP_SEQ_TRANSFORM_O, (op, data, (nil)), seq)))
+# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#    define NDNBOOST_PP_SEQ_TRANSFORM_S(s, op, data, seq) NDNBOOST_PP_SEQ_TAIL(NDNBOOST_PP_TUPLE_ELEM(3, 2, NDNBOOST_PP_SEQ_FOLD_LEFT_ ## s(NDNBOOST_PP_SEQ_TRANSFORM_O, (op, data, (nil)), seq)))
 # else
-#    define BOOST_PP_SEQ_TRANSFORM_S(s, op, data, seq) BOOST_PP_SEQ_TRANSFORM_S_I(s, op, data, seq)
-#    define BOOST_PP_SEQ_TRANSFORM_S_I(s, op, data, seq) BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_SEQ_FOLD_LEFT_ ## s(BOOST_PP_SEQ_TRANSFORM_O, (op, data, (nil)), seq)))
+#    define NDNBOOST_PP_SEQ_TRANSFORM_S(s, op, data, seq) NDNBOOST_PP_SEQ_TRANSFORM_S_I(s, op, data, seq)
+#    define NDNBOOST_PP_SEQ_TRANSFORM_S_I(s, op, data, seq) NDNBOOST_PP_SEQ_TAIL(NDNBOOST_PP_TUPLE_ELEM(3, 2, NDNBOOST_PP_SEQ_FOLD_LEFT_ ## s(NDNBOOST_PP_SEQ_TRANSFORM_O, (op, data, (nil)), seq)))
 # endif
 #
 # endif
diff --git a/include/ndnboost/preprocessor/slot/detail/counter.hpp b/include/ndnboost/preprocessor/slot/detail/counter.hpp
index fb98a8d..428e478 100644
--- a/include/ndnboost/preprocessor/slot/detail/counter.hpp
+++ b/include/ndnboost/preprocessor/slot/detail/counter.hpp
@@ -9,261 +9,261 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# define BOOST_PP_VALUE BOOST_PP_COUNTER + 1
+# define NDNBOOST_PP_VALUE NDNBOOST_PP_COUNTER + 1
 #
 # include <ndnboost/preprocessor/slot/detail/shared.hpp>
 #
-# undef BOOST_PP_COUNTER
+# undef NDNBOOST_PP_COUNTER
 #
-# undef BOOST_PP_COUNTER_DIGIT_1
-# undef BOOST_PP_COUNTER_DIGIT_2
-# undef BOOST_PP_COUNTER_DIGIT_3
-# undef BOOST_PP_COUNTER_DIGIT_4
-# undef BOOST_PP_COUNTER_DIGIT_5
-# undef BOOST_PP_COUNTER_DIGIT_6
-# undef BOOST_PP_COUNTER_DIGIT_7
-# undef BOOST_PP_COUNTER_DIGIT_8
-# undef BOOST_PP_COUNTER_DIGIT_9
-# undef BOOST_PP_COUNTER_DIGIT_10
+# undef NDNBOOST_PP_COUNTER_DIGIT_1
+# undef NDNBOOST_PP_COUNTER_DIGIT_2
+# undef NDNBOOST_PP_COUNTER_DIGIT_3
+# undef NDNBOOST_PP_COUNTER_DIGIT_4
+# undef NDNBOOST_PP_COUNTER_DIGIT_5
+# undef NDNBOOST_PP_COUNTER_DIGIT_6
+# undef NDNBOOST_PP_COUNTER_DIGIT_7
+# undef NDNBOOST_PP_COUNTER_DIGIT_8
+# undef NDNBOOST_PP_COUNTER_DIGIT_9
+# undef NDNBOOST_PP_COUNTER_DIGIT_10
 #
-# if BOOST_PP_SLOT_TEMP_10 == 0
-#    define BOOST_PP_COUNTER_DIGIT_10 0
-# elif BOOST_PP_SLOT_TEMP_10 == 1
-#    define BOOST_PP_COUNTER_DIGIT_10 1
-# elif BOOST_PP_SLOT_TEMP_10 == 2
-#    define BOOST_PP_COUNTER_DIGIT_10 2
-# elif BOOST_PP_SLOT_TEMP_10 == 3
-#    define BOOST_PP_COUNTER_DIGIT_10 3
-# elif BOOST_PP_SLOT_TEMP_10 == 4
-#    define BOOST_PP_COUNTER_DIGIT_10 4
-# elif BOOST_PP_SLOT_TEMP_10 == 5
-#    define BOOST_PP_COUNTER_DIGIT_10 5
-# elif BOOST_PP_SLOT_TEMP_10 == 6
-#    define BOOST_PP_COUNTER_DIGIT_10 6
-# elif BOOST_PP_SLOT_TEMP_10 == 7
-#    define BOOST_PP_COUNTER_DIGIT_10 7
-# elif BOOST_PP_SLOT_TEMP_10 == 8
-#    define BOOST_PP_COUNTER_DIGIT_10 8
-# elif BOOST_PP_SLOT_TEMP_10 == 9
-#    define BOOST_PP_COUNTER_DIGIT_10 9
+# if NDNBOOST_PP_SLOT_TEMP_10 == 0
+#    define NDNBOOST_PP_COUNTER_DIGIT_10 0
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 1
+#    define NDNBOOST_PP_COUNTER_DIGIT_10 1
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 2
+#    define NDNBOOST_PP_COUNTER_DIGIT_10 2
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 3
+#    define NDNBOOST_PP_COUNTER_DIGIT_10 3
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 4
+#    define NDNBOOST_PP_COUNTER_DIGIT_10 4
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 5
+#    define NDNBOOST_PP_COUNTER_DIGIT_10 5
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 6
+#    define NDNBOOST_PP_COUNTER_DIGIT_10 6
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 7
+#    define NDNBOOST_PP_COUNTER_DIGIT_10 7
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 8
+#    define NDNBOOST_PP_COUNTER_DIGIT_10 8
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 9
+#    define NDNBOOST_PP_COUNTER_DIGIT_10 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_9 == 0
-#    define BOOST_PP_COUNTER_DIGIT_9 0
-# elif BOOST_PP_SLOT_TEMP_9 == 1
-#    define BOOST_PP_COUNTER_DIGIT_9 1
-# elif BOOST_PP_SLOT_TEMP_9 == 2
-#    define BOOST_PP_COUNTER_DIGIT_9 2
-# elif BOOST_PP_SLOT_TEMP_9 == 3
-#    define BOOST_PP_COUNTER_DIGIT_9 3
-# elif BOOST_PP_SLOT_TEMP_9 == 4
-#    define BOOST_PP_COUNTER_DIGIT_9 4
-# elif BOOST_PP_SLOT_TEMP_9 == 5
-#    define BOOST_PP_COUNTER_DIGIT_9 5
-# elif BOOST_PP_SLOT_TEMP_9 == 6
-#    define BOOST_PP_COUNTER_DIGIT_9 6
-# elif BOOST_PP_SLOT_TEMP_9 == 7
-#    define BOOST_PP_COUNTER_DIGIT_9 7
-# elif BOOST_PP_SLOT_TEMP_9 == 8
-#    define BOOST_PP_COUNTER_DIGIT_9 8
-# elif BOOST_PP_SLOT_TEMP_9 == 9
-#    define BOOST_PP_COUNTER_DIGIT_9 9
+# if NDNBOOST_PP_SLOT_TEMP_9 == 0
+#    define NDNBOOST_PP_COUNTER_DIGIT_9 0
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 1
+#    define NDNBOOST_PP_COUNTER_DIGIT_9 1
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 2
+#    define NDNBOOST_PP_COUNTER_DIGIT_9 2
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 3
+#    define NDNBOOST_PP_COUNTER_DIGIT_9 3
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 4
+#    define NDNBOOST_PP_COUNTER_DIGIT_9 4
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 5
+#    define NDNBOOST_PP_COUNTER_DIGIT_9 5
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 6
+#    define NDNBOOST_PP_COUNTER_DIGIT_9 6
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 7
+#    define NDNBOOST_PP_COUNTER_DIGIT_9 7
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 8
+#    define NDNBOOST_PP_COUNTER_DIGIT_9 8
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 9
+#    define NDNBOOST_PP_COUNTER_DIGIT_9 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_8 == 0
-#    define BOOST_PP_COUNTER_DIGIT_8 0
-# elif BOOST_PP_SLOT_TEMP_8 == 1
-#    define BOOST_PP_COUNTER_DIGIT_8 1
-# elif BOOST_PP_SLOT_TEMP_8 == 2
-#    define BOOST_PP_COUNTER_DIGIT_8 2
-# elif BOOST_PP_SLOT_TEMP_8 == 3
-#    define BOOST_PP_COUNTER_DIGIT_8 3
-# elif BOOST_PP_SLOT_TEMP_8 == 4
-#    define BOOST_PP_COUNTER_DIGIT_8 4
-# elif BOOST_PP_SLOT_TEMP_8 == 5
-#    define BOOST_PP_COUNTER_DIGIT_8 5
-# elif BOOST_PP_SLOT_TEMP_8 == 6
-#    define BOOST_PP_COUNTER_DIGIT_8 6
-# elif BOOST_PP_SLOT_TEMP_8 == 7
-#    define BOOST_PP_COUNTER_DIGIT_8 7
-# elif BOOST_PP_SLOT_TEMP_8 == 8
-#    define BOOST_PP_COUNTER_DIGIT_8 8
-# elif BOOST_PP_SLOT_TEMP_8 == 9
-#    define BOOST_PP_COUNTER_DIGIT_8 9
+# if NDNBOOST_PP_SLOT_TEMP_8 == 0
+#    define NDNBOOST_PP_COUNTER_DIGIT_8 0
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 1
+#    define NDNBOOST_PP_COUNTER_DIGIT_8 1
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 2
+#    define NDNBOOST_PP_COUNTER_DIGIT_8 2
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 3
+#    define NDNBOOST_PP_COUNTER_DIGIT_8 3
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 4
+#    define NDNBOOST_PP_COUNTER_DIGIT_8 4
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 5
+#    define NDNBOOST_PP_COUNTER_DIGIT_8 5
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 6
+#    define NDNBOOST_PP_COUNTER_DIGIT_8 6
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 7
+#    define NDNBOOST_PP_COUNTER_DIGIT_8 7
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 8
+#    define NDNBOOST_PP_COUNTER_DIGIT_8 8
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 9
+#    define NDNBOOST_PP_COUNTER_DIGIT_8 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_7 == 0
-#    define BOOST_PP_COUNTER_DIGIT_7 0
-# elif BOOST_PP_SLOT_TEMP_7 == 1
-#    define BOOST_PP_COUNTER_DIGIT_7 1
-# elif BOOST_PP_SLOT_TEMP_7 == 2
-#    define BOOST_PP_COUNTER_DIGIT_7 2
-# elif BOOST_PP_SLOT_TEMP_7 == 3
-#    define BOOST_PP_COUNTER_DIGIT_7 3
-# elif BOOST_PP_SLOT_TEMP_7 == 4
-#    define BOOST_PP_COUNTER_DIGIT_7 4
-# elif BOOST_PP_SLOT_TEMP_7 == 5
-#    define BOOST_PP_COUNTER_DIGIT_7 5
-# elif BOOST_PP_SLOT_TEMP_7 == 6
-#    define BOOST_PP_COUNTER_DIGIT_7 6
-# elif BOOST_PP_SLOT_TEMP_7 == 7
-#    define BOOST_PP_COUNTER_DIGIT_7 7
-# elif BOOST_PP_SLOT_TEMP_7 == 8
-#    define BOOST_PP_COUNTER_DIGIT_7 8
-# elif BOOST_PP_SLOT_TEMP_7 == 9
-#    define BOOST_PP_COUNTER_DIGIT_7 9
+# if NDNBOOST_PP_SLOT_TEMP_7 == 0
+#    define NDNBOOST_PP_COUNTER_DIGIT_7 0
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 1
+#    define NDNBOOST_PP_COUNTER_DIGIT_7 1
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 2
+#    define NDNBOOST_PP_COUNTER_DIGIT_7 2
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 3
+#    define NDNBOOST_PP_COUNTER_DIGIT_7 3
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 4
+#    define NDNBOOST_PP_COUNTER_DIGIT_7 4
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 5
+#    define NDNBOOST_PP_COUNTER_DIGIT_7 5
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 6
+#    define NDNBOOST_PP_COUNTER_DIGIT_7 6
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 7
+#    define NDNBOOST_PP_COUNTER_DIGIT_7 7
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 8
+#    define NDNBOOST_PP_COUNTER_DIGIT_7 8
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 9
+#    define NDNBOOST_PP_COUNTER_DIGIT_7 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_6 == 0
-#    define BOOST_PP_COUNTER_DIGIT_6 0
-# elif BOOST_PP_SLOT_TEMP_6 == 1
-#    define BOOST_PP_COUNTER_DIGIT_6 1
-# elif BOOST_PP_SLOT_TEMP_6 == 2
-#    define BOOST_PP_COUNTER_DIGIT_6 2
-# elif BOOST_PP_SLOT_TEMP_6 == 3
-#    define BOOST_PP_COUNTER_DIGIT_6 3
-# elif BOOST_PP_SLOT_TEMP_6 == 4
-#    define BOOST_PP_COUNTER_DIGIT_6 4
-# elif BOOST_PP_SLOT_TEMP_6 == 5
-#    define BOOST_PP_COUNTER_DIGIT_6 5
-# elif BOOST_PP_SLOT_TEMP_6 == 6
-#    define BOOST_PP_COUNTER_DIGIT_6 6
-# elif BOOST_PP_SLOT_TEMP_6 == 7
-#    define BOOST_PP_COUNTER_DIGIT_6 7
-# elif BOOST_PP_SLOT_TEMP_6 == 8
-#    define BOOST_PP_COUNTER_DIGIT_6 8
-# elif BOOST_PP_SLOT_TEMP_6 == 9
-#    define BOOST_PP_COUNTER_DIGIT_6 9
+# if NDNBOOST_PP_SLOT_TEMP_6 == 0
+#    define NDNBOOST_PP_COUNTER_DIGIT_6 0
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 1
+#    define NDNBOOST_PP_COUNTER_DIGIT_6 1
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 2
+#    define NDNBOOST_PP_COUNTER_DIGIT_6 2
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 3
+#    define NDNBOOST_PP_COUNTER_DIGIT_6 3
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 4
+#    define NDNBOOST_PP_COUNTER_DIGIT_6 4
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 5
+#    define NDNBOOST_PP_COUNTER_DIGIT_6 5
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 6
+#    define NDNBOOST_PP_COUNTER_DIGIT_6 6
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 7
+#    define NDNBOOST_PP_COUNTER_DIGIT_6 7
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 8
+#    define NDNBOOST_PP_COUNTER_DIGIT_6 8
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 9
+#    define NDNBOOST_PP_COUNTER_DIGIT_6 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_5 == 0
-#    define BOOST_PP_COUNTER_DIGIT_5 0
-# elif BOOST_PP_SLOT_TEMP_5 == 1
-#    define BOOST_PP_COUNTER_DIGIT_5 1
-# elif BOOST_PP_SLOT_TEMP_5 == 2
-#    define BOOST_PP_COUNTER_DIGIT_5 2
-# elif BOOST_PP_SLOT_TEMP_5 == 3
-#    define BOOST_PP_COUNTER_DIGIT_5 3
-# elif BOOST_PP_SLOT_TEMP_5 == 4
-#    define BOOST_PP_COUNTER_DIGIT_5 4
-# elif BOOST_PP_SLOT_TEMP_5 == 5
-#    define BOOST_PP_COUNTER_DIGIT_5 5
-# elif BOOST_PP_SLOT_TEMP_5 == 6
-#    define BOOST_PP_COUNTER_DIGIT_5 6
-# elif BOOST_PP_SLOT_TEMP_5 == 7
-#    define BOOST_PP_COUNTER_DIGIT_5 7
-# elif BOOST_PP_SLOT_TEMP_5 == 8
-#    define BOOST_PP_COUNTER_DIGIT_5 8
-# elif BOOST_PP_SLOT_TEMP_5 == 9
-#    define BOOST_PP_COUNTER_DIGIT_5 9
+# if NDNBOOST_PP_SLOT_TEMP_5 == 0
+#    define NDNBOOST_PP_COUNTER_DIGIT_5 0
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 1
+#    define NDNBOOST_PP_COUNTER_DIGIT_5 1
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 2
+#    define NDNBOOST_PP_COUNTER_DIGIT_5 2
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 3
+#    define NDNBOOST_PP_COUNTER_DIGIT_5 3
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 4
+#    define NDNBOOST_PP_COUNTER_DIGIT_5 4
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 5
+#    define NDNBOOST_PP_COUNTER_DIGIT_5 5
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 6
+#    define NDNBOOST_PP_COUNTER_DIGIT_5 6
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 7
+#    define NDNBOOST_PP_COUNTER_DIGIT_5 7
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 8
+#    define NDNBOOST_PP_COUNTER_DIGIT_5 8
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 9
+#    define NDNBOOST_PP_COUNTER_DIGIT_5 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_4 == 0
-#    define BOOST_PP_COUNTER_DIGIT_4 0
-# elif BOOST_PP_SLOT_TEMP_4 == 1
-#    define BOOST_PP_COUNTER_DIGIT_4 1
-# elif BOOST_PP_SLOT_TEMP_4 == 2
-#    define BOOST_PP_COUNTER_DIGIT_4 2
-# elif BOOST_PP_SLOT_TEMP_4 == 3
-#    define BOOST_PP_COUNTER_DIGIT_4 3
-# elif BOOST_PP_SLOT_TEMP_4 == 4
-#    define BOOST_PP_COUNTER_DIGIT_4 4
-# elif BOOST_PP_SLOT_TEMP_4 == 5
-#    define BOOST_PP_COUNTER_DIGIT_4 5
-# elif BOOST_PP_SLOT_TEMP_4 == 6
-#    define BOOST_PP_COUNTER_DIGIT_4 6
-# elif BOOST_PP_SLOT_TEMP_4 == 7
-#    define BOOST_PP_COUNTER_DIGIT_4 7
-# elif BOOST_PP_SLOT_TEMP_4 == 8
-#    define BOOST_PP_COUNTER_DIGIT_4 8
-# elif BOOST_PP_SLOT_TEMP_4 == 9
-#    define BOOST_PP_COUNTER_DIGIT_4 9
+# if NDNBOOST_PP_SLOT_TEMP_4 == 0
+#    define NDNBOOST_PP_COUNTER_DIGIT_4 0
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 1
+#    define NDNBOOST_PP_COUNTER_DIGIT_4 1
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 2
+#    define NDNBOOST_PP_COUNTER_DIGIT_4 2
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 3
+#    define NDNBOOST_PP_COUNTER_DIGIT_4 3
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 4
+#    define NDNBOOST_PP_COUNTER_DIGIT_4 4
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 5
+#    define NDNBOOST_PP_COUNTER_DIGIT_4 5
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 6
+#    define NDNBOOST_PP_COUNTER_DIGIT_4 6
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 7
+#    define NDNBOOST_PP_COUNTER_DIGIT_4 7
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 8
+#    define NDNBOOST_PP_COUNTER_DIGIT_4 8
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 9
+#    define NDNBOOST_PP_COUNTER_DIGIT_4 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_3 == 0
-#    define BOOST_PP_COUNTER_DIGIT_3 0
-# elif BOOST_PP_SLOT_TEMP_3 == 1
-#    define BOOST_PP_COUNTER_DIGIT_3 1
-# elif BOOST_PP_SLOT_TEMP_3 == 2
-#    define BOOST_PP_COUNTER_DIGIT_3 2
-# elif BOOST_PP_SLOT_TEMP_3 == 3
-#    define BOOST_PP_COUNTER_DIGIT_3 3
-# elif BOOST_PP_SLOT_TEMP_3 == 4
-#    define BOOST_PP_COUNTER_DIGIT_3 4
-# elif BOOST_PP_SLOT_TEMP_3 == 5
-#    define BOOST_PP_COUNTER_DIGIT_3 5
-# elif BOOST_PP_SLOT_TEMP_3 == 6
-#    define BOOST_PP_COUNTER_DIGIT_3 6
-# elif BOOST_PP_SLOT_TEMP_3 == 7
-#    define BOOST_PP_COUNTER_DIGIT_3 7
-# elif BOOST_PP_SLOT_TEMP_3 == 8
-#    define BOOST_PP_COUNTER_DIGIT_3 8
-# elif BOOST_PP_SLOT_TEMP_3 == 9
-#    define BOOST_PP_COUNTER_DIGIT_3 9
+# if NDNBOOST_PP_SLOT_TEMP_3 == 0
+#    define NDNBOOST_PP_COUNTER_DIGIT_3 0
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 1
+#    define NDNBOOST_PP_COUNTER_DIGIT_3 1
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 2
+#    define NDNBOOST_PP_COUNTER_DIGIT_3 2
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 3
+#    define NDNBOOST_PP_COUNTER_DIGIT_3 3
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 4
+#    define NDNBOOST_PP_COUNTER_DIGIT_3 4
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 5
+#    define NDNBOOST_PP_COUNTER_DIGIT_3 5
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 6
+#    define NDNBOOST_PP_COUNTER_DIGIT_3 6
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 7
+#    define NDNBOOST_PP_COUNTER_DIGIT_3 7
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 8
+#    define NDNBOOST_PP_COUNTER_DIGIT_3 8
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 9
+#    define NDNBOOST_PP_COUNTER_DIGIT_3 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_2 == 0
-#    define BOOST_PP_COUNTER_DIGIT_2 0
-# elif BOOST_PP_SLOT_TEMP_2 == 1
-#    define BOOST_PP_COUNTER_DIGIT_2 1
-# elif BOOST_PP_SLOT_TEMP_2 == 2
-#    define BOOST_PP_COUNTER_DIGIT_2 2
-# elif BOOST_PP_SLOT_TEMP_2 == 3
-#    define BOOST_PP_COUNTER_DIGIT_2 3
-# elif BOOST_PP_SLOT_TEMP_2 == 4
-#    define BOOST_PP_COUNTER_DIGIT_2 4
-# elif BOOST_PP_SLOT_TEMP_2 == 5
-#    define BOOST_PP_COUNTER_DIGIT_2 5
-# elif BOOST_PP_SLOT_TEMP_2 == 6
-#    define BOOST_PP_COUNTER_DIGIT_2 6
-# elif BOOST_PP_SLOT_TEMP_2 == 7
-#    define BOOST_PP_COUNTER_DIGIT_2 7
-# elif BOOST_PP_SLOT_TEMP_2 == 8
-#    define BOOST_PP_COUNTER_DIGIT_2 8
-# elif BOOST_PP_SLOT_TEMP_2 == 9
-#    define BOOST_PP_COUNTER_DIGIT_2 9
+# if NDNBOOST_PP_SLOT_TEMP_2 == 0
+#    define NDNBOOST_PP_COUNTER_DIGIT_2 0
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 1
+#    define NDNBOOST_PP_COUNTER_DIGIT_2 1
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 2
+#    define NDNBOOST_PP_COUNTER_DIGIT_2 2
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 3
+#    define NDNBOOST_PP_COUNTER_DIGIT_2 3
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 4
+#    define NDNBOOST_PP_COUNTER_DIGIT_2 4
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 5
+#    define NDNBOOST_PP_COUNTER_DIGIT_2 5
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 6
+#    define NDNBOOST_PP_COUNTER_DIGIT_2 6
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 7
+#    define NDNBOOST_PP_COUNTER_DIGIT_2 7
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 8
+#    define NDNBOOST_PP_COUNTER_DIGIT_2 8
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 9
+#    define NDNBOOST_PP_COUNTER_DIGIT_2 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_1 == 0
-#    define BOOST_PP_COUNTER_DIGIT_1 0
-# elif BOOST_PP_SLOT_TEMP_1 == 1
-#    define BOOST_PP_COUNTER_DIGIT_1 1
-# elif BOOST_PP_SLOT_TEMP_1 == 2
-#    define BOOST_PP_COUNTER_DIGIT_1 2
-# elif BOOST_PP_SLOT_TEMP_1 == 3
-#    define BOOST_PP_COUNTER_DIGIT_1 3
-# elif BOOST_PP_SLOT_TEMP_1 == 4
-#    define BOOST_PP_COUNTER_DIGIT_1 4
-# elif BOOST_PP_SLOT_TEMP_1 == 5
-#    define BOOST_PP_COUNTER_DIGIT_1 5
-# elif BOOST_PP_SLOT_TEMP_1 == 6
-#    define BOOST_PP_COUNTER_DIGIT_1 6
-# elif BOOST_PP_SLOT_TEMP_1 == 7
-#    define BOOST_PP_COUNTER_DIGIT_1 7
-# elif BOOST_PP_SLOT_TEMP_1 == 8
-#    define BOOST_PP_COUNTER_DIGIT_1 8
-# elif BOOST_PP_SLOT_TEMP_1 == 9
-#    define BOOST_PP_COUNTER_DIGIT_1 9
+# if NDNBOOST_PP_SLOT_TEMP_1 == 0
+#    define NDNBOOST_PP_COUNTER_DIGIT_1 0
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 1
+#    define NDNBOOST_PP_COUNTER_DIGIT_1 1
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 2
+#    define NDNBOOST_PP_COUNTER_DIGIT_1 2
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 3
+#    define NDNBOOST_PP_COUNTER_DIGIT_1 3
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 4
+#    define NDNBOOST_PP_COUNTER_DIGIT_1 4
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 5
+#    define NDNBOOST_PP_COUNTER_DIGIT_1 5
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 6
+#    define NDNBOOST_PP_COUNTER_DIGIT_1 6
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 7
+#    define NDNBOOST_PP_COUNTER_DIGIT_1 7
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 8
+#    define NDNBOOST_PP_COUNTER_DIGIT_1 8
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 9
+#    define NDNBOOST_PP_COUNTER_DIGIT_1 9
 # endif
 #
-# if BOOST_PP_COUNTER_DIGIT_10
-#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_10(BOOST_PP_COUNTER_DIGIT_10, BOOST_PP_COUNTER_DIGIT_9, BOOST_PP_COUNTER_DIGIT_8, BOOST_PP_COUNTER_DIGIT_7, BOOST_PP_COUNTER_DIGIT_6, BOOST_PP_COUNTER_DIGIT_5, BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)
-# elif BOOST_PP_COUNTER_DIGIT_9
-#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_9(BOOST_PP_COUNTER_DIGIT_9, BOOST_PP_COUNTER_DIGIT_8, BOOST_PP_COUNTER_DIGIT_7, BOOST_PP_COUNTER_DIGIT_6, BOOST_PP_COUNTER_DIGIT_5, BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)
-# elif BOOST_PP_COUNTER_DIGIT_8
-#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_8(BOOST_PP_COUNTER_DIGIT_8, BOOST_PP_COUNTER_DIGIT_7, BOOST_PP_COUNTER_DIGIT_6, BOOST_PP_COUNTER_DIGIT_5, BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)
-# elif BOOST_PP_COUNTER_DIGIT_7
-#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_7(BOOST_PP_COUNTER_DIGIT_7, BOOST_PP_COUNTER_DIGIT_6, BOOST_PP_COUNTER_DIGIT_5, BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)
-# elif BOOST_PP_COUNTER_DIGIT_6
-#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_6(BOOST_PP_COUNTER_DIGIT_6, BOOST_PP_COUNTER_DIGIT_5, BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)
-# elif BOOST_PP_COUNTER_DIGIT_5
-#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_5(BOOST_PP_COUNTER_DIGIT_5, BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)
-# elif BOOST_PP_COUNTER_DIGIT_4
-#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_4(BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)
-# elif BOOST_PP_COUNTER_DIGIT_3
-#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_3(BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)
-# elif BOOST_PP_COUNTER_DIGIT_2
-#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_2(BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)
+# if NDNBOOST_PP_COUNTER_DIGIT_10
+#    define NDNBOOST_PP_COUNTER NDNBOOST_PP_SLOT_CC_10(NDNBOOST_PP_COUNTER_DIGIT_10, NDNBOOST_PP_COUNTER_DIGIT_9, NDNBOOST_PP_COUNTER_DIGIT_8, NDNBOOST_PP_COUNTER_DIGIT_7, NDNBOOST_PP_COUNTER_DIGIT_6, NDNBOOST_PP_COUNTER_DIGIT_5, NDNBOOST_PP_COUNTER_DIGIT_4, NDNBOOST_PP_COUNTER_DIGIT_3, NDNBOOST_PP_COUNTER_DIGIT_2, NDNBOOST_PP_COUNTER_DIGIT_1)
+# elif NDNBOOST_PP_COUNTER_DIGIT_9
+#    define NDNBOOST_PP_COUNTER NDNBOOST_PP_SLOT_CC_9(NDNBOOST_PP_COUNTER_DIGIT_9, NDNBOOST_PP_COUNTER_DIGIT_8, NDNBOOST_PP_COUNTER_DIGIT_7, NDNBOOST_PP_COUNTER_DIGIT_6, NDNBOOST_PP_COUNTER_DIGIT_5, NDNBOOST_PP_COUNTER_DIGIT_4, NDNBOOST_PP_COUNTER_DIGIT_3, NDNBOOST_PP_COUNTER_DIGIT_2, NDNBOOST_PP_COUNTER_DIGIT_1)
+# elif NDNBOOST_PP_COUNTER_DIGIT_8
+#    define NDNBOOST_PP_COUNTER NDNBOOST_PP_SLOT_CC_8(NDNBOOST_PP_COUNTER_DIGIT_8, NDNBOOST_PP_COUNTER_DIGIT_7, NDNBOOST_PP_COUNTER_DIGIT_6, NDNBOOST_PP_COUNTER_DIGIT_5, NDNBOOST_PP_COUNTER_DIGIT_4, NDNBOOST_PP_COUNTER_DIGIT_3, NDNBOOST_PP_COUNTER_DIGIT_2, NDNBOOST_PP_COUNTER_DIGIT_1)
+# elif NDNBOOST_PP_COUNTER_DIGIT_7
+#    define NDNBOOST_PP_COUNTER NDNBOOST_PP_SLOT_CC_7(NDNBOOST_PP_COUNTER_DIGIT_7, NDNBOOST_PP_COUNTER_DIGIT_6, NDNBOOST_PP_COUNTER_DIGIT_5, NDNBOOST_PP_COUNTER_DIGIT_4, NDNBOOST_PP_COUNTER_DIGIT_3, NDNBOOST_PP_COUNTER_DIGIT_2, NDNBOOST_PP_COUNTER_DIGIT_1)
+# elif NDNBOOST_PP_COUNTER_DIGIT_6
+#    define NDNBOOST_PP_COUNTER NDNBOOST_PP_SLOT_CC_6(NDNBOOST_PP_COUNTER_DIGIT_6, NDNBOOST_PP_COUNTER_DIGIT_5, NDNBOOST_PP_COUNTER_DIGIT_4, NDNBOOST_PP_COUNTER_DIGIT_3, NDNBOOST_PP_COUNTER_DIGIT_2, NDNBOOST_PP_COUNTER_DIGIT_1)
+# elif NDNBOOST_PP_COUNTER_DIGIT_5
+#    define NDNBOOST_PP_COUNTER NDNBOOST_PP_SLOT_CC_5(NDNBOOST_PP_COUNTER_DIGIT_5, NDNBOOST_PP_COUNTER_DIGIT_4, NDNBOOST_PP_COUNTER_DIGIT_3, NDNBOOST_PP_COUNTER_DIGIT_2, NDNBOOST_PP_COUNTER_DIGIT_1)
+# elif NDNBOOST_PP_COUNTER_DIGIT_4
+#    define NDNBOOST_PP_COUNTER NDNBOOST_PP_SLOT_CC_4(NDNBOOST_PP_COUNTER_DIGIT_4, NDNBOOST_PP_COUNTER_DIGIT_3, NDNBOOST_PP_COUNTER_DIGIT_2, NDNBOOST_PP_COUNTER_DIGIT_1)
+# elif NDNBOOST_PP_COUNTER_DIGIT_3
+#    define NDNBOOST_PP_COUNTER NDNBOOST_PP_SLOT_CC_3(NDNBOOST_PP_COUNTER_DIGIT_3, NDNBOOST_PP_COUNTER_DIGIT_2, NDNBOOST_PP_COUNTER_DIGIT_1)
+# elif NDNBOOST_PP_COUNTER_DIGIT_2
+#    define NDNBOOST_PP_COUNTER NDNBOOST_PP_SLOT_CC_2(NDNBOOST_PP_COUNTER_DIGIT_2, NDNBOOST_PP_COUNTER_DIGIT_1)
 # else
-#    define BOOST_PP_COUNTER BOOST_PP_COUNTER_DIGIT_1
+#    define NDNBOOST_PP_COUNTER NDNBOOST_PP_COUNTER_DIGIT_1
 # endif
diff --git a/include/ndnboost/preprocessor/slot/detail/def.hpp b/include/ndnboost/preprocessor/slot/detail/def.hpp
index 885099e..0584971 100644
--- a/include/ndnboost/preprocessor/slot/detail/def.hpp
+++ b/include/ndnboost/preprocessor/slot/detail/def.hpp
@@ -9,41 +9,41 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_SLOT_DETAIL_DEF_HPP
-# define BOOST_PREPROCESSOR_SLOT_DETAIL_DEF_HPP
+# ifndef NDNBOOST_PREPROCESSOR_SLOT_DETAIL_DEF_HPP
+# define NDNBOOST_PREPROCESSOR_SLOT_DETAIL_DEF_HPP
 #
-# /* BOOST_PP_SLOT_OFFSET_x */
+# /* NDNBOOST_PP_SLOT_OFFSET_x */
 #
-# define BOOST_PP_SLOT_OFFSET_10(x) (x) % 1000000000UL
-# define BOOST_PP_SLOT_OFFSET_9(x) BOOST_PP_SLOT_OFFSET_10(x) % 100000000UL
-# define BOOST_PP_SLOT_OFFSET_8(x) BOOST_PP_SLOT_OFFSET_9(x) % 10000000UL
-# define BOOST_PP_SLOT_OFFSET_7(x) BOOST_PP_SLOT_OFFSET_8(x) % 1000000UL
-# define BOOST_PP_SLOT_OFFSET_6(x) BOOST_PP_SLOT_OFFSET_7(x) % 100000UL
-# define BOOST_PP_SLOT_OFFSET_5(x) BOOST_PP_SLOT_OFFSET_6(x) % 10000UL
-# define BOOST_PP_SLOT_OFFSET_4(x) BOOST_PP_SLOT_OFFSET_5(x) % 1000UL
-# define BOOST_PP_SLOT_OFFSET_3(x) BOOST_PP_SLOT_OFFSET_4(x) % 100UL
-# define BOOST_PP_SLOT_OFFSET_2(x) BOOST_PP_SLOT_OFFSET_3(x) % 10UL
+# define NDNBOOST_PP_SLOT_OFFSET_10(x) (x) % 1000000000UL
+# define NDNBOOST_PP_SLOT_OFFSET_9(x) NDNBOOST_PP_SLOT_OFFSET_10(x) % 100000000UL
+# define NDNBOOST_PP_SLOT_OFFSET_8(x) NDNBOOST_PP_SLOT_OFFSET_9(x) % 10000000UL
+# define NDNBOOST_PP_SLOT_OFFSET_7(x) NDNBOOST_PP_SLOT_OFFSET_8(x) % 1000000UL
+# define NDNBOOST_PP_SLOT_OFFSET_6(x) NDNBOOST_PP_SLOT_OFFSET_7(x) % 100000UL
+# define NDNBOOST_PP_SLOT_OFFSET_5(x) NDNBOOST_PP_SLOT_OFFSET_6(x) % 10000UL
+# define NDNBOOST_PP_SLOT_OFFSET_4(x) NDNBOOST_PP_SLOT_OFFSET_5(x) % 1000UL
+# define NDNBOOST_PP_SLOT_OFFSET_3(x) NDNBOOST_PP_SLOT_OFFSET_4(x) % 100UL
+# define NDNBOOST_PP_SLOT_OFFSET_2(x) NDNBOOST_PP_SLOT_OFFSET_3(x) % 10UL
 #
-# /* BOOST_PP_SLOT_CC_x */
+# /* NDNBOOST_PP_SLOT_CC_x */
 #
-# define BOOST_PP_SLOT_CC_2(a, b) BOOST_PP_SLOT_CC_2_D(a, b)
-# define BOOST_PP_SLOT_CC_3(a, b, c) BOOST_PP_SLOT_CC_3_D(a, b, c)
-# define BOOST_PP_SLOT_CC_4(a, b, c, d) BOOST_PP_SLOT_CC_4_D(a, b, c, d)
-# define BOOST_PP_SLOT_CC_5(a, b, c, d, e) BOOST_PP_SLOT_CC_5_D(a, b, c, d, e)
-# define BOOST_PP_SLOT_CC_6(a, b, c, d, e, f) BOOST_PP_SLOT_CC_6_D(a, b, c, d, e, f)
-# define BOOST_PP_SLOT_CC_7(a, b, c, d, e, f, g) BOOST_PP_SLOT_CC_7_D(a, b, c, d, e, f, g)
-# define BOOST_PP_SLOT_CC_8(a, b, c, d, e, f, g, h) BOOST_PP_SLOT_CC_8_D(a, b, c, d, e, f, g, h)
-# define BOOST_PP_SLOT_CC_9(a, b, c, d, e, f, g, h, i) BOOST_PP_SLOT_CC_9_D(a, b, c, d, e, f, g, h, i)
-# define BOOST_PP_SLOT_CC_10(a, b, c, d, e, f, g, h, i, j) BOOST_PP_SLOT_CC_10_D(a, b, c, d, e, f, g, h, i, j)
+# define NDNBOOST_PP_SLOT_CC_2(a, b) NDNBOOST_PP_SLOT_CC_2_D(a, b)
+# define NDNBOOST_PP_SLOT_CC_3(a, b, c) NDNBOOST_PP_SLOT_CC_3_D(a, b, c)
+# define NDNBOOST_PP_SLOT_CC_4(a, b, c, d) NDNBOOST_PP_SLOT_CC_4_D(a, b, c, d)
+# define NDNBOOST_PP_SLOT_CC_5(a, b, c, d, e) NDNBOOST_PP_SLOT_CC_5_D(a, b, c, d, e)
+# define NDNBOOST_PP_SLOT_CC_6(a, b, c, d, e, f) NDNBOOST_PP_SLOT_CC_6_D(a, b, c, d, e, f)
+# define NDNBOOST_PP_SLOT_CC_7(a, b, c, d, e, f, g) NDNBOOST_PP_SLOT_CC_7_D(a, b, c, d, e, f, g)
+# define NDNBOOST_PP_SLOT_CC_8(a, b, c, d, e, f, g, h) NDNBOOST_PP_SLOT_CC_8_D(a, b, c, d, e, f, g, h)
+# define NDNBOOST_PP_SLOT_CC_9(a, b, c, d, e, f, g, h, i) NDNBOOST_PP_SLOT_CC_9_D(a, b, c, d, e, f, g, h, i)
+# define NDNBOOST_PP_SLOT_CC_10(a, b, c, d, e, f, g, h, i, j) NDNBOOST_PP_SLOT_CC_10_D(a, b, c, d, e, f, g, h, i, j)
 #
-# define BOOST_PP_SLOT_CC_2_D(a, b) a ## b
-# define BOOST_PP_SLOT_CC_3_D(a, b, c) a ## b ## c
-# define BOOST_PP_SLOT_CC_4_D(a, b, c, d) a ## b ## c ## d
-# define BOOST_PP_SLOT_CC_5_D(a, b, c, d, e) a ## b ## c ## d ## e
-# define BOOST_PP_SLOT_CC_6_D(a, b, c, d, e, f) a ## b ## c ## d ## e ## f
-# define BOOST_PP_SLOT_CC_7_D(a, b, c, d, e, f, g) a ## b ## c ## d ## e ## f ## g
-# define BOOST_PP_SLOT_CC_8_D(a, b, c, d, e, f, g, h) a ## b ## c ## d ## e ## f ## g ## h
-# define BOOST_PP_SLOT_CC_9_D(a, b, c, d, e, f, g, h, i) a ## b ## c ## d ## e ## f ## g ## h ## i
-# define BOOST_PP_SLOT_CC_10_D(a, b, c, d, e, f, g, h, i, j) a ## b ## c ## d ## e ## f ## g ## h ## i ## j
+# define NDNBOOST_PP_SLOT_CC_2_D(a, b) a ## b
+# define NDNBOOST_PP_SLOT_CC_3_D(a, b, c) a ## b ## c
+# define NDNBOOST_PP_SLOT_CC_4_D(a, b, c, d) a ## b ## c ## d
+# define NDNBOOST_PP_SLOT_CC_5_D(a, b, c, d, e) a ## b ## c ## d ## e
+# define NDNBOOST_PP_SLOT_CC_6_D(a, b, c, d, e, f) a ## b ## c ## d ## e ## f
+# define NDNBOOST_PP_SLOT_CC_7_D(a, b, c, d, e, f, g) a ## b ## c ## d ## e ## f ## g
+# define NDNBOOST_PP_SLOT_CC_8_D(a, b, c, d, e, f, g, h) a ## b ## c ## d ## e ## f ## g ## h
+# define NDNBOOST_PP_SLOT_CC_9_D(a, b, c, d, e, f, g, h, i) a ## b ## c ## d ## e ## f ## g ## h ## i
+# define NDNBOOST_PP_SLOT_CC_10_D(a, b, c, d, e, f, g, h, i, j) a ## b ## c ## d ## e ## f ## g ## h ## i ## j
 #
 # endif
diff --git a/include/ndnboost/preprocessor/slot/detail/shared.hpp b/include/ndnboost/preprocessor/slot/detail/shared.hpp
index c97ac54..e78d3b0 100644
--- a/include/ndnboost/preprocessor/slot/detail/shared.hpp
+++ b/include/ndnboost/preprocessor/slot/detail/shared.hpp
@@ -9,239 +9,239 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PP_VALUE
-#    error BOOST_PP_ERROR:  BOOST_PP_VALUE is not defined
+# ifndef NDNBOOST_PP_VALUE
+#    error NDNBOOST_PP_ERROR:  NDNBOOST_PP_VALUE is not defined
 # endif
 #
-# undef BOOST_PP_SLOT_TEMP_1
-# undef BOOST_PP_SLOT_TEMP_2
-# undef BOOST_PP_SLOT_TEMP_3
-# undef BOOST_PP_SLOT_TEMP_4
-# undef BOOST_PP_SLOT_TEMP_5
-# undef BOOST_PP_SLOT_TEMP_6
-# undef BOOST_PP_SLOT_TEMP_7
-# undef BOOST_PP_SLOT_TEMP_8
-# undef BOOST_PP_SLOT_TEMP_9
-# undef BOOST_PP_SLOT_TEMP_10
+# undef NDNBOOST_PP_SLOT_TEMP_1
+# undef NDNBOOST_PP_SLOT_TEMP_2
+# undef NDNBOOST_PP_SLOT_TEMP_3
+# undef NDNBOOST_PP_SLOT_TEMP_4
+# undef NDNBOOST_PP_SLOT_TEMP_5
+# undef NDNBOOST_PP_SLOT_TEMP_6
+# undef NDNBOOST_PP_SLOT_TEMP_7
+# undef NDNBOOST_PP_SLOT_TEMP_8
+# undef NDNBOOST_PP_SLOT_TEMP_9
+# undef NDNBOOST_PP_SLOT_TEMP_10
 #
-# if (BOOST_PP_VALUE) / 1000000000UL == 0
-#    define BOOST_PP_SLOT_TEMP_10 0
-# elif (BOOST_PP_VALUE) / 1000000000UL == 1
-#    define BOOST_PP_SLOT_TEMP_10 1
-# elif (BOOST_PP_VALUE) / 1000000000UL == 2
-#    define BOOST_PP_SLOT_TEMP_10 2
-# elif (BOOST_PP_VALUE) / 1000000000UL == 3
-#    define BOOST_PP_SLOT_TEMP_10 3
-# elif (BOOST_PP_VALUE) / 1000000000UL == 4
-#    define BOOST_PP_SLOT_TEMP_10 4
-# elif (BOOST_PP_VALUE) / 1000000000UL == 5
-#    define BOOST_PP_SLOT_TEMP_10 5
-# elif (BOOST_PP_VALUE) / 1000000000UL == 6
-#    define BOOST_PP_SLOT_TEMP_10 6
-# elif (BOOST_PP_VALUE) / 1000000000UL == 7
-#    define BOOST_PP_SLOT_TEMP_10 7
-# elif (BOOST_PP_VALUE) / 1000000000UL == 8
-#    define BOOST_PP_SLOT_TEMP_10 8
-# elif (BOOST_PP_VALUE) / 1000000000UL == 9
-#    define BOOST_PP_SLOT_TEMP_10 9
+# if (NDNBOOST_PP_VALUE) / 1000000000UL == 0
+#    define NDNBOOST_PP_SLOT_TEMP_10 0
+# elif (NDNBOOST_PP_VALUE) / 1000000000UL == 1
+#    define NDNBOOST_PP_SLOT_TEMP_10 1
+# elif (NDNBOOST_PP_VALUE) / 1000000000UL == 2
+#    define NDNBOOST_PP_SLOT_TEMP_10 2
+# elif (NDNBOOST_PP_VALUE) / 1000000000UL == 3
+#    define NDNBOOST_PP_SLOT_TEMP_10 3
+# elif (NDNBOOST_PP_VALUE) / 1000000000UL == 4
+#    define NDNBOOST_PP_SLOT_TEMP_10 4
+# elif (NDNBOOST_PP_VALUE) / 1000000000UL == 5
+#    define NDNBOOST_PP_SLOT_TEMP_10 5
+# elif (NDNBOOST_PP_VALUE) / 1000000000UL == 6
+#    define NDNBOOST_PP_SLOT_TEMP_10 6
+# elif (NDNBOOST_PP_VALUE) / 1000000000UL == 7
+#    define NDNBOOST_PP_SLOT_TEMP_10 7
+# elif (NDNBOOST_PP_VALUE) / 1000000000UL == 8
+#    define NDNBOOST_PP_SLOT_TEMP_10 8
+# elif (NDNBOOST_PP_VALUE) / 1000000000UL == 9
+#    define NDNBOOST_PP_SLOT_TEMP_10 9
 # endif
 #
-# if BOOST_PP_SLOT_OFFSET_10(BOOST_PP_VALUE) / 100000000UL == 0
-#    define BOOST_PP_SLOT_TEMP_9 0
-# elif BOOST_PP_SLOT_OFFSET_10(BOOST_PP_VALUE) / 100000000UL == 1
-#    define BOOST_PP_SLOT_TEMP_9 1
-# elif BOOST_PP_SLOT_OFFSET_10(BOOST_PP_VALUE) / 100000000UL == 2
-#    define BOOST_PP_SLOT_TEMP_9 2
-# elif BOOST_PP_SLOT_OFFSET_10(BOOST_PP_VALUE) / 100000000UL == 3
-#    define BOOST_PP_SLOT_TEMP_9 3
-# elif BOOST_PP_SLOT_OFFSET_10(BOOST_PP_VALUE) / 100000000UL == 4
-#    define BOOST_PP_SLOT_TEMP_9 4
-# elif BOOST_PP_SLOT_OFFSET_10(BOOST_PP_VALUE) / 100000000UL == 5
-#    define BOOST_PP_SLOT_TEMP_9 5
-# elif BOOST_PP_SLOT_OFFSET_10(BOOST_PP_VALUE) / 100000000UL == 6
-#    define BOOST_PP_SLOT_TEMP_9 6
-# elif BOOST_PP_SLOT_OFFSET_10(BOOST_PP_VALUE) / 100000000UL == 7
-#    define BOOST_PP_SLOT_TEMP_9 7
-# elif BOOST_PP_SLOT_OFFSET_10(BOOST_PP_VALUE) / 100000000UL == 8
-#    define BOOST_PP_SLOT_TEMP_9 8
-# elif BOOST_PP_SLOT_OFFSET_10(BOOST_PP_VALUE) / 100000000UL == 9
-#    define BOOST_PP_SLOT_TEMP_9 9
+# if NDNBOOST_PP_SLOT_OFFSET_10(NDNBOOST_PP_VALUE) / 100000000UL == 0
+#    define NDNBOOST_PP_SLOT_TEMP_9 0
+# elif NDNBOOST_PP_SLOT_OFFSET_10(NDNBOOST_PP_VALUE) / 100000000UL == 1
+#    define NDNBOOST_PP_SLOT_TEMP_9 1
+# elif NDNBOOST_PP_SLOT_OFFSET_10(NDNBOOST_PP_VALUE) / 100000000UL == 2
+#    define NDNBOOST_PP_SLOT_TEMP_9 2
+# elif NDNBOOST_PP_SLOT_OFFSET_10(NDNBOOST_PP_VALUE) / 100000000UL == 3
+#    define NDNBOOST_PP_SLOT_TEMP_9 3
+# elif NDNBOOST_PP_SLOT_OFFSET_10(NDNBOOST_PP_VALUE) / 100000000UL == 4
+#    define NDNBOOST_PP_SLOT_TEMP_9 4
+# elif NDNBOOST_PP_SLOT_OFFSET_10(NDNBOOST_PP_VALUE) / 100000000UL == 5
+#    define NDNBOOST_PP_SLOT_TEMP_9 5
+# elif NDNBOOST_PP_SLOT_OFFSET_10(NDNBOOST_PP_VALUE) / 100000000UL == 6
+#    define NDNBOOST_PP_SLOT_TEMP_9 6
+# elif NDNBOOST_PP_SLOT_OFFSET_10(NDNBOOST_PP_VALUE) / 100000000UL == 7
+#    define NDNBOOST_PP_SLOT_TEMP_9 7
+# elif NDNBOOST_PP_SLOT_OFFSET_10(NDNBOOST_PP_VALUE) / 100000000UL == 8
+#    define NDNBOOST_PP_SLOT_TEMP_9 8
+# elif NDNBOOST_PP_SLOT_OFFSET_10(NDNBOOST_PP_VALUE) / 100000000UL == 9
+#    define NDNBOOST_PP_SLOT_TEMP_9 9
 # endif
 #
-# if BOOST_PP_SLOT_OFFSET_9(BOOST_PP_VALUE) / 10000000UL == 0
-#    define BOOST_PP_SLOT_TEMP_8 0
-# elif BOOST_PP_SLOT_OFFSET_9(BOOST_PP_VALUE) / 10000000UL == 1
-#    define BOOST_PP_SLOT_TEMP_8 1
-# elif BOOST_PP_SLOT_OFFSET_9(BOOST_PP_VALUE) / 10000000UL == 2
-#    define BOOST_PP_SLOT_TEMP_8 2
-# elif BOOST_PP_SLOT_OFFSET_9(BOOST_PP_VALUE) / 10000000UL == 3
-#    define BOOST_PP_SLOT_TEMP_8 3
-# elif BOOST_PP_SLOT_OFFSET_9(BOOST_PP_VALUE) / 10000000UL == 4
-#    define BOOST_PP_SLOT_TEMP_8 4
-# elif BOOST_PP_SLOT_OFFSET_9(BOOST_PP_VALUE) / 10000000UL == 5
-#    define BOOST_PP_SLOT_TEMP_8 5
-# elif BOOST_PP_SLOT_OFFSET_9(BOOST_PP_VALUE) / 10000000UL == 6
-#    define BOOST_PP_SLOT_TEMP_8 6
-# elif BOOST_PP_SLOT_OFFSET_9(BOOST_PP_VALUE) / 10000000UL == 7
-#    define BOOST_PP_SLOT_TEMP_8 7
-# elif BOOST_PP_SLOT_OFFSET_9(BOOST_PP_VALUE) / 10000000UL == 8
-#    define BOOST_PP_SLOT_TEMP_8 8
-# elif BOOST_PP_SLOT_OFFSET_9(BOOST_PP_VALUE) / 10000000UL == 9
-#    define BOOST_PP_SLOT_TEMP_8 9
+# if NDNBOOST_PP_SLOT_OFFSET_9(NDNBOOST_PP_VALUE) / 10000000UL == 0
+#    define NDNBOOST_PP_SLOT_TEMP_8 0
+# elif NDNBOOST_PP_SLOT_OFFSET_9(NDNBOOST_PP_VALUE) / 10000000UL == 1
+#    define NDNBOOST_PP_SLOT_TEMP_8 1
+# elif NDNBOOST_PP_SLOT_OFFSET_9(NDNBOOST_PP_VALUE) / 10000000UL == 2
+#    define NDNBOOST_PP_SLOT_TEMP_8 2
+# elif NDNBOOST_PP_SLOT_OFFSET_9(NDNBOOST_PP_VALUE) / 10000000UL == 3
+#    define NDNBOOST_PP_SLOT_TEMP_8 3
+# elif NDNBOOST_PP_SLOT_OFFSET_9(NDNBOOST_PP_VALUE) / 10000000UL == 4
+#    define NDNBOOST_PP_SLOT_TEMP_8 4
+# elif NDNBOOST_PP_SLOT_OFFSET_9(NDNBOOST_PP_VALUE) / 10000000UL == 5
+#    define NDNBOOST_PP_SLOT_TEMP_8 5
+# elif NDNBOOST_PP_SLOT_OFFSET_9(NDNBOOST_PP_VALUE) / 10000000UL == 6
+#    define NDNBOOST_PP_SLOT_TEMP_8 6
+# elif NDNBOOST_PP_SLOT_OFFSET_9(NDNBOOST_PP_VALUE) / 10000000UL == 7
+#    define NDNBOOST_PP_SLOT_TEMP_8 7
+# elif NDNBOOST_PP_SLOT_OFFSET_9(NDNBOOST_PP_VALUE) / 10000000UL == 8
+#    define NDNBOOST_PP_SLOT_TEMP_8 8
+# elif NDNBOOST_PP_SLOT_OFFSET_9(NDNBOOST_PP_VALUE) / 10000000UL == 9
+#    define NDNBOOST_PP_SLOT_TEMP_8 9
 # endif
 #
-# if BOOST_PP_SLOT_OFFSET_8(BOOST_PP_VALUE) / 1000000UL == 0
-#    define BOOST_PP_SLOT_TEMP_7 0
-# elif BOOST_PP_SLOT_OFFSET_8(BOOST_PP_VALUE) / 1000000UL == 1
-#    define BOOST_PP_SLOT_TEMP_7 1
-# elif BOOST_PP_SLOT_OFFSET_8(BOOST_PP_VALUE) / 1000000UL == 2
-#    define BOOST_PP_SLOT_TEMP_7 2
-# elif BOOST_PP_SLOT_OFFSET_8(BOOST_PP_VALUE) / 1000000UL == 3
-#    define BOOST_PP_SLOT_TEMP_7 3
-# elif BOOST_PP_SLOT_OFFSET_8(BOOST_PP_VALUE) / 1000000UL == 4
-#    define BOOST_PP_SLOT_TEMP_7 4
-# elif BOOST_PP_SLOT_OFFSET_8(BOOST_PP_VALUE) / 1000000UL == 5
-#    define BOOST_PP_SLOT_TEMP_7 5
-# elif BOOST_PP_SLOT_OFFSET_8(BOOST_PP_VALUE) / 1000000UL == 6
-#    define BOOST_PP_SLOT_TEMP_7 6
-# elif BOOST_PP_SLOT_OFFSET_8(BOOST_PP_VALUE) / 1000000UL == 7
-#    define BOOST_PP_SLOT_TEMP_7 7
-# elif BOOST_PP_SLOT_OFFSET_8(BOOST_PP_VALUE) / 1000000UL == 8
-#    define BOOST_PP_SLOT_TEMP_7 8
-# elif BOOST_PP_SLOT_OFFSET_8(BOOST_PP_VALUE) / 1000000UL == 9
-#    define BOOST_PP_SLOT_TEMP_7 9
+# if NDNBOOST_PP_SLOT_OFFSET_8(NDNBOOST_PP_VALUE) / 1000000UL == 0
+#    define NDNBOOST_PP_SLOT_TEMP_7 0
+# elif NDNBOOST_PP_SLOT_OFFSET_8(NDNBOOST_PP_VALUE) / 1000000UL == 1
+#    define NDNBOOST_PP_SLOT_TEMP_7 1
+# elif NDNBOOST_PP_SLOT_OFFSET_8(NDNBOOST_PP_VALUE) / 1000000UL == 2
+#    define NDNBOOST_PP_SLOT_TEMP_7 2
+# elif NDNBOOST_PP_SLOT_OFFSET_8(NDNBOOST_PP_VALUE) / 1000000UL == 3
+#    define NDNBOOST_PP_SLOT_TEMP_7 3
+# elif NDNBOOST_PP_SLOT_OFFSET_8(NDNBOOST_PP_VALUE) / 1000000UL == 4
+#    define NDNBOOST_PP_SLOT_TEMP_7 4
+# elif NDNBOOST_PP_SLOT_OFFSET_8(NDNBOOST_PP_VALUE) / 1000000UL == 5
+#    define NDNBOOST_PP_SLOT_TEMP_7 5
+# elif NDNBOOST_PP_SLOT_OFFSET_8(NDNBOOST_PP_VALUE) / 1000000UL == 6
+#    define NDNBOOST_PP_SLOT_TEMP_7 6
+# elif NDNBOOST_PP_SLOT_OFFSET_8(NDNBOOST_PP_VALUE) / 1000000UL == 7
+#    define NDNBOOST_PP_SLOT_TEMP_7 7
+# elif NDNBOOST_PP_SLOT_OFFSET_8(NDNBOOST_PP_VALUE) / 1000000UL == 8
+#    define NDNBOOST_PP_SLOT_TEMP_7 8
+# elif NDNBOOST_PP_SLOT_OFFSET_8(NDNBOOST_PP_VALUE) / 1000000UL == 9
+#    define NDNBOOST_PP_SLOT_TEMP_7 9
 # endif
 #
-# if BOOST_PP_SLOT_OFFSET_7(BOOST_PP_VALUE) / 100000UL == 0
-#    define BOOST_PP_SLOT_TEMP_6 0
-# elif BOOST_PP_SLOT_OFFSET_7(BOOST_PP_VALUE) / 100000UL == 1
-#    define BOOST_PP_SLOT_TEMP_6 1
-# elif BOOST_PP_SLOT_OFFSET_7(BOOST_PP_VALUE) / 100000UL == 2
-#    define BOOST_PP_SLOT_TEMP_6 2
-# elif BOOST_PP_SLOT_OFFSET_7(BOOST_PP_VALUE) / 100000UL == 3
-#    define BOOST_PP_SLOT_TEMP_6 3
-# elif BOOST_PP_SLOT_OFFSET_7(BOOST_PP_VALUE) / 100000UL == 4
-#    define BOOST_PP_SLOT_TEMP_6 4
-# elif BOOST_PP_SLOT_OFFSET_7(BOOST_PP_VALUE) / 100000UL == 5
-#    define BOOST_PP_SLOT_TEMP_6 5
-# elif BOOST_PP_SLOT_OFFSET_7(BOOST_PP_VALUE) / 100000UL == 6
-#    define BOOST_PP_SLOT_TEMP_6 6
-# elif BOOST_PP_SLOT_OFFSET_7(BOOST_PP_VALUE) / 100000UL == 7
-#    define BOOST_PP_SLOT_TEMP_6 7
-# elif BOOST_PP_SLOT_OFFSET_7(BOOST_PP_VALUE) / 100000UL == 8
-#    define BOOST_PP_SLOT_TEMP_6 8
-# elif BOOST_PP_SLOT_OFFSET_7(BOOST_PP_VALUE) / 100000UL == 9
-#    define BOOST_PP_SLOT_TEMP_6 9
+# if NDNBOOST_PP_SLOT_OFFSET_7(NDNBOOST_PP_VALUE) / 100000UL == 0
+#    define NDNBOOST_PP_SLOT_TEMP_6 0
+# elif NDNBOOST_PP_SLOT_OFFSET_7(NDNBOOST_PP_VALUE) / 100000UL == 1
+#    define NDNBOOST_PP_SLOT_TEMP_6 1
+# elif NDNBOOST_PP_SLOT_OFFSET_7(NDNBOOST_PP_VALUE) / 100000UL == 2
+#    define NDNBOOST_PP_SLOT_TEMP_6 2
+# elif NDNBOOST_PP_SLOT_OFFSET_7(NDNBOOST_PP_VALUE) / 100000UL == 3
+#    define NDNBOOST_PP_SLOT_TEMP_6 3
+# elif NDNBOOST_PP_SLOT_OFFSET_7(NDNBOOST_PP_VALUE) / 100000UL == 4
+#    define NDNBOOST_PP_SLOT_TEMP_6 4
+# elif NDNBOOST_PP_SLOT_OFFSET_7(NDNBOOST_PP_VALUE) / 100000UL == 5
+#    define NDNBOOST_PP_SLOT_TEMP_6 5
+# elif NDNBOOST_PP_SLOT_OFFSET_7(NDNBOOST_PP_VALUE) / 100000UL == 6
+#    define NDNBOOST_PP_SLOT_TEMP_6 6
+# elif NDNBOOST_PP_SLOT_OFFSET_7(NDNBOOST_PP_VALUE) / 100000UL == 7
+#    define NDNBOOST_PP_SLOT_TEMP_6 7
+# elif NDNBOOST_PP_SLOT_OFFSET_7(NDNBOOST_PP_VALUE) / 100000UL == 8
+#    define NDNBOOST_PP_SLOT_TEMP_6 8
+# elif NDNBOOST_PP_SLOT_OFFSET_7(NDNBOOST_PP_VALUE) / 100000UL == 9
+#    define NDNBOOST_PP_SLOT_TEMP_6 9
 # endif
 #
-# if BOOST_PP_SLOT_OFFSET_6(BOOST_PP_VALUE) / 10000UL == 0
-#    define BOOST_PP_SLOT_TEMP_5 0
-# elif BOOST_PP_SLOT_OFFSET_6(BOOST_PP_VALUE) / 10000UL == 1
-#    define BOOST_PP_SLOT_TEMP_5 1
-# elif BOOST_PP_SLOT_OFFSET_6(BOOST_PP_VALUE) / 10000UL == 2
-#    define BOOST_PP_SLOT_TEMP_5 2
-# elif BOOST_PP_SLOT_OFFSET_6(BOOST_PP_VALUE) / 10000UL == 3
-#    define BOOST_PP_SLOT_TEMP_5 3
-# elif BOOST_PP_SLOT_OFFSET_6(BOOST_PP_VALUE) / 10000UL == 4
-#    define BOOST_PP_SLOT_TEMP_5 4
-# elif BOOST_PP_SLOT_OFFSET_6(BOOST_PP_VALUE) / 10000UL == 5
-#    define BOOST_PP_SLOT_TEMP_5 5
-# elif BOOST_PP_SLOT_OFFSET_6(BOOST_PP_VALUE) / 10000UL == 6
-#    define BOOST_PP_SLOT_TEMP_5 6
-# elif BOOST_PP_SLOT_OFFSET_6(BOOST_PP_VALUE) / 10000UL == 7
-#    define BOOST_PP_SLOT_TEMP_5 7
-# elif BOOST_PP_SLOT_OFFSET_6(BOOST_PP_VALUE) / 10000UL == 8
-#    define BOOST_PP_SLOT_TEMP_5 8
-# elif BOOST_PP_SLOT_OFFSET_6(BOOST_PP_VALUE) / 10000UL == 9
-#    define BOOST_PP_SLOT_TEMP_5 9
+# if NDNBOOST_PP_SLOT_OFFSET_6(NDNBOOST_PP_VALUE) / 10000UL == 0
+#    define NDNBOOST_PP_SLOT_TEMP_5 0
+# elif NDNBOOST_PP_SLOT_OFFSET_6(NDNBOOST_PP_VALUE) / 10000UL == 1
+#    define NDNBOOST_PP_SLOT_TEMP_5 1
+# elif NDNBOOST_PP_SLOT_OFFSET_6(NDNBOOST_PP_VALUE) / 10000UL == 2
+#    define NDNBOOST_PP_SLOT_TEMP_5 2
+# elif NDNBOOST_PP_SLOT_OFFSET_6(NDNBOOST_PP_VALUE) / 10000UL == 3
+#    define NDNBOOST_PP_SLOT_TEMP_5 3
+# elif NDNBOOST_PP_SLOT_OFFSET_6(NDNBOOST_PP_VALUE) / 10000UL == 4
+#    define NDNBOOST_PP_SLOT_TEMP_5 4
+# elif NDNBOOST_PP_SLOT_OFFSET_6(NDNBOOST_PP_VALUE) / 10000UL == 5
+#    define NDNBOOST_PP_SLOT_TEMP_5 5
+# elif NDNBOOST_PP_SLOT_OFFSET_6(NDNBOOST_PP_VALUE) / 10000UL == 6
+#    define NDNBOOST_PP_SLOT_TEMP_5 6
+# elif NDNBOOST_PP_SLOT_OFFSET_6(NDNBOOST_PP_VALUE) / 10000UL == 7
+#    define NDNBOOST_PP_SLOT_TEMP_5 7
+# elif NDNBOOST_PP_SLOT_OFFSET_6(NDNBOOST_PP_VALUE) / 10000UL == 8
+#    define NDNBOOST_PP_SLOT_TEMP_5 8
+# elif NDNBOOST_PP_SLOT_OFFSET_6(NDNBOOST_PP_VALUE) / 10000UL == 9
+#    define NDNBOOST_PP_SLOT_TEMP_5 9
 # endif
 #
-# if BOOST_PP_SLOT_OFFSET_5(BOOST_PP_VALUE) / 1000UL == 0
-#    define BOOST_PP_SLOT_TEMP_4 0
-# elif BOOST_PP_SLOT_OFFSET_5(BOOST_PP_VALUE) / 1000UL == 1
-#    define BOOST_PP_SLOT_TEMP_4 1
-# elif BOOST_PP_SLOT_OFFSET_5(BOOST_PP_VALUE) / 1000UL == 2
-#    define BOOST_PP_SLOT_TEMP_4 2
-# elif BOOST_PP_SLOT_OFFSET_5(BOOST_PP_VALUE) / 1000UL == 3
-#    define BOOST_PP_SLOT_TEMP_4 3
-# elif BOOST_PP_SLOT_OFFSET_5(BOOST_PP_VALUE) / 1000UL == 4
-#    define BOOST_PP_SLOT_TEMP_4 4
-# elif BOOST_PP_SLOT_OFFSET_5(BOOST_PP_VALUE) / 1000UL == 5
-#    define BOOST_PP_SLOT_TEMP_4 5
-# elif BOOST_PP_SLOT_OFFSET_5(BOOST_PP_VALUE) / 1000UL == 6
-#    define BOOST_PP_SLOT_TEMP_4 6
-# elif BOOST_PP_SLOT_OFFSET_5(BOOST_PP_VALUE) / 1000UL == 7
-#    define BOOST_PP_SLOT_TEMP_4 7
-# elif BOOST_PP_SLOT_OFFSET_5(BOOST_PP_VALUE) / 1000UL == 8
-#    define BOOST_PP_SLOT_TEMP_4 8
-# elif BOOST_PP_SLOT_OFFSET_5(BOOST_PP_VALUE) / 1000UL == 9
-#    define BOOST_PP_SLOT_TEMP_4 9
+# if NDNBOOST_PP_SLOT_OFFSET_5(NDNBOOST_PP_VALUE) / 1000UL == 0
+#    define NDNBOOST_PP_SLOT_TEMP_4 0
+# elif NDNBOOST_PP_SLOT_OFFSET_5(NDNBOOST_PP_VALUE) / 1000UL == 1
+#    define NDNBOOST_PP_SLOT_TEMP_4 1
+# elif NDNBOOST_PP_SLOT_OFFSET_5(NDNBOOST_PP_VALUE) / 1000UL == 2
+#    define NDNBOOST_PP_SLOT_TEMP_4 2
+# elif NDNBOOST_PP_SLOT_OFFSET_5(NDNBOOST_PP_VALUE) / 1000UL == 3
+#    define NDNBOOST_PP_SLOT_TEMP_4 3
+# elif NDNBOOST_PP_SLOT_OFFSET_5(NDNBOOST_PP_VALUE) / 1000UL == 4
+#    define NDNBOOST_PP_SLOT_TEMP_4 4
+# elif NDNBOOST_PP_SLOT_OFFSET_5(NDNBOOST_PP_VALUE) / 1000UL == 5
+#    define NDNBOOST_PP_SLOT_TEMP_4 5
+# elif NDNBOOST_PP_SLOT_OFFSET_5(NDNBOOST_PP_VALUE) / 1000UL == 6
+#    define NDNBOOST_PP_SLOT_TEMP_4 6
+# elif NDNBOOST_PP_SLOT_OFFSET_5(NDNBOOST_PP_VALUE) / 1000UL == 7
+#    define NDNBOOST_PP_SLOT_TEMP_4 7
+# elif NDNBOOST_PP_SLOT_OFFSET_5(NDNBOOST_PP_VALUE) / 1000UL == 8
+#    define NDNBOOST_PP_SLOT_TEMP_4 8
+# elif NDNBOOST_PP_SLOT_OFFSET_5(NDNBOOST_PP_VALUE) / 1000UL == 9
+#    define NDNBOOST_PP_SLOT_TEMP_4 9
 # endif
 #
-# if BOOST_PP_SLOT_OFFSET_4(BOOST_PP_VALUE) / 100UL == 0
-#    define BOOST_PP_SLOT_TEMP_3 0
-# elif BOOST_PP_SLOT_OFFSET_4(BOOST_PP_VALUE) / 100UL == 1
-#    define BOOST_PP_SLOT_TEMP_3 1
-# elif BOOST_PP_SLOT_OFFSET_4(BOOST_PP_VALUE) / 100UL == 2
-#    define BOOST_PP_SLOT_TEMP_3 2
-# elif BOOST_PP_SLOT_OFFSET_4(BOOST_PP_VALUE) / 100UL == 3
-#    define BOOST_PP_SLOT_TEMP_3 3
-# elif BOOST_PP_SLOT_OFFSET_4(BOOST_PP_VALUE) / 100UL == 4
-#    define BOOST_PP_SLOT_TEMP_3 4
-# elif BOOST_PP_SLOT_OFFSET_4(BOOST_PP_VALUE) / 100UL == 5
-#    define BOOST_PP_SLOT_TEMP_3 5
-# elif BOOST_PP_SLOT_OFFSET_4(BOOST_PP_VALUE) / 100UL == 6
-#    define BOOST_PP_SLOT_TEMP_3 6
-# elif BOOST_PP_SLOT_OFFSET_4(BOOST_PP_VALUE) / 100UL == 7
-#    define BOOST_PP_SLOT_TEMP_3 7
-# elif BOOST_PP_SLOT_OFFSET_4(BOOST_PP_VALUE) / 100UL == 8
-#    define BOOST_PP_SLOT_TEMP_3 8
-# elif BOOST_PP_SLOT_OFFSET_4(BOOST_PP_VALUE) / 100UL == 9
-#    define BOOST_PP_SLOT_TEMP_3 9
+# if NDNBOOST_PP_SLOT_OFFSET_4(NDNBOOST_PP_VALUE) / 100UL == 0
+#    define NDNBOOST_PP_SLOT_TEMP_3 0
+# elif NDNBOOST_PP_SLOT_OFFSET_4(NDNBOOST_PP_VALUE) / 100UL == 1
+#    define NDNBOOST_PP_SLOT_TEMP_3 1
+# elif NDNBOOST_PP_SLOT_OFFSET_4(NDNBOOST_PP_VALUE) / 100UL == 2
+#    define NDNBOOST_PP_SLOT_TEMP_3 2
+# elif NDNBOOST_PP_SLOT_OFFSET_4(NDNBOOST_PP_VALUE) / 100UL == 3
+#    define NDNBOOST_PP_SLOT_TEMP_3 3
+# elif NDNBOOST_PP_SLOT_OFFSET_4(NDNBOOST_PP_VALUE) / 100UL == 4
+#    define NDNBOOST_PP_SLOT_TEMP_3 4
+# elif NDNBOOST_PP_SLOT_OFFSET_4(NDNBOOST_PP_VALUE) / 100UL == 5
+#    define NDNBOOST_PP_SLOT_TEMP_3 5
+# elif NDNBOOST_PP_SLOT_OFFSET_4(NDNBOOST_PP_VALUE) / 100UL == 6
+#    define NDNBOOST_PP_SLOT_TEMP_3 6
+# elif NDNBOOST_PP_SLOT_OFFSET_4(NDNBOOST_PP_VALUE) / 100UL == 7
+#    define NDNBOOST_PP_SLOT_TEMP_3 7
+# elif NDNBOOST_PP_SLOT_OFFSET_4(NDNBOOST_PP_VALUE) / 100UL == 8
+#    define NDNBOOST_PP_SLOT_TEMP_3 8
+# elif NDNBOOST_PP_SLOT_OFFSET_4(NDNBOOST_PP_VALUE) / 100UL == 9
+#    define NDNBOOST_PP_SLOT_TEMP_3 9
 # endif
 #
-# if BOOST_PP_SLOT_OFFSET_3(BOOST_PP_VALUE) / 10UL == 0
-#    define BOOST_PP_SLOT_TEMP_2 0
-# elif BOOST_PP_SLOT_OFFSET_3(BOOST_PP_VALUE) / 10UL == 1
-#    define BOOST_PP_SLOT_TEMP_2 1
-# elif BOOST_PP_SLOT_OFFSET_3(BOOST_PP_VALUE) / 10UL == 2
-#    define BOOST_PP_SLOT_TEMP_2 2
-# elif BOOST_PP_SLOT_OFFSET_3(BOOST_PP_VALUE) / 10UL == 3
-#    define BOOST_PP_SLOT_TEMP_2 3
-# elif BOOST_PP_SLOT_OFFSET_3(BOOST_PP_VALUE) / 10UL == 4
-#    define BOOST_PP_SLOT_TEMP_2 4
-# elif BOOST_PP_SLOT_OFFSET_3(BOOST_PP_VALUE) / 10UL == 5
-#    define BOOST_PP_SLOT_TEMP_2 5
-# elif BOOST_PP_SLOT_OFFSET_3(BOOST_PP_VALUE) / 10UL == 6
-#    define BOOST_PP_SLOT_TEMP_2 6
-# elif BOOST_PP_SLOT_OFFSET_3(BOOST_PP_VALUE) / 10UL == 7
-#    define BOOST_PP_SLOT_TEMP_2 7
-# elif BOOST_PP_SLOT_OFFSET_3(BOOST_PP_VALUE) / 10UL == 8
-#    define BOOST_PP_SLOT_TEMP_2 8
-# elif BOOST_PP_SLOT_OFFSET_3(BOOST_PP_VALUE) / 10UL == 9
-#    define BOOST_PP_SLOT_TEMP_2 9
+# if NDNBOOST_PP_SLOT_OFFSET_3(NDNBOOST_PP_VALUE) / 10UL == 0
+#    define NDNBOOST_PP_SLOT_TEMP_2 0
+# elif NDNBOOST_PP_SLOT_OFFSET_3(NDNBOOST_PP_VALUE) / 10UL == 1
+#    define NDNBOOST_PP_SLOT_TEMP_2 1
+# elif NDNBOOST_PP_SLOT_OFFSET_3(NDNBOOST_PP_VALUE) / 10UL == 2
+#    define NDNBOOST_PP_SLOT_TEMP_2 2
+# elif NDNBOOST_PP_SLOT_OFFSET_3(NDNBOOST_PP_VALUE) / 10UL == 3
+#    define NDNBOOST_PP_SLOT_TEMP_2 3
+# elif NDNBOOST_PP_SLOT_OFFSET_3(NDNBOOST_PP_VALUE) / 10UL == 4
+#    define NDNBOOST_PP_SLOT_TEMP_2 4
+# elif NDNBOOST_PP_SLOT_OFFSET_3(NDNBOOST_PP_VALUE) / 10UL == 5
+#    define NDNBOOST_PP_SLOT_TEMP_2 5
+# elif NDNBOOST_PP_SLOT_OFFSET_3(NDNBOOST_PP_VALUE) / 10UL == 6
+#    define NDNBOOST_PP_SLOT_TEMP_2 6
+# elif NDNBOOST_PP_SLOT_OFFSET_3(NDNBOOST_PP_VALUE) / 10UL == 7
+#    define NDNBOOST_PP_SLOT_TEMP_2 7
+# elif NDNBOOST_PP_SLOT_OFFSET_3(NDNBOOST_PP_VALUE) / 10UL == 8
+#    define NDNBOOST_PP_SLOT_TEMP_2 8
+# elif NDNBOOST_PP_SLOT_OFFSET_3(NDNBOOST_PP_VALUE) / 10UL == 9
+#    define NDNBOOST_PP_SLOT_TEMP_2 9
 # endif
 #
-# if BOOST_PP_SLOT_OFFSET_2(BOOST_PP_VALUE) == 0
-#    define BOOST_PP_SLOT_TEMP_1 0
-# elif BOOST_PP_SLOT_OFFSET_2(BOOST_PP_VALUE) == 1
-#    define BOOST_PP_SLOT_TEMP_1 1
-# elif BOOST_PP_SLOT_OFFSET_2(BOOST_PP_VALUE) == 2
-#    define BOOST_PP_SLOT_TEMP_1 2
-# elif BOOST_PP_SLOT_OFFSET_2(BOOST_PP_VALUE) == 3
-#    define BOOST_PP_SLOT_TEMP_1 3
-# elif BOOST_PP_SLOT_OFFSET_2(BOOST_PP_VALUE) == 4
-#    define BOOST_PP_SLOT_TEMP_1 4
-# elif BOOST_PP_SLOT_OFFSET_2(BOOST_PP_VALUE) == 5
-#    define BOOST_PP_SLOT_TEMP_1 5
-# elif BOOST_PP_SLOT_OFFSET_2(BOOST_PP_VALUE) == 6
-#    define BOOST_PP_SLOT_TEMP_1 6
-# elif BOOST_PP_SLOT_OFFSET_2(BOOST_PP_VALUE) == 7
-#    define BOOST_PP_SLOT_TEMP_1 7
-# elif BOOST_PP_SLOT_OFFSET_2(BOOST_PP_VALUE) == 8
-#    define BOOST_PP_SLOT_TEMP_1 8
-# elif BOOST_PP_SLOT_OFFSET_2(BOOST_PP_VALUE) == 9
-#    define BOOST_PP_SLOT_TEMP_1 9
+# if NDNBOOST_PP_SLOT_OFFSET_2(NDNBOOST_PP_VALUE) == 0
+#    define NDNBOOST_PP_SLOT_TEMP_1 0
+# elif NDNBOOST_PP_SLOT_OFFSET_2(NDNBOOST_PP_VALUE) == 1
+#    define NDNBOOST_PP_SLOT_TEMP_1 1
+# elif NDNBOOST_PP_SLOT_OFFSET_2(NDNBOOST_PP_VALUE) == 2
+#    define NDNBOOST_PP_SLOT_TEMP_1 2
+# elif NDNBOOST_PP_SLOT_OFFSET_2(NDNBOOST_PP_VALUE) == 3
+#    define NDNBOOST_PP_SLOT_TEMP_1 3
+# elif NDNBOOST_PP_SLOT_OFFSET_2(NDNBOOST_PP_VALUE) == 4
+#    define NDNBOOST_PP_SLOT_TEMP_1 4
+# elif NDNBOOST_PP_SLOT_OFFSET_2(NDNBOOST_PP_VALUE) == 5
+#    define NDNBOOST_PP_SLOT_TEMP_1 5
+# elif NDNBOOST_PP_SLOT_OFFSET_2(NDNBOOST_PP_VALUE) == 6
+#    define NDNBOOST_PP_SLOT_TEMP_1 6
+# elif NDNBOOST_PP_SLOT_OFFSET_2(NDNBOOST_PP_VALUE) == 7
+#    define NDNBOOST_PP_SLOT_TEMP_1 7
+# elif NDNBOOST_PP_SLOT_OFFSET_2(NDNBOOST_PP_VALUE) == 8
+#    define NDNBOOST_PP_SLOT_TEMP_1 8
+# elif NDNBOOST_PP_SLOT_OFFSET_2(NDNBOOST_PP_VALUE) == 9
+#    define NDNBOOST_PP_SLOT_TEMP_1 9
 # endif
 #
-# undef BOOST_PP_VALUE
+# undef NDNBOOST_PP_VALUE
diff --git a/include/ndnboost/preprocessor/slot/detail/slot1.hpp b/include/ndnboost/preprocessor/slot/detail/slot1.hpp
index 686af64..de72726 100644
--- a/include/ndnboost/preprocessor/slot/detail/slot1.hpp
+++ b/include/ndnboost/preprocessor/slot/detail/slot1.hpp
@@ -11,257 +11,257 @@
 #
 # include <ndnboost/preprocessor/slot/detail/shared.hpp>
 #
-# undef BOOST_PP_SLOT_1
+# undef NDNBOOST_PP_SLOT_1
 #
-# undef BOOST_PP_SLOT_1_DIGIT_1
-# undef BOOST_PP_SLOT_1_DIGIT_2
-# undef BOOST_PP_SLOT_1_DIGIT_3
-# undef BOOST_PP_SLOT_1_DIGIT_4
-# undef BOOST_PP_SLOT_1_DIGIT_5
-# undef BOOST_PP_SLOT_1_DIGIT_6
-# undef BOOST_PP_SLOT_1_DIGIT_7
-# undef BOOST_PP_SLOT_1_DIGIT_8
-# undef BOOST_PP_SLOT_1_DIGIT_9
-# undef BOOST_PP_SLOT_1_DIGIT_10
+# undef NDNBOOST_PP_SLOT_1_DIGIT_1
+# undef NDNBOOST_PP_SLOT_1_DIGIT_2
+# undef NDNBOOST_PP_SLOT_1_DIGIT_3
+# undef NDNBOOST_PP_SLOT_1_DIGIT_4
+# undef NDNBOOST_PP_SLOT_1_DIGIT_5
+# undef NDNBOOST_PP_SLOT_1_DIGIT_6
+# undef NDNBOOST_PP_SLOT_1_DIGIT_7
+# undef NDNBOOST_PP_SLOT_1_DIGIT_8
+# undef NDNBOOST_PP_SLOT_1_DIGIT_9
+# undef NDNBOOST_PP_SLOT_1_DIGIT_10
 #
-# if BOOST_PP_SLOT_TEMP_10 == 0
-#    define BOOST_PP_SLOT_1_DIGIT_10 0
-# elif BOOST_PP_SLOT_TEMP_10 == 1
-#    define BOOST_PP_SLOT_1_DIGIT_10 1
-# elif BOOST_PP_SLOT_TEMP_10 == 2
-#    define BOOST_PP_SLOT_1_DIGIT_10 2
-# elif BOOST_PP_SLOT_TEMP_10 == 3
-#    define BOOST_PP_SLOT_1_DIGIT_10 3
-# elif BOOST_PP_SLOT_TEMP_10 == 4
-#    define BOOST_PP_SLOT_1_DIGIT_10 4
-# elif BOOST_PP_SLOT_TEMP_10 == 5
-#    define BOOST_PP_SLOT_1_DIGIT_10 5
-# elif BOOST_PP_SLOT_TEMP_10 == 6
-#    define BOOST_PP_SLOT_1_DIGIT_10 6
-# elif BOOST_PP_SLOT_TEMP_10 == 7
-#    define BOOST_PP_SLOT_1_DIGIT_10 7
-# elif BOOST_PP_SLOT_TEMP_10 == 8
-#    define BOOST_PP_SLOT_1_DIGIT_10 8
-# elif BOOST_PP_SLOT_TEMP_10 == 9
-#    define BOOST_PP_SLOT_1_DIGIT_10 9
+# if NDNBOOST_PP_SLOT_TEMP_10 == 0
+#    define NDNBOOST_PP_SLOT_1_DIGIT_10 0
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 1
+#    define NDNBOOST_PP_SLOT_1_DIGIT_10 1
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 2
+#    define NDNBOOST_PP_SLOT_1_DIGIT_10 2
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 3
+#    define NDNBOOST_PP_SLOT_1_DIGIT_10 3
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 4
+#    define NDNBOOST_PP_SLOT_1_DIGIT_10 4
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 5
+#    define NDNBOOST_PP_SLOT_1_DIGIT_10 5
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 6
+#    define NDNBOOST_PP_SLOT_1_DIGIT_10 6
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 7
+#    define NDNBOOST_PP_SLOT_1_DIGIT_10 7
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 8
+#    define NDNBOOST_PP_SLOT_1_DIGIT_10 8
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 9
+#    define NDNBOOST_PP_SLOT_1_DIGIT_10 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_9 == 0
-#    define BOOST_PP_SLOT_1_DIGIT_9 0
-# elif BOOST_PP_SLOT_TEMP_9 == 1
-#    define BOOST_PP_SLOT_1_DIGIT_9 1
-# elif BOOST_PP_SLOT_TEMP_9 == 2
-#    define BOOST_PP_SLOT_1_DIGIT_9 2
-# elif BOOST_PP_SLOT_TEMP_9 == 3
-#    define BOOST_PP_SLOT_1_DIGIT_9 3
-# elif BOOST_PP_SLOT_TEMP_9 == 4
-#    define BOOST_PP_SLOT_1_DIGIT_9 4
-# elif BOOST_PP_SLOT_TEMP_9 == 5
-#    define BOOST_PP_SLOT_1_DIGIT_9 5
-# elif BOOST_PP_SLOT_TEMP_9 == 6
-#    define BOOST_PP_SLOT_1_DIGIT_9 6
-# elif BOOST_PP_SLOT_TEMP_9 == 7
-#    define BOOST_PP_SLOT_1_DIGIT_9 7
-# elif BOOST_PP_SLOT_TEMP_9 == 8
-#    define BOOST_PP_SLOT_1_DIGIT_9 8
-# elif BOOST_PP_SLOT_TEMP_9 == 9
-#    define BOOST_PP_SLOT_1_DIGIT_9 9
+# if NDNBOOST_PP_SLOT_TEMP_9 == 0
+#    define NDNBOOST_PP_SLOT_1_DIGIT_9 0
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 1
+#    define NDNBOOST_PP_SLOT_1_DIGIT_9 1
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 2
+#    define NDNBOOST_PP_SLOT_1_DIGIT_9 2
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 3
+#    define NDNBOOST_PP_SLOT_1_DIGIT_9 3
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 4
+#    define NDNBOOST_PP_SLOT_1_DIGIT_9 4
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 5
+#    define NDNBOOST_PP_SLOT_1_DIGIT_9 5
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 6
+#    define NDNBOOST_PP_SLOT_1_DIGIT_9 6
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 7
+#    define NDNBOOST_PP_SLOT_1_DIGIT_9 7
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 8
+#    define NDNBOOST_PP_SLOT_1_DIGIT_9 8
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 9
+#    define NDNBOOST_PP_SLOT_1_DIGIT_9 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_8 == 0
-#    define BOOST_PP_SLOT_1_DIGIT_8 0
-# elif BOOST_PP_SLOT_TEMP_8 == 1
-#    define BOOST_PP_SLOT_1_DIGIT_8 1
-# elif BOOST_PP_SLOT_TEMP_8 == 2
-#    define BOOST_PP_SLOT_1_DIGIT_8 2
-# elif BOOST_PP_SLOT_TEMP_8 == 3
-#    define BOOST_PP_SLOT_1_DIGIT_8 3
-# elif BOOST_PP_SLOT_TEMP_8 == 4
-#    define BOOST_PP_SLOT_1_DIGIT_8 4
-# elif BOOST_PP_SLOT_TEMP_8 == 5
-#    define BOOST_PP_SLOT_1_DIGIT_8 5
-# elif BOOST_PP_SLOT_TEMP_8 == 6
-#    define BOOST_PP_SLOT_1_DIGIT_8 6
-# elif BOOST_PP_SLOT_TEMP_8 == 7
-#    define BOOST_PP_SLOT_1_DIGIT_8 7
-# elif BOOST_PP_SLOT_TEMP_8 == 8
-#    define BOOST_PP_SLOT_1_DIGIT_8 8
-# elif BOOST_PP_SLOT_TEMP_8 == 9
-#    define BOOST_PP_SLOT_1_DIGIT_8 9
+# if NDNBOOST_PP_SLOT_TEMP_8 == 0
+#    define NDNBOOST_PP_SLOT_1_DIGIT_8 0
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 1
+#    define NDNBOOST_PP_SLOT_1_DIGIT_8 1
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 2
+#    define NDNBOOST_PP_SLOT_1_DIGIT_8 2
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 3
+#    define NDNBOOST_PP_SLOT_1_DIGIT_8 3
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 4
+#    define NDNBOOST_PP_SLOT_1_DIGIT_8 4
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 5
+#    define NDNBOOST_PP_SLOT_1_DIGIT_8 5
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 6
+#    define NDNBOOST_PP_SLOT_1_DIGIT_8 6
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 7
+#    define NDNBOOST_PP_SLOT_1_DIGIT_8 7
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 8
+#    define NDNBOOST_PP_SLOT_1_DIGIT_8 8
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 9
+#    define NDNBOOST_PP_SLOT_1_DIGIT_8 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_7 == 0
-#    define BOOST_PP_SLOT_1_DIGIT_7 0
-# elif BOOST_PP_SLOT_TEMP_7 == 1
-#    define BOOST_PP_SLOT_1_DIGIT_7 1
-# elif BOOST_PP_SLOT_TEMP_7 == 2
-#    define BOOST_PP_SLOT_1_DIGIT_7 2
-# elif BOOST_PP_SLOT_TEMP_7 == 3
-#    define BOOST_PP_SLOT_1_DIGIT_7 3
-# elif BOOST_PP_SLOT_TEMP_7 == 4
-#    define BOOST_PP_SLOT_1_DIGIT_7 4
-# elif BOOST_PP_SLOT_TEMP_7 == 5
-#    define BOOST_PP_SLOT_1_DIGIT_7 5
-# elif BOOST_PP_SLOT_TEMP_7 == 6
-#    define BOOST_PP_SLOT_1_DIGIT_7 6
-# elif BOOST_PP_SLOT_TEMP_7 == 7
-#    define BOOST_PP_SLOT_1_DIGIT_7 7
-# elif BOOST_PP_SLOT_TEMP_7 == 8
-#    define BOOST_PP_SLOT_1_DIGIT_7 8
-# elif BOOST_PP_SLOT_TEMP_7 == 9
-#    define BOOST_PP_SLOT_1_DIGIT_7 9
+# if NDNBOOST_PP_SLOT_TEMP_7 == 0
+#    define NDNBOOST_PP_SLOT_1_DIGIT_7 0
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 1
+#    define NDNBOOST_PP_SLOT_1_DIGIT_7 1
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 2
+#    define NDNBOOST_PP_SLOT_1_DIGIT_7 2
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 3
+#    define NDNBOOST_PP_SLOT_1_DIGIT_7 3
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 4
+#    define NDNBOOST_PP_SLOT_1_DIGIT_7 4
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 5
+#    define NDNBOOST_PP_SLOT_1_DIGIT_7 5
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 6
+#    define NDNBOOST_PP_SLOT_1_DIGIT_7 6
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 7
+#    define NDNBOOST_PP_SLOT_1_DIGIT_7 7
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 8
+#    define NDNBOOST_PP_SLOT_1_DIGIT_7 8
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 9
+#    define NDNBOOST_PP_SLOT_1_DIGIT_7 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_6 == 0
-#    define BOOST_PP_SLOT_1_DIGIT_6 0
-# elif BOOST_PP_SLOT_TEMP_6 == 1
-#    define BOOST_PP_SLOT_1_DIGIT_6 1
-# elif BOOST_PP_SLOT_TEMP_6 == 2
-#    define BOOST_PP_SLOT_1_DIGIT_6 2
-# elif BOOST_PP_SLOT_TEMP_6 == 3
-#    define BOOST_PP_SLOT_1_DIGIT_6 3
-# elif BOOST_PP_SLOT_TEMP_6 == 4
-#    define BOOST_PP_SLOT_1_DIGIT_6 4
-# elif BOOST_PP_SLOT_TEMP_6 == 5
-#    define BOOST_PP_SLOT_1_DIGIT_6 5
-# elif BOOST_PP_SLOT_TEMP_6 == 6
-#    define BOOST_PP_SLOT_1_DIGIT_6 6
-# elif BOOST_PP_SLOT_TEMP_6 == 7
-#    define BOOST_PP_SLOT_1_DIGIT_6 7
-# elif BOOST_PP_SLOT_TEMP_6 == 8
-#    define BOOST_PP_SLOT_1_DIGIT_6 8
-# elif BOOST_PP_SLOT_TEMP_6 == 9
-#    define BOOST_PP_SLOT_1_DIGIT_6 9
+# if NDNBOOST_PP_SLOT_TEMP_6 == 0
+#    define NDNBOOST_PP_SLOT_1_DIGIT_6 0
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 1
+#    define NDNBOOST_PP_SLOT_1_DIGIT_6 1
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 2
+#    define NDNBOOST_PP_SLOT_1_DIGIT_6 2
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 3
+#    define NDNBOOST_PP_SLOT_1_DIGIT_6 3
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 4
+#    define NDNBOOST_PP_SLOT_1_DIGIT_6 4
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 5
+#    define NDNBOOST_PP_SLOT_1_DIGIT_6 5
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 6
+#    define NDNBOOST_PP_SLOT_1_DIGIT_6 6
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 7
+#    define NDNBOOST_PP_SLOT_1_DIGIT_6 7
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 8
+#    define NDNBOOST_PP_SLOT_1_DIGIT_6 8
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 9
+#    define NDNBOOST_PP_SLOT_1_DIGIT_6 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_5 == 0
-#    define BOOST_PP_SLOT_1_DIGIT_5 0
-# elif BOOST_PP_SLOT_TEMP_5 == 1
-#    define BOOST_PP_SLOT_1_DIGIT_5 1
-# elif BOOST_PP_SLOT_TEMP_5 == 2
-#    define BOOST_PP_SLOT_1_DIGIT_5 2
-# elif BOOST_PP_SLOT_TEMP_5 == 3
-#    define BOOST_PP_SLOT_1_DIGIT_5 3
-# elif BOOST_PP_SLOT_TEMP_5 == 4
-#    define BOOST_PP_SLOT_1_DIGIT_5 4
-# elif BOOST_PP_SLOT_TEMP_5 == 5
-#    define BOOST_PP_SLOT_1_DIGIT_5 5
-# elif BOOST_PP_SLOT_TEMP_5 == 6
-#    define BOOST_PP_SLOT_1_DIGIT_5 6
-# elif BOOST_PP_SLOT_TEMP_5 == 7
-#    define BOOST_PP_SLOT_1_DIGIT_5 7
-# elif BOOST_PP_SLOT_TEMP_5 == 8
-#    define BOOST_PP_SLOT_1_DIGIT_5 8
-# elif BOOST_PP_SLOT_TEMP_5 == 9
-#    define BOOST_PP_SLOT_1_DIGIT_5 9
+# if NDNBOOST_PP_SLOT_TEMP_5 == 0
+#    define NDNBOOST_PP_SLOT_1_DIGIT_5 0
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 1
+#    define NDNBOOST_PP_SLOT_1_DIGIT_5 1
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 2
+#    define NDNBOOST_PP_SLOT_1_DIGIT_5 2
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 3
+#    define NDNBOOST_PP_SLOT_1_DIGIT_5 3
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 4
+#    define NDNBOOST_PP_SLOT_1_DIGIT_5 4
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 5
+#    define NDNBOOST_PP_SLOT_1_DIGIT_5 5
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 6
+#    define NDNBOOST_PP_SLOT_1_DIGIT_5 6
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 7
+#    define NDNBOOST_PP_SLOT_1_DIGIT_5 7
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 8
+#    define NDNBOOST_PP_SLOT_1_DIGIT_5 8
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 9
+#    define NDNBOOST_PP_SLOT_1_DIGIT_5 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_4 == 0
-#    define BOOST_PP_SLOT_1_DIGIT_4 0
-# elif BOOST_PP_SLOT_TEMP_4 == 1
-#    define BOOST_PP_SLOT_1_DIGIT_4 1
-# elif BOOST_PP_SLOT_TEMP_4 == 2
-#    define BOOST_PP_SLOT_1_DIGIT_4 2
-# elif BOOST_PP_SLOT_TEMP_4 == 3
-#    define BOOST_PP_SLOT_1_DIGIT_4 3
-# elif BOOST_PP_SLOT_TEMP_4 == 4
-#    define BOOST_PP_SLOT_1_DIGIT_4 4
-# elif BOOST_PP_SLOT_TEMP_4 == 5
-#    define BOOST_PP_SLOT_1_DIGIT_4 5
-# elif BOOST_PP_SLOT_TEMP_4 == 6
-#    define BOOST_PP_SLOT_1_DIGIT_4 6
-# elif BOOST_PP_SLOT_TEMP_4 == 7
-#    define BOOST_PP_SLOT_1_DIGIT_4 7
-# elif BOOST_PP_SLOT_TEMP_4 == 8
-#    define BOOST_PP_SLOT_1_DIGIT_4 8
-# elif BOOST_PP_SLOT_TEMP_4 == 9
-#    define BOOST_PP_SLOT_1_DIGIT_4 9
+# if NDNBOOST_PP_SLOT_TEMP_4 == 0
+#    define NDNBOOST_PP_SLOT_1_DIGIT_4 0
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 1
+#    define NDNBOOST_PP_SLOT_1_DIGIT_4 1
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 2
+#    define NDNBOOST_PP_SLOT_1_DIGIT_4 2
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 3
+#    define NDNBOOST_PP_SLOT_1_DIGIT_4 3
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 4
+#    define NDNBOOST_PP_SLOT_1_DIGIT_4 4
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 5
+#    define NDNBOOST_PP_SLOT_1_DIGIT_4 5
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 6
+#    define NDNBOOST_PP_SLOT_1_DIGIT_4 6
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 7
+#    define NDNBOOST_PP_SLOT_1_DIGIT_4 7
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 8
+#    define NDNBOOST_PP_SLOT_1_DIGIT_4 8
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 9
+#    define NDNBOOST_PP_SLOT_1_DIGIT_4 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_3 == 0
-#    define BOOST_PP_SLOT_1_DIGIT_3 0
-# elif BOOST_PP_SLOT_TEMP_3 == 1
-#    define BOOST_PP_SLOT_1_DIGIT_3 1
-# elif BOOST_PP_SLOT_TEMP_3 == 2
-#    define BOOST_PP_SLOT_1_DIGIT_3 2
-# elif BOOST_PP_SLOT_TEMP_3 == 3
-#    define BOOST_PP_SLOT_1_DIGIT_3 3
-# elif BOOST_PP_SLOT_TEMP_3 == 4
-#    define BOOST_PP_SLOT_1_DIGIT_3 4
-# elif BOOST_PP_SLOT_TEMP_3 == 5
-#    define BOOST_PP_SLOT_1_DIGIT_3 5
-# elif BOOST_PP_SLOT_TEMP_3 == 6
-#    define BOOST_PP_SLOT_1_DIGIT_3 6
-# elif BOOST_PP_SLOT_TEMP_3 == 7
-#    define BOOST_PP_SLOT_1_DIGIT_3 7
-# elif BOOST_PP_SLOT_TEMP_3 == 8
-#    define BOOST_PP_SLOT_1_DIGIT_3 8
-# elif BOOST_PP_SLOT_TEMP_3 == 9
-#    define BOOST_PP_SLOT_1_DIGIT_3 9
+# if NDNBOOST_PP_SLOT_TEMP_3 == 0
+#    define NDNBOOST_PP_SLOT_1_DIGIT_3 0
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 1
+#    define NDNBOOST_PP_SLOT_1_DIGIT_3 1
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 2
+#    define NDNBOOST_PP_SLOT_1_DIGIT_3 2
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 3
+#    define NDNBOOST_PP_SLOT_1_DIGIT_3 3
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 4
+#    define NDNBOOST_PP_SLOT_1_DIGIT_3 4
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 5
+#    define NDNBOOST_PP_SLOT_1_DIGIT_3 5
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 6
+#    define NDNBOOST_PP_SLOT_1_DIGIT_3 6
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 7
+#    define NDNBOOST_PP_SLOT_1_DIGIT_3 7
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 8
+#    define NDNBOOST_PP_SLOT_1_DIGIT_3 8
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 9
+#    define NDNBOOST_PP_SLOT_1_DIGIT_3 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_2 == 0
-#    define BOOST_PP_SLOT_1_DIGIT_2 0
-# elif BOOST_PP_SLOT_TEMP_2 == 1
-#    define BOOST_PP_SLOT_1_DIGIT_2 1
-# elif BOOST_PP_SLOT_TEMP_2 == 2
-#    define BOOST_PP_SLOT_1_DIGIT_2 2
-# elif BOOST_PP_SLOT_TEMP_2 == 3
-#    define BOOST_PP_SLOT_1_DIGIT_2 3
-# elif BOOST_PP_SLOT_TEMP_2 == 4
-#    define BOOST_PP_SLOT_1_DIGIT_2 4
-# elif BOOST_PP_SLOT_TEMP_2 == 5
-#    define BOOST_PP_SLOT_1_DIGIT_2 5
-# elif BOOST_PP_SLOT_TEMP_2 == 6
-#    define BOOST_PP_SLOT_1_DIGIT_2 6
-# elif BOOST_PP_SLOT_TEMP_2 == 7
-#    define BOOST_PP_SLOT_1_DIGIT_2 7
-# elif BOOST_PP_SLOT_TEMP_2 == 8
-#    define BOOST_PP_SLOT_1_DIGIT_2 8
-# elif BOOST_PP_SLOT_TEMP_2 == 9
-#    define BOOST_PP_SLOT_1_DIGIT_2 9
+# if NDNBOOST_PP_SLOT_TEMP_2 == 0
+#    define NDNBOOST_PP_SLOT_1_DIGIT_2 0
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 1
+#    define NDNBOOST_PP_SLOT_1_DIGIT_2 1
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 2
+#    define NDNBOOST_PP_SLOT_1_DIGIT_2 2
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 3
+#    define NDNBOOST_PP_SLOT_1_DIGIT_2 3
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 4
+#    define NDNBOOST_PP_SLOT_1_DIGIT_2 4
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 5
+#    define NDNBOOST_PP_SLOT_1_DIGIT_2 5
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 6
+#    define NDNBOOST_PP_SLOT_1_DIGIT_2 6
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 7
+#    define NDNBOOST_PP_SLOT_1_DIGIT_2 7
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 8
+#    define NDNBOOST_PP_SLOT_1_DIGIT_2 8
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 9
+#    define NDNBOOST_PP_SLOT_1_DIGIT_2 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_1 == 0
-#    define BOOST_PP_SLOT_1_DIGIT_1 0
-# elif BOOST_PP_SLOT_TEMP_1 == 1
-#    define BOOST_PP_SLOT_1_DIGIT_1 1
-# elif BOOST_PP_SLOT_TEMP_1 == 2
-#    define BOOST_PP_SLOT_1_DIGIT_1 2
-# elif BOOST_PP_SLOT_TEMP_1 == 3
-#    define BOOST_PP_SLOT_1_DIGIT_1 3
-# elif BOOST_PP_SLOT_TEMP_1 == 4
-#    define BOOST_PP_SLOT_1_DIGIT_1 4
-# elif BOOST_PP_SLOT_TEMP_1 == 5
-#    define BOOST_PP_SLOT_1_DIGIT_1 5
-# elif BOOST_PP_SLOT_TEMP_1 == 6
-#    define BOOST_PP_SLOT_1_DIGIT_1 6
-# elif BOOST_PP_SLOT_TEMP_1 == 7
-#    define BOOST_PP_SLOT_1_DIGIT_1 7
-# elif BOOST_PP_SLOT_TEMP_1 == 8
-#    define BOOST_PP_SLOT_1_DIGIT_1 8
-# elif BOOST_PP_SLOT_TEMP_1 == 9
-#    define BOOST_PP_SLOT_1_DIGIT_1 9
+# if NDNBOOST_PP_SLOT_TEMP_1 == 0
+#    define NDNBOOST_PP_SLOT_1_DIGIT_1 0
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 1
+#    define NDNBOOST_PP_SLOT_1_DIGIT_1 1
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 2
+#    define NDNBOOST_PP_SLOT_1_DIGIT_1 2
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 3
+#    define NDNBOOST_PP_SLOT_1_DIGIT_1 3
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 4
+#    define NDNBOOST_PP_SLOT_1_DIGIT_1 4
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 5
+#    define NDNBOOST_PP_SLOT_1_DIGIT_1 5
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 6
+#    define NDNBOOST_PP_SLOT_1_DIGIT_1 6
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 7
+#    define NDNBOOST_PP_SLOT_1_DIGIT_1 7
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 8
+#    define NDNBOOST_PP_SLOT_1_DIGIT_1 8
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 9
+#    define NDNBOOST_PP_SLOT_1_DIGIT_1 9
 # endif
 #
-# if BOOST_PP_SLOT_1_DIGIT_10
-#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_10(BOOST_PP_SLOT_1_DIGIT_10, BOOST_PP_SLOT_1_DIGIT_9, BOOST_PP_SLOT_1_DIGIT_8, BOOST_PP_SLOT_1_DIGIT_7, BOOST_PP_SLOT_1_DIGIT_6, BOOST_PP_SLOT_1_DIGIT_5, BOOST_PP_SLOT_1_DIGIT_4, BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)
-# elif BOOST_PP_SLOT_1_DIGIT_9
-#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_9(BOOST_PP_SLOT_1_DIGIT_9, BOOST_PP_SLOT_1_DIGIT_8, BOOST_PP_SLOT_1_DIGIT_7, BOOST_PP_SLOT_1_DIGIT_6, BOOST_PP_SLOT_1_DIGIT_5, BOOST_PP_SLOT_1_DIGIT_4, BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)
-# elif BOOST_PP_SLOT_1_DIGIT_8
-#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_8(BOOST_PP_SLOT_1_DIGIT_8, BOOST_PP_SLOT_1_DIGIT_7, BOOST_PP_SLOT_1_DIGIT_6, BOOST_PP_SLOT_1_DIGIT_5, BOOST_PP_SLOT_1_DIGIT_4, BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)
-# elif BOOST_PP_SLOT_1_DIGIT_7
-#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_7(BOOST_PP_SLOT_1_DIGIT_7, BOOST_PP_SLOT_1_DIGIT_6, BOOST_PP_SLOT_1_DIGIT_5, BOOST_PP_SLOT_1_DIGIT_4, BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)
-# elif BOOST_PP_SLOT_1_DIGIT_6
-#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_6(BOOST_PP_SLOT_1_DIGIT_6, BOOST_PP_SLOT_1_DIGIT_5, BOOST_PP_SLOT_1_DIGIT_4, BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)
-# elif BOOST_PP_SLOT_1_DIGIT_5
-#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_5(BOOST_PP_SLOT_1_DIGIT_5, BOOST_PP_SLOT_1_DIGIT_4, BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)
-# elif BOOST_PP_SLOT_1_DIGIT_4
-#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_4(BOOST_PP_SLOT_1_DIGIT_4, BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)
-# elif BOOST_PP_SLOT_1_DIGIT_3
-#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_3(BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)
-# elif BOOST_PP_SLOT_1_DIGIT_2
-#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_2(BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)
+# if NDNBOOST_PP_SLOT_1_DIGIT_10
+#    define NDNBOOST_PP_SLOT_1() NDNBOOST_PP_SLOT_CC_10(NDNBOOST_PP_SLOT_1_DIGIT_10, NDNBOOST_PP_SLOT_1_DIGIT_9, NDNBOOST_PP_SLOT_1_DIGIT_8, NDNBOOST_PP_SLOT_1_DIGIT_7, NDNBOOST_PP_SLOT_1_DIGIT_6, NDNBOOST_PP_SLOT_1_DIGIT_5, NDNBOOST_PP_SLOT_1_DIGIT_4, NDNBOOST_PP_SLOT_1_DIGIT_3, NDNBOOST_PP_SLOT_1_DIGIT_2, NDNBOOST_PP_SLOT_1_DIGIT_1)
+# elif NDNBOOST_PP_SLOT_1_DIGIT_9
+#    define NDNBOOST_PP_SLOT_1() NDNBOOST_PP_SLOT_CC_9(NDNBOOST_PP_SLOT_1_DIGIT_9, NDNBOOST_PP_SLOT_1_DIGIT_8, NDNBOOST_PP_SLOT_1_DIGIT_7, NDNBOOST_PP_SLOT_1_DIGIT_6, NDNBOOST_PP_SLOT_1_DIGIT_5, NDNBOOST_PP_SLOT_1_DIGIT_4, NDNBOOST_PP_SLOT_1_DIGIT_3, NDNBOOST_PP_SLOT_1_DIGIT_2, NDNBOOST_PP_SLOT_1_DIGIT_1)
+# elif NDNBOOST_PP_SLOT_1_DIGIT_8
+#    define NDNBOOST_PP_SLOT_1() NDNBOOST_PP_SLOT_CC_8(NDNBOOST_PP_SLOT_1_DIGIT_8, NDNBOOST_PP_SLOT_1_DIGIT_7, NDNBOOST_PP_SLOT_1_DIGIT_6, NDNBOOST_PP_SLOT_1_DIGIT_5, NDNBOOST_PP_SLOT_1_DIGIT_4, NDNBOOST_PP_SLOT_1_DIGIT_3, NDNBOOST_PP_SLOT_1_DIGIT_2, NDNBOOST_PP_SLOT_1_DIGIT_1)
+# elif NDNBOOST_PP_SLOT_1_DIGIT_7
+#    define NDNBOOST_PP_SLOT_1() NDNBOOST_PP_SLOT_CC_7(NDNBOOST_PP_SLOT_1_DIGIT_7, NDNBOOST_PP_SLOT_1_DIGIT_6, NDNBOOST_PP_SLOT_1_DIGIT_5, NDNBOOST_PP_SLOT_1_DIGIT_4, NDNBOOST_PP_SLOT_1_DIGIT_3, NDNBOOST_PP_SLOT_1_DIGIT_2, NDNBOOST_PP_SLOT_1_DIGIT_1)
+# elif NDNBOOST_PP_SLOT_1_DIGIT_6
+#    define NDNBOOST_PP_SLOT_1() NDNBOOST_PP_SLOT_CC_6(NDNBOOST_PP_SLOT_1_DIGIT_6, NDNBOOST_PP_SLOT_1_DIGIT_5, NDNBOOST_PP_SLOT_1_DIGIT_4, NDNBOOST_PP_SLOT_1_DIGIT_3, NDNBOOST_PP_SLOT_1_DIGIT_2, NDNBOOST_PP_SLOT_1_DIGIT_1)
+# elif NDNBOOST_PP_SLOT_1_DIGIT_5
+#    define NDNBOOST_PP_SLOT_1() NDNBOOST_PP_SLOT_CC_5(NDNBOOST_PP_SLOT_1_DIGIT_5, NDNBOOST_PP_SLOT_1_DIGIT_4, NDNBOOST_PP_SLOT_1_DIGIT_3, NDNBOOST_PP_SLOT_1_DIGIT_2, NDNBOOST_PP_SLOT_1_DIGIT_1)
+# elif NDNBOOST_PP_SLOT_1_DIGIT_4
+#    define NDNBOOST_PP_SLOT_1() NDNBOOST_PP_SLOT_CC_4(NDNBOOST_PP_SLOT_1_DIGIT_4, NDNBOOST_PP_SLOT_1_DIGIT_3, NDNBOOST_PP_SLOT_1_DIGIT_2, NDNBOOST_PP_SLOT_1_DIGIT_1)
+# elif NDNBOOST_PP_SLOT_1_DIGIT_3
+#    define NDNBOOST_PP_SLOT_1() NDNBOOST_PP_SLOT_CC_3(NDNBOOST_PP_SLOT_1_DIGIT_3, NDNBOOST_PP_SLOT_1_DIGIT_2, NDNBOOST_PP_SLOT_1_DIGIT_1)
+# elif NDNBOOST_PP_SLOT_1_DIGIT_2
+#    define NDNBOOST_PP_SLOT_1() NDNBOOST_PP_SLOT_CC_2(NDNBOOST_PP_SLOT_1_DIGIT_2, NDNBOOST_PP_SLOT_1_DIGIT_1)
 # else
-#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_1_DIGIT_1
+#    define NDNBOOST_PP_SLOT_1() NDNBOOST_PP_SLOT_1_DIGIT_1
 # endif
diff --git a/include/ndnboost/preprocessor/slot/detail/slot2.hpp b/include/ndnboost/preprocessor/slot/detail/slot2.hpp
index 3df9b4f..849997d 100644
--- a/include/ndnboost/preprocessor/slot/detail/slot2.hpp
+++ b/include/ndnboost/preprocessor/slot/detail/slot2.hpp
@@ -11,257 +11,257 @@
 #
 # include <ndnboost/preprocessor/slot/detail/shared.hpp>
 #
-# undef BOOST_PP_SLOT_2
+# undef NDNBOOST_PP_SLOT_2
 #
-# undef BOOST_PP_SLOT_2_DIGIT_1
-# undef BOOST_PP_SLOT_2_DIGIT_2
-# undef BOOST_PP_SLOT_2_DIGIT_3
-# undef BOOST_PP_SLOT_2_DIGIT_4
-# undef BOOST_PP_SLOT_2_DIGIT_5
-# undef BOOST_PP_SLOT_2_DIGIT_6
-# undef BOOST_PP_SLOT_2_DIGIT_7
-# undef BOOST_PP_SLOT_2_DIGIT_8
-# undef BOOST_PP_SLOT_2_DIGIT_9
-# undef BOOST_PP_SLOT_2_DIGIT_10
+# undef NDNBOOST_PP_SLOT_2_DIGIT_1
+# undef NDNBOOST_PP_SLOT_2_DIGIT_2
+# undef NDNBOOST_PP_SLOT_2_DIGIT_3
+# undef NDNBOOST_PP_SLOT_2_DIGIT_4
+# undef NDNBOOST_PP_SLOT_2_DIGIT_5
+# undef NDNBOOST_PP_SLOT_2_DIGIT_6
+# undef NDNBOOST_PP_SLOT_2_DIGIT_7
+# undef NDNBOOST_PP_SLOT_2_DIGIT_8
+# undef NDNBOOST_PP_SLOT_2_DIGIT_9
+# undef NDNBOOST_PP_SLOT_2_DIGIT_10
 #
-# if BOOST_PP_SLOT_TEMP_10 == 0
-#    define BOOST_PP_SLOT_2_DIGIT_10 0
-# elif BOOST_PP_SLOT_TEMP_10 == 1
-#    define BOOST_PP_SLOT_2_DIGIT_10 1
-# elif BOOST_PP_SLOT_TEMP_10 == 2
-#    define BOOST_PP_SLOT_2_DIGIT_10 2
-# elif BOOST_PP_SLOT_TEMP_10 == 3
-#    define BOOST_PP_SLOT_2_DIGIT_10 3
-# elif BOOST_PP_SLOT_TEMP_10 == 4
-#    define BOOST_PP_SLOT_2_DIGIT_10 4
-# elif BOOST_PP_SLOT_TEMP_10 == 5
-#    define BOOST_PP_SLOT_2_DIGIT_10 5
-# elif BOOST_PP_SLOT_TEMP_10 == 6
-#    define BOOST_PP_SLOT_2_DIGIT_10 6
-# elif BOOST_PP_SLOT_TEMP_10 == 7
-#    define BOOST_PP_SLOT_2_DIGIT_10 7
-# elif BOOST_PP_SLOT_TEMP_10 == 8
-#    define BOOST_PP_SLOT_2_DIGIT_10 8
-# elif BOOST_PP_SLOT_TEMP_10 == 9
-#    define BOOST_PP_SLOT_2_DIGIT_10 9
+# if NDNBOOST_PP_SLOT_TEMP_10 == 0
+#    define NDNBOOST_PP_SLOT_2_DIGIT_10 0
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 1
+#    define NDNBOOST_PP_SLOT_2_DIGIT_10 1
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 2
+#    define NDNBOOST_PP_SLOT_2_DIGIT_10 2
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 3
+#    define NDNBOOST_PP_SLOT_2_DIGIT_10 3
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 4
+#    define NDNBOOST_PP_SLOT_2_DIGIT_10 4
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 5
+#    define NDNBOOST_PP_SLOT_2_DIGIT_10 5
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 6
+#    define NDNBOOST_PP_SLOT_2_DIGIT_10 6
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 7
+#    define NDNBOOST_PP_SLOT_2_DIGIT_10 7
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 8
+#    define NDNBOOST_PP_SLOT_2_DIGIT_10 8
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 9
+#    define NDNBOOST_PP_SLOT_2_DIGIT_10 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_9 == 0
-#    define BOOST_PP_SLOT_2_DIGIT_9 0
-# elif BOOST_PP_SLOT_TEMP_9 == 1
-#    define BOOST_PP_SLOT_2_DIGIT_9 1
-# elif BOOST_PP_SLOT_TEMP_9 == 2
-#    define BOOST_PP_SLOT_2_DIGIT_9 2
-# elif BOOST_PP_SLOT_TEMP_9 == 3
-#    define BOOST_PP_SLOT_2_DIGIT_9 3
-# elif BOOST_PP_SLOT_TEMP_9 == 4
-#    define BOOST_PP_SLOT_2_DIGIT_9 4
-# elif BOOST_PP_SLOT_TEMP_9 == 5
-#    define BOOST_PP_SLOT_2_DIGIT_9 5
-# elif BOOST_PP_SLOT_TEMP_9 == 6
-#    define BOOST_PP_SLOT_2_DIGIT_9 6
-# elif BOOST_PP_SLOT_TEMP_9 == 7
-#    define BOOST_PP_SLOT_2_DIGIT_9 7
-# elif BOOST_PP_SLOT_TEMP_9 == 8
-#    define BOOST_PP_SLOT_2_DIGIT_9 8
-# elif BOOST_PP_SLOT_TEMP_9 == 9
-#    define BOOST_PP_SLOT_2_DIGIT_9 9
+# if NDNBOOST_PP_SLOT_TEMP_9 == 0
+#    define NDNBOOST_PP_SLOT_2_DIGIT_9 0
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 1
+#    define NDNBOOST_PP_SLOT_2_DIGIT_9 1
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 2
+#    define NDNBOOST_PP_SLOT_2_DIGIT_9 2
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 3
+#    define NDNBOOST_PP_SLOT_2_DIGIT_9 3
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 4
+#    define NDNBOOST_PP_SLOT_2_DIGIT_9 4
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 5
+#    define NDNBOOST_PP_SLOT_2_DIGIT_9 5
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 6
+#    define NDNBOOST_PP_SLOT_2_DIGIT_9 6
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 7
+#    define NDNBOOST_PP_SLOT_2_DIGIT_9 7
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 8
+#    define NDNBOOST_PP_SLOT_2_DIGIT_9 8
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 9
+#    define NDNBOOST_PP_SLOT_2_DIGIT_9 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_8 == 0
-#    define BOOST_PP_SLOT_2_DIGIT_8 0
-# elif BOOST_PP_SLOT_TEMP_8 == 1
-#    define BOOST_PP_SLOT_2_DIGIT_8 1
-# elif BOOST_PP_SLOT_TEMP_8 == 2
-#    define BOOST_PP_SLOT_2_DIGIT_8 2
-# elif BOOST_PP_SLOT_TEMP_8 == 3
-#    define BOOST_PP_SLOT_2_DIGIT_8 3
-# elif BOOST_PP_SLOT_TEMP_8 == 4
-#    define BOOST_PP_SLOT_2_DIGIT_8 4
-# elif BOOST_PP_SLOT_TEMP_8 == 5
-#    define BOOST_PP_SLOT_2_DIGIT_8 5
-# elif BOOST_PP_SLOT_TEMP_8 == 6
-#    define BOOST_PP_SLOT_2_DIGIT_8 6
-# elif BOOST_PP_SLOT_TEMP_8 == 7
-#    define BOOST_PP_SLOT_2_DIGIT_8 7
-# elif BOOST_PP_SLOT_TEMP_8 == 8
-#    define BOOST_PP_SLOT_2_DIGIT_8 8
-# elif BOOST_PP_SLOT_TEMP_8 == 9
-#    define BOOST_PP_SLOT_2_DIGIT_8 9
+# if NDNBOOST_PP_SLOT_TEMP_8 == 0
+#    define NDNBOOST_PP_SLOT_2_DIGIT_8 0
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 1
+#    define NDNBOOST_PP_SLOT_2_DIGIT_8 1
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 2
+#    define NDNBOOST_PP_SLOT_2_DIGIT_8 2
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 3
+#    define NDNBOOST_PP_SLOT_2_DIGIT_8 3
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 4
+#    define NDNBOOST_PP_SLOT_2_DIGIT_8 4
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 5
+#    define NDNBOOST_PP_SLOT_2_DIGIT_8 5
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 6
+#    define NDNBOOST_PP_SLOT_2_DIGIT_8 6
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 7
+#    define NDNBOOST_PP_SLOT_2_DIGIT_8 7
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 8
+#    define NDNBOOST_PP_SLOT_2_DIGIT_8 8
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 9
+#    define NDNBOOST_PP_SLOT_2_DIGIT_8 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_7 == 0
-#    define BOOST_PP_SLOT_2_DIGIT_7 0
-# elif BOOST_PP_SLOT_TEMP_7 == 1
-#    define BOOST_PP_SLOT_2_DIGIT_7 1
-# elif BOOST_PP_SLOT_TEMP_7 == 2
-#    define BOOST_PP_SLOT_2_DIGIT_7 2
-# elif BOOST_PP_SLOT_TEMP_7 == 3
-#    define BOOST_PP_SLOT_2_DIGIT_7 3
-# elif BOOST_PP_SLOT_TEMP_7 == 4
-#    define BOOST_PP_SLOT_2_DIGIT_7 4
-# elif BOOST_PP_SLOT_TEMP_7 == 5
-#    define BOOST_PP_SLOT_2_DIGIT_7 5
-# elif BOOST_PP_SLOT_TEMP_7 == 6
-#    define BOOST_PP_SLOT_2_DIGIT_7 6
-# elif BOOST_PP_SLOT_TEMP_7 == 7
-#    define BOOST_PP_SLOT_2_DIGIT_7 7
-# elif BOOST_PP_SLOT_TEMP_7 == 8
-#    define BOOST_PP_SLOT_2_DIGIT_7 8
-# elif BOOST_PP_SLOT_TEMP_7 == 9
-#    define BOOST_PP_SLOT_2_DIGIT_7 9
+# if NDNBOOST_PP_SLOT_TEMP_7 == 0
+#    define NDNBOOST_PP_SLOT_2_DIGIT_7 0
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 1
+#    define NDNBOOST_PP_SLOT_2_DIGIT_7 1
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 2
+#    define NDNBOOST_PP_SLOT_2_DIGIT_7 2
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 3
+#    define NDNBOOST_PP_SLOT_2_DIGIT_7 3
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 4
+#    define NDNBOOST_PP_SLOT_2_DIGIT_7 4
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 5
+#    define NDNBOOST_PP_SLOT_2_DIGIT_7 5
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 6
+#    define NDNBOOST_PP_SLOT_2_DIGIT_7 6
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 7
+#    define NDNBOOST_PP_SLOT_2_DIGIT_7 7
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 8
+#    define NDNBOOST_PP_SLOT_2_DIGIT_7 8
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 9
+#    define NDNBOOST_PP_SLOT_2_DIGIT_7 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_6 == 0
-#    define BOOST_PP_SLOT_2_DIGIT_6 0
-# elif BOOST_PP_SLOT_TEMP_6 == 1
-#    define BOOST_PP_SLOT_2_DIGIT_6 1
-# elif BOOST_PP_SLOT_TEMP_6 == 2
-#    define BOOST_PP_SLOT_2_DIGIT_6 2
-# elif BOOST_PP_SLOT_TEMP_6 == 3
-#    define BOOST_PP_SLOT_2_DIGIT_6 3
-# elif BOOST_PP_SLOT_TEMP_6 == 4
-#    define BOOST_PP_SLOT_2_DIGIT_6 4
-# elif BOOST_PP_SLOT_TEMP_6 == 5
-#    define BOOST_PP_SLOT_2_DIGIT_6 5
-# elif BOOST_PP_SLOT_TEMP_6 == 6
-#    define BOOST_PP_SLOT_2_DIGIT_6 6
-# elif BOOST_PP_SLOT_TEMP_6 == 7
-#    define BOOST_PP_SLOT_2_DIGIT_6 7
-# elif BOOST_PP_SLOT_TEMP_6 == 8
-#    define BOOST_PP_SLOT_2_DIGIT_6 8
-# elif BOOST_PP_SLOT_TEMP_6 == 9
-#    define BOOST_PP_SLOT_2_DIGIT_6 9
+# if NDNBOOST_PP_SLOT_TEMP_6 == 0
+#    define NDNBOOST_PP_SLOT_2_DIGIT_6 0
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 1
+#    define NDNBOOST_PP_SLOT_2_DIGIT_6 1
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 2
+#    define NDNBOOST_PP_SLOT_2_DIGIT_6 2
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 3
+#    define NDNBOOST_PP_SLOT_2_DIGIT_6 3
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 4
+#    define NDNBOOST_PP_SLOT_2_DIGIT_6 4
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 5
+#    define NDNBOOST_PP_SLOT_2_DIGIT_6 5
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 6
+#    define NDNBOOST_PP_SLOT_2_DIGIT_6 6
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 7
+#    define NDNBOOST_PP_SLOT_2_DIGIT_6 7
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 8
+#    define NDNBOOST_PP_SLOT_2_DIGIT_6 8
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 9
+#    define NDNBOOST_PP_SLOT_2_DIGIT_6 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_5 == 0
-#    define BOOST_PP_SLOT_2_DIGIT_5 0
-# elif BOOST_PP_SLOT_TEMP_5 == 1
-#    define BOOST_PP_SLOT_2_DIGIT_5 1
-# elif BOOST_PP_SLOT_TEMP_5 == 2
-#    define BOOST_PP_SLOT_2_DIGIT_5 2
-# elif BOOST_PP_SLOT_TEMP_5 == 3
-#    define BOOST_PP_SLOT_2_DIGIT_5 3
-# elif BOOST_PP_SLOT_TEMP_5 == 4
-#    define BOOST_PP_SLOT_2_DIGIT_5 4
-# elif BOOST_PP_SLOT_TEMP_5 == 5
-#    define BOOST_PP_SLOT_2_DIGIT_5 5
-# elif BOOST_PP_SLOT_TEMP_5 == 6
-#    define BOOST_PP_SLOT_2_DIGIT_5 6
-# elif BOOST_PP_SLOT_TEMP_5 == 7
-#    define BOOST_PP_SLOT_2_DIGIT_5 7
-# elif BOOST_PP_SLOT_TEMP_5 == 8
-#    define BOOST_PP_SLOT_2_DIGIT_5 8
-# elif BOOST_PP_SLOT_TEMP_5 == 9
-#    define BOOST_PP_SLOT_2_DIGIT_5 9
+# if NDNBOOST_PP_SLOT_TEMP_5 == 0
+#    define NDNBOOST_PP_SLOT_2_DIGIT_5 0
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 1
+#    define NDNBOOST_PP_SLOT_2_DIGIT_5 1
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 2
+#    define NDNBOOST_PP_SLOT_2_DIGIT_5 2
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 3
+#    define NDNBOOST_PP_SLOT_2_DIGIT_5 3
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 4
+#    define NDNBOOST_PP_SLOT_2_DIGIT_5 4
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 5
+#    define NDNBOOST_PP_SLOT_2_DIGIT_5 5
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 6
+#    define NDNBOOST_PP_SLOT_2_DIGIT_5 6
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 7
+#    define NDNBOOST_PP_SLOT_2_DIGIT_5 7
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 8
+#    define NDNBOOST_PP_SLOT_2_DIGIT_5 8
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 9
+#    define NDNBOOST_PP_SLOT_2_DIGIT_5 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_4 == 0
-#    define BOOST_PP_SLOT_2_DIGIT_4 0
-# elif BOOST_PP_SLOT_TEMP_4 == 1
-#    define BOOST_PP_SLOT_2_DIGIT_4 1
-# elif BOOST_PP_SLOT_TEMP_4 == 2
-#    define BOOST_PP_SLOT_2_DIGIT_4 2
-# elif BOOST_PP_SLOT_TEMP_4 == 3
-#    define BOOST_PP_SLOT_2_DIGIT_4 3
-# elif BOOST_PP_SLOT_TEMP_4 == 4
-#    define BOOST_PP_SLOT_2_DIGIT_4 4
-# elif BOOST_PP_SLOT_TEMP_4 == 5
-#    define BOOST_PP_SLOT_2_DIGIT_4 5
-# elif BOOST_PP_SLOT_TEMP_4 == 6
-#    define BOOST_PP_SLOT_2_DIGIT_4 6
-# elif BOOST_PP_SLOT_TEMP_4 == 7
-#    define BOOST_PP_SLOT_2_DIGIT_4 7
-# elif BOOST_PP_SLOT_TEMP_4 == 8
-#    define BOOST_PP_SLOT_2_DIGIT_4 8
-# elif BOOST_PP_SLOT_TEMP_4 == 9
-#    define BOOST_PP_SLOT_2_DIGIT_4 9
+# if NDNBOOST_PP_SLOT_TEMP_4 == 0
+#    define NDNBOOST_PP_SLOT_2_DIGIT_4 0
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 1
+#    define NDNBOOST_PP_SLOT_2_DIGIT_4 1
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 2
+#    define NDNBOOST_PP_SLOT_2_DIGIT_4 2
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 3
+#    define NDNBOOST_PP_SLOT_2_DIGIT_4 3
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 4
+#    define NDNBOOST_PP_SLOT_2_DIGIT_4 4
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 5
+#    define NDNBOOST_PP_SLOT_2_DIGIT_4 5
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 6
+#    define NDNBOOST_PP_SLOT_2_DIGIT_4 6
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 7
+#    define NDNBOOST_PP_SLOT_2_DIGIT_4 7
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 8
+#    define NDNBOOST_PP_SLOT_2_DIGIT_4 8
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 9
+#    define NDNBOOST_PP_SLOT_2_DIGIT_4 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_3 == 0
-#    define BOOST_PP_SLOT_2_DIGIT_3 0
-# elif BOOST_PP_SLOT_TEMP_3 == 1
-#    define BOOST_PP_SLOT_2_DIGIT_3 1
-# elif BOOST_PP_SLOT_TEMP_3 == 2
-#    define BOOST_PP_SLOT_2_DIGIT_3 2
-# elif BOOST_PP_SLOT_TEMP_3 == 3
-#    define BOOST_PP_SLOT_2_DIGIT_3 3
-# elif BOOST_PP_SLOT_TEMP_3 == 4
-#    define BOOST_PP_SLOT_2_DIGIT_3 4
-# elif BOOST_PP_SLOT_TEMP_3 == 5
-#    define BOOST_PP_SLOT_2_DIGIT_3 5
-# elif BOOST_PP_SLOT_TEMP_3 == 6
-#    define BOOST_PP_SLOT_2_DIGIT_3 6
-# elif BOOST_PP_SLOT_TEMP_3 == 7
-#    define BOOST_PP_SLOT_2_DIGIT_3 7
-# elif BOOST_PP_SLOT_TEMP_3 == 8
-#    define BOOST_PP_SLOT_2_DIGIT_3 8
-# elif BOOST_PP_SLOT_TEMP_3 == 9
-#    define BOOST_PP_SLOT_2_DIGIT_3 9
+# if NDNBOOST_PP_SLOT_TEMP_3 == 0
+#    define NDNBOOST_PP_SLOT_2_DIGIT_3 0
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 1
+#    define NDNBOOST_PP_SLOT_2_DIGIT_3 1
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 2
+#    define NDNBOOST_PP_SLOT_2_DIGIT_3 2
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 3
+#    define NDNBOOST_PP_SLOT_2_DIGIT_3 3
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 4
+#    define NDNBOOST_PP_SLOT_2_DIGIT_3 4
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 5
+#    define NDNBOOST_PP_SLOT_2_DIGIT_3 5
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 6
+#    define NDNBOOST_PP_SLOT_2_DIGIT_3 6
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 7
+#    define NDNBOOST_PP_SLOT_2_DIGIT_3 7
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 8
+#    define NDNBOOST_PP_SLOT_2_DIGIT_3 8
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 9
+#    define NDNBOOST_PP_SLOT_2_DIGIT_3 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_2 == 0
-#    define BOOST_PP_SLOT_2_DIGIT_2 0
-# elif BOOST_PP_SLOT_TEMP_2 == 1
-#    define BOOST_PP_SLOT_2_DIGIT_2 1
-# elif BOOST_PP_SLOT_TEMP_2 == 2
-#    define BOOST_PP_SLOT_2_DIGIT_2 2
-# elif BOOST_PP_SLOT_TEMP_2 == 3
-#    define BOOST_PP_SLOT_2_DIGIT_2 3
-# elif BOOST_PP_SLOT_TEMP_2 == 4
-#    define BOOST_PP_SLOT_2_DIGIT_2 4
-# elif BOOST_PP_SLOT_TEMP_2 == 5
-#    define BOOST_PP_SLOT_2_DIGIT_2 5
-# elif BOOST_PP_SLOT_TEMP_2 == 6
-#    define BOOST_PP_SLOT_2_DIGIT_2 6
-# elif BOOST_PP_SLOT_TEMP_2 == 7
-#    define BOOST_PP_SLOT_2_DIGIT_2 7
-# elif BOOST_PP_SLOT_TEMP_2 == 8
-#    define BOOST_PP_SLOT_2_DIGIT_2 8
-# elif BOOST_PP_SLOT_TEMP_2 == 9
-#    define BOOST_PP_SLOT_2_DIGIT_2 9
+# if NDNBOOST_PP_SLOT_TEMP_2 == 0
+#    define NDNBOOST_PP_SLOT_2_DIGIT_2 0
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 1
+#    define NDNBOOST_PP_SLOT_2_DIGIT_2 1
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 2
+#    define NDNBOOST_PP_SLOT_2_DIGIT_2 2
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 3
+#    define NDNBOOST_PP_SLOT_2_DIGIT_2 3
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 4
+#    define NDNBOOST_PP_SLOT_2_DIGIT_2 4
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 5
+#    define NDNBOOST_PP_SLOT_2_DIGIT_2 5
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 6
+#    define NDNBOOST_PP_SLOT_2_DIGIT_2 6
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 7
+#    define NDNBOOST_PP_SLOT_2_DIGIT_2 7
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 8
+#    define NDNBOOST_PP_SLOT_2_DIGIT_2 8
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 9
+#    define NDNBOOST_PP_SLOT_2_DIGIT_2 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_1 == 0
-#    define BOOST_PP_SLOT_2_DIGIT_1 0
-# elif BOOST_PP_SLOT_TEMP_1 == 1
-#    define BOOST_PP_SLOT_2_DIGIT_1 1
-# elif BOOST_PP_SLOT_TEMP_1 == 2
-#    define BOOST_PP_SLOT_2_DIGIT_1 2
-# elif BOOST_PP_SLOT_TEMP_1 == 3
-#    define BOOST_PP_SLOT_2_DIGIT_1 3
-# elif BOOST_PP_SLOT_TEMP_1 == 4
-#    define BOOST_PP_SLOT_2_DIGIT_1 4
-# elif BOOST_PP_SLOT_TEMP_1 == 5
-#    define BOOST_PP_SLOT_2_DIGIT_1 5
-# elif BOOST_PP_SLOT_TEMP_1 == 6
-#    define BOOST_PP_SLOT_2_DIGIT_1 6
-# elif BOOST_PP_SLOT_TEMP_1 == 7
-#    define BOOST_PP_SLOT_2_DIGIT_1 7
-# elif BOOST_PP_SLOT_TEMP_1 == 8
-#    define BOOST_PP_SLOT_2_DIGIT_1 8
-# elif BOOST_PP_SLOT_TEMP_1 == 9
-#    define BOOST_PP_SLOT_2_DIGIT_1 9
+# if NDNBOOST_PP_SLOT_TEMP_1 == 0
+#    define NDNBOOST_PP_SLOT_2_DIGIT_1 0
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 1
+#    define NDNBOOST_PP_SLOT_2_DIGIT_1 1
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 2
+#    define NDNBOOST_PP_SLOT_2_DIGIT_1 2
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 3
+#    define NDNBOOST_PP_SLOT_2_DIGIT_1 3
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 4
+#    define NDNBOOST_PP_SLOT_2_DIGIT_1 4
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 5
+#    define NDNBOOST_PP_SLOT_2_DIGIT_1 5
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 6
+#    define NDNBOOST_PP_SLOT_2_DIGIT_1 6
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 7
+#    define NDNBOOST_PP_SLOT_2_DIGIT_1 7
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 8
+#    define NDNBOOST_PP_SLOT_2_DIGIT_1 8
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 9
+#    define NDNBOOST_PP_SLOT_2_DIGIT_1 9
 # endif
 #
-# if BOOST_PP_SLOT_2_DIGIT_10
-#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_10(BOOST_PP_SLOT_2_DIGIT_10, BOOST_PP_SLOT_2_DIGIT_9, BOOST_PP_SLOT_2_DIGIT_8, BOOST_PP_SLOT_2_DIGIT_7, BOOST_PP_SLOT_2_DIGIT_6, BOOST_PP_SLOT_2_DIGIT_5, BOOST_PP_SLOT_2_DIGIT_4, BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)
-# elif BOOST_PP_SLOT_2_DIGIT_9
-#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_9(BOOST_PP_SLOT_2_DIGIT_9, BOOST_PP_SLOT_2_DIGIT_8, BOOST_PP_SLOT_2_DIGIT_7, BOOST_PP_SLOT_2_DIGIT_6, BOOST_PP_SLOT_2_DIGIT_5, BOOST_PP_SLOT_2_DIGIT_4, BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)
-# elif BOOST_PP_SLOT_2_DIGIT_8
-#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_8(BOOST_PP_SLOT_2_DIGIT_8, BOOST_PP_SLOT_2_DIGIT_7, BOOST_PP_SLOT_2_DIGIT_6, BOOST_PP_SLOT_2_DIGIT_5, BOOST_PP_SLOT_2_DIGIT_4, BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)
-# elif BOOST_PP_SLOT_2_DIGIT_7
-#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_7(BOOST_PP_SLOT_2_DIGIT_7, BOOST_PP_SLOT_2_DIGIT_6, BOOST_PP_SLOT_2_DIGIT_5, BOOST_PP_SLOT_2_DIGIT_4, BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)
-# elif BOOST_PP_SLOT_2_DIGIT_6
-#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_6(BOOST_PP_SLOT_2_DIGIT_6, BOOST_PP_SLOT_2_DIGIT_5, BOOST_PP_SLOT_2_DIGIT_4, BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)
-# elif BOOST_PP_SLOT_2_DIGIT_5
-#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_5(BOOST_PP_SLOT_2_DIGIT_5, BOOST_PP_SLOT_2_DIGIT_4, BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)
-# elif BOOST_PP_SLOT_2_DIGIT_4
-#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_4(BOOST_PP_SLOT_2_DIGIT_4, BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)
-# elif BOOST_PP_SLOT_2_DIGIT_3
-#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_3(BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)
-# elif BOOST_PP_SLOT_2_DIGIT_2
-#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_2(BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)
+# if NDNBOOST_PP_SLOT_2_DIGIT_10
+#    define NDNBOOST_PP_SLOT_2() NDNBOOST_PP_SLOT_CC_10(NDNBOOST_PP_SLOT_2_DIGIT_10, NDNBOOST_PP_SLOT_2_DIGIT_9, NDNBOOST_PP_SLOT_2_DIGIT_8, NDNBOOST_PP_SLOT_2_DIGIT_7, NDNBOOST_PP_SLOT_2_DIGIT_6, NDNBOOST_PP_SLOT_2_DIGIT_5, NDNBOOST_PP_SLOT_2_DIGIT_4, NDNBOOST_PP_SLOT_2_DIGIT_3, NDNBOOST_PP_SLOT_2_DIGIT_2, NDNBOOST_PP_SLOT_2_DIGIT_1)
+# elif NDNBOOST_PP_SLOT_2_DIGIT_9
+#    define NDNBOOST_PP_SLOT_2() NDNBOOST_PP_SLOT_CC_9(NDNBOOST_PP_SLOT_2_DIGIT_9, NDNBOOST_PP_SLOT_2_DIGIT_8, NDNBOOST_PP_SLOT_2_DIGIT_7, NDNBOOST_PP_SLOT_2_DIGIT_6, NDNBOOST_PP_SLOT_2_DIGIT_5, NDNBOOST_PP_SLOT_2_DIGIT_4, NDNBOOST_PP_SLOT_2_DIGIT_3, NDNBOOST_PP_SLOT_2_DIGIT_2, NDNBOOST_PP_SLOT_2_DIGIT_1)
+# elif NDNBOOST_PP_SLOT_2_DIGIT_8
+#    define NDNBOOST_PP_SLOT_2() NDNBOOST_PP_SLOT_CC_8(NDNBOOST_PP_SLOT_2_DIGIT_8, NDNBOOST_PP_SLOT_2_DIGIT_7, NDNBOOST_PP_SLOT_2_DIGIT_6, NDNBOOST_PP_SLOT_2_DIGIT_5, NDNBOOST_PP_SLOT_2_DIGIT_4, NDNBOOST_PP_SLOT_2_DIGIT_3, NDNBOOST_PP_SLOT_2_DIGIT_2, NDNBOOST_PP_SLOT_2_DIGIT_1)
+# elif NDNBOOST_PP_SLOT_2_DIGIT_7
+#    define NDNBOOST_PP_SLOT_2() NDNBOOST_PP_SLOT_CC_7(NDNBOOST_PP_SLOT_2_DIGIT_7, NDNBOOST_PP_SLOT_2_DIGIT_6, NDNBOOST_PP_SLOT_2_DIGIT_5, NDNBOOST_PP_SLOT_2_DIGIT_4, NDNBOOST_PP_SLOT_2_DIGIT_3, NDNBOOST_PP_SLOT_2_DIGIT_2, NDNBOOST_PP_SLOT_2_DIGIT_1)
+# elif NDNBOOST_PP_SLOT_2_DIGIT_6
+#    define NDNBOOST_PP_SLOT_2() NDNBOOST_PP_SLOT_CC_6(NDNBOOST_PP_SLOT_2_DIGIT_6, NDNBOOST_PP_SLOT_2_DIGIT_5, NDNBOOST_PP_SLOT_2_DIGIT_4, NDNBOOST_PP_SLOT_2_DIGIT_3, NDNBOOST_PP_SLOT_2_DIGIT_2, NDNBOOST_PP_SLOT_2_DIGIT_1)
+# elif NDNBOOST_PP_SLOT_2_DIGIT_5
+#    define NDNBOOST_PP_SLOT_2() NDNBOOST_PP_SLOT_CC_5(NDNBOOST_PP_SLOT_2_DIGIT_5, NDNBOOST_PP_SLOT_2_DIGIT_4, NDNBOOST_PP_SLOT_2_DIGIT_3, NDNBOOST_PP_SLOT_2_DIGIT_2, NDNBOOST_PP_SLOT_2_DIGIT_1)
+# elif NDNBOOST_PP_SLOT_2_DIGIT_4
+#    define NDNBOOST_PP_SLOT_2() NDNBOOST_PP_SLOT_CC_4(NDNBOOST_PP_SLOT_2_DIGIT_4, NDNBOOST_PP_SLOT_2_DIGIT_3, NDNBOOST_PP_SLOT_2_DIGIT_2, NDNBOOST_PP_SLOT_2_DIGIT_1)
+# elif NDNBOOST_PP_SLOT_2_DIGIT_3
+#    define NDNBOOST_PP_SLOT_2() NDNBOOST_PP_SLOT_CC_3(NDNBOOST_PP_SLOT_2_DIGIT_3, NDNBOOST_PP_SLOT_2_DIGIT_2, NDNBOOST_PP_SLOT_2_DIGIT_1)
+# elif NDNBOOST_PP_SLOT_2_DIGIT_2
+#    define NDNBOOST_PP_SLOT_2() NDNBOOST_PP_SLOT_CC_2(NDNBOOST_PP_SLOT_2_DIGIT_2, NDNBOOST_PP_SLOT_2_DIGIT_1)
 # else
-#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_2_DIGIT_1
+#    define NDNBOOST_PP_SLOT_2() NDNBOOST_PP_SLOT_2_DIGIT_1
 # endif
diff --git a/include/ndnboost/preprocessor/slot/detail/slot3.hpp b/include/ndnboost/preprocessor/slot/detail/slot3.hpp
index b05bfad..a03503f 100644
--- a/include/ndnboost/preprocessor/slot/detail/slot3.hpp
+++ b/include/ndnboost/preprocessor/slot/detail/slot3.hpp
@@ -11,257 +11,257 @@
 #
 # include <ndnboost/preprocessor/slot/detail/shared.hpp>
 #
-# undef BOOST_PP_SLOT_3
+# undef NDNBOOST_PP_SLOT_3
 #
-# undef BOOST_PP_SLOT_3_DIGIT_1
-# undef BOOST_PP_SLOT_3_DIGIT_2
-# undef BOOST_PP_SLOT_3_DIGIT_3
-# undef BOOST_PP_SLOT_3_DIGIT_4
-# undef BOOST_PP_SLOT_3_DIGIT_5
-# undef BOOST_PP_SLOT_3_DIGIT_6
-# undef BOOST_PP_SLOT_3_DIGIT_7
-# undef BOOST_PP_SLOT_3_DIGIT_8
-# undef BOOST_PP_SLOT_3_DIGIT_9
-# undef BOOST_PP_SLOT_3_DIGIT_10
+# undef NDNBOOST_PP_SLOT_3_DIGIT_1
+# undef NDNBOOST_PP_SLOT_3_DIGIT_2
+# undef NDNBOOST_PP_SLOT_3_DIGIT_3
+# undef NDNBOOST_PP_SLOT_3_DIGIT_4
+# undef NDNBOOST_PP_SLOT_3_DIGIT_5
+# undef NDNBOOST_PP_SLOT_3_DIGIT_6
+# undef NDNBOOST_PP_SLOT_3_DIGIT_7
+# undef NDNBOOST_PP_SLOT_3_DIGIT_8
+# undef NDNBOOST_PP_SLOT_3_DIGIT_9
+# undef NDNBOOST_PP_SLOT_3_DIGIT_10
 #
-# if BOOST_PP_SLOT_TEMP_10 == 0
-#    define BOOST_PP_SLOT_3_DIGIT_10 0
-# elif BOOST_PP_SLOT_TEMP_10 == 1
-#    define BOOST_PP_SLOT_3_DIGIT_10 1
-# elif BOOST_PP_SLOT_TEMP_10 == 2
-#    define BOOST_PP_SLOT_3_DIGIT_10 2
-# elif BOOST_PP_SLOT_TEMP_10 == 3
-#    define BOOST_PP_SLOT_3_DIGIT_10 3
-# elif BOOST_PP_SLOT_TEMP_10 == 4
-#    define BOOST_PP_SLOT_3_DIGIT_10 4
-# elif BOOST_PP_SLOT_TEMP_10 == 5
-#    define BOOST_PP_SLOT_3_DIGIT_10 5
-# elif BOOST_PP_SLOT_TEMP_10 == 6
-#    define BOOST_PP_SLOT_3_DIGIT_10 6
-# elif BOOST_PP_SLOT_TEMP_10 == 7
-#    define BOOST_PP_SLOT_3_DIGIT_10 7
-# elif BOOST_PP_SLOT_TEMP_10 == 8
-#    define BOOST_PP_SLOT_3_DIGIT_10 8
-# elif BOOST_PP_SLOT_TEMP_10 == 9
-#    define BOOST_PP_SLOT_3_DIGIT_10 9
+# if NDNBOOST_PP_SLOT_TEMP_10 == 0
+#    define NDNBOOST_PP_SLOT_3_DIGIT_10 0
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 1
+#    define NDNBOOST_PP_SLOT_3_DIGIT_10 1
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 2
+#    define NDNBOOST_PP_SLOT_3_DIGIT_10 2
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 3
+#    define NDNBOOST_PP_SLOT_3_DIGIT_10 3
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 4
+#    define NDNBOOST_PP_SLOT_3_DIGIT_10 4
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 5
+#    define NDNBOOST_PP_SLOT_3_DIGIT_10 5
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 6
+#    define NDNBOOST_PP_SLOT_3_DIGIT_10 6
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 7
+#    define NDNBOOST_PP_SLOT_3_DIGIT_10 7
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 8
+#    define NDNBOOST_PP_SLOT_3_DIGIT_10 8
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 9
+#    define NDNBOOST_PP_SLOT_3_DIGIT_10 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_9 == 0
-#    define BOOST_PP_SLOT_3_DIGIT_9 0
-# elif BOOST_PP_SLOT_TEMP_9 == 1
-#    define BOOST_PP_SLOT_3_DIGIT_9 1
-# elif BOOST_PP_SLOT_TEMP_9 == 2
-#    define BOOST_PP_SLOT_3_DIGIT_9 2
-# elif BOOST_PP_SLOT_TEMP_9 == 3
-#    define BOOST_PP_SLOT_3_DIGIT_9 3
-# elif BOOST_PP_SLOT_TEMP_9 == 4
-#    define BOOST_PP_SLOT_3_DIGIT_9 4
-# elif BOOST_PP_SLOT_TEMP_9 == 5
-#    define BOOST_PP_SLOT_3_DIGIT_9 5
-# elif BOOST_PP_SLOT_TEMP_9 == 6
-#    define BOOST_PP_SLOT_3_DIGIT_9 6
-# elif BOOST_PP_SLOT_TEMP_9 == 7
-#    define BOOST_PP_SLOT_3_DIGIT_9 7
-# elif BOOST_PP_SLOT_TEMP_9 == 8
-#    define BOOST_PP_SLOT_3_DIGIT_9 8
-# elif BOOST_PP_SLOT_TEMP_9 == 9
-#    define BOOST_PP_SLOT_3_DIGIT_9 9
+# if NDNBOOST_PP_SLOT_TEMP_9 == 0
+#    define NDNBOOST_PP_SLOT_3_DIGIT_9 0
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 1
+#    define NDNBOOST_PP_SLOT_3_DIGIT_9 1
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 2
+#    define NDNBOOST_PP_SLOT_3_DIGIT_9 2
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 3
+#    define NDNBOOST_PP_SLOT_3_DIGIT_9 3
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 4
+#    define NDNBOOST_PP_SLOT_3_DIGIT_9 4
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 5
+#    define NDNBOOST_PP_SLOT_3_DIGIT_9 5
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 6
+#    define NDNBOOST_PP_SLOT_3_DIGIT_9 6
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 7
+#    define NDNBOOST_PP_SLOT_3_DIGIT_9 7
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 8
+#    define NDNBOOST_PP_SLOT_3_DIGIT_9 8
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 9
+#    define NDNBOOST_PP_SLOT_3_DIGIT_9 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_8 == 0
-#    define BOOST_PP_SLOT_3_DIGIT_8 0
-# elif BOOST_PP_SLOT_TEMP_8 == 1
-#    define BOOST_PP_SLOT_3_DIGIT_8 1
-# elif BOOST_PP_SLOT_TEMP_8 == 2
-#    define BOOST_PP_SLOT_3_DIGIT_8 2
-# elif BOOST_PP_SLOT_TEMP_8 == 3
-#    define BOOST_PP_SLOT_3_DIGIT_8 3
-# elif BOOST_PP_SLOT_TEMP_8 == 4
-#    define BOOST_PP_SLOT_3_DIGIT_8 4
-# elif BOOST_PP_SLOT_TEMP_8 == 5
-#    define BOOST_PP_SLOT_3_DIGIT_8 5
-# elif BOOST_PP_SLOT_TEMP_8 == 6
-#    define BOOST_PP_SLOT_3_DIGIT_8 6
-# elif BOOST_PP_SLOT_TEMP_8 == 7
-#    define BOOST_PP_SLOT_3_DIGIT_8 7
-# elif BOOST_PP_SLOT_TEMP_8 == 8
-#    define BOOST_PP_SLOT_3_DIGIT_8 8
-# elif BOOST_PP_SLOT_TEMP_8 == 9
-#    define BOOST_PP_SLOT_3_DIGIT_8 9
+# if NDNBOOST_PP_SLOT_TEMP_8 == 0
+#    define NDNBOOST_PP_SLOT_3_DIGIT_8 0
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 1
+#    define NDNBOOST_PP_SLOT_3_DIGIT_8 1
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 2
+#    define NDNBOOST_PP_SLOT_3_DIGIT_8 2
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 3
+#    define NDNBOOST_PP_SLOT_3_DIGIT_8 3
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 4
+#    define NDNBOOST_PP_SLOT_3_DIGIT_8 4
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 5
+#    define NDNBOOST_PP_SLOT_3_DIGIT_8 5
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 6
+#    define NDNBOOST_PP_SLOT_3_DIGIT_8 6
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 7
+#    define NDNBOOST_PP_SLOT_3_DIGIT_8 7
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 8
+#    define NDNBOOST_PP_SLOT_3_DIGIT_8 8
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 9
+#    define NDNBOOST_PP_SLOT_3_DIGIT_8 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_7 == 0
-#    define BOOST_PP_SLOT_3_DIGIT_7 0
-# elif BOOST_PP_SLOT_TEMP_7 == 1
-#    define BOOST_PP_SLOT_3_DIGIT_7 1
-# elif BOOST_PP_SLOT_TEMP_7 == 2
-#    define BOOST_PP_SLOT_3_DIGIT_7 2
-# elif BOOST_PP_SLOT_TEMP_7 == 3
-#    define BOOST_PP_SLOT_3_DIGIT_7 3
-# elif BOOST_PP_SLOT_TEMP_7 == 4
-#    define BOOST_PP_SLOT_3_DIGIT_7 4
-# elif BOOST_PP_SLOT_TEMP_7 == 5
-#    define BOOST_PP_SLOT_3_DIGIT_7 5
-# elif BOOST_PP_SLOT_TEMP_7 == 6
-#    define BOOST_PP_SLOT_3_DIGIT_7 6
-# elif BOOST_PP_SLOT_TEMP_7 == 7
-#    define BOOST_PP_SLOT_3_DIGIT_7 7
-# elif BOOST_PP_SLOT_TEMP_7 == 8
-#    define BOOST_PP_SLOT_3_DIGIT_7 8
-# elif BOOST_PP_SLOT_TEMP_7 == 9
-#    define BOOST_PP_SLOT_3_DIGIT_7 9
+# if NDNBOOST_PP_SLOT_TEMP_7 == 0
+#    define NDNBOOST_PP_SLOT_3_DIGIT_7 0
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 1
+#    define NDNBOOST_PP_SLOT_3_DIGIT_7 1
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 2
+#    define NDNBOOST_PP_SLOT_3_DIGIT_7 2
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 3
+#    define NDNBOOST_PP_SLOT_3_DIGIT_7 3
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 4
+#    define NDNBOOST_PP_SLOT_3_DIGIT_7 4
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 5
+#    define NDNBOOST_PP_SLOT_3_DIGIT_7 5
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 6
+#    define NDNBOOST_PP_SLOT_3_DIGIT_7 6
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 7
+#    define NDNBOOST_PP_SLOT_3_DIGIT_7 7
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 8
+#    define NDNBOOST_PP_SLOT_3_DIGIT_7 8
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 9
+#    define NDNBOOST_PP_SLOT_3_DIGIT_7 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_6 == 0
-#    define BOOST_PP_SLOT_3_DIGIT_6 0
-# elif BOOST_PP_SLOT_TEMP_6 == 1
-#    define BOOST_PP_SLOT_3_DIGIT_6 1
-# elif BOOST_PP_SLOT_TEMP_6 == 2
-#    define BOOST_PP_SLOT_3_DIGIT_6 2
-# elif BOOST_PP_SLOT_TEMP_6 == 3
-#    define BOOST_PP_SLOT_3_DIGIT_6 3
-# elif BOOST_PP_SLOT_TEMP_6 == 4
-#    define BOOST_PP_SLOT_3_DIGIT_6 4
-# elif BOOST_PP_SLOT_TEMP_6 == 5
-#    define BOOST_PP_SLOT_3_DIGIT_6 5
-# elif BOOST_PP_SLOT_TEMP_6 == 6
-#    define BOOST_PP_SLOT_3_DIGIT_6 6
-# elif BOOST_PP_SLOT_TEMP_6 == 7
-#    define BOOST_PP_SLOT_3_DIGIT_6 7
-# elif BOOST_PP_SLOT_TEMP_6 == 8
-#    define BOOST_PP_SLOT_3_DIGIT_6 8
-# elif BOOST_PP_SLOT_TEMP_6 == 9
-#    define BOOST_PP_SLOT_3_DIGIT_6 9
+# if NDNBOOST_PP_SLOT_TEMP_6 == 0
+#    define NDNBOOST_PP_SLOT_3_DIGIT_6 0
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 1
+#    define NDNBOOST_PP_SLOT_3_DIGIT_6 1
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 2
+#    define NDNBOOST_PP_SLOT_3_DIGIT_6 2
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 3
+#    define NDNBOOST_PP_SLOT_3_DIGIT_6 3
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 4
+#    define NDNBOOST_PP_SLOT_3_DIGIT_6 4
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 5
+#    define NDNBOOST_PP_SLOT_3_DIGIT_6 5
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 6
+#    define NDNBOOST_PP_SLOT_3_DIGIT_6 6
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 7
+#    define NDNBOOST_PP_SLOT_3_DIGIT_6 7
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 8
+#    define NDNBOOST_PP_SLOT_3_DIGIT_6 8
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 9
+#    define NDNBOOST_PP_SLOT_3_DIGIT_6 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_5 == 0
-#    define BOOST_PP_SLOT_3_DIGIT_5 0
-# elif BOOST_PP_SLOT_TEMP_5 == 1
-#    define BOOST_PP_SLOT_3_DIGIT_5 1
-# elif BOOST_PP_SLOT_TEMP_5 == 2
-#    define BOOST_PP_SLOT_3_DIGIT_5 2
-# elif BOOST_PP_SLOT_TEMP_5 == 3
-#    define BOOST_PP_SLOT_3_DIGIT_5 3
-# elif BOOST_PP_SLOT_TEMP_5 == 4
-#    define BOOST_PP_SLOT_3_DIGIT_5 4
-# elif BOOST_PP_SLOT_TEMP_5 == 5
-#    define BOOST_PP_SLOT_3_DIGIT_5 5
-# elif BOOST_PP_SLOT_TEMP_5 == 6
-#    define BOOST_PP_SLOT_3_DIGIT_5 6
-# elif BOOST_PP_SLOT_TEMP_5 == 7
-#    define BOOST_PP_SLOT_3_DIGIT_5 7
-# elif BOOST_PP_SLOT_TEMP_5 == 8
-#    define BOOST_PP_SLOT_3_DIGIT_5 8
-# elif BOOST_PP_SLOT_TEMP_5 == 9
-#    define BOOST_PP_SLOT_3_DIGIT_5 9
+# if NDNBOOST_PP_SLOT_TEMP_5 == 0
+#    define NDNBOOST_PP_SLOT_3_DIGIT_5 0
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 1
+#    define NDNBOOST_PP_SLOT_3_DIGIT_5 1
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 2
+#    define NDNBOOST_PP_SLOT_3_DIGIT_5 2
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 3
+#    define NDNBOOST_PP_SLOT_3_DIGIT_5 3
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 4
+#    define NDNBOOST_PP_SLOT_3_DIGIT_5 4
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 5
+#    define NDNBOOST_PP_SLOT_3_DIGIT_5 5
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 6
+#    define NDNBOOST_PP_SLOT_3_DIGIT_5 6
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 7
+#    define NDNBOOST_PP_SLOT_3_DIGIT_5 7
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 8
+#    define NDNBOOST_PP_SLOT_3_DIGIT_5 8
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 9
+#    define NDNBOOST_PP_SLOT_3_DIGIT_5 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_4 == 0
-#    define BOOST_PP_SLOT_3_DIGIT_4 0
-# elif BOOST_PP_SLOT_TEMP_4 == 1
-#    define BOOST_PP_SLOT_3_DIGIT_4 1
-# elif BOOST_PP_SLOT_TEMP_4 == 2
-#    define BOOST_PP_SLOT_3_DIGIT_4 2
-# elif BOOST_PP_SLOT_TEMP_4 == 3
-#    define BOOST_PP_SLOT_3_DIGIT_4 3
-# elif BOOST_PP_SLOT_TEMP_4 == 4
-#    define BOOST_PP_SLOT_3_DIGIT_4 4
-# elif BOOST_PP_SLOT_TEMP_4 == 5
-#    define BOOST_PP_SLOT_3_DIGIT_4 5
-# elif BOOST_PP_SLOT_TEMP_4 == 6
-#    define BOOST_PP_SLOT_3_DIGIT_4 6
-# elif BOOST_PP_SLOT_TEMP_4 == 7
-#    define BOOST_PP_SLOT_3_DIGIT_4 7
-# elif BOOST_PP_SLOT_TEMP_4 == 8
-#    define BOOST_PP_SLOT_3_DIGIT_4 8
-# elif BOOST_PP_SLOT_TEMP_4 == 9
-#    define BOOST_PP_SLOT_3_DIGIT_4 9
+# if NDNBOOST_PP_SLOT_TEMP_4 == 0
+#    define NDNBOOST_PP_SLOT_3_DIGIT_4 0
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 1
+#    define NDNBOOST_PP_SLOT_3_DIGIT_4 1
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 2
+#    define NDNBOOST_PP_SLOT_3_DIGIT_4 2
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 3
+#    define NDNBOOST_PP_SLOT_3_DIGIT_4 3
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 4
+#    define NDNBOOST_PP_SLOT_3_DIGIT_4 4
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 5
+#    define NDNBOOST_PP_SLOT_3_DIGIT_4 5
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 6
+#    define NDNBOOST_PP_SLOT_3_DIGIT_4 6
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 7
+#    define NDNBOOST_PP_SLOT_3_DIGIT_4 7
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 8
+#    define NDNBOOST_PP_SLOT_3_DIGIT_4 8
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 9
+#    define NDNBOOST_PP_SLOT_3_DIGIT_4 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_3 == 0
-#    define BOOST_PP_SLOT_3_DIGIT_3 0
-# elif BOOST_PP_SLOT_TEMP_3 == 1
-#    define BOOST_PP_SLOT_3_DIGIT_3 1
-# elif BOOST_PP_SLOT_TEMP_3 == 2
-#    define BOOST_PP_SLOT_3_DIGIT_3 2
-# elif BOOST_PP_SLOT_TEMP_3 == 3
-#    define BOOST_PP_SLOT_3_DIGIT_3 3
-# elif BOOST_PP_SLOT_TEMP_3 == 4
-#    define BOOST_PP_SLOT_3_DIGIT_3 4
-# elif BOOST_PP_SLOT_TEMP_3 == 5
-#    define BOOST_PP_SLOT_3_DIGIT_3 5
-# elif BOOST_PP_SLOT_TEMP_3 == 6
-#    define BOOST_PP_SLOT_3_DIGIT_3 6
-# elif BOOST_PP_SLOT_TEMP_3 == 7
-#    define BOOST_PP_SLOT_3_DIGIT_3 7
-# elif BOOST_PP_SLOT_TEMP_3 == 8
-#    define BOOST_PP_SLOT_3_DIGIT_3 8
-# elif BOOST_PP_SLOT_TEMP_3 == 9
-#    define BOOST_PP_SLOT_3_DIGIT_3 9
+# if NDNBOOST_PP_SLOT_TEMP_3 == 0
+#    define NDNBOOST_PP_SLOT_3_DIGIT_3 0
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 1
+#    define NDNBOOST_PP_SLOT_3_DIGIT_3 1
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 2
+#    define NDNBOOST_PP_SLOT_3_DIGIT_3 2
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 3
+#    define NDNBOOST_PP_SLOT_3_DIGIT_3 3
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 4
+#    define NDNBOOST_PP_SLOT_3_DIGIT_3 4
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 5
+#    define NDNBOOST_PP_SLOT_3_DIGIT_3 5
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 6
+#    define NDNBOOST_PP_SLOT_3_DIGIT_3 6
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 7
+#    define NDNBOOST_PP_SLOT_3_DIGIT_3 7
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 8
+#    define NDNBOOST_PP_SLOT_3_DIGIT_3 8
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 9
+#    define NDNBOOST_PP_SLOT_3_DIGIT_3 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_2 == 0
-#    define BOOST_PP_SLOT_3_DIGIT_2 0
-# elif BOOST_PP_SLOT_TEMP_2 == 1
-#    define BOOST_PP_SLOT_3_DIGIT_2 1
-# elif BOOST_PP_SLOT_TEMP_2 == 2
-#    define BOOST_PP_SLOT_3_DIGIT_2 2
-# elif BOOST_PP_SLOT_TEMP_2 == 3
-#    define BOOST_PP_SLOT_3_DIGIT_2 3
-# elif BOOST_PP_SLOT_TEMP_2 == 4
-#    define BOOST_PP_SLOT_3_DIGIT_2 4
-# elif BOOST_PP_SLOT_TEMP_2 == 5
-#    define BOOST_PP_SLOT_3_DIGIT_2 5
-# elif BOOST_PP_SLOT_TEMP_2 == 6
-#    define BOOST_PP_SLOT_3_DIGIT_2 6
-# elif BOOST_PP_SLOT_TEMP_2 == 7
-#    define BOOST_PP_SLOT_3_DIGIT_2 7
-# elif BOOST_PP_SLOT_TEMP_2 == 8
-#    define BOOST_PP_SLOT_3_DIGIT_2 8
-# elif BOOST_PP_SLOT_TEMP_2 == 9
-#    define BOOST_PP_SLOT_3_DIGIT_2 9
+# if NDNBOOST_PP_SLOT_TEMP_2 == 0
+#    define NDNBOOST_PP_SLOT_3_DIGIT_2 0
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 1
+#    define NDNBOOST_PP_SLOT_3_DIGIT_2 1
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 2
+#    define NDNBOOST_PP_SLOT_3_DIGIT_2 2
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 3
+#    define NDNBOOST_PP_SLOT_3_DIGIT_2 3
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 4
+#    define NDNBOOST_PP_SLOT_3_DIGIT_2 4
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 5
+#    define NDNBOOST_PP_SLOT_3_DIGIT_2 5
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 6
+#    define NDNBOOST_PP_SLOT_3_DIGIT_2 6
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 7
+#    define NDNBOOST_PP_SLOT_3_DIGIT_2 7
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 8
+#    define NDNBOOST_PP_SLOT_3_DIGIT_2 8
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 9
+#    define NDNBOOST_PP_SLOT_3_DIGIT_2 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_1 == 0
-#    define BOOST_PP_SLOT_3_DIGIT_1 0
-# elif BOOST_PP_SLOT_TEMP_1 == 1
-#    define BOOST_PP_SLOT_3_DIGIT_1 1
-# elif BOOST_PP_SLOT_TEMP_1 == 2
-#    define BOOST_PP_SLOT_3_DIGIT_1 2
-# elif BOOST_PP_SLOT_TEMP_1 == 3
-#    define BOOST_PP_SLOT_3_DIGIT_1 3
-# elif BOOST_PP_SLOT_TEMP_1 == 4
-#    define BOOST_PP_SLOT_3_DIGIT_1 4
-# elif BOOST_PP_SLOT_TEMP_1 == 5
-#    define BOOST_PP_SLOT_3_DIGIT_1 5
-# elif BOOST_PP_SLOT_TEMP_1 == 6
-#    define BOOST_PP_SLOT_3_DIGIT_1 6
-# elif BOOST_PP_SLOT_TEMP_1 == 7
-#    define BOOST_PP_SLOT_3_DIGIT_1 7
-# elif BOOST_PP_SLOT_TEMP_1 == 8
-#    define BOOST_PP_SLOT_3_DIGIT_1 8
-# elif BOOST_PP_SLOT_TEMP_1 == 9
-#    define BOOST_PP_SLOT_3_DIGIT_1 9
+# if NDNBOOST_PP_SLOT_TEMP_1 == 0
+#    define NDNBOOST_PP_SLOT_3_DIGIT_1 0
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 1
+#    define NDNBOOST_PP_SLOT_3_DIGIT_1 1
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 2
+#    define NDNBOOST_PP_SLOT_3_DIGIT_1 2
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 3
+#    define NDNBOOST_PP_SLOT_3_DIGIT_1 3
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 4
+#    define NDNBOOST_PP_SLOT_3_DIGIT_1 4
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 5
+#    define NDNBOOST_PP_SLOT_3_DIGIT_1 5
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 6
+#    define NDNBOOST_PP_SLOT_3_DIGIT_1 6
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 7
+#    define NDNBOOST_PP_SLOT_3_DIGIT_1 7
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 8
+#    define NDNBOOST_PP_SLOT_3_DIGIT_1 8
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 9
+#    define NDNBOOST_PP_SLOT_3_DIGIT_1 9
 # endif
 #
-# if BOOST_PP_SLOT_3_DIGIT_10
-#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_10(BOOST_PP_SLOT_3_DIGIT_10, BOOST_PP_SLOT_3_DIGIT_9, BOOST_PP_SLOT_3_DIGIT_8, BOOST_PP_SLOT_3_DIGIT_7, BOOST_PP_SLOT_3_DIGIT_6, BOOST_PP_SLOT_3_DIGIT_5, BOOST_PP_SLOT_3_DIGIT_4, BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)
-# elif BOOST_PP_SLOT_3_DIGIT_9
-#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_9(BOOST_PP_SLOT_3_DIGIT_9, BOOST_PP_SLOT_3_DIGIT_8, BOOST_PP_SLOT_3_DIGIT_7, BOOST_PP_SLOT_3_DIGIT_6, BOOST_PP_SLOT_3_DIGIT_5, BOOST_PP_SLOT_3_DIGIT_4, BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)
-# elif BOOST_PP_SLOT_3_DIGIT_8
-#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_8(BOOST_PP_SLOT_3_DIGIT_8, BOOST_PP_SLOT_3_DIGIT_7, BOOST_PP_SLOT_3_DIGIT_6, BOOST_PP_SLOT_3_DIGIT_5, BOOST_PP_SLOT_3_DIGIT_4, BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)
-# elif BOOST_PP_SLOT_3_DIGIT_7
-#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_7(BOOST_PP_SLOT_3_DIGIT_7, BOOST_PP_SLOT_3_DIGIT_6, BOOST_PP_SLOT_3_DIGIT_5, BOOST_PP_SLOT_3_DIGIT_4, BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)
-# elif BOOST_PP_SLOT_3_DIGIT_6
-#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_6(BOOST_PP_SLOT_3_DIGIT_6, BOOST_PP_SLOT_3_DIGIT_5, BOOST_PP_SLOT_3_DIGIT_4, BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)
-# elif BOOST_PP_SLOT_3_DIGIT_5
-#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_5(BOOST_PP_SLOT_3_DIGIT_5, BOOST_PP_SLOT_3_DIGIT_4, BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)
-# elif BOOST_PP_SLOT_3_DIGIT_4
-#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_4(BOOST_PP_SLOT_3_DIGIT_4, BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)
-# elif BOOST_PP_SLOT_3_DIGIT_3
-#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_3(BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)
-# elif BOOST_PP_SLOT_3_DIGIT_2
-#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_2(BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)
+# if NDNBOOST_PP_SLOT_3_DIGIT_10
+#    define NDNBOOST_PP_SLOT_3() NDNBOOST_PP_SLOT_CC_10(NDNBOOST_PP_SLOT_3_DIGIT_10, NDNBOOST_PP_SLOT_3_DIGIT_9, NDNBOOST_PP_SLOT_3_DIGIT_8, NDNBOOST_PP_SLOT_3_DIGIT_7, NDNBOOST_PP_SLOT_3_DIGIT_6, NDNBOOST_PP_SLOT_3_DIGIT_5, NDNBOOST_PP_SLOT_3_DIGIT_4, NDNBOOST_PP_SLOT_3_DIGIT_3, NDNBOOST_PP_SLOT_3_DIGIT_2, NDNBOOST_PP_SLOT_3_DIGIT_1)
+# elif NDNBOOST_PP_SLOT_3_DIGIT_9
+#    define NDNBOOST_PP_SLOT_3() NDNBOOST_PP_SLOT_CC_9(NDNBOOST_PP_SLOT_3_DIGIT_9, NDNBOOST_PP_SLOT_3_DIGIT_8, NDNBOOST_PP_SLOT_3_DIGIT_7, NDNBOOST_PP_SLOT_3_DIGIT_6, NDNBOOST_PP_SLOT_3_DIGIT_5, NDNBOOST_PP_SLOT_3_DIGIT_4, NDNBOOST_PP_SLOT_3_DIGIT_3, NDNBOOST_PP_SLOT_3_DIGIT_2, NDNBOOST_PP_SLOT_3_DIGIT_1)
+# elif NDNBOOST_PP_SLOT_3_DIGIT_8
+#    define NDNBOOST_PP_SLOT_3() NDNBOOST_PP_SLOT_CC_8(NDNBOOST_PP_SLOT_3_DIGIT_8, NDNBOOST_PP_SLOT_3_DIGIT_7, NDNBOOST_PP_SLOT_3_DIGIT_6, NDNBOOST_PP_SLOT_3_DIGIT_5, NDNBOOST_PP_SLOT_3_DIGIT_4, NDNBOOST_PP_SLOT_3_DIGIT_3, NDNBOOST_PP_SLOT_3_DIGIT_2, NDNBOOST_PP_SLOT_3_DIGIT_1)
+# elif NDNBOOST_PP_SLOT_3_DIGIT_7
+#    define NDNBOOST_PP_SLOT_3() NDNBOOST_PP_SLOT_CC_7(NDNBOOST_PP_SLOT_3_DIGIT_7, NDNBOOST_PP_SLOT_3_DIGIT_6, NDNBOOST_PP_SLOT_3_DIGIT_5, NDNBOOST_PP_SLOT_3_DIGIT_4, NDNBOOST_PP_SLOT_3_DIGIT_3, NDNBOOST_PP_SLOT_3_DIGIT_2, NDNBOOST_PP_SLOT_3_DIGIT_1)
+# elif NDNBOOST_PP_SLOT_3_DIGIT_6
+#    define NDNBOOST_PP_SLOT_3() NDNBOOST_PP_SLOT_CC_6(NDNBOOST_PP_SLOT_3_DIGIT_6, NDNBOOST_PP_SLOT_3_DIGIT_5, NDNBOOST_PP_SLOT_3_DIGIT_4, NDNBOOST_PP_SLOT_3_DIGIT_3, NDNBOOST_PP_SLOT_3_DIGIT_2, NDNBOOST_PP_SLOT_3_DIGIT_1)
+# elif NDNBOOST_PP_SLOT_3_DIGIT_5
+#    define NDNBOOST_PP_SLOT_3() NDNBOOST_PP_SLOT_CC_5(NDNBOOST_PP_SLOT_3_DIGIT_5, NDNBOOST_PP_SLOT_3_DIGIT_4, NDNBOOST_PP_SLOT_3_DIGIT_3, NDNBOOST_PP_SLOT_3_DIGIT_2, NDNBOOST_PP_SLOT_3_DIGIT_1)
+# elif NDNBOOST_PP_SLOT_3_DIGIT_4
+#    define NDNBOOST_PP_SLOT_3() NDNBOOST_PP_SLOT_CC_4(NDNBOOST_PP_SLOT_3_DIGIT_4, NDNBOOST_PP_SLOT_3_DIGIT_3, NDNBOOST_PP_SLOT_3_DIGIT_2, NDNBOOST_PP_SLOT_3_DIGIT_1)
+# elif NDNBOOST_PP_SLOT_3_DIGIT_3
+#    define NDNBOOST_PP_SLOT_3() NDNBOOST_PP_SLOT_CC_3(NDNBOOST_PP_SLOT_3_DIGIT_3, NDNBOOST_PP_SLOT_3_DIGIT_2, NDNBOOST_PP_SLOT_3_DIGIT_1)
+# elif NDNBOOST_PP_SLOT_3_DIGIT_2
+#    define NDNBOOST_PP_SLOT_3() NDNBOOST_PP_SLOT_CC_2(NDNBOOST_PP_SLOT_3_DIGIT_2, NDNBOOST_PP_SLOT_3_DIGIT_1)
 # else
-#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_3_DIGIT_1
+#    define NDNBOOST_PP_SLOT_3() NDNBOOST_PP_SLOT_3_DIGIT_1
 # endif
diff --git a/include/ndnboost/preprocessor/slot/detail/slot4.hpp b/include/ndnboost/preprocessor/slot/detail/slot4.hpp
index 0b0f725..78017a2 100644
--- a/include/ndnboost/preprocessor/slot/detail/slot4.hpp
+++ b/include/ndnboost/preprocessor/slot/detail/slot4.hpp
@@ -11,257 +11,257 @@
 #
 # include <ndnboost/preprocessor/slot/detail/shared.hpp>
 #
-# undef BOOST_PP_SLOT_4
+# undef NDNBOOST_PP_SLOT_4
 #
-# undef BOOST_PP_SLOT_4_DIGIT_1
-# undef BOOST_PP_SLOT_4_DIGIT_2
-# undef BOOST_PP_SLOT_4_DIGIT_3
-# undef BOOST_PP_SLOT_4_DIGIT_4
-# undef BOOST_PP_SLOT_4_DIGIT_5
-# undef BOOST_PP_SLOT_4_DIGIT_6
-# undef BOOST_PP_SLOT_4_DIGIT_7
-# undef BOOST_PP_SLOT_4_DIGIT_8
-# undef BOOST_PP_SLOT_4_DIGIT_9
-# undef BOOST_PP_SLOT_4_DIGIT_10
+# undef NDNBOOST_PP_SLOT_4_DIGIT_1
+# undef NDNBOOST_PP_SLOT_4_DIGIT_2
+# undef NDNBOOST_PP_SLOT_4_DIGIT_3
+# undef NDNBOOST_PP_SLOT_4_DIGIT_4
+# undef NDNBOOST_PP_SLOT_4_DIGIT_5
+# undef NDNBOOST_PP_SLOT_4_DIGIT_6
+# undef NDNBOOST_PP_SLOT_4_DIGIT_7
+# undef NDNBOOST_PP_SLOT_4_DIGIT_8
+# undef NDNBOOST_PP_SLOT_4_DIGIT_9
+# undef NDNBOOST_PP_SLOT_4_DIGIT_10
 #
-# if BOOST_PP_SLOT_TEMP_10 == 0
-#    define BOOST_PP_SLOT_4_DIGIT_10 0
-# elif BOOST_PP_SLOT_TEMP_10 == 1
-#    define BOOST_PP_SLOT_4_DIGIT_10 1
-# elif BOOST_PP_SLOT_TEMP_10 == 2
-#    define BOOST_PP_SLOT_4_DIGIT_10 2
-# elif BOOST_PP_SLOT_TEMP_10 == 3
-#    define BOOST_PP_SLOT_4_DIGIT_10 3
-# elif BOOST_PP_SLOT_TEMP_10 == 4
-#    define BOOST_PP_SLOT_4_DIGIT_10 4
-# elif BOOST_PP_SLOT_TEMP_10 == 5
-#    define BOOST_PP_SLOT_4_DIGIT_10 5
-# elif BOOST_PP_SLOT_TEMP_10 == 6
-#    define BOOST_PP_SLOT_4_DIGIT_10 6
-# elif BOOST_PP_SLOT_TEMP_10 == 7
-#    define BOOST_PP_SLOT_4_DIGIT_10 7
-# elif BOOST_PP_SLOT_TEMP_10 == 8
-#    define BOOST_PP_SLOT_4_DIGIT_10 8
-# elif BOOST_PP_SLOT_TEMP_10 == 9
-#    define BOOST_PP_SLOT_4_DIGIT_10 9
+# if NDNBOOST_PP_SLOT_TEMP_10 == 0
+#    define NDNBOOST_PP_SLOT_4_DIGIT_10 0
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 1
+#    define NDNBOOST_PP_SLOT_4_DIGIT_10 1
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 2
+#    define NDNBOOST_PP_SLOT_4_DIGIT_10 2
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 3
+#    define NDNBOOST_PP_SLOT_4_DIGIT_10 3
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 4
+#    define NDNBOOST_PP_SLOT_4_DIGIT_10 4
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 5
+#    define NDNBOOST_PP_SLOT_4_DIGIT_10 5
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 6
+#    define NDNBOOST_PP_SLOT_4_DIGIT_10 6
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 7
+#    define NDNBOOST_PP_SLOT_4_DIGIT_10 7
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 8
+#    define NDNBOOST_PP_SLOT_4_DIGIT_10 8
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 9
+#    define NDNBOOST_PP_SLOT_4_DIGIT_10 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_9 == 0
-#    define BOOST_PP_SLOT_4_DIGIT_9 0
-# elif BOOST_PP_SLOT_TEMP_9 == 1
-#    define BOOST_PP_SLOT_4_DIGIT_9 1
-# elif BOOST_PP_SLOT_TEMP_9 == 2
-#    define BOOST_PP_SLOT_4_DIGIT_9 2
-# elif BOOST_PP_SLOT_TEMP_9 == 3
-#    define BOOST_PP_SLOT_4_DIGIT_9 3
-# elif BOOST_PP_SLOT_TEMP_9 == 4
-#    define BOOST_PP_SLOT_4_DIGIT_9 4
-# elif BOOST_PP_SLOT_TEMP_9 == 5
-#    define BOOST_PP_SLOT_4_DIGIT_9 5
-# elif BOOST_PP_SLOT_TEMP_9 == 6
-#    define BOOST_PP_SLOT_4_DIGIT_9 6
-# elif BOOST_PP_SLOT_TEMP_9 == 7
-#    define BOOST_PP_SLOT_4_DIGIT_9 7
-# elif BOOST_PP_SLOT_TEMP_9 == 8
-#    define BOOST_PP_SLOT_4_DIGIT_9 8
-# elif BOOST_PP_SLOT_TEMP_9 == 9
-#    define BOOST_PP_SLOT_4_DIGIT_9 9
+# if NDNBOOST_PP_SLOT_TEMP_9 == 0
+#    define NDNBOOST_PP_SLOT_4_DIGIT_9 0
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 1
+#    define NDNBOOST_PP_SLOT_4_DIGIT_9 1
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 2
+#    define NDNBOOST_PP_SLOT_4_DIGIT_9 2
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 3
+#    define NDNBOOST_PP_SLOT_4_DIGIT_9 3
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 4
+#    define NDNBOOST_PP_SLOT_4_DIGIT_9 4
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 5
+#    define NDNBOOST_PP_SLOT_4_DIGIT_9 5
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 6
+#    define NDNBOOST_PP_SLOT_4_DIGIT_9 6
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 7
+#    define NDNBOOST_PP_SLOT_4_DIGIT_9 7
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 8
+#    define NDNBOOST_PP_SLOT_4_DIGIT_9 8
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 9
+#    define NDNBOOST_PP_SLOT_4_DIGIT_9 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_8 == 0
-#    define BOOST_PP_SLOT_4_DIGIT_8 0
-# elif BOOST_PP_SLOT_TEMP_8 == 1
-#    define BOOST_PP_SLOT_4_DIGIT_8 1
-# elif BOOST_PP_SLOT_TEMP_8 == 2
-#    define BOOST_PP_SLOT_4_DIGIT_8 2
-# elif BOOST_PP_SLOT_TEMP_8 == 3
-#    define BOOST_PP_SLOT_4_DIGIT_8 3
-# elif BOOST_PP_SLOT_TEMP_8 == 4
-#    define BOOST_PP_SLOT_4_DIGIT_8 4
-# elif BOOST_PP_SLOT_TEMP_8 == 5
-#    define BOOST_PP_SLOT_4_DIGIT_8 5
-# elif BOOST_PP_SLOT_TEMP_8 == 6
-#    define BOOST_PP_SLOT_4_DIGIT_8 6
-# elif BOOST_PP_SLOT_TEMP_8 == 7
-#    define BOOST_PP_SLOT_4_DIGIT_8 7
-# elif BOOST_PP_SLOT_TEMP_8 == 8
-#    define BOOST_PP_SLOT_4_DIGIT_8 8
-# elif BOOST_PP_SLOT_TEMP_8 == 9
-#    define BOOST_PP_SLOT_4_DIGIT_8 9
+# if NDNBOOST_PP_SLOT_TEMP_8 == 0
+#    define NDNBOOST_PP_SLOT_4_DIGIT_8 0
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 1
+#    define NDNBOOST_PP_SLOT_4_DIGIT_8 1
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 2
+#    define NDNBOOST_PP_SLOT_4_DIGIT_8 2
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 3
+#    define NDNBOOST_PP_SLOT_4_DIGIT_8 3
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 4
+#    define NDNBOOST_PP_SLOT_4_DIGIT_8 4
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 5
+#    define NDNBOOST_PP_SLOT_4_DIGIT_8 5
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 6
+#    define NDNBOOST_PP_SLOT_4_DIGIT_8 6
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 7
+#    define NDNBOOST_PP_SLOT_4_DIGIT_8 7
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 8
+#    define NDNBOOST_PP_SLOT_4_DIGIT_8 8
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 9
+#    define NDNBOOST_PP_SLOT_4_DIGIT_8 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_7 == 0
-#    define BOOST_PP_SLOT_4_DIGIT_7 0
-# elif BOOST_PP_SLOT_TEMP_7 == 1
-#    define BOOST_PP_SLOT_4_DIGIT_7 1
-# elif BOOST_PP_SLOT_TEMP_7 == 2
-#    define BOOST_PP_SLOT_4_DIGIT_7 2
-# elif BOOST_PP_SLOT_TEMP_7 == 3
-#    define BOOST_PP_SLOT_4_DIGIT_7 3
-# elif BOOST_PP_SLOT_TEMP_7 == 4
-#    define BOOST_PP_SLOT_4_DIGIT_7 4
-# elif BOOST_PP_SLOT_TEMP_7 == 5
-#    define BOOST_PP_SLOT_4_DIGIT_7 5
-# elif BOOST_PP_SLOT_TEMP_7 == 6
-#    define BOOST_PP_SLOT_4_DIGIT_7 6
-# elif BOOST_PP_SLOT_TEMP_7 == 7
-#    define BOOST_PP_SLOT_4_DIGIT_7 7
-# elif BOOST_PP_SLOT_TEMP_7 == 8
-#    define BOOST_PP_SLOT_4_DIGIT_7 8
-# elif BOOST_PP_SLOT_TEMP_7 == 9
-#    define BOOST_PP_SLOT_4_DIGIT_7 9
+# if NDNBOOST_PP_SLOT_TEMP_7 == 0
+#    define NDNBOOST_PP_SLOT_4_DIGIT_7 0
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 1
+#    define NDNBOOST_PP_SLOT_4_DIGIT_7 1
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 2
+#    define NDNBOOST_PP_SLOT_4_DIGIT_7 2
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 3
+#    define NDNBOOST_PP_SLOT_4_DIGIT_7 3
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 4
+#    define NDNBOOST_PP_SLOT_4_DIGIT_7 4
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 5
+#    define NDNBOOST_PP_SLOT_4_DIGIT_7 5
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 6
+#    define NDNBOOST_PP_SLOT_4_DIGIT_7 6
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 7
+#    define NDNBOOST_PP_SLOT_4_DIGIT_7 7
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 8
+#    define NDNBOOST_PP_SLOT_4_DIGIT_7 8
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 9
+#    define NDNBOOST_PP_SLOT_4_DIGIT_7 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_6 == 0
-#    define BOOST_PP_SLOT_4_DIGIT_6 0
-# elif BOOST_PP_SLOT_TEMP_6 == 1
-#    define BOOST_PP_SLOT_4_DIGIT_6 1
-# elif BOOST_PP_SLOT_TEMP_6 == 2
-#    define BOOST_PP_SLOT_4_DIGIT_6 2
-# elif BOOST_PP_SLOT_TEMP_6 == 3
-#    define BOOST_PP_SLOT_4_DIGIT_6 3
-# elif BOOST_PP_SLOT_TEMP_6 == 4
-#    define BOOST_PP_SLOT_4_DIGIT_6 4
-# elif BOOST_PP_SLOT_TEMP_6 == 5
-#    define BOOST_PP_SLOT_4_DIGIT_6 5
-# elif BOOST_PP_SLOT_TEMP_6 == 6
-#    define BOOST_PP_SLOT_4_DIGIT_6 6
-# elif BOOST_PP_SLOT_TEMP_6 == 7
-#    define BOOST_PP_SLOT_4_DIGIT_6 7
-# elif BOOST_PP_SLOT_TEMP_6 == 8
-#    define BOOST_PP_SLOT_4_DIGIT_6 8
-# elif BOOST_PP_SLOT_TEMP_6 == 9
-#    define BOOST_PP_SLOT_4_DIGIT_6 9
+# if NDNBOOST_PP_SLOT_TEMP_6 == 0
+#    define NDNBOOST_PP_SLOT_4_DIGIT_6 0
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 1
+#    define NDNBOOST_PP_SLOT_4_DIGIT_6 1
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 2
+#    define NDNBOOST_PP_SLOT_4_DIGIT_6 2
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 3
+#    define NDNBOOST_PP_SLOT_4_DIGIT_6 3
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 4
+#    define NDNBOOST_PP_SLOT_4_DIGIT_6 4
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 5
+#    define NDNBOOST_PP_SLOT_4_DIGIT_6 5
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 6
+#    define NDNBOOST_PP_SLOT_4_DIGIT_6 6
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 7
+#    define NDNBOOST_PP_SLOT_4_DIGIT_6 7
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 8
+#    define NDNBOOST_PP_SLOT_4_DIGIT_6 8
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 9
+#    define NDNBOOST_PP_SLOT_4_DIGIT_6 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_5 == 0
-#    define BOOST_PP_SLOT_4_DIGIT_5 0
-# elif BOOST_PP_SLOT_TEMP_5 == 1
-#    define BOOST_PP_SLOT_4_DIGIT_5 1
-# elif BOOST_PP_SLOT_TEMP_5 == 2
-#    define BOOST_PP_SLOT_4_DIGIT_5 2
-# elif BOOST_PP_SLOT_TEMP_5 == 3
-#    define BOOST_PP_SLOT_4_DIGIT_5 3
-# elif BOOST_PP_SLOT_TEMP_5 == 4
-#    define BOOST_PP_SLOT_4_DIGIT_5 4
-# elif BOOST_PP_SLOT_TEMP_5 == 5
-#    define BOOST_PP_SLOT_4_DIGIT_5 5
-# elif BOOST_PP_SLOT_TEMP_5 == 6
-#    define BOOST_PP_SLOT_4_DIGIT_5 6
-# elif BOOST_PP_SLOT_TEMP_5 == 7
-#    define BOOST_PP_SLOT_4_DIGIT_5 7
-# elif BOOST_PP_SLOT_TEMP_5 == 8
-#    define BOOST_PP_SLOT_4_DIGIT_5 8
-# elif BOOST_PP_SLOT_TEMP_5 == 9
-#    define BOOST_PP_SLOT_4_DIGIT_5 9
+# if NDNBOOST_PP_SLOT_TEMP_5 == 0
+#    define NDNBOOST_PP_SLOT_4_DIGIT_5 0
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 1
+#    define NDNBOOST_PP_SLOT_4_DIGIT_5 1
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 2
+#    define NDNBOOST_PP_SLOT_4_DIGIT_5 2
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 3
+#    define NDNBOOST_PP_SLOT_4_DIGIT_5 3
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 4
+#    define NDNBOOST_PP_SLOT_4_DIGIT_5 4
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 5
+#    define NDNBOOST_PP_SLOT_4_DIGIT_5 5
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 6
+#    define NDNBOOST_PP_SLOT_4_DIGIT_5 6
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 7
+#    define NDNBOOST_PP_SLOT_4_DIGIT_5 7
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 8
+#    define NDNBOOST_PP_SLOT_4_DIGIT_5 8
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 9
+#    define NDNBOOST_PP_SLOT_4_DIGIT_5 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_4 == 0
-#    define BOOST_PP_SLOT_4_DIGIT_4 0
-# elif BOOST_PP_SLOT_TEMP_4 == 1
-#    define BOOST_PP_SLOT_4_DIGIT_4 1
-# elif BOOST_PP_SLOT_TEMP_4 == 2
-#    define BOOST_PP_SLOT_4_DIGIT_4 2
-# elif BOOST_PP_SLOT_TEMP_4 == 3
-#    define BOOST_PP_SLOT_4_DIGIT_4 3
-# elif BOOST_PP_SLOT_TEMP_4 == 4
-#    define BOOST_PP_SLOT_4_DIGIT_4 4
-# elif BOOST_PP_SLOT_TEMP_4 == 5
-#    define BOOST_PP_SLOT_4_DIGIT_4 5
-# elif BOOST_PP_SLOT_TEMP_4 == 6
-#    define BOOST_PP_SLOT_4_DIGIT_4 6
-# elif BOOST_PP_SLOT_TEMP_4 == 7
-#    define BOOST_PP_SLOT_4_DIGIT_4 7
-# elif BOOST_PP_SLOT_TEMP_4 == 8
-#    define BOOST_PP_SLOT_4_DIGIT_4 8
-# elif BOOST_PP_SLOT_TEMP_4 == 9
-#    define BOOST_PP_SLOT_4_DIGIT_4 9
+# if NDNBOOST_PP_SLOT_TEMP_4 == 0
+#    define NDNBOOST_PP_SLOT_4_DIGIT_4 0
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 1
+#    define NDNBOOST_PP_SLOT_4_DIGIT_4 1
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 2
+#    define NDNBOOST_PP_SLOT_4_DIGIT_4 2
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 3
+#    define NDNBOOST_PP_SLOT_4_DIGIT_4 3
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 4
+#    define NDNBOOST_PP_SLOT_4_DIGIT_4 4
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 5
+#    define NDNBOOST_PP_SLOT_4_DIGIT_4 5
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 6
+#    define NDNBOOST_PP_SLOT_4_DIGIT_4 6
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 7
+#    define NDNBOOST_PP_SLOT_4_DIGIT_4 7
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 8
+#    define NDNBOOST_PP_SLOT_4_DIGIT_4 8
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 9
+#    define NDNBOOST_PP_SLOT_4_DIGIT_4 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_3 == 0
-#    define BOOST_PP_SLOT_4_DIGIT_3 0
-# elif BOOST_PP_SLOT_TEMP_3 == 1
-#    define BOOST_PP_SLOT_4_DIGIT_3 1
-# elif BOOST_PP_SLOT_TEMP_3 == 2
-#    define BOOST_PP_SLOT_4_DIGIT_3 2
-# elif BOOST_PP_SLOT_TEMP_3 == 3
-#    define BOOST_PP_SLOT_4_DIGIT_3 3
-# elif BOOST_PP_SLOT_TEMP_3 == 4
-#    define BOOST_PP_SLOT_4_DIGIT_3 4
-# elif BOOST_PP_SLOT_TEMP_3 == 5
-#    define BOOST_PP_SLOT_4_DIGIT_3 5
-# elif BOOST_PP_SLOT_TEMP_3 == 6
-#    define BOOST_PP_SLOT_4_DIGIT_3 6
-# elif BOOST_PP_SLOT_TEMP_3 == 7
-#    define BOOST_PP_SLOT_4_DIGIT_3 7
-# elif BOOST_PP_SLOT_TEMP_3 == 8
-#    define BOOST_PP_SLOT_4_DIGIT_3 8
-# elif BOOST_PP_SLOT_TEMP_3 == 9
-#    define BOOST_PP_SLOT_4_DIGIT_3 9
+# if NDNBOOST_PP_SLOT_TEMP_3 == 0
+#    define NDNBOOST_PP_SLOT_4_DIGIT_3 0
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 1
+#    define NDNBOOST_PP_SLOT_4_DIGIT_3 1
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 2
+#    define NDNBOOST_PP_SLOT_4_DIGIT_3 2
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 3
+#    define NDNBOOST_PP_SLOT_4_DIGIT_3 3
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 4
+#    define NDNBOOST_PP_SLOT_4_DIGIT_3 4
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 5
+#    define NDNBOOST_PP_SLOT_4_DIGIT_3 5
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 6
+#    define NDNBOOST_PP_SLOT_4_DIGIT_3 6
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 7
+#    define NDNBOOST_PP_SLOT_4_DIGIT_3 7
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 8
+#    define NDNBOOST_PP_SLOT_4_DIGIT_3 8
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 9
+#    define NDNBOOST_PP_SLOT_4_DIGIT_3 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_2 == 0
-#    define BOOST_PP_SLOT_4_DIGIT_2 0
-# elif BOOST_PP_SLOT_TEMP_2 == 1
-#    define BOOST_PP_SLOT_4_DIGIT_2 1
-# elif BOOST_PP_SLOT_TEMP_2 == 2
-#    define BOOST_PP_SLOT_4_DIGIT_2 2
-# elif BOOST_PP_SLOT_TEMP_2 == 3
-#    define BOOST_PP_SLOT_4_DIGIT_2 3
-# elif BOOST_PP_SLOT_TEMP_2 == 4
-#    define BOOST_PP_SLOT_4_DIGIT_2 4
-# elif BOOST_PP_SLOT_TEMP_2 == 5
-#    define BOOST_PP_SLOT_4_DIGIT_2 5
-# elif BOOST_PP_SLOT_TEMP_2 == 6
-#    define BOOST_PP_SLOT_4_DIGIT_2 6
-# elif BOOST_PP_SLOT_TEMP_2 == 7
-#    define BOOST_PP_SLOT_4_DIGIT_2 7
-# elif BOOST_PP_SLOT_TEMP_2 == 8
-#    define BOOST_PP_SLOT_4_DIGIT_2 8
-# elif BOOST_PP_SLOT_TEMP_2 == 9
-#    define BOOST_PP_SLOT_4_DIGIT_2 9
+# if NDNBOOST_PP_SLOT_TEMP_2 == 0
+#    define NDNBOOST_PP_SLOT_4_DIGIT_2 0
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 1
+#    define NDNBOOST_PP_SLOT_4_DIGIT_2 1
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 2
+#    define NDNBOOST_PP_SLOT_4_DIGIT_2 2
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 3
+#    define NDNBOOST_PP_SLOT_4_DIGIT_2 3
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 4
+#    define NDNBOOST_PP_SLOT_4_DIGIT_2 4
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 5
+#    define NDNBOOST_PP_SLOT_4_DIGIT_2 5
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 6
+#    define NDNBOOST_PP_SLOT_4_DIGIT_2 6
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 7
+#    define NDNBOOST_PP_SLOT_4_DIGIT_2 7
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 8
+#    define NDNBOOST_PP_SLOT_4_DIGIT_2 8
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 9
+#    define NDNBOOST_PP_SLOT_4_DIGIT_2 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_1 == 0
-#    define BOOST_PP_SLOT_4_DIGIT_1 0
-# elif BOOST_PP_SLOT_TEMP_1 == 1
-#    define BOOST_PP_SLOT_4_DIGIT_1 1
-# elif BOOST_PP_SLOT_TEMP_1 == 2
-#    define BOOST_PP_SLOT_4_DIGIT_1 2
-# elif BOOST_PP_SLOT_TEMP_1 == 3
-#    define BOOST_PP_SLOT_4_DIGIT_1 3
-# elif BOOST_PP_SLOT_TEMP_1 == 4
-#    define BOOST_PP_SLOT_4_DIGIT_1 4
-# elif BOOST_PP_SLOT_TEMP_1 == 5
-#    define BOOST_PP_SLOT_4_DIGIT_1 5
-# elif BOOST_PP_SLOT_TEMP_1 == 6
-#    define BOOST_PP_SLOT_4_DIGIT_1 6
-# elif BOOST_PP_SLOT_TEMP_1 == 7
-#    define BOOST_PP_SLOT_4_DIGIT_1 7
-# elif BOOST_PP_SLOT_TEMP_1 == 8
-#    define BOOST_PP_SLOT_4_DIGIT_1 8
-# elif BOOST_PP_SLOT_TEMP_1 == 9
-#    define BOOST_PP_SLOT_4_DIGIT_1 9
+# if NDNBOOST_PP_SLOT_TEMP_1 == 0
+#    define NDNBOOST_PP_SLOT_4_DIGIT_1 0
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 1
+#    define NDNBOOST_PP_SLOT_4_DIGIT_1 1
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 2
+#    define NDNBOOST_PP_SLOT_4_DIGIT_1 2
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 3
+#    define NDNBOOST_PP_SLOT_4_DIGIT_1 3
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 4
+#    define NDNBOOST_PP_SLOT_4_DIGIT_1 4
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 5
+#    define NDNBOOST_PP_SLOT_4_DIGIT_1 5
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 6
+#    define NDNBOOST_PP_SLOT_4_DIGIT_1 6
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 7
+#    define NDNBOOST_PP_SLOT_4_DIGIT_1 7
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 8
+#    define NDNBOOST_PP_SLOT_4_DIGIT_1 8
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 9
+#    define NDNBOOST_PP_SLOT_4_DIGIT_1 9
 # endif
 #
-# if BOOST_PP_SLOT_4_DIGIT_10
-#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_10(BOOST_PP_SLOT_4_DIGIT_10, BOOST_PP_SLOT_4_DIGIT_9, BOOST_PP_SLOT_4_DIGIT_8, BOOST_PP_SLOT_4_DIGIT_7, BOOST_PP_SLOT_4_DIGIT_6, BOOST_PP_SLOT_4_DIGIT_5, BOOST_PP_SLOT_4_DIGIT_4, BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)
-# elif BOOST_PP_SLOT_4_DIGIT_9
-#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_9(BOOST_PP_SLOT_4_DIGIT_9, BOOST_PP_SLOT_4_DIGIT_8, BOOST_PP_SLOT_4_DIGIT_7, BOOST_PP_SLOT_4_DIGIT_6, BOOST_PP_SLOT_4_DIGIT_5, BOOST_PP_SLOT_4_DIGIT_4, BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)
-# elif BOOST_PP_SLOT_4_DIGIT_8
-#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_8(BOOST_PP_SLOT_4_DIGIT_8, BOOST_PP_SLOT_4_DIGIT_7, BOOST_PP_SLOT_4_DIGIT_6, BOOST_PP_SLOT_4_DIGIT_5, BOOST_PP_SLOT_4_DIGIT_4, BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)
-# elif BOOST_PP_SLOT_4_DIGIT_7
-#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_7(BOOST_PP_SLOT_4_DIGIT_7, BOOST_PP_SLOT_4_DIGIT_6, BOOST_PP_SLOT_4_DIGIT_5, BOOST_PP_SLOT_4_DIGIT_4, BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)
-# elif BOOST_PP_SLOT_4_DIGIT_6
-#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_6(BOOST_PP_SLOT_4_DIGIT_6, BOOST_PP_SLOT_4_DIGIT_5, BOOST_PP_SLOT_4_DIGIT_4, BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)
-# elif BOOST_PP_SLOT_4_DIGIT_5
-#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_5(BOOST_PP_SLOT_4_DIGIT_5, BOOST_PP_SLOT_4_DIGIT_4, BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)
-# elif BOOST_PP_SLOT_4_DIGIT_4
-#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_4(BOOST_PP_SLOT_4_DIGIT_4, BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)
-# elif BOOST_PP_SLOT_4_DIGIT_3
-#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_3(BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)
-# elif BOOST_PP_SLOT_4_DIGIT_2
-#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_2(BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)
+# if NDNBOOST_PP_SLOT_4_DIGIT_10
+#    define NDNBOOST_PP_SLOT_4() NDNBOOST_PP_SLOT_CC_10(NDNBOOST_PP_SLOT_4_DIGIT_10, NDNBOOST_PP_SLOT_4_DIGIT_9, NDNBOOST_PP_SLOT_4_DIGIT_8, NDNBOOST_PP_SLOT_4_DIGIT_7, NDNBOOST_PP_SLOT_4_DIGIT_6, NDNBOOST_PP_SLOT_4_DIGIT_5, NDNBOOST_PP_SLOT_4_DIGIT_4, NDNBOOST_PP_SLOT_4_DIGIT_3, NDNBOOST_PP_SLOT_4_DIGIT_2, NDNBOOST_PP_SLOT_4_DIGIT_1)
+# elif NDNBOOST_PP_SLOT_4_DIGIT_9
+#    define NDNBOOST_PP_SLOT_4() NDNBOOST_PP_SLOT_CC_9(NDNBOOST_PP_SLOT_4_DIGIT_9, NDNBOOST_PP_SLOT_4_DIGIT_8, NDNBOOST_PP_SLOT_4_DIGIT_7, NDNBOOST_PP_SLOT_4_DIGIT_6, NDNBOOST_PP_SLOT_4_DIGIT_5, NDNBOOST_PP_SLOT_4_DIGIT_4, NDNBOOST_PP_SLOT_4_DIGIT_3, NDNBOOST_PP_SLOT_4_DIGIT_2, NDNBOOST_PP_SLOT_4_DIGIT_1)
+# elif NDNBOOST_PP_SLOT_4_DIGIT_8
+#    define NDNBOOST_PP_SLOT_4() NDNBOOST_PP_SLOT_CC_8(NDNBOOST_PP_SLOT_4_DIGIT_8, NDNBOOST_PP_SLOT_4_DIGIT_7, NDNBOOST_PP_SLOT_4_DIGIT_6, NDNBOOST_PP_SLOT_4_DIGIT_5, NDNBOOST_PP_SLOT_4_DIGIT_4, NDNBOOST_PP_SLOT_4_DIGIT_3, NDNBOOST_PP_SLOT_4_DIGIT_2, NDNBOOST_PP_SLOT_4_DIGIT_1)
+# elif NDNBOOST_PP_SLOT_4_DIGIT_7
+#    define NDNBOOST_PP_SLOT_4() NDNBOOST_PP_SLOT_CC_7(NDNBOOST_PP_SLOT_4_DIGIT_7, NDNBOOST_PP_SLOT_4_DIGIT_6, NDNBOOST_PP_SLOT_4_DIGIT_5, NDNBOOST_PP_SLOT_4_DIGIT_4, NDNBOOST_PP_SLOT_4_DIGIT_3, NDNBOOST_PP_SLOT_4_DIGIT_2, NDNBOOST_PP_SLOT_4_DIGIT_1)
+# elif NDNBOOST_PP_SLOT_4_DIGIT_6
+#    define NDNBOOST_PP_SLOT_4() NDNBOOST_PP_SLOT_CC_6(NDNBOOST_PP_SLOT_4_DIGIT_6, NDNBOOST_PP_SLOT_4_DIGIT_5, NDNBOOST_PP_SLOT_4_DIGIT_4, NDNBOOST_PP_SLOT_4_DIGIT_3, NDNBOOST_PP_SLOT_4_DIGIT_2, NDNBOOST_PP_SLOT_4_DIGIT_1)
+# elif NDNBOOST_PP_SLOT_4_DIGIT_5
+#    define NDNBOOST_PP_SLOT_4() NDNBOOST_PP_SLOT_CC_5(NDNBOOST_PP_SLOT_4_DIGIT_5, NDNBOOST_PP_SLOT_4_DIGIT_4, NDNBOOST_PP_SLOT_4_DIGIT_3, NDNBOOST_PP_SLOT_4_DIGIT_2, NDNBOOST_PP_SLOT_4_DIGIT_1)
+# elif NDNBOOST_PP_SLOT_4_DIGIT_4
+#    define NDNBOOST_PP_SLOT_4() NDNBOOST_PP_SLOT_CC_4(NDNBOOST_PP_SLOT_4_DIGIT_4, NDNBOOST_PP_SLOT_4_DIGIT_3, NDNBOOST_PP_SLOT_4_DIGIT_2, NDNBOOST_PP_SLOT_4_DIGIT_1)
+# elif NDNBOOST_PP_SLOT_4_DIGIT_3
+#    define NDNBOOST_PP_SLOT_4() NDNBOOST_PP_SLOT_CC_3(NDNBOOST_PP_SLOT_4_DIGIT_3, NDNBOOST_PP_SLOT_4_DIGIT_2, NDNBOOST_PP_SLOT_4_DIGIT_1)
+# elif NDNBOOST_PP_SLOT_4_DIGIT_2
+#    define NDNBOOST_PP_SLOT_4() NDNBOOST_PP_SLOT_CC_2(NDNBOOST_PP_SLOT_4_DIGIT_2, NDNBOOST_PP_SLOT_4_DIGIT_1)
 # else
-#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_4_DIGIT_1
+#    define NDNBOOST_PP_SLOT_4() NDNBOOST_PP_SLOT_4_DIGIT_1
 # endif
diff --git a/include/ndnboost/preprocessor/slot/detail/slot5.hpp b/include/ndnboost/preprocessor/slot/detail/slot5.hpp
index d4b8ac1..a098459 100644
--- a/include/ndnboost/preprocessor/slot/detail/slot5.hpp
+++ b/include/ndnboost/preprocessor/slot/detail/slot5.hpp
@@ -11,257 +11,257 @@
 #
 # include <ndnboost/preprocessor/slot/detail/shared.hpp>
 #
-# undef BOOST_PP_SLOT_5
+# undef NDNBOOST_PP_SLOT_5
 #
-# undef BOOST_PP_SLOT_5_DIGIT_1
-# undef BOOST_PP_SLOT_5_DIGIT_2
-# undef BOOST_PP_SLOT_5_DIGIT_3
-# undef BOOST_PP_SLOT_5_DIGIT_4
-# undef BOOST_PP_SLOT_5_DIGIT_5
-# undef BOOST_PP_SLOT_5_DIGIT_6
-# undef BOOST_PP_SLOT_5_DIGIT_7
-# undef BOOST_PP_SLOT_5_DIGIT_8
-# undef BOOST_PP_SLOT_5_DIGIT_9
-# undef BOOST_PP_SLOT_5_DIGIT_10
+# undef NDNBOOST_PP_SLOT_5_DIGIT_1
+# undef NDNBOOST_PP_SLOT_5_DIGIT_2
+# undef NDNBOOST_PP_SLOT_5_DIGIT_3
+# undef NDNBOOST_PP_SLOT_5_DIGIT_4
+# undef NDNBOOST_PP_SLOT_5_DIGIT_5
+# undef NDNBOOST_PP_SLOT_5_DIGIT_6
+# undef NDNBOOST_PP_SLOT_5_DIGIT_7
+# undef NDNBOOST_PP_SLOT_5_DIGIT_8
+# undef NDNBOOST_PP_SLOT_5_DIGIT_9
+# undef NDNBOOST_PP_SLOT_5_DIGIT_10
 #
-# if BOOST_PP_SLOT_TEMP_10 == 0
-#    define BOOST_PP_SLOT_5_DIGIT_10 0
-# elif BOOST_PP_SLOT_TEMP_10 == 1
-#    define BOOST_PP_SLOT_5_DIGIT_10 1
-# elif BOOST_PP_SLOT_TEMP_10 == 2
-#    define BOOST_PP_SLOT_5_DIGIT_10 2
-# elif BOOST_PP_SLOT_TEMP_10 == 3
-#    define BOOST_PP_SLOT_5_DIGIT_10 3
-# elif BOOST_PP_SLOT_TEMP_10 == 4
-#    define BOOST_PP_SLOT_5_DIGIT_10 4
-# elif BOOST_PP_SLOT_TEMP_10 == 5
-#    define BOOST_PP_SLOT_5_DIGIT_10 5
-# elif BOOST_PP_SLOT_TEMP_10 == 6
-#    define BOOST_PP_SLOT_5_DIGIT_10 6
-# elif BOOST_PP_SLOT_TEMP_10 == 7
-#    define BOOST_PP_SLOT_5_DIGIT_10 7
-# elif BOOST_PP_SLOT_TEMP_10 == 8
-#    define BOOST_PP_SLOT_5_DIGIT_10 8
-# elif BOOST_PP_SLOT_TEMP_10 == 9
-#    define BOOST_PP_SLOT_5_DIGIT_10 9
+# if NDNBOOST_PP_SLOT_TEMP_10 == 0
+#    define NDNBOOST_PP_SLOT_5_DIGIT_10 0
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 1
+#    define NDNBOOST_PP_SLOT_5_DIGIT_10 1
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 2
+#    define NDNBOOST_PP_SLOT_5_DIGIT_10 2
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 3
+#    define NDNBOOST_PP_SLOT_5_DIGIT_10 3
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 4
+#    define NDNBOOST_PP_SLOT_5_DIGIT_10 4
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 5
+#    define NDNBOOST_PP_SLOT_5_DIGIT_10 5
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 6
+#    define NDNBOOST_PP_SLOT_5_DIGIT_10 6
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 7
+#    define NDNBOOST_PP_SLOT_5_DIGIT_10 7
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 8
+#    define NDNBOOST_PP_SLOT_5_DIGIT_10 8
+# elif NDNBOOST_PP_SLOT_TEMP_10 == 9
+#    define NDNBOOST_PP_SLOT_5_DIGIT_10 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_9 == 0
-#    define BOOST_PP_SLOT_5_DIGIT_9 0
-# elif BOOST_PP_SLOT_TEMP_9 == 1
-#    define BOOST_PP_SLOT_5_DIGIT_9 1
-# elif BOOST_PP_SLOT_TEMP_9 == 2
-#    define BOOST_PP_SLOT_5_DIGIT_9 2
-# elif BOOST_PP_SLOT_TEMP_9 == 3
-#    define BOOST_PP_SLOT_5_DIGIT_9 3
-# elif BOOST_PP_SLOT_TEMP_9 == 4
-#    define BOOST_PP_SLOT_5_DIGIT_9 4
-# elif BOOST_PP_SLOT_TEMP_9 == 5
-#    define BOOST_PP_SLOT_5_DIGIT_9 5
-# elif BOOST_PP_SLOT_TEMP_9 == 6
-#    define BOOST_PP_SLOT_5_DIGIT_9 6
-# elif BOOST_PP_SLOT_TEMP_9 == 7
-#    define BOOST_PP_SLOT_5_DIGIT_9 7
-# elif BOOST_PP_SLOT_TEMP_9 == 8
-#    define BOOST_PP_SLOT_5_DIGIT_9 8
-# elif BOOST_PP_SLOT_TEMP_9 == 9
-#    define BOOST_PP_SLOT_5_DIGIT_9 9
+# if NDNBOOST_PP_SLOT_TEMP_9 == 0
+#    define NDNBOOST_PP_SLOT_5_DIGIT_9 0
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 1
+#    define NDNBOOST_PP_SLOT_5_DIGIT_9 1
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 2
+#    define NDNBOOST_PP_SLOT_5_DIGIT_9 2
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 3
+#    define NDNBOOST_PP_SLOT_5_DIGIT_9 3
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 4
+#    define NDNBOOST_PP_SLOT_5_DIGIT_9 4
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 5
+#    define NDNBOOST_PP_SLOT_5_DIGIT_9 5
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 6
+#    define NDNBOOST_PP_SLOT_5_DIGIT_9 6
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 7
+#    define NDNBOOST_PP_SLOT_5_DIGIT_9 7
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 8
+#    define NDNBOOST_PP_SLOT_5_DIGIT_9 8
+# elif NDNBOOST_PP_SLOT_TEMP_9 == 9
+#    define NDNBOOST_PP_SLOT_5_DIGIT_9 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_8 == 0
-#    define BOOST_PP_SLOT_5_DIGIT_8 0
-# elif BOOST_PP_SLOT_TEMP_8 == 1
-#    define BOOST_PP_SLOT_5_DIGIT_8 1
-# elif BOOST_PP_SLOT_TEMP_8 == 2
-#    define BOOST_PP_SLOT_5_DIGIT_8 2
-# elif BOOST_PP_SLOT_TEMP_8 == 3
-#    define BOOST_PP_SLOT_5_DIGIT_8 3
-# elif BOOST_PP_SLOT_TEMP_8 == 4
-#    define BOOST_PP_SLOT_5_DIGIT_8 4
-# elif BOOST_PP_SLOT_TEMP_8 == 5
-#    define BOOST_PP_SLOT_5_DIGIT_8 5
-# elif BOOST_PP_SLOT_TEMP_8 == 6
-#    define BOOST_PP_SLOT_5_DIGIT_8 6
-# elif BOOST_PP_SLOT_TEMP_8 == 7
-#    define BOOST_PP_SLOT_5_DIGIT_8 7
-# elif BOOST_PP_SLOT_TEMP_8 == 8
-#    define BOOST_PP_SLOT_5_DIGIT_8 8
-# elif BOOST_PP_SLOT_TEMP_8 == 9
-#    define BOOST_PP_SLOT_5_DIGIT_8 9
+# if NDNBOOST_PP_SLOT_TEMP_8 == 0
+#    define NDNBOOST_PP_SLOT_5_DIGIT_8 0
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 1
+#    define NDNBOOST_PP_SLOT_5_DIGIT_8 1
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 2
+#    define NDNBOOST_PP_SLOT_5_DIGIT_8 2
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 3
+#    define NDNBOOST_PP_SLOT_5_DIGIT_8 3
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 4
+#    define NDNBOOST_PP_SLOT_5_DIGIT_8 4
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 5
+#    define NDNBOOST_PP_SLOT_5_DIGIT_8 5
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 6
+#    define NDNBOOST_PP_SLOT_5_DIGIT_8 6
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 7
+#    define NDNBOOST_PP_SLOT_5_DIGIT_8 7
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 8
+#    define NDNBOOST_PP_SLOT_5_DIGIT_8 8
+# elif NDNBOOST_PP_SLOT_TEMP_8 == 9
+#    define NDNBOOST_PP_SLOT_5_DIGIT_8 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_7 == 0
-#    define BOOST_PP_SLOT_5_DIGIT_7 0
-# elif BOOST_PP_SLOT_TEMP_7 == 1
-#    define BOOST_PP_SLOT_5_DIGIT_7 1
-# elif BOOST_PP_SLOT_TEMP_7 == 2
-#    define BOOST_PP_SLOT_5_DIGIT_7 2
-# elif BOOST_PP_SLOT_TEMP_7 == 3
-#    define BOOST_PP_SLOT_5_DIGIT_7 3
-# elif BOOST_PP_SLOT_TEMP_7 == 4
-#    define BOOST_PP_SLOT_5_DIGIT_7 4
-# elif BOOST_PP_SLOT_TEMP_7 == 5
-#    define BOOST_PP_SLOT_5_DIGIT_7 5
-# elif BOOST_PP_SLOT_TEMP_7 == 6
-#    define BOOST_PP_SLOT_5_DIGIT_7 6
-# elif BOOST_PP_SLOT_TEMP_7 == 7
-#    define BOOST_PP_SLOT_5_DIGIT_7 7
-# elif BOOST_PP_SLOT_TEMP_7 == 8
-#    define BOOST_PP_SLOT_5_DIGIT_7 8
-# elif BOOST_PP_SLOT_TEMP_7 == 9
-#    define BOOST_PP_SLOT_5_DIGIT_7 9
+# if NDNBOOST_PP_SLOT_TEMP_7 == 0
+#    define NDNBOOST_PP_SLOT_5_DIGIT_7 0
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 1
+#    define NDNBOOST_PP_SLOT_5_DIGIT_7 1
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 2
+#    define NDNBOOST_PP_SLOT_5_DIGIT_7 2
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 3
+#    define NDNBOOST_PP_SLOT_5_DIGIT_7 3
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 4
+#    define NDNBOOST_PP_SLOT_5_DIGIT_7 4
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 5
+#    define NDNBOOST_PP_SLOT_5_DIGIT_7 5
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 6
+#    define NDNBOOST_PP_SLOT_5_DIGIT_7 6
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 7
+#    define NDNBOOST_PP_SLOT_5_DIGIT_7 7
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 8
+#    define NDNBOOST_PP_SLOT_5_DIGIT_7 8
+# elif NDNBOOST_PP_SLOT_TEMP_7 == 9
+#    define NDNBOOST_PP_SLOT_5_DIGIT_7 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_6 == 0
-#    define BOOST_PP_SLOT_5_DIGIT_6 0
-# elif BOOST_PP_SLOT_TEMP_6 == 1
-#    define BOOST_PP_SLOT_5_DIGIT_6 1
-# elif BOOST_PP_SLOT_TEMP_6 == 2
-#    define BOOST_PP_SLOT_5_DIGIT_6 2
-# elif BOOST_PP_SLOT_TEMP_6 == 3
-#    define BOOST_PP_SLOT_5_DIGIT_6 3
-# elif BOOST_PP_SLOT_TEMP_6 == 4
-#    define BOOST_PP_SLOT_5_DIGIT_6 4
-# elif BOOST_PP_SLOT_TEMP_6 == 5
-#    define BOOST_PP_SLOT_5_DIGIT_6 5
-# elif BOOST_PP_SLOT_TEMP_6 == 6
-#    define BOOST_PP_SLOT_5_DIGIT_6 6
-# elif BOOST_PP_SLOT_TEMP_6 == 7
-#    define BOOST_PP_SLOT_5_DIGIT_6 7
-# elif BOOST_PP_SLOT_TEMP_6 == 8
-#    define BOOST_PP_SLOT_5_DIGIT_6 8
-# elif BOOST_PP_SLOT_TEMP_6 == 9
-#    define BOOST_PP_SLOT_5_DIGIT_6 9
+# if NDNBOOST_PP_SLOT_TEMP_6 == 0
+#    define NDNBOOST_PP_SLOT_5_DIGIT_6 0
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 1
+#    define NDNBOOST_PP_SLOT_5_DIGIT_6 1
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 2
+#    define NDNBOOST_PP_SLOT_5_DIGIT_6 2
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 3
+#    define NDNBOOST_PP_SLOT_5_DIGIT_6 3
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 4
+#    define NDNBOOST_PP_SLOT_5_DIGIT_6 4
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 5
+#    define NDNBOOST_PP_SLOT_5_DIGIT_6 5
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 6
+#    define NDNBOOST_PP_SLOT_5_DIGIT_6 6
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 7
+#    define NDNBOOST_PP_SLOT_5_DIGIT_6 7
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 8
+#    define NDNBOOST_PP_SLOT_5_DIGIT_6 8
+# elif NDNBOOST_PP_SLOT_TEMP_6 == 9
+#    define NDNBOOST_PP_SLOT_5_DIGIT_6 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_5 == 0
-#    define BOOST_PP_SLOT_5_DIGIT_5 0
-# elif BOOST_PP_SLOT_TEMP_5 == 1
-#    define BOOST_PP_SLOT_5_DIGIT_5 1
-# elif BOOST_PP_SLOT_TEMP_5 == 2
-#    define BOOST_PP_SLOT_5_DIGIT_5 2
-# elif BOOST_PP_SLOT_TEMP_5 == 3
-#    define BOOST_PP_SLOT_5_DIGIT_5 3
-# elif BOOST_PP_SLOT_TEMP_5 == 4
-#    define BOOST_PP_SLOT_5_DIGIT_5 4
-# elif BOOST_PP_SLOT_TEMP_5 == 5
-#    define BOOST_PP_SLOT_5_DIGIT_5 5
-# elif BOOST_PP_SLOT_TEMP_5 == 6
-#    define BOOST_PP_SLOT_5_DIGIT_5 6
-# elif BOOST_PP_SLOT_TEMP_5 == 7
-#    define BOOST_PP_SLOT_5_DIGIT_5 7
-# elif BOOST_PP_SLOT_TEMP_5 == 8
-#    define BOOST_PP_SLOT_5_DIGIT_5 8
-# elif BOOST_PP_SLOT_TEMP_5 == 9
-#    define BOOST_PP_SLOT_5_DIGIT_5 9
+# if NDNBOOST_PP_SLOT_TEMP_5 == 0
+#    define NDNBOOST_PP_SLOT_5_DIGIT_5 0
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 1
+#    define NDNBOOST_PP_SLOT_5_DIGIT_5 1
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 2
+#    define NDNBOOST_PP_SLOT_5_DIGIT_5 2
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 3
+#    define NDNBOOST_PP_SLOT_5_DIGIT_5 3
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 4
+#    define NDNBOOST_PP_SLOT_5_DIGIT_5 4
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 5
+#    define NDNBOOST_PP_SLOT_5_DIGIT_5 5
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 6
+#    define NDNBOOST_PP_SLOT_5_DIGIT_5 6
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 7
+#    define NDNBOOST_PP_SLOT_5_DIGIT_5 7
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 8
+#    define NDNBOOST_PP_SLOT_5_DIGIT_5 8
+# elif NDNBOOST_PP_SLOT_TEMP_5 == 9
+#    define NDNBOOST_PP_SLOT_5_DIGIT_5 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_4 == 0
-#    define BOOST_PP_SLOT_5_DIGIT_4 0
-# elif BOOST_PP_SLOT_TEMP_4 == 1
-#    define BOOST_PP_SLOT_5_DIGIT_4 1
-# elif BOOST_PP_SLOT_TEMP_4 == 2
-#    define BOOST_PP_SLOT_5_DIGIT_4 2
-# elif BOOST_PP_SLOT_TEMP_4 == 3
-#    define BOOST_PP_SLOT_5_DIGIT_4 3
-# elif BOOST_PP_SLOT_TEMP_4 == 4
-#    define BOOST_PP_SLOT_5_DIGIT_4 4
-# elif BOOST_PP_SLOT_TEMP_4 == 5
-#    define BOOST_PP_SLOT_5_DIGIT_4 5
-# elif BOOST_PP_SLOT_TEMP_4 == 6
-#    define BOOST_PP_SLOT_5_DIGIT_4 6
-# elif BOOST_PP_SLOT_TEMP_4 == 7
-#    define BOOST_PP_SLOT_5_DIGIT_4 7
-# elif BOOST_PP_SLOT_TEMP_4 == 8
-#    define BOOST_PP_SLOT_5_DIGIT_4 8
-# elif BOOST_PP_SLOT_TEMP_4 == 9
-#    define BOOST_PP_SLOT_5_DIGIT_4 9
+# if NDNBOOST_PP_SLOT_TEMP_4 == 0
+#    define NDNBOOST_PP_SLOT_5_DIGIT_4 0
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 1
+#    define NDNBOOST_PP_SLOT_5_DIGIT_4 1
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 2
+#    define NDNBOOST_PP_SLOT_5_DIGIT_4 2
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 3
+#    define NDNBOOST_PP_SLOT_5_DIGIT_4 3
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 4
+#    define NDNBOOST_PP_SLOT_5_DIGIT_4 4
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 5
+#    define NDNBOOST_PP_SLOT_5_DIGIT_4 5
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 6
+#    define NDNBOOST_PP_SLOT_5_DIGIT_4 6
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 7
+#    define NDNBOOST_PP_SLOT_5_DIGIT_4 7
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 8
+#    define NDNBOOST_PP_SLOT_5_DIGIT_4 8
+# elif NDNBOOST_PP_SLOT_TEMP_4 == 9
+#    define NDNBOOST_PP_SLOT_5_DIGIT_4 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_3 == 0
-#    define BOOST_PP_SLOT_5_DIGIT_3 0
-# elif BOOST_PP_SLOT_TEMP_3 == 1
-#    define BOOST_PP_SLOT_5_DIGIT_3 1
-# elif BOOST_PP_SLOT_TEMP_3 == 2
-#    define BOOST_PP_SLOT_5_DIGIT_3 2
-# elif BOOST_PP_SLOT_TEMP_3 == 3
-#    define BOOST_PP_SLOT_5_DIGIT_3 3
-# elif BOOST_PP_SLOT_TEMP_3 == 4
-#    define BOOST_PP_SLOT_5_DIGIT_3 4
-# elif BOOST_PP_SLOT_TEMP_3 == 5
-#    define BOOST_PP_SLOT_5_DIGIT_3 5
-# elif BOOST_PP_SLOT_TEMP_3 == 6
-#    define BOOST_PP_SLOT_5_DIGIT_3 6
-# elif BOOST_PP_SLOT_TEMP_3 == 7
-#    define BOOST_PP_SLOT_5_DIGIT_3 7
-# elif BOOST_PP_SLOT_TEMP_3 == 8
-#    define BOOST_PP_SLOT_5_DIGIT_3 8
-# elif BOOST_PP_SLOT_TEMP_3 == 9
-#    define BOOST_PP_SLOT_5_DIGIT_3 9
+# if NDNBOOST_PP_SLOT_TEMP_3 == 0
+#    define NDNBOOST_PP_SLOT_5_DIGIT_3 0
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 1
+#    define NDNBOOST_PP_SLOT_5_DIGIT_3 1
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 2
+#    define NDNBOOST_PP_SLOT_5_DIGIT_3 2
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 3
+#    define NDNBOOST_PP_SLOT_5_DIGIT_3 3
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 4
+#    define NDNBOOST_PP_SLOT_5_DIGIT_3 4
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 5
+#    define NDNBOOST_PP_SLOT_5_DIGIT_3 5
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 6
+#    define NDNBOOST_PP_SLOT_5_DIGIT_3 6
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 7
+#    define NDNBOOST_PP_SLOT_5_DIGIT_3 7
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 8
+#    define NDNBOOST_PP_SLOT_5_DIGIT_3 8
+# elif NDNBOOST_PP_SLOT_TEMP_3 == 9
+#    define NDNBOOST_PP_SLOT_5_DIGIT_3 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_2 == 0
-#    define BOOST_PP_SLOT_5_DIGIT_2 0
-# elif BOOST_PP_SLOT_TEMP_2 == 1
-#    define BOOST_PP_SLOT_5_DIGIT_2 1
-# elif BOOST_PP_SLOT_TEMP_2 == 2
-#    define BOOST_PP_SLOT_5_DIGIT_2 2
-# elif BOOST_PP_SLOT_TEMP_2 == 3
-#    define BOOST_PP_SLOT_5_DIGIT_2 3
-# elif BOOST_PP_SLOT_TEMP_2 == 4
-#    define BOOST_PP_SLOT_5_DIGIT_2 4
-# elif BOOST_PP_SLOT_TEMP_2 == 5
-#    define BOOST_PP_SLOT_5_DIGIT_2 5
-# elif BOOST_PP_SLOT_TEMP_2 == 6
-#    define BOOST_PP_SLOT_5_DIGIT_2 6
-# elif BOOST_PP_SLOT_TEMP_2 == 7
-#    define BOOST_PP_SLOT_5_DIGIT_2 7
-# elif BOOST_PP_SLOT_TEMP_2 == 8
-#    define BOOST_PP_SLOT_5_DIGIT_2 8
-# elif BOOST_PP_SLOT_TEMP_2 == 9
-#    define BOOST_PP_SLOT_5_DIGIT_2 9
+# if NDNBOOST_PP_SLOT_TEMP_2 == 0
+#    define NDNBOOST_PP_SLOT_5_DIGIT_2 0
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 1
+#    define NDNBOOST_PP_SLOT_5_DIGIT_2 1
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 2
+#    define NDNBOOST_PP_SLOT_5_DIGIT_2 2
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 3
+#    define NDNBOOST_PP_SLOT_5_DIGIT_2 3
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 4
+#    define NDNBOOST_PP_SLOT_5_DIGIT_2 4
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 5
+#    define NDNBOOST_PP_SLOT_5_DIGIT_2 5
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 6
+#    define NDNBOOST_PP_SLOT_5_DIGIT_2 6
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 7
+#    define NDNBOOST_PP_SLOT_5_DIGIT_2 7
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 8
+#    define NDNBOOST_PP_SLOT_5_DIGIT_2 8
+# elif NDNBOOST_PP_SLOT_TEMP_2 == 9
+#    define NDNBOOST_PP_SLOT_5_DIGIT_2 9
 # endif
 #
-# if BOOST_PP_SLOT_TEMP_1 == 0
-#    define BOOST_PP_SLOT_5_DIGIT_1 0
-# elif BOOST_PP_SLOT_TEMP_1 == 1
-#    define BOOST_PP_SLOT_5_DIGIT_1 1
-# elif BOOST_PP_SLOT_TEMP_1 == 2
-#    define BOOST_PP_SLOT_5_DIGIT_1 2
-# elif BOOST_PP_SLOT_TEMP_1 == 3
-#    define BOOST_PP_SLOT_5_DIGIT_1 3
-# elif BOOST_PP_SLOT_TEMP_1 == 4
-#    define BOOST_PP_SLOT_5_DIGIT_1 4
-# elif BOOST_PP_SLOT_TEMP_1 == 5
-#    define BOOST_PP_SLOT_5_DIGIT_1 5
-# elif BOOST_PP_SLOT_TEMP_1 == 6
-#    define BOOST_PP_SLOT_5_DIGIT_1 6
-# elif BOOST_PP_SLOT_TEMP_1 == 7
-#    define BOOST_PP_SLOT_5_DIGIT_1 7
-# elif BOOST_PP_SLOT_TEMP_1 == 8
-#    define BOOST_PP_SLOT_5_DIGIT_1 8
-# elif BOOST_PP_SLOT_TEMP_1 == 9
-#    define BOOST_PP_SLOT_5_DIGIT_1 9
+# if NDNBOOST_PP_SLOT_TEMP_1 == 0
+#    define NDNBOOST_PP_SLOT_5_DIGIT_1 0
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 1
+#    define NDNBOOST_PP_SLOT_5_DIGIT_1 1
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 2
+#    define NDNBOOST_PP_SLOT_5_DIGIT_1 2
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 3
+#    define NDNBOOST_PP_SLOT_5_DIGIT_1 3
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 4
+#    define NDNBOOST_PP_SLOT_5_DIGIT_1 4
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 5
+#    define NDNBOOST_PP_SLOT_5_DIGIT_1 5
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 6
+#    define NDNBOOST_PP_SLOT_5_DIGIT_1 6
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 7
+#    define NDNBOOST_PP_SLOT_5_DIGIT_1 7
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 8
+#    define NDNBOOST_PP_SLOT_5_DIGIT_1 8
+# elif NDNBOOST_PP_SLOT_TEMP_1 == 9
+#    define NDNBOOST_PP_SLOT_5_DIGIT_1 9
 # endif
 #
-# if BOOST_PP_SLOT_5_DIGIT_10
-#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_10(BOOST_PP_SLOT_5_DIGIT_10, BOOST_PP_SLOT_5_DIGIT_9, BOOST_PP_SLOT_5_DIGIT_8, BOOST_PP_SLOT_5_DIGIT_7, BOOST_PP_SLOT_5_DIGIT_6, BOOST_PP_SLOT_5_DIGIT_5, BOOST_PP_SLOT_5_DIGIT_4, BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)
-# elif BOOST_PP_SLOT_5_DIGIT_9
-#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_9(BOOST_PP_SLOT_5_DIGIT_9, BOOST_PP_SLOT_5_DIGIT_8, BOOST_PP_SLOT_5_DIGIT_7, BOOST_PP_SLOT_5_DIGIT_6, BOOST_PP_SLOT_5_DIGIT_5, BOOST_PP_SLOT_5_DIGIT_4, BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)
-# elif BOOST_PP_SLOT_5_DIGIT_8
-#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_8(BOOST_PP_SLOT_5_DIGIT_8, BOOST_PP_SLOT_5_DIGIT_7, BOOST_PP_SLOT_5_DIGIT_6, BOOST_PP_SLOT_5_DIGIT_5, BOOST_PP_SLOT_5_DIGIT_4, BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)
-# elif BOOST_PP_SLOT_5_DIGIT_7
-#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_7(BOOST_PP_SLOT_5_DIGIT_7, BOOST_PP_SLOT_5_DIGIT_6, BOOST_PP_SLOT_5_DIGIT_5, BOOST_PP_SLOT_5_DIGIT_4, BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)
-# elif BOOST_PP_SLOT_5_DIGIT_6
-#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_6(BOOST_PP_SLOT_5_DIGIT_6, BOOST_PP_SLOT_5_DIGIT_5, BOOST_PP_SLOT_5_DIGIT_4, BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)
-# elif BOOST_PP_SLOT_5_DIGIT_5
-#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_5(BOOST_PP_SLOT_5_DIGIT_5, BOOST_PP_SLOT_5_DIGIT_4, BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)
-# elif BOOST_PP_SLOT_5_DIGIT_4
-#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_4(BOOST_PP_SLOT_5_DIGIT_4, BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)
-# elif BOOST_PP_SLOT_5_DIGIT_3
-#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_3(BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)
-# elif BOOST_PP_SLOT_5_DIGIT_2
-#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_2(BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)
+# if NDNBOOST_PP_SLOT_5_DIGIT_10
+#    define NDNBOOST_PP_SLOT_5() NDNBOOST_PP_SLOT_CC_10(NDNBOOST_PP_SLOT_5_DIGIT_10, NDNBOOST_PP_SLOT_5_DIGIT_9, NDNBOOST_PP_SLOT_5_DIGIT_8, NDNBOOST_PP_SLOT_5_DIGIT_7, NDNBOOST_PP_SLOT_5_DIGIT_6, NDNBOOST_PP_SLOT_5_DIGIT_5, NDNBOOST_PP_SLOT_5_DIGIT_4, NDNBOOST_PP_SLOT_5_DIGIT_3, NDNBOOST_PP_SLOT_5_DIGIT_2, NDNBOOST_PP_SLOT_5_DIGIT_1)
+# elif NDNBOOST_PP_SLOT_5_DIGIT_9
+#    define NDNBOOST_PP_SLOT_5() NDNBOOST_PP_SLOT_CC_9(NDNBOOST_PP_SLOT_5_DIGIT_9, NDNBOOST_PP_SLOT_5_DIGIT_8, NDNBOOST_PP_SLOT_5_DIGIT_7, NDNBOOST_PP_SLOT_5_DIGIT_6, NDNBOOST_PP_SLOT_5_DIGIT_5, NDNBOOST_PP_SLOT_5_DIGIT_4, NDNBOOST_PP_SLOT_5_DIGIT_3, NDNBOOST_PP_SLOT_5_DIGIT_2, NDNBOOST_PP_SLOT_5_DIGIT_1)
+# elif NDNBOOST_PP_SLOT_5_DIGIT_8
+#    define NDNBOOST_PP_SLOT_5() NDNBOOST_PP_SLOT_CC_8(NDNBOOST_PP_SLOT_5_DIGIT_8, NDNBOOST_PP_SLOT_5_DIGIT_7, NDNBOOST_PP_SLOT_5_DIGIT_6, NDNBOOST_PP_SLOT_5_DIGIT_5, NDNBOOST_PP_SLOT_5_DIGIT_4, NDNBOOST_PP_SLOT_5_DIGIT_3, NDNBOOST_PP_SLOT_5_DIGIT_2, NDNBOOST_PP_SLOT_5_DIGIT_1)
+# elif NDNBOOST_PP_SLOT_5_DIGIT_7
+#    define NDNBOOST_PP_SLOT_5() NDNBOOST_PP_SLOT_CC_7(NDNBOOST_PP_SLOT_5_DIGIT_7, NDNBOOST_PP_SLOT_5_DIGIT_6, NDNBOOST_PP_SLOT_5_DIGIT_5, NDNBOOST_PP_SLOT_5_DIGIT_4, NDNBOOST_PP_SLOT_5_DIGIT_3, NDNBOOST_PP_SLOT_5_DIGIT_2, NDNBOOST_PP_SLOT_5_DIGIT_1)
+# elif NDNBOOST_PP_SLOT_5_DIGIT_6
+#    define NDNBOOST_PP_SLOT_5() NDNBOOST_PP_SLOT_CC_6(NDNBOOST_PP_SLOT_5_DIGIT_6, NDNBOOST_PP_SLOT_5_DIGIT_5, NDNBOOST_PP_SLOT_5_DIGIT_4, NDNBOOST_PP_SLOT_5_DIGIT_3, NDNBOOST_PP_SLOT_5_DIGIT_2, NDNBOOST_PP_SLOT_5_DIGIT_1)
+# elif NDNBOOST_PP_SLOT_5_DIGIT_5
+#    define NDNBOOST_PP_SLOT_5() NDNBOOST_PP_SLOT_CC_5(NDNBOOST_PP_SLOT_5_DIGIT_5, NDNBOOST_PP_SLOT_5_DIGIT_4, NDNBOOST_PP_SLOT_5_DIGIT_3, NDNBOOST_PP_SLOT_5_DIGIT_2, NDNBOOST_PP_SLOT_5_DIGIT_1)
+# elif NDNBOOST_PP_SLOT_5_DIGIT_4
+#    define NDNBOOST_PP_SLOT_5() NDNBOOST_PP_SLOT_CC_4(NDNBOOST_PP_SLOT_5_DIGIT_4, NDNBOOST_PP_SLOT_5_DIGIT_3, NDNBOOST_PP_SLOT_5_DIGIT_2, NDNBOOST_PP_SLOT_5_DIGIT_1)
+# elif NDNBOOST_PP_SLOT_5_DIGIT_3
+#    define NDNBOOST_PP_SLOT_5() NDNBOOST_PP_SLOT_CC_3(NDNBOOST_PP_SLOT_5_DIGIT_3, NDNBOOST_PP_SLOT_5_DIGIT_2, NDNBOOST_PP_SLOT_5_DIGIT_1)
+# elif NDNBOOST_PP_SLOT_5_DIGIT_2
+#    define NDNBOOST_PP_SLOT_5() NDNBOOST_PP_SLOT_CC_2(NDNBOOST_PP_SLOT_5_DIGIT_2, NDNBOOST_PP_SLOT_5_DIGIT_1)
 # else
-#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_5_DIGIT_1
+#    define NDNBOOST_PP_SLOT_5() NDNBOOST_PP_SLOT_5_DIGIT_1
 # endif
diff --git a/include/ndnboost/preprocessor/slot/slot.hpp b/include/ndnboost/preprocessor/slot/slot.hpp
index f8fe419..76622bc 100644
--- a/include/ndnboost/preprocessor/slot/slot.hpp
+++ b/include/ndnboost/preprocessor/slot/slot.hpp
@@ -9,24 +9,24 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_SLOT_SLOT_HPP
-# define BOOST_PREPROCESSOR_SLOT_SLOT_HPP
+# ifndef NDNBOOST_PREPROCESSOR_SLOT_SLOT_HPP
+# define NDNBOOST_PREPROCESSOR_SLOT_SLOT_HPP
 #
 # include <ndnboost/preprocessor/cat.hpp>
 # include <ndnboost/preprocessor/slot/detail/def.hpp>
 #
-# /* BOOST_PP_ASSIGN_SLOT */
+# /* NDNBOOST_PP_ASSIGN_SLOT */
 #
-# define BOOST_PP_ASSIGN_SLOT(i) BOOST_PP_CAT(BOOST_PP_ASSIGN_SLOT_, i)
+# define NDNBOOST_PP_ASSIGN_SLOT(i) NDNBOOST_PP_CAT(NDNBOOST_PP_ASSIGN_SLOT_, i)
 #
-# define BOOST_PP_ASSIGN_SLOT_1 <ndnboost/preprocessor/slot/detail/slot1.hpp>
-# define BOOST_PP_ASSIGN_SLOT_2 <ndnboost/preprocessor/slot/detail/slot2.hpp>
-# define BOOST_PP_ASSIGN_SLOT_3 <ndnboost/preprocessor/slot/detail/slot3.hpp>
-# define BOOST_PP_ASSIGN_SLOT_4 <ndnboost/preprocessor/slot/detail/slot4.hpp>
-# define BOOST_PP_ASSIGN_SLOT_5 <ndnboost/preprocessor/slot/detail/slot5.hpp>
+# define NDNBOOST_PP_ASSIGN_SLOT_1 <ndnboost/preprocessor/slot/detail/slot1.hpp>
+# define NDNBOOST_PP_ASSIGN_SLOT_2 <ndnboost/preprocessor/slot/detail/slot2.hpp>
+# define NDNBOOST_PP_ASSIGN_SLOT_3 <ndnboost/preprocessor/slot/detail/slot3.hpp>
+# define NDNBOOST_PP_ASSIGN_SLOT_4 <ndnboost/preprocessor/slot/detail/slot4.hpp>
+# define NDNBOOST_PP_ASSIGN_SLOT_5 <ndnboost/preprocessor/slot/detail/slot5.hpp>
 #
-# /* BOOST_PP_SLOT */
+# /* NDNBOOST_PP_SLOT */
 #
-# define BOOST_PP_SLOT(i) BOOST_PP_CAT(BOOST_PP_SLOT_, i)()
+# define NDNBOOST_PP_SLOT(i) NDNBOOST_PP_CAT(NDNBOOST_PP_SLOT_, i)()
 #
 # endif
diff --git a/include/ndnboost/preprocessor/stringize.hpp b/include/ndnboost/preprocessor/stringize.hpp
index d682cc5..b9b4a6a 100644
--- a/include/ndnboost/preprocessor/stringize.hpp
+++ b/include/ndnboost/preprocessor/stringize.hpp
@@ -11,23 +11,23 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_STRINGIZE_HPP
-# define BOOST_PREPROCESSOR_STRINGIZE_HPP
+# ifndef NDNBOOST_PREPROCESSOR_STRINGIZE_HPP
+# define NDNBOOST_PREPROCESSOR_STRINGIZE_HPP
 #
 # include <ndnboost/preprocessor/config/config.hpp>
 #
-# /* BOOST_PP_STRINGIZE */
+# /* NDNBOOST_PP_STRINGIZE */
 #
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-#    define BOOST_PP_STRINGIZE(text) BOOST_PP_STRINGIZE_A((text))
-#    define BOOST_PP_STRINGIZE_A(arg) BOOST_PP_STRINGIZE_I arg
-# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_STRINGIZE(text) BOOST_PP_STRINGIZE_OO((text))
-#    define BOOST_PP_STRINGIZE_OO(par) BOOST_PP_STRINGIZE_I ## par
+# if NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MSVC()
+#    define NDNBOOST_PP_STRINGIZE(text) NDNBOOST_PP_STRINGIZE_A((text))
+#    define NDNBOOST_PP_STRINGIZE_A(arg) NDNBOOST_PP_STRINGIZE_I arg
+# elif NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MWCC()
+#    define NDNBOOST_PP_STRINGIZE(text) NDNBOOST_PP_STRINGIZE_OO((text))
+#    define NDNBOOST_PP_STRINGIZE_OO(par) NDNBOOST_PP_STRINGIZE_I ## par
 # else
-#    define BOOST_PP_STRINGIZE(text) BOOST_PP_STRINGIZE_I(text)
+#    define NDNBOOST_PP_STRINGIZE(text) NDNBOOST_PP_STRINGIZE_I(text)
 # endif
 #
-# define BOOST_PP_STRINGIZE_I(text) #text
+# define NDNBOOST_PP_STRINGIZE_I(text) #text
 #
 # endif
diff --git a/include/ndnboost/preprocessor/tuple/eat.hpp b/include/ndnboost/preprocessor/tuple/eat.hpp
index 89fe571..9104649 100644
--- a/include/ndnboost/preprocessor/tuple/eat.hpp
+++ b/include/ndnboost/preprocessor/tuple/eat.hpp
@@ -12,95 +12,95 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_TUPLE_EAT_HPP
-# define BOOST_PREPROCESSOR_TUPLE_EAT_HPP
+# ifndef NDNBOOST_PREPROCESSOR_TUPLE_EAT_HPP
+# define NDNBOOST_PREPROCESSOR_TUPLE_EAT_HPP
 #
 # include <ndnboost/preprocessor/config/config.hpp>
 #
-# /* BOOST_PP_EAT */
+# /* NDNBOOST_PP_EAT */
 #
-# if BOOST_PP_VARIADICS
-#    define BOOST_PP_EAT(...)
+# if NDNBOOST_PP_VARIADICS
+#    define NDNBOOST_PP_EAT(...)
 # else
-#    define BOOST_PP_EAT(x)
+#    define NDNBOOST_PP_EAT(x)
 # endif
 #
-# /* BOOST_PP_TUPLE_EAT */
+# /* NDNBOOST_PP_TUPLE_EAT */
 #
-# if BOOST_PP_VARIADICS
-#    define BOOST_PP_TUPLE_EAT(size) BOOST_PP_EAT
+# if NDNBOOST_PP_VARIADICS
+#    define NDNBOOST_PP_TUPLE_EAT(size) NDNBOOST_PP_EAT
 # else
-#    if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#        define BOOST_PP_TUPLE_EAT(size) BOOST_PP_TUPLE_EAT_I(size)
+#    if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MWCC()
+#        define NDNBOOST_PP_TUPLE_EAT(size) NDNBOOST_PP_TUPLE_EAT_I(size)
 #    else
-#        define BOOST_PP_TUPLE_EAT(size) BOOST_PP_TUPLE_EAT_OO((size))
-#        define BOOST_PP_TUPLE_EAT_OO(par) BOOST_PP_TUPLE_EAT_I ## par
+#        define NDNBOOST_PP_TUPLE_EAT(size) NDNBOOST_PP_TUPLE_EAT_OO((size))
+#        define NDNBOOST_PP_TUPLE_EAT_OO(par) NDNBOOST_PP_TUPLE_EAT_I ## par
 #    endif
-#    define BOOST_PP_TUPLE_EAT_I(size) BOOST_PP_TUPLE_EAT_ ## size
+#    define NDNBOOST_PP_TUPLE_EAT_I(size) NDNBOOST_PP_TUPLE_EAT_ ## size
 # endif
-# define BOOST_PP_TUPLE_EAT_1(e0)
-# define BOOST_PP_TUPLE_EAT_2(e0, e1)
-# define BOOST_PP_TUPLE_EAT_3(e0, e1, e2)
-# define BOOST_PP_TUPLE_EAT_4(e0, e1, e2, e3)
-# define BOOST_PP_TUPLE_EAT_5(e0, e1, e2, e3, e4)
-# define BOOST_PP_TUPLE_EAT_6(e0, e1, e2, e3, e4, e5)
-# define BOOST_PP_TUPLE_EAT_7(e0, e1, e2, e3, e4, e5, e6)
-# define BOOST_PP_TUPLE_EAT_8(e0, e1, e2, e3, e4, e5, e6, e7)
-# define BOOST_PP_TUPLE_EAT_9(e0, e1, e2, e3, e4, e5, e6, e7, e8)
-# define BOOST_PP_TUPLE_EAT_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9)
-# define BOOST_PP_TUPLE_EAT_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10)
-# define BOOST_PP_TUPLE_EAT_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11)
-# define BOOST_PP_TUPLE_EAT_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12)
-# define BOOST_PP_TUPLE_EAT_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13)
-# define BOOST_PP_TUPLE_EAT_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14)
-# define BOOST_PP_TUPLE_EAT_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15)
-# define BOOST_PP_TUPLE_EAT_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16)
-# define BOOST_PP_TUPLE_EAT_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17)
-# define BOOST_PP_TUPLE_EAT_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18)
-# define BOOST_PP_TUPLE_EAT_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19)
-# define BOOST_PP_TUPLE_EAT_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20)
-# define BOOST_PP_TUPLE_EAT_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21)
-# define BOOST_PP_TUPLE_EAT_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22)
-# define BOOST_PP_TUPLE_EAT_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23)
-# define BOOST_PP_TUPLE_EAT_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24)
-# define BOOST_PP_TUPLE_EAT_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25)
-# define BOOST_PP_TUPLE_EAT_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26)
-# define BOOST_PP_TUPLE_EAT_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27)
-# define BOOST_PP_TUPLE_EAT_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28)
-# define BOOST_PP_TUPLE_EAT_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29)
-# define BOOST_PP_TUPLE_EAT_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30)
-# define BOOST_PP_TUPLE_EAT_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31)
-# define BOOST_PP_TUPLE_EAT_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32)
-# define BOOST_PP_TUPLE_EAT_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33)
-# define BOOST_PP_TUPLE_EAT_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34)
-# define BOOST_PP_TUPLE_EAT_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35)
-# define BOOST_PP_TUPLE_EAT_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36)
-# define BOOST_PP_TUPLE_EAT_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37)
-# define BOOST_PP_TUPLE_EAT_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38)
-# define BOOST_PP_TUPLE_EAT_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39)
-# define BOOST_PP_TUPLE_EAT_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40)
-# define BOOST_PP_TUPLE_EAT_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41)
-# define BOOST_PP_TUPLE_EAT_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42)
-# define BOOST_PP_TUPLE_EAT_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43)
-# define BOOST_PP_TUPLE_EAT_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44)
-# define BOOST_PP_TUPLE_EAT_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45)
-# define BOOST_PP_TUPLE_EAT_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46)
-# define BOOST_PP_TUPLE_EAT_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47)
-# define BOOST_PP_TUPLE_EAT_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48)
-# define BOOST_PP_TUPLE_EAT_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49)
-# define BOOST_PP_TUPLE_EAT_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50)
-# define BOOST_PP_TUPLE_EAT_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51)
-# define BOOST_PP_TUPLE_EAT_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52)
-# define BOOST_PP_TUPLE_EAT_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53)
-# define BOOST_PP_TUPLE_EAT_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54)
-# define BOOST_PP_TUPLE_EAT_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55)
-# define BOOST_PP_TUPLE_EAT_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56)
-# define BOOST_PP_TUPLE_EAT_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57)
-# define BOOST_PP_TUPLE_EAT_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58)
-# define BOOST_PP_TUPLE_EAT_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59)
-# define BOOST_PP_TUPLE_EAT_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60)
-# define BOOST_PP_TUPLE_EAT_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61)
-# define BOOST_PP_TUPLE_EAT_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62)
-# define BOOST_PP_TUPLE_EAT_64(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63)
+# define NDNBOOST_PP_TUPLE_EAT_1(e0)
+# define NDNBOOST_PP_TUPLE_EAT_2(e0, e1)
+# define NDNBOOST_PP_TUPLE_EAT_3(e0, e1, e2)
+# define NDNBOOST_PP_TUPLE_EAT_4(e0, e1, e2, e3)
+# define NDNBOOST_PP_TUPLE_EAT_5(e0, e1, e2, e3, e4)
+# define NDNBOOST_PP_TUPLE_EAT_6(e0, e1, e2, e3, e4, e5)
+# define NDNBOOST_PP_TUPLE_EAT_7(e0, e1, e2, e3, e4, e5, e6)
+# define NDNBOOST_PP_TUPLE_EAT_8(e0, e1, e2, e3, e4, e5, e6, e7)
+# define NDNBOOST_PP_TUPLE_EAT_9(e0, e1, e2, e3, e4, e5, e6, e7, e8)
+# define NDNBOOST_PP_TUPLE_EAT_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9)
+# define NDNBOOST_PP_TUPLE_EAT_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10)
+# define NDNBOOST_PP_TUPLE_EAT_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11)
+# define NDNBOOST_PP_TUPLE_EAT_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12)
+# define NDNBOOST_PP_TUPLE_EAT_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13)
+# define NDNBOOST_PP_TUPLE_EAT_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14)
+# define NDNBOOST_PP_TUPLE_EAT_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15)
+# define NDNBOOST_PP_TUPLE_EAT_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16)
+# define NDNBOOST_PP_TUPLE_EAT_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17)
+# define NDNBOOST_PP_TUPLE_EAT_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18)
+# define NDNBOOST_PP_TUPLE_EAT_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19)
+# define NDNBOOST_PP_TUPLE_EAT_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20)
+# define NDNBOOST_PP_TUPLE_EAT_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21)
+# define NDNBOOST_PP_TUPLE_EAT_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22)
+# define NDNBOOST_PP_TUPLE_EAT_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23)
+# define NDNBOOST_PP_TUPLE_EAT_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24)
+# define NDNBOOST_PP_TUPLE_EAT_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25)
+# define NDNBOOST_PP_TUPLE_EAT_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26)
+# define NDNBOOST_PP_TUPLE_EAT_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27)
+# define NDNBOOST_PP_TUPLE_EAT_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28)
+# define NDNBOOST_PP_TUPLE_EAT_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29)
+# define NDNBOOST_PP_TUPLE_EAT_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30)
+# define NDNBOOST_PP_TUPLE_EAT_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31)
+# define NDNBOOST_PP_TUPLE_EAT_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32)
+# define NDNBOOST_PP_TUPLE_EAT_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33)
+# define NDNBOOST_PP_TUPLE_EAT_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34)
+# define NDNBOOST_PP_TUPLE_EAT_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35)
+# define NDNBOOST_PP_TUPLE_EAT_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36)
+# define NDNBOOST_PP_TUPLE_EAT_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37)
+# define NDNBOOST_PP_TUPLE_EAT_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38)
+# define NDNBOOST_PP_TUPLE_EAT_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39)
+# define NDNBOOST_PP_TUPLE_EAT_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40)
+# define NDNBOOST_PP_TUPLE_EAT_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41)
+# define NDNBOOST_PP_TUPLE_EAT_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42)
+# define NDNBOOST_PP_TUPLE_EAT_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43)
+# define NDNBOOST_PP_TUPLE_EAT_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44)
+# define NDNBOOST_PP_TUPLE_EAT_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45)
+# define NDNBOOST_PP_TUPLE_EAT_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46)
+# define NDNBOOST_PP_TUPLE_EAT_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47)
+# define NDNBOOST_PP_TUPLE_EAT_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48)
+# define NDNBOOST_PP_TUPLE_EAT_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49)
+# define NDNBOOST_PP_TUPLE_EAT_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50)
+# define NDNBOOST_PP_TUPLE_EAT_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51)
+# define NDNBOOST_PP_TUPLE_EAT_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52)
+# define NDNBOOST_PP_TUPLE_EAT_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53)
+# define NDNBOOST_PP_TUPLE_EAT_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54)
+# define NDNBOOST_PP_TUPLE_EAT_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55)
+# define NDNBOOST_PP_TUPLE_EAT_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56)
+# define NDNBOOST_PP_TUPLE_EAT_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57)
+# define NDNBOOST_PP_TUPLE_EAT_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58)
+# define NDNBOOST_PP_TUPLE_EAT_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59)
+# define NDNBOOST_PP_TUPLE_EAT_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60)
+# define NDNBOOST_PP_TUPLE_EAT_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61)
+# define NDNBOOST_PP_TUPLE_EAT_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62)
+# define NDNBOOST_PP_TUPLE_EAT_64(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63)
 #
 # endif
diff --git a/include/ndnboost/preprocessor/tuple/elem.hpp b/include/ndnboost/preprocessor/tuple/elem.hpp
index ac2dcdd..90555f7 100644
--- a/include/ndnboost/preprocessor/tuple/elem.hpp
+++ b/include/ndnboost/preprocessor/tuple/elem.hpp
@@ -12,8 +12,8 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_TUPLE_ELEM_HPP
-# define BOOST_PREPROCESSOR_TUPLE_ELEM_HPP
+# ifndef NDNBOOST_PREPROCESSOR_TUPLE_ELEM_HPP
+# define NDNBOOST_PREPROCESSOR_TUPLE_ELEM_HPP
 #
 # include <ndnboost/preprocessor/cat.hpp>
 # include <ndnboost/preprocessor/config/config.hpp>
@@ -21,171 +21,171 @@
 # include <ndnboost/preprocessor/tuple/rem.hpp>
 # include <ndnboost/preprocessor/variadic/elem.hpp>
 #
-# if BOOST_PP_VARIADICS
-#    if BOOST_PP_VARIADICS_MSVC
-#        define BOOST_PP_TUPLE_ELEM(...) BOOST_PP_TUPLE_ELEM_I(BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_ELEM_O_, __VA_ARGS__), (__VA_ARGS__))
-#        define BOOST_PP_TUPLE_ELEM_I(m, args) BOOST_PP_TUPLE_ELEM_II(m, args)
-#        define BOOST_PP_TUPLE_ELEM_II(m, args) BOOST_PP_CAT(m ## args,)
+# if NDNBOOST_PP_VARIADICS
+#    if NDNBOOST_PP_VARIADICS_MSVC
+#        define NDNBOOST_PP_TUPLE_ELEM(...) NDNBOOST_PP_TUPLE_ELEM_I(NDNBOOST_PP_OVERLOAD(NDNBOOST_PP_TUPLE_ELEM_O_, __VA_ARGS__), (__VA_ARGS__))
+#        define NDNBOOST_PP_TUPLE_ELEM_I(m, args) NDNBOOST_PP_TUPLE_ELEM_II(m, args)
+#        define NDNBOOST_PP_TUPLE_ELEM_II(m, args) NDNBOOST_PP_CAT(m ## args,)
 #    else
-#        define BOOST_PP_TUPLE_ELEM(...) BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_ELEM_O_, __VA_ARGS__)(__VA_ARGS__)
+#        define NDNBOOST_PP_TUPLE_ELEM(...) NDNBOOST_PP_OVERLOAD(NDNBOOST_PP_TUPLE_ELEM_O_, __VA_ARGS__)(__VA_ARGS__)
 #    endif
-#    define BOOST_PP_TUPLE_ELEM_O_2(n, tuple) BOOST_PP_VARIADIC_ELEM(n, BOOST_PP_REM tuple)
-#    define BOOST_PP_TUPLE_ELEM_O_3(size, n, tuple) BOOST_PP_TUPLE_ELEM_O_2(n, tuple)
+#    define NDNBOOST_PP_TUPLE_ELEM_O_2(n, tuple) NDNBOOST_PP_VARIADIC_ELEM(n, NDNBOOST_PP_REM tuple)
+#    define NDNBOOST_PP_TUPLE_ELEM_O_3(size, n, tuple) NDNBOOST_PP_TUPLE_ELEM_O_2(n, tuple)
 # else
-#    if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-#        define BOOST_PP_TUPLE_ELEM(size, n, tuple) BOOST_PP_TUPLE_ELEM_I(BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM_, n), BOOST_PP_CAT(BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM_E_, size), tuple))
-#        define BOOST_PP_TUPLE_ELEM_I(m, args) BOOST_PP_TUPLE_ELEM_II(m, args)
-#        define BOOST_PP_TUPLE_ELEM_II(m, args) BOOST_PP_CAT(m ## args,)
-#    elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#        define BOOST_PP_TUPLE_ELEM(size, n, tuple) BOOST_PP_TUPLE_ELEM_I_OO((size, n, tuple))
-#        define BOOST_PP_TUPLE_ELEM_I_OO(par) BOOST_PP_TUPLE_ELEM_I ## par
-#        define BOOST_PP_TUPLE_ELEM_I(size, n, tuple) BOOST_PP_TUPLE_ELEM_II((n, BOOST_PP_TUPLE_ELEM_E_ ## size ## tuple))
-#        define BOOST_PP_TUPLE_ELEM_II(par) BOOST_PP_TUPLE_ELEM_III_OO(par)
-#        define BOOST_PP_TUPLE_ELEM_III_OO(par) BOOST_PP_TUPLE_ELEM_III ## par
-#        define BOOST_PP_TUPLE_ELEM_III(n, etuple) BOOST_PP_TUPLE_ELEM_ ## n ## etuple
+#    if NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MSVC()
+#        define NDNBOOST_PP_TUPLE_ELEM(size, n, tuple) NDNBOOST_PP_TUPLE_ELEM_I(NDNBOOST_PP_CAT(NDNBOOST_PP_TUPLE_ELEM_, n), NDNBOOST_PP_CAT(NDNBOOST_PP_CAT(NDNBOOST_PP_TUPLE_ELEM_E_, size), tuple))
+#        define NDNBOOST_PP_TUPLE_ELEM_I(m, args) NDNBOOST_PP_TUPLE_ELEM_II(m, args)
+#        define NDNBOOST_PP_TUPLE_ELEM_II(m, args) NDNBOOST_PP_CAT(m ## args,)
+#    elif NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MWCC()
+#        define NDNBOOST_PP_TUPLE_ELEM(size, n, tuple) NDNBOOST_PP_TUPLE_ELEM_I_OO((size, n, tuple))
+#        define NDNBOOST_PP_TUPLE_ELEM_I_OO(par) NDNBOOST_PP_TUPLE_ELEM_I ## par
+#        define NDNBOOST_PP_TUPLE_ELEM_I(size, n, tuple) NDNBOOST_PP_TUPLE_ELEM_II((n, NDNBOOST_PP_TUPLE_ELEM_E_ ## size ## tuple))
+#        define NDNBOOST_PP_TUPLE_ELEM_II(par) NDNBOOST_PP_TUPLE_ELEM_III_OO(par)
+#        define NDNBOOST_PP_TUPLE_ELEM_III_OO(par) NDNBOOST_PP_TUPLE_ELEM_III ## par
+#        define NDNBOOST_PP_TUPLE_ELEM_III(n, etuple) NDNBOOST_PP_TUPLE_ELEM_ ## n ## etuple
 #    else
-#        define BOOST_PP_TUPLE_ELEM(size, n, tuple) BOOST_PP_TUPLE_ELEM_I(BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM_, n) BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM_E_, size) tuple)
-#        define BOOST_PP_TUPLE_ELEM_I(x) x
+#        define NDNBOOST_PP_TUPLE_ELEM(size, n, tuple) NDNBOOST_PP_TUPLE_ELEM_I(NDNBOOST_PP_CAT(NDNBOOST_PP_TUPLE_ELEM_, n) NDNBOOST_PP_CAT(NDNBOOST_PP_TUPLE_ELEM_E_, size) tuple)
+#        define NDNBOOST_PP_TUPLE_ELEM_I(x) x
 #    endif
-#    define BOOST_PP_TUPLE_ELEM_E_1(e0) (e0, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_2(e0, e1) (e0, e1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_3(e0, e1, e2) (e0, e1, e2, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_4(e0, e1, e2, e3) (e0, e1, e2, e3, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_5(e0, e1, e2, e3, e4) (e0, e1, e2, e3, e4, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_6(e0, e1, e2, e3, e4, e5) (e0, e1, e2, e3, e4, e5, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_7(e0, e1, e2, e3, e4, e5, e6) (e0, e1, e2, e3, e4, e5, e6, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_8(e0, e1, e2, e3, e4, e5, e6, e7) (e0, e1, e2, e3, e4, e5, e6, e7, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_9(e0, e1, e2, e3, e4, e5, e6, e7, e8) (e0, e1, e2, e3, e4, e5, e6, e7, e8, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_64
-#    define BOOST_PP_TUPLE_ELEM_0(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e0
-#    define BOOST_PP_TUPLE_ELEM_1(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e1
-#    define BOOST_PP_TUPLE_ELEM_2(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e2
-#    define BOOST_PP_TUPLE_ELEM_3(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e3
-#    define BOOST_PP_TUPLE_ELEM_4(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e4
-#    define BOOST_PP_TUPLE_ELEM_5(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e5
-#    define BOOST_PP_TUPLE_ELEM_6(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e6
-#    define BOOST_PP_TUPLE_ELEM_7(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e7
-#    define BOOST_PP_TUPLE_ELEM_8(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e8
-#    define BOOST_PP_TUPLE_ELEM_9(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e9
-#    define BOOST_PP_TUPLE_ELEM_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e10
-#    define BOOST_PP_TUPLE_ELEM_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e11
-#    define BOOST_PP_TUPLE_ELEM_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e12
-#    define BOOST_PP_TUPLE_ELEM_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e13
-#    define BOOST_PP_TUPLE_ELEM_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e14
-#    define BOOST_PP_TUPLE_ELEM_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e15
-#    define BOOST_PP_TUPLE_ELEM_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e16
-#    define BOOST_PP_TUPLE_ELEM_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e17
-#    define BOOST_PP_TUPLE_ELEM_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e18
-#    define BOOST_PP_TUPLE_ELEM_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e19
-#    define BOOST_PP_TUPLE_ELEM_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e20
-#    define BOOST_PP_TUPLE_ELEM_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e21
-#    define BOOST_PP_TUPLE_ELEM_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e22
-#    define BOOST_PP_TUPLE_ELEM_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e23
-#    define BOOST_PP_TUPLE_ELEM_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e24
-#    define BOOST_PP_TUPLE_ELEM_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e25
-#    define BOOST_PP_TUPLE_ELEM_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e26
-#    define BOOST_PP_TUPLE_ELEM_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e27
-#    define BOOST_PP_TUPLE_ELEM_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e28
-#    define BOOST_PP_TUPLE_ELEM_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e29
-#    define BOOST_PP_TUPLE_ELEM_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e30
-#    define BOOST_PP_TUPLE_ELEM_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e31
-#    define BOOST_PP_TUPLE_ELEM_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e32
-#    define BOOST_PP_TUPLE_ELEM_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e33
-#    define BOOST_PP_TUPLE_ELEM_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e34
-#    define BOOST_PP_TUPLE_ELEM_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e35
-#    define BOOST_PP_TUPLE_ELEM_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e36
-#    define BOOST_PP_TUPLE_ELEM_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e37
-#    define BOOST_PP_TUPLE_ELEM_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e38
-#    define BOOST_PP_TUPLE_ELEM_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e39
-#    define BOOST_PP_TUPLE_ELEM_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e40
-#    define BOOST_PP_TUPLE_ELEM_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e41
-#    define BOOST_PP_TUPLE_ELEM_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e42
-#    define BOOST_PP_TUPLE_ELEM_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e43
-#    define BOOST_PP_TUPLE_ELEM_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e44
-#    define BOOST_PP_TUPLE_ELEM_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e45
-#    define BOOST_PP_TUPLE_ELEM_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e46
-#    define BOOST_PP_TUPLE_ELEM_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e47
-#    define BOOST_PP_TUPLE_ELEM_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e48
-#    define BOOST_PP_TUPLE_ELEM_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e49
-#    define BOOST_PP_TUPLE_ELEM_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e50
-#    define BOOST_PP_TUPLE_ELEM_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e51
-#    define BOOST_PP_TUPLE_ELEM_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e52
-#    define BOOST_PP_TUPLE_ELEM_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e53
-#    define BOOST_PP_TUPLE_ELEM_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e54
-#    define BOOST_PP_TUPLE_ELEM_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e55
-#    define BOOST_PP_TUPLE_ELEM_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e56
-#    define BOOST_PP_TUPLE_ELEM_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e57
-#    define BOOST_PP_TUPLE_ELEM_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e58
-#    define BOOST_PP_TUPLE_ELEM_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e59
-#    define BOOST_PP_TUPLE_ELEM_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e60
-#    define BOOST_PP_TUPLE_ELEM_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e61
-#    define BOOST_PP_TUPLE_ELEM_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e62
-#    define BOOST_PP_TUPLE_ELEM_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e63
+#    define NDNBOOST_PP_TUPLE_ELEM_E_1(e0) (e0, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_2(e0, e1) (e0, e1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_3(e0, e1, e2) (e0, e1, e2, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_4(e0, e1, e2, e3) (e0, e1, e2, e3, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_5(e0, e1, e2, e3, e4) (e0, e1, e2, e3, e4, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_6(e0, e1, e2, e3, e4, e5) (e0, e1, e2, e3, e4, e5, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_7(e0, e1, e2, e3, e4, e5, e6) (e0, e1, e2, e3, e4, e5, e6, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_8(e0, e1, e2, e3, e4, e5, e6, e7) (e0, e1, e2, e3, e4, e5, e6, e7, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_9(e0, e1, e2, e3, e4, e5, e6, e7, e8) (e0, e1, e2, e3, e4, e5, e6, e7, e8, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, ?, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, ?, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, ?, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, ?, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, ?, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, ?, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, ?, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, ?)
+#    define NDNBOOST_PP_TUPLE_ELEM_E_64
+#    define NDNBOOST_PP_TUPLE_ELEM_0(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e0
+#    define NDNBOOST_PP_TUPLE_ELEM_1(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e1
+#    define NDNBOOST_PP_TUPLE_ELEM_2(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e2
+#    define NDNBOOST_PP_TUPLE_ELEM_3(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e3
+#    define NDNBOOST_PP_TUPLE_ELEM_4(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e4
+#    define NDNBOOST_PP_TUPLE_ELEM_5(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e5
+#    define NDNBOOST_PP_TUPLE_ELEM_6(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e6
+#    define NDNBOOST_PP_TUPLE_ELEM_7(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e7
+#    define NDNBOOST_PP_TUPLE_ELEM_8(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e8
+#    define NDNBOOST_PP_TUPLE_ELEM_9(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e9
+#    define NDNBOOST_PP_TUPLE_ELEM_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e10
+#    define NDNBOOST_PP_TUPLE_ELEM_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e11
+#    define NDNBOOST_PP_TUPLE_ELEM_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e12
+#    define NDNBOOST_PP_TUPLE_ELEM_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e13
+#    define NDNBOOST_PP_TUPLE_ELEM_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e14
+#    define NDNBOOST_PP_TUPLE_ELEM_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e15
+#    define NDNBOOST_PP_TUPLE_ELEM_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e16
+#    define NDNBOOST_PP_TUPLE_ELEM_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e17
+#    define NDNBOOST_PP_TUPLE_ELEM_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e18
+#    define NDNBOOST_PP_TUPLE_ELEM_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e19
+#    define NDNBOOST_PP_TUPLE_ELEM_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e20
+#    define NDNBOOST_PP_TUPLE_ELEM_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e21
+#    define NDNBOOST_PP_TUPLE_ELEM_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e22
+#    define NDNBOOST_PP_TUPLE_ELEM_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e23
+#    define NDNBOOST_PP_TUPLE_ELEM_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e24
+#    define NDNBOOST_PP_TUPLE_ELEM_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e25
+#    define NDNBOOST_PP_TUPLE_ELEM_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e26
+#    define NDNBOOST_PP_TUPLE_ELEM_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e27
+#    define NDNBOOST_PP_TUPLE_ELEM_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e28
+#    define NDNBOOST_PP_TUPLE_ELEM_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e29
+#    define NDNBOOST_PP_TUPLE_ELEM_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e30
+#    define NDNBOOST_PP_TUPLE_ELEM_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e31
+#    define NDNBOOST_PP_TUPLE_ELEM_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e32
+#    define NDNBOOST_PP_TUPLE_ELEM_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e33
+#    define NDNBOOST_PP_TUPLE_ELEM_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e34
+#    define NDNBOOST_PP_TUPLE_ELEM_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e35
+#    define NDNBOOST_PP_TUPLE_ELEM_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e36
+#    define NDNBOOST_PP_TUPLE_ELEM_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e37
+#    define NDNBOOST_PP_TUPLE_ELEM_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e38
+#    define NDNBOOST_PP_TUPLE_ELEM_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e39
+#    define NDNBOOST_PP_TUPLE_ELEM_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e40
+#    define NDNBOOST_PP_TUPLE_ELEM_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e41
+#    define NDNBOOST_PP_TUPLE_ELEM_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e42
+#    define NDNBOOST_PP_TUPLE_ELEM_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e43
+#    define NDNBOOST_PP_TUPLE_ELEM_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e44
+#    define NDNBOOST_PP_TUPLE_ELEM_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e45
+#    define NDNBOOST_PP_TUPLE_ELEM_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e46
+#    define NDNBOOST_PP_TUPLE_ELEM_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e47
+#    define NDNBOOST_PP_TUPLE_ELEM_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e48
+#    define NDNBOOST_PP_TUPLE_ELEM_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e49
+#    define NDNBOOST_PP_TUPLE_ELEM_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e50
+#    define NDNBOOST_PP_TUPLE_ELEM_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e51
+#    define NDNBOOST_PP_TUPLE_ELEM_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e52
+#    define NDNBOOST_PP_TUPLE_ELEM_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e53
+#    define NDNBOOST_PP_TUPLE_ELEM_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e54
+#    define NDNBOOST_PP_TUPLE_ELEM_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e55
+#    define NDNBOOST_PP_TUPLE_ELEM_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e56
+#    define NDNBOOST_PP_TUPLE_ELEM_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e57
+#    define NDNBOOST_PP_TUPLE_ELEM_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e58
+#    define NDNBOOST_PP_TUPLE_ELEM_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e59
+#    define NDNBOOST_PP_TUPLE_ELEM_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e60
+#    define NDNBOOST_PP_TUPLE_ELEM_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e61
+#    define NDNBOOST_PP_TUPLE_ELEM_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e62
+#    define NDNBOOST_PP_TUPLE_ELEM_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e63
 # endif
 #
 # /* directly used elsewhere in Boost... */
 #
-# define BOOST_PP_TUPLE_ELEM_1_0(a) a
+# define NDNBOOST_PP_TUPLE_ELEM_1_0(a) a
 #
-# define BOOST_PP_TUPLE_ELEM_2_0(a, b) a
-# define BOOST_PP_TUPLE_ELEM_2_1(a, b) b
+# define NDNBOOST_PP_TUPLE_ELEM_2_0(a, b) a
+# define NDNBOOST_PP_TUPLE_ELEM_2_1(a, b) b
 #
-# define BOOST_PP_TUPLE_ELEM_3_0(a, b, c) a
-# define BOOST_PP_TUPLE_ELEM_3_1(a, b, c) b
-# define BOOST_PP_TUPLE_ELEM_3_2(a, b, c) c
+# define NDNBOOST_PP_TUPLE_ELEM_3_0(a, b, c) a
+# define NDNBOOST_PP_TUPLE_ELEM_3_1(a, b, c) b
+# define NDNBOOST_PP_TUPLE_ELEM_3_2(a, b, c) c
 #
 # endif
diff --git a/include/ndnboost/preprocessor/tuple/rem.hpp b/include/ndnboost/preprocessor/tuple/rem.hpp
index 2a6d5b6..486e05d 100644
--- a/include/ndnboost/preprocessor/tuple/rem.hpp
+++ b/include/ndnboost/preprocessor/tuple/rem.hpp
@@ -10,124 +10,124 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_TUPLE_REM_HPP
-# define BOOST_PREPROCESSOR_TUPLE_REM_HPP
+# ifndef NDNBOOST_PREPROCESSOR_TUPLE_REM_HPP
+# define NDNBOOST_PREPROCESSOR_TUPLE_REM_HPP
 #
 # include <ndnboost/preprocessor/cat.hpp>
 # include <ndnboost/preprocessor/config/config.hpp>
 # include <ndnboost/preprocessor/facilities/overload.hpp>
 #
-# /* BOOST_PP_REM */
+# /* NDNBOOST_PP_REM */
 #
-# if BOOST_PP_VARIADICS
-#    define BOOST_PP_REM(...) __VA_ARGS__
+# if NDNBOOST_PP_VARIADICS
+#    define NDNBOOST_PP_REM(...) __VA_ARGS__
 # else
-#    define BOOST_PP_REM(x) x
+#    define NDNBOOST_PP_REM(x) x
 # endif
 #
-# /* BOOST_PP_TUPLE_REM */
+# /* NDNBOOST_PP_TUPLE_REM */
 #
-# if BOOST_PP_VARIADICS
-#    define BOOST_PP_TUPLE_REM(size) BOOST_PP_REM
+# if NDNBOOST_PP_VARIADICS
+#    define NDNBOOST_PP_TUPLE_REM(size) NDNBOOST_PP_REM
 # else
-#    if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#        define BOOST_PP_TUPLE_REM(size) BOOST_PP_TUPLE_REM_I(size)
+#    if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MWCC()
+#        define NDNBOOST_PP_TUPLE_REM(size) NDNBOOST_PP_TUPLE_REM_I(size)
 #    else
-#        define BOOST_PP_TUPLE_REM(size) BOOST_PP_TUPLE_REM_OO((size))
-#        define BOOST_PP_TUPLE_REM_OO(par) BOOST_PP_TUPLE_REM_I ## par
+#        define NDNBOOST_PP_TUPLE_REM(size) NDNBOOST_PP_TUPLE_REM_OO((size))
+#        define NDNBOOST_PP_TUPLE_REM_OO(par) NDNBOOST_PP_TUPLE_REM_I ## par
 #    endif
-#    define BOOST_PP_TUPLE_REM_I(size) BOOST_PP_TUPLE_REM_ ## size
+#    define NDNBOOST_PP_TUPLE_REM_I(size) NDNBOOST_PP_TUPLE_REM_ ## size
 # endif
-# define BOOST_PP_TUPLE_REM_1(e0) e0
-# define BOOST_PP_TUPLE_REM_2(e0, e1) e0, e1
-# define BOOST_PP_TUPLE_REM_3(e0, e1, e2) e0, e1, e2
-# define BOOST_PP_TUPLE_REM_4(e0, e1, e2, e3) e0, e1, e2, e3
-# define BOOST_PP_TUPLE_REM_5(e0, e1, e2, e3, e4) e0, e1, e2, e3, e4
-# define BOOST_PP_TUPLE_REM_6(e0, e1, e2, e3, e4, e5) e0, e1, e2, e3, e4, e5
-# define BOOST_PP_TUPLE_REM_7(e0, e1, e2, e3, e4, e5, e6) e0, e1, e2, e3, e4, e5, e6
-# define BOOST_PP_TUPLE_REM_8(e0, e1, e2, e3, e4, e5, e6, e7) e0, e1, e2, e3, e4, e5, e6, e7
-# define BOOST_PP_TUPLE_REM_9(e0, e1, e2, e3, e4, e5, e6, e7, e8) e0, e1, e2, e3, e4, e5, e6, e7, e8
-# define BOOST_PP_TUPLE_REM_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9
-# define BOOST_PP_TUPLE_REM_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10
-# define BOOST_PP_TUPLE_REM_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11
-# define BOOST_PP_TUPLE_REM_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12
-# define BOOST_PP_TUPLE_REM_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13
-# define BOOST_PP_TUPLE_REM_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14
-# define BOOST_PP_TUPLE_REM_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15
-# define BOOST_PP_TUPLE_REM_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16
-# define BOOST_PP_TUPLE_REM_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17
-# define BOOST_PP_TUPLE_REM_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18
-# define BOOST_PP_TUPLE_REM_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19
-# define BOOST_PP_TUPLE_REM_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20
-# define BOOST_PP_TUPLE_REM_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21
-# define BOOST_PP_TUPLE_REM_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22
-# define BOOST_PP_TUPLE_REM_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23
-# define BOOST_PP_TUPLE_REM_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24
-# define BOOST_PP_TUPLE_REM_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25
-# define BOOST_PP_TUPLE_REM_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26
-# define BOOST_PP_TUPLE_REM_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27
-# define BOOST_PP_TUPLE_REM_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28
-# define BOOST_PP_TUPLE_REM_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29
-# define BOOST_PP_TUPLE_REM_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30
-# define BOOST_PP_TUPLE_REM_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31
-# define BOOST_PP_TUPLE_REM_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32
-# define BOOST_PP_TUPLE_REM_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33
-# define BOOST_PP_TUPLE_REM_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34
-# define BOOST_PP_TUPLE_REM_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35
-# define BOOST_PP_TUPLE_REM_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36
-# define BOOST_PP_TUPLE_REM_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37
-# define BOOST_PP_TUPLE_REM_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38
-# define BOOST_PP_TUPLE_REM_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39
-# define BOOST_PP_TUPLE_REM_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40
-# define BOOST_PP_TUPLE_REM_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41
-# define BOOST_PP_TUPLE_REM_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42
-# define BOOST_PP_TUPLE_REM_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43
-# define BOOST_PP_TUPLE_REM_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44
-# define BOOST_PP_TUPLE_REM_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45
-# define BOOST_PP_TUPLE_REM_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46
-# define BOOST_PP_TUPLE_REM_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47
-# define BOOST_PP_TUPLE_REM_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48
-# define BOOST_PP_TUPLE_REM_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49
-# define BOOST_PP_TUPLE_REM_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50
-# define BOOST_PP_TUPLE_REM_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51
-# define BOOST_PP_TUPLE_REM_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52
-# define BOOST_PP_TUPLE_REM_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53
-# define BOOST_PP_TUPLE_REM_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54
-# define BOOST_PP_TUPLE_REM_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55
-# define BOOST_PP_TUPLE_REM_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56
-# define BOOST_PP_TUPLE_REM_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57
-# define BOOST_PP_TUPLE_REM_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58
-# define BOOST_PP_TUPLE_REM_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59
-# define BOOST_PP_TUPLE_REM_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60
-# define BOOST_PP_TUPLE_REM_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61
-# define BOOST_PP_TUPLE_REM_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62
-# define BOOST_PP_TUPLE_REM_64(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63
+# define NDNBOOST_PP_TUPLE_REM_1(e0) e0
+# define NDNBOOST_PP_TUPLE_REM_2(e0, e1) e0, e1
+# define NDNBOOST_PP_TUPLE_REM_3(e0, e1, e2) e0, e1, e2
+# define NDNBOOST_PP_TUPLE_REM_4(e0, e1, e2, e3) e0, e1, e2, e3
+# define NDNBOOST_PP_TUPLE_REM_5(e0, e1, e2, e3, e4) e0, e1, e2, e3, e4
+# define NDNBOOST_PP_TUPLE_REM_6(e0, e1, e2, e3, e4, e5) e0, e1, e2, e3, e4, e5
+# define NDNBOOST_PP_TUPLE_REM_7(e0, e1, e2, e3, e4, e5, e6) e0, e1, e2, e3, e4, e5, e6
+# define NDNBOOST_PP_TUPLE_REM_8(e0, e1, e2, e3, e4, e5, e6, e7) e0, e1, e2, e3, e4, e5, e6, e7
+# define NDNBOOST_PP_TUPLE_REM_9(e0, e1, e2, e3, e4, e5, e6, e7, e8) e0, e1, e2, e3, e4, e5, e6, e7, e8
+# define NDNBOOST_PP_TUPLE_REM_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9
+# define NDNBOOST_PP_TUPLE_REM_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10
+# define NDNBOOST_PP_TUPLE_REM_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11
+# define NDNBOOST_PP_TUPLE_REM_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12
+# define NDNBOOST_PP_TUPLE_REM_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13
+# define NDNBOOST_PP_TUPLE_REM_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14
+# define NDNBOOST_PP_TUPLE_REM_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15
+# define NDNBOOST_PP_TUPLE_REM_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16
+# define NDNBOOST_PP_TUPLE_REM_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17
+# define NDNBOOST_PP_TUPLE_REM_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18
+# define NDNBOOST_PP_TUPLE_REM_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19
+# define NDNBOOST_PP_TUPLE_REM_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20
+# define NDNBOOST_PP_TUPLE_REM_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21
+# define NDNBOOST_PP_TUPLE_REM_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22
+# define NDNBOOST_PP_TUPLE_REM_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23
+# define NDNBOOST_PP_TUPLE_REM_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24
+# define NDNBOOST_PP_TUPLE_REM_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25
+# define NDNBOOST_PP_TUPLE_REM_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26
+# define NDNBOOST_PP_TUPLE_REM_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27
+# define NDNBOOST_PP_TUPLE_REM_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28
+# define NDNBOOST_PP_TUPLE_REM_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29
+# define NDNBOOST_PP_TUPLE_REM_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30
+# define NDNBOOST_PP_TUPLE_REM_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31
+# define NDNBOOST_PP_TUPLE_REM_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32
+# define NDNBOOST_PP_TUPLE_REM_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33
+# define NDNBOOST_PP_TUPLE_REM_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34
+# define NDNBOOST_PP_TUPLE_REM_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35
+# define NDNBOOST_PP_TUPLE_REM_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36
+# define NDNBOOST_PP_TUPLE_REM_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37
+# define NDNBOOST_PP_TUPLE_REM_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38
+# define NDNBOOST_PP_TUPLE_REM_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39
+# define NDNBOOST_PP_TUPLE_REM_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40
+# define NDNBOOST_PP_TUPLE_REM_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41
+# define NDNBOOST_PP_TUPLE_REM_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42
+# define NDNBOOST_PP_TUPLE_REM_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43
+# define NDNBOOST_PP_TUPLE_REM_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44
+# define NDNBOOST_PP_TUPLE_REM_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45
+# define NDNBOOST_PP_TUPLE_REM_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46
+# define NDNBOOST_PP_TUPLE_REM_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47
+# define NDNBOOST_PP_TUPLE_REM_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48
+# define NDNBOOST_PP_TUPLE_REM_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49
+# define NDNBOOST_PP_TUPLE_REM_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50
+# define NDNBOOST_PP_TUPLE_REM_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51
+# define NDNBOOST_PP_TUPLE_REM_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52
+# define NDNBOOST_PP_TUPLE_REM_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53
+# define NDNBOOST_PP_TUPLE_REM_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54
+# define NDNBOOST_PP_TUPLE_REM_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55
+# define NDNBOOST_PP_TUPLE_REM_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56
+# define NDNBOOST_PP_TUPLE_REM_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57
+# define NDNBOOST_PP_TUPLE_REM_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58
+# define NDNBOOST_PP_TUPLE_REM_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59
+# define NDNBOOST_PP_TUPLE_REM_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60
+# define NDNBOOST_PP_TUPLE_REM_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61
+# define NDNBOOST_PP_TUPLE_REM_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62
+# define NDNBOOST_PP_TUPLE_REM_64(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63
 #
-# /* BOOST_PP_TUPLE_REM_CTOR */
+# /* NDNBOOST_PP_TUPLE_REM_CTOR */
 #
-# if BOOST_PP_VARIADICS
-#    if BOOST_PP_VARIADICS_MSVC
-#        define BOOST_PP_TUPLE_REM_CTOR(...) BOOST_PP_TUPLE_REM_CTOR_I(BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_REM_CTOR_O_, __VA_ARGS__), (__VA_ARGS__))
-#        define BOOST_PP_TUPLE_REM_CTOR_I(m, args) BOOST_PP_TUPLE_REM_CTOR_II(m, args)
-#        define BOOST_PP_TUPLE_REM_CTOR_II(m, args) BOOST_PP_CAT(m ## args,)
+# if NDNBOOST_PP_VARIADICS
+#    if NDNBOOST_PP_VARIADICS_MSVC
+#        define NDNBOOST_PP_TUPLE_REM_CTOR(...) NDNBOOST_PP_TUPLE_REM_CTOR_I(NDNBOOST_PP_OVERLOAD(NDNBOOST_PP_TUPLE_REM_CTOR_O_, __VA_ARGS__), (__VA_ARGS__))
+#        define NDNBOOST_PP_TUPLE_REM_CTOR_I(m, args) NDNBOOST_PP_TUPLE_REM_CTOR_II(m, args)
+#        define NDNBOOST_PP_TUPLE_REM_CTOR_II(m, args) NDNBOOST_PP_CAT(m ## args,)
 #    else
-#        define BOOST_PP_TUPLE_REM_CTOR(...) BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_REM_CTOR_O_, __VA_ARGS__)(__VA_ARGS__)
+#        define NDNBOOST_PP_TUPLE_REM_CTOR(...) NDNBOOST_PP_OVERLOAD(NDNBOOST_PP_TUPLE_REM_CTOR_O_, __VA_ARGS__)(__VA_ARGS__)
 #    endif
-#    define BOOST_PP_TUPLE_REM_CTOR_O_1(tuple) BOOST_PP_REM tuple
-#    define BOOST_PP_TUPLE_REM_CTOR_O_2(size, tuple) BOOST_PP_TUPLE_REM_CTOR_O_1(tuple)
+#    define NDNBOOST_PP_TUPLE_REM_CTOR_O_1(tuple) NDNBOOST_PP_REM tuple
+#    define NDNBOOST_PP_TUPLE_REM_CTOR_O_2(size, tuple) NDNBOOST_PP_TUPLE_REM_CTOR_O_1(tuple)
 # else
-#    if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#        define BOOST_PP_TUPLE_REM_CTOR(size, tuple) BOOST_PP_TUPLE_REM_CTOR_I(BOOST_PP_TUPLE_REM(size), tuple)
+#    if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
+#        define NDNBOOST_PP_TUPLE_REM_CTOR(size, tuple) NDNBOOST_PP_TUPLE_REM_CTOR_I(NDNBOOST_PP_TUPLE_REM(size), tuple)
 #    else
-#        define BOOST_PP_TUPLE_REM_CTOR(size, tuple) BOOST_PP_TUPLE_REM_CTOR_D(size, tuple)
-#        define BOOST_PP_TUPLE_REM_CTOR_D(size, tuple) BOOST_PP_TUPLE_REM_CTOR_I(BOOST_PP_TUPLE_REM(size), tuple)
+#        define NDNBOOST_PP_TUPLE_REM_CTOR(size, tuple) NDNBOOST_PP_TUPLE_REM_CTOR_D(size, tuple)
+#        define NDNBOOST_PP_TUPLE_REM_CTOR_D(size, tuple) NDNBOOST_PP_TUPLE_REM_CTOR_I(NDNBOOST_PP_TUPLE_REM(size), tuple)
 #    endif
-#    if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#        define BOOST_PP_TUPLE_REM_CTOR_I(ext, tuple) ext tuple
+#    if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MWCC()
+#        define NDNBOOST_PP_TUPLE_REM_CTOR_I(ext, tuple) ext tuple
 #    else
-#        define BOOST_PP_TUPLE_REM_CTOR_I(ext, tuple) BOOST_PP_TUPLE_REM_CTOR_OO((ext, tuple))
-#        define BOOST_PP_TUPLE_REM_CTOR_OO(par) BOOST_PP_TUPLE_REM_CTOR_II ## par
-#        define BOOST_PP_TUPLE_REM_CTOR_II(ext, tuple) ext ## tuple
+#        define NDNBOOST_PP_TUPLE_REM_CTOR_I(ext, tuple) NDNBOOST_PP_TUPLE_REM_CTOR_OO((ext, tuple))
+#        define NDNBOOST_PP_TUPLE_REM_CTOR_OO(par) NDNBOOST_PP_TUPLE_REM_CTOR_II ## par
+#        define NDNBOOST_PP_TUPLE_REM_CTOR_II(ext, tuple) ext ## tuple
 #    endif
 # endif
 #
diff --git a/include/ndnboost/preprocessor/tuple/to_list.hpp b/include/ndnboost/preprocessor/tuple/to_list.hpp
index f6d6409..7322dc4 100644
--- a/include/ndnboost/preprocessor/tuple/to_list.hpp
+++ b/include/ndnboost/preprocessor/tuple/to_list.hpp
@@ -12,105 +12,105 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_TUPLE_TO_LIST_HPP
-# define BOOST_PREPROCESSOR_TUPLE_TO_LIST_HPP
+# ifndef NDNBOOST_PREPROCESSOR_TUPLE_TO_LIST_HPP
+# define NDNBOOST_PREPROCESSOR_TUPLE_TO_LIST_HPP
 #
 # include <ndnboost/preprocessor/cat.hpp>
 # include <ndnboost/preprocessor/config/config.hpp>
 # include <ndnboost/preprocessor/facilities/overload.hpp>
 # include <ndnboost/preprocessor/variadic/size.hpp>
 #
-# /* BOOST_PP_TUPLE_TO_LIST */
+# /* NDNBOOST_PP_TUPLE_TO_LIST */
 #
-# if BOOST_PP_VARIADICS
-#    if BOOST_PP_VARIADICS_MSVC
-#        define BOOST_PP_TUPLE_TO_LIST(...) BOOST_PP_TUPLE_TO_LIST_I(BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_TO_LIST_O_, __VA_ARGS__), (__VA_ARGS__))
-#        define BOOST_PP_TUPLE_TO_LIST_I(m, args) BOOST_PP_TUPLE_TO_LIST_II(m, args)
-#        define BOOST_PP_TUPLE_TO_LIST_II(m, args) BOOST_PP_CAT(m ## args,)
+# if NDNBOOST_PP_VARIADICS
+#    if NDNBOOST_PP_VARIADICS_MSVC
+#        define NDNBOOST_PP_TUPLE_TO_LIST(...) NDNBOOST_PP_TUPLE_TO_LIST_I(NDNBOOST_PP_OVERLOAD(NDNBOOST_PP_TUPLE_TO_LIST_O_, __VA_ARGS__), (__VA_ARGS__))
+#        define NDNBOOST_PP_TUPLE_TO_LIST_I(m, args) NDNBOOST_PP_TUPLE_TO_LIST_II(m, args)
+#        define NDNBOOST_PP_TUPLE_TO_LIST_II(m, args) NDNBOOST_PP_CAT(m ## args,)
 #    else
-#        define BOOST_PP_TUPLE_TO_LIST(...) BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_TO_LIST_O_, __VA_ARGS__)(__VA_ARGS__)
+#        define NDNBOOST_PP_TUPLE_TO_LIST(...) NDNBOOST_PP_OVERLOAD(NDNBOOST_PP_TUPLE_TO_LIST_O_, __VA_ARGS__)(__VA_ARGS__)
 #    endif
-#    define BOOST_PP_TUPLE_TO_LIST_O_1(tuple) BOOST_PP_CAT(BOOST_PP_TUPLE_TO_LIST_, BOOST_PP_VARIADIC_SIZE tuple) tuple
-#    define BOOST_PP_TUPLE_TO_LIST_O_2(size, tuple) BOOST_PP_TUPLE_TO_LIST_O_1(tuple)
+#    define NDNBOOST_PP_TUPLE_TO_LIST_O_1(tuple) NDNBOOST_PP_CAT(NDNBOOST_PP_TUPLE_TO_LIST_, NDNBOOST_PP_VARIADIC_SIZE tuple) tuple
+#    define NDNBOOST_PP_TUPLE_TO_LIST_O_2(size, tuple) NDNBOOST_PP_TUPLE_TO_LIST_O_1(tuple)
 # else
-#    if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#        define BOOST_PP_TUPLE_TO_LIST(size, tuple) BOOST_PP_TUPLE_TO_LIST_I(size, tuple)
-#        if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-#            define BOOST_PP_TUPLE_TO_LIST_I(s, t) BOOST_PP_TUPLE_TO_LIST_ ## s t
+#    if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MWCC()
+#        define NDNBOOST_PP_TUPLE_TO_LIST(size, tuple) NDNBOOST_PP_TUPLE_TO_LIST_I(size, tuple)
+#        if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MSVC()
+#            define NDNBOOST_PP_TUPLE_TO_LIST_I(s, t) NDNBOOST_PP_TUPLE_TO_LIST_ ## s t
 #        else
-#            define BOOST_PP_TUPLE_TO_LIST_I(s, t) BOOST_PP_TUPLE_TO_LIST_II(BOOST_PP_TUPLE_TO_LIST_ ## s t)
-#            define BOOST_PP_TUPLE_TO_LIST_II(res) res
+#            define NDNBOOST_PP_TUPLE_TO_LIST_I(s, t) NDNBOOST_PP_TUPLE_TO_LIST_II(NDNBOOST_PP_TUPLE_TO_LIST_ ## s t)
+#            define NDNBOOST_PP_TUPLE_TO_LIST_II(res) res
 #        endif
 #    else
-#        define BOOST_PP_TUPLE_TO_LIST(size, tuple) BOOST_PP_TUPLE_TO_LIST_OO((size, tuple))
-#        define BOOST_PP_TUPLE_TO_LIST_OO(par) BOOST_PP_TUPLE_TO_LIST_I ## par
-#        define BOOST_PP_TUPLE_TO_LIST_I(s, t) BOOST_PP_TUPLE_TO_LIST_ ## s ## t
+#        define NDNBOOST_PP_TUPLE_TO_LIST(size, tuple) NDNBOOST_PP_TUPLE_TO_LIST_OO((size, tuple))
+#        define NDNBOOST_PP_TUPLE_TO_LIST_OO(par) NDNBOOST_PP_TUPLE_TO_LIST_I ## par
+#        define NDNBOOST_PP_TUPLE_TO_LIST_I(s, t) NDNBOOST_PP_TUPLE_TO_LIST_ ## s ## t
 #    endif
 # endif
 #
-# define BOOST_PP_TUPLE_TO_LIST_1(e0) (e0, BOOST_PP_NIL)
-# define BOOST_PP_TUPLE_TO_LIST_2(e0, e1) (e0, (e1, BOOST_PP_NIL))
-# define BOOST_PP_TUPLE_TO_LIST_3(e0, e1, e2) (e0, (e1, (e2, BOOST_PP_NIL)))
-# define BOOST_PP_TUPLE_TO_LIST_4(e0, e1, e2, e3) (e0, (e1, (e2, (e3, BOOST_PP_NIL))))
-# define BOOST_PP_TUPLE_TO_LIST_5(e0, e1, e2, e3, e4) (e0, (e1, (e2, (e3, (e4, BOOST_PP_NIL)))))
-# define BOOST_PP_TUPLE_TO_LIST_6(e0, e1, e2, e3, e4, e5) (e0, (e1, (e2, (e3, (e4, (e5, BOOST_PP_NIL))))))
-# define BOOST_PP_TUPLE_TO_LIST_7(e0, e1, e2, e3, e4, e5, e6) (e0, (e1, (e2, (e3, (e4, (e5, (e6, BOOST_PP_NIL)))))))
-# define BOOST_PP_TUPLE_TO_LIST_8(e0, e1, e2, e3, e4, e5, e6, e7) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, BOOST_PP_NIL))))))))
-# define BOOST_PP_TUPLE_TO_LIST_9(e0, e1, e2, e3, e4, e5, e6, e7, e8) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, BOOST_PP_NIL)))))))))
-# define BOOST_PP_TUPLE_TO_LIST_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, BOOST_PP_NIL))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, BOOST_PP_NIL)))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, BOOST_PP_NIL))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, BOOST_PP_NIL)))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, BOOST_PP_NIL))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, BOOST_PP_NIL)))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, BOOST_PP_NIL))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, BOOST_PP_NIL)))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, BOOST_PP_NIL))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, BOOST_PP_NIL)))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, BOOST_PP_NIL))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, BOOST_PP_NIL)))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, BOOST_PP_NIL))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, BOOST_PP_NIL)))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, BOOST_PP_NIL))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, BOOST_PP_NIL)))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, BOOST_PP_NIL))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, BOOST_PP_NIL)))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, BOOST_PP_NIL))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, BOOST_PP_NIL)))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, BOOST_PP_NIL))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, BOOST_PP_NIL)))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, BOOST_PP_NIL))))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, BOOST_PP_NIL)))))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, BOOST_PP_NIL))))))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, (e57, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, (e57, (e58, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, (e57, (e58, (e59, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, (e57, (e58, (e59, (e60, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, (e57, (e58, (e59, (e60, (e61, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, (e57, (e58, (e59, (e60, (e61, (e62, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_64(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, (e57, (e58, (e59, (e60, (e61, (e62, (e63, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_1(e0) (e0, NDNBOOST_PP_NIL)
+# define NDNBOOST_PP_TUPLE_TO_LIST_2(e0, e1) (e0, (e1, NDNBOOST_PP_NIL))
+# define NDNBOOST_PP_TUPLE_TO_LIST_3(e0, e1, e2) (e0, (e1, (e2, NDNBOOST_PP_NIL)))
+# define NDNBOOST_PP_TUPLE_TO_LIST_4(e0, e1, e2, e3) (e0, (e1, (e2, (e3, NDNBOOST_PP_NIL))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_5(e0, e1, e2, e3, e4) (e0, (e1, (e2, (e3, (e4, NDNBOOST_PP_NIL)))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_6(e0, e1, e2, e3, e4, e5) (e0, (e1, (e2, (e3, (e4, (e5, NDNBOOST_PP_NIL))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_7(e0, e1, e2, e3, e4, e5, e6) (e0, (e1, (e2, (e3, (e4, (e5, (e6, NDNBOOST_PP_NIL)))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_8(e0, e1, e2, e3, e4, e5, e6, e7) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, NDNBOOST_PP_NIL))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_9(e0, e1, e2, e3, e4, e5, e6, e7, e8) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, NDNBOOST_PP_NIL)))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, NDNBOOST_PP_NIL))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, NDNBOOST_PP_NIL)))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, NDNBOOST_PP_NIL))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, NDNBOOST_PP_NIL)))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, NDNBOOST_PP_NIL))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, NDNBOOST_PP_NIL)))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, NDNBOOST_PP_NIL))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, NDNBOOST_PP_NIL)))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, NDNBOOST_PP_NIL))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, NDNBOOST_PP_NIL)))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, NDNBOOST_PP_NIL))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, NDNBOOST_PP_NIL)))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, NDNBOOST_PP_NIL))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, NDNBOOST_PP_NIL)))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, NDNBOOST_PP_NIL))))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, NDNBOOST_PP_NIL)))))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, NDNBOOST_PP_NIL))))))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, NDNBOOST_PP_NIL)))))))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, NDNBOOST_PP_NIL))))))))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, NDNBOOST_PP_NIL)))))))))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, NDNBOOST_PP_NIL))))))))))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, NDNBOOST_PP_NIL)))))))))))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, NDNBOOST_PP_NIL))))))))))))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, NDNBOOST_PP_NIL)))))))))))))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, NDNBOOST_PP_NIL))))))))))))))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, NDNBOOST_PP_NIL)))))))))))))))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, NDNBOOST_PP_NIL))))))))))))))))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, NDNBOOST_PP_NIL)))))))))))))))))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, NDNBOOST_PP_NIL))))))))))))))))))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, NDNBOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, NDNBOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, NDNBOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, NDNBOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, NDNBOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, NDNBOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, NDNBOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, NDNBOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, NDNBOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, NDNBOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, NDNBOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, NDNBOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, NDNBOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, NDNBOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, NDNBOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, NDNBOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, NDNBOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, NDNBOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, NDNBOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, (e57, NDNBOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, (e57, (e58, NDNBOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, (e57, (e58, (e59, NDNBOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, (e57, (e58, (e59, (e60, NDNBOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, (e57, (e58, (e59, (e60, (e61, NDNBOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, (e57, (e58, (e59, (e60, (e61, (e62, NDNBOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
+# define NDNBOOST_PP_TUPLE_TO_LIST_64(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, (e57, (e58, (e59, (e60, (e61, (e62, (e63, NDNBOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
 #
 # endif
diff --git a/include/ndnboost/preprocessor/variadic/elem.hpp b/include/ndnboost/preprocessor/variadic/elem.hpp
index 67f5c66..cc72ecb 100644
--- a/include/ndnboost/preprocessor/variadic/elem.hpp
+++ b/include/ndnboost/preprocessor/variadic/elem.hpp
@@ -10,85 +10,85 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_VARIADIC_ELEM_HPP
-# define BOOST_PREPROCESSOR_VARIADIC_ELEM_HPP
+# ifndef NDNBOOST_PREPROCESSOR_VARIADIC_ELEM_HPP
+# define NDNBOOST_PREPROCESSOR_VARIADIC_ELEM_HPP
 #
 # include <ndnboost/preprocessor/cat.hpp>
 # include <ndnboost/preprocessor/config/config.hpp>
 #
-# /* BOOST_PP_VARIADIC_ELEM */
+# /* NDNBOOST_PP_VARIADIC_ELEM */
 #
-# if BOOST_PP_VARIADICS
-#    if BOOST_PP_VARIADICS_MSVC
-#        define BOOST_PP_VARIADIC_ELEM(n, ...) BOOST_PP_VARIADIC_ELEM_I(n,__VA_ARGS__)
-#        define BOOST_PP_VARIADIC_ELEM_I(n, ...) BOOST_PP_CAT(BOOST_PP_CAT(BOOST_PP_VARIADIC_ELEM_, n)(__VA_ARGS__,),)
+# if NDNBOOST_PP_VARIADICS
+#    if NDNBOOST_PP_VARIADICS_MSVC
+#        define NDNBOOST_PP_VARIADIC_ELEM(n, ...) NDNBOOST_PP_VARIADIC_ELEM_I(n,__VA_ARGS__)
+#        define NDNBOOST_PP_VARIADIC_ELEM_I(n, ...) NDNBOOST_PP_CAT(NDNBOOST_PP_CAT(NDNBOOST_PP_VARIADIC_ELEM_, n)(__VA_ARGS__,),)
 #    else
-#        define BOOST_PP_VARIADIC_ELEM(n, ...) BOOST_PP_CAT(BOOST_PP_VARIADIC_ELEM_, n)(__VA_ARGS__,)
+#        define NDNBOOST_PP_VARIADIC_ELEM(n, ...) NDNBOOST_PP_CAT(NDNBOOST_PP_VARIADIC_ELEM_, n)(__VA_ARGS__,)
 #    endif
-#    define BOOST_PP_VARIADIC_ELEM_0(e0, ...) e0
-#    define BOOST_PP_VARIADIC_ELEM_1(e0, e1, ...) e1
-#    define BOOST_PP_VARIADIC_ELEM_2(e0, e1, e2, ...) e2
-#    define BOOST_PP_VARIADIC_ELEM_3(e0, e1, e2, e3, ...) e3
-#    define BOOST_PP_VARIADIC_ELEM_4(e0, e1, e2, e3, e4, ...) e4
-#    define BOOST_PP_VARIADIC_ELEM_5(e0, e1, e2, e3, e4, e5, ...) e5
-#    define BOOST_PP_VARIADIC_ELEM_6(e0, e1, e2, e3, e4, e5, e6, ...) e6
-#    define BOOST_PP_VARIADIC_ELEM_7(e0, e1, e2, e3, e4, e5, e6, e7, ...) e7
-#    define BOOST_PP_VARIADIC_ELEM_8(e0, e1, e2, e3, e4, e5, e6, e7, e8, ...) e8
-#    define BOOST_PP_VARIADIC_ELEM_9(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, ...) e9
-#    define BOOST_PP_VARIADIC_ELEM_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, ...) e10
-#    define BOOST_PP_VARIADIC_ELEM_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, ...) e11
-#    define BOOST_PP_VARIADIC_ELEM_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, ...) e12
-#    define BOOST_PP_VARIADIC_ELEM_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, ...) e13
-#    define BOOST_PP_VARIADIC_ELEM_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, ...) e14
-#    define BOOST_PP_VARIADIC_ELEM_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, ...) e15
-#    define BOOST_PP_VARIADIC_ELEM_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, ...) e16
-#    define BOOST_PP_VARIADIC_ELEM_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, ...) e17
-#    define BOOST_PP_VARIADIC_ELEM_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, ...) e18
-#    define BOOST_PP_VARIADIC_ELEM_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, ...) e19
-#    define BOOST_PP_VARIADIC_ELEM_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, ...) e20
-#    define BOOST_PP_VARIADIC_ELEM_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, ...) e21
-#    define BOOST_PP_VARIADIC_ELEM_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, ...) e22
-#    define BOOST_PP_VARIADIC_ELEM_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, ...) e23
-#    define BOOST_PP_VARIADIC_ELEM_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, ...) e24
-#    define BOOST_PP_VARIADIC_ELEM_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, ...) e25
-#    define BOOST_PP_VARIADIC_ELEM_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, ...) e26
-#    define BOOST_PP_VARIADIC_ELEM_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, ...) e27
-#    define BOOST_PP_VARIADIC_ELEM_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, ...) e28
-#    define BOOST_PP_VARIADIC_ELEM_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, ...) e29
-#    define BOOST_PP_VARIADIC_ELEM_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, ...) e30
-#    define BOOST_PP_VARIADIC_ELEM_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, ...) e31
-#    define BOOST_PP_VARIADIC_ELEM_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, ...) e32
-#    define BOOST_PP_VARIADIC_ELEM_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, ...) e33
-#    define BOOST_PP_VARIADIC_ELEM_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, ...) e34
-#    define BOOST_PP_VARIADIC_ELEM_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, ...) e35
-#    define BOOST_PP_VARIADIC_ELEM_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, ...) e36
-#    define BOOST_PP_VARIADIC_ELEM_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, ...) e37
-#    define BOOST_PP_VARIADIC_ELEM_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, ...) e38
-#    define BOOST_PP_VARIADIC_ELEM_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, ...) e39
-#    define BOOST_PP_VARIADIC_ELEM_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, ...) e40
-#    define BOOST_PP_VARIADIC_ELEM_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, ...) e41
-#    define BOOST_PP_VARIADIC_ELEM_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, ...) e42
-#    define BOOST_PP_VARIADIC_ELEM_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, ...) e43
-#    define BOOST_PP_VARIADIC_ELEM_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, ...) e44
-#    define BOOST_PP_VARIADIC_ELEM_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, ...) e45
-#    define BOOST_PP_VARIADIC_ELEM_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, ...) e46
-#    define BOOST_PP_VARIADIC_ELEM_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, ...) e47
-#    define BOOST_PP_VARIADIC_ELEM_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, ...) e48
-#    define BOOST_PP_VARIADIC_ELEM_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, ...) e49
-#    define BOOST_PP_VARIADIC_ELEM_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, ...) e50
-#    define BOOST_PP_VARIADIC_ELEM_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, ...) e51
-#    define BOOST_PP_VARIADIC_ELEM_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, ...) e52
-#    define BOOST_PP_VARIADIC_ELEM_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, ...) e53
-#    define BOOST_PP_VARIADIC_ELEM_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, ...) e54
-#    define BOOST_PP_VARIADIC_ELEM_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, ...) e55
-#    define BOOST_PP_VARIADIC_ELEM_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, ...) e56
-#    define BOOST_PP_VARIADIC_ELEM_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, ...) e57
-#    define BOOST_PP_VARIADIC_ELEM_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, ...) e58
-#    define BOOST_PP_VARIADIC_ELEM_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, ...) e59
-#    define BOOST_PP_VARIADIC_ELEM_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, ...) e60
-#    define BOOST_PP_VARIADIC_ELEM_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, ...) e61
-#    define BOOST_PP_VARIADIC_ELEM_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, ...) e62
-#    define BOOST_PP_VARIADIC_ELEM_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63, ...) e63
+#    define NDNBOOST_PP_VARIADIC_ELEM_0(e0, ...) e0
+#    define NDNBOOST_PP_VARIADIC_ELEM_1(e0, e1, ...) e1
+#    define NDNBOOST_PP_VARIADIC_ELEM_2(e0, e1, e2, ...) e2
+#    define NDNBOOST_PP_VARIADIC_ELEM_3(e0, e1, e2, e3, ...) e3
+#    define NDNBOOST_PP_VARIADIC_ELEM_4(e0, e1, e2, e3, e4, ...) e4
+#    define NDNBOOST_PP_VARIADIC_ELEM_5(e0, e1, e2, e3, e4, e5, ...) e5
+#    define NDNBOOST_PP_VARIADIC_ELEM_6(e0, e1, e2, e3, e4, e5, e6, ...) e6
+#    define NDNBOOST_PP_VARIADIC_ELEM_7(e0, e1, e2, e3, e4, e5, e6, e7, ...) e7
+#    define NDNBOOST_PP_VARIADIC_ELEM_8(e0, e1, e2, e3, e4, e5, e6, e7, e8, ...) e8
+#    define NDNBOOST_PP_VARIADIC_ELEM_9(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, ...) e9
+#    define NDNBOOST_PP_VARIADIC_ELEM_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, ...) e10
+#    define NDNBOOST_PP_VARIADIC_ELEM_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, ...) e11
+#    define NDNBOOST_PP_VARIADIC_ELEM_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, ...) e12
+#    define NDNBOOST_PP_VARIADIC_ELEM_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, ...) e13
+#    define NDNBOOST_PP_VARIADIC_ELEM_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, ...) e14
+#    define NDNBOOST_PP_VARIADIC_ELEM_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, ...) e15
+#    define NDNBOOST_PP_VARIADIC_ELEM_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, ...) e16
+#    define NDNBOOST_PP_VARIADIC_ELEM_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, ...) e17
+#    define NDNBOOST_PP_VARIADIC_ELEM_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, ...) e18
+#    define NDNBOOST_PP_VARIADIC_ELEM_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, ...) e19
+#    define NDNBOOST_PP_VARIADIC_ELEM_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, ...) e20
+#    define NDNBOOST_PP_VARIADIC_ELEM_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, ...) e21
+#    define NDNBOOST_PP_VARIADIC_ELEM_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, ...) e22
+#    define NDNBOOST_PP_VARIADIC_ELEM_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, ...) e23
+#    define NDNBOOST_PP_VARIADIC_ELEM_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, ...) e24
+#    define NDNBOOST_PP_VARIADIC_ELEM_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, ...) e25
+#    define NDNBOOST_PP_VARIADIC_ELEM_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, ...) e26
+#    define NDNBOOST_PP_VARIADIC_ELEM_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, ...) e27
+#    define NDNBOOST_PP_VARIADIC_ELEM_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, ...) e28
+#    define NDNBOOST_PP_VARIADIC_ELEM_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, ...) e29
+#    define NDNBOOST_PP_VARIADIC_ELEM_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, ...) e30
+#    define NDNBOOST_PP_VARIADIC_ELEM_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, ...) e31
+#    define NDNBOOST_PP_VARIADIC_ELEM_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, ...) e32
+#    define NDNBOOST_PP_VARIADIC_ELEM_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, ...) e33
+#    define NDNBOOST_PP_VARIADIC_ELEM_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, ...) e34
+#    define NDNBOOST_PP_VARIADIC_ELEM_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, ...) e35
+#    define NDNBOOST_PP_VARIADIC_ELEM_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, ...) e36
+#    define NDNBOOST_PP_VARIADIC_ELEM_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, ...) e37
+#    define NDNBOOST_PP_VARIADIC_ELEM_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, ...) e38
+#    define NDNBOOST_PP_VARIADIC_ELEM_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, ...) e39
+#    define NDNBOOST_PP_VARIADIC_ELEM_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, ...) e40
+#    define NDNBOOST_PP_VARIADIC_ELEM_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, ...) e41
+#    define NDNBOOST_PP_VARIADIC_ELEM_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, ...) e42
+#    define NDNBOOST_PP_VARIADIC_ELEM_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, ...) e43
+#    define NDNBOOST_PP_VARIADIC_ELEM_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, ...) e44
+#    define NDNBOOST_PP_VARIADIC_ELEM_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, ...) e45
+#    define NDNBOOST_PP_VARIADIC_ELEM_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, ...) e46
+#    define NDNBOOST_PP_VARIADIC_ELEM_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, ...) e47
+#    define NDNBOOST_PP_VARIADIC_ELEM_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, ...) e48
+#    define NDNBOOST_PP_VARIADIC_ELEM_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, ...) e49
+#    define NDNBOOST_PP_VARIADIC_ELEM_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, ...) e50
+#    define NDNBOOST_PP_VARIADIC_ELEM_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, ...) e51
+#    define NDNBOOST_PP_VARIADIC_ELEM_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, ...) e52
+#    define NDNBOOST_PP_VARIADIC_ELEM_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, ...) e53
+#    define NDNBOOST_PP_VARIADIC_ELEM_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, ...) e54
+#    define NDNBOOST_PP_VARIADIC_ELEM_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, ...) e55
+#    define NDNBOOST_PP_VARIADIC_ELEM_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, ...) e56
+#    define NDNBOOST_PP_VARIADIC_ELEM_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, ...) e57
+#    define NDNBOOST_PP_VARIADIC_ELEM_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, ...) e58
+#    define NDNBOOST_PP_VARIADIC_ELEM_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, ...) e59
+#    define NDNBOOST_PP_VARIADIC_ELEM_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, ...) e60
+#    define NDNBOOST_PP_VARIADIC_ELEM_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, ...) e61
+#    define NDNBOOST_PP_VARIADIC_ELEM_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, ...) e62
+#    define NDNBOOST_PP_VARIADIC_ELEM_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63, ...) e63
 # endif
 #
 # endif
diff --git a/include/ndnboost/preprocessor/variadic/size.hpp b/include/ndnboost/preprocessor/variadic/size.hpp
index 9e84101..4034a1c 100644
--- a/include/ndnboost/preprocessor/variadic/size.hpp
+++ b/include/ndnboost/preprocessor/variadic/size.hpp
@@ -10,21 +10,21 @@
 #
 # /* See http://www.boost.org for most recent version. */
 #
-# ifndef BOOST_PREPROCESSOR_VARIADIC_SIZE_HPP
-# define BOOST_PREPROCESSOR_VARIADIC_SIZE_HPP
+# ifndef NDNBOOST_PREPROCESSOR_VARIADIC_SIZE_HPP
+# define NDNBOOST_PREPROCESSOR_VARIADIC_SIZE_HPP
 #
 # include <ndnboost/preprocessor/cat.hpp>
 # include <ndnboost/preprocessor/config/config.hpp>
 #
-# /* BOOST_PP_VARIADIC_SIZE */
+# /* NDNBOOST_PP_VARIADIC_SIZE */
 #
-# if BOOST_PP_VARIADICS
-#    if BOOST_PP_VARIADICS_MSVC
-#        define BOOST_PP_VARIADIC_SIZE(...) BOOST_PP_CAT(BOOST_PP_VARIADIC_SIZE_I(__VA_ARGS__, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1,),)
+# if NDNBOOST_PP_VARIADICS
+#    if NDNBOOST_PP_VARIADICS_MSVC
+#        define NDNBOOST_PP_VARIADIC_SIZE(...) NDNBOOST_PP_CAT(NDNBOOST_PP_VARIADIC_SIZE_I(__VA_ARGS__, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1,),)
 #    else
-#        define BOOST_PP_VARIADIC_SIZE(...) BOOST_PP_VARIADIC_SIZE_I(__VA_ARGS__, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1,)
+#        define NDNBOOST_PP_VARIADIC_SIZE(...) NDNBOOST_PP_VARIADIC_SIZE_I(__VA_ARGS__, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1,)
 #    endif
-#    define BOOST_PP_VARIADIC_SIZE_I(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63, size, ...) size
+#    define NDNBOOST_PP_VARIADIC_SIZE_I(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63, size, ...) size
 # endif
 #
 # endif
diff --git a/include/ndnboost/progress.hpp b/include/ndnboost/progress.hpp
index 6bd387f..3f5e9ed 100644
--- a/include/ndnboost/progress.hpp
+++ b/include/ndnboost/progress.hpp
@@ -16,8 +16,8 @@
 //  16 Jul 99  Second beta
 //   6 Jul 99  Initial boost version
 
-#ifndef BOOST_PROGRESS_HPP
-#define BOOST_PROGRESS_HPP
+#ifndef NDNBOOST_PROGRESS_HPP
+#define NDNBOOST_PROGRESS_HPP
 
 #include <ndnboost/timer.hpp>
 #include <ndnboost/utility.hpp>  // for noncopyable
@@ -140,4 +140,4 @@
 
 } // namespace ndnboost
 
-#endif  // BOOST_PROGRESS_HPP
+#endif  // NDNBOOST_PROGRESS_HPP
diff --git a/include/ndnboost/range/algorithm/equal.hpp b/include/ndnboost/range/algorithm/equal.hpp
index 27b741d..7091035 100644
--- a/include/ndnboost/range/algorithm/equal.hpp
+++ b/include/ndnboost/range/algorithm/equal.hpp
@@ -7,8 +7,8 @@
 //
 // For more information, see http://www.boost.org/libs/range/
 //
-#ifndef BOOST_RANGE_ALGORITHM_EQUAL_HPP_INCLUDED
-#define BOOST_RANGE_ALGORITHM_EQUAL_HPP_INCLUDED
+#ifndef NDNBOOST_RANGE_ALGORITHM_EQUAL_HPP_INCLUDED
+#define NDNBOOST_RANGE_ALGORITHM_EQUAL_HPP_INCLUDED
 
 #include <ndnboost/config.hpp>
 #include <ndnboost/range/concepts.hpp>
@@ -133,8 +133,8 @@
                            SinglePassTraversalReadableIterator2 first2,
                            SinglePassTraversalReadableIterator2 last2 )
         {
-            BOOST_DEDUCED_TYPENAME std::iterator_traits< SinglePassTraversalReadableIterator1 >::iterator_category tag1;
-            BOOST_DEDUCED_TYPENAME std::iterator_traits< SinglePassTraversalReadableIterator2 >::iterator_category tag2;
+            NDNBOOST_DEDUCED_TYPENAME std::iterator_traits< SinglePassTraversalReadableIterator1 >::iterator_category tag1;
+            NDNBOOST_DEDUCED_TYPENAME std::iterator_traits< SinglePassTraversalReadableIterator2 >::iterator_category tag2;
 
             return equal_impl(first1, last1, first2, last2, tag1, tag2);
         }
@@ -148,8 +148,8 @@
                            SinglePassTraversalReadableIterator2 last2,
                            BinaryPredicate                      pred )
         {
-            BOOST_DEDUCED_TYPENAME std::iterator_traits< SinglePassTraversalReadableIterator1 >::iterator_category tag1;
-            BOOST_DEDUCED_TYPENAME std::iterator_traits< SinglePassTraversalReadableIterator2 >::iterator_category tag2;
+            NDNBOOST_DEDUCED_TYPENAME std::iterator_traits< SinglePassTraversalReadableIterator1 >::iterator_category tag1;
+            NDNBOOST_DEDUCED_TYPENAME std::iterator_traits< SinglePassTraversalReadableIterator2 >::iterator_category tag2;
 
             return equal_impl(first1, last1, first2, last2, pred, tag1, tag2);
         }
@@ -169,8 +169,8 @@
         template< class SinglePassRange1, class SinglePassRange2 >
         inline bool equal( const SinglePassRange1& rng1, const SinglePassRange2& rng2 )
         {
-            BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept<const SinglePassRange1> ));
-            BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept<const SinglePassRange2> ));
+            NDNBOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept<const SinglePassRange1> ));
+            NDNBOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept<const SinglePassRange2> ));
 
             return ::ndnboost::range_detail::equal(
                 ::ndnboost::begin(rng1), ::ndnboost::end(rng1),
@@ -182,8 +182,8 @@
         inline bool equal( const SinglePassRange1& rng1, const SinglePassRange2& rng2,
                            BinaryPredicate pred )
         {
-            BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept<const SinglePassRange1> ));
-            BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept<const SinglePassRange2> ));
+            NDNBOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept<const SinglePassRange1> ));
+            NDNBOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept<const SinglePassRange2> ));
 
             return ::ndnboost::range_detail::equal(
                 ::ndnboost::begin(rng1), ::ndnboost::end(rng1),
diff --git a/include/ndnboost/range/as_literal.hpp b/include/ndnboost/range/as_literal.hpp
index 82babd8..997ed2e 100644
--- a/include/ndnboost/range/as_literal.hpp
+++ b/include/ndnboost/range/as_literal.hpp
@@ -8,14 +8,14 @@
 // For more information, see http://www.boost.org/libs/range/
 //
 
-#ifndef BOOST_RANGE_AS_LITERAL_HPP
-#define BOOST_RANGE_AS_LITERAL_HPP
+#ifndef NDNBOOST_RANGE_AS_LITERAL_HPP
+#define NDNBOOST_RANGE_AS_LITERAL_HPP
 
 #if defined(_MSC_VER) && (_MSC_VER >= 1200)
 # pragma once
 #endif
 
-#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
+#ifdef NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
 #include <ndnboost/range/detail/as_literal.hpp>
 #else
 
@@ -25,7 +25,7 @@
 #include <ndnboost/detail/workaround.hpp>
 
 #include <cstring>
-#ifndef BOOST_NO_CWCHAR
+#ifndef NDNBOOST_NO_CWCHAR
 #include <cwchar>
 #endif
 
@@ -38,7 +38,7 @@
             return strlen( s );
         }
 
-#ifndef BOOST_NO_CWCHAR
+#ifndef NDNBOOST_NO_CWCHAR
         inline std::size_t length( const wchar_t* s )
         {
             return wcslen( s );
@@ -61,7 +61,7 @@
             return true;
         }
 
-#ifndef BOOST_NO_CWCHAR
+#ifndef NDNBOOST_NO_CWCHAR
         inline bool is_char_ptr( wchar_t* )
         {
             return true;
@@ -87,7 +87,7 @@
         }
 
         template< class T >
-        inline iterator_range<BOOST_DEDUCED_TYPENAME range_iterator<T>::type>
+        inline iterator_range<NDNBOOST_DEDUCED_TYPENAME range_iterator<T>::type>
         make_range( T& r, long )
         {
             return ndnboost::make_iterator_range( r );
@@ -96,14 +96,14 @@
     }
 
     template< class Range >
-    inline iterator_range<BOOST_DEDUCED_TYPENAME range_iterator<Range>::type>
+    inline iterator_range<NDNBOOST_DEDUCED_TYPENAME range_iterator<Range>::type>
     as_literal( Range& r )
     {
         return range_detail::make_range( r, range_detail::is_char_ptr(r) );
     }
 
     template< class Range >
-    inline iterator_range<BOOST_DEDUCED_TYPENAME range_iterator<const Range>::type>
+    inline iterator_range<NDNBOOST_DEDUCED_TYPENAME range_iterator<const Range>::type>
     as_literal( const Range& r )
     {
         return range_detail::make_range( r, range_detail::is_char_ptr(r) );
@@ -122,6 +122,6 @@
     }
 }
 
-#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING
+#endif // NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
 
 #endif
diff --git a/include/ndnboost/range/begin.hpp b/include/ndnboost/range/begin.hpp
index 0143261..5001f35 100644
--- a/include/ndnboost/range/begin.hpp
+++ b/include/ndnboost/range/begin.hpp
@@ -8,8 +8,8 @@
 // For more information, see http://www.boost.org/libs/range/
 //
 
-#ifndef BOOST_RANGE_BEGIN_HPP
-#define BOOST_RANGE_BEGIN_HPP
+#ifndef NDNBOOST_RANGE_BEGIN_HPP
+#define NDNBOOST_RANGE_BEGIN_HPP
 
 #if defined(_MSC_VER) && (_MSC_VER >= 1200)
 # pragma once
@@ -17,7 +17,7 @@
 
 #include <ndnboost/range/config.hpp>
 
-#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
+#ifdef NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
 #include <ndnboost/range/detail/begin.hpp>
 #else
 
@@ -26,8 +26,8 @@
 namespace ndnboost
 {
 
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \
-    !BOOST_WORKAROUND(__GNUC__, < 3) \
+#if !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564)) && \
+    !NDNBOOST_WORKAROUND(__GNUC__, < 3) \
     /**/
 namespace range_detail
 {
@@ -38,7 +38,7 @@
     //////////////////////////////////////////////////////////////////////
 
     template< typename C >
-    inline BOOST_DEDUCED_TYPENAME range_iterator<C>::type
+    inline NDNBOOST_DEDUCED_TYPENAME range_iterator<C>::type
     range_begin( C& c )
     {
         //
@@ -85,8 +85,8 @@
     }
 
 
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \
-    !BOOST_WORKAROUND(__GNUC__, < 3) \
+#if !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564)) && \
+    !NDNBOOST_WORKAROUND(__GNUC__, < 3) \
     /**/
 } // namespace 'range_detail'
 #endif
@@ -98,10 +98,10 @@
 {
 
 template< class T >
-inline BOOST_DEDUCED_TYPENAME range_iterator<T>::type begin( T& r )
+inline NDNBOOST_DEDUCED_TYPENAME range_iterator<T>::type begin( T& r )
 {
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \
-    !BOOST_WORKAROUND(__GNUC__, < 3) \
+#if !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564)) && \
+    !NDNBOOST_WORKAROUND(__GNUC__, < 3) \
     /**/
     using namespace range_detail;
 #endif
@@ -109,10 +109,10 @@
 }
 
 template< class T >
-inline BOOST_DEDUCED_TYPENAME range_iterator<const T>::type begin( const T& r )
+inline NDNBOOST_DEDUCED_TYPENAME range_iterator<const T>::type begin( const T& r )
 {
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \
-    !BOOST_WORKAROUND(__GNUC__, < 3) \
+#if !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564)) && \
+    !NDNBOOST_WORKAROUND(__GNUC__, < 3) \
     /**/
     using namespace range_detail;
 #endif
@@ -122,14 +122,14 @@
     } // namespace range_adl_barrier
 } // namespace ndnboost
 
-#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING
+#endif // NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
 
 namespace ndnboost
 {
     namespace range_adl_barrier
     {
         template< class T >
-        inline BOOST_DEDUCED_TYPENAME range_iterator<const T>::type
+        inline NDNBOOST_DEDUCED_TYPENAME range_iterator<const T>::type
         const_begin( const T& r )
         {
             return ndnboost::range_adl_barrier::begin( r );
diff --git a/include/ndnboost/range/concepts.hpp b/include/ndnboost/range/concepts.hpp
index a8d4790..c990c16 100644
--- a/include/ndnboost/range/concepts.hpp
+++ b/include/ndnboost/range/concepts.hpp
@@ -13,8 +13,8 @@
 // For more information, see http://www.boost.org/libs/range/
 //
 
-#ifndef BOOST_RANGE_CONCEPTS_HPP
-#define BOOST_RANGE_CONCEPTS_HPP
+#ifndef NDNBOOST_RANGE_CONCEPTS_HPP
+#define NDNBOOST_RANGE_CONCEPTS_HPP
 
 #include <ndnboost/concept_check.hpp>
 #include <ndnboost/iterator/iterator_concepts.hpp>
@@ -37,7 +37,7 @@
  * concept.
  *
  * \code
- * BOOST_CONCEPT_ASSERT((ForwardRangeConcept<T>));
+ * NDNBOOST_CONCEPT_ASSERT((ForwardRangeConcept<T>));
  * \endcode
  *
  * A different concept check is required to ensure writeable value
@@ -45,7 +45,7 @@
  * to, the following code is required.
  *
  * \code
- * BOOST_CONCEPT_ASSERT((WriteableForwardRangeConcept<T>));
+ * NDNBOOST_CONCEPT_ASSERT((WriteableForwardRangeConcept<T>));
  * \endcode
  *
  * \see http://www.boost.org/libs/range/doc/range.html for details
@@ -60,7 +60,7 @@
 
     namespace range_detail {
 
-#ifndef BOOST_RANGE_ENABLE_CONCEPT_ASSERT
+#ifndef NDNBOOST_RANGE_ENABLE_CONCEPT_ASSERT
 
 // List broken compiler versions here:
     #ifdef __GNUC__
@@ -68,30 +68,30 @@
         // hence the least disruptive approach is to turn-off the concept checking for
         // this version of the compiler.
         #if __GNUC__ == 4 && __GNUC_MINOR__ == 2
-            #define BOOST_RANGE_ENABLE_CONCEPT_ASSERT 0
+            #define NDNBOOST_RANGE_ENABLE_CONCEPT_ASSERT 0
         #endif
     #endif
 
     #ifdef __BORLANDC__
-        #define BOOST_RANGE_ENABLE_CONCEPT_ASSERT 0
+        #define NDNBOOST_RANGE_ENABLE_CONCEPT_ASSERT 0
     #endif
 
     #ifdef __PATHCC__
-        #define BOOST_RANGE_ENABLE_CONCEPT_ASSERT 0
+        #define NDNBOOST_RANGE_ENABLE_CONCEPT_ASSERT 0
     #endif
 
 // Default to using the concept asserts unless we have defined it off
 // during the search for black listed compilers.
-    #ifndef BOOST_RANGE_ENABLE_CONCEPT_ASSERT
-        #define BOOST_RANGE_ENABLE_CONCEPT_ASSERT 1
+    #ifndef NDNBOOST_RANGE_ENABLE_CONCEPT_ASSERT
+        #define NDNBOOST_RANGE_ENABLE_CONCEPT_ASSERT 1
     #endif
 
 #endif
 
-#if BOOST_RANGE_ENABLE_CONCEPT_ASSERT
-    #define BOOST_RANGE_CONCEPT_ASSERT( x ) BOOST_CONCEPT_ASSERT( x )
+#if NDNBOOST_RANGE_ENABLE_CONCEPT_ASSERT
+    #define NDNBOOST_RANGE_CONCEPT_ASSERT( x ) NDNBOOST_CONCEPT_ASSERT( x )
 #else
-    #define BOOST_RANGE_CONCEPT_ASSERT( x )
+    #define NDNBOOST_RANGE_CONCEPT_ASSERT( x )
 #endif
 
         // Rationale for the inclusion of redefined iterator concept
@@ -112,16 +112,16 @@
         template<class Iterator>
         struct IncrementableIteratorConcept : CopyConstructible<Iterator>
         {
-#if BOOST_RANGE_ENABLE_CONCEPT_ASSERT
-            typedef BOOST_DEDUCED_TYPENAME iterator_traversal<Iterator>::type traversal_category;
+#if NDNBOOST_RANGE_ENABLE_CONCEPT_ASSERT
+            typedef NDNBOOST_DEDUCED_TYPENAME iterator_traversal<Iterator>::type traversal_category;
 
-            BOOST_RANGE_CONCEPT_ASSERT((
+            NDNBOOST_RANGE_CONCEPT_ASSERT((
                 Convertible<
                     traversal_category,
                     incrementable_traversal_tag
                 >));
 
-            BOOST_CONCEPT_USAGE(IncrementableIteratorConcept)
+            NDNBOOST_CONCEPT_USAGE(IncrementableIteratorConcept)
             {
                 ++i;
                 (void)i++;
@@ -136,14 +136,14 @@
             : IncrementableIteratorConcept<Iterator>
             , EqualityComparable<Iterator>
         {
-#if BOOST_RANGE_ENABLE_CONCEPT_ASSERT
-            BOOST_RANGE_CONCEPT_ASSERT((
+#if NDNBOOST_RANGE_ENABLE_CONCEPT_ASSERT
+            NDNBOOST_RANGE_CONCEPT_ASSERT((
                 Convertible<
-                    BOOST_DEDUCED_TYPENAME SinglePassIteratorConcept::traversal_category,
+                    NDNBOOST_DEDUCED_TYPENAME SinglePassIteratorConcept::traversal_category,
                     single_pass_traversal_tag
                 >));
 
-            BOOST_CONCEPT_USAGE(SinglePassIteratorConcept)
+            NDNBOOST_CONCEPT_USAGE(SinglePassIteratorConcept)
             {
                 Iterator i2(++i);
                 ndnboost::ignore_unused_variable_warning(i2);
@@ -154,10 +154,10 @@
                 // work
                 (void)(i++);
 
-                BOOST_DEDUCED_TYPENAME ndnboost::detail::iterator_traits<Iterator>::reference r1(*i);
+                NDNBOOST_DEDUCED_TYPENAME ndnboost::detail::iterator_traits<Iterator>::reference r1(*i);
                 ndnboost::ignore_unused_variable_warning(r1);
 
-                BOOST_DEDUCED_TYPENAME ndnboost::detail::iterator_traits<Iterator>::reference r2(*(++i));
+                NDNBOOST_DEDUCED_TYPENAME ndnboost::detail::iterator_traits<Iterator>::reference r2(*(++i));
                 ndnboost::ignore_unused_variable_warning(r2);
             }
         private:
@@ -170,19 +170,19 @@
             : SinglePassIteratorConcept<Iterator>
             , DefaultConstructible<Iterator>
         {
-#if BOOST_RANGE_ENABLE_CONCEPT_ASSERT
-            typedef BOOST_DEDUCED_TYPENAME ndnboost::detail::iterator_traits<Iterator>::difference_type difference_type;
+#if NDNBOOST_RANGE_ENABLE_CONCEPT_ASSERT
+            typedef NDNBOOST_DEDUCED_TYPENAME ndnboost::detail::iterator_traits<Iterator>::difference_type difference_type;
 
-            BOOST_MPL_ASSERT((is_integral<difference_type>));
-            BOOST_MPL_ASSERT_RELATION(std::numeric_limits<difference_type>::is_signed, ==, true);
+            NDNBOOST_MPL_ASSERT((is_integral<difference_type>));
+            NDNBOOST_MPL_ASSERT_RELATION(std::numeric_limits<difference_type>::is_signed, ==, true);
 
-            BOOST_RANGE_CONCEPT_ASSERT((
+            NDNBOOST_RANGE_CONCEPT_ASSERT((
                 Convertible<
-                    BOOST_DEDUCED_TYPENAME ForwardIteratorConcept::traversal_category,
+                    NDNBOOST_DEDUCED_TYPENAME ForwardIteratorConcept::traversal_category,
                     forward_traversal_tag
                 >));
 
-            BOOST_CONCEPT_USAGE(ForwardIteratorConcept)
+            NDNBOOST_CONCEPT_USAGE(ForwardIteratorConcept)
             {
                 // See the above note in the SinglePassIteratorConcept about the handling of the
                 // postfix increment. Since with forward and better iterators there is no need
@@ -190,7 +190,7 @@
                 // is convertible to reference.
                 Iterator i2(i++);
                 ndnboost::ignore_unused_variable_warning(i2);
-                BOOST_DEDUCED_TYPENAME ndnboost::detail::iterator_traits<Iterator>::reference r(*(i++));
+                NDNBOOST_DEDUCED_TYPENAME ndnboost::detail::iterator_traits<Iterator>::reference r(*(i++));
                 ndnboost::ignore_unused_variable_warning(r);
             }
         private:
@@ -202,14 +202,14 @@
          struct BidirectionalIteratorConcept
              : ForwardIteratorConcept<Iterator>
          {
- #if BOOST_RANGE_ENABLE_CONCEPT_ASSERT
-             BOOST_RANGE_CONCEPT_ASSERT((
+ #if NDNBOOST_RANGE_ENABLE_CONCEPT_ASSERT
+             NDNBOOST_RANGE_CONCEPT_ASSERT((
                  Convertible<
-                     BOOST_DEDUCED_TYPENAME BidirectionalIteratorConcept::traversal_category,
+                     NDNBOOST_DEDUCED_TYPENAME BidirectionalIteratorConcept::traversal_category,
                      bidirectional_traversal_tag
                  >));
 
-             BOOST_CONCEPT_USAGE(BidirectionalIteratorConcept)
+             NDNBOOST_CONCEPT_USAGE(BidirectionalIteratorConcept)
              {
                  --i;
                  (void)i--;
@@ -223,14 +223,14 @@
          struct RandomAccessIteratorConcept
              : BidirectionalIteratorConcept<Iterator>
          {
- #if BOOST_RANGE_ENABLE_CONCEPT_ASSERT
-             BOOST_RANGE_CONCEPT_ASSERT((
+ #if NDNBOOST_RANGE_ENABLE_CONCEPT_ASSERT
+             NDNBOOST_RANGE_CONCEPT_ASSERT((
                  Convertible<
-                     BOOST_DEDUCED_TYPENAME RandomAccessIteratorConcept::traversal_category,
+                     NDNBOOST_DEDUCED_TYPENAME RandomAccessIteratorConcept::traversal_category,
                      random_access_traversal_tag
                  >));
 
-             BOOST_CONCEPT_USAGE(RandomAccessIteratorConcept)
+             NDNBOOST_CONCEPT_USAGE(RandomAccessIteratorConcept)
              {
                  i += n;
                  i = i + n;
@@ -240,7 +240,7 @@
                  n = i - j;
              }
          private:
-             BOOST_DEDUCED_TYPENAME RandomAccessIteratorConcept::difference_type n;
+             NDNBOOST_DEDUCED_TYPENAME RandomAccessIteratorConcept::difference_type n;
              Iterator i;
              Iterator j;
  #endif
@@ -252,14 +252,14 @@
     template<class T>
     struct SinglePassRangeConcept
     {
-#if BOOST_RANGE_ENABLE_CONCEPT_ASSERT
-         typedef BOOST_DEDUCED_TYPENAME range_iterator<T const>::type  const_iterator;
-         typedef BOOST_DEDUCED_TYPENAME range_iterator<T>::type        iterator;
+#if NDNBOOST_RANGE_ENABLE_CONCEPT_ASSERT
+         typedef NDNBOOST_DEDUCED_TYPENAME range_iterator<T const>::type  const_iterator;
+         typedef NDNBOOST_DEDUCED_TYPENAME range_iterator<T>::type        iterator;
 
-         BOOST_RANGE_CONCEPT_ASSERT((range_detail::SinglePassIteratorConcept<iterator>));
-         BOOST_RANGE_CONCEPT_ASSERT((range_detail::SinglePassIteratorConcept<const_iterator>));
+         NDNBOOST_RANGE_CONCEPT_ASSERT((range_detail::SinglePassIteratorConcept<iterator>));
+         NDNBOOST_RANGE_CONCEPT_ASSERT((range_detail::SinglePassIteratorConcept<const_iterator>));
 
-         BOOST_CONCEPT_USAGE(SinglePassRangeConcept)
+         NDNBOOST_CONCEPT_USAGE(SinglePassRangeConcept)
          {
             // This has been modified from assigning to this->i
             // (where i was a member variable) to improve
@@ -295,25 +295,25 @@
     template<class T>
     struct ForwardRangeConcept : SinglePassRangeConcept<T>
     {
-#if BOOST_RANGE_ENABLE_CONCEPT_ASSERT
-        BOOST_RANGE_CONCEPT_ASSERT((range_detail::ForwardIteratorConcept<BOOST_DEDUCED_TYPENAME ForwardRangeConcept::iterator>));
-        BOOST_RANGE_CONCEPT_ASSERT((range_detail::ForwardIteratorConcept<BOOST_DEDUCED_TYPENAME ForwardRangeConcept::const_iterator>));
+#if NDNBOOST_RANGE_ENABLE_CONCEPT_ASSERT
+        NDNBOOST_RANGE_CONCEPT_ASSERT((range_detail::ForwardIteratorConcept<NDNBOOST_DEDUCED_TYPENAME ForwardRangeConcept::iterator>));
+        NDNBOOST_RANGE_CONCEPT_ASSERT((range_detail::ForwardIteratorConcept<NDNBOOST_DEDUCED_TYPENAME ForwardRangeConcept::const_iterator>));
 #endif
     };
 
     template<class Range>
     struct WriteableRangeConcept
     {
-#if BOOST_RANGE_ENABLE_CONCEPT_ASSERT
-        typedef BOOST_DEDUCED_TYPENAME range_iterator<Range>::type iterator;
+#if NDNBOOST_RANGE_ENABLE_CONCEPT_ASSERT
+        typedef NDNBOOST_DEDUCED_TYPENAME range_iterator<Range>::type iterator;
 
-        BOOST_CONCEPT_USAGE(WriteableRangeConcept)
+        NDNBOOST_CONCEPT_USAGE(WriteableRangeConcept)
         {
             *i = v;
         }
     private:
         iterator i;
-        BOOST_DEDUCED_TYPENAME range_value<Range>::type v;
+        NDNBOOST_DEDUCED_TYPENAME range_value<Range>::type v;
 #endif
     };
 
@@ -329,9 +329,9 @@
     template<class T>
     struct BidirectionalRangeConcept : ForwardRangeConcept<T>
     {
-#if BOOST_RANGE_ENABLE_CONCEPT_ASSERT
-        BOOST_RANGE_CONCEPT_ASSERT((range_detail::BidirectionalIteratorConcept<BOOST_DEDUCED_TYPENAME BidirectionalRangeConcept::iterator>));
-        BOOST_RANGE_CONCEPT_ASSERT((range_detail::BidirectionalIteratorConcept<BOOST_DEDUCED_TYPENAME BidirectionalRangeConcept::const_iterator>));
+#if NDNBOOST_RANGE_ENABLE_CONCEPT_ASSERT
+        NDNBOOST_RANGE_CONCEPT_ASSERT((range_detail::BidirectionalIteratorConcept<NDNBOOST_DEDUCED_TYPENAME BidirectionalRangeConcept::iterator>));
+        NDNBOOST_RANGE_CONCEPT_ASSERT((range_detail::BidirectionalIteratorConcept<NDNBOOST_DEDUCED_TYPENAME BidirectionalRangeConcept::const_iterator>));
 #endif
     };
 
@@ -347,9 +347,9 @@
     template<class T>
     struct RandomAccessRangeConcept : BidirectionalRangeConcept<T>
     {
-#if BOOST_RANGE_ENABLE_CONCEPT_ASSERT
-        BOOST_RANGE_CONCEPT_ASSERT((range_detail::RandomAccessIteratorConcept<BOOST_DEDUCED_TYPENAME RandomAccessRangeConcept::iterator>));
-        BOOST_RANGE_CONCEPT_ASSERT((range_detail::RandomAccessIteratorConcept<BOOST_DEDUCED_TYPENAME RandomAccessRangeConcept::const_iterator>));
+#if NDNBOOST_RANGE_ENABLE_CONCEPT_ASSERT
+        NDNBOOST_RANGE_CONCEPT_ASSERT((range_detail::RandomAccessIteratorConcept<NDNBOOST_DEDUCED_TYPENAME RandomAccessRangeConcept::iterator>));
+        NDNBOOST_RANGE_CONCEPT_ASSERT((range_detail::RandomAccessIteratorConcept<NDNBOOST_DEDUCED_TYPENAME RandomAccessRangeConcept::const_iterator>));
 #endif
     };
 
@@ -363,4 +363,4 @@
 
 } // namespace ndnboost
 
-#endif // BOOST_RANGE_CONCEPTS_HPP
+#endif // NDNBOOST_RANGE_CONCEPTS_HPP
diff --git a/include/ndnboost/range/config.hpp b/include/ndnboost/range/config.hpp
index 449007c..b372d6a 100644
--- a/include/ndnboost/range/config.hpp
+++ b/include/ndnboost/range/config.hpp
@@ -8,8 +8,8 @@
 // For more information, see http://www.boost.org/libs/range/
 //
 
-#ifndef BOOST_RANGE_CONFIG_HPP
-#define BOOST_RANGE_CONFIG_HPP
+#ifndef NDNBOOST_RANGE_CONFIG_HPP
+#define NDNBOOST_RANGE_CONFIG_HPP
 
 #include <ndnboost/detail/workaround.hpp>
 
@@ -19,33 +19,33 @@
 
 #include <ndnboost/config.hpp>
 
-#ifdef BOOST_RANGE_DEDUCED_TYPENAME
+#ifdef NDNBOOST_RANGE_DEDUCED_TYPENAME
 #error "macro already defined!"
 #endif
 
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
-# define BOOST_RANGE_DEDUCED_TYPENAME typename
+#if NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564))
+# define NDNBOOST_RANGE_DEDUCED_TYPENAME typename
 #else
-# if BOOST_WORKAROUND(BOOST_MSVC, == 1300) && !defined(_MSC_EXTENSIONS)
-#  define BOOST_RANGE_DEDUCED_TYPENAME typename
+# if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1300) && !defined(_MSC_EXTENSIONS)
+#  define NDNBOOST_RANGE_DEDUCED_TYPENAME typename
 # else
-#  define BOOST_RANGE_DEDUCED_TYPENAME BOOST_DEDUCED_TYPENAME
+#  define NDNBOOST_RANGE_DEDUCED_TYPENAME NDNBOOST_DEDUCED_TYPENAME
 # endif
 #endif
 
-#ifdef BOOST_RANGE_NO_ARRAY_SUPPORT
+#ifdef NDNBOOST_RANGE_NO_ARRAY_SUPPORT
 #error "macro already defined!"
 #endif
 
-#if BOOST_WORKAROUND( BOOST_MSVC, < 1300 ) || BOOST_WORKAROUND( __MWERKS__, <= 0x3003 )
-#define BOOST_RANGE_NO_ARRAY_SUPPORT 1
+#if NDNBOOST_WORKAROUND( NDNBOOST_MSVC, < 1300 ) || NDNBOOST_WORKAROUND( __MWERKS__, <= 0x3003 )
+#define NDNBOOST_RANGE_NO_ARRAY_SUPPORT 1
 #endif
 
-#ifdef BOOST_RANGE_NO_ARRAY_SUPPORT
-#define BOOST_RANGE_ARRAY_REF() (boost_range_array)
-#define BOOST_RANGE_NO_STATIC_ASSERT
+#ifdef NDNBOOST_RANGE_NO_ARRAY_SUPPORT
+#define NDNBOOST_RANGE_ARRAY_REF() (boost_range_array)
+#define NDNBOOST_RANGE_NO_STATIC_ASSERT
 #else
-#define BOOST_RANGE_ARRAY_REF() (&boost_range_array)
+#define NDNBOOST_RANGE_ARRAY_REF() (&boost_range_array)
 #endif
 
 
diff --git a/include/ndnboost/range/const_iterator.hpp b/include/ndnboost/range/const_iterator.hpp
index 2b78e60..61ed3e8 100644
--- a/include/ndnboost/range/const_iterator.hpp
+++ b/include/ndnboost/range/const_iterator.hpp
@@ -8,8 +8,8 @@
 // For more information, see http://www.boost.org/libs/range/
 //
 
-#ifndef BOOST_RANGE_CONST_ITERATOR_HPP
-#define BOOST_RANGE_CONST_ITERATOR_HPP
+#ifndef NDNBOOST_RANGE_CONST_ITERATOR_HPP
+#define NDNBOOST_RANGE_CONST_ITERATOR_HPP
 
 #if defined(_MSC_VER) && (_MSC_VER >= 1200)
 # pragma once
@@ -17,7 +17,7 @@
 
 #include <ndnboost/range/config.hpp>
 
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#ifdef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 #include <ndnboost/range/detail/const_iterator.hpp>
 #else
 
@@ -33,7 +33,7 @@
     //////////////////////////////////////////////////////////////////////////
     
     namespace range_detail {
-        BOOST_RANGE_EXTRACT_OPTIONAL_TYPE( const_iterator )
+        NDNBOOST_RANGE_EXTRACT_OPTIONAL_TYPE( const_iterator )
     }
 
     template< typename C >
@@ -62,6 +62,6 @@
 
 } // namespace ndnboost
 
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 #endif
diff --git a/include/ndnboost/range/detail/as_literal.hpp b/include/ndnboost/range/detail/as_literal.hpp
index 94b1b6e..223ae18 100644
--- a/include/ndnboost/range/detail/as_literal.hpp
+++ b/include/ndnboost/range/detail/as_literal.hpp
@@ -8,8 +8,8 @@
 // For more information, see http://www.boost.org/libs/range/
 //
 
-#ifndef BOOST_RANGE_DETAIL_AS_LITERAL_HPP
-#define BOOST_RANGE_DETAIL_AS_LITERAL_HPP
+#ifndef NDNBOOST_RANGE_DETAIL_AS_LITERAL_HPP
+#define NDNBOOST_RANGE_DETAIL_AS_LITERAL_HPP
 
 #if defined(_MSC_VER) && (_MSC_VER >= 1200)
 # pragma once
@@ -21,7 +21,7 @@
 namespace ndnboost
 {
     template< class Range >
-    inline iterator_range<BOOST_DEDUCED_TYPENAME range_iterator<Range>::type> 
+    inline iterator_range<NDNBOOST_DEDUCED_TYPENAME range_iterator<Range>::type> 
     as_literal( Range& r )
     {
         return ::ndnboost::make_iterator_range( ::ndnboost::range_detail::str_begin(r),
diff --git a/include/ndnboost/range/detail/begin.hpp b/include/ndnboost/range/detail/begin.hpp
index aea43cf..f2b5e59 100644
--- a/include/ndnboost/range/detail/begin.hpp
+++ b/include/ndnboost/range/detail/begin.hpp
@@ -8,14 +8,14 @@
 // For more information, see http://www.boost.org/libs/range/
 //
 
-#ifndef BOOST_RANGE_DETAIL_BEGIN_HPP
-#define BOOST_RANGE_DETAIL_BEGIN_HPP
+#ifndef NDNBOOST_RANGE_DETAIL_BEGIN_HPP
+#define NDNBOOST_RANGE_DETAIL_BEGIN_HPP
 
-#include <ndnboost/config.hpp> // BOOST_MSVC
+#include <ndnboost/config.hpp> // NDNBOOST_MSVC
 #include <ndnboost/detail/workaround.hpp>
 #include <ndnboost/range/iterator.hpp>
 #include <ndnboost/range/detail/common.hpp>
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1310)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1310)
 # include <ndnboost/range/value_type.hpp>
 #endif
 
@@ -35,7 +35,7 @@
         struct range_begin<std_container_>
         {
             template< typename C >
-            static BOOST_RANGE_DEDUCED_TYPENAME range_iterator<C>::type fun( C& c )
+            static NDNBOOST_RANGE_DEDUCED_TYPENAME range_iterator<C>::type fun( C& c )
             {
                 return c.begin();
             };
@@ -49,7 +49,7 @@
         struct range_begin<std_pair_>
         {
             template< typename P >
-            static BOOST_RANGE_DEDUCED_TYPENAME range_iterator<P>::type fun( const P& p )
+            static NDNBOOST_RANGE_DEDUCED_TYPENAME range_iterator<P>::type fun( const P& p )
             {
                 return p.first;
             }
@@ -62,15 +62,15 @@
         template<>
         struct range_begin<array_>
         {
-        #if !BOOST_WORKAROUND(BOOST_MSVC, < 1310)
+        #if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1310)
             template< typename T, std::size_t sz >
-            static T* fun( T BOOST_RANGE_ARRAY_REF()[sz] )
+            static T* fun( T NDNBOOST_RANGE_ARRAY_REF()[sz] )
             {
                 return boost_range_array;
             }
         #else
             template<typename T>
-            static BOOST_RANGE_DEDUCED_TYPENAME range_value<T>::type* fun(T& t)
+            static NDNBOOST_RANGE_DEDUCED_TYPENAME range_value<T>::type* fun(T& t)
             {
                 return t;
             }
@@ -82,10 +82,10 @@
     namespace range_adl_barrier
     {
         template< typename C >
-        inline BOOST_RANGE_DEDUCED_TYPENAME range_iterator<C>::type
+        inline NDNBOOST_RANGE_DEDUCED_TYPENAME range_iterator<C>::type
         begin( C& c )
         {
-            return range_detail::range_begin< BOOST_RANGE_DEDUCED_TYPENAME range_detail::range<C>::type >::fun( c );
+            return range_detail::range_begin< NDNBOOST_RANGE_DEDUCED_TYPENAME range_detail::range<C>::type >::fun( c );
         }
     }
 } // namespace 'boost'
diff --git a/include/ndnboost/range/detail/common.hpp b/include/ndnboost/range/detail/common.hpp
index f607721..6eff9db 100644
--- a/include/ndnboost/range/detail/common.hpp
+++ b/include/ndnboost/range/detail/common.hpp
@@ -8,8 +8,8 @@
 // For more information, see http://www.boost.org/libs/range/
 //
 
-#ifndef BOOST_RANGE_DETAIL_COMMON_HPP
-#define BOOST_RANGE_DETAIL_COMMON_HPP
+#ifndef NDNBOOST_RANGE_DETAIL_COMMON_HPP
+#define NDNBOOST_RANGE_DETAIL_COMMON_HPP
 
 #if defined(_MSC_VER) && (_MSC_VER >= 1200)
 # pragma once
@@ -63,50 +63,50 @@
             static C* c;
             static C  ptr;
 
-            BOOST_STATIC_CONSTANT( bool, is_pair_                = sizeof( ndnboost::range_detail::is_pair_impl( c ) ) == sizeof( yes_type ) );
-            BOOST_STATIC_CONSTANT( bool, is_char_ptr_            = sizeof( ndnboost::range_detail::is_char_ptr_impl( ptr ) ) == sizeof( yes_type ) );
-            BOOST_STATIC_CONSTANT( bool, is_const_char_ptr_      = sizeof( ndnboost::range_detail::is_const_char_ptr_impl( ptr ) ) == sizeof( yes_type ) );
-            BOOST_STATIC_CONSTANT( bool, is_wchar_t_ptr_         = sizeof( ndnboost::range_detail::is_wchar_t_ptr_impl( ptr ) ) == sizeof( yes_type ) );
-            BOOST_STATIC_CONSTANT( bool, is_const_wchar_t_ptr_   = sizeof( ndnboost::range_detail::is_const_wchar_t_ptr_impl( ptr ) ) == sizeof( yes_type ) );
-            BOOST_STATIC_CONSTANT( bool, is_char_array_          = sizeof( ndnboost::range_detail::is_char_array_impl( ptr ) ) == sizeof( yes_type ) );
-            BOOST_STATIC_CONSTANT( bool, is_wchar_t_array_       = sizeof( ndnboost::range_detail::is_wchar_t_array_impl( ptr ) ) == sizeof( yes_type ) );
-            BOOST_STATIC_CONSTANT( bool, is_string_              = (ndnboost::type_traits::ice_or<is_const_char_ptr_, is_const_wchar_t_ptr_>::value ));
-            BOOST_STATIC_CONSTANT( bool, is_array_               = ndnboost::is_array<C>::value );
+            NDNBOOST_STATIC_CONSTANT( bool, is_pair_                = sizeof( ndnboost::range_detail::is_pair_impl( c ) ) == sizeof( yes_type ) );
+            NDNBOOST_STATIC_CONSTANT( bool, is_char_ptr_            = sizeof( ndnboost::range_detail::is_char_ptr_impl( ptr ) ) == sizeof( yes_type ) );
+            NDNBOOST_STATIC_CONSTANT( bool, is_const_char_ptr_      = sizeof( ndnboost::range_detail::is_const_char_ptr_impl( ptr ) ) == sizeof( yes_type ) );
+            NDNBOOST_STATIC_CONSTANT( bool, is_wchar_t_ptr_         = sizeof( ndnboost::range_detail::is_wchar_t_ptr_impl( ptr ) ) == sizeof( yes_type ) );
+            NDNBOOST_STATIC_CONSTANT( bool, is_const_wchar_t_ptr_   = sizeof( ndnboost::range_detail::is_const_wchar_t_ptr_impl( ptr ) ) == sizeof( yes_type ) );
+            NDNBOOST_STATIC_CONSTANT( bool, is_char_array_          = sizeof( ndnboost::range_detail::is_char_array_impl( ptr ) ) == sizeof( yes_type ) );
+            NDNBOOST_STATIC_CONSTANT( bool, is_wchar_t_array_       = sizeof( ndnboost::range_detail::is_wchar_t_array_impl( ptr ) ) == sizeof( yes_type ) );
+            NDNBOOST_STATIC_CONSTANT( bool, is_string_              = (ndnboost::type_traits::ice_or<is_const_char_ptr_, is_const_wchar_t_ptr_>::value ));
+            NDNBOOST_STATIC_CONSTANT( bool, is_array_               = ndnboost::is_array<C>::value );
             
         };
         
         template< typename C >
         class range
         {
-            typedef BOOST_RANGE_DEDUCED_TYPENAME   ndnboost::mpl::if_c< ::ndnboost::range_detail::range_helper<C>::is_pair_,
+            typedef NDNBOOST_RANGE_DEDUCED_TYPENAME   ndnboost::mpl::if_c< ::ndnboost::range_detail::range_helper<C>::is_pair_,
                                                                   ndnboost::range_detail::std_pair_,
                                                                   void >::type pair_t;
-            typedef BOOST_RANGE_DEDUCED_TYPENAME   ndnboost::mpl::if_c< ::ndnboost::range_detail::range_helper<C>::is_array_,
+            typedef NDNBOOST_RANGE_DEDUCED_TYPENAME   ndnboost::mpl::if_c< ::ndnboost::range_detail::range_helper<C>::is_array_,
                                                                     ndnboost::range_detail::array_,
                                                                     pair_t >::type array_t;
-            typedef BOOST_RANGE_DEDUCED_TYPENAME   ndnboost::mpl::if_c< ::ndnboost::range_detail::range_helper<C>::is_string_,
+            typedef NDNBOOST_RANGE_DEDUCED_TYPENAME   ndnboost::mpl::if_c< ::ndnboost::range_detail::range_helper<C>::is_string_,
                                                                     ndnboost::range_detail::string_,
                                                                     array_t >::type string_t;
-            typedef BOOST_RANGE_DEDUCED_TYPENAME   ndnboost::mpl::if_c< ::ndnboost::range_detail::range_helper<C>::is_const_char_ptr_,
+            typedef NDNBOOST_RANGE_DEDUCED_TYPENAME   ndnboost::mpl::if_c< ::ndnboost::range_detail::range_helper<C>::is_const_char_ptr_,
                                                                     ndnboost::range_detail::const_char_ptr_,
                                                                     string_t >::type const_char_ptr_t;
-            typedef BOOST_RANGE_DEDUCED_TYPENAME   ndnboost::mpl::if_c< ::ndnboost::range_detail::range_helper<C>::is_char_ptr_,
+            typedef NDNBOOST_RANGE_DEDUCED_TYPENAME   ndnboost::mpl::if_c< ::ndnboost::range_detail::range_helper<C>::is_char_ptr_,
                                                                     ndnboost::range_detail::char_ptr_,
                                                                     const_char_ptr_t >::type char_ptr_t;
-            typedef BOOST_RANGE_DEDUCED_TYPENAME   ndnboost::mpl::if_c< ::ndnboost::range_detail::range_helper<C>::is_const_wchar_t_ptr_,
+            typedef NDNBOOST_RANGE_DEDUCED_TYPENAME   ndnboost::mpl::if_c< ::ndnboost::range_detail::range_helper<C>::is_const_wchar_t_ptr_,
                                                                     ndnboost::range_detail::const_wchar_t_ptr_,
                                                                     char_ptr_t >::type const_wchar_ptr_t;
-            typedef BOOST_RANGE_DEDUCED_TYPENAME   ndnboost::mpl::if_c< ::ndnboost::range_detail::range_helper<C>::is_wchar_t_ptr_,
+            typedef NDNBOOST_RANGE_DEDUCED_TYPENAME   ndnboost::mpl::if_c< ::ndnboost::range_detail::range_helper<C>::is_wchar_t_ptr_,
                                                                     ndnboost::range_detail::wchar_t_ptr_,
                                                                     const_wchar_ptr_t >::type wchar_ptr_t;
-            typedef BOOST_RANGE_DEDUCED_TYPENAME   ndnboost::mpl::if_c< ::ndnboost::range_detail::range_helper<C>::is_wchar_t_array_,
+            typedef NDNBOOST_RANGE_DEDUCED_TYPENAME   ndnboost::mpl::if_c< ::ndnboost::range_detail::range_helper<C>::is_wchar_t_array_,
                                                                     ndnboost::range_detail::wchar_t_array_,
                                                                     wchar_ptr_t >::type wchar_array_t;
-            typedef BOOST_RANGE_DEDUCED_TYPENAME   ndnboost::mpl::if_c< ::ndnboost::range_detail::range_helper<C>::is_char_array_,
+            typedef NDNBOOST_RANGE_DEDUCED_TYPENAME   ndnboost::mpl::if_c< ::ndnboost::range_detail::range_helper<C>::is_char_array_,
                                                                     ndnboost::range_detail::char_array_,
                                                                     wchar_array_t >::type char_array_t;
         public:
-            typedef BOOST_RANGE_DEDUCED_TYPENAME   ndnboost::mpl::if_c< ::ndnboost::is_void<char_array_t>::value,
+            typedef NDNBOOST_RANGE_DEDUCED_TYPENAME   ndnboost::mpl::if_c< ::ndnboost::is_void<char_array_t>::value,
                                                                     ndnboost::range_detail::std_container_,
                                                                     char_array_t >::type type;  
         }; // class 'range' 
diff --git a/include/ndnboost/range/detail/const_iterator.hpp b/include/ndnboost/range/detail/const_iterator.hpp
index a23c25a..eb75292 100644
--- a/include/ndnboost/range/detail/const_iterator.hpp
+++ b/include/ndnboost/range/detail/const_iterator.hpp
@@ -8,8 +8,8 @@
 // For more information, see http://www.boost.org/libs/range/
 //
 
-#ifndef BOOST_RANGE_DETAIL_CONST_ITERATOR_HPP
-#define BOOST_RANGE_DETAIL_CONST_ITERATOR_HPP
+#ifndef NDNBOOST_RANGE_DETAIL_CONST_ITERATOR_HPP
+#define NDNBOOST_RANGE_DETAIL_CONST_ITERATOR_HPP
 
 #include <ndnboost/range/detail/common.hpp>
 #include <ndnboost/range/detail/remove_extent.hpp>
@@ -31,7 +31,7 @@
             template< typename C >
             struct pts
             {
-                typedef BOOST_RANGE_DEDUCED_TYPENAME C::const_iterator type;
+                typedef NDNBOOST_RANGE_DEDUCED_TYPENAME C::const_iterator type;
             };
         };
 
@@ -41,7 +41,7 @@
             template< typename P >
             struct pts
             {
-                typedef BOOST_RANGE_DEDUCED_TYPENAME P::first_type type;
+                typedef NDNBOOST_RANGE_DEDUCED_TYPENAME P::first_type type;
             };
         };
 
@@ -52,7 +52,7 @@
             template< typename T >
             struct pts
             {
-                typedef const BOOST_RANGE_DEDUCED_TYPENAME 
+                typedef const NDNBOOST_RANGE_DEDUCED_TYPENAME 
                     remove_extent<T>::type* type;
             };
         };
@@ -61,9 +61,9 @@
     template< typename C >
     class range_const_iterator
     {
-        typedef BOOST_DEDUCED_TYPENAME range_detail::range<C>::type c_type;
+        typedef NDNBOOST_DEDUCED_TYPENAME range_detail::range<C>::type c_type;
     public:
-        typedef BOOST_DEDUCED_TYPENAME range_detail::range_const_iterator_<c_type>::BOOST_NESTED_TEMPLATE pts<C>::type type; 
+        typedef NDNBOOST_DEDUCED_TYPENAME range_detail::range_const_iterator_<c_type>::NDNBOOST_NESTED_TEMPLATE pts<C>::type type; 
     };
 
 }
diff --git a/include/ndnboost/range/detail/detail_str.hpp b/include/ndnboost/range/detail/detail_str.hpp
index 5519996..cad0754 100644
--- a/include/ndnboost/range/detail/detail_str.hpp
+++ b/include/ndnboost/range/detail/detail_str.hpp
@@ -8,10 +8,10 @@
 // For more information, see http://www.boost.org/libs/range/
 //
 
-#ifndef BOOST_RANGE_DETAIL_DETAIL_STR_HPP
-#define BOOST_RANGE_DETAIL_DETAIL_STR_HPP
+#ifndef NDNBOOST_RANGE_DETAIL_DETAIL_STR_HPP
+#define NDNBOOST_RANGE_DETAIL_DETAIL_STR_HPP
 
-#include <ndnboost/config.hpp> // BOOST_MSVC
+#include <ndnboost/config.hpp> // NDNBOOST_MSVC
 #include <ndnboost/range/iterator.hpp>
 
 namespace ndnboost 
@@ -29,7 +29,7 @@
             template< typename T >
             struct pts
             {
-                 typedef BOOST_RANGE_DEDUCED_TYPENAME 
+                 typedef NDNBOOST_RANGE_DEDUCED_TYPENAME 
                     remove_extent<T>::type* type;
             };
         };
@@ -85,7 +85,7 @@
             template< typename T >
             struct pts
             {
-                typedef const BOOST_RANGE_DEDUCED_TYPENAME 
+                typedef const NDNBOOST_RANGE_DEDUCED_TYPENAME 
                     remove_extent<T>::type* type;
             };
         };
@@ -184,10 +184,10 @@
         };
         
         template< typename C >
-        inline BOOST_RANGE_DEDUCED_TYPENAME range_iterator<C>::type 
+        inline NDNBOOST_RANGE_DEDUCED_TYPENAME range_iterator<C>::type 
         str_begin( C& c )
         {
-            return range_detail::range_begin< BOOST_RANGE_DEDUCED_TYPENAME 
+            return range_detail::range_begin< NDNBOOST_RANGE_DEDUCED_TYPENAME 
                 range_detail::range<C>::type >::fun( c );
         }
 
@@ -199,7 +199,7 @@
         struct range_end<char_array_>
         {
             template< typename T, std::size_t sz >
-            static T* fun( T BOOST_RANGE_ARRAY_REF()[sz] )
+            static T* fun( T NDNBOOST_RANGE_ARRAY_REF()[sz] )
             {
                 return ndnboost::range_detail::array_end( boost_range_array );
             }
@@ -209,7 +209,7 @@
         struct range_end<wchar_t_array_>
         {
             template< typename T, std::size_t sz >
-            static T* fun( T BOOST_RANGE_ARRAY_REF()[sz] )
+            static T* fun( T NDNBOOST_RANGE_ARRAY_REF()[sz] )
             {
                 return ndnboost::range_detail::array_end( boost_range_array );
             }
@@ -253,10 +253,10 @@
         };
 
         template< typename C >
-        inline BOOST_RANGE_DEDUCED_TYPENAME range_iterator<C>::type 
+        inline NDNBOOST_RANGE_DEDUCED_TYPENAME range_iterator<C>::type 
         str_end( C& c )
         {
-            return range_detail::range_end< BOOST_RANGE_DEDUCED_TYPENAME 
+            return range_detail::range_end< NDNBOOST_RANGE_DEDUCED_TYPENAME 
                 range_detail::range<C>::type >::fun( c );
         }
 
diff --git a/include/ndnboost/range/detail/end.hpp b/include/ndnboost/range/detail/end.hpp
index a16cf73..87f848c 100644
--- a/include/ndnboost/range/detail/end.hpp
+++ b/include/ndnboost/range/detail/end.hpp
@@ -8,19 +8,19 @@
 // For more information, see http://www.boost.org/libs/range/
 //
 
-#ifndef BOOST_RANGE_DETAIL_END_HPP
-#define BOOST_RANGE_DETAIL_END_HPP
+#ifndef NDNBOOST_RANGE_DETAIL_END_HPP
+#define NDNBOOST_RANGE_DETAIL_END_HPP
 
-#include <ndnboost/config.hpp> // BOOST_MSVC
+#include <ndnboost/config.hpp> // NDNBOOST_MSVC
 #include <ndnboost/detail/workaround.hpp>
 
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
 # include <ndnboost/range/detail/vc6/end.hpp>
 #else
 # include <ndnboost/range/detail/implementation_help.hpp>
 # include <ndnboost/range/iterator.hpp>
 # include <ndnboost/range/detail/common.hpp>
-# if BOOST_WORKAROUND(BOOST_MSVC, < 1310)
+# if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1310)
 #  include <ndnboost/range/detail/remove_extent.hpp>
 # endif
 
@@ -39,7 +39,7 @@
         struct range_end<std_container_>
         {
             template< typename C >
-            static BOOST_RANGE_DEDUCED_TYPENAME range_iterator<C>::type
+            static NDNBOOST_RANGE_DEDUCED_TYPENAME range_iterator<C>::type
             fun( C& c )
             {
                 return c.end();
@@ -54,7 +54,7 @@
         struct range_end<std_pair_>
         {
             template< typename P >
-            static BOOST_RANGE_DEDUCED_TYPENAME range_iterator<P>::type
+            static NDNBOOST_RANGE_DEDUCED_TYPENAME range_iterator<P>::type
             fun( const P& p )
             {
                 return p.second;
@@ -68,15 +68,15 @@
         template<>
         struct range_end<array_>
         {
-        #if !BOOST_WORKAROUND(BOOST_MSVC, < 1310)
+        #if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1310)
             template< typename T, std::size_t sz >
-            static T* fun( T BOOST_RANGE_ARRAY_REF()[sz] )
+            static T* fun( T NDNBOOST_RANGE_ARRAY_REF()[sz] )
             {
                 return ndnboost::range_detail::array_end( boost_range_array );
             }
         #else
             template<typename T>
-            static BOOST_RANGE_DEDUCED_TYPENAME remove_extent<T>::type* fun(T& t)
+            static NDNBOOST_RANGE_DEDUCED_TYPENAME remove_extent<T>::type* fun(T& t)
             {
                 return t + remove_extent<T>::size;
             }
@@ -88,10 +88,10 @@
     namespace range_adl_barrier
     {
         template< typename C >
-        inline BOOST_RANGE_DEDUCED_TYPENAME range_iterator<C>::type
+        inline NDNBOOST_RANGE_DEDUCED_TYPENAME range_iterator<C>::type
         end( C& c )
         {
-            return range_detail::range_end< BOOST_RANGE_DEDUCED_TYPENAME range_detail::range<C>::type >::fun( c );
+            return range_detail::range_end< NDNBOOST_RANGE_DEDUCED_TYPENAME range_detail::range<C>::type >::fun( c );
         }
     } // namespace range_adl_barrier
 
diff --git a/include/ndnboost/range/detail/extract_optional_type.hpp b/include/ndnboost/range/detail/extract_optional_type.hpp
index e77f37c..86a47b5 100644
--- a/include/ndnboost/range/detail/extract_optional_type.hpp
+++ b/include/ndnboost/range/detail/extract_optional_type.hpp
@@ -7,8 +7,8 @@
 //
 // For more information, see http://www.boost.org/libs/range/
 //
-#ifndef BOOST_RANGE_DETAIL_EXTRACT_OPTIONAL_TYPE_HPP_INCLUDED
-#define BOOST_RANGE_DETAIL_EXTRACT_OPTIONAL_TYPE_HPP_INCLUDED
+#ifndef NDNBOOST_RANGE_DETAIL_EXTRACT_OPTIONAL_TYPE_HPP_INCLUDED
+#define NDNBOOST_RANGE_DETAIL_EXTRACT_OPTIONAL_TYPE_HPP_INCLUDED
 
 #if defined(_MSC_VER) && (_MSC_VER >= 1200)
 # pragma once
@@ -16,13 +16,13 @@
 
 #include <ndnboost/config.hpp>
 
-#ifdef BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
+#ifdef NDNBOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
 
-#define BOOST_RANGE_EXTRACT_OPTIONAL_TYPE( a_typedef )                         \
+#define NDNBOOST_RANGE_EXTRACT_OPTIONAL_TYPE( a_typedef )                         \
     template< typename C >                                                     \
     struct extract_ ## a_typedef                                               \
     {                                                                          \
-        typedef BOOST_DEDUCED_TYPENAME C::a_typedef type;                      \
+        typedef NDNBOOST_DEDUCED_TYPENAME C::a_typedef type;                      \
     };
 
 #else
@@ -36,15 +36,15 @@
 // Defines extract_some_typedef<T> which exposes T::some_typedef as
 // extract_some_typedef<T>::type if T::some_typedef exists. Otherwise
 // extract_some_typedef<T> is empty.
-#define BOOST_RANGE_EXTRACT_OPTIONAL_TYPE( a_typedef )                         \
+#define NDNBOOST_RANGE_EXTRACT_OPTIONAL_TYPE( a_typedef )                         \
     template< typename C, typename Enable=void >                               \
     struct extract_ ## a_typedef                                               \
     {};                                                                        \
     template< typename C >                                                     \
     struct extract_ ## a_typedef< C                                            \
-    , BOOST_DEDUCED_TYPENAME ndnboost::range_detail::exists< BOOST_DEDUCED_TYPENAME C::a_typedef >::type \
+    , NDNBOOST_DEDUCED_TYPENAME ndnboost::range_detail::exists< NDNBOOST_DEDUCED_TYPENAME C::a_typedef >::type \
     > {                                                                        \
-        typedef BOOST_DEDUCED_TYPENAME C::a_typedef type;                      \
+        typedef NDNBOOST_DEDUCED_TYPENAME C::a_typedef type;                      \
     };
 
 #endif
diff --git a/include/ndnboost/range/detail/implementation_help.hpp b/include/ndnboost/range/detail/implementation_help.hpp
index 9e80d6b..f310b44 100644
--- a/include/ndnboost/range/detail/implementation_help.hpp
+++ b/include/ndnboost/range/detail/implementation_help.hpp
@@ -8,8 +8,8 @@
 // For more information, see http://www.boost.org/libs/range/
 //
 
-#ifndef BOOST_RANGE_DETAIL_IMPLEMENTATION_HELP_HPP
-#define BOOST_RANGE_DETAIL_IMPLEMENTATION_HELP_HPP
+#ifndef NDNBOOST_RANGE_DETAIL_IMPLEMENTATION_HELP_HPP
+#define NDNBOOST_RANGE_DETAIL_IMPLEMENTATION_HELP_HPP
 
 #include <ndnboost/range/config.hpp>
 #include <ndnboost/range/detail/common.hpp>
@@ -17,7 +17,7 @@
 #include <cstddef>
 #include <string.h>
 
-#ifndef BOOST_NO_CWCHAR
+#ifndef NDNBOOST_NO_CWCHAR
 #include <wchar.h>
 #endif
 
@@ -37,7 +37,7 @@
             return s + strlen( s );
         }
 
-#ifndef BOOST_NO_CWCHAR
+#ifndef NDNBOOST_NO_CWCHAR
         inline const wchar_t* str_end( const wchar_t* s, const wchar_t* )
         {
             return s + wcslen( s );
@@ -60,13 +60,13 @@
         }
 
         template< class T, std::size_t sz >
-        inline T* array_end( T BOOST_RANGE_ARRAY_REF()[sz] )
+        inline T* array_end( T NDNBOOST_RANGE_ARRAY_REF()[sz] )
         {
             return boost_range_array + sz;
         }
 
         template< class T, std::size_t sz >
-        inline const T* array_end( const T BOOST_RANGE_ARRAY_REF()[sz] )
+        inline const T* array_end( const T NDNBOOST_RANGE_ARRAY_REF()[sz] )
         {
             return boost_range_array + sz;
         }
@@ -82,14 +82,14 @@
         }
 
         template< class T, std::size_t sz >
-        inline std::size_t array_size( T BOOST_RANGE_ARRAY_REF()[sz] )
+        inline std::size_t array_size( T NDNBOOST_RANGE_ARRAY_REF()[sz] )
         {
             boost_range_silence_warning( boost_range_array );
             return sz;
         }
 
         template< class T, std::size_t sz >
-        inline std::size_t array_size( const T BOOST_RANGE_ARRAY_REF()[sz] )
+        inline std::size_t array_size( const T NDNBOOST_RANGE_ARRAY_REF()[sz] )
         {
             boost_range_silence_warning( boost_range_array );
             return sz;
diff --git a/include/ndnboost/range/detail/iterator.hpp b/include/ndnboost/range/detail/iterator.hpp
index c58b5ad..947b83e 100644
--- a/include/ndnboost/range/detail/iterator.hpp
+++ b/include/ndnboost/range/detail/iterator.hpp
@@ -8,8 +8,8 @@
 // For more information, see http://www.boost.org/libs/range/
 //
 
-#ifndef BOOST_RANGE_DETAIL_ITERATOR_HPP
-#define BOOST_RANGE_DETAIL_ITERATOR_HPP
+#ifndef NDNBOOST_RANGE_DETAIL_ITERATOR_HPP
+#define NDNBOOST_RANGE_DETAIL_ITERATOR_HPP
 
 #include <ndnboost/range/detail/common.hpp>
 #include <ndnboost/range/detail/remove_extent.hpp>
@@ -39,7 +39,7 @@
             template< typename C >
             struct pts
             {
-                typedef BOOST_RANGE_DEDUCED_TYPENAME C::iterator type;
+                typedef NDNBOOST_RANGE_DEDUCED_TYPENAME C::iterator type;
             };
         };
 
@@ -49,7 +49,7 @@
             template< typename P >
             struct pts
             {
-                typedef BOOST_RANGE_DEDUCED_TYPENAME P::first_type type;
+                typedef NDNBOOST_RANGE_DEDUCED_TYPENAME P::first_type type;
             };
         };
 
@@ -59,7 +59,7 @@
             template< typename T >
             struct pts
             {
-                typedef BOOST_RANGE_DEDUCED_TYPENAME 
+                typedef NDNBOOST_RANGE_DEDUCED_TYPENAME 
                     remove_extent<T>::type* type;
             };
         };
@@ -69,9 +69,9 @@
     template< typename C >
     class range_mutable_iterator
     {
-        typedef BOOST_RANGE_DEDUCED_TYPENAME range_detail::range<C>::type c_type;
+        typedef NDNBOOST_RANGE_DEDUCED_TYPENAME range_detail::range<C>::type c_type;
     public:
-        typedef typename range_detail::range_iterator_<c_type>::BOOST_NESTED_TEMPLATE pts<C>::type type; 
+        typedef typename range_detail::range_iterator_<c_type>::NDNBOOST_NESTED_TEMPLATE pts<C>::type type; 
     };
 }
 
diff --git a/include/ndnboost/range/detail/misc_concept.hpp b/include/ndnboost/range/detail/misc_concept.hpp
index fb2a39c..b50de38 100644
--- a/include/ndnboost/range/detail/misc_concept.hpp
+++ b/include/ndnboost/range/detail/misc_concept.hpp
@@ -5,8 +5,8 @@
 //  accompanying file LICENSE_1_0.txt or copy at
 //  http://www.boost.org/LICENSE_1_0.txt)
 //
-#ifndef BOOST_RANGE_DETAIL_MISC_CONCEPT_HPP_INCLUDED
-#define BOOST_RANGE_DETAIL_MISC_CONCEPT_HPP_INCLUDED
+#ifndef NDNBOOST_RANGE_DETAIL_MISC_CONCEPT_HPP_INCLUDED
+#define NDNBOOST_RANGE_DETAIL_MISC_CONCEPT_HPP_INCLUDED
 
 #include <ndnboost/concept_check.hpp>
 
@@ -18,7 +18,7 @@
         class SameTypeConcept
         {
         public:
-            BOOST_CONCEPT_USAGE(SameTypeConcept)
+            NDNBOOST_CONCEPT_USAGE(SameTypeConcept)
             {
                 same_type(a,b);
             }
diff --git a/include/ndnboost/range/detail/remove_extent.hpp b/include/ndnboost/range/detail/remove_extent.hpp
index 9d89ed7..dee0e34 100644
--- a/include/ndnboost/range/detail/remove_extent.hpp
+++ b/include/ndnboost/range/detail/remove_extent.hpp
@@ -9,8 +9,8 @@
 //
 
 
-#ifndef BOOST_RANGE_DETAIL_REMOVE_BOUNDS_HPP
-#define BOOST_RANGE_DETAIL_REMOVE_BOUNDS_HPP
+#ifndef NDNBOOST_RANGE_DETAIL_REMOVE_BOUNDS_HPP
+#define NDNBOOST_RANGE_DETAIL_REMOVE_BOUNDS_HPP
 
 #include <ndnboost/config.hpp>  // MSVC, NO_INTRINSIC_WCHAR_T, put size_t in std.
 #include <cstddef>
@@ -101,7 +101,7 @@
         template<typename T>
         struct remove_extent {
             static T* ar;
-            BOOST_STATIC_CONSTANT(std::size_t, size = sizeof(*ar) / sizeof((*ar)[0]));
+            NDNBOOST_STATIC_CONSTANT(std::size_t, size = sizeof(*ar) / sizeof((*ar)[0]));
 
             typedef typename
                     select<
@@ -109,7 +109,7 @@
                         is_same<T, char[size]>,                  char,
                         is_same<T, signed char[size]>,           signed char,
                         is_same<T, unsigned char[size]>,         unsigned char,
-                    #ifndef BOOST_NO_INTRINSIC_WCHAR_T
+                    #ifndef NDNBOOST_NO_INTRINSIC_WCHAR_T
                         is_same<T, wchar_t[size]>,               wchar_t,
                     #endif
                         is_same<T, short[size]>,                 short,
@@ -128,7 +128,7 @@
                         is_same<T, const char[size]>,            const char,
                         is_same<T, const signed char[size]>,     const signed char,
                         is_same<T, const unsigned char[size]>,   const unsigned char,
-                    #ifndef BOOST_NO_INTRINSIC_WCHAR_T
+                    #ifndef NDNBOOST_NO_INTRINSIC_WCHAR_T
                         is_same<T, const wchar_t[size]>,         const wchar_t,
                     #endif
                         is_same<T, const short[size]>,           const short,
diff --git a/include/ndnboost/range/detail/safe_bool.hpp b/include/ndnboost/range/detail/safe_bool.hpp
index fad34c4..c5a0731 100644
--- a/include/ndnboost/range/detail/safe_bool.hpp
+++ b/include/ndnboost/range/detail/safe_bool.hpp
@@ -7,8 +7,8 @@
 //
 // This code utilises the experience gained during the evolution of
 // <ndnboost/smart_ptr/operator_bool.hpp>
-#ifndef BOOST_RANGE_SAFE_BOOL_INCLUDED_HPP
-#define BOOST_RANGE_SAFE_BOOL_INCLUDED_HPP
+#ifndef NDNBOOST_RANGE_SAFE_BOOL_INCLUDED_HPP
+#define NDNBOOST_RANGE_SAFE_BOOL_INCLUDED_HPP
 
 #include <ndnboost/config.hpp>
 #include <ndnboost/range/config.hpp>
@@ -24,7 +24,7 @@
 public:
     typedef safe_bool this_type;
 
-#if (defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, < 0x570)) || defined(__CINT_)
+#if (defined(__SUNPRO_CC) && NDNBOOST_WORKAROUND(__SUNPRO_CC, < 0x570)) || defined(__CINT_)
     typedef bool unspecified_bool_type;
     static unspecified_bool_type to_unspecified_bool(const bool x, DataMemberPtr)
     {
@@ -40,9 +40,9 @@
         return x ? unspecified_bool : 0;
     }
 #elif \
-    ( defined(__MWERKS__) && BOOST_WORKAROUND(__MWERKS__, < 0x3200) ) || \
+    ( defined(__MWERKS__) && NDNBOOST_WORKAROUND(__MWERKS__, < 0x3200) ) || \
     ( defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ < 304) ) || \
-    ( defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, <= 0x590) )
+    ( defined(__SUNPRO_CC) && NDNBOOST_WORKAROUND(__SUNPRO_CC, <= 0x590) )
 
     typedef bool (this_type::*unspecified_bool_type)() const;
 
diff --git a/include/ndnboost/range/detail/sfinae.hpp b/include/ndnboost/range/detail/sfinae.hpp
index d940c3a..1ad1c23 100644
--- a/include/ndnboost/range/detail/sfinae.hpp
+++ b/include/ndnboost/range/detail/sfinae.hpp
@@ -8,8 +8,8 @@
 // For more information, see http://www.boost.org/libs/range/
 //
 
-#ifndef BOOST_RANGE_DETAIL_SFINAE_HPP
-#define BOOST_RANGE_DETAIL_SFINAE_HPP
+#ifndef NDNBOOST_RANGE_DETAIL_SFINAE_HPP
+#define NDNBOOST_RANGE_DETAIL_SFINAE_HPP
 
 #include <ndnboost/range/config.hpp>
 #include <ndnboost/type_traits/is_array.hpp>
@@ -33,15 +33,15 @@
         no_type  is_string_impl( ... );
         
         template< std::size_t sz >
-        yes_type is_char_array_impl( char BOOST_RANGE_ARRAY_REF()[sz] );
+        yes_type is_char_array_impl( char NDNBOOST_RANGE_ARRAY_REF()[sz] );
         template< std::size_t sz >
-        yes_type is_char_array_impl( const char BOOST_RANGE_ARRAY_REF()[sz] );
+        yes_type is_char_array_impl( const char NDNBOOST_RANGE_ARRAY_REF()[sz] );
         no_type  is_char_array_impl( ... );
         
         template< std::size_t sz >
-        yes_type is_wchar_t_array_impl( wchar_t BOOST_RANGE_ARRAY_REF()[sz] );
+        yes_type is_wchar_t_array_impl( wchar_t NDNBOOST_RANGE_ARRAY_REF()[sz] );
         template< std::size_t sz >
-        yes_type is_wchar_t_array_impl( const wchar_t BOOST_RANGE_ARRAY_REF()[sz] );
+        yes_type is_wchar_t_array_impl( const wchar_t NDNBOOST_RANGE_ARRAY_REF()[sz] );
         no_type  is_wchar_t_array_impl( ... );
                                      
         yes_type is_char_ptr_impl( char* const );
diff --git a/include/ndnboost/range/detail/size_type.hpp b/include/ndnboost/range/detail/size_type.hpp
index 3314922..1444d06 100644
--- a/include/ndnboost/range/detail/size_type.hpp
+++ b/include/ndnboost/range/detail/size_type.hpp
@@ -8,8 +8,8 @@
 // For more information, see http://www.boost.org/libs/range/
 //
 
-#ifndef BOOST_RANGE_DETAIL_SIZE_TYPE_HPP
-#define BOOST_RANGE_DETAIL_SIZE_TYPE_HPP
+#ifndef NDNBOOST_RANGE_DETAIL_SIZE_TYPE_HPP
+#define NDNBOOST_RANGE_DETAIL_SIZE_TYPE_HPP
 
 #include <ndnboost/range/detail/common.hpp>
 
@@ -37,7 +37,7 @@
             template< typename C >
             struct pts
             {
-                typedef BOOST_RANGE_DEDUCED_TYPENAME C::size_type type;
+                typedef NDNBOOST_RANGE_DEDUCED_TYPENAME C::size_type type;
             };
         };
     }
@@ -47,7 +47,7 @@
     {
         typedef typename range_detail::range<C>::type c_type;
     public:
-        typedef typename range_detail::range_size_type_<c_type>::BOOST_NESTED_TEMPLATE pts<C>::type type;
+        typedef typename range_detail::range_size_type_<c_type>::NDNBOOST_NESTED_TEMPLATE pts<C>::type type;
     };
 }
 
diff --git a/include/ndnboost/range/detail/str_types.hpp b/include/ndnboost/range/detail/str_types.hpp
index 1829762..57ed311 100644
--- a/include/ndnboost/range/detail/str_types.hpp
+++ b/include/ndnboost/range/detail/str_types.hpp
@@ -8,8 +8,8 @@
 // For more information, see http://www.boost.org/libs/range/
 //
 
-#ifndef BOOST_RANGE_DETAIL_STR_TYPES_HPP
-#define BOOST_RANGE_DETAIL_STR_TYPES_HPP
+#ifndef NDNBOOST_RANGE_DETAIL_STR_TYPES_HPP
+#define NDNBOOST_RANGE_DETAIL_STR_TYPES_HPP
 
 #include <ndnboost/range/size_type.hpp>
 #include <ndnboost/range/iterator.hpp>
diff --git a/include/ndnboost/range/detail/value_type.hpp b/include/ndnboost/range/detail/value_type.hpp
index f5c919b..0febe4f 100644
--- a/include/ndnboost/range/detail/value_type.hpp
+++ b/include/ndnboost/range/detail/value_type.hpp
@@ -8,8 +8,8 @@
 // For more information, see http://www.boost.org/libs/range/
 //
 
-#ifndef BOOST_RANGE_DETAIL_VALUE_TYPE_HPP
-#define BOOST_RANGE_DETAIL_VALUE_TYPE_HPP
+#ifndef NDNBOOST_RANGE_DETAIL_VALUE_TYPE_HPP
+#define NDNBOOST_RANGE_DETAIL_VALUE_TYPE_HPP
 
 #include <ndnboost/range/detail/common.hpp>
 #include <ndnboost/range/detail/remove_extent.hpp>
@@ -32,7 +32,7 @@
             template< typename C >
             struct pts
             {
-                typedef BOOST_RANGE_DEDUCED_TYPENAME C::value_type type;
+                typedef NDNBOOST_RANGE_DEDUCED_TYPENAME C::value_type type;
             };
         };
 
@@ -42,7 +42,7 @@
             template< typename P >
             struct pts
             {
-                typedef BOOST_RANGE_DEDUCED_TYPENAME ndnboost::iterator_value< BOOST_RANGE_DEDUCED_TYPENAME P::first_type >::type type;
+                typedef NDNBOOST_RANGE_DEDUCED_TYPENAME ndnboost::iterator_value< NDNBOOST_RANGE_DEDUCED_TYPENAME P::first_type >::type type;
             };
         };
 
@@ -52,7 +52,7 @@
             template< typename T >
             struct pts
             {
-                typedef BOOST_DEDUCED_TYPENAME remove_extent<T>::type type;
+                typedef NDNBOOST_DEDUCED_TYPENAME remove_extent<T>::type type;
             };
         };
         
@@ -61,9 +61,9 @@
     template< typename C >
     class range_value
     {
-        typedef BOOST_DEDUCED_TYPENAME range_detail::range<C>::type c_type;
+        typedef NDNBOOST_DEDUCED_TYPENAME range_detail::range<C>::type c_type;
     public:
-        typedef BOOST_DEDUCED_TYPENAME range_detail::range_value_type_<c_type>::BOOST_NESTED_TEMPLATE pts<C>::type type; 
+        typedef NDNBOOST_DEDUCED_TYPENAME range_detail::range_value_type_<c_type>::NDNBOOST_NESTED_TEMPLATE pts<C>::type type; 
     };
 
 }
diff --git a/include/ndnboost/range/detail/vc6/end.hpp b/include/ndnboost/range/detail/vc6/end.hpp
index 1853de8..ed9a1b0 100644
--- a/include/ndnboost/range/detail/vc6/end.hpp
+++ b/include/ndnboost/range/detail/vc6/end.hpp
@@ -8,8 +8,8 @@
 // For more information, see http://www.boost.org/libs/range/
 //
 
-#ifndef BOOST_RANGE_DETAIL_VC6_END_HPP
-#define BOOST_RANGE_DETAIL_VC6_END_HPP
+#ifndef NDNBOOST_RANGE_DETAIL_VC6_END_HPP
+#define NDNBOOST_RANGE_DETAIL_VC6_END_HPP
 
 #include <ndnboost/range/detail/implementation_help.hpp>
 #include <ndnboost/range/detail/implementation_help.hpp>
@@ -33,7 +33,7 @@
         {
             template< typename C >
             struct inner {
-                static BOOST_RANGE_DEDUCED_TYPENAME range_result_iterator<C>::type 
+                static NDNBOOST_RANGE_DEDUCED_TYPENAME range_result_iterator<C>::type 
                 fun( C& c )
                 {
                     return c.end();
@@ -50,7 +50,7 @@
         {
             template< typename P >
             struct inner {
-                static BOOST_RANGE_DEDUCED_TYPENAME range_result_iterator<P>::type 
+                static NDNBOOST_RANGE_DEDUCED_TYPENAME range_result_iterator<P>::type 
                 fun( const P& p )
                 {
                     return p.second;
@@ -67,7 +67,7 @@
         {
             template< typename T >
             struct inner {
-                static BOOST_DEDUCED_TYPENAME remove_extent<T>::type*
+                static NDNBOOST_DEDUCED_TYPENAME remove_extent<T>::type*
                 fun(T& t)
                 {
                     return t + remove_extent<T>::size;
@@ -81,7 +81,7 @@
         {
             template< typename T >
             struct inner {
-                static BOOST_DEDUCED_TYPENAME remove_extent<T>::type*
+                static NDNBOOST_DEDUCED_TYPENAME remove_extent<T>::type*
                 fun(T& t)
                 {
                     return t + remove_extent<T>::size;
@@ -94,7 +94,7 @@
         {
             template< typename T >
             struct inner {
-                static BOOST_DEDUCED_TYPENAME remove_extent<T>::type*
+                static NDNBOOST_DEDUCED_TYPENAME remove_extent<T>::type*
                 fun(T& t)
                 {
                     return t + remove_extent<T>::size;
@@ -158,7 +158,7 @@
     } // namespace 'range_detail'
     
     template< typename C >
-    inline BOOST_DEDUCED_TYPENAME range_result_iterator<C>::type 
+    inline NDNBOOST_DEDUCED_TYPENAME range_result_iterator<C>::type 
     end( C& c )
     {
         return range_detail::range_end<range_detail::range<C>::type>::inner<C>::fun( c );
diff --git a/include/ndnboost/range/difference_type.hpp b/include/ndnboost/range/difference_type.hpp
index b26058a..f4e1c16 100644
--- a/include/ndnboost/range/difference_type.hpp
+++ b/include/ndnboost/range/difference_type.hpp
@@ -8,8 +8,8 @@
 // For more information, see http://www.boost.org/libs/range/
 //
 
-#ifndef BOOST_RANGE_DIFFERENCE_TYPE_HPP
-#define BOOST_RANGE_DIFFERENCE_TYPE_HPP
+#ifndef NDNBOOST_RANGE_DIFFERENCE_TYPE_HPP
+#define NDNBOOST_RANGE_DIFFERENCE_TYPE_HPP
 
 #if defined(_MSC_VER) && (_MSC_VER >= 1200)
 # pragma once
diff --git a/include/ndnboost/range/distance.hpp b/include/ndnboost/range/distance.hpp
index 12d93fa..f43aada 100644
--- a/include/ndnboost/range/distance.hpp
+++ b/include/ndnboost/range/distance.hpp
@@ -8,8 +8,8 @@
 // For more information, see http://www.boost.org/libs/range/
 //
 
-#ifndef BOOST_RANGE_DISTANCE_HPP
-#define BOOST_RANGE_DISTANCE_HPP
+#ifndef NDNBOOST_RANGE_DISTANCE_HPP
+#define NDNBOOST_RANGE_DISTANCE_HPP
 
 #if defined(_MSC_VER) && (_MSC_VER >= 1200)
 # pragma once
@@ -23,7 +23,7 @@
 {
 
     template< class T >
-    inline BOOST_DEDUCED_TYPENAME range_difference<T>::type 
+    inline NDNBOOST_DEDUCED_TYPENAME range_difference<T>::type 
     distance( const T& r )
     {
         return std::distance( ndnboost::begin( r ), ndnboost::end( r ) );
diff --git a/include/ndnboost/range/empty.hpp b/include/ndnboost/range/empty.hpp
index 6fdd177..fc3dff1 100644
--- a/include/ndnboost/range/empty.hpp
+++ b/include/ndnboost/range/empty.hpp
@@ -8,8 +8,8 @@
 // For more information, see http://www.boost.org/libs/range/
 //
 
-#ifndef BOOST_RANGE_EMPTY_HPP
-#define BOOST_RANGE_EMPTY_HPP
+#ifndef NDNBOOST_RANGE_EMPTY_HPP
+#define NDNBOOST_RANGE_EMPTY_HPP
 
 #if defined(_MSC_VER) && (_MSC_VER >= 1200)
 # pragma once
diff --git a/include/ndnboost/range/end.hpp b/include/ndnboost/range/end.hpp
index 9a7cb11..ec7d54d 100644
--- a/include/ndnboost/range/end.hpp
+++ b/include/ndnboost/range/end.hpp
@@ -8,8 +8,8 @@
 // For more information, see http://www.boost.org/libs/range/
 //
 
-#ifndef BOOST_RANGE_END_HPP
-#define BOOST_RANGE_END_HPP
+#ifndef NDNBOOST_RANGE_END_HPP
+#define NDNBOOST_RANGE_END_HPP
 
 #if defined(_MSC_VER) && (_MSC_VER >= 1200)
 # pragma once
@@ -17,7 +17,7 @@
 
 #include <ndnboost/range/config.hpp>
 
-#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
+#ifdef NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
 #include <ndnboost/range/detail/end.hpp>
 #else
 
@@ -28,8 +28,8 @@
 namespace ndnboost
 {
 
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \
-    !BOOST_WORKAROUND(__GNUC__, < 3) \
+#if !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564)) && \
+    !NDNBOOST_WORKAROUND(__GNUC__, < 3) \
     /**/
 namespace range_detail
 {
@@ -39,7 +39,7 @@
         // primary template
         //////////////////////////////////////////////////////////////////////
         template< typename C >
-        inline BOOST_DEDUCED_TYPENAME range_iterator<C>::type
+        inline NDNBOOST_DEDUCED_TYPENAME range_iterator<C>::type
         range_end( C& c )
         {
             //
@@ -82,8 +82,8 @@
             return range_detail::array_end<T,sz>( a );
         }
 
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \
-    !BOOST_WORKAROUND(__GNUC__, < 3) \
+#if !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564)) && \
+    !NDNBOOST_WORKAROUND(__GNUC__, < 3) \
     /**/
 } // namespace 'range_detail'
 #endif
@@ -92,10 +92,10 @@
 {
 
 template< class T >
-inline BOOST_DEDUCED_TYPENAME range_iterator<T>::type end( T& r )
+inline NDNBOOST_DEDUCED_TYPENAME range_iterator<T>::type end( T& r )
 {
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \
-    !BOOST_WORKAROUND(__GNUC__, < 3) \
+#if !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564)) && \
+    !NDNBOOST_WORKAROUND(__GNUC__, < 3) \
     /**/
     using namespace range_detail;
 #endif
@@ -103,10 +103,10 @@
 }
 
 template< class T >
-inline BOOST_DEDUCED_TYPENAME range_iterator<const T>::type end( const T& r )
+inline NDNBOOST_DEDUCED_TYPENAME range_iterator<const T>::type end( const T& r )
 {
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \
-    !BOOST_WORKAROUND(__GNUC__, < 3) \
+#if !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564)) && \
+    !NDNBOOST_WORKAROUND(__GNUC__, < 3) \
     /**/
     using namespace range_detail;
 #endif
@@ -116,14 +116,14 @@
     } // namespace range_adl_barrier
 } // namespace 'boost'
 
-#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING
+#endif // NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
 
 namespace ndnboost
 {
     namespace range_adl_barrier
     {
         template< class T >
-        inline BOOST_DEDUCED_TYPENAME range_iterator<const T>::type
+        inline NDNBOOST_DEDUCED_TYPENAME range_iterator<const T>::type
         const_end( const T& r )
         {
             return ndnboost::range_adl_barrier::end( r );
diff --git a/include/ndnboost/range/functions.hpp b/include/ndnboost/range/functions.hpp
index 7fa535f..6aa2124 100644
--- a/include/ndnboost/range/functions.hpp
+++ b/include/ndnboost/range/functions.hpp
@@ -8,8 +8,8 @@
 // For more information, see http://www.boost.org/libs/range/
 //
 
-#ifndef BOOST_RANGE_FUNCTIONS_HPP
-#define BOOST_RANGE_FUNCTIONS_HPP
+#ifndef NDNBOOST_RANGE_FUNCTIONS_HPP
+#define NDNBOOST_RANGE_FUNCTIONS_HPP
 
 #if defined(_MSC_VER) && (_MSC_VER >= 1200)
 # pragma once
diff --git a/include/ndnboost/range/iterator.hpp b/include/ndnboost/range/iterator.hpp
index 8710a2e..b2a110c 100644
--- a/include/ndnboost/range/iterator.hpp
+++ b/include/ndnboost/range/iterator.hpp
@@ -8,8 +8,8 @@
 // For more information, see http://www.boost.org/libs/range/
 //
 
-#ifndef BOOST_RANGE_ITERATOR_HPP
-#define BOOST_RANGE_ITERATOR_HPP
+#ifndef NDNBOOST_RANGE_ITERATOR_HPP
+#define NDNBOOST_RANGE_ITERATOR_HPP
 
 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
 # pragma once
@@ -25,14 +25,14 @@
 namespace ndnboost
 {
 
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1310)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1310)
 
     namespace range_detail_vc7_1
     {
        template< typename C, typename Sig = void(C) >
        struct range_iterator
        {
-           typedef BOOST_RANGE_DEDUCED_TYPENAME
+           typedef NDNBOOST_RANGE_DEDUCED_TYPENAME
                mpl::eval_if_c< is_const<C>::value,
                                range_const_iterator< typename remove_const<C>::type >,
                                range_mutable_iterator<C> >::type type;
@@ -50,14 +50,14 @@
     template< typename C >
     struct range_iterator
     {
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1310)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1310)
 
-        typedef BOOST_RANGE_DEDUCED_TYPENAME
+        typedef NDNBOOST_RANGE_DEDUCED_TYPENAME
                range_detail_vc7_1::range_iterator<C>::type type;
 
 #else
 
-        typedef BOOST_RANGE_DEDUCED_TYPENAME
+        typedef NDNBOOST_RANGE_DEDUCED_TYPENAME
             mpl::eval_if_c< is_const<C>::value,
                             range_const_iterator< typename remove_const<C>::type >,
                             range_mutable_iterator<C> >::type type;
@@ -67,6 +67,6 @@
 
 } // namespace ndnboost
 
-//#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 #endif
diff --git a/include/ndnboost/range/iterator_range.hpp b/include/ndnboost/range/iterator_range.hpp
index 26a9016..1108aaa 100644
--- a/include/ndnboost/range/iterator_range.hpp
+++ b/include/ndnboost/range/iterator_range.hpp
@@ -7,8 +7,8 @@
 //
 // For more information, see http://www.boost.org/libs/range/
 //
-#ifndef BOOST_RANGE_ITERATOR_RANGE_HPP_INCLUDED
-#define BOOST_RANGE_ITERATOR_RANGE_HPP_INCLUDED
+#ifndef NDNBOOST_RANGE_ITERATOR_RANGE_HPP_INCLUDED
+#define NDNBOOST_RANGE_ITERATOR_RANGE_HPP_INCLUDED
 
 #include "ndnboost/range/iterator_range_core.hpp"
 #include "ndnboost/range/iterator_range_io.hpp"
diff --git a/include/ndnboost/range/iterator_range_core.hpp b/include/ndnboost/range/iterator_range_core.hpp
index e4ca4ea..be97e2b 100644
--- a/include/ndnboost/range/iterator_range_core.hpp
+++ b/include/ndnboost/range/iterator_range_core.hpp
@@ -7,13 +7,13 @@
 //
 // For more information, see http://www.boost.org/libs/range/
 //
-#ifndef BOOST_RANGE_ITERATOR_RANGE_CORE_HPP_INCLUDED
-#define BOOST_RANGE_ITERATOR_RANGE_CORE_HPP_INCLUDED
+#ifndef NDNBOOST_RANGE_ITERATOR_RANGE_CORE_HPP_INCLUDED
+#define NDNBOOST_RANGE_ITERATOR_RANGE_CORE_HPP_INCLUDED
 
 #include <ndnboost/config.hpp> // Define __STL_CONFIG_H, if appropriate.
 #include <ndnboost/detail/workaround.hpp>
 
-#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1500))
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, NDNBOOST_TESTED_AT(1500))
     #pragma warning( push )
     #pragma warning( disable : 4996 )
 #endif
@@ -133,15 +133,15 @@
         public:
             //! this type
             typedef iterator_range<IteratorT> type;
-            typedef BOOST_DEDUCED_TYPENAME safe_bool_t::unspecified_bool_type unspecified_bool_type;
-            //BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(value_type);
+            typedef NDNBOOST_DEDUCED_TYPENAME safe_bool_t::unspecified_bool_type unspecified_bool_type;
+            //NDNBOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(value_type);
 
             //! Encapsulated value type
-            typedef BOOST_DEDUCED_TYPENAME
+            typedef NDNBOOST_DEDUCED_TYPENAME
                 iterator_value<IteratorT>::type value_type;
 
             //! Difference type
-            typedef BOOST_DEDUCED_TYPENAME
+            typedef NDNBOOST_DEDUCED_TYPENAME
                 iterator_difference<IteratorT>::type difference_type;
 
             //! Size type
@@ -155,7 +155,7 @@
             // Needed because value-type is the same for
             // const and non-const iterators
             //
-            typedef BOOST_DEDUCED_TYPENAME
+            typedef NDNBOOST_DEDUCED_TYPENAME
                 iterator_reference<IteratorT>::type reference;
 
             //! const_iterator type
@@ -168,7 +168,7 @@
             typedef IteratorT iterator;
 
         private: // for return value of operator()()
-            typedef BOOST_DEDUCED_TYPENAME
+            typedef NDNBOOST_DEDUCED_TYPENAME
                 ndnboost::mpl::if_< ndnboost::mpl::or_< ndnboost::is_abstract< value_type >, 
                                                   ndnboost::is_array< value_type > >,
                                  reference, value_type >::type abstract_value_type;
@@ -207,7 +207,7 @@
                 m_Begin( impl::adl_begin( r ) ), m_End( impl::adl_end( r ) )
             {}
 
-            #if !BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+            #if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
             this_type& operator=( const this_type& r )
             {
                 m_Begin  = r.begin();
@@ -276,7 +276,7 @@
             }
 
 
-#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
+#ifdef NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
 
             bool operator==( const iterator_range& r ) const
             {
@@ -313,13 +313,13 @@
         public: // convenience
            reference front() const
            {
-               BOOST_ASSERT( !empty() );
+               NDNBOOST_ASSERT( !empty() );
                return *m_Begin;
            }
 
            reference back() const
            {
-               BOOST_ASSERT( !empty() );
+               NDNBOOST_ASSERT( !empty() );
                IteratorT last( m_End );
                return *--last;
            }
@@ -327,20 +327,20 @@
            // pop_front() - added to model the SinglePassRangePrimitiveConcept
            void pop_front()
            {
-               BOOST_ASSERT( !empty() );
+               NDNBOOST_ASSERT( !empty() );
                ++m_Begin;
            }
 
            // pop_back() - added to model the BidirectionalRangePrimitiveConcept
            void pop_back()
            {
-               BOOST_ASSERT( !empty() );
+               NDNBOOST_ASSERT( !empty() );
                --m_End;
            }
 
            reference operator[]( difference_type at ) const
            {
-               BOOST_ASSERT( at >= 0 && at < size() );
+               NDNBOOST_ASSERT( at >= 0 && at < size() );
                return m_Begin[at];
            }
 
@@ -351,7 +351,7 @@
            //
            abstract_value_type operator()( difference_type at ) const
            {
-               BOOST_ASSERT( at >= 0 && at < size() );
+               NDNBOOST_ASSERT( at >= 0 && at < size() );
                return m_Begin[at];
            }
 
@@ -428,7 +428,7 @@
             return iterator_range_detail::greater_or_equal_than( l, r );
         }
 
-#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
+#ifdef NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
 #else
         template< class Iterator1T, class Iterator2T >
         inline bool operator==( const iterator_range<Iterator1T>& l,
@@ -516,7 +516,7 @@
             return iterator_range_detail::greater_or_equal_than( l, r );
         }
 
-#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING
+#endif // NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
 
 //  iterator range utilities -----------------------------------------//
 
@@ -535,13 +535,13 @@
             return iterator_range<IteratorT>( Begin, End );
         }
 
-#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
+#ifdef NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
 
         template< typename Range >
-        inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator<Range>::type >
+        inline iterator_range< NDNBOOST_DEDUCED_TYPENAME range_iterator<Range>::type >
         make_iterator_range( Range& r )
         {
-            return iterator_range< BOOST_DEDUCED_TYPENAME range_iterator<Range>::type >
+            return iterator_range< NDNBOOST_DEDUCED_TYPENAME range_iterator<Range>::type >
                 ( ndnboost::begin( r ), ndnboost::end( r ) );
         }
 
@@ -552,30 +552,30 @@
             and end iterators.
         */
         template< class ForwardRange >
-        inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator<ForwardRange>::type >
+        inline iterator_range< NDNBOOST_DEDUCED_TYPENAME range_iterator<ForwardRange>::type >
         make_iterator_range( ForwardRange& r )
         {
-           return iterator_range< BOOST_DEDUCED_TYPENAME range_iterator<ForwardRange>::type >
+           return iterator_range< NDNBOOST_DEDUCED_TYPENAME range_iterator<ForwardRange>::type >
                 ( r, iterator_range_detail::range_tag() );
         }
 
         template< class ForwardRange >
-        inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator<const ForwardRange>::type >
+        inline iterator_range< NDNBOOST_DEDUCED_TYPENAME range_iterator<const ForwardRange>::type >
         make_iterator_range( const ForwardRange& r )
         {
-           return iterator_range< BOOST_DEDUCED_TYPENAME range_iterator<const ForwardRange>::type >
+           return iterator_range< NDNBOOST_DEDUCED_TYPENAME range_iterator<const ForwardRange>::type >
                 ( r, iterator_range_detail::const_range_tag() );
         }
 
-#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING
+#endif // NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
 
         namespace iterator_range_detail
         {
             template< class Range >
-            inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator<Range>::type >
+            inline iterator_range< NDNBOOST_DEDUCED_TYPENAME range_iterator<Range>::type >
             make_range_impl( Range& r,
-                             BOOST_DEDUCED_TYPENAME range_difference<Range>::type advance_begin,
-                             BOOST_DEDUCED_TYPENAME range_difference<Range>::type advance_end )
+                             NDNBOOST_DEDUCED_TYPENAME range_difference<Range>::type advance_begin,
+                             NDNBOOST_DEDUCED_TYPENAME range_difference<Range>::type advance_end )
             {
                 //
                 // Not worth the effort
@@ -584,7 +584,7 @@
                 //    return make_iterator_range( r );
                 //
 
-                BOOST_DEDUCED_TYPENAME range_iterator<Range>::type
+                NDNBOOST_DEDUCED_TYPENAME range_iterator<Range>::type
                     new_begin = ndnboost::begin( r ),
                     new_end   = ndnboost::end( r );
                 std::advance( new_begin, advance_begin );
@@ -593,41 +593,41 @@
             }
         }
 
-#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
+#ifdef NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
 
         template< class Range >
-        inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator<Range>::type >
+        inline iterator_range< NDNBOOST_DEDUCED_TYPENAME range_iterator<Range>::type >
         make_iterator_range( Range& r,
-                    BOOST_DEDUCED_TYPENAME range_difference<Range>::type advance_begin,
-                    BOOST_DEDUCED_TYPENAME range_difference<Range>::type advance_end )
+                    NDNBOOST_DEDUCED_TYPENAME range_difference<Range>::type advance_begin,
+                    NDNBOOST_DEDUCED_TYPENAME range_difference<Range>::type advance_end )
         {
-            //BOOST_ASSERT( advance_begin - advance_end <= size(r) && "creating invalid range" );
+            //NDNBOOST_ASSERT( advance_begin - advance_end <= size(r) && "creating invalid range" );
             return iterator_range_detail::make_range_impl( r, advance_begin, advance_end );
         }
 
 #else
 
         template< class Range >
-        inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator<Range>::type >
+        inline iterator_range< NDNBOOST_DEDUCED_TYPENAME range_iterator<Range>::type >
         make_iterator_range( Range& r,
-                    BOOST_DEDUCED_TYPENAME range_difference<Range>::type advance_begin,
-                    BOOST_DEDUCED_TYPENAME range_difference<Range>::type advance_end )
+                    NDNBOOST_DEDUCED_TYPENAME range_difference<Range>::type advance_begin,
+                    NDNBOOST_DEDUCED_TYPENAME range_difference<Range>::type advance_end )
         {
-            //BOOST_ASSERT( advance_begin - advance_end <= size(r) && "creating invalid range" );
+            //NDNBOOST_ASSERT( advance_begin - advance_end <= size(r) && "creating invalid range" );
             return iterator_range_detail::make_range_impl( r, advance_begin, advance_end );
         }
 
         template< class Range >
-        inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator<const Range>::type >
+        inline iterator_range< NDNBOOST_DEDUCED_TYPENAME range_iterator<const Range>::type >
         make_iterator_range( const Range& r,
-                    BOOST_DEDUCED_TYPENAME range_difference<Range>::type advance_begin,
-                    BOOST_DEDUCED_TYPENAME range_difference<Range>::type advance_end )
+                    NDNBOOST_DEDUCED_TYPENAME range_difference<Range>::type advance_begin,
+                    NDNBOOST_DEDUCED_TYPENAME range_difference<Range>::type advance_end )
         {
-            //BOOST_ASSERT( advance_begin - advance_end <= size(r) && "creating invalid range" );
+            //NDNBOOST_ASSERT( advance_begin - advance_end <= size(r) && "creating invalid range" );
             return iterator_range_detail::make_range_impl( r, advance_begin, advance_end );
         }
 
-#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING
+#endif // NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
 
         //! copy a range into a sequence
         /*!
@@ -645,7 +645,7 @@
 
 } // namespace 'boost'
 
-#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1500))
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, NDNBOOST_TESTED_AT(1500))
     #pragma warning( pop )
 #endif
 
diff --git a/include/ndnboost/range/iterator_range_io.hpp b/include/ndnboost/range/iterator_range_io.hpp
index faa3657..3786623 100644
--- a/include/ndnboost/range/iterator_range_io.hpp
+++ b/include/ndnboost/range/iterator_range_io.hpp
@@ -7,28 +7,28 @@
 //
 // For more information, see http://www.boost.org/libs/range/
 //
-#ifndef BOOST_RANGE_ITERATOR_RANGE_IO_HPP_INCLUDED
-#define BOOST_RANGE_ITERATOR_RANGE_IO_HPP_INCLUDED
+#ifndef NDNBOOST_RANGE_ITERATOR_RANGE_IO_HPP_INCLUDED
+#define NDNBOOST_RANGE_ITERATOR_RANGE_IO_HPP_INCLUDED
 
 #include <ndnboost/config.hpp>
 #include <ndnboost/detail/workaround.hpp>
 
-#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1500))
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, NDNBOOST_TESTED_AT(1500))
     #pragma warning( push )
     #pragma warning( disable : 4996 )
 #endif
 
 // From ndnboost/dynamic_bitset.hpp; thanks to Matthias Troyer for Cray X1 patch.
-#ifndef BOOST_OLD_IOSTREAMS 
+#ifndef NDNBOOST_OLD_IOSTREAMS 
 # if defined(__STL_CONFIG_H) && \
     !defined (__STL_USE_NEW_IOSTREAMS) && !defined(__crayx1) \
     /**/
-#  define BOOST_OLD_IOSTREAMS
+#  define NDNBOOST_OLD_IOSTREAMS
 # endif
-#endif // #ifndef BOOST_OLD_IOSTREAMS
+#endif // #ifndef NDNBOOST_OLD_IOSTREAMS
 
 #ifndef _STLP_NO_IOSTREAMS
-# ifndef BOOST_OLD_IOSTREAMS
+# ifndef NDNBOOST_OLD_IOSTREAMS
 #  include <ostream>
 # else
 #  include <ostream.h>
@@ -44,7 +44,7 @@
 {
 
 #ifndef _STLP_NO_IOSTREAMS
-# ifndef BOOST_OLD_IOSTREAMS   
+# ifndef NDNBOOST_OLD_IOSTREAMS   
 
         //! iterator_range output operator
         /*!
@@ -57,7 +57,7 @@
                     const iterator_range<IteratorT>& r )
         {
             std::copy( r.begin(), r.end(), 
-                       std::ostream_iterator< BOOST_DEDUCED_TYPENAME 
+                       std::ostream_iterator< NDNBOOST_DEDUCED_TYPENAME 
                                               iterator_value<IteratorT>::type, 
                                               Elem, Traits>(Os) );
             return Os;
@@ -84,9 +84,9 @@
 
 } // namespace ndnboost
 
-#undef BOOST_OLD_IOSTREAMS
+#undef NDNBOOST_OLD_IOSTREAMS
 
-#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1500))
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, NDNBOOST_TESTED_AT(1500))
     #pragma warning(pop)
 #endif
 
diff --git a/include/ndnboost/range/mutable_iterator.hpp b/include/ndnboost/range/mutable_iterator.hpp
index e45d86d..b5183b0 100644
--- a/include/ndnboost/range/mutable_iterator.hpp
+++ b/include/ndnboost/range/mutable_iterator.hpp
@@ -8,8 +8,8 @@
 // For more information, see http://www.boost.org/libs/range/
 //
 
-#ifndef BOOST_RANGE_MUTABLE_ITERATOR_HPP
-#define BOOST_RANGE_MUTABLE_ITERATOR_HPP
+#ifndef NDNBOOST_RANGE_MUTABLE_ITERATOR_HPP
+#define NDNBOOST_RANGE_MUTABLE_ITERATOR_HPP
 
 #if defined(_MSC_VER) && (_MSC_VER >= 1200)
 # pragma once
@@ -17,7 +17,7 @@
 
 #include <ndnboost/range/config.hpp>
 
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#ifdef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 #include <ndnboost/range/detail/iterator.hpp>
 #else
 
@@ -33,7 +33,7 @@
     //////////////////////////////////////////////////////////////////////////
     
     namespace range_detail {
-        BOOST_RANGE_EXTRACT_OPTIONAL_TYPE( iterator )
+        NDNBOOST_RANGE_EXTRACT_OPTIONAL_TYPE( iterator )
     }
 
     template< typename C >
@@ -62,6 +62,6 @@
 
 } // namespace ndnboost
 
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 #endif
diff --git a/include/ndnboost/range/rbegin.hpp b/include/ndnboost/range/rbegin.hpp
index 8ab2456..68858f1 100644
--- a/include/ndnboost/range/rbegin.hpp
+++ b/include/ndnboost/range/rbegin.hpp
@@ -8,8 +8,8 @@
 // For more information, see http://www.boost.org/libs/range/
 //
 
-#ifndef BOOST_RANGE_RBEGIN_HPP
-#define BOOST_RANGE_RBEGIN_HPP
+#ifndef NDNBOOST_RANGE_RBEGIN_HPP
+#define NDNBOOST_RANGE_RBEGIN_HPP
 
 #if defined(_MSC_VER) && (_MSC_VER >= 1200)
 # pragma once
@@ -21,39 +21,39 @@
 namespace ndnboost
 {
 
-#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
+#ifdef NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
 
 template< class C >
-inline BOOST_DEDUCED_TYPENAME range_reverse_iterator<C>::type
+inline NDNBOOST_DEDUCED_TYPENAME range_reverse_iterator<C>::type
 rbegin( C& c )
 {
-    return BOOST_DEDUCED_TYPENAME range_reverse_iterator<C>::type( ndnboost::end( c ) );
+    return NDNBOOST_DEDUCED_TYPENAME range_reverse_iterator<C>::type( ndnboost::end( c ) );
 }
 
 #else
 
 template< class C >
-inline BOOST_DEDUCED_TYPENAME range_reverse_iterator<C>::type
+inline NDNBOOST_DEDUCED_TYPENAME range_reverse_iterator<C>::type
 rbegin( C& c )
 {
-    typedef BOOST_DEDUCED_TYPENAME range_reverse_iterator<C>::type
+    typedef NDNBOOST_DEDUCED_TYPENAME range_reverse_iterator<C>::type
         iter_type;
     return iter_type( ndnboost::end( c ) );
 }
 
 template< class C >
-inline BOOST_DEDUCED_TYPENAME range_reverse_iterator<const C>::type
+inline NDNBOOST_DEDUCED_TYPENAME range_reverse_iterator<const C>::type
 rbegin( const C& c )
 {
-    typedef BOOST_DEDUCED_TYPENAME range_reverse_iterator<const C>::type
+    typedef NDNBOOST_DEDUCED_TYPENAME range_reverse_iterator<const C>::type
         iter_type;
     return iter_type( ndnboost::end( c ) );
 }
 
-#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING
+#endif // NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
 
 template< class T >
-inline BOOST_DEDUCED_TYPENAME range_reverse_iterator<const T>::type
+inline NDNBOOST_DEDUCED_TYPENAME range_reverse_iterator<const T>::type
 const_rbegin( const T& r )
 {
     return ndnboost::rbegin( r );
diff --git a/include/ndnboost/range/rend.hpp b/include/ndnboost/range/rend.hpp
index 715ae6b..c680ca6 100644
--- a/include/ndnboost/range/rend.hpp
+++ b/include/ndnboost/range/rend.hpp
@@ -8,8 +8,8 @@
 // For more information, see http://www.boost.org/libs/range/
 //
 
-#ifndef BOOST_RANGE_REND_HPP
-#define BOOST_RANGE_REND_HPP
+#ifndef NDNBOOST_RANGE_REND_HPP
+#define NDNBOOST_RANGE_REND_HPP
 
 #if defined(_MSC_VER) && (_MSC_VER >= 1200)
 # pragma once
@@ -21,31 +21,31 @@
 namespace ndnboost
 {
 
-#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
+#ifdef NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
 
 template< class C >
-inline BOOST_DEDUCED_TYPENAME range_reverse_iterator<C>::type
+inline NDNBOOST_DEDUCED_TYPENAME range_reverse_iterator<C>::type
 rend( C& c )
 {
-    return BOOST_DEDUCED_TYPENAME range_reverse_iterator<C>::type( ndnboost::begin( c ) );
+    return NDNBOOST_DEDUCED_TYPENAME range_reverse_iterator<C>::type( ndnboost::begin( c ) );
 }
 
 #else
 
 template< class C >
-inline BOOST_DEDUCED_TYPENAME range_reverse_iterator<C>::type
+inline NDNBOOST_DEDUCED_TYPENAME range_reverse_iterator<C>::type
 rend( C& c )
 {
-    typedef BOOST_DEDUCED_TYPENAME range_reverse_iterator<C>::type
+    typedef NDNBOOST_DEDUCED_TYPENAME range_reverse_iterator<C>::type
                iter_type;
     return iter_type( ndnboost::begin( c ) );
 }
 
 template< class C >
-inline BOOST_DEDUCED_TYPENAME range_reverse_iterator<const C>::type
+inline NDNBOOST_DEDUCED_TYPENAME range_reverse_iterator<const C>::type
 rend( const C& c )
 {
-    typedef BOOST_DEDUCED_TYPENAME range_reverse_iterator<const C>::type
+    typedef NDNBOOST_DEDUCED_TYPENAME range_reverse_iterator<const C>::type
         iter_type;
     return iter_type( ndnboost::begin( c ) );
 }
@@ -53,7 +53,7 @@
 #endif
 
 template< class T >
-inline BOOST_DEDUCED_TYPENAME range_reverse_iterator<const T>::type
+inline NDNBOOST_DEDUCED_TYPENAME range_reverse_iterator<const T>::type
 const_rend( const T& r )
 {
     return ndnboost::rend( r );
diff --git a/include/ndnboost/range/result_iterator.hpp b/include/ndnboost/range/result_iterator.hpp
index 5c0dd75..006e77d 100644
--- a/include/ndnboost/range/result_iterator.hpp
+++ b/include/ndnboost/range/result_iterator.hpp
@@ -8,8 +8,8 @@
 // For more information, see http://www.boost.org/libs/range/
 //
 
-#ifndef BOOST_RANGE_RESULT_ITERATOR_HPP
-#define BOOST_RANGE_RESULT_ITERATOR_HPP
+#ifndef NDNBOOST_RANGE_RESULT_ITERATOR_HPP
+#define NDNBOOST_RANGE_RESULT_ITERATOR_HPP
 
 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
 # pragma once
diff --git a/include/ndnboost/range/reverse_iterator.hpp b/include/ndnboost/range/reverse_iterator.hpp
index 68fe03d..a50f78b 100644
--- a/include/ndnboost/range/reverse_iterator.hpp
+++ b/include/ndnboost/range/reverse_iterator.hpp
@@ -8,8 +8,8 @@
 // For more information, see http://www.boost.org/libs/range/
 //
 
-#ifndef BOOST_RANGE_REVERSE_ITERATOR_HPP
-#define BOOST_RANGE_REVERSE_ITERATOR_HPP
+#ifndef NDNBOOST_RANGE_REVERSE_ITERATOR_HPP
+#define NDNBOOST_RANGE_REVERSE_ITERATOR_HPP
 
 #if defined(_MSC_VER) && (_MSC_VER >= 1200)
 # pragma once
@@ -30,7 +30,7 @@
     struct range_reverse_iterator
     {
         typedef reverse_iterator< 
-            BOOST_DEDUCED_TYPENAME range_iterator<C>::type > type;
+            NDNBOOST_DEDUCED_TYPENAME range_iterator<C>::type > type;
     };
     
 
diff --git a/include/ndnboost/range/size.hpp b/include/ndnboost/range/size.hpp
index 9164e02..1952550 100644
--- a/include/ndnboost/range/size.hpp
+++ b/include/ndnboost/range/size.hpp
@@ -8,8 +8,8 @@
 // For more information, see http://www.boost.org/libs/range/
 //
 
-#ifndef BOOST_RANGE_SIZE_HPP
-#define BOOST_RANGE_SIZE_HPP
+#ifndef NDNBOOST_RANGE_SIZE_HPP
+#define NDNBOOST_RANGE_SIZE_HPP
 
 #if defined(_MSC_VER) && (_MSC_VER >= 1200)
 # pragma once
@@ -26,21 +26,21 @@
     namespace range_detail
     {
         template<class SinglePassRange>
-        inline BOOST_DEDUCED_TYPENAME range_size<const SinglePassRange>::type
+        inline NDNBOOST_DEDUCED_TYPENAME range_size<const SinglePassRange>::type
         range_calculate_size(const SinglePassRange& rng)
         {
-            BOOST_ASSERT( (ndnboost::end(rng) - ndnboost::begin(rng)) >= 0 &&
+            NDNBOOST_ASSERT( (ndnboost::end(rng) - ndnboost::begin(rng)) >= 0 &&
                           "reachability invariant broken!" );
             return ndnboost::end(rng) - ndnboost::begin(rng);
         }
     }
 
     template<class SinglePassRange>
-    inline BOOST_DEDUCED_TYPENAME range_size<const SinglePassRange>::type
+    inline NDNBOOST_DEDUCED_TYPENAME range_size<const SinglePassRange>::type
     size(const SinglePassRange& rng)
     {
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \
-    !BOOST_WORKAROUND(__GNUC__, < 3) \
+#if !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564)) && \
+    !NDNBOOST_WORKAROUND(__GNUC__, < 3) \
     /**/
         using namespace range_detail;
 #endif
diff --git a/include/ndnboost/range/size_type.hpp b/include/ndnboost/range/size_type.hpp
index 0ae8a87..ce48639 100644
--- a/include/ndnboost/range/size_type.hpp
+++ b/include/ndnboost/range/size_type.hpp
@@ -8,8 +8,8 @@
 // For more information, see http://www.boost.org/libs/range/
 //
 
-#ifndef BOOST_RANGE_SIZE_TYPE_HPP
-#define BOOST_RANGE_SIZE_TYPE_HPP
+#ifndef NDNBOOST_RANGE_SIZE_TYPE_HPP
+#define NDNBOOST_RANGE_SIZE_TYPE_HPP
 
 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
 # pragma once
@@ -17,7 +17,7 @@
 
 #include <ndnboost/range/config.hpp>
 #include <ndnboost/range/difference_type.hpp>
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#ifdef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 #include <ndnboost/range/detail/size_type.hpp>
 #else
 
@@ -43,7 +43,7 @@
             struct yes_type { char dummy[2]; };
 
             template<typename C>
-            static yes_type test(BOOST_DEDUCED_TYPENAME C::size_type x);
+            static yes_type test(NDNBOOST_DEDUCED_TYPENAME C::size_type x);
 
             template<typename C, typename Arg>
             static no_type test(Arg x);
@@ -55,18 +55,18 @@
         template<typename C, typename Enabler=void>
         struct range_size
         {
-            typedef BOOST_DEDUCED_TYPENAME make_unsigned<
-                BOOST_DEDUCED_TYPENAME range_difference<C>::type
+            typedef NDNBOOST_DEDUCED_TYPENAME make_unsigned<
+                NDNBOOST_DEDUCED_TYPENAME range_difference<C>::type
             >::type type;
         };
 
         template<typename C>
         struct range_size<
             C,
-            BOOST_DEDUCED_TYPENAME enable_if<has_size_type<C>, void>::type
+            NDNBOOST_DEDUCED_TYPENAME enable_if<has_size_type<C>, void>::type
         >
         {
-            typedef BOOST_DEDUCED_TYPENAME C::size_type type;
+            typedef NDNBOOST_DEDUCED_TYPENAME C::size_type type;
         };
 
     }
@@ -83,7 +83,7 @@
 
 } // namespace ndnboost
 
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 
 #endif
diff --git a/include/ndnboost/range/value_type.hpp b/include/ndnboost/range/value_type.hpp
index 855ed05..655ea60 100644
--- a/include/ndnboost/range/value_type.hpp
+++ b/include/ndnboost/range/value_type.hpp
@@ -8,8 +8,8 @@
 // For more information, see http://www.boost.org/libs/range/
 //
 
-#ifndef BOOST_RANGE_VALUE_TYPE_HPP
-#define BOOST_RANGE_VALUE_TYPE_HPP
+#ifndef NDNBOOST_RANGE_VALUE_TYPE_HPP
+#define NDNBOOST_RANGE_VALUE_TYPE_HPP
 
 #if defined(_MSC_VER) && (_MSC_VER >= 1200)
 # pragma once
@@ -18,7 +18,7 @@
 #include <ndnboost/range/config.hpp>
 #include <ndnboost/range/iterator.hpp>
 
-//#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//#ifdef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 //#include <ndnboost/range/detail/value_type.hpp>
 //#else
 
diff --git a/include/ndnboost/ref.hpp b/include/ndnboost/ref.hpp
index ad20bca..756ecd6 100644
--- a/include/ndnboost/ref.hpp
+++ b/include/ndnboost/ref.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_REF_HPP_INCLUDED
-#define BOOST_REF_HPP_INCLUDED
+#ifndef NDNBOOST_REF_HPP_INCLUDED
+#define NDNBOOST_REF_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -34,7 +34,7 @@
 public:
     typedef T type;
 
-#if defined( BOOST_MSVC ) && BOOST_WORKAROUND( BOOST_MSVC, < 1300 )
+#if defined( NDNBOOST_MSVC ) && NDNBOOST_WORKAROUND( NDNBOOST_MSVC, < 1300 )
 
     explicit reference_wrapper(T& t): t_(&t) {}
 
@@ -55,25 +55,25 @@
     T* t_;
 };
 
-# if defined( __BORLANDC__ ) && BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x581) )
-#  define BOOST_REF_CONST
+# if defined( __BORLANDC__ ) && NDNBOOST_WORKAROUND( __BORLANDC__, NDNBOOST_TESTED_AT(0x581) )
+#  define NDNBOOST_REF_CONST
 # else
-#  define BOOST_REF_CONST const
+#  define NDNBOOST_REF_CONST const
 # endif
 
-template<class T> inline reference_wrapper<T> BOOST_REF_CONST ref(T & t)
+template<class T> inline reference_wrapper<T> NDNBOOST_REF_CONST ref(T & t)
 { 
     return reference_wrapper<T>(t);
 }
 
-template<class T> inline reference_wrapper<T const> BOOST_REF_CONST cref(T const & t)
+template<class T> inline reference_wrapper<T const> NDNBOOST_REF_CONST cref(T const & t)
 {
     return reference_wrapper<T const>(t);
 }
 
-# undef BOOST_REF_CONST
+# undef NDNBOOST_REF_CONST
 
-# ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+# ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 template<typename T>
 class is_reference_wrapper
@@ -104,7 +104,7 @@
 /**/
 
 AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF(reference_wrapper<T>)
-#if !defined(BOOST_NO_CV_SPECIALIZATIONS)
+#if !defined(NDNBOOST_NO_CV_SPECIALIZATIONS)
 AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF(reference_wrapper<T> const)
 AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF(reference_wrapper<T> volatile)
 AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF(reference_wrapper<T> const volatile)
@@ -156,7 +156,7 @@
 class is_reference_wrapper
 {
  public:
-    BOOST_STATIC_CONSTANT(
+    NDNBOOST_STATIC_CONSTANT(
         bool, value = (
              sizeof(detail::is_reference_wrapper_test(type<T>()))
             == sizeof(detail::yes_reference_wrapper_t)));
@@ -171,7 +171,7 @@
       >::template apply<T>
 {};
 
-# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+# endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 template <class T> inline typename unwrap_reference<T>::type&
 unwrap_ref(T& t)
@@ -186,4 +186,4 @@
 
 } // namespace ndnboost
 
-#endif // #ifndef BOOST_REF_HPP_INCLUDED
+#endif // #ifndef NDNBOOST_REF_HPP_INCLUDED
diff --git a/include/ndnboost/scoped_array.hpp b/include/ndnboost/scoped_array.hpp
index 260b52d..99bf686 100644
--- a/include/ndnboost/scoped_array.hpp
+++ b/include/ndnboost/scoped_array.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SCOPED_ARRAY_HPP_INCLUDED
-#define BOOST_SCOPED_ARRAY_HPP_INCLUDED
+#ifndef NDNBOOST_SCOPED_ARRAY_HPP_INCLUDED
+#define NDNBOOST_SCOPED_ARRAY_HPP_INCLUDED
 
 //  (C) Copyright Greg Colvin and Beman Dawes 1998, 1999.
 //  Copyright (c) 2001, 2002 Peter Dimov
@@ -13,4 +13,4 @@
 
 #include <ndnboost/smart_ptr/scoped_array.hpp>
 
-#endif  // #ifndef BOOST_SCOPED_ARRAY_HPP_INCLUDED
+#endif  // #ifndef NDNBOOST_SCOPED_ARRAY_HPP_INCLUDED
diff --git a/include/ndnboost/scoped_ptr.hpp b/include/ndnboost/scoped_ptr.hpp
index c2178d1..f43bb43 100644
--- a/include/ndnboost/scoped_ptr.hpp
+++ b/include/ndnboost/scoped_ptr.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SCOPED_PTR_HPP_INCLUDED
-#define BOOST_SCOPED_PTR_HPP_INCLUDED
+#ifndef NDNBOOST_SCOPED_PTR_HPP_INCLUDED
+#define NDNBOOST_SCOPED_PTR_HPP_INCLUDED
 
 //  (C) Copyright Greg Colvin and Beman Dawes 1998, 1999.
 //  Copyright (c) 2001, 2002 Peter Dimov
@@ -13,4 +13,4 @@
 
 #include <ndnboost/smart_ptr/scoped_ptr.hpp>
 
-#endif // #ifndef BOOST_SCOPED_PTR_HPP_INCLUDED
+#endif // #ifndef NDNBOOST_SCOPED_PTR_HPP_INCLUDED
diff --git a/include/ndnboost/shared_array.hpp b/include/ndnboost/shared_array.hpp
index 3da084d..b4cec20 100644
--- a/include/ndnboost/shared_array.hpp
+++ b/include/ndnboost/shared_array.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SHARED_ARRAY_HPP_INCLUDED
-#define BOOST_SHARED_ARRAY_HPP_INCLUDED
+#ifndef NDNBOOST_SHARED_ARRAY_HPP_INCLUDED
+#define NDNBOOST_SHARED_ARRAY_HPP_INCLUDED
 
 //
 //  shared_array.hpp
@@ -16,4 +16,4 @@
 
 #include <ndnboost/smart_ptr/shared_array.hpp>
 
-#endif  // #ifndef BOOST_SHARED_ARRAY_HPP_INCLUDED
+#endif  // #ifndef NDNBOOST_SHARED_ARRAY_HPP_INCLUDED
diff --git a/include/ndnboost/shared_ptr.hpp b/include/ndnboost/shared_ptr.hpp
index d51926a..33ff8d7 100644
--- a/include/ndnboost/shared_ptr.hpp
+++ b/include/ndnboost/shared_ptr.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SHARED_PTR_HPP_INCLUDED
-#define BOOST_SHARED_PTR_HPP_INCLUDED
+#ifndef NDNBOOST_SHARED_PTR_HPP_INCLUDED
+#define NDNBOOST_SHARED_PTR_HPP_INCLUDED
 
 //
 //  shared_ptr.hpp
@@ -16,4 +16,4 @@
 
 #include <ndnboost/smart_ptr/shared_ptr.hpp>
 
-#endif  // #ifndef BOOST_SHARED_PTR_HPP_INCLUDED
+#endif  // #ifndef NDNBOOST_SHARED_PTR_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/allocate_shared_array.hpp b/include/ndnboost/smart_ptr/allocate_shared_array.hpp
index 3a78bd2..2e91bf9 100644
--- a/include/ndnboost/smart_ptr/allocate_shared_array.hpp
+++ b/include/ndnboost/smart_ptr/allocate_shared_array.hpp
@@ -6,15 +6,15 @@
  * Version 1.0. (See accompanying file LICENSE_1_0.txt
  * or copy at http://boost.org/LICENSE_1_0.txt)
  */
-#ifndef BOOST_SMART_PTR_ALLOCATE_SHARED_ARRAY_HPP
-#define BOOST_SMART_PTR_ALLOCATE_SHARED_ARRAY_HPP
+#ifndef NDNBOOST_SMART_PTR_ALLOCATE_SHARED_ARRAY_HPP
+#define NDNBOOST_SMART_PTR_ALLOCATE_SHARED_ARRAY_HPP
 
 #include <ndnboost/smart_ptr/shared_ptr.hpp>
 #include <ndnboost/smart_ptr/detail/allocate_array_helper.hpp>
 #include <ndnboost/smart_ptr/detail/array_deleter.hpp>
 #include <ndnboost/smart_ptr/detail/array_traits.hpp>
 #include <ndnboost/smart_ptr/detail/sp_if_array.hpp>
-#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
+#if !defined(NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST)
 #include <initializer_list>
 #endif
 
@@ -36,7 +36,7 @@
         d2->init(p2);
         return ndnboost::shared_ptr<T>(s1, p1);
     }
-#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
+#if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES)
     template<typename T, typename A, typename... Args>
     inline typename ndnboost::detail::sp_if_array<T>::type
     allocate_shared(const A& allocator, std::size_t size, Args&&... args) {
@@ -74,7 +74,7 @@
         return ndnboost::shared_ptr<T>(s1, p1);
     }
 #endif
-#if !defined(BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX)
+#if !defined(NDNBOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX)
     template<typename T, typename A>
     inline typename ndnboost::detail::sp_if_size_array<T>::type
     allocate_shared(const A& allocator, const T& list) {
@@ -145,7 +145,7 @@
         d2->template init_list<M>(p2, p3);
         return ndnboost::shared_ptr<T>(s1, p1);
     }
-#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
+#if !defined(NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST)
     template<typename T, typename A>
     inline typename ndnboost::detail::sp_if_array<T>::type
     allocate_shared(const A& allocator,
@@ -168,7 +168,7 @@
         return ndnboost::shared_ptr<T>(s1, p1);
     }
 #endif
-#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
+#if !defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES)
     template<typename T, typename A>
     inline typename ndnboost::detail::sp_if_array<T>::type
     allocate_shared(const A& allocator, std::size_t size,
diff --git a/include/ndnboost/smart_ptr/bad_weak_ptr.hpp b/include/ndnboost/smart_ptr/bad_weak_ptr.hpp
index df2879d..c8083c4 100644
--- a/include/ndnboost/smart_ptr/bad_weak_ptr.hpp
+++ b/include/ndnboost/smart_ptr/bad_weak_ptr.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_BAD_WEAK_PTR_HPP_INCLUDED
-#define BOOST_SMART_PTR_BAD_WEAK_PTR_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_BAD_WEAK_PTR_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_BAD_WEAK_PTR_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -56,4 +56,4 @@
 # pragma warn .8026     // Functions with excep. spec. are not expanded inline
 #endif
 
-#endif  // #ifndef BOOST_SMART_PTR_BAD_WEAK_PTR_HPP_INCLUDED
+#endif  // #ifndef NDNBOOST_SMART_PTR_BAD_WEAK_PTR_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/allocate_array_helper.hpp b/include/ndnboost/smart_ptr/detail/allocate_array_helper.hpp
index a0ad380..e9801dc 100644
--- a/include/ndnboost/smart_ptr/detail/allocate_array_helper.hpp
+++ b/include/ndnboost/smart_ptr/detail/allocate_array_helper.hpp
@@ -6,8 +6,8 @@
  * Version 1.0. (See accompanying file LICENSE_1_0.txt 
  * or copy at http://boost.org/LICENSE_1_0.txt)
  */
-#ifndef BOOST_SMART_PTR_DETAIL_ALLOCATE_ARRAY_HELPER_HPP
-#define BOOST_SMART_PTR_DETAIL_ALLOCATE_ARRAY_HELPER_HPP
+#ifndef NDNBOOST_SMART_PTR_DETAIL_ALLOCATE_ARRAY_HELPER_HPP
+#define NDNBOOST_SMART_PTR_DETAIL_ALLOCATE_ARRAY_HELPER_HPP
 
 #include <ndnboost/type_traits/alignment_of.hpp>
 
diff --git a/include/ndnboost/smart_ptr/detail/array_deleter.hpp b/include/ndnboost/smart_ptr/detail/array_deleter.hpp
index 14dcfb2..67ae9fd 100644
--- a/include/ndnboost/smart_ptr/detail/array_deleter.hpp
+++ b/include/ndnboost/smart_ptr/detail/array_deleter.hpp
@@ -6,8 +6,8 @@
  * Version 1.0. (See accompanying file LICENSE_1_0.txt
  * or copy at http://boost.org/LICENSE_1_0.txt)
  */
-#ifndef BOOST_SMART_PTR_DETAIL_ARRAY_DELETER_HPP
-#define BOOST_SMART_PTR_DETAIL_ARRAY_DELETER_HPP
+#ifndef NDNBOOST_SMART_PTR_DETAIL_ARRAY_DELETER_HPP
+#define NDNBOOST_SMART_PTR_DETAIL_ARRAY_DELETER_HPP
 
 #include <ndnboost/smart_ptr/detail/array_utility.hpp>
 #include <ndnboost/smart_ptr/detail/sp_forward.hpp>
@@ -32,12 +32,12 @@
                 array_init(memory, size);
                 object = memory;
             }
-#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
+#if !defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES)
             void init(T* memory, T&& value) {
                 array_init_value(memory, size, sp_forward<T>(value));
                 object = memory;                
             }
-#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
+#if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
             template<typename... Args>
             void init(T* memory, Args&&... args) {
                 array_init_args(memory, size, sp_forward<Args>(args)...);
@@ -83,12 +83,12 @@
                 array_init(memory, N);
                 object = memory;
             }
-#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
+#if !defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES)
             void init(T* memory, T&& value) {
                 array_init_value(memory, N, sp_forward<T>(value));
                 object = memory;                
             }
-#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
+#if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
             template<typename... Args>
             void init(T* memory, Args&&... args) {
                 array_init_args(memory, N, sp_forward<Args>(args)...);
diff --git a/include/ndnboost/smart_ptr/detail/array_traits.hpp b/include/ndnboost/smart_ptr/detail/array_traits.hpp
index 70d2391..179b776 100644
--- a/include/ndnboost/smart_ptr/detail/array_traits.hpp
+++ b/include/ndnboost/smart_ptr/detail/array_traits.hpp
@@ -6,8 +6,8 @@
  * Version 1.0. (See accompanying file LICENSE_1_0.txt 
  * or copy at http://boost.org/LICENSE_1_0.txt)
  */
-#ifndef BOOST_SMART_PTR_DETAIL_ARRAY_TRAITS_HPP
-#define BOOST_SMART_PTR_DETAIL_ARRAY_TRAITS_HPP
+#ifndef NDNBOOST_SMART_PTR_DETAIL_ARRAY_TRAITS_HPP
+#define NDNBOOST_SMART_PTR_DETAIL_ARRAY_TRAITS_HPP
 
 #include <ndnboost/type_traits/remove_cv.hpp>
 
diff --git a/include/ndnboost/smart_ptr/detail/array_utility.hpp b/include/ndnboost/smart_ptr/detail/array_utility.hpp
index c482b54..8696365 100644
--- a/include/ndnboost/smart_ptr/detail/array_utility.hpp
+++ b/include/ndnboost/smart_ptr/detail/array_utility.hpp
@@ -6,8 +6,8 @@
  * Version 1.0. (See accompanying file LICENSE_1_0.txt 
  * or copy at http://boost.org/LICENSE_1_0.txt)
  */
-#ifndef BOOST_SMART_PTR_DETAIL_ARRAY_UTILITY_HPP
-#define BOOST_SMART_PTR_DETAIL_ARRAY_UTILITY_HPP
+#ifndef NDNBOOST_SMART_PTR_DETAIL_ARRAY_UTILITY_HPP
+#define NDNBOOST_SMART_PTR_DETAIL_ARRAY_UTILITY_HPP
 
 #include <ndnboost/config.hpp>
 #include <ndnboost/type_traits/has_trivial_constructor.hpp>
@@ -37,7 +37,7 @@
         }
         template<typename T>
         inline void array_init(T* memory, std::size_t size, ndnboost::false_type) {
-#if !defined(BOOST_NO_EXCEPTIONS)
+#if !defined(NDNBOOST_NO_EXCEPTIONS)
             std::size_t i = 0;
             try {
                 for (; i < size; i++) {
@@ -60,10 +60,10 @@
             ndnboost::has_trivial_default_constructor<T> type;            
             array_init(memory, size, type);
         }
-#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
+#if !defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES)
         template<typename T>
         inline void array_init_value(T* memory, std::size_t size, T&& value) {
-#if !defined(BOOST_NO_EXCEPTIONS)
+#if !defined(NDNBOOST_NO_EXCEPTIONS)
             std::size_t i = 0;
             try {
                 for (; i < size; i++) {
@@ -81,10 +81,10 @@
             }
 #endif
         }
-#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
+#if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
         template<typename T, typename... Args>
         inline void array_init_args(T* memory, std::size_t size, Args&&... args) {
-#if !defined(BOOST_NO_EXCEPTIONS)
+#if !defined(NDNBOOST_NO_EXCEPTIONS)
             std::size_t i = 0;
             try {
                 for (; i < size; i++) {
@@ -106,7 +106,7 @@
 #endif
         template<typename T>
         inline void array_init_list(T* memory, std::size_t size, const T* list) {
-#if !defined(BOOST_NO_EXCEPTIONS)
+#if !defined(NDNBOOST_NO_EXCEPTIONS)
             std::size_t i = 0;
             try {
                 for (; i < size; i++) {
@@ -126,7 +126,7 @@
         }
         template<typename T, std::size_t N>
         inline void array_init_list(T* memory, std::size_t size, const T* list) {
-#if !defined(BOOST_NO_EXCEPTIONS)
+#if !defined(NDNBOOST_NO_EXCEPTIONS)
             std::size_t i = 0;
             try {
                 for (; i < size; i++) {
@@ -149,7 +149,7 @@
         }
         template<typename T>
         inline void array_noinit(T* memory, std::size_t size, ndnboost::false_type) {
-#if !defined(BOOST_NO_EXCEPTIONS)
+#if !defined(NDNBOOST_NO_EXCEPTIONS)
             std::size_t i = 0;
             try {
                 for (; i < size; i++) {
diff --git a/include/ndnboost/smart_ptr/detail/atomic_count.hpp b/include/ndnboost/smart_ptr/detail/atomic_count.hpp
index df19f10..9d55f25 100644
--- a/include/ndnboost/smart_ptr/detail/atomic_count.hpp
+++ b/include/ndnboost/smart_ptr/detail/atomic_count.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -75,7 +75,7 @@
 #include <ndnboost/config.hpp>
 #include <ndnboost/smart_ptr/detail/sp_has_sync.hpp>
 
-#ifndef BOOST_HAS_THREADS
+#ifndef NDNBOOST_HAS_THREADS
 
 namespace ndnboost
 {
@@ -89,7 +89,7 @@
 
 }
 
-#elif defined(BOOST_AC_USE_PTHREADS)
+#elif defined(NDNBOOST_AC_USE_PTHREADS)
 #  include <ndnboost/smart_ptr/detail/atomic_count_pthreads.hpp>
 
 #elif defined( __GNUC__ ) && ( defined( __i386__ ) || defined( __x86_64__ ) )
@@ -98,22 +98,22 @@
 #elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
 #  include <ndnboost/smart_ptr/detail/atomic_count_win32.hpp>
 
-#elif defined( BOOST_SP_HAS_SYNC )
+#elif defined( NDNBOOST_SP_HAS_SYNC )
 #  include <ndnboost/smart_ptr/detail/atomic_count_sync.hpp>
 
 #elif defined(__GLIBCPP__) || defined(__GLIBCXX__)
 #  include <ndnboost/smart_ptr/detail/atomic_count_gcc.hpp>
 
-#elif defined(BOOST_HAS_PTHREADS)
+#elif defined(NDNBOOST_HAS_PTHREADS)
 
-#  define BOOST_AC_USE_PTHREADS
+#  define NDNBOOST_AC_USE_PTHREADS
 #  include <ndnboost/smart_ptr/detail/atomic_count_pthreads.hpp>
 
 #else
 
-// Use #define BOOST_DISABLE_THREADS to avoid the error
+// Use #define NDNBOOST_DISABLE_THREADS to avoid the error
 #error Unrecognized threading platform
 
 #endif
 
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_HPP_INCLUDED
+#endif // #ifndef NDNBOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/atomic_count_gcc.hpp b/include/ndnboost/smart_ptr/detail/atomic_count_gcc.hpp
index 2b34800..7720cdf 100644
--- a/include/ndnboost/smart_ptr/detail/atomic_count_gcc.hpp
+++ b/include/ndnboost/smart_ptr/detail/atomic_count_gcc.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_HPP_INCLUDED
 
 //
 //  ndnboost/detail/atomic_count_gcc.hpp
@@ -69,4 +69,4 @@
 
 } // namespace ndnboost
 
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_HPP_INCLUDED
+#endif // #ifndef NDNBOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/atomic_count_gcc_x86.hpp b/include/ndnboost/smart_ptr/detail/atomic_count_gcc_x86.hpp
index 60ac65c..04b1e1d 100644
--- a/include/ndnboost/smart_ptr/detail/atomic_count_gcc_x86.hpp
+++ b/include/ndnboost/smart_ptr/detail/atomic_count_gcc_x86.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_X86_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_X86_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_X86_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_X86_HPP_INCLUDED
 
 //
 //  ndnboost/detail/atomic_count_gcc_x86.hpp
@@ -74,4 +74,4 @@
 
 } // namespace ndnboost
 
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_X86_HPP_INCLUDED
+#endif // #ifndef NDNBOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_X86_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/atomic_count_pthreads.hpp b/include/ndnboost/smart_ptr/detail/atomic_count_pthreads.hpp
index 85dbacf..bf0cbe8 100644
--- a/include/ndnboost/smart_ptr/detail/atomic_count_pthreads.hpp
+++ b/include/ndnboost/smart_ptr/detail/atomic_count_pthreads.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_PTHREADS_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_PTHREADS_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_PTHREADS_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_PTHREADS_HPP_INCLUDED
 
 //
 //  ndnboost/detail/atomic_count_pthreads.hpp
@@ -18,7 +18,7 @@
 //    inefficiencies. Example: a class with two atomic_count members
 //    can get away with a single mutex.
 //
-//  Users can detect this situation by checking BOOST_AC_USE_PTHREADS.
+//  Users can detect this situation by checking NDNBOOST_AC_USE_PTHREADS.
 //
 
 namespace ndnboost
@@ -93,4 +93,4 @@
 
 } // namespace ndnboost
 
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_PTHREADS_HPP_INCLUDED
+#endif // #ifndef NDNBOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_PTHREADS_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/atomic_count_sync.hpp b/include/ndnboost/smart_ptr/detail/atomic_count_sync.hpp
index 45aa1b5..ee1fa46 100644
--- a/include/ndnboost/smart_ptr/detail/atomic_count_sync.hpp
+++ b/include/ndnboost/smart_ptr/detail/atomic_count_sync.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SYNC_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SYNC_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SYNC_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SYNC_HPP_INCLUDED
 
 //
 //  ndnboost/detail/atomic_count_sync.hpp
@@ -58,4 +58,4 @@
 
 } // namespace ndnboost
 
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SYNC_HPP_INCLUDED
+#endif // #ifndef NDNBOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SYNC_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/atomic_count_win32.hpp b/include/ndnboost/smart_ptr/detail/atomic_count_win32.hpp
index de156ef..31c2b16 100644
--- a/include/ndnboost/smart_ptr/detail/atomic_count_win32.hpp
+++ b/include/ndnboost/smart_ptr/detail/atomic_count_win32.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_WIN32_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_WIN32_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_WIN32_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_WIN32_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -35,12 +35,12 @@
 
     long operator++()
     {
-        return BOOST_INTERLOCKED_INCREMENT( &value_ );
+        return NDNBOOST_INTERLOCKED_INCREMENT( &value_ );
     }
 
     long operator--()
     {
-        return BOOST_INTERLOCKED_DECREMENT( &value_ );
+        return NDNBOOST_INTERLOCKED_DECREMENT( &value_ );
     }
 
     operator long() const
@@ -60,4 +60,4 @@
 
 } // namespace ndnboost
 
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_WIN32_HPP_INCLUDED
+#endif // #ifndef NDNBOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_WIN32_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/lightweight_mutex.hpp b/include/ndnboost/smart_ptr/detail/lightweight_mutex.hpp
index f325bd5..07aacf4 100644
--- a/include/ndnboost/smart_ptr/detail/lightweight_mutex.hpp
+++ b/include/ndnboost/smart_ptr/detail/lightweight_mutex.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -28,15 +28,15 @@
 
 #include <ndnboost/config.hpp>
 
-#if !defined(BOOST_HAS_THREADS)
+#if !defined(NDNBOOST_HAS_THREADS)
 #  include <ndnboost/smart_ptr/detail/lwm_nop.hpp>
-#elif defined(BOOST_HAS_PTHREADS)
+#elif defined(NDNBOOST_HAS_PTHREADS)
 #  include <ndnboost/smart_ptr/detail/lwm_pthreads.hpp>
-#elif defined(BOOST_HAS_WINTHREADS) || defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
+#elif defined(NDNBOOST_HAS_WINTHREADS) || defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
 #  include <ndnboost/smart_ptr/detail/lwm_win32_cs.hpp>
 #else
-// Use #define BOOST_DISABLE_THREADS to avoid the error
+// Use #define NDNBOOST_DISABLE_THREADS to avoid the error
 #  error Unrecognized threading platform
 #endif
 
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED
+#endif // #ifndef NDNBOOST_SMART_PTR_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/lwm_nop.hpp b/include/ndnboost/smart_ptr/detail/lwm_nop.hpp
index 58e3a8e..abf56cc 100644
--- a/include/ndnboost/smart_ptr/detail/lwm_nop.hpp
+++ b/include/ndnboost/smart_ptr/detail/lwm_nop.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_DETAIL_LWM_NOP_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_LWM_NOP_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_DETAIL_LWM_NOP_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_DETAIL_LWM_NOP_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -34,4 +34,4 @@
 
 } // namespace ndnboost
 
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_LWM_NOP_HPP_INCLUDED
+#endif // #ifndef NDNBOOST_SMART_PTR_DETAIL_LWM_NOP_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/lwm_pthreads.hpp b/include/ndnboost/smart_ptr/detail/lwm_pthreads.hpp
index c7314ae..56a60ce 100644
--- a/include/ndnboost/smart_ptr/detail/lwm_pthreads.hpp
+++ b/include/ndnboost/smart_ptr/detail/lwm_pthreads.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_DETAIL_LWM_PTHREADS_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_LWM_PTHREADS_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_DETAIL_LWM_PTHREADS_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_DETAIL_LWM_PTHREADS_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -43,15 +43,15 @@
 // HPUX 10.20 / DCE has a nonstandard pthread_mutex_init
 
 #if defined(__hpux) && defined(_DECTHREADS_)
-        BOOST_VERIFY( pthread_mutex_init( &m_, pthread_mutexattr_default ) == 0 );
+        NDNBOOST_VERIFY( pthread_mutex_init( &m_, pthread_mutexattr_default ) == 0 );
 #else
-        BOOST_VERIFY( pthread_mutex_init( &m_, 0 ) == 0 );
+        NDNBOOST_VERIFY( pthread_mutex_init( &m_, 0 ) == 0 );
 #endif
     }
 
     ~lightweight_mutex()
     {
-        BOOST_VERIFY( pthread_mutex_destroy( &m_ ) == 0 );
+        NDNBOOST_VERIFY( pthread_mutex_destroy( &m_ ) == 0 );
     }
 
     class scoped_lock;
@@ -70,12 +70,12 @@
 
         scoped_lock(lightweight_mutex & m): m_(m.m_)
         {
-            BOOST_VERIFY( pthread_mutex_lock( &m_ ) == 0 );
+            NDNBOOST_VERIFY( pthread_mutex_lock( &m_ ) == 0 );
         }
 
         ~scoped_lock()
         {
-            BOOST_VERIFY( pthread_mutex_unlock( &m_ ) == 0 );
+            NDNBOOST_VERIFY( pthread_mutex_unlock( &m_ ) == 0 );
         }
     };
 };
@@ -84,4 +84,4 @@
 
 } // namespace ndnboost
 
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_LWM_PTHREADS_HPP_INCLUDED
+#endif // #ifndef NDNBOOST_SMART_PTR_DETAIL_LWM_PTHREADS_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/lwm_win32_cs.hpp b/include/ndnboost/smart_ptr/detail/lwm_win32_cs.hpp
index 7433998..47def99 100644
--- a/include/ndnboost/smart_ptr/detail/lwm_win32_cs.hpp
+++ b/include/ndnboost/smart_ptr/detail/lwm_win32_cs.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_DETAIL_LWM_WIN32_CS_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_LWM_WIN32_CS_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_DETAIL_LWM_WIN32_CS_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_DETAIL_LWM_WIN32_CS_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -17,7 +17,7 @@
 // http://www.boost.org/LICENSE_1_0.txt)
 //
 
-#ifdef BOOST_USE_WINDOWS_H
+#ifdef NDNBOOST_USE_WINDOWS_H
 #  include <windows.h>
 #endif
 
@@ -27,7 +27,7 @@
 namespace detail
 {
 
-#ifndef BOOST_USE_WINDOWS_H
+#ifndef NDNBOOST_USE_WINDOWS_H
 
 struct critical_section
 {
@@ -52,7 +52,7 @@
 
 typedef ::CRITICAL_SECTION critical_section;
 
-#endif // #ifndef BOOST_USE_WINDOWS_H
+#endif // #ifndef NDNBOOST_USE_WINDOWS_H
 
 class lightweight_mutex
 {
@@ -105,4 +105,4 @@
 
 } // namespace ndnboost
 
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_LWM_WIN32_CS_HPP_INCLUDED
+#endif // #ifndef NDNBOOST_SMART_PTR_DETAIL_LWM_WIN32_CS_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/make_array_helper.hpp b/include/ndnboost/smart_ptr/detail/make_array_helper.hpp
index 1105137..b05b600 100644
--- a/include/ndnboost/smart_ptr/detail/make_array_helper.hpp
+++ b/include/ndnboost/smart_ptr/detail/make_array_helper.hpp
@@ -6,8 +6,8 @@
  * Version 1.0. (See accompanying file LICENSE_1_0.txt 
  * or copy at http://boost.org/LICENSE_1_0.txt)
  */
-#ifndef BOOST_SMART_PTR_DETAIL_MAKE_ARRAY_HELPER_HPP
-#define BOOST_SMART_PTR_DETAIL_MAKE_ARRAY_HELPER_HPP
+#ifndef NDNBOOST_SMART_PTR_DETAIL_MAKE_ARRAY_HELPER_HPP
+#define NDNBOOST_SMART_PTR_DETAIL_MAKE_ARRAY_HELPER_HPP
 
 #include <ndnboost/type_traits/alignment_of.hpp>
 
diff --git a/include/ndnboost/smart_ptr/detail/operator_bool.hpp b/include/ndnboost/smart_ptr/detail/operator_bool.hpp
index 8ae1527..809eff5 100644
--- a/include/ndnboost/smart_ptr/detail/operator_bool.hpp
+++ b/include/ndnboost/smart_ptr/detail/operator_bool.hpp
@@ -6,16 +6,16 @@
 //  See accompanying file LICENSE_1_0.txt or copy at
 //  http://www.boost.org/LICENSE_1_0.txt
 
-#if !defined( BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS ) && !defined( BOOST_NO_CXX11_NULLPTR )
+#if !defined( NDNBOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS ) && !defined( NDNBOOST_NO_CXX11_NULLPTR )
 
-    explicit operator bool () const BOOST_NOEXCEPT
+    explicit operator bool () const NDNBOOST_NOEXCEPT
     {
         return px != 0;
     }
 
-#elif ( defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, < 0x570) ) || defined(__CINT__)
+#elif ( defined(__SUNPRO_CC) && NDNBOOST_WORKAROUND(__SUNPRO_CC, < 0x570) ) || defined(__CINT__)
 
-    operator bool () const BOOST_NOEXCEPT
+    operator bool () const NDNBOOST_NOEXCEPT
     {
         return px != 0;
     }
@@ -28,19 +28,19 @@
 
     typedef void (*unspecified_bool_type)( this_type*** );
 
-    operator unspecified_bool_type() const BOOST_NOEXCEPT
+    operator unspecified_bool_type() const NDNBOOST_NOEXCEPT
     {
         return px == 0? 0: unspecified_bool;
     }
 
 #elif \
-    ( defined(__MWERKS__) && BOOST_WORKAROUND(__MWERKS__, < 0x3200) ) || \
+    ( defined(__MWERKS__) && NDNBOOST_WORKAROUND(__MWERKS__, < 0x3200) ) || \
     ( defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ < 304) ) || \
-    ( defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, <= 0x590) )
+    ( defined(__SUNPRO_CC) && NDNBOOST_WORKAROUND(__SUNPRO_CC, <= 0x590) )
 
     typedef element_type * (this_type::*unspecified_bool_type)() const;
 
-    operator unspecified_bool_type() const BOOST_NOEXCEPT
+    operator unspecified_bool_type() const NDNBOOST_NOEXCEPT
     {
         return px == 0? 0: &this_type::get;
     }
@@ -49,7 +49,7 @@
 
     typedef element_type * this_type::*unspecified_bool_type;
 
-    operator unspecified_bool_type() const BOOST_NOEXCEPT
+    operator unspecified_bool_type() const NDNBOOST_NOEXCEPT
     {
         return px == 0? 0: &this_type::px;
     }
@@ -57,7 +57,7 @@
 #endif
 
     // operator! is redundant, but some compilers need it
-    bool operator! () const BOOST_NOEXCEPT
+    bool operator! () const NDNBOOST_NOEXCEPT
     {
         return px == 0;
     }
diff --git a/include/ndnboost/smart_ptr/detail/quick_allocator.hpp b/include/ndnboost/smart_ptr/detail/quick_allocator.hpp
index 637c4ec..dff0668 100644
--- a/include/ndnboost/smart_ptr/detail/quick_allocator.hpp
+++ b/include/ndnboost/smart_ptr/detail/quick_allocator.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_DETAIL_QUICK_ALLOCATOR_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_QUICK_ALLOCATOR_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_DETAIL_QUICK_ALLOCATOR_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_DETAIL_QUICK_ALLOCATOR_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -60,9 +60,9 @@
     // varying the page size. g++ 2.96 on Red Hat Linux 7.2,
     // for example, passionately dislikes 496. 512 seems OK.
 
-#if defined(BOOST_QA_PAGE_SIZE)
+#if defined(NDNBOOST_QA_PAGE_SIZE)
 
-    enum { items_per_page = BOOST_QA_PAGE_SIZE / size };
+    enum { items_per_page = NDNBOOST_QA_PAGE_SIZE / size };
 
 #else
 
@@ -70,7 +70,7 @@
 
 #endif
 
-#ifdef BOOST_HAS_THREADS
+#ifdef NDNBOOST_HAS_THREADS
 
     static lightweight_mutex & mutex()
     {
@@ -89,7 +89,7 @@
 
     static inline void * alloc()
     {
-#ifdef BOOST_HAS_THREADS
+#ifdef NDNBOOST_HAS_THREADS
         lightweight_mutex::scoped_lock lock( mutex() );
 #endif
         if(block * x = free)
@@ -119,7 +119,7 @@
         }
         else
         {
-#ifdef BOOST_HAS_THREADS
+#ifdef NDNBOOST_HAS_THREADS
             lightweight_mutex::scoped_lock lock( mutex() );
 #endif
             if(block * x = free)
@@ -144,7 +144,7 @@
     {
         if(pv != 0) // 18.4.1.1/13
         {
-#ifdef BOOST_HAS_THREADS
+#ifdef NDNBOOST_HAS_THREADS
             lightweight_mutex::scoped_lock lock( mutex() );
 #endif
             block * pb = static_cast<block *>(pv);
@@ -161,7 +161,7 @@
         }
         else if(pv != 0) // 18.4.1.1/13
         {
-#ifdef BOOST_HAS_THREADS
+#ifdef NDNBOOST_HAS_THREADS
             lightweight_mutex::scoped_lock lock( mutex() );
 #endif
             block * pb = static_cast<block *>(pv);
@@ -171,7 +171,7 @@
     }
 };
 
-#ifdef BOOST_HAS_THREADS
+#ifdef NDNBOOST_HAS_THREADS
 
 template<unsigned size, unsigned align_>
   lightweight_mutex * allocator_impl<size, align_>::mutex_init = &allocator_impl<size, align_>::mutex();
@@ -196,4 +196,4 @@
 
 } // namespace ndnboost
 
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_QUICK_ALLOCATOR_HPP_INCLUDED
+#endif  // #ifndef NDNBOOST_SMART_PTR_DETAIL_QUICK_ALLOCATOR_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/shared_array_nmt.hpp b/include/ndnboost/smart_ptr/detail/shared_array_nmt.hpp
index 4d53afa..8197637 100644
--- a/include/ndnboost/smart_ptr/detail/shared_array_nmt.hpp
+++ b/include/ndnboost/smart_ptr/detail/shared_array_nmt.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SHARED_ARRAY_NMT_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SHARED_ARRAY_NMT_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_DETAIL_SHARED_ARRAY_NMT_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_DETAIL_SHARED_ARRAY_NMT_HPP_INCLUDED
 
 //
 //  detail/shared_array_nmt.hpp - shared_array.hpp without member templates
@@ -39,7 +39,7 @@
       
     explicit shared_array(T * p = 0): px(p)
     {
-#ifndef BOOST_NO_EXCEPTIONS
+#ifndef NDNBOOST_NO_EXCEPTIONS
 
         try  // prevent leak if new throws
         {
@@ -87,7 +87,7 @@
 
     void reset(T * p = 0)
     {
-        BOOST_ASSERT(p == 0 || p != px);
+        NDNBOOST_ASSERT(p == 0 || p != px);
         shared_array(p).swap(*this);
     }
 
@@ -98,8 +98,8 @@
 
     T & operator[](std::ptrdiff_t i) const  // never throws
     {
-        BOOST_ASSERT(px != 0);
-        BOOST_ASSERT(i >= 0);
+        NDNBOOST_ASSERT(px != 0);
+        NDNBOOST_ASSERT(i >= 0);
         return px[i];
     }
 
@@ -148,4 +148,4 @@
 
 } // namespace ndnboost
 
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SHARED_ARRAY_NMT_HPP_INCLUDED
+#endif  // #ifndef NDNBOOST_SMART_PTR_DETAIL_SHARED_ARRAY_NMT_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/shared_count.hpp b/include/ndnboost/smart_ptr/detail/shared_count.hpp
index f723584..5ba7190 100644
--- a/include/ndnboost/smart_ptr/detail/shared_count.hpp
+++ b/include/ndnboost/smart_ptr/detail/shared_count.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SHARED_COUNT_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SHARED_COUNT_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_DETAIL_SHARED_COUNT_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_DETAIL_SHARED_COUNT_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -36,11 +36,11 @@
 #include <ndnboost/config/no_tr1/memory.hpp>  // std::auto_ptr
 #include <functional>       // std::less
 
-#ifdef BOOST_NO_EXCEPTIONS
+#ifdef NDNBOOST_NO_EXCEPTIONS
 # include <new>              // std::bad_alloc
 #endif
 
-#if !defined( BOOST_NO_CXX11_SMART_PTR )
+#if !defined( NDNBOOST_NO_CXX11_SMART_PTR )
 # include <ndnboost/utility/addressof.hpp>
 #endif
 
@@ -50,7 +50,7 @@
 namespace detail
 {
 
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
 
 int const shared_count_id = 0x2C35F101;
 int const   weak_count_id = 0x298C38A4;
@@ -63,7 +63,7 @@
 {
 };
 
-#if !defined( BOOST_NO_CXX11_SMART_PTR )
+#if !defined( NDNBOOST_NO_CXX11_SMART_PTR )
 
 template< class T > class sp_reference_wrapper
 { 
@@ -103,7 +103,7 @@
 
     sp_counted_base * pi_;
 
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
     int id_;
 #endif
 
@@ -112,18 +112,18 @@
 public:
 
     shared_count(): pi_(0) // nothrow
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
         , id_(shared_count_id)
 #endif
     {
     }
 
     template<class Y> explicit shared_count( Y * p ): pi_( 0 )
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
         , id_(shared_count_id)
 #endif
     {
-#ifndef BOOST_NO_EXCEPTIONS
+#ifndef NDNBOOST_NO_EXCEPTIONS
 
         try
         {
@@ -148,19 +148,19 @@
 #endif
     }
 
-#if defined( BOOST_MSVC ) && BOOST_WORKAROUND( BOOST_MSVC, <= 1200 )
+#if defined( NDNBOOST_MSVC ) && NDNBOOST_WORKAROUND( NDNBOOST_MSVC, <= 1200 )
     template<class Y, class D> shared_count( Y * p, D d ): pi_(0)
 #else
     template<class P, class D> shared_count( P p, D d ): pi_(0)
 #endif
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
         , id_(shared_count_id)
 #endif
     {
-#if defined( BOOST_MSVC ) && BOOST_WORKAROUND( BOOST_MSVC, <= 1200 )
+#if defined( NDNBOOST_MSVC ) && NDNBOOST_WORKAROUND( NDNBOOST_MSVC, <= 1200 )
         typedef Y* P;
 #endif
-#ifndef BOOST_NO_EXCEPTIONS
+#ifndef NDNBOOST_NO_EXCEPTIONS
 
         try
         {
@@ -185,14 +185,14 @@
 #endif
     }
 
-#if !defined( BOOST_NO_FUNCTION_TEMPLATE_ORDERING )
+#if !defined( NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING )
 
     template< class P, class D > shared_count( P p, sp_inplace_tag<D> ): pi_( 0 )
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
         , id_(shared_count_id)
 #endif
     {
-#ifndef BOOST_NO_EXCEPTIONS
+#ifndef NDNBOOST_NO_EXCEPTIONS
 
         try
         {
@@ -214,13 +214,13 @@
             ndnboost::throw_exception( std::bad_alloc() );
         }
 
-#endif // #ifndef BOOST_NO_EXCEPTIONS
+#endif // #ifndef NDNBOOST_NO_EXCEPTIONS
     }
 
-#endif // !defined( BOOST_NO_FUNCTION_TEMPLATE_ORDERING )
+#endif // !defined( NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING )
 
     template<class P, class D, class A> shared_count( P p, D d, A a ): pi_( 0 )
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
         , id_(shared_count_id)
 #endif
     {
@@ -229,7 +229,7 @@
 
         A2 a2( a );
 
-#ifndef BOOST_NO_EXCEPTIONS
+#ifndef NDNBOOST_NO_EXCEPTIONS
 
         try
         {
@@ -265,10 +265,10 @@
 #endif
     }
 
-#if !defined( BOOST_NO_FUNCTION_TEMPLATE_ORDERING )
+#if !defined( NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING )
 
     template< class P, class D, class A > shared_count( P p, sp_inplace_tag< D >, A a ): pi_( 0 )
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
         , id_(shared_count_id)
 #endif
     {
@@ -277,7 +277,7 @@
 
         A2 a2( a );
 
-#ifndef BOOST_NO_EXCEPTIONS
+#ifndef NDNBOOST_NO_EXCEPTIONS
 
         try
         {
@@ -310,22 +310,22 @@
             ndnboost::throw_exception( std::bad_alloc() );
         }
 
-#endif // #ifndef BOOST_NO_EXCEPTIONS
+#endif // #ifndef NDNBOOST_NO_EXCEPTIONS
     }
 
-#endif // !defined( BOOST_NO_FUNCTION_TEMPLATE_ORDERING )
+#endif // !defined( NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING )
 
-#ifndef BOOST_NO_AUTO_PTR
+#ifndef NDNBOOST_NO_AUTO_PTR
 
     // auto_ptr<Y> is special cased to provide the strong guarantee
 
     template<class Y>
     explicit shared_count( std::auto_ptr<Y> & r ): pi_( new sp_counted_impl_p<Y>( r.get() ) )
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
         , id_(shared_count_id)
 #endif
     {
-#ifdef BOOST_NO_EXCEPTIONS
+#ifdef NDNBOOST_NO_EXCEPTIONS
 
         if( pi_ == 0 )
         {
@@ -339,11 +339,11 @@
 
 #endif 
 
-#if !defined( BOOST_NO_CXX11_SMART_PTR )
+#if !defined( NDNBOOST_NO_CXX11_SMART_PTR )
 
     template<class Y, class D>
     explicit shared_count( std::unique_ptr<Y, D> & r ): pi_( 0 )
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
         , id_(shared_count_id)
 #endif
     {
@@ -352,7 +352,7 @@
         D2 d2( r.get_deleter() );
         pi_ = new sp_counted_impl_pd< typename std::unique_ptr<Y, D>::pointer, D2 >( r.get(), d2 );
 
-#ifdef BOOST_NO_EXCEPTIONS
+#ifdef NDNBOOST_NO_EXCEPTIONS
 
         if( pi_ == 0 )
         {
@@ -369,23 +369,23 @@
     ~shared_count() // nothrow
     {
         if( pi_ != 0 ) pi_->release();
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
         id_ = 0;
 #endif
     }
 
     shared_count(shared_count const & r): pi_(r.pi_) // nothrow
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
         , id_(shared_count_id)
 #endif
     {
         if( pi_ != 0 ) pi_->add_ref_copy();
     }
 
-#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES )
+#if !defined( NDNBOOST_NO_CXX11_RVALUE_REFERENCES )
 
     shared_count(shared_count && r): pi_(r.pi_) // nothrow
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
         , id_(shared_count_id)
 #endif
     {
@@ -461,7 +461,7 @@
 
     sp_counted_base * pi_;
 
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
     int id_;
 #endif
 
@@ -470,14 +470,14 @@
 public:
 
     weak_count(): pi_(0) // nothrow
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
         , id_(weak_count_id)
 #endif
     {
     }
 
     weak_count(shared_count const & r): pi_(r.pi_) // nothrow
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
         , id_(weak_count_id)
 #endif
     {
@@ -485,7 +485,7 @@
     }
 
     weak_count(weak_count const & r): pi_(r.pi_) // nothrow
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
         , id_(weak_count_id)
 #endif
     {
@@ -494,10 +494,10 @@
 
 // Move support
 
-#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES )
+#if !defined( NDNBOOST_NO_CXX11_RVALUE_REFERENCES )
 
     weak_count(weak_count && r): pi_(r.pi_) // nothrow
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
         , id_(weak_count_id)
 #endif
     {
@@ -509,7 +509,7 @@
     ~weak_count() // nothrow
     {
         if(pi_ != 0) pi_->weak_release();
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
         id_ = 0;
 #endif
     }
@@ -571,7 +571,7 @@
 };
 
 inline shared_count::shared_count( weak_count const & r ): pi_( r.pi_ )
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
         , id_(shared_count_id)
 #endif
 {
@@ -582,7 +582,7 @@
 }
 
 inline shared_count::shared_count( weak_count const & r, sp_nothrow_tag ): pi_( r.pi_ )
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
         , id_(shared_count_id)
 #endif
 {
@@ -600,4 +600,4 @@
 # pragma warn .8027     // Functions containing try are not expanded inline
 #endif
 
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SHARED_COUNT_HPP_INCLUDED
+#endif  // #ifndef NDNBOOST_SMART_PTR_DETAIL_SHARED_COUNT_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/shared_ptr_nmt.hpp b/include/ndnboost/smart_ptr/detail/shared_ptr_nmt.hpp
index 76e6fdd..f7368b8 100644
--- a/include/ndnboost/smart_ptr/detail/shared_ptr_nmt.hpp
+++ b/include/ndnboost/smart_ptr/detail/shared_ptr_nmt.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SHARED_PTR_NMT_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SHARED_PTR_NMT_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_DETAIL_SHARED_PTR_NMT_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_DETAIL_SHARED_PTR_NMT_HPP_INCLUDED
 
 //
 //  detail/shared_ptr_nmt.hpp - shared_ptr.hpp without member templates
@@ -19,7 +19,7 @@
 #include <ndnboost/throw_exception.hpp>
 #include <ndnboost/smart_ptr/detail/atomic_count.hpp>
 
-#ifndef BOOST_NO_AUTO_PTR
+#ifndef NDNBOOST_NO_AUTO_PTR
 # include <memory>          // for std::auto_ptr
 #endif
 
@@ -43,7 +43,7 @@
 
     explicit shared_ptr(T * p = 0): px(p)
     {
-#ifndef BOOST_NO_EXCEPTIONS
+#ifndef NDNBOOST_NO_EXCEPTIONS
 
         try  // prevent leak if new throws
         {
@@ -89,7 +89,7 @@
         return *this;
     }
 
-#ifndef BOOST_NO_AUTO_PTR
+#ifndef NDNBOOST_NO_AUTO_PTR
 
     explicit shared_ptr(std::auto_ptr<T> & r)
     { 
@@ -107,19 +107,19 @@
 
     void reset(T * p = 0)
     {
-        BOOST_ASSERT(p == 0 || p != px);
+        NDNBOOST_ASSERT(p == 0 || p != px);
         shared_ptr(p).swap(*this);
     }
 
     T & operator*() const  // never throws
     {
-        BOOST_ASSERT(px != 0);
+        NDNBOOST_ASSERT(px != 0);
         return *px;
     }
 
     T * operator->() const  // never throws
     {
-        BOOST_ASSERT(px != 0);
+        NDNBOOST_ASSERT(px != 0);
         return px;
     }
 
@@ -179,4 +179,4 @@
 
 } // namespace ndnboost
 
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SHARED_PTR_NMT_HPP_INCLUDED
+#endif  // #ifndef NDNBOOST_SMART_PTR_DETAIL_SHARED_PTR_NMT_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/sp_convertible.hpp b/include/ndnboost/smart_ptr/detail/sp_convertible.hpp
index f4e5463..6c8b6b1 100644
--- a/include/ndnboost/smart_ptr/detail/sp_convertible.hpp
+++ b/include/ndnboost/smart_ptr/detail/sp_convertible.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SP_CONVERTIBLE_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SP_CONVERTIBLE_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_DETAIL_SP_CONVERTIBLE_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_DETAIL_SP_CONVERTIBLE_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -17,19 +17,19 @@
 
 #include <ndnboost/config.hpp>
 
-#if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) && defined( BOOST_NO_SFINAE )
-# define BOOST_SP_NO_SP_CONVERTIBLE
+#if !defined( NDNBOOST_SP_NO_SP_CONVERTIBLE ) && defined( NDNBOOST_NO_SFINAE )
+# define NDNBOOST_SP_NO_SP_CONVERTIBLE
 #endif
 
-#if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) && defined( __GNUC__ ) && ( __GNUC__ * 100 + __GNUC_MINOR__ < 303 )
-# define BOOST_SP_NO_SP_CONVERTIBLE
+#if !defined( NDNBOOST_SP_NO_SP_CONVERTIBLE ) && defined( __GNUC__ ) && ( __GNUC__ * 100 + __GNUC_MINOR__ < 303 )
+# define NDNBOOST_SP_NO_SP_CONVERTIBLE
 #endif
 
-#if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) && defined( __BORLANDC__ ) && ( __BORLANDC__ < 0x630 )
-# define BOOST_SP_NO_SP_CONVERTIBLE
+#if !defined( NDNBOOST_SP_NO_SP_CONVERTIBLE ) && defined( __BORLANDC__ ) && ( __BORLANDC__ < 0x630 )
+# define NDNBOOST_SP_NO_SP_CONVERTIBLE
 #endif
 
-#if !defined( BOOST_SP_NO_SP_CONVERTIBLE )
+#if !defined( NDNBOOST_SP_NO_SP_CONVERTIBLE )
 
 namespace ndnboost
 {
@@ -86,6 +86,6 @@
 
 } // namespace ndnboost
 
-#endif // !defined( BOOST_SP_NO_SP_CONVERTIBLE )
+#endif // !defined( NDNBOOST_SP_NO_SP_CONVERTIBLE )
 
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_CONVERTIBLE_HPP_INCLUDED
+#endif  // #ifndef NDNBOOST_SMART_PTR_DETAIL_SP_CONVERTIBLE_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/sp_counted_base.hpp b/include/ndnboost/smart_ptr/detail/sp_counted_base.hpp
index a9b5b81..4d7f82a 100644
--- a/include/ndnboost/smart_ptr/detail/sp_counted_base.hpp
+++ b/include/ndnboost/smart_ptr/detail/sp_counted_base.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -20,16 +20,16 @@
 #include <ndnboost/config.hpp>
 #include <ndnboost/smart_ptr/detail/sp_has_sync.hpp>
 
-#if defined( BOOST_SP_DISABLE_THREADS )
+#if defined( NDNBOOST_SP_DISABLE_THREADS )
 # include <ndnboost/smart_ptr/detail/sp_counted_base_nt.hpp>
 
-#elif defined( BOOST_SP_USE_SPINLOCK )
+#elif defined( NDNBOOST_SP_USE_SPINLOCK )
 # include <ndnboost/smart_ptr/detail/sp_counted_base_spin.hpp>
 
-#elif defined( BOOST_SP_USE_PTHREADS )
+#elif defined( NDNBOOST_SP_USE_PTHREADS )
 # include <ndnboost/smart_ptr/detail/sp_counted_base_pt.hpp>
 
-#elif defined( BOOST_DISABLE_THREADS ) && !defined( BOOST_SP_ENABLE_THREADS ) && !defined( BOOST_DISABLE_WIN32 )
+#elif defined( NDNBOOST_DISABLE_THREADS ) && !defined( NDNBOOST_SP_ENABLE_THREADS ) && !defined( NDNBOOST_DISABLE_WIN32 )
 # include <ndnboost/smart_ptr/detail/sp_counted_base_nt.hpp>
 
 #elif defined( __SNC__ )
@@ -56,7 +56,7 @@
 #elif defined( __GNUC__ ) && ( defined( __mips__ ) || defined( _mips ) ) && !defined(__PATHSCALE__)
 # include <ndnboost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp>
 
-#elif defined( BOOST_SP_HAS_SYNC )
+#elif defined( NDNBOOST_SP_HAS_SYNC )
 # include <ndnboost/smart_ptr/detail/sp_counted_base_sync.hpp>
 
 #elif defined(__GNUC__) && ( defined( __sparcv9 ) || ( defined( __sparcv8 ) && ( __GNUC__ * 100 + __GNUC_MINOR__ >= 402 ) ) )
@@ -68,7 +68,7 @@
 #elif defined( _AIX )
 # include <ndnboost/smart_ptr/detail/sp_counted_base_aix.hpp>
 
-#elif !defined( BOOST_HAS_THREADS )
+#elif !defined( NDNBOOST_HAS_THREADS )
 # include <ndnboost/smart_ptr/detail/sp_counted_base_nt.hpp>
 
 #else
@@ -76,4 +76,4 @@
 
 #endif
 
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_HPP_INCLUDED
+#endif  // #ifndef NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp b/include/ndnboost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp
index a4dadf6..dcface0 100644
--- a/include/ndnboost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp
+++ b/include/ndnboost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_ACC_IA64_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_ACC_IA64_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_ACC_IA64_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_ACC_IA64_HPP_INCLUDED
 
 //
 //  detail/sp_counted_base_acc_ia64.hpp - aC++ on HP-UX IA64
@@ -148,4 +148,4 @@
 
 } // namespace ndnboost
 
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_ACC_IA64_HPP_INCLUDED
+#endif  // #ifndef NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_ACC_IA64_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/sp_counted_base_aix.hpp b/include/ndnboost/smart_ptr/detail/sp_counted_base_aix.hpp
index a9a72cc..bcb7cfe 100644
--- a/include/ndnboost/smart_ptr/detail/sp_counted_base_aix.hpp
+++ b/include/ndnboost/smart_ptr/detail/sp_counted_base_aix.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_AIX_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_AIX_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_AIX_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_AIX_HPP_INCLUDED
 
 //
 //  detail/sp_counted_base_aix.hpp
@@ -140,4 +140,4 @@
 
 } // namespace ndnboost
 
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_AIX_HPP_INCLUDED
+#endif  // #ifndef NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_AIX_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp b/include/ndnboost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp
index af43e37..cd196ba 100644
--- a/include/ndnboost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp
+++ b/include/ndnboost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CW_PPC_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CW_PPC_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CW_PPC_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CW_PPC_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -168,4 +168,4 @@
 
 } // namespace ndnboost
 
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CW_PPC_HPP_INCLUDED
+#endif  // #ifndef NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CW_PPC_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp b/include/ndnboost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp
index c3652f4..dafc28b 100644
--- a/include/ndnboost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp
+++ b/include/ndnboost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_IA64_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_IA64_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_IA64_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_IA64_HPP_INCLUDED
 
 //
 //  detail/sp_counted_base_gcc_ia64.hpp - g++ on IA64
@@ -155,4 +155,4 @@
 
 } // namespace ndnboost
 
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_IA64_HPP_INCLUDED
+#endif  // #ifndef NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_IA64_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp b/include/ndnboost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp
index e11b25a..d3be1db 100644
--- a/include/ndnboost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp
+++ b/include/ndnboost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_DETAIL_SP_COUNTED_BASE_GCC_MIPS_HPP_INCLUDED
-#define BOOST_DETAIL_SP_COUNTED_BASE_GCC_MIPS_HPP_INCLUDED
+#ifndef NDNBOOST_DETAIL_SP_COUNTED_BASE_GCC_MIPS_HPP_INCLUDED
+#define NDNBOOST_DETAIL_SP_COUNTED_BASE_GCC_MIPS_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -179,4 +179,4 @@
 
 } // namespace ndnboost
 
-#endif  // #ifndef BOOST_DETAIL_SP_COUNTED_BASE_GCC_MIPS_HPP_INCLUDED
+#endif  // #ifndef NDNBOOST_DETAIL_SP_COUNTED_BASE_GCC_MIPS_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp b/include/ndnboost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp
index 9beacd0..f1b6ede 100644
--- a/include/ndnboost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp
+++ b/include/ndnboost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_PPC_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_PPC_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_PPC_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_PPC_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -179,4 +179,4 @@
 
 } // namespace ndnboost
 
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_PPC_HPP_INCLUDED
+#endif  // #ifndef NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_PPC_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp b/include/ndnboost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp
index a9e1b4e..4bbacc7 100644
--- a/include/ndnboost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp
+++ b/include/ndnboost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_SPARC_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_SPARC_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_SPARC_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_SPARC_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -164,4 +164,4 @@
 
 } // namespace ndnboost
 
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_SPARC_HPP_INCLUDED
+#endif  // #ifndef NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_SPARC_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp b/include/ndnboost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp
index 24a3798..9f79c57 100644
--- a/include/ndnboost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp
+++ b/include/ndnboost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_X86_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_X86_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_X86_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_X86_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -171,4 +171,4 @@
 
 } // namespace ndnboost
 
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_X86_HPP_INCLUDED
+#endif  // #ifndef NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_X86_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/sp_counted_base_nt.hpp b/include/ndnboost/smart_ptr/detail/sp_counted_base_nt.hpp
index 3442f1f..50967bc 100644
--- a/include/ndnboost/smart_ptr/detail/sp_counted_base_nt.hpp
+++ b/include/ndnboost/smart_ptr/detail/sp_counted_base_nt.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_NT_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_NT_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_NT_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_NT_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -105,4 +105,4 @@
 
 } // namespace ndnboost
 
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_NT_HPP_INCLUDED
+#endif  // #ifndef NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_NT_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/sp_counted_base_pt.hpp b/include/ndnboost/smart_ptr/detail/sp_counted_base_pt.hpp
index 51c42a3..d1334d3 100644
--- a/include/ndnboost/smart_ptr/detail/sp_counted_base_pt.hpp
+++ b/include/ndnboost/smart_ptr/detail/sp_counted_base_pt.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_PT_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_PT_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_PT_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_PT_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -133,4 +133,4 @@
 
 } // namespace ndnboost
 
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_PT_HPP_INCLUDED
+#endif  // #ifndef NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_PT_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp b/include/ndnboost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp
index 4609d7d..afe8fe6 100644
--- a/include/ndnboost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp
+++ b/include/ndnboost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SNC_PS3_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SNC_PS3_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SNC_PS3_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SNC_PS3_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
@@ -159,4 +159,4 @@
 
 } // namespace ndnboost
 
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SNC_PS3_HPP_INCLUDED
+#endif  // #ifndef NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SNC_PS3_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/sp_counted_base_spin.hpp b/include/ndnboost/smart_ptr/detail/sp_counted_base_spin.hpp
index 29d3a84..f7691ce 100644
--- a/include/ndnboost/smart_ptr/detail/sp_counted_base_spin.hpp
+++ b/include/ndnboost/smart_ptr/detail/sp_counted_base_spin.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SPIN_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SPIN_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SPIN_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SPIN_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -129,4 +129,4 @@
 
 } // namespace ndnboost
 
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SPIN_HPP_INCLUDED
+#endif  // #ifndef NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SPIN_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/sp_counted_base_sync.hpp b/include/ndnboost/smart_ptr/detail/sp_counted_base_sync.hpp
index 6ee7fac..faa36e8 100644
--- a/include/ndnboost/smart_ptr/detail/sp_counted_base_sync.hpp
+++ b/include/ndnboost/smart_ptr/detail/sp_counted_base_sync.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SYNC_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SYNC_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SYNC_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SYNC_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -153,4 +153,4 @@
 
 } // namespace ndnboost
 
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SYNC_HPP_INCLUDED
+#endif  // #ifndef NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SYNC_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp b/include/ndnboost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp
index 9ffae4d..673f462 100644
--- a/include/ndnboost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp
+++ b/include/ndnboost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_VACPP_PPC_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_VACPP_PPC_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_VACPP_PPC_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_VACPP_PPC_HPP_INCLUDED
 
 //
 //  detail/sp_counted_base_vacpp_ppc.hpp - xlC(vacpp) on POWER
@@ -148,4 +148,4 @@
 
 } // namespace ndnboost
 
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_VACPP_PPC_HPP_INCLUDED
+#endif  // #ifndef NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_VACPP_PPC_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/sp_counted_base_w32.hpp b/include/ndnboost/smart_ptr/detail/sp_counted_base_w32.hpp
index 283fc79..c06d3a7 100644
--- a/include/ndnboost/smart_ptr/detail/sp_counted_base_w32.hpp
+++ b/include/ndnboost/smart_ptr/detail/sp_counted_base_w32.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_W32_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_W32_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_W32_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_W32_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -71,7 +71,7 @@
 
     void add_ref_copy()
     {
-        BOOST_INTERLOCKED_INCREMENT( &use_count_ );
+        NDNBOOST_INTERLOCKED_INCREMENT( &use_count_ );
     }
 
     bool add_ref_lock() // true on success
@@ -81,16 +81,16 @@
             long tmp = static_cast< long const volatile& >( use_count_ );
             if( tmp == 0 ) return false;
 
-#if defined( BOOST_MSVC ) && BOOST_WORKAROUND( BOOST_MSVC, == 1200 )
+#if defined( NDNBOOST_MSVC ) && NDNBOOST_WORKAROUND( NDNBOOST_MSVC, == 1200 )
 
             // work around a code generation bug
 
             long tmp2 = tmp + 1;
-            if( BOOST_INTERLOCKED_COMPARE_EXCHANGE( &use_count_, tmp2, tmp ) == tmp2 - 1 ) return true;
+            if( NDNBOOST_INTERLOCKED_COMPARE_EXCHANGE( &use_count_, tmp2, tmp ) == tmp2 - 1 ) return true;
 
 #else
 
-            if( BOOST_INTERLOCKED_COMPARE_EXCHANGE( &use_count_, tmp + 1, tmp ) == tmp ) return true;
+            if( NDNBOOST_INTERLOCKED_COMPARE_EXCHANGE( &use_count_, tmp + 1, tmp ) == tmp ) return true;
 
 #endif
         }
@@ -98,7 +98,7 @@
 
     void release() // nothrow
     {
-        if( BOOST_INTERLOCKED_DECREMENT( &use_count_ ) == 0 )
+        if( NDNBOOST_INTERLOCKED_DECREMENT( &use_count_ ) == 0 )
         {
             dispose();
             weak_release();
@@ -107,12 +107,12 @@
 
     void weak_add_ref() // nothrow
     {
-        BOOST_INTERLOCKED_INCREMENT( &weak_count_ );
+        NDNBOOST_INTERLOCKED_INCREMENT( &weak_count_ );
     }
 
     void weak_release() // nothrow
     {
-        if( BOOST_INTERLOCKED_DECREMENT( &weak_count_ ) == 0 )
+        if( NDNBOOST_INTERLOCKED_DECREMENT( &weak_count_ ) == 0 )
         {
             destroy();
         }
@@ -128,4 +128,4 @@
 
 } // namespace ndnboost
 
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_W32_HPP_INCLUDED
+#endif  // #ifndef NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_W32_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/sp_counted_impl.hpp b/include/ndnboost/smart_ptr/detail/sp_counted_impl.hpp
index 9b03a26..38af73b 100644
--- a/include/ndnboost/smart_ptr/detail/sp_counted_impl.hpp
+++ b/include/ndnboost/smart_ptr/detail/sp_counted_impl.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_IMPL_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_IMPL_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_IMPL_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_IMPL_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -20,18 +20,18 @@
 
 #include <ndnboost/config.hpp>
 
-#if defined(BOOST_SP_USE_STD_ALLOCATOR) && defined(BOOST_SP_USE_QUICK_ALLOCATOR)
-# error BOOST_SP_USE_STD_ALLOCATOR and BOOST_SP_USE_QUICK_ALLOCATOR are incompatible.
+#if defined(NDNBOOST_SP_USE_STD_ALLOCATOR) && defined(NDNBOOST_SP_USE_QUICK_ALLOCATOR)
+# error NDNBOOST_SP_USE_STD_ALLOCATOR and NDNBOOST_SP_USE_QUICK_ALLOCATOR are incompatible.
 #endif
 
 #include <ndnboost/checked_delete.hpp>
 #include <ndnboost/smart_ptr/detail/sp_counted_base.hpp>
 
-#if defined(BOOST_SP_USE_QUICK_ALLOCATOR)
+#if defined(NDNBOOST_SP_USE_QUICK_ALLOCATOR)
 #include <ndnboost/smart_ptr/detail/quick_allocator.hpp>
 #endif
 
-#if defined(BOOST_SP_USE_STD_ALLOCATOR)
+#if defined(NDNBOOST_SP_USE_STD_ALLOCATOR)
 #include <memory>           // std::allocator
 #endif
 
@@ -40,7 +40,7 @@
 namespace ndnboost
 {
 
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
 
 void sp_scalar_constructor_hook( void * px, std::size_t size, void * pn );
 void sp_scalar_destructor_hook( void * px, std::size_t size, void * pn );
@@ -65,14 +65,14 @@
 
     explicit sp_counted_impl_p( X * px ): px_( px )
     {
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
         ndnboost::sp_scalar_constructor_hook( px, sizeof(X), this );
 #endif
     }
 
     virtual void dispose() // nothrow
     {
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
         ndnboost::sp_scalar_destructor_hook( px_, sizeof(X), this );
 #endif
         ndnboost::checked_delete( px_ );
@@ -88,7 +88,7 @@
         return 0;
     }
 
-#if defined(BOOST_SP_USE_STD_ALLOCATOR)
+#if defined(NDNBOOST_SP_USE_STD_ALLOCATOR)
 
     void * operator new( std::size_t )
     {
@@ -102,7 +102,7 @@
 
 #endif
 
-#if defined(BOOST_SP_USE_QUICK_ALLOCATOR)
+#if defined(NDNBOOST_SP_USE_QUICK_ALLOCATOR)
 
     void * operator new( std::size_t )
     {
@@ -155,7 +155,7 @@
 
     virtual void * get_deleter( detail::sp_typeinfo const & ti )
     {
-        return ti == BOOST_SP_TYPEID(D)? &reinterpret_cast<char&>( del ): 0;
+        return ti == NDNBOOST_SP_TYPEID(D)? &reinterpret_cast<char&>( del ): 0;
     }
 
     virtual void * get_untyped_deleter()
@@ -163,7 +163,7 @@
         return &reinterpret_cast<char&>( del );
     }
 
-#if defined(BOOST_SP_USE_STD_ALLOCATOR)
+#if defined(NDNBOOST_SP_USE_STD_ALLOCATOR)
 
     void * operator new( std::size_t )
     {
@@ -177,7 +177,7 @@
 
 #endif
 
-#if defined(BOOST_SP_USE_QUICK_ALLOCATOR)
+#if defined(NDNBOOST_SP_USE_QUICK_ALLOCATOR)
 
     void * operator new( std::size_t )
     {
@@ -234,7 +234,7 @@
 
     virtual void * get_deleter( detail::sp_typeinfo const & ti )
     {
-        return ti == BOOST_SP_TYPEID( D )? &reinterpret_cast<char&>( d_ ): 0;
+        return ti == NDNBOOST_SP_TYPEID( D )? &reinterpret_cast<char&>( d_ ): 0;
     }
 
     virtual void * get_untyped_deleter()
@@ -251,4 +251,4 @@
 
 } // namespace ndnboost
 
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_IMPL_HPP_INCLUDED
+#endif  // #ifndef NDNBOOST_SMART_PTR_DETAIL_SP_COUNTED_IMPL_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/sp_forward.hpp b/include/ndnboost/smart_ptr/detail/sp_forward.hpp
index d22d9a4..e1b7b74 100644
--- a/include/ndnboost/smart_ptr/detail/sp_forward.hpp
+++ b/include/ndnboost/smart_ptr/detail/sp_forward.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SP_FORWARD_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SP_FORWARD_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_DETAIL_SP_FORWARD_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_DETAIL_SP_FORWARD_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -23,9 +23,9 @@
 namespace detail
 {
 
-#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES )
+#if !defined( NDNBOOST_NO_CXX11_RVALUE_REFERENCES )
 
-template< class T > T&& sp_forward( T & t ) BOOST_NOEXCEPT
+template< class T > T&& sp_forward( T & t ) NDNBOOST_NOEXCEPT
 {
     return static_cast< T&& >( t );
 }
@@ -36,4 +36,4 @@
 
 } // namespace ndnboost
 
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_FORWARD_HPP_INCLUDED
+#endif  // #ifndef NDNBOOST_SMART_PTR_DETAIL_SP_FORWARD_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/sp_has_sync.hpp b/include/ndnboost/smart_ptr/detail/sp_has_sync.hpp
index 7d2b984..5b5b4df 100644
--- a/include/ndnboost/smart_ptr/detail/sp_has_sync.hpp
+++ b/include/ndnboost/smart_ptr/detail/sp_has_sync.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SP_HAS_SYNC_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SP_HAS_SYNC_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_DETAIL_SP_HAS_SYNC_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_DETAIL_SP_HAS_SYNC_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -16,54 +16,54 @@
 //  See accompanying file LICENSE_1_0.txt or copy at
 //  http://www.boost.org/LICENSE_1_0.txt)
 //
-//  Defines the BOOST_SP_HAS_SYNC macro if the __sync_* intrinsics
+//  Defines the NDNBOOST_SP_HAS_SYNC macro if the __sync_* intrinsics
 //  are available.
 //
 
-#ifndef BOOST_SP_NO_SYNC
+#ifndef NDNBOOST_SP_NO_SYNC
 
 #if defined( __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 )
 
-# define BOOST_SP_HAS_SYNC
+# define NDNBOOST_SP_HAS_SYNC
 
 #elif defined( __IBMCPP__ ) && ( __IBMCPP__ >= 1210 )
 
-# define BOOST_SP_HAS_SYNC
+# define NDNBOOST_SP_HAS_SYNC
 
 #elif defined( __GNUC__ ) && ( __GNUC__ * 100 + __GNUC_MINOR__ >= 401 )
 
-#define BOOST_SP_HAS_SYNC
+#define NDNBOOST_SP_HAS_SYNC
 
 #if defined( __arm__ )  || defined( __armel__ )
-#undef BOOST_SP_HAS_SYNC
+#undef NDNBOOST_SP_HAS_SYNC
 #endif
 
 #if defined( __hppa ) || defined( __hppa__ )
-#undef BOOST_SP_HAS_SYNC
+#undef NDNBOOST_SP_HAS_SYNC
 #endif
 
 #if defined( __m68k__ )
-#undef BOOST_SP_HAS_SYNC
+#undef NDNBOOST_SP_HAS_SYNC
 #endif
 
 #if defined( __sh__ )
-#undef BOOST_SP_HAS_SYNC
+#undef NDNBOOST_SP_HAS_SYNC
 #endif
 
 #if defined( __sparc__ )
-#undef BOOST_SP_HAS_SYNC
+#undef NDNBOOST_SP_HAS_SYNC
 #endif
 
 #if defined( __INTEL_COMPILER ) && !defined( __ia64__ ) && ( __INTEL_COMPILER < 1110 )
-#undef BOOST_SP_HAS_SYNC
+#undef NDNBOOST_SP_HAS_SYNC
 #endif
 
 #if defined(__PATHSCALE__) && ((__PATHCC__ == 4) && (__PATHCC_MINOR__ < 9)) 
-#undef BOOST_SP_HAS_SYNC
+#undef NDNBOOST_SP_HAS_SYNC
 #endif
 
 #endif
 
-#endif // #ifndef BOOST_SP_NO_SYNC
+#endif // #ifndef NDNBOOST_SP_NO_SYNC
 
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_HAS_SYNC_HPP_INCLUDED
+#endif // #ifndef NDNBOOST_SMART_PTR_DETAIL_SP_HAS_SYNC_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/sp_if_array.hpp b/include/ndnboost/smart_ptr/detail/sp_if_array.hpp
index 8f9d56d..33c8925 100644
--- a/include/ndnboost/smart_ptr/detail/sp_if_array.hpp
+++ b/include/ndnboost/smart_ptr/detail/sp_if_array.hpp
@@ -6,8 +6,8 @@
  * Version 1.0. (See accompanying file LICENSE_1_0.txt 
  * or copy at http://boost.org/LICENSE_1_0.txt)
  */
-#ifndef BOOST_SMART_PTR_DETAIL_SP_IF_ARRAY_HPP
-#define BOOST_SMART_PTR_DETAIL_SP_IF_ARRAY_HPP
+#ifndef NDNBOOST_SMART_PTR_DETAIL_SP_IF_ARRAY_HPP
+#define NDNBOOST_SMART_PTR_DETAIL_SP_IF_ARRAY_HPP
 
 #include <ndnboost/smart_ptr/shared_ptr.hpp>
 
diff --git a/include/ndnboost/smart_ptr/detail/sp_nullptr_t.hpp b/include/ndnboost/smart_ptr/detail/sp_nullptr_t.hpp
index 13e2a9a..5348061 100644
--- a/include/ndnboost/smart_ptr/detail/sp_nullptr_t.hpp
+++ b/include/ndnboost/smart_ptr/detail/sp_nullptr_t.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SP_NULLPTR_T_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SP_NULLPTR_T_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_DETAIL_SP_NULLPTR_T_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_DETAIL_SP_NULLPTR_T_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -18,7 +18,7 @@
 #include <ndnboost/config.hpp>
 #include <cstddef>
 
-#if !defined( BOOST_NO_CXX11_NULLPTR )
+#if !defined( NDNBOOST_NO_CXX11_NULLPTR )
 
 namespace ndnboost
 {
@@ -26,7 +26,7 @@
 namespace detail
 {
 
-#if defined( __clang__ ) && !defined( _LIBCPP_VERSION ) && !defined( BOOST_NO_CXX11_DECLTYPE )
+#if defined( __clang__ ) && !defined( _LIBCPP_VERSION ) && !defined( NDNBOOST_NO_CXX11_DECLTYPE )
 
     typedef decltype(nullptr) sp_nullptr_t;
 
@@ -40,6 +40,6 @@
 
 } // namespace ndnboost
 
-#endif // !defined( BOOST_NO_CXX11_NULLPTR )
+#endif // !defined( NDNBOOST_NO_CXX11_NULLPTR )
 
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_NULLPTR_T_HPP_INCLUDED
+#endif  // #ifndef NDNBOOST_SMART_PTR_DETAIL_SP_NULLPTR_T_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/spinlock.hpp b/include/ndnboost/smart_ptr/detail/spinlock.hpp
index 80ae61a..37d0d56 100644
--- a/include/ndnboost/smart_ptr/detail/spinlock.hpp
+++ b/include/ndnboost/smart_ptr/detail/spinlock.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SPINLOCK_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_DETAIL_SPINLOCK_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_DETAIL_SPINLOCK_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -25,32 +25,32 @@
 //      class scoped_lock;
 //  };
 //
-//  #define BOOST_DETAIL_SPINLOCK_INIT <unspecified>
+//  #define NDNBOOST_DETAIL_SPINLOCK_INIT <unspecified>
 //
 
 #include <ndnboost/config.hpp>
 #include <ndnboost/smart_ptr/detail/sp_has_sync.hpp>
 
-#if defined( BOOST_SP_USE_PTHREADS )
+#if defined( NDNBOOST_SP_USE_PTHREADS )
 #  include <ndnboost/smart_ptr/detail/spinlock_pt.hpp>
 
 #elif defined(__GNUC__) && defined( __arm__ ) && !defined( __thumb__ )
 #  include <ndnboost/smart_ptr/detail/spinlock_gcc_arm.hpp>
 
-#elif defined( BOOST_SP_HAS_SYNC )
+#elif defined( NDNBOOST_SP_HAS_SYNC )
 #  include <ndnboost/smart_ptr/detail/spinlock_sync.hpp>
 
 #elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
 #  include <ndnboost/smart_ptr/detail/spinlock_w32.hpp>
 
-#elif defined(BOOST_HAS_PTHREADS)
+#elif defined(NDNBOOST_HAS_PTHREADS)
 #  include <ndnboost/smart_ptr/detail/spinlock_pt.hpp>
 
-#elif !defined(BOOST_HAS_THREADS)
+#elif !defined(NDNBOOST_HAS_THREADS)
 #  include <ndnboost/smart_ptr/detail/spinlock_nt.hpp>
 
 #else
 #  error Unrecognized threading platform
 #endif
 
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_HPP_INCLUDED
+#endif // #ifndef NDNBOOST_SMART_PTR_DETAIL_SPINLOCK_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/spinlock_gcc_arm.hpp b/include/ndnboost/smart_ptr/detail/spinlock_gcc_arm.hpp
index 7155fbe..2f015a4 100644
--- a/include/ndnboost/smart_ptr/detail/spinlock_gcc_arm.hpp
+++ b/include/ndnboost/smart_ptr/detail/spinlock_gcc_arm.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_GCC_ARM_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SPINLOCK_GCC_ARM_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_DETAIL_SPINLOCK_GCC_ARM_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_DETAIL_SPINLOCK_GCC_ARM_HPP_INCLUDED
 
 //
 //  Copyright (c) 2008, 2011 Peter Dimov
@@ -13,17 +13,17 @@
 
 #if defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7EM__) || defined(__ARM_ARCH_7S__)
 
-# define BOOST_SP_ARM_BARRIER "dmb"
-# define BOOST_SP_ARM_HAS_LDREX
+# define NDNBOOST_SP_ARM_BARRIER "dmb"
+# define NDNBOOST_SP_ARM_HAS_LDREX
 
 #elif defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__)
 
-# define BOOST_SP_ARM_BARRIER "mcr p15, 0, r0, c7, c10, 5"
-# define BOOST_SP_ARM_HAS_LDREX
+# define NDNBOOST_SP_ARM_BARRIER "mcr p15, 0, r0, c7, c10, 5"
+# define NDNBOOST_SP_ARM_HAS_LDREX
 
 #else
 
-# define BOOST_SP_ARM_BARRIER ""
+# define NDNBOOST_SP_ARM_BARRIER ""
 
 #endif
 
@@ -45,13 +45,13 @@
     {
         int r;
 
-#ifdef BOOST_SP_ARM_HAS_LDREX
+#ifdef NDNBOOST_SP_ARM_HAS_LDREX
 
         __asm__ __volatile__(
             "ldrex %0, [%2]; \n"
             "cmp %0, %1; \n"
             "strexne %0, %1, [%2]; \n"
-            BOOST_SP_ARM_BARRIER :
+            NDNBOOST_SP_ARM_BARRIER :
             "=&r"( r ): // outputs
             "r"( 1 ), "r"( &v_ ): // inputs
             "memory", "cc" );
@@ -60,7 +60,7 @@
 
         __asm__ __volatile__(
             "swp %0, %1, [%2];\n"
-            BOOST_SP_ARM_BARRIER :
+            NDNBOOST_SP_ARM_BARRIER :
             "=&r"( r ): // outputs
             "r"( 1 ), "r"( &v_ ): // inputs
             "memory", "cc" );
@@ -80,7 +80,7 @@
 
     void unlock()
     {
-        __asm__ __volatile__( BOOST_SP_ARM_BARRIER ::: "memory" );
+        __asm__ __volatile__( NDNBOOST_SP_ARM_BARRIER ::: "memory" );
         *const_cast< int volatile* >( &v_ ) = 0;
     }
 
@@ -112,9 +112,9 @@
 } // namespace detail
 } // namespace ndnboost
 
-#define BOOST_DETAIL_SPINLOCK_INIT {0}
+#define NDNBOOST_DETAIL_SPINLOCK_INIT {0}
 
-#undef BOOST_SP_ARM_BARRIER
-#undef BOOST_SP_ARM_HAS_LDREX
+#undef NDNBOOST_SP_ARM_BARRIER
+#undef NDNBOOST_SP_ARM_HAS_LDREX
 
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_GCC_ARM_HPP_INCLUDED
+#endif // #ifndef NDNBOOST_SMART_PTR_DETAIL_SPINLOCK_GCC_ARM_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/spinlock_nt.hpp b/include/ndnboost/smart_ptr/detail/spinlock_nt.hpp
index 59cc715..5b514c8 100644
--- a/include/ndnboost/smart_ptr/detail/spinlock_nt.hpp
+++ b/include/ndnboost/smart_ptr/detail/spinlock_nt.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_NT_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SPINLOCK_NT_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_DETAIL_SPINLOCK_NT_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_DETAIL_SPINLOCK_NT_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -46,13 +46,13 @@
 
     inline void lock()
     {
-        BOOST_ASSERT( !locked_ );
+        NDNBOOST_ASSERT( !locked_ );
         locked_ = true;
     }
 
     inline void unlock()
     {
-        BOOST_ASSERT( locked_ );
+        NDNBOOST_ASSERT( locked_ );
         locked_ = false;
     }
 
@@ -84,6 +84,6 @@
 } // namespace detail
 } // namespace ndnboost
 
-#define BOOST_DETAIL_SPINLOCK_INIT { false }
+#define NDNBOOST_DETAIL_SPINLOCK_INIT { false }
 
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_NT_HPP_INCLUDED
+#endif // #ifndef NDNBOOST_SMART_PTR_DETAIL_SPINLOCK_NT_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/spinlock_pool.hpp b/include/ndnboost/smart_ptr/detail/spinlock_pool.hpp
index 5ba249d..70549b7 100644
--- a/include/ndnboost/smart_ptr/detail/spinlock_pool.hpp
+++ b/include/ndnboost/smart_ptr/detail/spinlock_pool.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_POOL_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SPINLOCK_POOL_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_DETAIL_SPINLOCK_POOL_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_DETAIL_SPINLOCK_POOL_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -74,18 +74,18 @@
 
 template< int I > spinlock spinlock_pool< I >::pool_[ 41 ] =
 {
-    BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, 
-    BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, 
-    BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, 
-    BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, 
-    BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, 
-    BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, 
-    BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, 
-    BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, 
-    BOOST_DETAIL_SPINLOCK_INIT
+    NDNBOOST_DETAIL_SPINLOCK_INIT, NDNBOOST_DETAIL_SPINLOCK_INIT, NDNBOOST_DETAIL_SPINLOCK_INIT, NDNBOOST_DETAIL_SPINLOCK_INIT, NDNBOOST_DETAIL_SPINLOCK_INIT, 
+    NDNBOOST_DETAIL_SPINLOCK_INIT, NDNBOOST_DETAIL_SPINLOCK_INIT, NDNBOOST_DETAIL_SPINLOCK_INIT, NDNBOOST_DETAIL_SPINLOCK_INIT, NDNBOOST_DETAIL_SPINLOCK_INIT, 
+    NDNBOOST_DETAIL_SPINLOCK_INIT, NDNBOOST_DETAIL_SPINLOCK_INIT, NDNBOOST_DETAIL_SPINLOCK_INIT, NDNBOOST_DETAIL_SPINLOCK_INIT, NDNBOOST_DETAIL_SPINLOCK_INIT, 
+    NDNBOOST_DETAIL_SPINLOCK_INIT, NDNBOOST_DETAIL_SPINLOCK_INIT, NDNBOOST_DETAIL_SPINLOCK_INIT, NDNBOOST_DETAIL_SPINLOCK_INIT, NDNBOOST_DETAIL_SPINLOCK_INIT, 
+    NDNBOOST_DETAIL_SPINLOCK_INIT, NDNBOOST_DETAIL_SPINLOCK_INIT, NDNBOOST_DETAIL_SPINLOCK_INIT, NDNBOOST_DETAIL_SPINLOCK_INIT, NDNBOOST_DETAIL_SPINLOCK_INIT, 
+    NDNBOOST_DETAIL_SPINLOCK_INIT, NDNBOOST_DETAIL_SPINLOCK_INIT, NDNBOOST_DETAIL_SPINLOCK_INIT, NDNBOOST_DETAIL_SPINLOCK_INIT, NDNBOOST_DETAIL_SPINLOCK_INIT, 
+    NDNBOOST_DETAIL_SPINLOCK_INIT, NDNBOOST_DETAIL_SPINLOCK_INIT, NDNBOOST_DETAIL_SPINLOCK_INIT, NDNBOOST_DETAIL_SPINLOCK_INIT, NDNBOOST_DETAIL_SPINLOCK_INIT, 
+    NDNBOOST_DETAIL_SPINLOCK_INIT, NDNBOOST_DETAIL_SPINLOCK_INIT, NDNBOOST_DETAIL_SPINLOCK_INIT, NDNBOOST_DETAIL_SPINLOCK_INIT, NDNBOOST_DETAIL_SPINLOCK_INIT, 
+    NDNBOOST_DETAIL_SPINLOCK_INIT
 };
 
 } // namespace detail
 } // namespace ndnboost
 
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_POOL_HPP_INCLUDED
+#endif // #ifndef NDNBOOST_SMART_PTR_DETAIL_SPINLOCK_POOL_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/spinlock_pt.hpp b/include/ndnboost/smart_ptr/detail/spinlock_pt.hpp
index c08b1eb..02f3003 100644
--- a/include/ndnboost/smart_ptr/detail/spinlock_pt.hpp
+++ b/include/ndnboost/smart_ptr/detail/spinlock_pt.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_PT_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SPINLOCK_PT_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_DETAIL_SPINLOCK_PT_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_DETAIL_SPINLOCK_PT_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -74,6 +74,6 @@
 } // namespace detail
 } // namespace ndnboost
 
-#define BOOST_DETAIL_SPINLOCK_INIT { PTHREAD_MUTEX_INITIALIZER }
+#define NDNBOOST_DETAIL_SPINLOCK_INIT { PTHREAD_MUTEX_INITIALIZER }
 
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_PT_HPP_INCLUDED
+#endif // #ifndef NDNBOOST_SMART_PTR_DETAIL_SPINLOCK_PT_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/spinlock_sync.hpp b/include/ndnboost/smart_ptr/detail/spinlock_sync.hpp
index fa1df85..41f321f 100644
--- a/include/ndnboost/smart_ptr/detail/spinlock_sync.hpp
+++ b/include/ndnboost/smart_ptr/detail/spinlock_sync.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_SYNC_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SPINLOCK_SYNC_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_DETAIL_SPINLOCK_SYNC_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_DETAIL_SPINLOCK_SYNC_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -82,6 +82,6 @@
 } // namespace detail
 } // namespace ndnboost
 
-#define BOOST_DETAIL_SPINLOCK_INIT {0}
+#define NDNBOOST_DETAIL_SPINLOCK_INIT {0}
 
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_SYNC_HPP_INCLUDED
+#endif // #ifndef NDNBOOST_SMART_PTR_DETAIL_SPINLOCK_SYNC_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/spinlock_w32.hpp b/include/ndnboost/smart_ptr/detail/spinlock_w32.hpp
index 393b5a1..021e3b0 100644
--- a/include/ndnboost/smart_ptr/detail/spinlock_w32.hpp
+++ b/include/ndnboost/smart_ptr/detail/spinlock_w32.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_W32_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SPINLOCK_W32_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_DETAIL_SPINLOCK_W32_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_DETAIL_SPINLOCK_W32_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -18,26 +18,26 @@
 #include <ndnboost/detail/interlocked.hpp>
 #include <ndnboost/smart_ptr/detail/yield_k.hpp>
 
-// BOOST_COMPILER_FENCE
+// NDNBOOST_COMPILER_FENCE
 
 #if defined(__INTEL_COMPILER)
 
-#define BOOST_COMPILER_FENCE __memory_barrier();
+#define NDNBOOST_COMPILER_FENCE __memory_barrier();
 
 #elif defined( _MSC_VER ) && _MSC_VER >= 1310
 
 extern "C" void _ReadWriteBarrier();
 #pragma intrinsic( _ReadWriteBarrier )
 
-#define BOOST_COMPILER_FENCE _ReadWriteBarrier();
+#define NDNBOOST_COMPILER_FENCE _ReadWriteBarrier();
 
 #elif defined(__GNUC__)
 
-#define BOOST_COMPILER_FENCE __asm__ __volatile__( "" : : : "memory" );
+#define NDNBOOST_COMPILER_FENCE __asm__ __volatile__( "" : : : "memory" );
 
 #else
 
-#define BOOST_COMPILER_FENCE
+#define NDNBOOST_COMPILER_FENCE
 
 #endif
 
@@ -59,9 +59,9 @@
 
     bool try_lock()
     {
-        long r = BOOST_INTERLOCKED_EXCHANGE( &v_, 1 );
+        long r = NDNBOOST_INTERLOCKED_EXCHANGE( &v_, 1 );
 
-        BOOST_COMPILER_FENCE
+        NDNBOOST_COMPILER_FENCE
 
         return r == 0;
     }
@@ -76,7 +76,7 @@
 
     void unlock()
     {
-        BOOST_COMPILER_FENCE
+        NDNBOOST_COMPILER_FENCE
         *const_cast< long volatile* >( &v_ ) = 0;
     }
 
@@ -108,6 +108,6 @@
 } // namespace detail
 } // namespace ndnboost
 
-#define BOOST_DETAIL_SPINLOCK_INIT {0}
+#define NDNBOOST_DETAIL_SPINLOCK_INIT {0}
 
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_W32_HPP_INCLUDED
+#endif // #ifndef NDNBOOST_SMART_PTR_DETAIL_SPINLOCK_W32_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/detail/yield_k.hpp b/include/ndnboost/smart_ptr/detail/yield_k.hpp
index 4dc447e..2fcd790 100644
--- a/include/ndnboost/smart_ptr/detail/yield_k.hpp
+++ b/include/ndnboost/smart_ptr/detail/yield_k.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_DETAIL_YIELD_K_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_YIELD_K_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_DETAIL_YIELD_K_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_DETAIL_YIELD_K_HPP_INCLUDED
 
 // MS compatible compilers support #pragma once
 
@@ -25,18 +25,18 @@
 
 #include <ndnboost/config.hpp>
 
-// BOOST_SMT_PAUSE
+// NDNBOOST_SMT_PAUSE
 
 #if defined(_MSC_VER) && _MSC_VER >= 1310 && ( defined(_M_IX86) || defined(_M_X64) )
 
 extern "C" void _mm_pause();
 #pragma intrinsic( _mm_pause )
 
-#define BOOST_SMT_PAUSE _mm_pause();
+#define NDNBOOST_SMT_PAUSE _mm_pause();
 
 #elif defined(__GNUC__) && ( defined(__i386__) || defined(__x86_64__) )
 
-#define BOOST_SMT_PAUSE __asm__ __volatile__( "rep; nop" : : : "memory" );
+#define NDNBOOST_SMT_PAUSE __asm__ __volatile__( "rep; nop" : : : "memory" );
 
 #endif
 
@@ -44,7 +44,7 @@
 
 #if defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) || defined( __CYGWIN__ )
 
-#if defined( BOOST_USE_WINDOWS_H )
+#if defined( NDNBOOST_USE_WINDOWS_H )
 # include <windows.h>
 #endif
 
@@ -54,7 +54,7 @@
 namespace detail
 {
 
-#if !defined( BOOST_USE_WINDOWS_H )
+#if !defined( NDNBOOST_USE_WINDOWS_H )
   extern "C" void __stdcall Sleep( unsigned long ms );
 #endif
 
@@ -63,10 +63,10 @@
     if( k < 4 )
     {
     }
-#if defined( BOOST_SMT_PAUSE )
+#if defined( NDNBOOST_SMT_PAUSE )
     else if( k < 16 )
     {
-        BOOST_SMT_PAUSE
+        NDNBOOST_SMT_PAUSE
     }
 #endif
     else if( k < 32 )
@@ -83,7 +83,7 @@
 
 } // namespace ndnboost
 
-#elif defined( BOOST_HAS_PTHREADS )
+#elif defined( NDNBOOST_HAS_PTHREADS )
 
 #include <sched.h>
 #include <time.h>
@@ -99,10 +99,10 @@
     if( k < 4 )
     {
     }
-#if defined( BOOST_SMT_PAUSE )
+#if defined( NDNBOOST_SMT_PAUSE )
     else if( k < 16 )
     {
-        BOOST_SMT_PAUSE
+        NDNBOOST_SMT_PAUSE
     }
 #endif
     else if( k < 32 || k & 1 )
@@ -146,4 +146,4 @@
 
 #endif
 
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_YIELD_K_HPP_INCLUDED
+#endif // #ifndef NDNBOOST_SMART_PTR_DETAIL_YIELD_K_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/make_shared.hpp b/include/ndnboost/smart_ptr/make_shared.hpp
index 0f9b124..e0a9197 100644
--- a/include/ndnboost/smart_ptr/make_shared.hpp
+++ b/include/ndnboost/smart_ptr/make_shared.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_MAKE_SHARED_HPP_INCLUDED
-#define BOOST_SMART_PTR_MAKE_SHARED_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_MAKE_SHARED_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_MAKE_SHARED_HPP_INCLUDED
 
 //  make_shared.hpp
 //
@@ -14,9 +14,9 @@
 
 #include <ndnboost/smart_ptr/make_shared_object.hpp>
 
-#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) && !defined( BOOST_NO_SFINAE )
+#if !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) && !defined( NDNBOOST_NO_SFINAE )
 # include <ndnboost/smart_ptr/make_shared_array.hpp>
 # include <ndnboost/smart_ptr/allocate_shared_array.hpp>
 #endif
 
-#endif // #ifndef BOOST_SMART_PTR_MAKE_SHARED_HPP_INCLUDED
+#endif // #ifndef NDNBOOST_SMART_PTR_MAKE_SHARED_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/make_shared_array.hpp b/include/ndnboost/smart_ptr/make_shared_array.hpp
index 15b092b..63998ea 100644
--- a/include/ndnboost/smart_ptr/make_shared_array.hpp
+++ b/include/ndnboost/smart_ptr/make_shared_array.hpp
@@ -6,15 +6,15 @@
  * Version 1.0. (See accompanying file LICENSE_1_0.txt
  * or copy at http://boost.org/LICENSE_1_0.txt)
  */
-#ifndef BOOST_SMART_PTR_MAKE_SHARED_ARRAY_HPP
-#define BOOST_SMART_PTR_MAKE_SHARED_ARRAY_HPP
+#ifndef NDNBOOST_SMART_PTR_MAKE_SHARED_ARRAY_HPP
+#define NDNBOOST_SMART_PTR_MAKE_SHARED_ARRAY_HPP
 
 #include <ndnboost/smart_ptr/shared_ptr.hpp>
 #include <ndnboost/smart_ptr/detail/array_deleter.hpp>
 #include <ndnboost/smart_ptr/detail/array_traits.hpp>
 #include <ndnboost/smart_ptr/detail/make_array_helper.hpp>
 #include <ndnboost/smart_ptr/detail/sp_if_array.hpp>
-#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
+#if !defined(NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST)
 #include <initializer_list>
 #endif
 
@@ -36,7 +36,7 @@
         d2->init(p2);
         return ndnboost::shared_ptr<T>(s1, p1);
     }
-#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
+#if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES)
     template<typename T, typename... Args>
     inline typename ndnboost::detail::sp_if_array<T>::type
     make_shared(std::size_t size, Args&&... args) {
@@ -74,7 +74,7 @@
         return ndnboost::shared_ptr<T>(s1, p1);
     }
 #endif
-#if !defined(BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX)
+#if !defined(NDNBOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX)
     template<typename T>
     inline typename ndnboost::detail::sp_if_size_array<T>::type
     make_shared(const T& list) {
@@ -144,7 +144,7 @@
         d2->template init_list<M>(p2, p3);
         return ndnboost::shared_ptr<T>(s1, p1);
     }
-#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
+#if !defined(NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST)
     template<typename T>
     inline typename ndnboost::detail::sp_if_array<T>::type
     make_shared(std::initializer_list<typename ndnboost::detail::array_inner<T>::type> list) {
@@ -166,7 +166,7 @@
         return ndnboost::shared_ptr<T>(s1, p1);
     }
 #endif
-#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
+#if !defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES)
     template<typename T>
     inline typename ndnboost::detail::sp_if_array<T>::type
     make_shared(std::size_t size,
diff --git a/include/ndnboost/smart_ptr/make_shared_object.hpp b/include/ndnboost/smart_ptr/make_shared_object.hpp
index 513dfc2..e704d52 100644
--- a/include/ndnboost/smart_ptr/make_shared_object.hpp
+++ b/include/ndnboost/smart_ptr/make_shared_object.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_MAKE_SHARED_OBJECT_HPP_INCLUDED
-#define BOOST_SMART_PTR_MAKE_SHARED_OBJECT_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_MAKE_SHARED_OBJECT_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_MAKE_SHARED_OBJECT_HPP_INCLUDED
 
 //  make_shared_object.hpp
 //
@@ -68,12 +68,12 @@
 
 public:
 
-    sp_ms_deleter() BOOST_NOEXCEPT : initialized_( false )
+    sp_ms_deleter() NDNBOOST_NOEXCEPT : initialized_( false )
     {
     }
 
     // optimization: do not copy storage_
-    sp_ms_deleter( sp_ms_deleter const & ) BOOST_NOEXCEPT : initialized_( false )
+    sp_ms_deleter( sp_ms_deleter const & ) NDNBOOST_NOEXCEPT : initialized_( false )
     {
     }
 
@@ -91,12 +91,12 @@
     {
     }
 
-    void * address() BOOST_NOEXCEPT
+    void * address() NDNBOOST_NOEXCEPT
     {
         return storage_.data_;
     }
 
-    void set_initialized() BOOST_NOEXCEPT
+    void set_initialized() NDNBOOST_NOEXCEPT
     {
         initialized_ = true;
     }
@@ -107,13 +107,13 @@
     typedef ndnboost::shared_ptr< T > type;
 };
 
-#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
+#if !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
 
 template< class T > struct sp_if_not_array< T[] >
 {
 };
 
-#if !defined( __BORLANDC__ ) || !BOOST_WORKAROUND( __BORLANDC__, < 0x600 )
+#if !defined( __BORLANDC__ ) || !NDNBOOST_WORKAROUND( __BORLANDC__, < 0x600 )
 
 template< class T, std::size_t N > struct sp_if_not_array< T[N] >
 {
@@ -125,10 +125,10 @@
 
 } // namespace detail
 
-#if !defined( BOOST_NO_FUNCTION_TEMPLATE_ORDERING )
-# define BOOST_SP_MSD( T ) ndnboost::detail::sp_inplace_tag< ndnboost::detail::sp_ms_deleter< T > >()
+#if !defined( NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING )
+# define NDNBOOST_SP_MSD( T ) ndnboost::detail::sp_inplace_tag< ndnboost::detail::sp_ms_deleter< T > >()
 #else
-# define BOOST_SP_MSD( T ) ndnboost::detail::sp_ms_deleter< T >()
+# define NDNBOOST_SP_MSD( T ) ndnboost::detail::sp_ms_deleter< T >()
 #endif
 
 // Zero-argument versions
@@ -137,7 +137,7 @@
 
 template< class T > typename ndnboost::detail::sp_if_not_array< T >::type make_shared()
 {
-    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
+    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), NDNBOOST_SP_MSD( T ) );
 
     ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
 
@@ -154,7 +154,7 @@
 
 template< class T > typename ndnboost::detail::sp_if_not_array< T >::type make_shared_noinit()
 {
-    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
+    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), NDNBOOST_SP_MSD( T ) );
 
     ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
 
@@ -171,7 +171,7 @@
 
 template< class T, class A > typename ndnboost::detail::sp_if_not_array< T >::type allocate_shared( A const & a )
 {
-    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a );
+    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), NDNBOOST_SP_MSD( T ), a );
 
     ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
 
@@ -188,7 +188,7 @@
 
 template< class T, class A > typename ndnboost::detail::sp_if_not_array< T >::type allocate_shared_noinit( A const & a )
 {
-    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a );
+    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), NDNBOOST_SP_MSD( T ), a );
 
     ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
 
@@ -203,13 +203,13 @@
     return ndnboost::shared_ptr< T >( pt, pt2 );
 }
 
-#if !defined( BOOST_NO_CXX11_VARIADIC_TEMPLATES ) && !defined( BOOST_NO_CXX11_RVALUE_REFERENCES )
+#if !defined( NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES ) && !defined( NDNBOOST_NO_CXX11_RVALUE_REFERENCES )
 
 // Variadic templates, rvalue reference
 
 template< class T, class Arg1, class... Args > typename ndnboost::detail::sp_if_not_array< T >::type make_shared( Arg1 && arg1, Args && ... args )
 {
-    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
+    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), NDNBOOST_SP_MSD( T ) );
 
     ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
 
@@ -226,7 +226,7 @@
 
 template< class T, class A, class Arg1, class... Args > typename ndnboost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, Arg1 && arg1, Args && ... args )
 {
-    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a );
+    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), NDNBOOST_SP_MSD( T ), a );
 
     ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
 
@@ -241,14 +241,14 @@
     return ndnboost::shared_ptr< T >( pt, pt2 );
 }
 
-#elif !defined( BOOST_NO_CXX11_RVALUE_REFERENCES )
+#elif !defined( NDNBOOST_NO_CXX11_RVALUE_REFERENCES )
 
 // For example MSVC 10.0
 
 template< class T, class A1 >
 typename ndnboost::detail::sp_if_not_array< T >::type make_shared( A1 && a1 )
 {
-    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
+    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), NDNBOOST_SP_MSD( T ) );
 
     ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
 
@@ -269,7 +269,7 @@
 template< class T, class A, class A1 >
 typename ndnboost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 && a1 )
 {
-    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a );
+    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), NDNBOOST_SP_MSD( T ), a );
 
     ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
 
@@ -290,7 +290,7 @@
 template< class T, class A1, class A2 >
 typename ndnboost::detail::sp_if_not_array< T >::type make_shared( A1 && a1, A2 && a2 )
 {
-    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
+    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), NDNBOOST_SP_MSD( T ) );
 
     ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
 
@@ -312,7 +312,7 @@
 template< class T, class A, class A1, class A2 >
 typename ndnboost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 && a1, A2 && a2 )
 {
-    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a );
+    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), NDNBOOST_SP_MSD( T ), a );
 
     ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
 
@@ -334,7 +334,7 @@
 template< class T, class A1, class A2, class A3 >
 typename ndnboost::detail::sp_if_not_array< T >::type make_shared( A1 && a1, A2 && a2, A3 && a3 )
 {
-    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
+    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), NDNBOOST_SP_MSD( T ) );
 
     ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
 
@@ -357,7 +357,7 @@
 template< class T, class A, class A1, class A2, class A3 >
 typename ndnboost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 && a1, A2 && a2, A3 && a3 )
 {
-    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a );
+    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), NDNBOOST_SP_MSD( T ), a );
 
     ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
 
@@ -380,7 +380,7 @@
 template< class T, class A1, class A2, class A3, class A4 >
 typename ndnboost::detail::sp_if_not_array< T >::type make_shared( A1 && a1, A2 && a2, A3 && a3, A4 && a4 )
 {
-    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
+    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), NDNBOOST_SP_MSD( T ) );
 
     ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
 
@@ -404,7 +404,7 @@
 template< class T, class A, class A1, class A2, class A3, class A4 >
 typename ndnboost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 && a1, A2 && a2, A3 && a3, A4 && a4 )
 {
-    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a );
+    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), NDNBOOST_SP_MSD( T ), a );
 
     ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
 
@@ -428,7 +428,7 @@
 template< class T, class A1, class A2, class A3, class A4, class A5 >
 typename ndnboost::detail::sp_if_not_array< T >::type make_shared( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5 )
 {
-    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
+    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), NDNBOOST_SP_MSD( T ) );
 
     ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
 
@@ -453,7 +453,7 @@
 template< class T, class A, class A1, class A2, class A3, class A4, class A5 >
 typename ndnboost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5 )
 {
-    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a );
+    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), NDNBOOST_SP_MSD( T ), a );
 
     ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
 
@@ -478,7 +478,7 @@
 template< class T, class A1, class A2, class A3, class A4, class A5, class A6 >
 typename ndnboost::detail::sp_if_not_array< T >::type make_shared( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6 )
 {
-    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
+    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), NDNBOOST_SP_MSD( T ) );
 
     ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
 
@@ -504,7 +504,7 @@
 template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6 >
 typename ndnboost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6 )
 {
-    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a );
+    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), NDNBOOST_SP_MSD( T ), a );
 
     ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
 
@@ -530,7 +530,7 @@
 template< class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7 >
 typename ndnboost::detail::sp_if_not_array< T >::type make_shared( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7 )
 {
-    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
+    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), NDNBOOST_SP_MSD( T ) );
 
     ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
 
@@ -557,7 +557,7 @@
 template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6, class A7 >
 typename ndnboost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7 )
 {
-    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a );
+    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), NDNBOOST_SP_MSD( T ), a );
 
     ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
 
@@ -584,7 +584,7 @@
 template< class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 >
 typename ndnboost::detail::sp_if_not_array< T >::type make_shared( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7, A8 && a8 )
 {
-    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
+    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), NDNBOOST_SP_MSD( T ) );
 
     ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
 
@@ -612,7 +612,7 @@
 template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 >
 typename ndnboost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7, A8 && a8 )
 {
-    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a );
+    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), NDNBOOST_SP_MSD( T ), a );
 
     ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
 
@@ -640,7 +640,7 @@
 template< class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9 >
 typename ndnboost::detail::sp_if_not_array< T >::type make_shared( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7, A8 && a8, A9 && a9 )
 {
-    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
+    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), NDNBOOST_SP_MSD( T ) );
 
     ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
 
@@ -669,7 +669,7 @@
 template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9 >
 typename ndnboost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7, A8 && a8, A9 && a9 )
 {
-    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a );
+    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), NDNBOOST_SP_MSD( T ), a );
 
     ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
 
@@ -702,7 +702,7 @@
 template< class T, class A1 >
 typename ndnboost::detail::sp_if_not_array< T >::type make_shared( A1 const & a1 )
 {
-    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
+    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), NDNBOOST_SP_MSD( T ) );
 
     ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
 
@@ -720,7 +720,7 @@
 template< class T, class A, class A1 >
 typename ndnboost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 const & a1 )
 {
-    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a );
+    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), NDNBOOST_SP_MSD( T ), a );
 
     ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
 
@@ -738,7 +738,7 @@
 template< class T, class A1, class A2 >
 typename ndnboost::detail::sp_if_not_array< T >::type make_shared( A1 const & a1, A2 const & a2 )
 {
-    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
+    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), NDNBOOST_SP_MSD( T ) );
 
     ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
 
@@ -756,7 +756,7 @@
 template< class T, class A, class A1, class A2 >
 typename ndnboost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 const & a1, A2 const & a2 )
 {
-    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a );
+    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), NDNBOOST_SP_MSD( T ), a );
 
     ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
 
@@ -774,7 +774,7 @@
 template< class T, class A1, class A2, class A3 >
 typename ndnboost::detail::sp_if_not_array< T >::type make_shared( A1 const & a1, A2 const & a2, A3 const & a3 )
 {
-    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
+    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), NDNBOOST_SP_MSD( T ) );
 
     ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
 
@@ -792,7 +792,7 @@
 template< class T, class A, class A1, class A2, class A3 >
 typename ndnboost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3 )
 {
-    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a );
+    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), NDNBOOST_SP_MSD( T ), a );
 
     ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
 
@@ -810,7 +810,7 @@
 template< class T, class A1, class A2, class A3, class A4 >
 typename ndnboost::detail::sp_if_not_array< T >::type make_shared( A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4 )
 {
-    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
+    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), NDNBOOST_SP_MSD( T ) );
 
     ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
 
@@ -828,7 +828,7 @@
 template< class T, class A, class A1, class A2, class A3, class A4 >
 typename ndnboost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4 )
 {
-    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a );
+    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), NDNBOOST_SP_MSD( T ), a );
 
     ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
 
@@ -846,7 +846,7 @@
 template< class T, class A1, class A2, class A3, class A4, class A5 >
 typename ndnboost::detail::sp_if_not_array< T >::type make_shared( A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5 )
 {
-    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
+    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), NDNBOOST_SP_MSD( T ) );
 
     ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
 
@@ -864,7 +864,7 @@
 template< class T, class A, class A1, class A2, class A3, class A4, class A5 >
 typename ndnboost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5 )
 {
-    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a );
+    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), NDNBOOST_SP_MSD( T ), a );
 
     ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
 
@@ -882,7 +882,7 @@
 template< class T, class A1, class A2, class A3, class A4, class A5, class A6 >
 typename ndnboost::detail::sp_if_not_array< T >::type make_shared( A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6 )
 {
-    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
+    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), NDNBOOST_SP_MSD( T ) );
 
     ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
 
@@ -900,7 +900,7 @@
 template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6 >
 typename ndnboost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6 )
 {
-    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a );
+    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), NDNBOOST_SP_MSD( T ), a );
 
     ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
 
@@ -918,7 +918,7 @@
 template< class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7 >
 typename ndnboost::detail::sp_if_not_array< T >::type make_shared( A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7 )
 {
-    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
+    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), NDNBOOST_SP_MSD( T ) );
 
     ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
 
@@ -936,7 +936,7 @@
 template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6, class A7 >
 typename ndnboost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7 )
 {
-    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a );
+    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), NDNBOOST_SP_MSD( T ), a );
 
     ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
 
@@ -954,7 +954,7 @@
 template< class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 >
 typename ndnboost::detail::sp_if_not_array< T >::type make_shared( A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8 )
 {
-    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
+    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), NDNBOOST_SP_MSD( T ) );
 
     ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
 
@@ -972,7 +972,7 @@
 template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 >
 typename ndnboost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8 )
 {
-    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a );
+    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), NDNBOOST_SP_MSD( T ), a );
 
     ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
 
@@ -990,7 +990,7 @@
 template< class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9 >
 typename ndnboost::detail::sp_if_not_array< T >::type make_shared( A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8, A9 const & a9 )
 {
-    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
+    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), NDNBOOST_SP_MSD( T ) );
 
     ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
 
@@ -1008,7 +1008,7 @@
 template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9 >
 typename ndnboost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8, A9 const & a9 )
 {
-    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a );
+    ndnboost::shared_ptr< T > pt( static_cast< T* >( 0 ), NDNBOOST_SP_MSD( T ), a );
 
     ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
 
@@ -1025,8 +1025,8 @@
 
 #endif
 
-#undef BOOST_SP_MSD
+#undef NDNBOOST_SP_MSD
 
 } // namespace ndnboost
 
-#endif // #ifndef BOOST_SMART_PTR_MAKE_SHARED_OBJECT_HPP_INCLUDED
+#endif // #ifndef NDNBOOST_SMART_PTR_MAKE_SHARED_OBJECT_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/scoped_array.hpp b/include/ndnboost/smart_ptr/scoped_array.hpp
index 7584d27..818d4c0 100644
--- a/include/ndnboost/smart_ptr/scoped_array.hpp
+++ b/include/ndnboost/smart_ptr/scoped_array.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_SCOPED_ARRAY_HPP_INCLUDED
-#define BOOST_SMART_PTR_SCOPED_ARRAY_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_SCOPED_ARRAY_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_SCOPED_ARRAY_HPP_INCLUDED
 
 //  (C) Copyright Greg Colvin and Beman Dawes 1998, 1999.
 //  Copyright (c) 2001, 2002 Peter Dimov
@@ -25,7 +25,7 @@
 
 // Debug hooks
 
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
 
 void sp_array_constructor_hook(void * p);
 void sp_array_destructor_hook(void * p);
@@ -54,35 +54,35 @@
 
     typedef T element_type;
 
-    explicit scoped_array( T * p = 0 ) BOOST_NOEXCEPT : px( p )
+    explicit scoped_array( T * p = 0 ) NDNBOOST_NOEXCEPT : px( p )
     {
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
         ndnboost::sp_array_constructor_hook( px );
 #endif
     }
 
     ~scoped_array() // never throws
     {
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
         ndnboost::sp_array_destructor_hook( px );
 #endif
         ndnboost::checked_array_delete( px );
     }
 
-    void reset(T * p = 0) // never throws (but has a BOOST_ASSERT in it, so not marked with BOOST_NOEXCEPT)
+    void reset(T * p = 0) // never throws (but has a NDNBOOST_ASSERT in it, so not marked with NDNBOOST_NOEXCEPT)
     {
-        BOOST_ASSERT( p == 0 || p != px ); // catch self-reset errors
+        NDNBOOST_ASSERT( p == 0 || p != px ); // catch self-reset errors
         this_type(p).swap(*this);
     }
 
-    T & operator[](std::ptrdiff_t i) const // never throws (but has a BOOST_ASSERT in it, so not marked with BOOST_NOEXCEPT)
+    T & operator[](std::ptrdiff_t i) const // never throws (but has a NDNBOOST_ASSERT in it, so not marked with NDNBOOST_NOEXCEPT)
     {
-        BOOST_ASSERT( px != 0 );
-        BOOST_ASSERT( i >= 0 );
+        NDNBOOST_ASSERT( px != 0 );
+        NDNBOOST_ASSERT( i >= 0 );
         return px[i];
     }
 
-    T * get() const BOOST_NOEXCEPT
+    T * get() const NDNBOOST_NOEXCEPT
     {
         return px;
     }
@@ -90,7 +90,7 @@
 // implicit conversion to "bool"
 #include <ndnboost/smart_ptr/detail/operator_bool.hpp>
 
-    void swap(scoped_array & b) BOOST_NOEXCEPT
+    void swap(scoped_array & b) NDNBOOST_NOEXCEPT
     {
         T * tmp = b.px;
         b.px = px;
@@ -98,35 +98,35 @@
     }
 };
 
-#if !defined( BOOST_NO_CXX11_NULLPTR )
+#if !defined( NDNBOOST_NO_CXX11_NULLPTR )
 
-template<class T> inline bool operator==( scoped_array<T> const & p, ndnboost::detail::sp_nullptr_t ) BOOST_NOEXCEPT
+template<class T> inline bool operator==( scoped_array<T> const & p, ndnboost::detail::sp_nullptr_t ) NDNBOOST_NOEXCEPT
 {
     return p.get() == 0;
 }
 
-template<class T> inline bool operator==( ndnboost::detail::sp_nullptr_t, scoped_array<T> const & p ) BOOST_NOEXCEPT
+template<class T> inline bool operator==( ndnboost::detail::sp_nullptr_t, scoped_array<T> const & p ) NDNBOOST_NOEXCEPT
 {
     return p.get() == 0;
 }
 
-template<class T> inline bool operator!=( scoped_array<T> const & p, ndnboost::detail::sp_nullptr_t ) BOOST_NOEXCEPT
+template<class T> inline bool operator!=( scoped_array<T> const & p, ndnboost::detail::sp_nullptr_t ) NDNBOOST_NOEXCEPT
 {
     return p.get() != 0;
 }
 
-template<class T> inline bool operator!=( ndnboost::detail::sp_nullptr_t, scoped_array<T> const & p ) BOOST_NOEXCEPT
+template<class T> inline bool operator!=( ndnboost::detail::sp_nullptr_t, scoped_array<T> const & p ) NDNBOOST_NOEXCEPT
 {
     return p.get() != 0;
 }
 
 #endif
 
-template<class T> inline void swap(scoped_array<T> & a, scoped_array<T> & b) BOOST_NOEXCEPT
+template<class T> inline void swap(scoped_array<T> & a, scoped_array<T> & b) NDNBOOST_NOEXCEPT
 {
     a.swap(b);
 }
 
 } // namespace ndnboost
 
-#endif  // #ifndef BOOST_SMART_PTR_SCOPED_ARRAY_HPP_INCLUDED
+#endif  // #ifndef NDNBOOST_SMART_PTR_SCOPED_ARRAY_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/scoped_ptr.hpp b/include/ndnboost/smart_ptr/scoped_ptr.hpp
index 7ee252b..d79b393 100644
--- a/include/ndnboost/smart_ptr/scoped_ptr.hpp
+++ b/include/ndnboost/smart_ptr/scoped_ptr.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_SCOPED_PTR_HPP_INCLUDED
-#define BOOST_SMART_PTR_SCOPED_PTR_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_SCOPED_PTR_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_SCOPED_PTR_HPP_INCLUDED
 
 //  (C) Copyright Greg Colvin and Beman Dawes 1998, 1999.
 //  Copyright (c) 2001, 2002 Peter Dimov
@@ -17,7 +17,7 @@
 #include <ndnboost/smart_ptr/detail/sp_nullptr_t.hpp>
 #include <ndnboost/detail/workaround.hpp>
 
-#ifndef BOOST_NO_AUTO_PTR
+#ifndef NDNBOOST_NO_AUTO_PTR
 # include <memory>          // for std::auto_ptr
 #endif
 
@@ -26,7 +26,7 @@
 
 // Debug hooks
 
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
 
 void sp_scalar_constructor_hook(void * p);
 void sp_scalar_destructor_hook(void * p);
@@ -58,16 +58,16 @@
 
     explicit scoped_ptr( T * p = 0 ): px( p ) // never throws
     {
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
         ndnboost::sp_scalar_constructor_hook( px );
 #endif
     }
 
-#ifndef BOOST_NO_AUTO_PTR
+#ifndef NDNBOOST_NO_AUTO_PTR
 
-    explicit scoped_ptr( std::auto_ptr<T> p ) BOOST_NOEXCEPT : px( p.release() )
+    explicit scoped_ptr( std::auto_ptr<T> p ) NDNBOOST_NOEXCEPT : px( p.release() )
     {
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
         ndnboost::sp_scalar_constructor_hook( px );
 #endif
     }
@@ -76,7 +76,7 @@
 
     ~scoped_ptr() // never throws
     {
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
         ndnboost::sp_scalar_destructor_hook( px );
 #endif
         ndnboost::checked_delete( px );
@@ -84,23 +84,23 @@
 
     void reset(T * p = 0) // never throws
     {
-        BOOST_ASSERT( p == 0 || p != px ); // catch self-reset errors
+        NDNBOOST_ASSERT( p == 0 || p != px ); // catch self-reset errors
         this_type(p).swap(*this);
     }
 
     T & operator*() const // never throws
     {
-        BOOST_ASSERT( px != 0 );
+        NDNBOOST_ASSERT( px != 0 );
         return *px;
     }
 
     T * operator->() const // never throws
     {
-        BOOST_ASSERT( px != 0 );
+        NDNBOOST_ASSERT( px != 0 );
         return px;
     }
 
-    T * get() const BOOST_NOEXCEPT
+    T * get() const NDNBOOST_NOEXCEPT
     {
         return px;
     }
@@ -108,7 +108,7 @@
 // implicit conversion to "bool"
 #include <ndnboost/smart_ptr/detail/operator_bool.hpp>
 
-    void swap(scoped_ptr & b) BOOST_NOEXCEPT
+    void swap(scoped_ptr & b) NDNBOOST_NOEXCEPT
     {
         T * tmp = b.px;
         b.px = px;
@@ -116,42 +116,42 @@
     }
 };
 
-#if !defined( BOOST_NO_CXX11_NULLPTR )
+#if !defined( NDNBOOST_NO_CXX11_NULLPTR )
 
-template<class T> inline bool operator==( scoped_ptr<T> const & p, ndnboost::detail::sp_nullptr_t ) BOOST_NOEXCEPT
+template<class T> inline bool operator==( scoped_ptr<T> const & p, ndnboost::detail::sp_nullptr_t ) NDNBOOST_NOEXCEPT
 {
     return p.get() == 0;
 }
 
-template<class T> inline bool operator==( ndnboost::detail::sp_nullptr_t, scoped_ptr<T> const & p ) BOOST_NOEXCEPT
+template<class T> inline bool operator==( ndnboost::detail::sp_nullptr_t, scoped_ptr<T> const & p ) NDNBOOST_NOEXCEPT
 {
     return p.get() == 0;
 }
 
-template<class T> inline bool operator!=( scoped_ptr<T> const & p, ndnboost::detail::sp_nullptr_t ) BOOST_NOEXCEPT
+template<class T> inline bool operator!=( scoped_ptr<T> const & p, ndnboost::detail::sp_nullptr_t ) NDNBOOST_NOEXCEPT
 {
     return p.get() != 0;
 }
 
-template<class T> inline bool operator!=( ndnboost::detail::sp_nullptr_t, scoped_ptr<T> const & p ) BOOST_NOEXCEPT
+template<class T> inline bool operator!=( ndnboost::detail::sp_nullptr_t, scoped_ptr<T> const & p ) NDNBOOST_NOEXCEPT
 {
     return p.get() != 0;
 }
 
 #endif
 
-template<class T> inline void swap(scoped_ptr<T> & a, scoped_ptr<T> & b) BOOST_NOEXCEPT
+template<class T> inline void swap(scoped_ptr<T> & a, scoped_ptr<T> & b) NDNBOOST_NOEXCEPT
 {
     a.swap(b);
 }
 
 // get_pointer(p) is a generic way to say p.get()
 
-template<class T> inline T * get_pointer(scoped_ptr<T> const & p) BOOST_NOEXCEPT
+template<class T> inline T * get_pointer(scoped_ptr<T> const & p) NDNBOOST_NOEXCEPT
 {
     return p.get();
 }
 
 } // namespace ndnboost
 
-#endif // #ifndef BOOST_SMART_PTR_SCOPED_PTR_HPP_INCLUDED
+#endif // #ifndef NDNBOOST_SMART_PTR_SCOPED_PTR_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/shared_array.hpp b/include/ndnboost/smart_ptr/shared_array.hpp
index e5626f7..dedef12 100644
--- a/include/ndnboost/smart_ptr/shared_array.hpp
+++ b/include/ndnboost/smart_ptr/shared_array.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_SHARED_ARRAY_HPP_INCLUDED
-#define BOOST_SMART_PTR_SHARED_ARRAY_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_SHARED_ARRAY_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_SHARED_ARRAY_HPP_INCLUDED
 
 //
 //  shared_array.hpp
@@ -16,7 +16,7 @@
 
 #include <ndnboost/config.hpp>   // for broken compiler workarounds
 
-#if defined(BOOST_NO_MEMBER_TEMPLATES) && !defined(BOOST_MSVC6_MEMBER_TEMPLATES)
+#if defined(NDNBOOST_NO_MEMBER_TEMPLATES) && !defined(NDNBOOST_MSVC6_MEMBER_TEMPLATES)
 #include <ndnboost/smart_ptr/detail/shared_array_nmt.hpp>
 #else
 
@@ -57,7 +57,7 @@
 
     typedef T element_type;
 
-    shared_array() BOOST_NOEXCEPT : px( 0 ), pn()
+    shared_array() NDNBOOST_NOEXCEPT : px( 0 ), pn()
     {
     }
 
@@ -87,15 +87,15 @@
 
 //  generated copy constructor, destructor are fine...
 
-#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES )
+#if !defined( NDNBOOST_NO_CXX11_RVALUE_REFERENCES )
 
 // ... except in C++0x, move disables the implicit copy
 
-    shared_array( shared_array const & r ) BOOST_NOEXCEPT : px( r.px ), pn( r.pn )
+    shared_array( shared_array const & r ) NDNBOOST_NOEXCEPT : px( r.px ), pn( r.pn )
     {
     }
 
-    shared_array( shared_array && r ) BOOST_NOEXCEPT : px( r.px ), pn()
+    shared_array( shared_array && r ) NDNBOOST_NOEXCEPT : px( r.px ), pn()
     {
         pn.swap( r.pn );
         r.px = 0;
@@ -106,7 +106,7 @@
     // conversion
 
     template<class Y>
-#if !defined( BOOST_SP_NO_SP_CONVERTIBLE )
+#if !defined( NDNBOOST_SP_NO_SP_CONVERTIBLE )
 
     shared_array( shared_array<Y> const & r, typename ndnboost::detail::sp_enable_if_convertible< Y[], T[] >::type = ndnboost::detail::sp_empty() )
 
@@ -115,7 +115,7 @@
     shared_array( shared_array<Y> const & r )
 
 #endif
-    BOOST_NOEXCEPT : px( r.px ), pn( r.pn ) // never throws
+    NDNBOOST_NOEXCEPT : px( r.px ), pn( r.pn ) // never throws
     {
         ndnboost::detail::sp_assert_convertible< Y[], T[] >();
     }
@@ -123,22 +123,22 @@
     // aliasing
 
     template< class Y >
-    shared_array( shared_array<Y> const & r, element_type * p ) BOOST_NOEXCEPT : px( p ), pn( r.pn )
+    shared_array( shared_array<Y> const & r, element_type * p ) NDNBOOST_NOEXCEPT : px( p ), pn( r.pn )
     {
     }
 
     // assignment
 
-    shared_array & operator=( shared_array const & r ) BOOST_NOEXCEPT
+    shared_array & operator=( shared_array const & r ) NDNBOOST_NOEXCEPT
     {
         this_type( r ).swap( *this );
         return *this;
     }
 
-#if !defined(BOOST_MSVC) || (BOOST_MSVC >= 1400)
+#if !defined(NDNBOOST_MSVC) || (NDNBOOST_MSVC >= 1400)
 
     template<class Y>
-    shared_array & operator=( shared_array<Y> const & r ) BOOST_NOEXCEPT
+    shared_array & operator=( shared_array<Y> const & r ) NDNBOOST_NOEXCEPT
     {
         this_type( r ).swap( *this );
         return *this;
@@ -146,16 +146,16 @@
 
 #endif
 
-#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES )
+#if !defined( NDNBOOST_NO_CXX11_RVALUE_REFERENCES )
 
-    shared_array & operator=( shared_array && r ) BOOST_NOEXCEPT
+    shared_array & operator=( shared_array && r ) NDNBOOST_NOEXCEPT
     {
         this_type( static_cast< shared_array && >( r ) ).swap( *this );
         return *this;
     }
 
     template<class Y>
-    shared_array & operator=( shared_array<Y> && r ) BOOST_NOEXCEPT
+    shared_array & operator=( shared_array<Y> && r ) NDNBOOST_NOEXCEPT
     {
         this_type( static_cast< shared_array<Y> && >( r ) ).swap( *this );
         return *this;
@@ -163,14 +163,14 @@
 
 #endif
 
-    void reset() BOOST_NOEXCEPT
+    void reset() NDNBOOST_NOEXCEPT
     {
         this_type().swap( *this );
     }
 
     template<class Y> void reset( Y * p ) // Y must be complete
     {
-        BOOST_ASSERT( p == 0 || p != px ); // catch self-reset errors
+        NDNBOOST_ASSERT( p == 0 || p != px ); // catch self-reset errors
         this_type( p ).swap( *this );
     }
 
@@ -189,14 +189,14 @@
         this_type( r, p ).swap( *this );
     }
 
-    T & operator[] (std::ptrdiff_t i) const // never throws (but has a BOOST_ASSERT in it, so not marked with BOOST_NOEXCEPT)
+    T & operator[] (std::ptrdiff_t i) const // never throws (but has a NDNBOOST_ASSERT in it, so not marked with NDNBOOST_NOEXCEPT)
     {
-        BOOST_ASSERT(px != 0);
-        BOOST_ASSERT(i >= 0);
+        NDNBOOST_ASSERT(px != 0);
+        NDNBOOST_ASSERT(i >= 0);
         return px[i];
     }
     
-    T * get() const BOOST_NOEXCEPT
+    T * get() const NDNBOOST_NOEXCEPT
     {
         return px;
     }
@@ -204,17 +204,17 @@
 // implicit conversion to "bool"
 #include <ndnboost/smart_ptr/detail/operator_bool.hpp>
 
-    bool unique() const BOOST_NOEXCEPT
+    bool unique() const NDNBOOST_NOEXCEPT
     {
         return pn.unique();
     }
 
-    long use_count() const BOOST_NOEXCEPT
+    long use_count() const NDNBOOST_NOEXCEPT
     {
         return pn.use_count();
     }
 
-    void swap(shared_array<T> & other) BOOST_NOEXCEPT
+    void swap(shared_array<T> & other) NDNBOOST_NOEXCEPT
     {
         std::swap(px, other.px);
         pn.swap(other.pn);
@@ -234,57 +234,57 @@
 
 };  // shared_array
 
-template<class T> inline bool operator==(shared_array<T> const & a, shared_array<T> const & b) BOOST_NOEXCEPT
+template<class T> inline bool operator==(shared_array<T> const & a, shared_array<T> const & b) NDNBOOST_NOEXCEPT
 {
     return a.get() == b.get();
 }
 
-template<class T> inline bool operator!=(shared_array<T> const & a, shared_array<T> const & b) BOOST_NOEXCEPT
+template<class T> inline bool operator!=(shared_array<T> const & a, shared_array<T> const & b) NDNBOOST_NOEXCEPT
 {
     return a.get() != b.get();
 }
 
-#if !defined( BOOST_NO_CXX11_NULLPTR )
+#if !defined( NDNBOOST_NO_CXX11_NULLPTR )
 
-template<class T> inline bool operator==( shared_array<T> const & p, ndnboost::detail::sp_nullptr_t ) BOOST_NOEXCEPT
+template<class T> inline bool operator==( shared_array<T> const & p, ndnboost::detail::sp_nullptr_t ) NDNBOOST_NOEXCEPT
 {
     return p.get() == 0;
 }
 
-template<class T> inline bool operator==( ndnboost::detail::sp_nullptr_t, shared_array<T> const & p ) BOOST_NOEXCEPT
+template<class T> inline bool operator==( ndnboost::detail::sp_nullptr_t, shared_array<T> const & p ) NDNBOOST_NOEXCEPT
 {
     return p.get() == 0;
 }
 
-template<class T> inline bool operator!=( shared_array<T> const & p, ndnboost::detail::sp_nullptr_t ) BOOST_NOEXCEPT
+template<class T> inline bool operator!=( shared_array<T> const & p, ndnboost::detail::sp_nullptr_t ) NDNBOOST_NOEXCEPT
 {
     return p.get() != 0;
 }
 
-template<class T> inline bool operator!=( ndnboost::detail::sp_nullptr_t, shared_array<T> const & p ) BOOST_NOEXCEPT
+template<class T> inline bool operator!=( ndnboost::detail::sp_nullptr_t, shared_array<T> const & p ) NDNBOOST_NOEXCEPT
 {
     return p.get() != 0;
 }
 
 #endif
 
-template<class T> inline bool operator<(shared_array<T> const & a, shared_array<T> const & b) BOOST_NOEXCEPT
+template<class T> inline bool operator<(shared_array<T> const & a, shared_array<T> const & b) NDNBOOST_NOEXCEPT
 {
     return std::less<T*>()(a.get(), b.get());
 }
 
-template<class T> void swap(shared_array<T> & a, shared_array<T> & b) BOOST_NOEXCEPT
+template<class T> void swap(shared_array<T> & a, shared_array<T> & b) NDNBOOST_NOEXCEPT
 {
     a.swap(b);
 }
 
 template< class D, class T > D * get_deleter( shared_array<T> const & p )
 {
-    return static_cast< D * >( p._internal_get_deleter( BOOST_SP_TYPEID(D) ) );
+    return static_cast< D * >( p._internal_get_deleter( NDNBOOST_SP_TYPEID(D) ) );
 }
 
 } // namespace ndnboost
 
-#endif  // #if defined(BOOST_NO_MEMBER_TEMPLATES) && !defined(BOOST_MSVC6_MEMBER_TEMPLATES)
+#endif  // #if defined(NDNBOOST_NO_MEMBER_TEMPLATES) && !defined(NDNBOOST_MSVC6_MEMBER_TEMPLATES)
 
-#endif  // #ifndef BOOST_SMART_PTR_SHARED_ARRAY_HPP_INCLUDED
+#endif  // #ifndef NDNBOOST_SMART_PTR_SHARED_ARRAY_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/shared_ptr.hpp b/include/ndnboost/smart_ptr/shared_ptr.hpp
index 52b9acc..50fa47e 100644
--- a/include/ndnboost/smart_ptr/shared_ptr.hpp
+++ b/include/ndnboost/smart_ptr/shared_ptr.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_SHARED_PTR_HPP_INCLUDED
-#define BOOST_SMART_PTR_SHARED_PTR_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_SHARED_PTR_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_SHARED_PTR_HPP_INCLUDED
 
 //
 //  shared_ptr.hpp
@@ -16,7 +16,7 @@
 
 #include <ndnboost/config.hpp>   // for broken compiler workarounds
 
-#if defined(BOOST_NO_MEMBER_TEMPLATES) && !defined(BOOST_MSVC6_MEMBER_TEMPLATES)
+#if defined(NDNBOOST_NO_MEMBER_TEMPLATES) && !defined(NDNBOOST_MSVC6_MEMBER_TEMPLATES)
 #include <ndnboost/smart_ptr/detail/shared_ptr_nmt.hpp>
 #else
 
@@ -34,7 +34,7 @@
 #include <ndnboost/smart_ptr/detail/sp_convertible.hpp>
 #include <ndnboost/smart_ptr/detail/sp_nullptr_t.hpp>
 
-#if !defined(BOOST_SP_NO_ATOMIC_ACCESS)
+#if !defined(NDNBOOST_SP_NO_ATOMIC_ACCESS)
 #include <ndnboost/smart_ptr/detail/spinlock_pool.hpp>
 #include <ndnboost/memory_order.hpp>
 #endif
@@ -44,8 +44,8 @@
 #include <typeinfo>             // for std::bad_cast
 #include <cstddef>              // for std::size_t
 
-#if !defined(BOOST_NO_IOSTREAM)
-#if !defined(BOOST_NO_IOSFWD)
+#if !defined(NDNBOOST_NO_IOSTREAM)
+#if !defined(NDNBOOST_NO_IOSFWD)
 #include <iosfwd>               // for std::basic_ostream
 #else
 #include <ostream>
@@ -70,14 +70,14 @@
     typedef T type;
 };
 
-#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
+#if !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
 
 template< class T > struct sp_element< T[] >
 {
     typedef T type;
 };
 
-#if !defined( __BORLANDC__ ) || !BOOST_WORKAROUND( __BORLANDC__, < 0x600 )
+#if !defined( __BORLANDC__ ) || !NDNBOOST_WORKAROUND( __BORLANDC__, < 0x600 )
 
 template< class T, std::size_t N > struct sp_element< T[N] >
 {
@@ -86,7 +86,7 @@
 
 #endif
 
-#endif // !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
+#endif // !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
 
 // sp_dereference, return type of operator*
 
@@ -100,7 +100,7 @@
     typedef void type;
 };
 
-#if !defined(BOOST_NO_CV_VOID_SPECIALIZATIONS)
+#if !defined(NDNBOOST_NO_CV_VOID_SPECIALIZATIONS)
 
 template<> struct sp_dereference< void const >
 {
@@ -117,16 +117,16 @@
     typedef void type;
 };
 
-#endif // !defined(BOOST_NO_CV_VOID_SPECIALIZATIONS)
+#endif // !defined(NDNBOOST_NO_CV_VOID_SPECIALIZATIONS)
 
-#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
+#if !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
 
 template< class T > struct sp_dereference< T[] >
 {
     typedef void type;
 };
 
-#if !defined( __BORLANDC__ ) || !BOOST_WORKAROUND( __BORLANDC__, < 0x600 )
+#if !defined( __BORLANDC__ ) || !NDNBOOST_WORKAROUND( __BORLANDC__, < 0x600 )
 
 template< class T, std::size_t N > struct sp_dereference< T[N] >
 {
@@ -135,7 +135,7 @@
 
 #endif
 
-#endif // !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
+#endif // !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
 
 // sp_member_access, return type of operator->
 
@@ -144,14 +144,14 @@
     typedef T * type;
 };
 
-#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
+#if !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
 
 template< class T > struct sp_member_access< T[] >
 {
     typedef void type;
 };
 
-#if !defined( __BORLANDC__ ) || !BOOST_WORKAROUND( __BORLANDC__, < 0x600 )
+#if !defined( __BORLANDC__ ) || !NDNBOOST_WORKAROUND( __BORLANDC__, < 0x600 )
 
 template< class T, std::size_t N > struct sp_member_access< T[N] >
 {
@@ -160,7 +160,7 @@
 
 #endif
 
-#endif // !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
+#endif // !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
 
 // sp_array_access, return type of operator[]
 
@@ -169,14 +169,14 @@
     typedef void type;
 };
 
-#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
+#if !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
 
 template< class T > struct sp_array_access< T[] >
 {
     typedef T & type;
 };
 
-#if !defined( __BORLANDC__ ) || !BOOST_WORKAROUND( __BORLANDC__, < 0x600 )
+#if !defined( __BORLANDC__ ) || !NDNBOOST_WORKAROUND( __BORLANDC__, < 0x600 )
 
 template< class T, std::size_t N > struct sp_array_access< T[N] >
 {
@@ -185,7 +185,7 @@
 
 #endif
 
-#endif // !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
+#endif // !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
 
 // sp_extent, for operator[] index check
 
@@ -194,14 +194,14 @@
     enum _vt { value = 0 };
 };
 
-#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
+#if !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
 
 template< class T, std::size_t N > struct sp_extent< T[N] >
 {
     enum _vt { value = N };
 };
 
-#endif // !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
+#endif // !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
 
 // enable_shared_from_this support
 
@@ -236,7 +236,7 @@
 
 #endif // _MANAGED
 
-#if !defined( BOOST_NO_SFINAE ) && !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) && !defined( BOOST_NO_AUTO_PTR )
+#if !defined( NDNBOOST_NO_SFINAE ) && !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) && !defined( NDNBOOST_NO_AUTO_PTR )
 
 // rvalue auto_ptr support based on a technique by Dave Abrahams
 
@@ -255,7 +255,7 @@
 
 template< class Y, class T > inline void sp_assert_convertible()
 {
-#if !defined( BOOST_SP_NO_SP_CONVERTIBLE )
+#if !defined( NDNBOOST_SP_NO_SP_CONVERTIBLE )
 
     // static_assert( sp_convertible< Y, T >::value );
     typedef char tmp[ sp_convertible< Y, T >::value? 1: -1 ];
@@ -277,7 +277,7 @@
     ndnboost::detail::sp_enable_shared_from_this( ppx, p, p );
 }
 
-#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
+#if !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
 
 template< class T, class Y > inline void sp_pointer_construct( ndnboost::shared_ptr< T[] > * /*ppx*/, Y * p, ndnboost::detail::shared_count & pn )
 {
@@ -291,7 +291,7 @@
     ndnboost::detail::shared_count( p, ndnboost::checked_array_deleter< T >() ).swap( pn );
 }
 
-#endif // !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
+#endif // !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
 
 // deleter constructor helper
 
@@ -300,7 +300,7 @@
     ndnboost::detail::sp_enable_shared_from_this( ppx, p, p );
 }
 
-#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
+#if !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
 
 template< class T, class Y > inline void sp_deleter_construct( ndnboost::shared_ptr< T[] > * /*ppx*/, Y * /*p*/ )
 {
@@ -312,7 +312,7 @@
     sp_assert_convertible< Y[N], T[N] >();
 }
 
-#endif // !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
+#endif // !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
 
 } // namespace detail
 
@@ -336,13 +336,13 @@
 
     typedef typename ndnboost::detail::sp_element< T >::type element_type;
 
-    shared_ptr() BOOST_NOEXCEPT : px( 0 ), pn() // never throws in 1.30+
+    shared_ptr() NDNBOOST_NOEXCEPT : px( 0 ), pn() // never throws in 1.30+
     {
     }
 
-#if !defined( BOOST_NO_CXX11_NULLPTR )
+#if !defined( NDNBOOST_NO_CXX11_NULLPTR )
 
-    shared_ptr( ndnboost::detail::sp_nullptr_t ) BOOST_NOEXCEPT : px( 0 ), pn() // never throws
+    shared_ptr( ndnboost::detail::sp_nullptr_t ) NDNBOOST_NOEXCEPT : px( 0 ), pn() // never throws
     {
     }
 
@@ -365,7 +365,7 @@
         ndnboost::detail::sp_deleter_construct( this, p );
     }
 
-#if !defined( BOOST_NO_CXX11_NULLPTR )
+#if !defined( NDNBOOST_NO_CXX11_NULLPTR )
 
     template<class D> shared_ptr( ndnboost::detail::sp_nullptr_t p, D d ): px( p ), pn( p, d )
     {
@@ -380,7 +380,7 @@
         ndnboost::detail::sp_deleter_construct( this, p );
     }
 
-#if !defined( BOOST_NO_CXX11_NULLPTR )
+#if !defined( NDNBOOST_NO_CXX11_NULLPTR )
 
     template<class D, class A> shared_ptr( ndnboost::detail::sp_nullptr_t p, D d, A a ): px( p ), pn( p, d, a )
     {
@@ -390,11 +390,11 @@
 
 //  generated copy constructor, destructor are fine...
 
-#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES )
+#if !defined( NDNBOOST_NO_CXX11_RVALUE_REFERENCES )
 
 // ... except in C++0x, move disables the implicit copy
 
-    shared_ptr( shared_ptr const & r ) BOOST_NOEXCEPT : px( r.px ), pn( r.pn )
+    shared_ptr( shared_ptr const & r ) NDNBOOST_NOEXCEPT : px( r.px ), pn( r.pn )
     {
     }
 
@@ -411,7 +411,7 @@
 
     template<class Y>
     shared_ptr( weak_ptr<Y> const & r, ndnboost::detail::sp_nothrow_tag )
-    BOOST_NOEXCEPT : px( 0 ), pn( r.pn, ndnboost::detail::sp_nothrow_tag() )
+    NDNBOOST_NOEXCEPT : px( 0 ), pn( r.pn, ndnboost::detail::sp_nothrow_tag() )
     {
         if( !pn.empty() )
         {
@@ -420,7 +420,7 @@
     }
 
     template<class Y>
-#if !defined( BOOST_SP_NO_SP_CONVERTIBLE )
+#if !defined( NDNBOOST_SP_NO_SP_CONVERTIBLE )
 
     shared_ptr( shared_ptr<Y> const & r, typename ndnboost::detail::sp_enable_if_convertible<Y,T>::type = ndnboost::detail::sp_empty() )
 
@@ -429,18 +429,18 @@
     shared_ptr( shared_ptr<Y> const & r )
 
 #endif
-    BOOST_NOEXCEPT : px( r.px ), pn( r.pn )
+    NDNBOOST_NOEXCEPT : px( r.px ), pn( r.pn )
     {
         ndnboost::detail::sp_assert_convertible< Y, T >();
     }
 
     // aliasing
     template< class Y >
-    shared_ptr( shared_ptr<Y> const & r, element_type * p ) BOOST_NOEXCEPT : px( p ), pn( r.pn )
+    shared_ptr( shared_ptr<Y> const & r, element_type * p ) NDNBOOST_NOEXCEPT : px( p ), pn( r.pn )
     {
     }
 
-#ifndef BOOST_NO_AUTO_PTR
+#ifndef NDNBOOST_NO_AUTO_PTR
 
     template<class Y>
     explicit shared_ptr( std::auto_ptr<Y> & r ): px(r.get()), pn()
@@ -453,7 +453,7 @@
         ndnboost::detail::sp_deleter_construct( this, tmp );
     }
 
-#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES )
+#if !defined( NDNBOOST_NO_CXX11_RVALUE_REFERENCES )
 
     template<class Y>
     shared_ptr( std::auto_ptr<Y> && r ): px(r.get()), pn()
@@ -466,7 +466,7 @@
         ndnboost::detail::sp_deleter_construct( this, tmp );
     }
 
-#elif !defined( BOOST_NO_SFINAE ) && !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
+#elif !defined( NDNBOOST_NO_SFINAE ) && !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
 
     template<class Ap>
     explicit shared_ptr( Ap r, typename ndnboost::detail::sp_enable_if_auto_ptr<Ap, int>::type = 0 ): px( r.get() ), pn()
@@ -481,11 +481,11 @@
         ndnboost::detail::sp_deleter_construct( this, tmp );
     }
 
-#endif // BOOST_NO_SFINAE, BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // NDNBOOST_NO_SFINAE, NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
-#endif // BOOST_NO_AUTO_PTR
+#endif // NDNBOOST_NO_AUTO_PTR
 
-#if !defined( BOOST_NO_CXX11_SMART_PTR ) && !defined( BOOST_NO_CXX11_RVALUE_REFERENCES )
+#if !defined( NDNBOOST_NO_CXX11_SMART_PTR ) && !defined( NDNBOOST_NO_CXX11_RVALUE_REFERENCES )
 
     template< class Y, class D >
     shared_ptr( std::unique_ptr< Y, D > && r ): px( r.get() ), pn()
@@ -502,16 +502,16 @@
 
     // assignment
 
-    shared_ptr & operator=( shared_ptr const & r ) BOOST_NOEXCEPT
+    shared_ptr & operator=( shared_ptr const & r ) NDNBOOST_NOEXCEPT
     {
         this_type(r).swap(*this);
         return *this;
     }
 
-#if !defined(BOOST_MSVC) || (BOOST_MSVC >= 1400)
+#if !defined(NDNBOOST_MSVC) || (NDNBOOST_MSVC >= 1400)
 
     template<class Y>
-    shared_ptr & operator=(shared_ptr<Y> const & r) BOOST_NOEXCEPT
+    shared_ptr & operator=(shared_ptr<Y> const & r) NDNBOOST_NOEXCEPT
     {
         this_type(r).swap(*this);
         return *this;
@@ -519,7 +519,7 @@
 
 #endif
 
-#ifndef BOOST_NO_AUTO_PTR
+#ifndef NDNBOOST_NO_AUTO_PTR
 
     template<class Y>
     shared_ptr & operator=( std::auto_ptr<Y> & r )
@@ -528,7 +528,7 @@
         return *this;
     }
 
-#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES )
+#if !defined( NDNBOOST_NO_CXX11_RVALUE_REFERENCES )
 
     template<class Y>
     shared_ptr & operator=( std::auto_ptr<Y> && r )
@@ -537,7 +537,7 @@
         return *this;
     }
 
-#elif !defined( BOOST_NO_SFINAE ) && !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
+#elif !defined( NDNBOOST_NO_SFINAE ) && !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
 
     template<class Ap>
     typename ndnboost::detail::sp_enable_if_auto_ptr< Ap, shared_ptr & >::type operator=( Ap r )
@@ -546,11 +546,11 @@
         return *this;
     }
 
-#endif // BOOST_NO_SFINAE, BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // NDNBOOST_NO_SFINAE, NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
-#endif // BOOST_NO_AUTO_PTR
+#endif // NDNBOOST_NO_AUTO_PTR
 
-#if !defined( BOOST_NO_CXX11_SMART_PTR ) && !defined( BOOST_NO_CXX11_RVALUE_REFERENCES )
+#if !defined( NDNBOOST_NO_CXX11_SMART_PTR ) && !defined( NDNBOOST_NO_CXX11_RVALUE_REFERENCES )
 
     template<class Y, class D>
     shared_ptr & operator=( std::unique_ptr<Y, D> && r )
@@ -563,16 +563,16 @@
 
 // Move support
 
-#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES )
+#if !defined( NDNBOOST_NO_CXX11_RVALUE_REFERENCES )
 
-    shared_ptr( shared_ptr && r ) BOOST_NOEXCEPT : px( r.px ), pn()
+    shared_ptr( shared_ptr && r ) NDNBOOST_NOEXCEPT : px( r.px ), pn()
     {
         pn.swap( r.pn );
         r.px = 0;
     }
 
     template<class Y>
-#if !defined( BOOST_SP_NO_SP_CONVERTIBLE )
+#if !defined( NDNBOOST_SP_NO_SP_CONVERTIBLE )
 
     shared_ptr( shared_ptr<Y> && r, typename ndnboost::detail::sp_enable_if_convertible<Y,T>::type = ndnboost::detail::sp_empty() )
 
@@ -581,7 +581,7 @@
     shared_ptr( shared_ptr<Y> && r )
 
 #endif
-    BOOST_NOEXCEPT : px( r.px ), pn()
+    NDNBOOST_NOEXCEPT : px( r.px ), pn()
     {
         ndnboost::detail::sp_assert_convertible< Y, T >();
 
@@ -589,14 +589,14 @@
         r.px = 0;
     }
 
-    shared_ptr & operator=( shared_ptr && r ) BOOST_NOEXCEPT
+    shared_ptr & operator=( shared_ptr && r ) NDNBOOST_NOEXCEPT
     {
         this_type( static_cast< shared_ptr && >( r ) ).swap( *this );
         return *this;
     }
 
     template<class Y>
-    shared_ptr & operator=( shared_ptr<Y> && r ) BOOST_NOEXCEPT
+    shared_ptr & operator=( shared_ptr<Y> && r ) NDNBOOST_NOEXCEPT
     {
         this_type( static_cast< shared_ptr<Y> && >( r ) ).swap( *this );
         return *this;
@@ -604,9 +604,9 @@
 
 #endif
 
-#if !defined( BOOST_NO_CXX11_NULLPTR )
+#if !defined( NDNBOOST_NO_CXX11_NULLPTR )
 
-    shared_ptr & operator=( ndnboost::detail::sp_nullptr_t ) BOOST_NOEXCEPT // never throws
+    shared_ptr & operator=( ndnboost::detail::sp_nullptr_t ) NDNBOOST_NOEXCEPT // never throws
     {
         this_type().swap(*this);
         return *this;
@@ -614,14 +614,14 @@
 
 #endif
 
-    void reset() BOOST_NOEXCEPT // never throws in 1.30+
+    void reset() NDNBOOST_NOEXCEPT // never throws in 1.30+
     {
         this_type().swap(*this);
     }
 
     template<class Y> void reset( Y * p ) // Y must be complete
     {
-        BOOST_ASSERT( p == 0 || p != px ); // catch self-reset errors
+        NDNBOOST_ASSERT( p == 0 || p != px ); // catch self-reset errors
         this_type( p ).swap( *this );
     }
 
@@ -640,30 +640,30 @@
         this_type( r, p ).swap( *this );
     }
     
-    // never throws (but has a BOOST_ASSERT in it, so not marked with BOOST_NOEXCEPT)
+    // never throws (but has a NDNBOOST_ASSERT in it, so not marked with NDNBOOST_NOEXCEPT)
     typename ndnboost::detail::sp_dereference< T >::type operator* () const
     {
-        BOOST_ASSERT( px != 0 );
+        NDNBOOST_ASSERT( px != 0 );
         return *px;
     }
     
-    // never throws (but has a BOOST_ASSERT in it, so not marked with BOOST_NOEXCEPT)
+    // never throws (but has a NDNBOOST_ASSERT in it, so not marked with NDNBOOST_NOEXCEPT)
     typename ndnboost::detail::sp_member_access< T >::type operator-> () const 
     {
-        BOOST_ASSERT( px != 0 );
+        NDNBOOST_ASSERT( px != 0 );
         return px;
     }
     
-    // never throws (but has a BOOST_ASSERT in it, so not marked with BOOST_NOEXCEPT)
+    // never throws (but has a NDNBOOST_ASSERT in it, so not marked with NDNBOOST_NOEXCEPT)
     typename ndnboost::detail::sp_array_access< T >::type operator[] ( std::ptrdiff_t i ) const
     {
-        BOOST_ASSERT( px != 0 );
-        BOOST_ASSERT( i >= 0 && ( i < ndnboost::detail::sp_extent< T >::value || ndnboost::detail::sp_extent< T >::value == 0 ) );
+        NDNBOOST_ASSERT( px != 0 );
+        NDNBOOST_ASSERT( i >= 0 && ( i < ndnboost::detail::sp_extent< T >::value || ndnboost::detail::sp_extent< T >::value == 0 ) );
 
         return px[ i ];
     }
 
-    element_type * get() const BOOST_NOEXCEPT
+    element_type * get() const NDNBOOST_NOEXCEPT
     {
         return px;
     }
@@ -671,43 +671,43 @@
 // implicit conversion to "bool"
 #include <ndnboost/smart_ptr/detail/operator_bool.hpp>
 
-    bool unique() const BOOST_NOEXCEPT
+    bool unique() const NDNBOOST_NOEXCEPT
     {
         return pn.unique();
     }
 
-    long use_count() const BOOST_NOEXCEPT
+    long use_count() const NDNBOOST_NOEXCEPT
     {
         return pn.use_count();
     }
 
-    void swap( shared_ptr & other ) BOOST_NOEXCEPT
+    void swap( shared_ptr & other ) NDNBOOST_NOEXCEPT
     {
         std::swap(px, other.px);
         pn.swap(other.pn);
     }
 
-    template<class Y> bool owner_before( shared_ptr<Y> const & rhs ) const BOOST_NOEXCEPT
+    template<class Y> bool owner_before( shared_ptr<Y> const & rhs ) const NDNBOOST_NOEXCEPT
     {
         return pn < rhs.pn;
     }
 
-    template<class Y> bool owner_before( weak_ptr<Y> const & rhs ) const BOOST_NOEXCEPT
+    template<class Y> bool owner_before( weak_ptr<Y> const & rhs ) const NDNBOOST_NOEXCEPT
     {
         return pn < rhs.pn;
     }
 
-    void * _internal_get_deleter( ndnboost::detail::sp_typeinfo const & ti ) const BOOST_NOEXCEPT
+    void * _internal_get_deleter( ndnboost::detail::sp_typeinfo const & ti ) const NDNBOOST_NOEXCEPT
     {
         return pn.get_deleter( ti );
     }
 
-    void * _internal_get_untyped_deleter() const BOOST_NOEXCEPT
+    void * _internal_get_untyped_deleter() const NDNBOOST_NOEXCEPT
     {
         return pn.get_untyped_deleter();
     }
 
-    bool _internal_equiv( shared_ptr const & r ) const BOOST_NOEXCEPT
+    bool _internal_equiv( shared_ptr const & r ) const NDNBOOST_NOEXCEPT
     {
         return px == r.px && pn == r.pn;
     }
@@ -715,7 +715,7 @@
 // Tasteless as this may seem, making all members public allows member templates
 // to work in the absence of member template friends. (Matthew Langston)
 
-#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
+#ifndef NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS
 
 private:
 
@@ -730,12 +730,12 @@
 
 };  // shared_ptr
 
-template<class T, class U> inline bool operator==(shared_ptr<T> const & a, shared_ptr<U> const & b) BOOST_NOEXCEPT
+template<class T, class U> inline bool operator==(shared_ptr<T> const & a, shared_ptr<U> const & b) NDNBOOST_NOEXCEPT
 {
     return a.get() == b.get();
 }
 
-template<class T, class U> inline bool operator!=(shared_ptr<T> const & a, shared_ptr<U> const & b) BOOST_NOEXCEPT
+template<class T, class U> inline bool operator!=(shared_ptr<T> const & a, shared_ptr<U> const & b) NDNBOOST_NOEXCEPT
 {
     return a.get() != b.get();
 }
@@ -744,48 +744,48 @@
 
 // Resolve the ambiguity between our op!= and the one in rel_ops
 
-template<class T> inline bool operator!=(shared_ptr<T> const & a, shared_ptr<T> const & b) BOOST_NOEXCEPT
+template<class T> inline bool operator!=(shared_ptr<T> const & a, shared_ptr<T> const & b) NDNBOOST_NOEXCEPT
 {
     return a.get() != b.get();
 }
 
 #endif
 
-#if !defined( BOOST_NO_CXX11_NULLPTR )
+#if !defined( NDNBOOST_NO_CXX11_NULLPTR )
 
-template<class T> inline bool operator==( shared_ptr<T> const & p, ndnboost::detail::sp_nullptr_t ) BOOST_NOEXCEPT
+template<class T> inline bool operator==( shared_ptr<T> const & p, ndnboost::detail::sp_nullptr_t ) NDNBOOST_NOEXCEPT
 {
     return p.get() == 0;
 }
 
-template<class T> inline bool operator==( ndnboost::detail::sp_nullptr_t, shared_ptr<T> const & p ) BOOST_NOEXCEPT
+template<class T> inline bool operator==( ndnboost::detail::sp_nullptr_t, shared_ptr<T> const & p ) NDNBOOST_NOEXCEPT
 {
     return p.get() == 0;
 }
 
-template<class T> inline bool operator!=( shared_ptr<T> const & p, ndnboost::detail::sp_nullptr_t ) BOOST_NOEXCEPT
+template<class T> inline bool operator!=( shared_ptr<T> const & p, ndnboost::detail::sp_nullptr_t ) NDNBOOST_NOEXCEPT
 {
     return p.get() != 0;
 }
 
-template<class T> inline bool operator!=( ndnboost::detail::sp_nullptr_t, shared_ptr<T> const & p ) BOOST_NOEXCEPT
+template<class T> inline bool operator!=( ndnboost::detail::sp_nullptr_t, shared_ptr<T> const & p ) NDNBOOST_NOEXCEPT
 {
     return p.get() != 0;
 }
 
 #endif
 
-template<class T, class U> inline bool operator<(shared_ptr<T> const & a, shared_ptr<U> const & b) BOOST_NOEXCEPT
+template<class T, class U> inline bool operator<(shared_ptr<T> const & a, shared_ptr<U> const & b) NDNBOOST_NOEXCEPT
 {
     return a.owner_before( b );
 }
 
-template<class T> inline void swap(shared_ptr<T> & a, shared_ptr<T> & b) BOOST_NOEXCEPT
+template<class T> inline void swap(shared_ptr<T> & a, shared_ptr<T> & b) NDNBOOST_NOEXCEPT
 {
     a.swap(b);
 }
 
-template<class T, class U> shared_ptr<T> static_pointer_cast( shared_ptr<U> const & r ) BOOST_NOEXCEPT
+template<class T, class U> shared_ptr<T> static_pointer_cast( shared_ptr<U> const & r ) NDNBOOST_NOEXCEPT
 {
     (void) static_cast< T* >( static_cast< U* >( 0 ) );
 
@@ -795,7 +795,7 @@
     return shared_ptr<T>( r, p );
 }
 
-template<class T, class U> shared_ptr<T> const_pointer_cast( shared_ptr<U> const & r ) BOOST_NOEXCEPT
+template<class T, class U> shared_ptr<T> const_pointer_cast( shared_ptr<U> const & r ) NDNBOOST_NOEXCEPT
 {
     (void) const_cast< T* >( static_cast< U* >( 0 ) );
 
@@ -805,7 +805,7 @@
     return shared_ptr<T>( r, p );
 }
 
-template<class T, class U> shared_ptr<T> dynamic_pointer_cast( shared_ptr<U> const & r ) BOOST_NOEXCEPT
+template<class T, class U> shared_ptr<T> dynamic_pointer_cast( shared_ptr<U> const & r ) NDNBOOST_NOEXCEPT
 {
     (void) dynamic_cast< T* >( static_cast< U* >( 0 ) );
 
@@ -815,7 +815,7 @@
     return p? shared_ptr<T>( r, p ): shared_ptr<T>();
 }
 
-template<class T, class U> shared_ptr<T> reinterpret_pointer_cast( shared_ptr<U> const & r ) BOOST_NOEXCEPT
+template<class T, class U> shared_ptr<T> reinterpret_pointer_cast( shared_ptr<U> const & r ) NDNBOOST_NOEXCEPT
 {
     (void) reinterpret_cast< T* >( static_cast< U* >( 0 ) );
 
@@ -827,16 +827,16 @@
 
 // get_pointer() enables ndnboost::mem_fn to recognize shared_ptr
 
-template<class T> inline typename shared_ptr<T>::element_type * get_pointer(shared_ptr<T> const & p) BOOST_NOEXCEPT
+template<class T> inline typename shared_ptr<T>::element_type * get_pointer(shared_ptr<T> const & p) NDNBOOST_NOEXCEPT
 {
     return p.get();
 }
 
 // operator<<
 
-#if !defined(BOOST_NO_IOSTREAM)
+#if !defined(NDNBOOST_NO_IOSTREAM)
 
-#if defined(BOOST_NO_TEMPLATED_IOSTREAMS) || ( defined(__GNUC__) &&  (__GNUC__ < 3) )
+#if defined(NDNBOOST_NO_TEMPLATED_IOSTREAMS) || ( defined(__GNUC__) &&  (__GNUC__ < 3) )
 
 template<class Y> std::ostream & operator<< (std::ostream & os, shared_ptr<Y> const & p)
 {
@@ -849,7 +849,7 @@
 // in STLport's no-iostreams mode no iostream symbols can be used
 #ifndef _STLP_NO_IOSTREAMS
 
-# if defined(BOOST_MSVC) && BOOST_WORKAROUND(BOOST_MSVC, < 1300 && __SGI_STL_PORT)
+# if defined(NDNBOOST_MSVC) && NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300 && __SGI_STL_PORT)
 // MSVC6 has problems finding std::basic_ostream through the using declaration in namespace _STL
 using std::basic_ostream;
 template<class E, class T, class Y> basic_ostream<E, T> & operator<< (basic_ostream<E, T> & os, shared_ptr<Y> const & p)
@@ -865,31 +865,31 @@
 
 #endif // __GNUC__ < 3
 
-#endif // !defined(BOOST_NO_IOSTREAM)
+#endif // !defined(NDNBOOST_NO_IOSTREAM)
 
 // get_deleter
 
 namespace detail
 {
 
-#if ( defined(__GNUC__) && BOOST_WORKAROUND(__GNUC__, < 3) ) || \
-    ( defined(__EDG_VERSION__) && BOOST_WORKAROUND(__EDG_VERSION__, <= 238) ) || \
-    ( defined(__HP_aCC) && BOOST_WORKAROUND(__HP_aCC, <= 33500) )
+#if ( defined(__GNUC__) && NDNBOOST_WORKAROUND(__GNUC__, < 3) ) || \
+    ( defined(__EDG_VERSION__) && NDNBOOST_WORKAROUND(__EDG_VERSION__, <= 238) ) || \
+    ( defined(__HP_aCC) && NDNBOOST_WORKAROUND(__HP_aCC, <= 33500) )
 
 // g++ 2.9x doesn't allow static_cast<X const *>(void *)
 // apparently EDG 2.38 and HP aCC A.03.35 also don't accept it
 
 template<class D, class T> D * basic_get_deleter(shared_ptr<T> const & p)
 {
-    void const * q = p._internal_get_deleter(BOOST_SP_TYPEID(D));
+    void const * q = p._internal_get_deleter(NDNBOOST_SP_TYPEID(D));
     return const_cast<D *>(static_cast<D const *>(q));
 }
 
 #else
 
-template<class D, class T> D * basic_get_deleter( shared_ptr<T> const & p ) BOOST_NOEXCEPT
+template<class D, class T> D * basic_get_deleter( shared_ptr<T> const & p ) NDNBOOST_NOEXCEPT
 {
-    return static_cast<D *>( p._internal_get_deleter(BOOST_SP_TYPEID(D)) );
+    return static_cast<D *>( p._internal_get_deleter(NDNBOOST_SP_TYPEID(D)) );
 }
 
 #endif
@@ -911,21 +911,21 @@
         deleter_ = deleter;
     }
 
-    template<typename D> D* get_deleter() const BOOST_NOEXCEPT
+    template<typename D> D* get_deleter() const NDNBOOST_NOEXCEPT
     {
         return ndnboost::detail::basic_get_deleter<D>( deleter_ );
     }
 
     template< class T> void operator()( T* )
     {
-        BOOST_ASSERT( deleter_.use_count() <= 1 );
+        NDNBOOST_ASSERT( deleter_.use_count() <= 1 );
         deleter_.reset();
     }
 };
 
 } // namespace detail
 
-template<class D, class T> D * get_deleter( shared_ptr<T> const & p ) BOOST_NOEXCEPT
+template<class D, class T> D * get_deleter( shared_ptr<T> const & p ) NDNBOOST_NOEXCEPT
 {
     D *del = ndnboost::detail::basic_get_deleter<D>(p);
 
@@ -942,9 +942,9 @@
 
 // atomic access
 
-#if !defined(BOOST_SP_NO_ATOMIC_ACCESS)
+#if !defined(NDNBOOST_SP_NO_ATOMIC_ACCESS)
 
-template<class T> inline bool atomic_is_lock_free( shared_ptr<T> const * /*p*/ ) BOOST_NOEXCEPT
+template<class T> inline bool atomic_is_lock_free( shared_ptr<T> const * /*p*/ ) NDNBOOST_NOEXCEPT
 {
     return false;
 }
@@ -1017,19 +1017,19 @@
     return atomic_compare_exchange( p, v, w ); // std::move( w )
 }
 
-#endif // !defined(BOOST_SP_NO_ATOMIC_ACCESS)
+#endif // !defined(NDNBOOST_SP_NO_ATOMIC_ACCESS)
 
 // hash_value
 
 template< class T > struct hash;
 
-template< class T > std::size_t hash_value( ndnboost::shared_ptr<T> const & p ) BOOST_NOEXCEPT
+template< class T > std::size_t hash_value( ndnboost::shared_ptr<T> const & p ) NDNBOOST_NOEXCEPT
 {
     return ndnboost::hash< T* >()( p.get() );
 }
 
 } // namespace ndnboost
 
-#endif  // #if defined(BOOST_NO_MEMBER_TEMPLATES) && !defined(BOOST_MSVC6_MEMBER_TEMPLATES)
+#endif  // #if defined(NDNBOOST_NO_MEMBER_TEMPLATES) && !defined(NDNBOOST_MSVC6_MEMBER_TEMPLATES)
 
-#endif  // #ifndef BOOST_SMART_PTR_SHARED_PTR_HPP_INCLUDED
+#endif  // #ifndef NDNBOOST_SMART_PTR_SHARED_PTR_HPP_INCLUDED
diff --git a/include/ndnboost/smart_ptr/weak_ptr.hpp b/include/ndnboost/smart_ptr/weak_ptr.hpp
index 0e268a8..08fc4bd 100644
--- a/include/ndnboost/smart_ptr/weak_ptr.hpp
+++ b/include/ndnboost/smart_ptr/weak_ptr.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_SMART_PTR_WEAK_PTR_HPP_INCLUDED
-#define BOOST_SMART_PTR_WEAK_PTR_HPP_INCLUDED
+#ifndef NDNBOOST_SMART_PTR_WEAK_PTR_HPP_INCLUDED
+#define NDNBOOST_SMART_PTR_WEAK_PTR_HPP_INCLUDED
 
 //
 //  weak_ptr.hpp
@@ -31,21 +31,21 @@
 
     typedef typename ndnboost::detail::sp_element< T >::type element_type;
 
-    weak_ptr() BOOST_NOEXCEPT : px(0), pn() // never throws in 1.30+
+    weak_ptr() NDNBOOST_NOEXCEPT : px(0), pn() // never throws in 1.30+
     {
     }
 
 //  generated copy constructor, assignment, destructor are fine...
 
-#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES )
+#if !defined( NDNBOOST_NO_CXX11_RVALUE_REFERENCES )
 
 // ... except in C++0x, move disables the implicit copy
 
-    weak_ptr( weak_ptr const & r ) BOOST_NOEXCEPT : px( r.px ), pn( r.pn )
+    weak_ptr( weak_ptr const & r ) NDNBOOST_NOEXCEPT : px( r.px ), pn( r.pn )
     {
     }
 
-    weak_ptr & operator=( weak_ptr const & r ) BOOST_NOEXCEPT
+    weak_ptr & operator=( weak_ptr const & r ) NDNBOOST_NOEXCEPT
     {
         px = r.px;
         pn = r.pn;
@@ -72,7 +72,7 @@
 //
 
     template<class Y>
-#if !defined( BOOST_SP_NO_SP_CONVERTIBLE )
+#if !defined( NDNBOOST_SP_NO_SP_CONVERTIBLE )
 
     weak_ptr( weak_ptr<Y> const & r, typename ndnboost::detail::sp_enable_if_convertible<Y,T>::type = ndnboost::detail::sp_empty() )
 
@@ -81,15 +81,15 @@
     weak_ptr( weak_ptr<Y> const & r )
 
 #endif
-    BOOST_NOEXCEPT : px(r.lock().get()), pn(r.pn)
+    NDNBOOST_NOEXCEPT : px(r.lock().get()), pn(r.pn)
     {
         ndnboost::detail::sp_assert_convertible< Y, T >();
     }
 
-#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES )
+#if !defined( NDNBOOST_NO_CXX11_RVALUE_REFERENCES )
 
     template<class Y>
-#if !defined( BOOST_SP_NO_SP_CONVERTIBLE )
+#if !defined( NDNBOOST_SP_NO_SP_CONVERTIBLE )
 
     weak_ptr( weak_ptr<Y> && r, typename ndnboost::detail::sp_enable_if_convertible<Y,T>::type = ndnboost::detail::sp_empty() )
 
@@ -98,7 +98,7 @@
     weak_ptr( weak_ptr<Y> && r )
 
 #endif
-    BOOST_NOEXCEPT : px( r.lock().get() ), pn( static_cast< ndnboost::detail::weak_count && >( r.pn ) )
+    NDNBOOST_NOEXCEPT : px( r.lock().get() ), pn( static_cast< ndnboost::detail::weak_count && >( r.pn ) )
     {
         ndnboost::detail::sp_assert_convertible< Y, T >();
         r.px = 0;
@@ -106,13 +106,13 @@
 
     // for better efficiency in the T == Y case
     weak_ptr( weak_ptr && r )
-    BOOST_NOEXCEPT : px( r.px ), pn( static_cast< ndnboost::detail::weak_count && >( r.pn ) )
+    NDNBOOST_NOEXCEPT : px( r.px ), pn( static_cast< ndnboost::detail::weak_count && >( r.pn ) )
     {
         r.px = 0;
     }
 
     // for better efficiency in the T == Y case
-    weak_ptr & operator=( weak_ptr && r ) BOOST_NOEXCEPT
+    weak_ptr & operator=( weak_ptr && r ) NDNBOOST_NOEXCEPT
     {
         this_type( static_cast< weak_ptr && >( r ) ).swap( *this );
         return *this;
@@ -122,7 +122,7 @@
 #endif
 
     template<class Y>
-#if !defined( BOOST_SP_NO_SP_CONVERTIBLE )
+#if !defined( NDNBOOST_SP_NO_SP_CONVERTIBLE )
 
     weak_ptr( shared_ptr<Y> const & r, typename ndnboost::detail::sp_enable_if_convertible<Y,T>::type = ndnboost::detail::sp_empty() )
 
@@ -131,15 +131,15 @@
     weak_ptr( shared_ptr<Y> const & r )
 
 #endif
-    BOOST_NOEXCEPT : px( r.px ), pn( r.pn )
+    NDNBOOST_NOEXCEPT : px( r.px ), pn( r.pn )
     {
         ndnboost::detail::sp_assert_convertible< Y, T >();
     }
 
-#if !defined(BOOST_MSVC) || (BOOST_MSVC >= 1300)
+#if !defined(NDNBOOST_MSVC) || (NDNBOOST_MSVC >= 1300)
 
     template<class Y>
-    weak_ptr & operator=( weak_ptr<Y> const & r ) BOOST_NOEXCEPT
+    weak_ptr & operator=( weak_ptr<Y> const & r ) NDNBOOST_NOEXCEPT
     {
         ndnboost::detail::sp_assert_convertible< Y, T >();
 
@@ -149,10 +149,10 @@
         return *this;
     }
 
-#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES )
+#if !defined( NDNBOOST_NO_CXX11_RVALUE_REFERENCES )
 
     template<class Y>
-    weak_ptr & operator=( weak_ptr<Y> && r ) BOOST_NOEXCEPT
+    weak_ptr & operator=( weak_ptr<Y> && r ) NDNBOOST_NOEXCEPT
     {
         this_type( static_cast< weak_ptr<Y> && >( r ) ).swap( *this );
         return *this;
@@ -161,7 +161,7 @@
 #endif
 
     template<class Y>
-    weak_ptr & operator=( shared_ptr<Y> const & r ) BOOST_NOEXCEPT
+    weak_ptr & operator=( shared_ptr<Y> const & r ) NDNBOOST_NOEXCEPT
     {
         ndnboost::detail::sp_assert_convertible< Y, T >();
 
@@ -173,17 +173,17 @@
 
 #endif
 
-    shared_ptr<T> lock() const BOOST_NOEXCEPT
+    shared_ptr<T> lock() const NDNBOOST_NOEXCEPT
     {
         return shared_ptr<T>( *this, ndnboost::detail::sp_nothrow_tag() );
     }
 
-    long use_count() const BOOST_NOEXCEPT
+    long use_count() const NDNBOOST_NOEXCEPT
     {
         return pn.use_count();
     }
 
-    bool expired() const BOOST_NOEXCEPT
+    bool expired() const NDNBOOST_NOEXCEPT
     {
         return pn.use_count() == 0;
     }
@@ -193,12 +193,12 @@
         return pn.empty();
     }
 
-    void reset() BOOST_NOEXCEPT // never throws in 1.30+
+    void reset() NDNBOOST_NOEXCEPT // never throws in 1.30+
     {
         this_type().swap(*this);
     }
 
-    void swap(this_type & other) BOOST_NOEXCEPT
+    void swap(this_type & other) NDNBOOST_NOEXCEPT
     {
         std::swap(px, other.px);
         pn.swap(other.pn);
@@ -211,12 +211,12 @@
         pn = r.pn;
     }
 
-    template<class Y> bool owner_before( weak_ptr<Y> const & rhs ) const BOOST_NOEXCEPT
+    template<class Y> bool owner_before( weak_ptr<Y> const & rhs ) const NDNBOOST_NOEXCEPT
     {
         return pn < rhs.pn;
     }
 
-    template<class Y> bool owner_before( shared_ptr<Y> const & rhs ) const BOOST_NOEXCEPT
+    template<class Y> bool owner_before( shared_ptr<Y> const & rhs ) const NDNBOOST_NOEXCEPT
     {
         return pn < rhs.pn;
     }
@@ -224,7 +224,7 @@
 // Tasteless as this may seem, making all members public allows member templates
 // to work in the absence of member template friends. (Matthew Langston)
 
-#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
+#ifndef NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS
 
 private:
 
@@ -238,16 +238,16 @@
 
 };  // weak_ptr
 
-template<class T, class U> inline bool operator<(weak_ptr<T> const & a, weak_ptr<U> const & b) BOOST_NOEXCEPT
+template<class T, class U> inline bool operator<(weak_ptr<T> const & a, weak_ptr<U> const & b) NDNBOOST_NOEXCEPT
 {
     return a.owner_before( b );
 }
 
-template<class T> void swap(weak_ptr<T> & a, weak_ptr<T> & b) BOOST_NOEXCEPT
+template<class T> void swap(weak_ptr<T> & a, weak_ptr<T> & b) NDNBOOST_NOEXCEPT
 {
     a.swap(b);
 }
 
 } // namespace ndnboost
 
-#endif  // #ifndef BOOST_SMART_PTR_WEAK_PTR_HPP_INCLUDED
+#endif  // #ifndef NDNBOOST_SMART_PTR_WEAK_PTR_HPP_INCLUDED
diff --git a/include/ndnboost/static_assert.hpp b/include/ndnboost/static_assert.hpp
index c85cb2b..f815028 100644
--- a/include/ndnboost/static_assert.hpp
+++ b/include/ndnboost/static_assert.hpp
@@ -11,8 +11,8 @@
       Initial version.
 */
 
-#ifndef BOOST_STATIC_ASSERT_HPP
-#define BOOST_STATIC_ASSERT_HPP
+#ifndef NDNBOOST_STATIC_ASSERT_HPP
+#define NDNBOOST_STATIC_ASSERT_HPP
 
 #include <ndnboost/config.hpp>
 #include <ndnboost/detail/workaround.hpp>
@@ -26,25 +26,25 @@
 #pragma GCC system_header
 #endif
 
-#ifndef BOOST_NO_CXX11_STATIC_ASSERT
-#  ifndef BOOST_NO_CXX11_VARIADIC_MACROS
-#     define BOOST_STATIC_ASSERT_MSG( ... ) static_assert(__VA_ARGS__)
+#ifndef NDNBOOST_NO_CXX11_STATIC_ASSERT
+#  ifndef NDNBOOST_NO_CXX11_VARIADIC_MACROS
+#     define NDNBOOST_STATIC_ASSERT_MSG( ... ) static_assert(__VA_ARGS__)
 #  else
-#     define BOOST_STATIC_ASSERT_MSG( B, Msg ) BOOST_STATIC_ASSERT( B )
+#     define NDNBOOST_STATIC_ASSERT_MSG( B, Msg ) NDNBOOST_STATIC_ASSERT( B )
 #  endif
 #else
-#     define BOOST_STATIC_ASSERT_MSG( B, Msg ) BOOST_STATIC_ASSERT( B )
+#     define NDNBOOST_STATIC_ASSERT_MSG( B, Msg ) NDNBOOST_STATIC_ASSERT( B )
 #endif
 
 #ifdef __BORLANDC__
 //
 // workaround for buggy integral-constant expression support:
-#define BOOST_BUGGY_INTEGRAL_CONSTANT_EXPRESSIONS
+#define NDNBOOST_BUGGY_INTEGRAL_CONSTANT_EXPRESSIONS
 #endif
 
 #if defined(__GNUC__) && (__GNUC__ == 3) && ((__GNUC_MINOR__ == 3) || (__GNUC_MINOR__ == 4))
 // gcc 3.3 and 3.4 don't produce good error messages with the default version:
-#  define BOOST_SA_GCC_WORKAROUND
+#  define NDNBOOST_SA_GCC_WORKAROUND
 #endif
 
 //
@@ -52,32 +52,32 @@
 // then enable this:
 //
 #if defined(__GNUC__) && ((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 4)))
-#  ifndef BOOST_NO_CXX11_VARIADIC_MACROS
-#     define BOOST_STATIC_ASSERT_BOOL_CAST( ... ) ((__VA_ARGS__) == 0 ? false : true)
+#  ifndef NDNBOOST_NO_CXX11_VARIADIC_MACROS
+#     define NDNBOOST_STATIC_ASSERT_BOOL_CAST( ... ) ((__VA_ARGS__) == 0 ? false : true)
 #  else
-#     define BOOST_STATIC_ASSERT_BOOL_CAST( x ) ((x) == 0 ? false : true)
+#     define NDNBOOST_STATIC_ASSERT_BOOL_CAST( x ) ((x) == 0 ? false : true)
 #  endif
 #else
-#  ifndef BOOST_NO_CXX11_VARIADIC_MACROS
-#     define BOOST_STATIC_ASSERT_BOOL_CAST( ... ) (bool)(__VA_ARGS__)
+#  ifndef NDNBOOST_NO_CXX11_VARIADIC_MACROS
+#     define NDNBOOST_STATIC_ASSERT_BOOL_CAST( ... ) (bool)(__VA_ARGS__)
 #  else
-#     define BOOST_STATIC_ASSERT_BOOL_CAST(x) (bool)(x)
+#     define NDNBOOST_STATIC_ASSERT_BOOL_CAST(x) (bool)(x)
 #  endif
 #endif
 //
 // If the compiler warns about unused typedefs then enable this:
 //
 #if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)))
-#  define BOOST_STATIC_ASSERT_UNUSED_ATTRIBUTE __attribute__((unused))
+#  define NDNBOOST_STATIC_ASSERT_UNUSED_ATTRIBUTE __attribute__((unused))
 #else
-#  define BOOST_STATIC_ASSERT_UNUSED_ATTRIBUTE
+#  define NDNBOOST_STATIC_ASSERT_UNUSED_ATTRIBUTE
 #endif
 
-#ifndef BOOST_NO_CXX11_STATIC_ASSERT
-#  ifndef BOOST_NO_CXX11_VARIADIC_MACROS
-#     define BOOST_STATIC_ASSERT( ... ) static_assert(__VA_ARGS__, #__VA_ARGS__)
+#ifndef NDNBOOST_NO_CXX11_STATIC_ASSERT
+#  ifndef NDNBOOST_NO_CXX11_VARIADIC_MACROS
+#     define NDNBOOST_STATIC_ASSERT( ... ) static_assert(__VA_ARGS__, #__VA_ARGS__)
 #  else
-#     define BOOST_STATIC_ASSERT( B ) static_assert(B, #B)
+#     define NDNBOOST_STATIC_ASSERT( B ) static_assert(B, #B)
 #  endif
 #else
 
@@ -101,7 +101,7 @@
 // both are described as declarations [7.1.3] and [7.2] in the standard,
 // however some compilers use "delayed evaluation" of one or more of
 // these when implicitly instantiating templates.  We use typedef declarations
-// by default, but try defining BOOST_USE_ENUM_STATIC_ASSERT if the enum
+// by default, but try defining NDNBOOST_USE_ENUM_STATIC_ASSERT if the enum
 // version gets better results from your compiler...
 //
 // Implementation:
@@ -115,81 +115,81 @@
 // style casts: too many compilers currently have problems with static_cast
 // when used inside integral constant expressions.
 //
-#if !defined(BOOST_BUGGY_INTEGRAL_CONSTANT_EXPRESSIONS)
+#if !defined(NDNBOOST_BUGGY_INTEGRAL_CONSTANT_EXPRESSIONS)
 
-#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
+#if defined(NDNBOOST_MSVC) && (NDNBOOST_MSVC < 1300)
 // __LINE__ macro broken when -ZI is used see Q199057
 // fortunately MSVC ignores duplicate typedef's.
-#define BOOST_STATIC_ASSERT( B ) \
+#define NDNBOOST_STATIC_ASSERT( B ) \
    typedef ::ndnboost::static_assert_test<\
       sizeof(::ndnboost::STATIC_ASSERTION_FAILURE< (bool)( B ) >)\
       > boost_static_assert_typedef_
-#elif defined(BOOST_MSVC) && defined(BOOST_NO_CXX11_VARIADIC_MACROS)
-#define BOOST_STATIC_ASSERT( B ) \
+#elif defined(NDNBOOST_MSVC) && defined(NDNBOOST_NO_CXX11_VARIADIC_MACROS)
+#define NDNBOOST_STATIC_ASSERT( B ) \
    typedef ::ndnboost::static_assert_test<\
-      sizeof(::ndnboost::STATIC_ASSERTION_FAILURE< BOOST_STATIC_ASSERT_BOOL_CAST ( B ) >)>\
-         BOOST_JOIN(boost_static_assert_typedef_, __COUNTER__)
-#elif defined(BOOST_MSVC)
-#define BOOST_STATIC_ASSERT(...) \
+      sizeof(::ndnboost::STATIC_ASSERTION_FAILURE< NDNBOOST_STATIC_ASSERT_BOOL_CAST ( B ) >)>\
+         NDNBOOST_JOIN(boost_static_assert_typedef_, __COUNTER__)
+#elif defined(NDNBOOST_MSVC)
+#define NDNBOOST_STATIC_ASSERT(...) \
    typedef ::ndnboost::static_assert_test<\
-      sizeof(::ndnboost::STATIC_ASSERTION_FAILURE< BOOST_STATIC_ASSERT_BOOL_CAST (__VA_ARGS__) >)>\
-         BOOST_JOIN(boost_static_assert_typedef_, __COUNTER__)
-#elif (defined(BOOST_INTEL_CXX_VERSION) || defined(BOOST_SA_GCC_WORKAROUND))  && defined(BOOST_NO_CXX11_VARIADIC_MACROS)
+      sizeof(::ndnboost::STATIC_ASSERTION_FAILURE< NDNBOOST_STATIC_ASSERT_BOOL_CAST (__VA_ARGS__) >)>\
+         NDNBOOST_JOIN(boost_static_assert_typedef_, __COUNTER__)
+#elif (defined(NDNBOOST_INTEL_CXX_VERSION) || defined(NDNBOOST_SA_GCC_WORKAROUND))  && defined(NDNBOOST_NO_CXX11_VARIADIC_MACROS)
 // agurt 15/sep/02: a special care is needed to force Intel C++ issue an error 
 // instead of warning in case of failure
-# define BOOST_STATIC_ASSERT( B ) \
-    typedef char BOOST_JOIN(boost_static_assert_typedef_, __LINE__) \
-        [ ::ndnboost::STATIC_ASSERTION_FAILURE< BOOST_STATIC_ASSERT_BOOL_CAST( B ) >::value ]
-#elif (defined(BOOST_INTEL_CXX_VERSION) || defined(BOOST_SA_GCC_WORKAROUND))  && !defined(BOOST_NO_CXX11_VARIADIC_MACROS)
+# define NDNBOOST_STATIC_ASSERT( B ) \
+    typedef char NDNBOOST_JOIN(boost_static_assert_typedef_, __LINE__) \
+        [ ::ndnboost::STATIC_ASSERTION_FAILURE< NDNBOOST_STATIC_ASSERT_BOOL_CAST( B ) >::value ]
+#elif (defined(NDNBOOST_INTEL_CXX_VERSION) || defined(NDNBOOST_SA_GCC_WORKAROUND))  && !defined(NDNBOOST_NO_CXX11_VARIADIC_MACROS)
 // agurt 15/sep/02: a special care is needed to force Intel C++ issue an error 
 // instead of warning in case of failure
-# define BOOST_STATIC_ASSERT(...) \
-    typedef char BOOST_JOIN(boost_static_assert_typedef_, __LINE__) \
-        [ ::ndnboost::STATIC_ASSERTION_FAILURE< BOOST_STATIC_ASSERT_BOOL_CAST( __VA_ARGS__ ) >::value ]
+# define NDNBOOST_STATIC_ASSERT(...) \
+    typedef char NDNBOOST_JOIN(boost_static_assert_typedef_, __LINE__) \
+        [ ::ndnboost::STATIC_ASSERTION_FAILURE< NDNBOOST_STATIC_ASSERT_BOOL_CAST( __VA_ARGS__ ) >::value ]
 #elif defined(__sgi)
 // special version for SGI MIPSpro compiler
-#define BOOST_STATIC_ASSERT( B ) \
-   BOOST_STATIC_CONSTANT(bool, \
-     BOOST_JOIN(boost_static_assert_test_, __LINE__) = ( B )); \
+#define NDNBOOST_STATIC_ASSERT( B ) \
+   NDNBOOST_STATIC_CONSTANT(bool, \
+     NDNBOOST_JOIN(boost_static_assert_test_, __LINE__) = ( B )); \
    typedef ::ndnboost::static_assert_test<\
      sizeof(::ndnboost::STATIC_ASSERTION_FAILURE< \
-       BOOST_JOIN(boost_static_assert_test_, __LINE__) >)>\
-         BOOST_JOIN(boost_static_assert_typedef_, __LINE__)
-#elif BOOST_WORKAROUND(__MWERKS__, <= 0x3003)
+       NDNBOOST_JOIN(boost_static_assert_test_, __LINE__) >)>\
+         NDNBOOST_JOIN(boost_static_assert_typedef_, __LINE__)
+#elif NDNBOOST_WORKAROUND(__MWERKS__, <= 0x3003)
 // special version for CodeWarrior <= 8.x
-#define BOOST_STATIC_ASSERT( B ) \
-   BOOST_STATIC_CONSTANT(int, \
-     BOOST_JOIN(boost_static_assert_test_, __LINE__) = \
-       sizeof(::ndnboost::STATIC_ASSERTION_FAILURE< BOOST_STATIC_ASSERT_BOOL_CAST( B ) >) )
+#define NDNBOOST_STATIC_ASSERT( B ) \
+   NDNBOOST_STATIC_CONSTANT(int, \
+     NDNBOOST_JOIN(boost_static_assert_test_, __LINE__) = \
+       sizeof(::ndnboost::STATIC_ASSERTION_FAILURE< NDNBOOST_STATIC_ASSERT_BOOL_CAST( B ) >) )
 #else
 // generic version
-#  ifndef BOOST_NO_CXX11_VARIADIC_MACROS
-#     define BOOST_STATIC_ASSERT( ... ) \
+#  ifndef NDNBOOST_NO_CXX11_VARIADIC_MACROS
+#     define NDNBOOST_STATIC_ASSERT( ... ) \
          typedef ::ndnboost::static_assert_test<\
-            sizeof(::ndnboost::STATIC_ASSERTION_FAILURE< BOOST_STATIC_ASSERT_BOOL_CAST( __VA_ARGS__ ) >)>\
-               BOOST_JOIN(boost_static_assert_typedef_, __LINE__) BOOST_STATIC_ASSERT_UNUSED_ATTRIBUTE
+            sizeof(::ndnboost::STATIC_ASSERTION_FAILURE< NDNBOOST_STATIC_ASSERT_BOOL_CAST( __VA_ARGS__ ) >)>\
+               NDNBOOST_JOIN(boost_static_assert_typedef_, __LINE__) NDNBOOST_STATIC_ASSERT_UNUSED_ATTRIBUTE
 #  else
-#     define BOOST_STATIC_ASSERT( B ) \
+#     define NDNBOOST_STATIC_ASSERT( B ) \
          typedef ::ndnboost::static_assert_test<\
-            sizeof(::ndnboost::STATIC_ASSERTION_FAILURE< BOOST_STATIC_ASSERT_BOOL_CAST( B ) >)>\
-               BOOST_JOIN(boost_static_assert_typedef_, __LINE__) BOOST_STATIC_ASSERT_UNUSED_ATTRIBUTE
+            sizeof(::ndnboost::STATIC_ASSERTION_FAILURE< NDNBOOST_STATIC_ASSERT_BOOL_CAST( B ) >)>\
+               NDNBOOST_JOIN(boost_static_assert_typedef_, __LINE__) NDNBOOST_STATIC_ASSERT_UNUSED_ATTRIBUTE
 #  endif
 #endif
 
 #else
 // alternative enum based implementation:
-#  ifndef BOOST_NO_CXX11_VARIADIC_MACROS
-#    define BOOST_STATIC_ASSERT( ... ) \
-         enum { BOOST_JOIN(boost_static_assert_enum_, __LINE__) \
+#  ifndef NDNBOOST_NO_CXX11_VARIADIC_MACROS
+#    define NDNBOOST_STATIC_ASSERT( ... ) \
+         enum { NDNBOOST_JOIN(boost_static_assert_enum_, __LINE__) \
             = sizeof(::ndnboost::STATIC_ASSERTION_FAILURE< (bool)( __VA_ARGS__ ) >) }
 #  else
-#    define BOOST_STATIC_ASSERT(B) \
-         enum { BOOST_JOIN(boost_static_assert_enum_, __LINE__) \
+#    define NDNBOOST_STATIC_ASSERT(B) \
+         enum { NDNBOOST_JOIN(boost_static_assert_enum_, __LINE__) \
             = sizeof(::ndnboost::STATIC_ASSERTION_FAILURE< (bool)( B ) >) }
 #  endif
 #endif
-#endif // defined(BOOST_NO_CXX11_STATIC_ASSERT)
+#endif // defined(NDNBOOST_NO_CXX11_STATIC_ASSERT)
 
-#endif // BOOST_STATIC_ASSERT_HPP
+#endif // NDNBOOST_STATIC_ASSERT_HPP
 
 
diff --git a/include/ndnboost/swap.hpp b/include/ndnboost/swap.hpp
index 875fe8c..c3d3790 100644
--- a/include/ndnboost/swap.hpp
+++ b/include/ndnboost/swap.hpp
@@ -4,8 +4,8 @@
 // accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_SWAP_HPP
-#define BOOST_SWAP_HPP
+#ifndef NDNBOOST_SWAP_HPP
+#define NDNBOOST_SWAP_HPP
 
 #include "ndnboost/utility/swap.hpp"
 
diff --git a/include/ndnboost/test/debug.hpp b/include/ndnboost/test/debug.hpp
index 30d5d30..5536961 100644
--- a/include/ndnboost/test/debug.hpp
+++ b/include/ndnboost/test/debug.hpp
@@ -12,8 +12,8 @@
 //  Description : defines portable debug interfaces
 // ***************************************************************************
 
-#ifndef BOOST_TEST_DEBUG_API_HPP_112006GER
-#define BOOST_TEST_DEBUG_API_HPP_112006GER
+#ifndef NDNBOOST_TEST_DEBUG_API_HPP_112006GER
+#define NDNBOOST_TEST_DEBUG_API_HPP_112006GER
 
 // Boost.Test
 #include <ndnboost/test/detail/config.hpp>
@@ -35,14 +35,14 @@
 // **************  check if program is running under debugger  ************** //
 // ************************************************************************** //
 
-bool BOOST_TEST_DECL under_debugger();
+bool NDNBOOST_TEST_DECL under_debugger();
 
 // ************************************************************************** //
 // **************       cause program to break execution       ************** //
 // **************           in debugger at call point          ************** //
 // ************************************************************************** //
 
-void BOOST_TEST_DECL debugger_break();
+void NDNBOOST_TEST_DECL debugger_break();
 
 // ************************************************************************** //
 // **************              gui debugger setup              ************** //
@@ -62,13 +62,13 @@
 // **************                debugger setup                ************** //
 // ************************************************************************** //
 
-#if BOOST_WORKAROUND( BOOST_MSVC, <1300)
+#if NDNBOOST_WORKAROUND( NDNBOOST_MSVC, <1300)
 
-std::string BOOST_TEST_DECL set_debugger( unit_test::const_string dbg_id );
+std::string NDNBOOST_TEST_DECL set_debugger( unit_test::const_string dbg_id );
 
 #else 
 
-std::string BOOST_TEST_DECL set_debugger( unit_test::const_string dbg_id, dbg_starter s = dbg_starter() );
+std::string NDNBOOST_TEST_DECL set_debugger( unit_test::const_string dbg_id, dbg_starter s = dbg_starter() );
 
 #endif
 
@@ -77,20 +77,20 @@
 // **************    attach debugger to the current process    ************** //
 // ************************************************************************** //
 
-bool BOOST_TEST_DECL attach_debugger( bool break_or_continue = true );
+bool NDNBOOST_TEST_DECL attach_debugger( bool break_or_continue = true );
 
 // ************************************************************************** //
 // **************   switch on/off detect memory leaks feature  ************** //
 // ************************************************************************** //
 
-void BOOST_TEST_DECL detect_memory_leaks( bool on_off );
+void NDNBOOST_TEST_DECL detect_memory_leaks( bool on_off );
 
 // ************************************************************************** //
 // **************      cause program to break execution in     ************** //
 // **************     debugger at specific allocation point    ************** //
 // ************************************************************************** //
 
-void BOOST_TEST_DECL break_memory_alloc( long mem_alloc_order_num );
+void NDNBOOST_TEST_DECL break_memory_alloc( long mem_alloc_order_num );
 
 } // namespace debug
 
diff --git a/include/ndnboost/test/debug_config.hpp b/include/ndnboost/test/debug_config.hpp
index 54c21e9..f54efa8 100644
--- a/include/ndnboost/test/debug_config.hpp
+++ b/include/ndnboost/test/debug_config.hpp
@@ -12,13 +12,13 @@
 //  Description : user's config for Boost.Test debugging support
 // ***************************************************************************
 
-#ifndef BOOST_TEST_DEBUG_CONFIG_HPP_112006GER
-#define BOOST_TEST_DEBUG_CONFIG_HPP_112006GER
+#ifndef NDNBOOST_TEST_DEBUG_CONFIG_HPP_112006GER
+#define NDNBOOST_TEST_DEBUG_CONFIG_HPP_112006GER
 
 // ';' separated list of supported debuggers
-// #define BOOST_TEST_DBG_LIST gdb;dbx
+// #define NDNBOOST_TEST_DBG_LIST gdb;dbx
 
 // maximum size of /proc/pid/stat file
-// #define BOOST_TEST_STAT_LINE_MAX
+// #define NDNBOOST_TEST_STAT_LINE_MAX
 
 #endif
diff --git a/include/ndnboost/test/detail/config.hpp b/include/ndnboost/test/detail/config.hpp
index 1b6ae68..68168b2 100644
--- a/include/ndnboost/test/detail/config.hpp
+++ b/include/ndnboost/test/detail/config.hpp
@@ -12,8 +12,8 @@
 //  Description : as a central place for global configuration switches
 // ***************************************************************************
 
-#ifndef BOOST_TEST_CONFIG_HPP_071894GER
-#define BOOST_TEST_CONFIG_HPP_071894GER
+#ifndef NDNBOOST_TEST_CONFIG_HPP_071894GER
+#define NDNBOOST_TEST_CONFIG_HPP_071894GER
 
 // Boost
 #include <ndnboost/config.hpp> // compilers workarounds
@@ -21,84 +21,84 @@
 
 //____________________________________________________________________________//
 
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x570)) || \
-    BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600))     || \
-    (defined __sgi && BOOST_WORKAROUND(_COMPILER_VERSION, BOOST_TESTED_AT(730)))
-#  define BOOST_TEST_SHIFTED_LINE
+#if NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x570)) || \
+    NDNBOOST_WORKAROUND(__IBMCPP__, NDNBOOST_TESTED_AT(600))     || \
+    (defined __sgi && NDNBOOST_WORKAROUND(_COMPILER_VERSION, NDNBOOST_TESTED_AT(730)))
+#  define NDNBOOST_TEST_SHIFTED_LINE
 #endif
 
 //____________________________________________________________________________//
 
-#if defined(BOOST_MSVC) || (defined(__BORLANDC__) && !defined(BOOST_DISABLE_WIN32))
-#  define BOOST_TEST_CALL_DECL __cdecl
+#if defined(NDNBOOST_MSVC) || (defined(__BORLANDC__) && !defined(NDNBOOST_DISABLE_WIN32))
+#  define NDNBOOST_TEST_CALL_DECL __cdecl
 #else
-#  define BOOST_TEST_CALL_DECL /**/
+#  define NDNBOOST_TEST_CALL_DECL /**/
 #endif
 
 //____________________________________________________________________________//
 
-#if !defined(BOOST_NO_STD_LOCALE) &&            \
-    !BOOST_WORKAROUND(BOOST_MSVC, < 1310)  &&   \
+#if !defined(NDNBOOST_NO_STD_LOCALE) &&            \
+    !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1310)  &&   \
     !defined(__MWERKS__) 
-#  define BOOST_TEST_USE_STD_LOCALE 1
+#  define NDNBOOST_TEST_USE_STD_LOCALE 1
 #endif
 
 //____________________________________________________________________________//
 
-#if BOOST_WORKAROUND(__BORLANDC__, <= 0x570)            || \
-    BOOST_WORKAROUND( __COMO__, <= 0x433 )              || \
-    BOOST_WORKAROUND( __INTEL_COMPILER, <= 800 )        || \
+#if NDNBOOST_WORKAROUND(__BORLANDC__, <= 0x570)            || \
+    NDNBOOST_WORKAROUND( __COMO__, <= 0x433 )              || \
+    NDNBOOST_WORKAROUND( __INTEL_COMPILER, <= 800 )        || \
     defined(__sgi) && _COMPILER_VERSION <= 730          || \
-    BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600))  || \
+    NDNBOOST_WORKAROUND(__IBMCPP__, NDNBOOST_TESTED_AT(600))  || \
     defined(__DECCXX)                                   || \
     defined(__DMC__)
-#  define BOOST_TEST_NO_PROTECTED_USING
+#  define NDNBOOST_TEST_NO_PROTECTED_USING
 #endif
 
 //____________________________________________________________________________//
 
-#if defined(__GNUC__) || BOOST_WORKAROUND(BOOST_MSVC, == 1400)
-#define BOOST_TEST_PROTECTED_VIRTUAL virtual
+#if defined(__GNUC__) || NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1400)
+#define NDNBOOST_TEST_PROTECTED_VIRTUAL virtual
 #else
-#define BOOST_TEST_PROTECTED_VIRTUAL
+#define NDNBOOST_TEST_PROTECTED_VIRTUAL
 #endif
 
 //____________________________________________________________________________//
 
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \
-    !BOOST_WORKAROUND(BOOST_MSVC, <1310) && \
-    !BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x530))
-#  define BOOST_TEST_SUPPORT_INTERACTION_TESTING 1
+#if !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564)) && \
+    !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <1310) && \
+    !NDNBOOST_WORKAROUND(__SUNPRO_CC, NDNBOOST_TESTED_AT(0x530))
+#  define NDNBOOST_TEST_SUPPORT_INTERACTION_TESTING 1
 #endif
 
 //____________________________________________________________________________//
 
-#if defined(BOOST_ALL_DYN_LINK) && !defined(BOOST_TEST_DYN_LINK)
-#  define BOOST_TEST_DYN_LINK
+#if defined(NDNBOOST_ALL_DYN_LINK) && !defined(NDNBOOST_TEST_DYN_LINK)
+#  define NDNBOOST_TEST_DYN_LINK
 #endif
 
-#if defined(BOOST_TEST_INCLUDED)
-#  undef BOOST_TEST_DYN_LINK
+#if defined(NDNBOOST_TEST_INCLUDED)
+#  undef NDNBOOST_TEST_DYN_LINK
 #endif
 
-#if defined(BOOST_TEST_DYN_LINK)
-#  define BOOST_TEST_ALTERNATIVE_INIT_API
+#if defined(NDNBOOST_TEST_DYN_LINK)
+#  define NDNBOOST_TEST_ALTERNATIVE_INIT_API
 
-#  ifdef BOOST_TEST_SOURCE
-#    define BOOST_TEST_DECL BOOST_SYMBOL_EXPORT
+#  ifdef NDNBOOST_TEST_SOURCE
+#    define NDNBOOST_TEST_DECL NDNBOOST_SYMBOL_EXPORT
 #  else
-#    define BOOST_TEST_DECL BOOST_SYMBOL_IMPORT
-#  endif  // BOOST_TEST_SOURCE
+#    define NDNBOOST_TEST_DECL NDNBOOST_SYMBOL_IMPORT
+#  endif  // NDNBOOST_TEST_SOURCE
 #else
-#  define BOOST_TEST_DECL
+#  define NDNBOOST_TEST_DECL
 #endif
 
-#if !defined(BOOST_TEST_MAIN) && defined(BOOST_AUTO_TEST_MAIN)
-#define BOOST_TEST_MAIN BOOST_AUTO_TEST_MAIN
+#if !defined(NDNBOOST_TEST_MAIN) && defined(NDNBOOST_AUTO_TEST_MAIN)
+#define NDNBOOST_TEST_MAIN NDNBOOST_AUTO_TEST_MAIN
 #endif
 
-#if !defined(BOOST_TEST_MAIN) && defined(BOOST_TEST_MODULE)
-#define BOOST_TEST_MAIN BOOST_TEST_MODULE
+#if !defined(NDNBOOST_TEST_MAIN) && defined(NDNBOOST_TEST_MODULE)
+#define NDNBOOST_TEST_MAIN NDNBOOST_TEST_MODULE
 #endif
 
-#endif // BOOST_TEST_CONFIG_HPP_071894GER
+#endif // NDNBOOST_TEST_CONFIG_HPP_071894GER
diff --git a/include/ndnboost/test/detail/enable_warnings.hpp b/include/ndnboost/test/detail/enable_warnings.hpp
index 2d67fb0..3618e91 100644
--- a/include/ndnboost/test/detail/enable_warnings.hpp
+++ b/include/ndnboost/test/detail/enable_warnings.hpp
@@ -12,7 +12,7 @@
 //  Description : enable previosly suppressed warnings
 // ***************************************************************************
 
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
 # pragma warning(default: 4511) // copy constructor can't not be generated
 # pragma warning(default: 4512) // assignment operator can't not be generated
 # pragma warning(default: 4100) // unreferenced formal parameter 
diff --git a/include/ndnboost/test/detail/fwd_decl.hpp b/include/ndnboost/test/detail/fwd_decl.hpp
index b8d2a87..db029fe 100644
--- a/include/ndnboost/test/detail/fwd_decl.hpp
+++ b/include/ndnboost/test/detail/fwd_decl.hpp
@@ -12,8 +12,8 @@
 //  Description : contains forward eclarations for Boost.Test data types
 // ***************************************************************************
 
-#ifndef BOOST_TEST_FWD_DECL_HPP_011605GER
-#define BOOST_TEST_FWD_DECL_HPP_011605GER
+#ifndef NDNBOOST_TEST_FWD_DECL_HPP_011605GER
+#define NDNBOOST_TEST_FWD_DECL_HPP_011605GER
 
 namespace ndnboost {
 
@@ -44,5 +44,5 @@
 
 } // namespace ndnboost
 
-#endif // BOOST_TEST_FWD_DECL_HPP_011605GER
+#endif // NDNBOOST_TEST_FWD_DECL_HPP_011605GER
 
diff --git a/include/ndnboost/test/detail/global_typedef.hpp b/include/ndnboost/test/detail/global_typedef.hpp
index e87327a..207940d 100644
--- a/include/ndnboost/test/detail/global_typedef.hpp
+++ b/include/ndnboost/test/detail/global_typedef.hpp
@@ -12,13 +12,13 @@
 //  Description : some trivial global typedefs
 // ***************************************************************************
 
-#ifndef BOOST_TEST_GLOBAL_TYPEDEF_HPP_021005GER
-#define BOOST_TEST_GLOBAL_TYPEDEF_HPP_021005GER
+#ifndef NDNBOOST_TEST_GLOBAL_TYPEDEF_HPP_021005GER
+#define NDNBOOST_TEST_GLOBAL_TYPEDEF_HPP_021005GER
 
 #include <ndnboost/test/utils/basic_cstring/basic_cstring.hpp>
-#define BOOST_TEST_L( s )         ndnboost::unit_test::const_string( s, sizeof( s ) - 1 )
-#define BOOST_TEST_STRINGIZE( s ) BOOST_TEST_L( BOOST_STRINGIZE( s ) )
-#define BOOST_TEST_EMPTY_STRING   BOOST_TEST_L( "" )
+#define NDNBOOST_TEST_L( s )         ndnboost::unit_test::const_string( s, sizeof( s ) - 1 )
+#define NDNBOOST_TEST_STRINGIZE( s ) NDNBOOST_TEST_L( NDNBOOST_STRINGIZE( s ) )
+#define NDNBOOST_TEST_EMPTY_STRING   NDNBOOST_TEST_L( "" )
 
 #include <ndnboost/test/detail/suppress_warnings.hpp>
 
@@ -85,4 +85,4 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_GLOBAL_TYPEDEF_HPP_021005GER
+#endif // NDNBOOST_TEST_GLOBAL_TYPEDEF_HPP_021005GER
diff --git a/include/ndnboost/test/detail/log_level.hpp b/include/ndnboost/test/detail/log_level.hpp
index 14e69f4..549db0c 100644
--- a/include/ndnboost/test/detail/log_level.hpp
+++ b/include/ndnboost/test/detail/log_level.hpp
@@ -12,8 +12,8 @@
 //  Description : shared definition for unit test log levels
 // ***************************************************************************
 
-#ifndef BOOST_TEST_LOG_LEVEL_HPP_011605GER
-#define BOOST_TEST_LOG_LEVEL_HPP_011605GER
+#ifndef NDNBOOST_TEST_LOG_LEVEL_HPP_011605GER
+#define NDNBOOST_TEST_LOG_LEVEL_HPP_011605GER
 
 namespace ndnboost {
 namespace unit_test {
@@ -40,4 +40,4 @@
 } // namespace unit_test
 } // namespace ndnboost
 
-#endif // BOOST_TEST_LOG_LEVEL_HPP_011605GER
+#endif // NDNBOOST_TEST_LOG_LEVEL_HPP_011605GER
diff --git a/include/ndnboost/test/detail/suppress_warnings.hpp b/include/ndnboost/test/detail/suppress_warnings.hpp
index 2471226..7b93db7 100644
--- a/include/ndnboost/test/detail/suppress_warnings.hpp
+++ b/include/ndnboost/test/detail/suppress_warnings.hpp
@@ -12,7 +12,7 @@
 //  Description : suppress some warnings 
 // ***************************************************************************
 
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
 # pragma warning(push)
 # pragma warning(disable: 4511) // copy constructor can't not be generated
 # pragma warning(disable: 4512) // assignment operator can't not be generated
diff --git a/include/ndnboost/test/detail/unit_test_parameters.hpp b/include/ndnboost/test/detail/unit_test_parameters.hpp
index 364692b..ca7a24f 100644
--- a/include/ndnboost/test/detail/unit_test_parameters.hpp
+++ b/include/ndnboost/test/detail/unit_test_parameters.hpp
@@ -12,8 +12,8 @@
 //  Description : storage for unit test framework parameters information
 // ***************************************************************************
 
-#ifndef BOOST_TEST_UNIT_TEST_PARAMETERS_HPP_071894GER
-#define BOOST_TEST_UNIT_TEST_PARAMETERS_HPP_071894GER
+#ifndef NDNBOOST_TEST_UNIT_TEST_PARAMETERS_HPP_071894GER
+#define NDNBOOST_TEST_UNIT_TEST_PARAMETERS_HPP_071894GER
 
 #include <ndnboost/test/detail/global_typedef.hpp>
 #include <ndnboost/test/detail/log_level.hpp>
@@ -35,26 +35,26 @@
 
 namespace runtime_config {
 
-BOOST_TEST_DECL void                     init( int& argc, char** argv );
+NDNBOOST_TEST_DECL void                     init( int& argc, char** argv );
 
-BOOST_TEST_DECL unit_test::log_level     log_level();
-BOOST_TEST_DECL bool                     no_result_code();
-BOOST_TEST_DECL unit_test::report_level  report_level();
-BOOST_TEST_DECL const_string             test_to_run();
-BOOST_TEST_DECL const_string             break_exec_path();
-BOOST_TEST_DECL bool                     save_pattern();
-BOOST_TEST_DECL bool                     show_build_info();
-BOOST_TEST_DECL bool                     show_progress();
-BOOST_TEST_DECL bool                     catch_sys_errors();
-BOOST_TEST_DECL bool                     auto_start_dbg();
-BOOST_TEST_DECL bool                     use_alt_stack();
-BOOST_TEST_DECL bool                     detect_fp_exceptions();
-BOOST_TEST_DECL output_format            report_format();
-BOOST_TEST_DECL output_format            log_format();
-BOOST_TEST_DECL std::ostream*            report_sink();
-BOOST_TEST_DECL std::ostream*            log_sink();
-BOOST_TEST_DECL long                     detect_memory_leaks();
-BOOST_TEST_DECL int                      random_seed();
+NDNBOOST_TEST_DECL unit_test::log_level     log_level();
+NDNBOOST_TEST_DECL bool                     no_result_code();
+NDNBOOST_TEST_DECL unit_test::report_level  report_level();
+NDNBOOST_TEST_DECL const_string             test_to_run();
+NDNBOOST_TEST_DECL const_string             break_exec_path();
+NDNBOOST_TEST_DECL bool                     save_pattern();
+NDNBOOST_TEST_DECL bool                     show_build_info();
+NDNBOOST_TEST_DECL bool                     show_progress();
+NDNBOOST_TEST_DECL bool                     catch_sys_errors();
+NDNBOOST_TEST_DECL bool                     auto_start_dbg();
+NDNBOOST_TEST_DECL bool                     use_alt_stack();
+NDNBOOST_TEST_DECL bool                     detect_fp_exceptions();
+NDNBOOST_TEST_DECL output_format            report_format();
+NDNBOOST_TEST_DECL output_format            log_format();
+NDNBOOST_TEST_DECL std::ostream*            report_sink();
+NDNBOOST_TEST_DECL std::ostream*            log_sink();
+NDNBOOST_TEST_DECL long                     detect_memory_leaks();
+NDNBOOST_TEST_DECL int                      random_seed();
 
 } // namespace runtime_config
 
@@ -66,4 +66,4 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_UNIT_TEST_PARAMETERS_HPP_071894GER
+#endif // NDNBOOST_TEST_UNIT_TEST_PARAMETERS_HPP_071894GER
diff --git a/include/ndnboost/test/detail/workaround.hpp b/include/ndnboost/test/detail/workaround.hpp
index 654972b..d595ffb 100644
--- a/include/ndnboost/test/detail/workaround.hpp
+++ b/include/ndnboost/test/detail/workaround.hpp
@@ -12,8 +12,8 @@
 //  Description : contains mics. workarounds 
 // ***************************************************************************
 
-#ifndef BOOST_TEST_WORKAROUND_HPP_021005GER
-#define BOOST_TEST_WORKAROUND_HPP_021005GER
+#ifndef NDNBOOST_TEST_WORKAROUND_HPP_021005GER
+#define NDNBOOST_TEST_WORKAROUND_HPP_021005GER
 
 // Boost
 #include <ndnboost/config.hpp> // compilers workarounds and std::ptrdiff_t
@@ -31,7 +31,7 @@
 
 namespace ut_detail {
 
-#ifdef BOOST_NO_STD_DISTANCE
+#ifdef NDNBOOST_NO_STD_DISTANCE
 template <class T>
 std::ptrdiff_t distance( T const& x_, T const& y_ )
 { 
@@ -62,4 +62,4 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_WORKAROUND_HPP_021005GER
+#endif // NDNBOOST_TEST_WORKAROUND_HPP_021005GER
diff --git a/include/ndnboost/test/execution_monitor.hpp b/include/ndnboost/test/execution_monitor.hpp
index 8475686..a1abc8b 100644
--- a/include/ndnboost/test/execution_monitor.hpp
+++ b/include/ndnboost/test/execution_monitor.hpp
@@ -29,8 +29,8 @@
 //  design presented here.
 // ***************************************************************************
 
-#ifndef BOOST_TEST_EXECUTION_MONITOR_HPP_071894GER
-#define BOOST_TEST_EXECUTION_MONITOR_HPP_071894GER
+#ifndef NDNBOOST_TEST_EXECUTION_MONITOR_HPP_071894GER
+#define NDNBOOST_TEST_EXECUTION_MONITOR_HPP_071894GER
 
 // Boost.Test
 #include <ndnboost/test/detail/global_typedef.hpp>
@@ -56,7 +56,7 @@
 // **************       detail::translate_exception_base       ************** //
 // ************************************************************************** //
 
-class BOOST_TEST_DECL translate_exception_base {
+class NDNBOOST_TEST_DECL translate_exception_base {
 public:
     // Constructor
     explicit    translate_exception_base( ndnboost::scoped_ptr<translate_exception_base>& next )
@@ -82,7 +82,7 @@
     
 //  design rationale: fear of being out (or nearly out) of memory.
     
-class BOOST_TEST_DECL execution_exception {
+class NDNBOOST_TEST_DECL execution_exception {
     typedef ndnboost::unit_test::const_string const_string;
 public:
     enum error_code {
@@ -113,7 +113,7 @@
         //  is unreasonable to continue execution.
     };
     
-    struct BOOST_TEST_DECL location {
+    struct NDNBOOST_TEST_DECL location {
         explicit    location( char const* file_name = 0, size_t line_num = 0, char const* func = 0 );
 
         const_string    m_file_name;
@@ -140,7 +140,7 @@
 // **************               execution_monitor              ************** //
 // ************************************************************************** //
 
-class BOOST_TEST_DECL execution_monitor {
+class NDNBOOST_TEST_DECL execution_monitor {
 public:
     // Constructor
     execution_monitor()
@@ -252,7 +252,7 @@
     unit_test::readonly_property<char const*>   p_failed_exp; 
 };
 
-#define BOOST_TEST_SYS_ASSERT( exp ) if( (exp) ) ; else throw ::ndnboost::system_error( BOOST_STRINGIZE( exp ) )
+#define NDNBOOST_TEST_SYS_ASSERT( exp ) if( (exp) ) ; else throw ::ndnboost::system_error( NDNBOOST_STRINGIZE( exp ) )
 
 }  // namespace ndnboost
 
diff --git a/include/ndnboost/test/floating_point_comparison.hpp b/include/ndnboost/test/floating_point_comparison.hpp
index 211f29b..1a0a60e 100644
--- a/include/ndnboost/test/floating_point_comparison.hpp
+++ b/include/ndnboost/test/floating_point_comparison.hpp
@@ -12,8 +12,8 @@
 //  Description : defines algoirthms for comparing 2 floating point values
 // ***************************************************************************
 
-#ifndef BOOST_TEST_FLOATING_POINT_COMPARISON_HPP_071894GER
-#define BOOST_TEST_FLOATING_POINT_COMPARISON_HPP_071894GER
+#ifndef NDNBOOST_TEST_FLOATING_POINT_COMPARISON_HPP_071894GER
+#define NDNBOOST_TEST_FLOATING_POINT_COMPARISON_HPP_071894GER
 
 // Boost.Test
 #include <ndnboost/test/detail/global_typedef.hpp>
@@ -212,7 +212,7 @@
 // **************               check_is_close                 ************** //
 // ************************************************************************** //
 
-struct BOOST_TEST_DECL check_is_close_t {
+struct NDNBOOST_TEST_DECL check_is_close_t {
     // Public typedefs
     typedef bool result_type;
 
@@ -226,7 +226,7 @@
         // value of integral type is promoted to the floating. The same for float and double
         // But we don't want to compare two values of integral types using this tool.
         typedef typename numeric::conversion_traits<FPT1,FPT2>::supertype FPT;
-        BOOST_STATIC_ASSERT( !is_integral<FPT>::value );
+        NDNBOOST_STATIC_ASSERT( !is_integral<FPT>::value );
 
         close_at_tolerance<FPT> pred( tolerance, fpc_type );
 
@@ -239,7 +239,7 @@
     {
         // same as in a comment above
         typedef typename numeric::conversion_traits<FPT1,FPT2>::supertype FPT;
-        BOOST_STATIC_ASSERT( !is_integral<FPT>::value );
+        NDNBOOST_STATIC_ASSERT( !is_integral<FPT>::value );
 
         close_at_tolerance<FPT> pred( tolerance, fpc_type );
 
@@ -257,7 +257,7 @@
 // **************               check_is_small                 ************** //
 // ************************************************************************** //
 
-struct BOOST_TEST_DECL check_is_small_t {
+struct NDNBOOST_TEST_DECL check_is_small_t {
     // Public typedefs
     typedef bool result_type;
 
@@ -283,4 +283,4 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_FLOATING_POINT_COMAPARISON_HPP_071894GER
+#endif // NDNBOOST_FLOATING_POINT_COMAPARISON_HPP_071894GER
diff --git a/include/ndnboost/test/framework.hpp b/include/ndnboost/test/framework.hpp
index 43d249d..3f316f8 100644
--- a/include/ndnboost/test/framework.hpp
+++ b/include/ndnboost/test/framework.hpp
@@ -12,8 +12,8 @@
 //  Description : defines framework interface
 // ***************************************************************************
 
-#ifndef BOOST_TEST_FRAMEWORK_HPP_020805GER
-#define BOOST_TEST_FRAMEWORK_HPP_020805GER
+#ifndef NDNBOOST_TEST_FRAMEWORK_HPP_020805GER
+#define NDNBOOST_TEST_FRAMEWORK_HPP_020805GER
 
 // Boost.Test
 #include <ndnboost/test/detail/global_typedef.hpp>
@@ -35,7 +35,7 @@
 // **************              init_unit_test_func             ************** //
 // ************************************************************************** //
 
-#ifdef BOOST_TEST_ALTERNATIVE_INIT_API
+#ifdef NDNBOOST_TEST_ALTERNATIVE_INIT_API
 typedef bool        (*init_unit_test_func)();
 #else
 typedef test_suite* (*init_unit_test_func)( int, char* [] );
@@ -48,25 +48,25 @@
 namespace framework {
 
 // initialization
-BOOST_TEST_DECL void    init( init_unit_test_func init_func, int argc, char* argv[] );
-BOOST_TEST_DECL bool    is_initialized();
+NDNBOOST_TEST_DECL void    init( init_unit_test_func init_func, int argc, char* argv[] );
+NDNBOOST_TEST_DECL bool    is_initialized();
 
 // mutation access methods
-BOOST_TEST_DECL void    register_test_unit( test_case* tc );
-BOOST_TEST_DECL void    register_test_unit( test_suite* ts );
-BOOST_TEST_DECL void    deregister_test_unit( test_unit* tu );
-BOOST_TEST_DECL void    clear();
+NDNBOOST_TEST_DECL void    register_test_unit( test_case* tc );
+NDNBOOST_TEST_DECL void    register_test_unit( test_suite* ts );
+NDNBOOST_TEST_DECL void    deregister_test_unit( test_unit* tu );
+NDNBOOST_TEST_DECL void    clear();
 
-BOOST_TEST_DECL void    register_observer( test_observer& );
-BOOST_TEST_DECL void    deregister_observer( test_observer& );
-BOOST_TEST_DECL void    reset_observers();
+NDNBOOST_TEST_DECL void    register_observer( test_observer& );
+NDNBOOST_TEST_DECL void    deregister_observer( test_observer& );
+NDNBOOST_TEST_DECL void    reset_observers();
 
-BOOST_TEST_DECL master_test_suite_t& master_test_suite();
+NDNBOOST_TEST_DECL master_test_suite_t& master_test_suite();
 
 // constant access methods
-BOOST_TEST_DECL test_case const&    current_test_case();
+NDNBOOST_TEST_DECL test_case const&    current_test_case();
 
-BOOST_TEST_DECL test_unit&  get( test_unit_id, test_unit_type );
+NDNBOOST_TEST_DECL test_unit&  get( test_unit_id, test_unit_type );
 template<typename UnitType>
 UnitType&               get( test_unit_id id )
 {
@@ -74,13 +74,13 @@
 }
 
 // test initiation
-BOOST_TEST_DECL void    run( test_unit_id = INV_TEST_UNIT_ID, bool continue_test = true );
-BOOST_TEST_DECL void    run( test_unit const*, bool continue_test = true );
+NDNBOOST_TEST_DECL void    run( test_unit_id = INV_TEST_UNIT_ID, bool continue_test = true );
+NDNBOOST_TEST_DECL void    run( test_unit const*, bool continue_test = true );
 
 // public test events dispatchers
-BOOST_TEST_DECL void    assertion_result( bool passed );
-BOOST_TEST_DECL void    exception_caught( execution_exception const& );
-BOOST_TEST_DECL void    test_unit_aborted( test_unit const& );
+NDNBOOST_TEST_DECL void    assertion_result( bool passed );
+NDNBOOST_TEST_DECL void    exception_caught( execution_exception const& );
+NDNBOOST_TEST_DECL void    test_unit_aborted( test_unit const& );
 
 // ************************************************************************** //
 // **************                framework errors              ************** //
@@ -94,7 +94,7 @@
     setup_error( const_string m ) : std::runtime_error( std::string( m.begin(), m.size() ) ) {}
 };
 
-#define BOOST_TEST_SETUP_ASSERT( cond, msg ) if( cond ) {} else throw unit_test::framework::setup_error( msg )
+#define NDNBOOST_TEST_SETUP_ASSERT( cond, msg ) if( cond ) {} else throw unit_test::framework::setup_error( msg )
 
 struct nothing_to_test {}; // not really an error
 
@@ -108,5 +108,5 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_FRAMEWORK_HPP_020805GER
+#endif // NDNBOOST_TEST_FRAMEWORK_HPP_020805GER
 
diff --git a/include/ndnboost/test/impl/compiler_log_formatter.ipp b/include/ndnboost/test/impl/compiler_log_formatter.ipp
index e153920..1d83f60 100644
--- a/include/ndnboost/test/impl/compiler_log_formatter.ipp
+++ b/include/ndnboost/test/impl/compiler_log_formatter.ipp
@@ -12,8 +12,8 @@
 //  Description : implements compiler like Log formatter
 // ***************************************************************************
 
-#ifndef BOOST_TEST_COMPILER_LOG_FORMATTER_IPP_020105GER
-#define BOOST_TEST_COMPILER_LOG_FORMATTER_IPP_020105GER
+#ifndef NDNBOOST_TEST_COMPILER_LOG_FORMATTER_IPP_020105GER
+#define NDNBOOST_TEST_COMPILER_LOG_FORMATTER_IPP_020105GER
 
 // Boost.Test
 #include <ndnboost/test/output/compiler_log_formatter.hpp>
@@ -49,7 +49,7 @@
 {
     return framework::is_initialized() 
             ? const_string( framework::current_test_case().p_name.get() )
-            : BOOST_TEST_L( "Test setup" );
+            : NDNBOOST_TEST_L( "Test setup" );
 }
 
 } // local namespace
@@ -77,12 +77,12 @@
 void
 compiler_log_formatter::log_build_info( std::ostream& output )
 {
-    output  << "Platform: " << BOOST_PLATFORM            << '\n'
-            << "Compiler: " << BOOST_COMPILER            << '\n'
-            << "STL     : " << BOOST_STDLIB              << '\n'
-            << "Boost   : " << BOOST_VERSION/100000      << "."
-                            << BOOST_VERSION/100 % 1000  << "."
-                            << BOOST_VERSION % 100       << std::endl;
+    output  << "Platform: " << NDNBOOST_PLATFORM            << '\n'
+            << "Compiler: " << NDNBOOST_COMPILER            << '\n'
+            << "STL     : " << NDNBOOST_STDLIB              << '\n'
+            << "Boost   : " << NDNBOOST_VERSION/100000      << "."
+                            << NDNBOOST_VERSION/100 % 1000  << "."
+                            << NDNBOOST_VERSION % 100       << std::endl;
 }
 
 //____________________________________________________________________________//
@@ -148,21 +148,21 @@
 compiler_log_formatter::log_entry_start( std::ostream& output, log_entry_data const& entry_data, log_entry_types let )
 {
     switch( let ) {
-        case BOOST_UTL_ET_INFO:
+        case NDNBOOST_UTL_ET_INFO:
             print_prefix( output, entry_data.m_file_name, entry_data.m_line_num );
             output << "info: ";
             break;
-        case BOOST_UTL_ET_MESSAGE:
+        case NDNBOOST_UTL_ET_MESSAGE:
             break;
-        case BOOST_UTL_ET_WARNING:
+        case NDNBOOST_UTL_ET_WARNING:
             print_prefix( output, entry_data.m_file_name, entry_data.m_line_num );
             output << "warning in \"" << test_phase_identifier() << "\": ";
             break;
-        case BOOST_UTL_ET_ERROR:
+        case NDNBOOST_UTL_ET_ERROR:
             print_prefix( output, entry_data.m_file_name, entry_data.m_line_num );
             output << "error in \"" << test_phase_identifier() << "\": ";
             break;
-        case BOOST_UTL_ET_FATAL_ERROR:
+        case NDNBOOST_UTL_ET_FATAL_ERROR:
             print_prefix( output, entry_data.m_file_name, entry_data.m_line_num );
             output << "fatal error in \"" << test_phase_identifier() << "\": ";
             break;
@@ -219,4 +219,4 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_COMPILER_LOG_FORMATTER_IPP_020105GER
+#endif // NDNBOOST_TEST_COMPILER_LOG_FORMATTER_IPP_020105GER
diff --git a/include/ndnboost/test/impl/cpp_main.ipp b/include/ndnboost/test/impl/cpp_main.ipp
index 3bacee1..337a781 100644
--- a/include/ndnboost/test/impl/cpp_main.ipp
+++ b/include/ndnboost/test/impl/cpp_main.ipp
@@ -13,8 +13,8 @@
 //  Description : main function implementation for Program Executon Monitor
 // ***************************************************************************
 
-#ifndef BOOST_TEST_CPP_MAIN_IPP_012205GER
-#define BOOST_TEST_CPP_MAIN_IPP_012205GER
+#ifndef NDNBOOST_TEST_CPP_MAIN_IPP_012205GER
+#define NDNBOOST_TEST_CPP_MAIN_IPP_012205GER
 
 // Boost.Test
 #include <ndnboost/test/execution_monitor.hpp>
@@ -34,7 +34,7 @@
 
 //____________________________________________________________________________//
 
-#ifdef BOOST_NO_STDC_NAMESPACE
+#ifdef NDNBOOST_NO_STDC_NAMESPACE
 namespace std { using ::getenv; using ::strerror; }
 #endif
 
@@ -63,13 +63,13 @@
 
 namespace ndnboost {
 
-int BOOST_TEST_DECL
+int NDNBOOST_TEST_DECL
 prg_exec_monitor_main( int (*cpp_main)( int argc, char* argv[] ), int argc, char* argv[] )
 {
     int result = 0;
 
     try {
-        ndnboost::unit_test::const_string p( std::getenv( "BOOST_TEST_CATCH_SYSTEM_ERRORS" ) );
+        ndnboost::unit_test::const_string p( std::getenv( "NDNBOOST_TEST_CATCH_SYSTEM_ERRORS" ) );
         ::ndnboost::execution_monitor ex_mon;
 
         ex_mon.p_catch_system_errors.value = p != "no";
@@ -103,7 +103,7 @@
         //  like the clutter.  Use an environment variable to avoid command
         //  line argument modifications; for use in production programs
         //  that's a no-no in some organizations.
-        ::ndnboost::unit_test::const_string p( std::getenv( "BOOST_PRG_MON_CONFIRM" ) );
+        ::ndnboost::unit_test::const_string p( std::getenv( "NDNBOOST_PRG_MON_CONFIRM" ) );
         if( p != "no" ) { 
             std::cerr << std::flush << "no errors detected" << std::endl; 
         }
@@ -114,7 +114,7 @@
 
 } // namespace ndnboost
 
-#if !defined(BOOST_TEST_DYN_LINK) && !defined(BOOST_TEST_NO_MAIN)
+#if !defined(NDNBOOST_TEST_DYN_LINK) && !defined(NDNBOOST_TEST_NO_MAIN)
 
 // ************************************************************************** //
 // **************        main function for tests using lib     ************** //
@@ -122,7 +122,7 @@
 
 int cpp_main( int argc, char* argv[] );  // prototype for user's cpp_main()
 
-int BOOST_TEST_CALL_DECL
+int NDNBOOST_TEST_CALL_DECL
 main( int argc, char* argv[] )
 {
     return ::ndnboost::prg_exec_monitor_main( &cpp_main, argc, argv );
@@ -130,10 +130,10 @@
 
 //____________________________________________________________________________//
 
-#endif // !BOOST_TEST_DYN_LINK && !BOOST_TEST_NO_MAIN
+#endif // !NDNBOOST_TEST_DYN_LINK && !NDNBOOST_TEST_NO_MAIN
 
 //____________________________________________________________________________//
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_CPP_MAIN_IPP_012205GER
+#endif // NDNBOOST_TEST_CPP_MAIN_IPP_012205GER
diff --git a/include/ndnboost/test/impl/debug.ipp b/include/ndnboost/test/impl/debug.ipp
index bf23f2e..8233149 100644
--- a/include/ndnboost/test/impl/debug.ipp
+++ b/include/ndnboost/test/impl/debug.ipp
@@ -12,8 +12,8 @@
 //  Description : debug interfaces implementation
 // ***************************************************************************
 
-#ifndef BOOST_TEST_DEBUG_API_IPP_112006GER
-#define BOOST_TEST_DEBUG_API_IPP_112006GER
+#ifndef NDNBOOST_TEST_DEBUG_API_IPP_112006GER
+#define NDNBOOST_TEST_DEBUG_API_IPP_112006GER
 
 // Boost.Test
 #include <ndnboost/test/detail/config.hpp>
@@ -24,9 +24,9 @@
 #include <ndnboost/test/debug_config.hpp>
 
 // Implementation on Windows
-#if defined(_WIN32) && !defined(UNDER_CE) && !defined(BOOST_DISABLE_WIN32) // ******* WIN32
+#if defined(_WIN32) && !defined(UNDER_CE) && !defined(NDNBOOST_DISABLE_WIN32) // ******* WIN32
 
-#  define BOOST_WIN32_BASED_DEBUG
+#  define NDNBOOST_WIN32_BASED_DEBUG
 
 // SYSTEM API
 #  include <windows.h>
@@ -35,22 +35,22 @@
 #  include <cstring>
 
 #  if !defined(NDEBUG) && defined(_MSC_VER)
-#    define BOOST_MS_CRT_BASED_DEBUG
+#    define NDNBOOST_MS_CRT_BASED_DEBUG
 #    include <crtdbg.h>
 #  endif
 
 
-#  if BOOST_WORKAROUND( BOOST_MSVC, <1300)
+#  if NDNBOOST_WORKAROUND( NDNBOOST_MSVC, <1300)
 #    define snprintf _snprintf
 #  endif
 
-#  ifdef BOOST_NO_STDC_NAMESPACE
+#  ifdef NDNBOOST_NO_STDC_NAMESPACE
 namespace std { using ::memset; using ::sprintf; }
 #  endif
 
 #elif defined(unix) || defined(__unix) // ********************* UNIX
 
-#  define BOOST_UNIX_BASED_DEBUG
+#  define NDNBOOST_UNIX_BASED_DEBUG
 
 // Boost.Test
 #include <ndnboost/test/utils/class_properties.hpp>
@@ -76,33 +76,33 @@
 
 #  if defined(sun) || defined(__sun)
 
-#    define BOOST_SUN_BASED_DEBUG
+#    define NDNBOOST_SUN_BASED_DEBUG
 
-#    ifndef BOOST_TEST_DBG_LIST
-#      define BOOST_TEST_DBG_LIST dbx;gdb
+#    ifndef NDNBOOST_TEST_DBG_LIST
+#      define NDNBOOST_TEST_DBG_LIST dbx;gdb
 #    endif
 
-#    define BOOST_TEST_CNL_DBG  dbx
-#    define BOOST_TEST_GUI_DBG  dbx-ddd
+#    define NDNBOOST_TEST_CNL_DBG  dbx
+#    define NDNBOOST_TEST_GUI_DBG  dbx-ddd
 
 #    include <procfs.h>
 
 #  elif defined(linux) || defined(__linux)
 
-#    define BOOST_LINUX_BASED_DEBUG
+#    define NDNBOOST_LINUX_BASED_DEBUG
 
 #    include <sys/ptrace.h>
 
-#    ifndef BOOST_TEST_STAT_LINE_MAX
-#      define BOOST_TEST_STAT_LINE_MAX 500
+#    ifndef NDNBOOST_TEST_STAT_LINE_MAX
+#      define NDNBOOST_TEST_STAT_LINE_MAX 500
 #    endif
 
-#    ifndef BOOST_TEST_DBG_LIST
-#      define BOOST_TEST_DBG_LIST gdb
+#    ifndef NDNBOOST_TEST_DBG_LIST
+#      define NDNBOOST_TEST_DBG_LIST gdb
 #    endif
 
-#    define BOOST_TEST_CNL_DBG  gdb
-#    define BOOST_TEST_GUI_DBG  gdb-xterm
+#    define NDNBOOST_TEST_CNL_DBG  gdb
+#    define NDNBOOST_TEST_GUI_DBG  gdb-xterm
 
 #  endif
 
@@ -124,7 +124,7 @@
 
 namespace {
 
-#if defined(BOOST_WIN32_BASED_DEBUG) // *********************** WIN32
+#if defined(NDNBOOST_WIN32_BASED_DEBUG) // *********************** WIN32
 
 template<typename T>
 inline void
@@ -167,7 +167,7 @@
 
 //____________________________________________________________________________//
 
-#elif defined(BOOST_UNIX_BASED_DEBUG)
+#elif defined(NDNBOOST_UNIX_BASED_DEBUG)
 
 // ************************************************************************** //
 // **************                   fd_holder                  ************** //
@@ -208,10 +208,10 @@
     const_string    m_binary_name;
     const_string    m_binary_path;
 
-#if defined(BOOST_SUN_BASED_DEBUG)
+#if defined(NDNBOOST_SUN_BASED_DEBUG)
     struct psinfo   m_psi;
-#elif defined(BOOST_LINUX_BASED_DEBUG)
-    char            m_stat_line[BOOST_TEST_STAT_LINE_MAX+1];
+#elif defined(NDNBOOST_LINUX_BASED_DEBUG)
+    char            m_stat_line[NDNBOOST_TEST_STAT_LINE_MAX+1];
 #endif
     char            m_binary_path_buff[500+1]; // !! ??
 };
@@ -221,7 +221,7 @@
 process_info::process_info( int pid )
 : m_parent_pid( 0 )
 {
-#if defined(BOOST_SUN_BASED_DEBUG)
+#if defined(NDNBOOST_SUN_BASED_DEBUG)
     char fname_buff[30];
 
     ::snprintf( fname_buff, sizeof(fname_buff), "/proc/%d/psinfo", pid );
@@ -255,7 +255,7 @@
         
     m_binary_path.assign( m_binary_path_buff );
         
-#elif defined(BOOST_LINUX_BASED_DEBUG)
+#elif defined(NDNBOOST_LINUX_BASED_DEBUG)
     char fname_buff[30];
 
     ::snprintf( fname_buff, sizeof(fname_buff), "/proc/%d/stat", pid );
@@ -607,8 +607,8 @@
 info_t::info_t()
 {
     p_dbg.value = ::getenv( "DISPLAY" )
-        ? std::string( BOOST_STRINGIZE( BOOST_TEST_GUI_DBG ) )
-        : std::string( BOOST_STRINGIZE( BOOST_TEST_CNL_DBG ) );
+        ? std::string( NDNBOOST_STRINGIZE( NDNBOOST_TEST_GUI_DBG ) )
+        : std::string( NDNBOOST_STRINGIZE( NDNBOOST_TEST_CNL_DBG ) );
         
     m_dbg_starter_reg[std::string("gdb")]           = &start_gdb_in_console;
     m_dbg_starter_reg[std::string("gdb-emacs")]     = &start_gdb_in_emacs;
@@ -635,14 +635,14 @@
 bool
 under_debugger()
 {
-#if defined(BOOST_WIN32_BASED_DEBUG) // *********************** WIN32
+#if defined(NDNBOOST_WIN32_BASED_DEBUG) // *********************** WIN32
 
     return !!s_info.m_is_debugger_present && s_info.m_is_debugger_present();
 
-#elif defined(BOOST_UNIX_BASED_DEBUG) // ********************** UNIX
+#elif defined(NDNBOOST_UNIX_BASED_DEBUG) // ********************** UNIX
 
     // !! ?? could/should we cache the result somehow?
-    const_string    dbg_list = BOOST_TEST_STRINGIZE( BOOST_TEST_DBG_LIST );
+    const_string    dbg_list = NDNBOOST_TEST_STRINGIZE( NDNBOOST_TEST_DBG_LIST );
 
     pid_t pid = ::getpid();
 
@@ -677,21 +677,21 @@
 {
     // !! ?? auto-start debugger?
 
-#if defined(BOOST_WIN32_BASED_DEBUG) // *********************** WIN32
+#if defined(NDNBOOST_WIN32_BASED_DEBUG) // *********************** WIN32
 
-#if BOOST_WORKAROUND(BOOST_MSVC, >= 1300)                       ||  \
-    BOOST_WORKAROUND(__GNUC__, >= 3) && !defined(__MINGW32__)   ||  \
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, >= 1300)                       ||  \
+    NDNBOOST_WORKAROUND(__GNUC__, >= 3) && !defined(__MINGW32__)   ||  \
     defined(__INTEL_COMPILER)
-#   define BOOST_DEBUG_BREAK    __debugbreak
+#   define NDNBOOST_DEBUG_BREAK    __debugbreak
 #else
-#   define BOOST_DEBUG_BREAK    DebugBreak
+#   define NDNBOOST_DEBUG_BREAK    DebugBreak
 #endif
 
 #ifndef __MINGW32__
     if( !under_debugger() ) {
         __try {
             __try {
-                BOOST_DEBUG_BREAK();
+                NDNBOOST_DEBUG_BREAK();
             }
             __except( UnhandledExceptionFilter(GetExceptionInformation()) )
             {
@@ -702,14 +702,14 @@
         __except (EXCEPTION_EXECUTE_HANDLER)
         {
             // If we got here, the user has pushed Debug. Debugger is already attached to our process and we
-            // continue to let the another BOOST_DEBUG_BREAK to be called.
+            // continue to let the another NDNBOOST_DEBUG_BREAK to be called.
         }
     }
 #endif
 
-    BOOST_DEBUG_BREAK();
+    NDNBOOST_DEBUG_BREAK();
 
-#elif defined(BOOST_UNIX_BASED_DEBUG) // ********************** UNIX
+#elif defined(NDNBOOST_UNIX_BASED_DEBUG) // ********************** UNIX
 
     ::kill( ::getpid(), SIGTRAP );
 
@@ -724,7 +724,7 @@
 // **************            console debugger setup            ************** //
 // ************************************************************************** //
 
-#if defined(BOOST_UNIX_BASED_DEBUG) // ************************ UNIX
+#if defined(NDNBOOST_UNIX_BASED_DEBUG) // ************************ UNIX
 
 std::string
 set_debugger( unit_test::const_string dbg_id, dbg_starter s )
@@ -761,7 +761,7 @@
     if( under_debugger() )
         return false;
 
-#if defined(BOOST_WIN32_BASED_DEBUG) // *********************** WIN32
+#if defined(NDNBOOST_WIN32_BASED_DEBUG) // *********************** WIN32
 
     const int MAX_CMD_LINE = 200;
 
@@ -857,7 +857,7 @@
 
     return true;
 
-#elif defined(BOOST_UNIX_BASED_DEBUG) // ********************** UNIX
+#elif defined(NDNBOOST_UNIX_BASED_DEBUG) // ********************** UNIX
 
     char init_done_lock_fn[] = "/tmp/btl_dbg_init_done_XXXXXX";
     fd_holder init_done_lock_fd( ::mkstemp( init_done_lock_fn ) );
@@ -926,7 +926,7 @@
 {
     unit_test::ut_detail::ignore_unused_variable_warning( on_off );
 
-#ifdef BOOST_MS_CRT_BASED_DEBUG
+#ifdef NDNBOOST_MS_CRT_BASED_DEBUG
     int flags = _CrtSetDbgFlag( _CRTDBG_REPORT_FLAG );
 
     if( !on_off )
@@ -938,7 +938,7 @@
     }
 
     _CrtSetDbgFlag ( flags );
-#endif // BOOST_MS_CRT_BASED_DEBUG
+#endif // NDNBOOST_MS_CRT_BASED_DEBUG
 }
 
 //____________________________________________________________________________//
@@ -953,9 +953,9 @@
 {
     unit_test::ut_detail::ignore_unused_variable_warning( mem_alloc_order_num );
 
-#ifdef BOOST_MS_CRT_BASED_DEBUG
+#ifdef NDNBOOST_MS_CRT_BASED_DEBUG
     _CrtSetBreakAlloc( mem_alloc_order_num );
-#endif // BOOST_MS_CRT_BASED_DEBUG
+#endif // NDNBOOST_MS_CRT_BASED_DEBUG
 }
 
 } // namespace debug
@@ -966,5 +966,5 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_DEBUG_API_IPP_112006GER
+#endif // NDNBOOST_TEST_DEBUG_API_IPP_112006GER
 
diff --git a/include/ndnboost/test/impl/exception_safety.ipp b/include/ndnboost/test/impl/exception_safety.ipp
index c3680a9..1c36385 100644
--- a/include/ndnboost/test/impl/exception_safety.ipp
+++ b/include/ndnboost/test/impl/exception_safety.ipp
@@ -12,13 +12,13 @@
 //  Description : Facilities to perform exception safety tests
 // ***************************************************************************
 
-#ifndef BOOST_TEST_EXECUTION_SAFETY_IPP_112005GER
-#define BOOST_TEST_EXECUTION_SAFETY_IPP_112005GER
+#ifndef NDNBOOST_TEST_EXECUTION_SAFETY_IPP_112005GER
+#define NDNBOOST_TEST_EXECUTION_SAFETY_IPP_112005GER
 
 // Boost.Test
 #include <ndnboost/test/detail/config.hpp>
 
-#if BOOST_TEST_SUPPORT_INTERACTION_TESTING
+#if NDNBOOST_TEST_SUPPORT_INTERACTION_TESTING
 
 #include <ndnboost/test/detail/global_typedef.hpp>
 #include <ndnboost/test/detail/unit_test_parameters.hpp>
@@ -245,7 +245,7 @@
         }
     }
 
-    BOOST_TEST_MESSAGE( "Total tested " << --m_exec_path_counter << " execution path" );
+    NDNBOOST_TEST_MESSAGE( "Total tested " << --m_exec_path_counter << " execution path" );
 
     return false;
 }
@@ -277,7 +277,7 @@
     activity_guard ag( m_internal_activity );
 
     if( m_exec_path_point < m_execution_path.size() ) {
-        BOOST_REQUIRE_MESSAGE( m_execution_path[m_exec_path_point].m_type == EPP_DECISION &&
+        NDNBOOST_REQUIRE_MESSAGE( m_execution_path[m_exec_path_point].m_type == EPP_DECISION &&
                                m_execution_path[m_exec_path_point].m_file_name == file &&
                                m_execution_path[m_exec_path_point].m_line_num == line_num,
                                "Function under test exibit non-deterministic behavior" );
@@ -301,7 +301,7 @@
     activity_guard ag( m_internal_activity );
 
     if( m_exec_path_point < m_execution_path.size() ) {
-        BOOST_REQUIRE_MESSAGE( m_execution_path[m_exec_path_point].m_type == EPP_SCOPE &&
+        NDNBOOST_REQUIRE_MESSAGE( m_execution_path[m_exec_path_point].m_type == EPP_SCOPE &&
                                m_execution_path[m_exec_path_point].m_file_name == file &&
                                m_execution_path[m_exec_path_point].m_line_num == line_num,
                                "Function under test exibit non-deterministic behavior" );
@@ -324,7 +324,7 @@
 {
     activity_guard ag( m_internal_activity );
 
-    BOOST_REQUIRE_MESSAGE( m_execution_path[enter_scope_point].m_type == EPP_SCOPE,
+    NDNBOOST_REQUIRE_MESSAGE( m_execution_path[enter_scope_point].m_type == EPP_SCOPE,
                            "Function under test exibit non-deterministic behavior" );
 
     m_execution_path[enter_scope_point].m_scope.size = m_exec_path_point - enter_scope_point;
@@ -341,7 +341,7 @@
     activity_guard ag( m_internal_activity );
 
     if( m_exec_path_point < m_execution_path.size() )
-        BOOST_REQUIRE_MESSAGE( m_execution_path[m_exec_path_point].m_type == EPP_ALLOC,
+        NDNBOOST_REQUIRE_MESSAGE( m_execution_path[m_exec_path_point].m_type == EPP_ALLOC,
                                "Function under test exibit non-deterministic behavior" );
     else
         m_execution_path.push_back(
@@ -508,7 +508,7 @@
 // **************             exception safety test            ************** //
 // ************************************************************************** //
 
-void BOOST_TEST_DECL
+void NDNBOOST_TEST_DECL
 exception_safety( callback0<> const& F, const_string test_name )
 {
     exception_safety_tester est( test_name );
@@ -534,4 +534,4 @@
 
 #endif // non-ancient compiler
 
-#endif // BOOST_TEST_EXECUTION_SAFETY_IPP_112005GER
+#endif // NDNBOOST_TEST_EXECUTION_SAFETY_IPP_112005GER
diff --git a/include/ndnboost/test/impl/execution_monitor.ipp b/include/ndnboost/test/impl/execution_monitor.ipp
index 5337347..715993f 100644
--- a/include/ndnboost/test/impl/execution_monitor.ipp
+++ b/include/ndnboost/test/impl/execution_monitor.ipp
@@ -21,8 +21,8 @@
 //  boost libraries.
 // ***************************************************************************
 
-#ifndef BOOST_TEST_EXECUTION_MONITOR_IPP_012205GER
-#define BOOST_TEST_EXECUTION_MONITOR_IPP_012205GER
+#ifndef NDNBOOST_TEST_EXECUTION_MONITOR_IPP_012205GER
+#define NDNBOOST_TEST_EXECUTION_MONITOR_IPP_012205GER
 
 // Boost.Test
 #include <ndnboost/test/detail/config.hpp>
@@ -48,7 +48,7 @@
 #include <cstdio>               // for vsnprintf
 #include <cstdarg>              // for varargs
 
-#ifdef BOOST_NO_STDC_NAMESPACE
+#ifdef NDNBOOST_NO_STDC_NAMESPACE
 namespace std { using ::strerror; using ::strlen; using ::strncat; }
 #endif
 
@@ -64,11 +64,11 @@
 #  include <stdio.h> 
 #endif
 
-#if defined(_WIN32) && !defined(BOOST_DISABLE_WIN32) &&                  \
+#if defined(_WIN32) && !defined(NDNBOOST_DISABLE_WIN32) &&                  \
     (!defined(__COMO__) && !defined(__MWERKS__) && !defined(__GNUC__) || \
-     BOOST_WORKAROUND(__MWERKS__, >= 0x3000))
+     NDNBOOST_WORKAROUND(__MWERKS__, >= 0x3000))
 
-#  define BOOST_SEH_BASED_SIGNAL_HANDLING
+#  define NDNBOOST_SEH_BASED_SIGNAL_HANDLING
 
 #  include <windows.h>
 
@@ -84,7 +84,7 @@
     typedef unsigned uintptr_t;
 #  endif
 
-#  if BOOST_WORKAROUND(_MSC_VER,  < 1300 ) || defined(UNDER_CE)
+#  if NDNBOOST_WORKAROUND(_MSC_VER,  < 1300 ) || defined(UNDER_CE)
 typedef void* uintptr_t;
 #  endif
 
@@ -117,18 +117,18 @@
 
 #  if !defined(NDEBUG) && defined(_MSC_VER) && !defined(UNDER_CE)
 #    include <crtdbg.h>
-#    define BOOST_TEST_CRT_HOOK_TYPE    _CRT_REPORT_HOOK
-#    define BOOST_TEST_CRT_ASSERT       _CRT_ASSERT
-#    define BOOST_TEST_CRT_ERROR        _CRT_ERROR
-#    define BOOST_TEST_CRT_SET_HOOK(H)  _CrtSetReportHook(H)
+#    define NDNBOOST_TEST_CRT_HOOK_TYPE    _CRT_REPORT_HOOK
+#    define NDNBOOST_TEST_CRT_ASSERT       _CRT_ASSERT
+#    define NDNBOOST_TEST_CRT_ERROR        _CRT_ERROR
+#    define NDNBOOST_TEST_CRT_SET_HOOK(H)  _CrtSetReportHook(H)
 #  else
-#    define BOOST_TEST_CRT_HOOK_TYPE    void*
-#    define BOOST_TEST_CRT_ASSERT       2
-#    define BOOST_TEST_CRT_ERROR        1
-#    define BOOST_TEST_CRT_SET_HOOK(H)  (void*)(H)
+#    define NDNBOOST_TEST_CRT_HOOK_TYPE    void*
+#    define NDNBOOST_TEST_CRT_ASSERT       2
+#    define NDNBOOST_TEST_CRT_ERROR        1
+#    define NDNBOOST_TEST_CRT_SET_HOOK(H)  (void*)(H)
 #  endif
 
-#  if !BOOST_WORKAROUND(_MSC_VER,  >= 1400 ) || defined(UNDER_CE)
+#  if !NDNBOOST_WORKAROUND(_MSC_VER,  >= 1400 ) || defined(UNDER_CE)
 
 typedef void* _invalid_parameter_handler;
 
@@ -140,15 +140,15 @@
 
 #  endif
 
-#  if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x0564)) || defined(UNDER_CE)
+#  if NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x0564)) || defined(UNDER_CE)
 
 namespace { void _set_se_translator( void* ) {} }
 
 #  endif
 
-#elif defined(BOOST_HAS_SIGACTION)
+#elif defined(NDNBOOST_HAS_SIGACTION)
 
-#  define BOOST_SIGACTION_BASED_SIGNAL_HANDLING
+#  define NDNBOOST_SIGACTION_BASED_SIGNAL_HANDLING
 
 #  include <unistd.h>
 #  include <signal.h>
@@ -167,30 +167,30 @@
 #      define ILL_ILLOPN 2 // ILL_RESOP_FAULT
 #      define ILL_COPROC ILL_FPOP_FAULT
 
-#      define BOOST_TEST_LIMITED_SIGNAL_DETAILS
-#      define BOOST_TEST_IGNORE_SIGCHLD
+#      define NDNBOOST_TEST_LIMITED_SIGNAL_DETAILS
+#      define NDNBOOST_TEST_IGNORE_SIGCHLD
 
 #    endif 
 #  endif 
 
 #  if !defined(__CYGWIN__) && !defined(__QNXNTO__)
-#   define BOOST_TEST_USE_ALT_STACK
+#   define NDNBOOST_TEST_USE_ALT_STACK
 #  endif
 
 #  if defined(SIGPOLL) && !defined(__CYGWIN__)                              && \
       !(defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__))  && \
       !defined(__NetBSD__)                                                  && \
       !defined(__QNXNTO__)
-#    define BOOST_TEST_CATCH_SIGPOLL
+#    define NDNBOOST_TEST_CATCH_SIGPOLL
 #  endif
 
-#  ifdef BOOST_TEST_USE_ALT_STACK
-#    define BOOST_TEST_ALT_STACK_SIZE SIGSTKSZ
+#  ifdef NDNBOOST_TEST_USE_ALT_STACK
+#    define NDNBOOST_TEST_ALT_STACK_SIZE SIGSTKSZ
 #  endif
 
 #else
 
-#  define BOOST_NO_SIGNAL_HANDLING
+#  define NDNBOOST_NO_SIGNAL_HANDLING
 
 #endif
 
@@ -211,13 +211,13 @@
 namespace detail {
 
 #ifdef __BORLANDC__
-#  define BOOST_TEST_VSNPRINTF( a1, a2, a3, a4 ) std::vsnprintf( (a1), (a2), (a3), (a4) )
-#elif BOOST_WORKAROUND(_MSC_VER, <= 1310) || \
-      BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3000)) || \
+#  define NDNBOOST_TEST_VSNPRINTF( a1, a2, a3, a4 ) std::vsnprintf( (a1), (a2), (a3), (a4) )
+#elif NDNBOOST_WORKAROUND(_MSC_VER, <= 1310) || \
+      NDNBOOST_WORKAROUND(__MWERKS__, NDNBOOST_TESTED_AT(0x3000)) || \
       defined(UNDER_CE)
-#  define BOOST_TEST_VSNPRINTF( a1, a2, a3, a4 ) _vsnprintf( (a1), (a2), (a3), (a4) )
+#  define NDNBOOST_TEST_VSNPRINTF( a1, a2, a3, a4 ) _vsnprintf( (a1), (a2), (a3), (a4) )
 #else
-#  define BOOST_TEST_VSNPRINTF( a1, a2, a3, a4 ) vsnprintf( (a1), (a2), (a3), (a4) )
+#  define NDNBOOST_TEST_VSNPRINTF( a1, a2, a3, a4 ) vsnprintf( (a1), (a2), (a3), (a4) )
 #endif
 
 template <typename ErrorInfo>
@@ -240,7 +240,7 @@
     static const int REPORT_ERROR_BUFFER_SIZE = 512;
     static char buf[REPORT_ERROR_BUFFER_SIZE];
 
-    BOOST_TEST_VSNPRINTF( buf, sizeof(buf)-1, format, *args ); 
+    NDNBOOST_TEST_VSNPRINTF( buf, sizeof(buf)-1, format, *args ); 
     buf[sizeof(buf)-1] = 0;
 
     va_end( *args );
@@ -285,7 +285,7 @@
 
 } // namespace detail
 
-#if defined(BOOST_SIGACTION_BASED_SIGNAL_HANDLING)
+#if defined(NDNBOOST_SIGACTION_BASED_SIGNAL_HANDLING)
 
 // ************************************************************************** //
 // **************       Sigaction based signal handling        ************** //
@@ -356,7 +356,7 @@
     switch( m_sig_info->si_signo ) {
     case SIGILL:
         switch( m_sig_info->si_code ) {
-#ifndef BOOST_TEST_LIMITED_SIGNAL_DETAILS
+#ifndef NDNBOOST_TEST_LIMITED_SIGNAL_DETAILS
         case ILL_ILLOPC:
             report_error( execution_exception::system_fatal_error,
                           "signal: illegal opcode; address of failing instruction: 0x%08lx",
@@ -458,7 +458,7 @@
 
     case SIGSEGV:
         switch( m_sig_info->si_code ) {
-#ifndef BOOST_TEST_LIMITED_SIGNAL_DETAILS
+#ifndef NDNBOOST_TEST_LIMITED_SIGNAL_DETAILS
         case SEGV_MAPERR:
             report_error( execution_exception::system_fatal_error,
                           "memory access violation at address: 0x%08lx: no mapping at fault address",
@@ -480,7 +480,7 @@
 
     case SIGBUS:
         switch( m_sig_info->si_code ) {
-#ifndef BOOST_TEST_LIMITED_SIGNAL_DETAILS
+#ifndef NDNBOOST_TEST_LIMITED_SIGNAL_DETAILS
         case BUS_ADRALN:
             report_error( execution_exception::system_fatal_error,
                           "memory access violation at address: 0x%08lx: invalid address alignment",
@@ -507,7 +507,7 @@
 
     case SIGCHLD:
         switch( m_sig_info->si_code ) {
-#ifndef BOOST_TEST_LIMITED_SIGNAL_DETAILS
+#ifndef NDNBOOST_TEST_LIMITED_SIGNAL_DETAILS
         case CLD_EXITED:
             report_error( execution_exception::system_error,
                           "child has exited; pid: %d; uid: %d; exit value: %d",
@@ -547,11 +547,11 @@
         }
         break;
 
-#if defined(BOOST_TEST_CATCH_SIGPOLL)
+#if defined(NDNBOOST_TEST_CATCH_SIGPOLL)
 
     case SIGPOLL:
         switch( m_sig_info->si_code ) {
-#ifndef BOOST_TEST_LIMITED_SIGNAL_DETAILS
+#ifndef NDNBOOST_TEST_LIMITED_SIGNAL_DETAILS
         case POLL_IN:
             report_error( execution_exception::system_error,
                           "data input available; band event %d",
@@ -655,7 +655,7 @@
 
     std::memset( &m_new_action, 0, sizeof(struct sigaction) );
 
-    BOOST_TEST_SYS_ASSERT( ::sigaction( m_sig , sigaction_ptr(), &m_new_action ) != -1 );
+    NDNBOOST_TEST_SYS_ASSERT( ::sigaction( m_sig , sigaction_ptr(), &m_new_action ) != -1 );
 
     if( m_new_action.sa_sigaction || m_new_action.sa_handler ) {
         m_installed = false;
@@ -665,14 +665,14 @@
     m_new_action.sa_flags     |= SA_SIGINFO;
     m_new_action.sa_sigaction  = attach_dbg ? &execution_monitor_attaching_signal_handler
                                             : &execution_monitor_jumping_signal_handler;
-    BOOST_TEST_SYS_ASSERT( sigemptyset( &m_new_action.sa_mask ) != -1 );
+    NDNBOOST_TEST_SYS_ASSERT( sigemptyset( &m_new_action.sa_mask ) != -1 );
 
-#ifdef BOOST_TEST_USE_ALT_STACK
+#ifdef NDNBOOST_TEST_USE_ALT_STACK
     if( alt_stack )
         m_new_action.sa_flags |= SA_ONSTACK;
 #endif
 
-    BOOST_TEST_SYS_ASSERT( ::sigaction( m_sig, &m_new_action, &m_old_action ) != -1 );
+    NDNBOOST_TEST_SYS_ASSERT( ::sigaction( m_sig, &m_new_action, &m_old_action ) != -1 );
 }
 
 //____________________________________________________________________________//
@@ -745,10 +745,10 @@
 , m_FPE_action ( SIGFPE , catch_system_errors, attach_dbg, alt_stack )
 , m_SEGV_action( SIGSEGV, catch_system_errors, attach_dbg, alt_stack )
 , m_BUS_action ( SIGBUS , catch_system_errors, attach_dbg, alt_stack )
-#ifndef BOOST_TEST_IGNORE_SIGCHLD
+#ifndef NDNBOOST_TEST_IGNORE_SIGCHLD
 , m_CHLD_action( SIGCHLD, catch_system_errors, attach_dbg, alt_stack )
 #endif
-#ifdef BOOST_TEST_CATCH_SIGPOLL
+#ifdef NDNBOOST_TEST_CATCH_SIGPOLL
 , m_POLL_action( SIGPOLL, catch_system_errors, attach_dbg, alt_stack )
 #endif
 , m_ABRT_action( SIGABRT, catch_system_errors, attach_dbg, alt_stack )
@@ -761,18 +761,18 @@
         ::alarm( timeout );
     }
 
-#ifdef BOOST_TEST_USE_ALT_STACK
+#ifdef NDNBOOST_TEST_USE_ALT_STACK
     if( alt_stack ) {
         stack_t sigstk;
         std::memset( &sigstk, 0, sizeof(stack_t) );
 
-        BOOST_TEST_SYS_ASSERT( ::sigaltstack( 0, &sigstk ) != -1 );
+        NDNBOOST_TEST_SYS_ASSERT( ::sigaltstack( 0, &sigstk ) != -1 );
 
         if( sigstk.ss_flags & SS_DISABLE ) {
             sigstk.ss_sp    = alt_stack;
-            sigstk.ss_size  = BOOST_TEST_ALT_STACK_SIZE;
+            sigstk.ss_size  = NDNBOOST_TEST_ALT_STACK_SIZE;
             sigstk.ss_flags = 0;
-            BOOST_TEST_SYS_ASSERT( ::sigaltstack( &sigstk, 0 ) != -1 );
+            NDNBOOST_TEST_SYS_ASSERT( ::sigaltstack( &sigstk, 0 ) != -1 );
         }
     }
 #endif
@@ -787,7 +787,7 @@
     if( m_timeout > 0 )
         ::alarm( 0 );
 
-#ifdef BOOST_TEST_USE_ALT_STACK
+#ifdef NDNBOOST_TEST_USE_ALT_STACK
 #ifdef __GNUC__
     // We shouldn't need to explicitly initialize all the members here,
     // but gcc warns if we don't, so add initializers for each of the
@@ -799,7 +799,7 @@
 
     sigstk.ss_size  = MINSIGSTKSZ;
     sigstk.ss_flags = SS_DISABLE;
-    BOOST_TEST_SYS_ASSERT( ::sigaltstack( &sigstk, 0 ) != -1 );
+    NDNBOOST_TEST_SYS_ASSERT( ::sigaltstack( &sigstk, 0 ) != -1 );
 #endif
 
     s_active_handler = m_prev_handler;
@@ -816,10 +816,10 @@
 static bool ignore_sigchild( siginfo_t* info )
 {
     return info->si_signo == SIGCHLD
-#ifndef BOOST_TEST_LIMITED_SIGNAL_DETAILS
+#ifndef NDNBOOST_TEST_LIMITED_SIGNAL_DETAILS
             && info->si_code == CLD_EXITED 
 #endif
-#ifdef BOOST_TEST_IGNORE_NON_ZERO_CHILD_CODE
+#ifdef NDNBOOST_TEST_IGNORE_NON_ZERO_CHILD_CODE
             ;
 #else
             && (int)info->si_status == 0;
@@ -849,7 +849,7 @@
         execution_monitor_jumping_signal_handler( sig, info, context );
 
     // debugger attached; it will handle the signal
-    BOOST_TEST_SYS_ASSERT( ::signal( sig, SIG_DFL ) != SIG_ERR );
+    NDNBOOST_TEST_SYS_ASSERT( ::signal( sig, SIG_DFL ) != SIG_ERR );
 }
 
 //____________________________________________________________________________//
@@ -871,9 +871,9 @@
     p_catch_system_errors.value = false;
 #endif
 
-#ifdef BOOST_TEST_USE_ALT_STACK
+#ifdef NDNBOOST_TEST_USE_ALT_STACK
     if( !!p_use_alt_stack && !m_alt_stack )
-        m_alt_stack.reset( new char[BOOST_TEST_ALT_STACK_SIZE] );
+        m_alt_stack.reset( new char[NDNBOOST_TEST_ALT_STACK_SIZE] );
 #else
     p_use_alt_stack.value = false;
 #endif
@@ -889,13 +889,13 @@
 
 //____________________________________________________________________________//
 
-#elif defined(BOOST_SEH_BASED_SIGNAL_HANDLING)
+#elif defined(NDNBOOST_SEH_BASED_SIGNAL_HANDLING)
 
 // ************************************************************************** //
 // **************   Microsoft structured exception handling    ************** //
 // ************************************************************************** //
 
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x0564))
+#if NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x0564))
 namespace { void _set_se_translator( void* ) {} }
 #endif
 
@@ -1068,15 +1068,15 @@
 // **************          assert_reporting_function           ************** //
 // ************************************************************************** //
 
-int BOOST_TEST_CALL_DECL
+int NDNBOOST_TEST_CALL_DECL
 assert_reporting_function( int reportType, char* userMessage, int* )
 {
     switch( reportType ) {
-    case BOOST_TEST_CRT_ASSERT:
+    case NDNBOOST_TEST_CRT_ASSERT:
         detail::report_error( execution_exception::user_error, userMessage );
 
         return 1; // return value and retVal are not important since we never reach this line
-    case BOOST_TEST_CRT_ERROR:
+    case NDNBOOST_TEST_CRT_ERROR:
         detail::report_error( execution_exception::system_error, userMessage );
 
         return 1; // return value and retVal are not important since we never reach this line
@@ -1087,7 +1087,7 @@
 
 //____________________________________________________________________________//
 
-void BOOST_TEST_CALL_DECL
+void NDNBOOST_TEST_CALL_DECL
 invalid_param_handler( wchar_t const* /* expr */, 
                        wchar_t const* /* func */, 
                        wchar_t const* /* file */, 
@@ -1100,7 +1100,7 @@
 
 //____________________________________________________________________________//
 
-void BOOST_TEST_CALL_DECL
+void NDNBOOST_TEST_CALL_DECL
 switch_fp_exceptions( bool on_off )
 {
     if( !on_off )
@@ -1134,7 +1134,7 @@
 execution_monitor::catch_signals( unit_test::callback0<int> const& F )
 {
     _invalid_parameter_handler old_iph = _invalid_parameter_handler();
-    BOOST_TEST_CRT_HOOK_TYPE old_crt_hook = 0;
+    NDNBOOST_TEST_CRT_HOOK_TYPE old_crt_hook = 0;
 
     if( !p_catch_system_errors )
         _set_se_translator( &detail::seh_catch_preventer );
@@ -1142,7 +1142,7 @@
         if( !!p_detect_fp_exceptions )
             detail::switch_fp_exceptions( true );
 
-       old_crt_hook = BOOST_TEST_CRT_SET_HOOK( &detail::assert_reporting_function );
+       old_crt_hook = NDNBOOST_TEST_CRT_SET_HOOK( &detail::assert_reporting_function );
 
        old_iph = _set_invalid_parameter_handler( 
            reinterpret_cast<_invalid_parameter_handler>( &detail::invalid_param_handler ) );
@@ -1165,7 +1165,7 @@
             if( !!p_detect_fp_exceptions )
                 detail::switch_fp_exceptions( false );
 
-            BOOST_TEST_CRT_SET_HOOK( old_crt_hook );
+            NDNBOOST_TEST_CRT_SET_HOOK( old_crt_hook );
 
            _set_invalid_parameter_handler( old_iph );
         }
@@ -1230,7 +1230,7 @@
                               current_exception_cast<ndnboost::exception const>(),
                               "std::bad_alloc: %s", ex.what() ); }
 
-#if BOOST_WORKAROUND(__BORLANDC__, <= 0x0551)
+#if NDNBOOST_WORKAROUND(__BORLANDC__, <= 0x0551)
     catch( std::bad_cast const& ex )
       { detail::report_error( execution_exception::cpp_exception_error, 
                               current_exception_cast<ndnboost::exception const>(),
@@ -1345,7 +1345,7 @@
 
 execution_exception::execution_exception( error_code ec_, const_string what_msg_, location const& location_ )
 : m_error_code( ec_ )
-, m_what( what_msg_.empty() ? BOOST_TEST_L( "uncaught exception, system error or abort requested" ) : what_msg_ )
+, m_what( what_msg_.empty() ? NDNBOOST_TEST_L( "uncaught exception, system error or abort requested" ) : what_msg_ )
 , m_location( location_ )
 {}
 
@@ -1363,5 +1363,5 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_EXECUTION_MONITOR_IPP_012205GER
+#endif // NDNBOOST_TEST_EXECUTION_MONITOR_IPP_012205GER
 
diff --git a/include/ndnboost/test/impl/framework.ipp b/include/ndnboost/test/impl/framework.ipp
index cdbce24..2da90c6 100644
--- a/include/ndnboost/test/impl/framework.ipp
+++ b/include/ndnboost/test/impl/framework.ipp
@@ -12,8 +12,8 @@
 //  Description : implements framework API - main driver for the test
 // ***************************************************************************
 
-#ifndef BOOST_TEST_FRAMEWORK_IPP_021005GER
-#define BOOST_TEST_FRAMEWORK_IPP_021005GER
+#ifndef NDNBOOST_TEST_FRAMEWORK_IPP_021005GER
+#define NDNBOOST_TEST_FRAMEWORK_IPP_021005GER
 
 // Boost.Test
 #include <ndnboost/test/framework.hpp>
@@ -42,7 +42,7 @@
 #include <cstdlib>
 #include <ctime>
 
-#ifdef BOOST_NO_STDC_NAMESPACE
+#ifdef NDNBOOST_NO_STDC_NAMESPACE
 namespace std { using ::time; using ::srand; }
 #endif
 
@@ -86,7 +86,7 @@
     {}
     int         operator()()
     {
-#ifdef BOOST_TEST_ALTERNATIVE_INIT_API
+#ifdef NDNBOOST_TEST_ALTERNATIVE_INIT_API
         if( !(*m_init_func)() )
             throw std::runtime_error( "test module initialization failed" );
 #else
@@ -141,13 +141,13 @@
     void            visit( test_case const& tc )
     {
         if( !tc.check_dependencies() ) {
-            BOOST_TEST_FOREACH( test_observer*, to, m_observers )
+            NDNBOOST_TEST_FOREACH( test_observer*, to, m_observers )
                 to->test_unit_skipped( tc );
 
             return;
         }
 
-        BOOST_TEST_FOREACH( test_observer*, to, m_observers )
+        NDNBOOST_TEST_FOREACH( test_observer*, to, m_observers )
             to->test_unit_start( tc );
 
         ndnboost::timer tc_timer;
@@ -158,11 +158,11 @@
         unsigned long elapsed = static_cast<unsigned long>( tc_timer.elapsed() * 1e6 );
 
         if( unit_test_monitor.is_critical_error( run_result ) ) {
-            BOOST_TEST_FOREACH( test_observer*, to, m_observers )
+            NDNBOOST_TEST_FOREACH( test_observer*, to, m_observers )
                 to->test_aborted();
         }
 
-        BOOST_TEST_FOREACH( test_observer*, to, m_observers )
+        NDNBOOST_TEST_FOREACH( test_observer*, to, m_observers )
             to->test_unit_finish( tc, elapsed );
 
         m_curr_test_case = bkup;
@@ -174,13 +174,13 @@
     bool            test_suite_start( test_suite const& ts )
     {
         if( !ts.check_dependencies() ) {
-            BOOST_TEST_FOREACH( test_observer*, to, m_observers )
+            NDNBOOST_TEST_FOREACH( test_observer*, to, m_observers )
                 to->test_unit_skipped( ts );
 
             return false;
         }
 
-        BOOST_TEST_FOREACH( test_observer*, to, m_observers )
+        NDNBOOST_TEST_FOREACH( test_observer*, to, m_observers )
             to->test_unit_start( ts );
 
         return true;
@@ -188,7 +188,7 @@
 
     void            test_suite_finish( test_suite const& ts )
     {
-        BOOST_TEST_FOREACH( test_observer*, to, m_observers )
+        NDNBOOST_TEST_FOREACH( test_observer*, to, m_observers )
             to->test_unit_finish( ts, 0 );
     }
 
@@ -287,11 +287,11 @@
 void
 register_test_unit( test_case* tc )
 {
-    BOOST_TEST_SETUP_ASSERT( tc->p_id == INV_TEST_UNIT_ID, BOOST_TEST_L( "test case already registered" ) );
+    NDNBOOST_TEST_SETUP_ASSERT( tc->p_id == INV_TEST_UNIT_ID, NDNBOOST_TEST_L( "test case already registered" ) );
 
     test_unit_id new_id = s_frk_impl().m_next_test_case_id;
 
-    BOOST_TEST_SETUP_ASSERT( new_id != MAX_TEST_CASE_ID, BOOST_TEST_L( "too many test cases" ) );
+    NDNBOOST_TEST_SETUP_ASSERT( new_id != MAX_TEST_CASE_ID, NDNBOOST_TEST_L( "too many test cases" ) );
 
     typedef framework_impl::test_unit_store::value_type map_value_type;
 
@@ -306,11 +306,11 @@
 void
 register_test_unit( test_suite* ts )
 {
-    BOOST_TEST_SETUP_ASSERT( ts->p_id == INV_TEST_UNIT_ID, BOOST_TEST_L( "test suite already registered" ) );
+    NDNBOOST_TEST_SETUP_ASSERT( ts->p_id == INV_TEST_UNIT_ID, NDNBOOST_TEST_L( "test suite already registered" ) );
 
     test_unit_id new_id = s_frk_impl().m_next_test_suite_id;
 
-    BOOST_TEST_SETUP_ASSERT( new_id != MAX_TEST_SUITE_ID, BOOST_TEST_L( "too many test suites" ) );
+    NDNBOOST_TEST_SETUP_ASSERT( new_id != MAX_TEST_SUITE_ID, NDNBOOST_TEST_L( "too many test suites" ) );
 
     typedef framework_impl::test_unit_store::value_type map_value_type;
     s_frk_impl().m_test_units.insert( map_value_type( new_id, ts ) );
@@ -402,9 +402,9 @@
     test_case_counter tcc;
     traverse_test_tree( id, tcc );
 
-    BOOST_TEST_SETUP_ASSERT( tcc.p_count != 0 , runtime_config::test_to_run().is_empty() 
-        ? BOOST_TEST_L( "test tree is empty" ) 
-        : BOOST_TEST_L( "no test cases matching filter" ) );
+    NDNBOOST_TEST_SETUP_ASSERT( tcc.p_count != 0 , runtime_config::test_to_run().is_empty() 
+        ? NDNBOOST_TEST_L( "test tree is empty" ) 
+        : NDNBOOST_TEST_L( "no test cases matching filter" ) );
 
     bool    call_start_finish   = !continue_test || !s_frk_impl().m_test_in_progress;
     bool    was_in_progress     = s_frk_impl().m_test_in_progress;
@@ -412,7 +412,7 @@
     s_frk_impl().m_test_in_progress = true;
 
     if( call_start_finish ) {
-        BOOST_TEST_FOREACH( test_observer*, to, s_frk_impl().m_observers ) {
+        NDNBOOST_TEST_FOREACH( test_observer*, to, s_frk_impl().m_observers ) {
             ndnboost::execution_monitor em;
 
             try {
@@ -429,12 +429,12 @@
         break;
     case 1: {
         unsigned int seed = static_cast<unsigned int>( std::time( 0 ) );
-        BOOST_TEST_MESSAGE( "Test cases order is shuffled using seed: " << seed );
+        NDNBOOST_TEST_MESSAGE( "Test cases order is shuffled using seed: " << seed );
         std::srand( seed );
         break;
     }
     default:
-        BOOST_TEST_MESSAGE( "Test cases order is shuffled using seed: " << runtime_config::random_seed() );
+        NDNBOOST_TEST_MESSAGE( "Test cases order is shuffled using seed: " << runtime_config::random_seed() );
         std::srand( runtime_config::random_seed() );
     }
 
@@ -446,7 +446,7 @@
     }
 
     if( call_start_finish ) {
-        BOOST_TEST_FOREACH( test_observer*, to, s_frk_impl().m_observers )
+        NDNBOOST_TEST_FOREACH( test_observer*, to, s_frk_impl().m_observers )
             to->test_finish();
     }
 
@@ -466,7 +466,7 @@
 void
 assertion_result( bool passed )
 {
-    BOOST_TEST_FOREACH( test_observer*, to, s_frk_impl().m_observers )
+    NDNBOOST_TEST_FOREACH( test_observer*, to, s_frk_impl().m_observers )
         to->assertion_result( passed );
 }
 
@@ -475,7 +475,7 @@
 void
 exception_caught( execution_exception const& ex )
 {
-    BOOST_TEST_FOREACH( test_observer*, to, s_frk_impl().m_observers )
+    NDNBOOST_TEST_FOREACH( test_observer*, to, s_frk_impl().m_observers )
         to->exception_caught( ex );
 }
 
@@ -484,7 +484,7 @@
 void
 test_unit_aborted( test_unit const& tu )
 {
-    BOOST_TEST_FOREACH( test_observer*, to, s_frk_impl().m_observers )
+    NDNBOOST_TEST_FOREACH( test_observer*, to, s_frk_impl().m_observers )
         to->test_unit_aborted( tu );
 }
 
@@ -500,4 +500,4 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_FRAMEWORK_IPP_021005GER
+#endif // NDNBOOST_TEST_FRAMEWORK_IPP_021005GER
diff --git a/include/ndnboost/test/impl/interaction_based.ipp b/include/ndnboost/test/impl/interaction_based.ipp
index 03ee9be..2d12fae 100644
--- a/include/ndnboost/test/impl/interaction_based.ipp
+++ b/include/ndnboost/test/impl/interaction_based.ipp
@@ -12,13 +12,13 @@
 //  Description : Facilities to perform interaction-based testing
 // ***************************************************************************
 
-#ifndef BOOST_TEST_INTERACTION_BASED_IPP_112105GER
-#define BOOST_TEST_INTERACTION_BASED_IPP_112105GER
+#ifndef NDNBOOST_TEST_INTERACTION_BASED_IPP_112105GER
+#define NDNBOOST_TEST_INTERACTION_BASED_IPP_112105GER
 
 // Boost.Test
 #include <ndnboost/test/detail/config.hpp>
 
-#if BOOST_TEST_SUPPORT_INTERACTION_TESTING
+#if NDNBOOST_TEST_SUPPORT_INTERACTION_TESTING
 
 // Boost.Test
 #include <ndnboost/test/detail/config.hpp>
@@ -66,7 +66,7 @@
     
     if( reset ) {
         if( new_ptr ) {
-            BOOST_TEST_SETUP_ASSERT( ptr == &dummy, BOOST_TEST_L( "Can't run two interation based test the same time" ) );
+            NDNBOOST_TEST_SETUP_ASSERT( ptr == &dummy, NDNBOOST_TEST_L( "Can't run two interation based test the same time" ) );
                 
             ptr = new_ptr;
         }
@@ -87,4 +87,4 @@
 
 #endif // not ancient compiler
 
-#endif // BOOST_TEST_INTERACTION_BASED_IPP_112105GER
+#endif // NDNBOOST_TEST_INTERACTION_BASED_IPP_112105GER
diff --git a/include/ndnboost/test/impl/logged_expectations.ipp b/include/ndnboost/test/impl/logged_expectations.ipp
index 4db7b81..cfe961a 100644
--- a/include/ndnboost/test/impl/logged_expectations.ipp
+++ b/include/ndnboost/test/impl/logged_expectations.ipp
@@ -12,13 +12,13 @@
 //  Description : Facilities to perform interaction based testng of logged expectations
 // ***************************************************************************
 
-#ifndef BOOST_TEST_LOGGED_EXPECTATIONS_IPP_120905GER
-#define BOOST_TEST_LOGGED_EXPECTATIONS_IPP_120905GER
+#ifndef NDNBOOST_TEST_LOGGED_EXPECTATIONS_IPP_120905GER
+#define NDNBOOST_TEST_LOGGED_EXPECTATIONS_IPP_120905GER
 
 // Boost.Test
 #include <ndnboost/test/detail/config.hpp>
 
-#if BOOST_TEST_SUPPORT_INTERACTION_TESTING
+#if NDNBOOST_TEST_SUPPORT_INTERACTION_TESTING
 
 #include <ndnboost/test/detail/global_typedef.hpp>
 
@@ -80,11 +80,11 @@
 expectations_logger::expectations_logger( const_string log_file_name, bool test_or_log )
 : m_test_or_log( test_or_log )
 {
-    BOOST_REQUIRE_MESSAGE( !log_file_name.is_empty(), "Empty expectations log file name" );
+    NDNBOOST_REQUIRE_MESSAGE( !log_file_name.is_empty(), "Empty expectations log file name" );
 
     m_log_file.open( log_file_name.begin(), test_or_log ? std::ios::in : std::ios::out );
 
-    BOOST_REQUIRE_MESSAGE( m_log_file.is_open(),
+    NDNBOOST_REQUIRE_MESSAGE( m_log_file.is_open(),
                            "Can't open expectations log file " << log_file_name
                                 << " for " << ( m_test_or_log ? "reading" : "writing") );
 
@@ -96,9 +96,9 @@
         const_string cline( line );
         string_token_iterator tit( cline, (dropped_delimeters = CLMN_SEP, kept_delimeters = dt_none));
 
-        BOOST_CHECK_EQUAL( *tit, FILE_SIG ); 
+        NDNBOOST_CHECK_EQUAL( *tit, FILE_SIG ); 
         ++tit;
-        BOOST_CHECK_EQUAL( *tit, ELOG_VER );
+        NDNBOOST_CHECK_EQUAL( *tit, ELOG_VER );
     }
     else {
         m_log_file << FILE_SIG << CLMN_SEP << ELOG_VER << LINE_SEP;
@@ -118,7 +118,7 @@
         const_string cline( line );
         string_token_iterator tit( cline, (dropped_delimeters = CLMN_SEP, kept_delimeters = dt_none));
         
-        BOOST_CHECK_EQUAL( *tit, DP_SIG ); ++tit;
+        NDNBOOST_CHECK_EQUAL( *tit, DP_SIG ); ++tit;
         return lexical_cast<bool>( *tit );
     }
     else {
@@ -141,8 +141,8 @@
         const_string cline( line );
         string_token_iterator tit( cline, (dropped_delimeters = CLMN_SEP, kept_delimeters = dt_none));
         
-        BOOST_CHECK_EQUAL( *tit, SCOPE_SIG ); ++tit;
-        BOOST_CHECK_EQUAL( *tit, scope_name );
+        NDNBOOST_CHECK_EQUAL( *tit, SCOPE_SIG ); ++tit;
+        NDNBOOST_CHECK_EQUAL( *tit, scope_name );
     }
     else {
         m_log_file << SCOPE_SIG << CLMN_SEP << scope_name << LINE_SEP;
@@ -164,8 +164,8 @@
         const_string cline( line );
         string_token_iterator tit( cline, (dropped_delimeters = CLMN_SEP, kept_delimeters = dt_none));
         
-        BOOST_CHECK_EQUAL( *tit, ALLOC_SIG ); ++tit;
-        BOOST_CHECK_EQUAL( lexical_cast<std::size_t>( *tit ), s );
+        NDNBOOST_CHECK_EQUAL( *tit, ALLOC_SIG ); ++tit;
+        NDNBOOST_CHECK_EQUAL( lexical_cast<std::size_t>( *tit ), s );
     }
     else {
         m_log_file << ALLOC_SIG << CLMN_SEP << s << LINE_SEP;
@@ -185,8 +185,8 @@
         const_string cline( line );
         string_token_iterator tit( cline, (dropped_delimeters = CLMN_SEP, kept_delimeters = dt_none));
         
-        BOOST_CHECK_EQUAL( *tit, DATA_SIG ); ++tit;
-        BOOST_CHECK_EQUAL( *tit, d );
+        NDNBOOST_CHECK_EQUAL( *tit, DATA_SIG ); ++tit;
+        NDNBOOST_CHECK_EQUAL( *tit, d );
     }
     else {
         m_log_file << DATA_SIG << CLMN_SEP << d << LINE_SEP;
@@ -206,7 +206,7 @@
         const_string cline( line );
         string_token_iterator tit( cline, (dropped_delimeters = CLMN_SEP, kept_delimeters = dt_none));
         
-        BOOST_CHECK_EQUAL( *tit, RETURN_SIG ); ++tit;
+        NDNBOOST_CHECK_EQUAL( *tit, RETURN_SIG ); ++tit;
         
         return std::string( tit->begin(), tit->size() );
     }
@@ -223,7 +223,7 @@
 // **************           logged expectations test           ************** //
 // ************************************************************************** //
 
-void BOOST_TEST_DECL
+void NDNBOOST_TEST_DECL
 logged_expectations( callback0<> const& F, const_string log_file_name, bool test_or_log )
 {
     expectations_logger el( log_file_name, test_or_log );
@@ -243,4 +243,4 @@
 
 #endif // not ancient compiler
 
-#endif // BOOST_TEST_LOGGED_EXPECTATIONS_IPP_120905GER
+#endif // NDNBOOST_TEST_LOGGED_EXPECTATIONS_IPP_120905GER
diff --git a/include/ndnboost/test/impl/plain_report_formatter.ipp b/include/ndnboost/test/impl/plain_report_formatter.ipp
index 1f0aaac..97bfd1d 100644
--- a/include/ndnboost/test/impl/plain_report_formatter.ipp
+++ b/include/ndnboost/test/impl/plain_report_formatter.ipp
@@ -12,8 +12,8 @@
 //  Description : plain report formatter definition
 // ***************************************************************************
 
-#ifndef BOOST_TEST_PLAIN_REPORT_FORMATTER_IPP_020105GER
-#define BOOST_TEST_PLAIN_REPORT_FORMATTER_IPP_020105GER
+#ifndef NDNBOOST_TEST_PLAIN_REPORT_FORMATTER_IPP_020105GER
+#define NDNBOOST_TEST_PLAIN_REPORT_FORMATTER_IPP_020105GER
 
 // Boost.Test
 #include <ndnboost/test/output/plain_report_formatter.hpp>
@@ -30,7 +30,7 @@
 
 #include <ndnboost/test/detail/suppress_warnings.hpp>
 
-# ifdef BOOST_NO_STDC_NAMESPACE
+# ifdef NDNBOOST_NO_STDC_NAMESPACE
 namespace std { using ::log10; }
 # endif
 
@@ -195,4 +195,4 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_PLAIN_REPORT_FORMATTER_IPP_020105GER
+#endif // NDNBOOST_TEST_PLAIN_REPORT_FORMATTER_IPP_020105GER
diff --git a/include/ndnboost/test/impl/progress_monitor.ipp b/include/ndnboost/test/impl/progress_monitor.ipp
index ac93432..9c4ee88 100644
--- a/include/ndnboost/test/impl/progress_monitor.ipp
+++ b/include/ndnboost/test/impl/progress_monitor.ipp
@@ -12,8 +12,8 @@
 //  Description : implements simple text based progress monitor
 // ***************************************************************************
 
-#ifndef BOOST_TEST_PROGRESS_MONITOR_IPP_020105GER
-#define BOOST_TEST_PROGRESS_MONITOR_IPP_020105GER
+#ifndef NDNBOOST_TEST_PROGRESS_MONITOR_IPP_020105GER
+#define NDNBOOST_TEST_PROGRESS_MONITOR_IPP_020105GER
 
 // Boost.Test
 #include <ndnboost/test/progress_monitor.hpp>
@@ -107,4 +107,4 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_PROGRESS_MONITOR_IPP_020105GER
+#endif // NDNBOOST_TEST_PROGRESS_MONITOR_IPP_020105GER
diff --git a/include/ndnboost/test/impl/results_collector.ipp b/include/ndnboost/test/impl/results_collector.ipp
index 7b676cf..d862f68 100644
--- a/include/ndnboost/test/impl/results_collector.ipp
+++ b/include/ndnboost/test/impl/results_collector.ipp
@@ -12,8 +12,8 @@
 //  Description : implements Unit Test results collecting facility.
 // ***************************************************************************
 
-#ifndef BOOST_TEST_RESULTS_COLLECTOR_IPP_021105GER
-#define BOOST_TEST_RESULTS_COLLECTOR_IPP_021105GER
+#ifndef NDNBOOST_TEST_RESULTS_COLLECTOR_IPP_021105GER
+#define NDNBOOST_TEST_RESULTS_COLLECTOR_IPP_021105GER
 
 // Boost.Test
 #include <ndnboost/test/unit_test_suite_impl.hpp>
@@ -101,7 +101,7 @@
 // **************               results_collector              ************** //
 // ************************************************************************** //
 
-#if !BOOST_WORKAROUND(BOOST_MSVC, <1300)
+#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <1300)
 
 namespace {
 
@@ -213,11 +213,11 @@
         
         bool num_failures_match = tr.p_aborted || tr.p_assertions_failed >= tr.p_expected_failures;
         if( !num_failures_match )
-            BOOST_TEST_MESSAGE( "Test case " << tu.p_name << " has fewer failures than expected" );
+            NDNBOOST_TEST_MESSAGE( "Test case " << tu.p_name << " has fewer failures than expected" );
 
         bool check_any_assertions = tr.p_aborted || (tr.p_assertions_failed != 0) || (tr.p_assertions_passed != 0);
         if( !check_any_assertions )
-            BOOST_TEST_MESSAGE( "Test case " << tu.p_name << " did not check any assertions" );
+            NDNBOOST_TEST_MESSAGE( "Test case " << tu.p_name << " did not check any assertions" );
     }
 }
 
@@ -291,4 +291,4 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_RESULTS_COLLECTOR_IPP_021105GER
+#endif // NDNBOOST_TEST_RESULTS_COLLECTOR_IPP_021105GER
diff --git a/include/ndnboost/test/impl/results_reporter.ipp b/include/ndnboost/test/impl/results_reporter.ipp
index 1009a3d..d66fa84 100644
--- a/include/ndnboost/test/impl/results_reporter.ipp
+++ b/include/ndnboost/test/impl/results_reporter.ipp
@@ -12,8 +12,8 @@
 //  Description : result reporting facilties
 // ***************************************************************************
 
-#ifndef BOOST_TEST_RESULTS_REPORTER_IPP_020105GER
-#define BOOST_TEST_RESULTS_REPORTER_IPP_020105GER
+#ifndef NDNBOOST_TEST_RESULTS_REPORTER_IPP_020105GER
+#define NDNBOOST_TEST_RESULTS_REPORTER_IPP_020105GER
 
 // Boost.Test
 #include <ndnboost/test/results_reporter.hpp>
@@ -199,4 +199,4 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_RESULTS_REPORTER_IPP_020105GER
+#endif // NDNBOOST_TEST_RESULTS_REPORTER_IPP_020105GER
diff --git a/include/ndnboost/test/impl/test_main.ipp b/include/ndnboost/test/impl/test_main.ipp
index 5991f1c..933183e 100644
--- a/include/ndnboost/test/impl/test_main.ipp
+++ b/include/ndnboost/test/impl/test_main.ipp
@@ -13,8 +13,8 @@
 //  Description : implements main function for Test Execution Monitor.
 // ***************************************************************************
 
-#ifndef BOOST_TEST_TEST_MAIN_IPP_012205GER
-#define BOOST_TEST_TEST_MAIN_IPP_012205GER
+#ifndef NDNBOOST_TEST_TEST_MAIN_IPP_012205GER
+#define NDNBOOST_TEST_TEST_MAIN_IPP_012205GER
 
 // Boost.Test
 #include <ndnboost/test/framework.hpp>
@@ -37,7 +37,7 @@
         int test_main_result = test_main( m_argc, m_argv );
 
         // translate a test_main non-success return into a test error
-        BOOST_CHECK( test_main_result == 0 || test_main_result == ndnboost::exit_success );
+        NDNBOOST_CHECK( test_main_result == 0 || test_main_result == ndnboost::exit_success );
     }
   
 private:
@@ -56,7 +56,7 @@
     
     framework::master_test_suite().p_name.value = "Test Program";
     
-    framework::master_test_suite().add( BOOST_TEST_CASE( test_main_caller( argc, argv ) ) );
+    framework::master_test_suite().add( NDNBOOST_TEST_CASE( test_main_caller( argc, argv ) ) );
     
     return 0;
 }
@@ -65,4 +65,4 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_TEST_MAIN_IPP_012205GER
+#endif // NDNBOOST_TEST_TEST_MAIN_IPP_012205GER
diff --git a/include/ndnboost/test/impl/test_tools.ipp b/include/ndnboost/test/impl/test_tools.ipp
index b47ef81..488af33 100644
--- a/include/ndnboost/test/impl/test_tools.ipp
+++ b/include/ndnboost/test/impl/test_tools.ipp
@@ -12,8 +12,8 @@
 //  Description : supplies offline implementation for the Test Tools
 // ***************************************************************************
 
-#ifndef BOOST_TEST_TEST_TOOLS_IPP_012205GER
-#define BOOST_TEST_TEST_TOOLS_IPP_012205GER
+#ifndef NDNBOOST_TEST_TEST_TOOLS_IPP_012205GER
+#define NDNBOOST_TEST_TEST_TOOLS_IPP_012205GER
 
 // Boost.Test
 #include <ndnboost/test/test_tools.hpp>
@@ -42,9 +42,9 @@
 
 //____________________________________________________________________________//
 
-# ifdef BOOST_NO_STDC_NAMESPACE
+# ifdef NDNBOOST_NO_STDC_NAMESPACE
 namespace std { using ::strcmp; using ::strlen; using ::isprint; }
-#if !defined( BOOST_NO_CWCHAR )
+#if !defined( NDNBOOST_NO_CWCHAR )
 namespace std { using ::wcscmp; }
 #endif
 # endif
@@ -64,7 +64,7 @@
         ostr << '\'' << t << '\'';
     else
         ostr << std::hex
-#if BOOST_TEST_USE_STD_LOCALE
+#if NDNBOOST_TEST_USE_STD_LOCALE
         << std::showbase
 #else
         << "0x"
@@ -79,7 +79,7 @@
 {
     ostr << std::hex
         // showbase is only available for new style streams:
-#if BOOST_TEST_USE_STD_LOCALE
+#if NDNBOOST_TEST_USE_STD_LOCALE
         << std::showbase
 #else
         << "0x"
@@ -385,7 +385,7 @@
 
 //____________________________________________________________________________//
 
-#if !defined( BOOST_NO_CWCHAR )
+#if !defined( NDNBOOST_NO_CWCHAR )
 
 predicate_result
 equal_impl( wchar_t const* left, wchar_t const* right )
@@ -393,7 +393,7 @@
     return (left && right) ? std::wcscmp( left, right ) == 0 : (left == right);
 }
 
-#endif // !defined( BOOST_NO_CWCHAR )
+#endif // !defined( NDNBOOST_NO_CWCHAR )
 
 //____________________________________________________________________________//
 
@@ -448,7 +448,7 @@
 
         m_pimpl->m_pattern.open( pattern_file_name.begin(), m );
 
-        BOOST_WARN_MESSAGE( m_pimpl->m_pattern.is_open(),
+        NDNBOOST_WARN_MESSAGE( m_pimpl->m_pattern.is_open(),
                              "Can't open pattern file " << pattern_file_name
                                 << " for " << (match_or_save ? "reading" : "writing") );
     }
@@ -585,7 +585,7 @@
 {
     m_pimpl->m_synced_string.erase();
 
-#ifndef BOOST_NO_STRINGSTREAM
+#ifndef NDNBOOST_NO_STRINGSTREAM
     str( std::string() );
 #else
     seekp( 0, std::ios::beg );
@@ -607,7 +607,7 @@
 void
 output_test_stream::sync()
 {
-#ifdef BOOST_NO_STRINGSTREAM
+#ifdef NDNBOOST_NO_STRINGSTREAM
     m_pimpl->m_synced_string.assign( str(), pcount() );
     freeze( false );
 #else
@@ -625,4 +625,4 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_TEST_TOOLS_IPP_012205GER
+#endif // NDNBOOST_TEST_TEST_TOOLS_IPP_012205GER
diff --git a/include/ndnboost/test/impl/unit_test_log.ipp b/include/ndnboost/test/impl/unit_test_log.ipp
index 63d089e..c5b7c12 100644
--- a/include/ndnboost/test/impl/unit_test_log.ipp
+++ b/include/ndnboost/test/impl/unit_test_log.ipp
@@ -12,8 +12,8 @@
 //  Description : implemets Unit Test Log
 // ***************************************************************************
 
-#ifndef BOOST_TEST_UNIT_TEST_LOG_IPP_012205GER
-#define BOOST_TEST_UNIT_TEST_LOG_IPP_012205GER
+#ifndef NDNBOOST_TEST_UNIT_TEST_LOG_IPP_012205GER
+#define NDNBOOST_TEST_UNIT_TEST_LOG_IPP_012205GER
 
 // Boost.Test
 #include <ndnboost/test/unit_test_log.hpp>
@@ -158,7 +158,7 @@
 void
 unit_test_log_t::test_aborted()
 {
-    BOOST_TEST_LOG_ENTRY( log_messages ) << "Test is aborted";
+    NDNBOOST_TEST_LOG_ENTRY( log_messages ) << "Test is aborted";
 }
 
 //____________________________________________________________________________//
@@ -321,25 +321,25 @@
     switch( s_log_impl().m_entry_data.m_level ) {
     case log_successful_tests:
         s_log_impl().m_log_formatter->log_entry_start( s_log_impl().stream(), s_log_impl().m_entry_data,
-                                                       unit_test_log_formatter::BOOST_UTL_ET_INFO );
+                                                       unit_test_log_formatter::NDNBOOST_UTL_ET_INFO );
         break;
     case log_messages:
         s_log_impl().m_log_formatter->log_entry_start( s_log_impl().stream(), s_log_impl().m_entry_data,
-                                                       unit_test_log_formatter::BOOST_UTL_ET_MESSAGE );
+                                                       unit_test_log_formatter::NDNBOOST_UTL_ET_MESSAGE );
         break;
     case log_warnings:
         s_log_impl().m_log_formatter->log_entry_start( s_log_impl().stream(), s_log_impl().m_entry_data,
-                                                       unit_test_log_formatter::BOOST_UTL_ET_WARNING );
+                                                       unit_test_log_formatter::NDNBOOST_UTL_ET_WARNING );
         break;
     case log_all_errors:
     case log_cpp_exception_errors:
     case log_system_errors:
         s_log_impl().m_log_formatter->log_entry_start( s_log_impl().stream(), s_log_impl().m_entry_data,
-                                                       unit_test_log_formatter::BOOST_UTL_ET_ERROR );
+                                                       unit_test_log_formatter::NDNBOOST_UTL_ET_ERROR );
         break;
     case log_fatal_errors:
         s_log_impl().m_log_formatter->log_entry_start( s_log_impl().stream(), s_log_impl().m_entry_data,
-                                                       unit_test_log_formatter::BOOST_UTL_ET_FATAL_ERROR );
+                                                       unit_test_log_formatter::NDNBOOST_UTL_ET_FATAL_ERROR );
         break;
     case log_nothing:
     case log_test_units:
@@ -441,4 +441,4 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_UNIT_TEST_LOG_IPP_012205GER
+#endif // NDNBOOST_TEST_UNIT_TEST_LOG_IPP_012205GER
diff --git a/include/ndnboost/test/impl/unit_test_main.ipp b/include/ndnboost/test/impl/unit_test_main.ipp
index bde871f..12691f5 100644
--- a/include/ndnboost/test/impl/unit_test_main.ipp
+++ b/include/ndnboost/test/impl/unit_test_main.ipp
@@ -12,8 +12,8 @@
 //  Description : main function implementation for Unit Test Framework
 // ***************************************************************************
 
-#ifndef BOOST_TEST_UNIT_TEST_MAIN_IPP_012205GER
-#define BOOST_TEST_UNIT_TEST_MAIN_IPP_012205GER
+#ifndef NDNBOOST_TEST_UNIT_TEST_MAIN_IPP_012205GER
+#define NDNBOOST_TEST_UNIT_TEST_MAIN_IPP_012205GER
 
 // Boost.Test
 #include <ndnboost/test/framework.hpp>
@@ -23,8 +23,8 @@
 
 #include <ndnboost/test/detail/unit_test_parameters.hpp>
 
-#if !defined(__BORLANDC__) && !BOOST_WORKAROUND( BOOST_MSVC, < 1300 ) && !BOOST_WORKAROUND( __SUNPRO_CC, < 0x5100 )
-#define BOOST_TEST_SUPPORT_RUN_BY_NAME
+#if !defined(__BORLANDC__) && !NDNBOOST_WORKAROUND( NDNBOOST_MSVC, < 1300 ) && !NDNBOOST_WORKAROUND( __SUNPRO_CC, < 0x5100 )
+#define NDNBOOST_TEST_SUPPORT_RUN_BY_NAME
 #include <ndnboost/test/utils/iterator/token_iterator.hpp>
 #endif
 
@@ -101,7 +101,7 @@
         const_string    m_value;
     };
     // Constructor
-#ifndef BOOST_TEST_SUPPORT_RUN_BY_NAME
+#ifndef NDNBOOST_TEST_SUPPORT_RUN_BY_NAME
     explicit        test_case_filter( const_string ) : m_depth( 0 ) {}
 #else
     explicit        test_case_filter( const_string tc_to_run ) 
@@ -170,7 +170,7 @@
 // **************                  unit_test_main              ************** //
 // ************************************************************************** //
 
-int BOOST_TEST_DECL
+int NDNBOOST_TEST_DECL
 unit_test_main( init_unit_test_func init_func, int argc, char* argv[] )
 {
     try {
@@ -214,17 +214,17 @@
 
 } // namespace ndnboost
 
-#if !defined(BOOST_TEST_DYN_LINK) && !defined(BOOST_TEST_NO_MAIN)
+#if !defined(NDNBOOST_TEST_DYN_LINK) && !defined(NDNBOOST_TEST_NO_MAIN)
 
 // ************************************************************************** //
 // **************        main function for tests using lib     ************** //
 // ************************************************************************** //
 
-int BOOST_TEST_CALL_DECL
+int NDNBOOST_TEST_CALL_DECL
 main( int argc, char* argv[] )
 {
     // prototype for user's unit test init function
-#ifdef BOOST_TEST_ALTERNATIVE_INIT_API
+#ifdef NDNBOOST_TEST_ALTERNATIVE_INIT_API
     extern bool init_unit_test();
 
     ndnboost::unit_test::init_unit_test_func init_func = &init_unit_test;
@@ -237,10 +237,10 @@
     return ::ndnboost::unit_test::unit_test_main( init_func, argc, argv );
 }
 
-#endif // !BOOST_TEST_DYN_LINK && !BOOST_TEST_NO_MAIN
+#endif // !NDNBOOST_TEST_DYN_LINK && !NDNBOOST_TEST_NO_MAIN
 
 //____________________________________________________________________________//
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_UNIT_TEST_MAIN_IPP_012205GER
+#endif // NDNBOOST_TEST_UNIT_TEST_MAIN_IPP_012205GER
diff --git a/include/ndnboost/test/impl/unit_test_monitor.ipp b/include/ndnboost/test/impl/unit_test_monitor.ipp
index 0932bf3..b74701d 100644
--- a/include/ndnboost/test/impl/unit_test_monitor.ipp
+++ b/include/ndnboost/test/impl/unit_test_monitor.ipp
@@ -13,8 +13,8 @@
 //  Test Framework to monitor test cases run.
 // ***************************************************************************
 
-#ifndef BOOST_TEST_UNIT_TEST_MONITOR_IPP_012205GER
-#define BOOST_TEST_UNIT_TEST_MONITOR_IPP_012205GER
+#ifndef NDNBOOST_TEST_UNIT_TEST_MONITOR_IPP_012205GER
+#define NDNBOOST_TEST_UNIT_TEST_MONITOR_IPP_012205GER
 
 // Boost.Test
 #include <ndnboost/test/unit_test_monitor.hpp>
@@ -98,4 +98,4 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_UNIT_TEST_MONITOR_IPP_012205GER
+#endif // NDNBOOST_TEST_UNIT_TEST_MONITOR_IPP_012205GER
diff --git a/include/ndnboost/test/impl/unit_test_parameters.ipp b/include/ndnboost/test/impl/unit_test_parameters.ipp
index ffc29c9..65f3fa5 100644
--- a/include/ndnboost/test/impl/unit_test_parameters.ipp
+++ b/include/ndnboost/test/impl/unit_test_parameters.ipp
@@ -15,8 +15,8 @@
 //  facility
 // ***************************************************************************
 
-#ifndef BOOST_TEST_UNIT_TEST_PARAMETERS_IPP_012205GER
-#define BOOST_TEST_UNIT_TEST_PARAMETERS_IPP_012205GER
+#ifndef NDNBOOST_TEST_UNIT_TEST_PARAMETERS_IPP_012205GER
+#define NDNBOOST_TEST_UNIT_TEST_PARAMETERS_IPP_012205GER
 
 // Boost.Test
 #include <ndnboost/test/detail/unit_test_parameters.hpp>
@@ -58,7 +58,7 @@
 
 //____________________________________________________________________________//
 
-# ifdef BOOST_NO_STDC_NAMESPACE
+# ifdef NDNBOOST_NO_STDC_NAMESPACE
 namespace std { using ::getenv; using ::strncmp; using ::strcmp; }
 # endif
 
@@ -93,7 +93,7 @@
     in >> val;
 
     ll = log_level_name[val];
-    BOOST_TEST_SETUP_ASSERT( ll != unit_test::invalid_log_level, "invalid log level " + val );
+    NDNBOOST_TEST_SETUP_ASSERT( ll != unit_test::invalid_log_level, "invalid log level " + val );
 
     return in;
 }
@@ -116,7 +116,7 @@
     in >> val;
 
     rl = report_level_name[val];
-    BOOST_TEST_SETUP_ASSERT( rl != INV_REPORT_LEVEL, "invalid report level " + val );
+    NDNBOOST_TEST_SETUP_ASSERT( rl != INV_REPORT_LEVEL, "invalid report level " + val );
 
     return in;
 }
@@ -138,7 +138,7 @@
     in >> val;
 
     of = output_format_name[val];
-    BOOST_TEST_SETUP_ASSERT( of != unit_test::INV_OF, "invalid output format " + val );
+    NDNBOOST_TEST_SETUP_ASSERT( of != unit_test::INV_OF, "invalid output format " + val );
 
     return in;
 }
@@ -175,25 +175,25 @@
 std::string USE_ALT_STACK     = "use_alt_stack";
 
 fixed_mapping<const_string,const_string> parameter_2_env_var(
-    AUTO_START_DBG    , "BOOST_TEST_AUTO_START_DBG",
-    BREAK_EXEC_PATH   , "BOOST_TEST_BREAK_EXEC_PATH",
-    BUILD_INFO        , "BOOST_TEST_BUILD_INFO",
-    CATCH_SYS_ERRORS  , "BOOST_TEST_CATCH_SYSTEM_ERRORS",
-    DETECT_FP_EXCEPT  , "BOOST_TEST_DETECT_FP_EXCEPTIONS",
-    DETECT_MEM_LEAKS  , "BOOST_TEST_DETECT_MEMORY_LEAK",
-    LOG_FORMAT        , "BOOST_TEST_LOG_FORMAT",
-    LOG_LEVEL         , "BOOST_TEST_LOG_LEVEL",
-    LOG_SINK          , "BOOST_TEST_LOG_SINK",
-    OUTPUT_FORMAT     , "BOOST_TEST_OUTPUT_FORMAT",
-    RANDOM_SEED       , "BOOST_TEST_RANDOM",
-    REPORT_FORMAT     , "BOOST_TEST_REPORT_FORMAT",
-    REPORT_LEVEL      , "BOOST_TEST_REPORT_LEVEL",
-    REPORT_SINK       , "BOOST_TEST_REPORT_SINK",
-    RESULT_CODE       , "BOOST_TEST_RESULT_CODE",
-    TESTS_TO_RUN      , "BOOST_TESTS_TO_RUN",
-    SAVE_TEST_PATTERN , "BOOST_TEST_SAVE_PATTERN",
-    SHOW_PROGRESS     , "BOOST_TEST_SHOW_PROGRESS",
-    USE_ALT_STACK     , "BOOST_TEST_USE_ALT_STACK",
+    AUTO_START_DBG    , "NDNBOOST_TEST_AUTO_START_DBG",
+    BREAK_EXEC_PATH   , "NDNBOOST_TEST_BREAK_EXEC_PATH",
+    BUILD_INFO        , "NDNBOOST_TEST_BUILD_INFO",
+    CATCH_SYS_ERRORS  , "NDNBOOST_TEST_CATCH_SYSTEM_ERRORS",
+    DETECT_FP_EXCEPT  , "NDNBOOST_TEST_DETECT_FP_EXCEPTIONS",
+    DETECT_MEM_LEAKS  , "NDNBOOST_TEST_DETECT_MEMORY_LEAK",
+    LOG_FORMAT        , "NDNBOOST_TEST_LOG_FORMAT",
+    LOG_LEVEL         , "NDNBOOST_TEST_LOG_LEVEL",
+    LOG_SINK          , "NDNBOOST_TEST_LOG_SINK",
+    OUTPUT_FORMAT     , "NDNBOOST_TEST_OUTPUT_FORMAT",
+    RANDOM_SEED       , "NDNBOOST_TEST_RANDOM",
+    REPORT_FORMAT     , "NDNBOOST_TEST_REPORT_FORMAT",
+    REPORT_LEVEL      , "NDNBOOST_TEST_REPORT_LEVEL",
+    REPORT_SINK       , "NDNBOOST_TEST_REPORT_SINK",
+    RESULT_CODE       , "NDNBOOST_TEST_RESULT_CODE",
+    TESTS_TO_RUN      , "NDNBOOST_TESTS_TO_RUN",
+    SAVE_TEST_PATTERN , "NDNBOOST_TEST_SAVE_PATTERN",
+    SHOW_PROGRESS     , "NDNBOOST_TEST_SHOW_PROGRESS",
+    USE_ALT_STACK     , "NDNBOOST_TEST_USE_ALT_STACK",
 
     ""
 );
@@ -412,7 +412,7 @@
 catch_sys_errors()
 {
     return retrieve_parameter( CATCH_SYS_ERRORS, s_cla_parser, 
-#ifdef BOOST_TEST_DEFAULTS_TO_CORE_DUMP
+#ifdef NDNBOOST_TEST_DEFAULTS_TO_CORE_DUMP
         false
 #else
         true 
@@ -524,4 +524,4 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_UNIT_TEST_PARAMETERS_IPP_012205GER
+#endif // NDNBOOST_TEST_UNIT_TEST_PARAMETERS_IPP_012205GER
diff --git a/include/ndnboost/test/impl/unit_test_suite.ipp b/include/ndnboost/test/impl/unit_test_suite.ipp
index 983682d..aea396e 100644
--- a/include/ndnboost/test/impl/unit_test_suite.ipp
+++ b/include/ndnboost/test/impl/unit_test_suite.ipp
@@ -13,8 +13,8 @@
 //                Extensions can be provided in separate files
 // ***************************************************************************
 
-#ifndef BOOST_TEST_UNIT_TEST_SUITE_IPP_012205GER
-#define BOOST_TEST_UNIT_TEST_SUITE_IPP_012205GER
+#ifndef NDNBOOST_TEST_UNIT_TEST_SUITE_IPP_012205GER
+#define NDNBOOST_TEST_UNIT_TEST_SUITE_IPP_012205GER
 
 // Boost.Test
 #include <ndnboost/detail/workaround.hpp>
@@ -33,8 +33,8 @@
 
 #include <ndnboost/test/detail/suppress_warnings.hpp>
 
-#if BOOST_WORKAROUND(__BORLANDC__, < 0x600) && \
-    BOOST_WORKAROUND(_STLPORT_VERSION, <= 0x450) \
+#if NDNBOOST_WORKAROUND(__BORLANDC__, < 0x600) && \
+    NDNBOOST_WORKAROUND(_STLPORT_VERSION, <= 0x450) \
     /**/
     using std::rand; // rand is in std and random_shuffle is in _STL
 #endif
@@ -78,7 +78,7 @@
 bool
 test_unit::check_dependencies() const
 {
-    BOOST_TEST_FOREACH( test_unit_id, tu_id, m_dependencies ) {
+    NDNBOOST_TEST_FOREACH( test_unit_id, tu_id, m_dependencies ) {
         if( !unit_test::results_collector.results( tu_id ).passed() )
             return false;
     }
@@ -108,7 +108,7 @@
 , m_test_func( test_func )
 {
      // !! weirdest MSVC BUG; try to remove this statement; looks like it eats first token of next statement   
-#if BOOST_WORKAROUND(BOOST_MSVC,<1300)   
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC,<1300)   
      0;   
 #endif 
     framework::register_test_unit( this );
@@ -172,7 +172,7 @@
 test_unit_id
 test_suite::get( const_string tu_name ) const
 {
-    BOOST_TEST_FOREACH( test_unit_id, id, m_members ) {
+    NDNBOOST_TEST_FOREACH( test_unit_id, id, m_members ) {
         if( tu_name == framework::get( id, ut_detail::test_id_2_unit_type( id ) ).p_name.get() )
             return id;
     }
@@ -203,13 +203,13 @@
 
     try {
         if( runtime_config::random_seed() == 0 ) {
-            BOOST_TEST_FOREACH( test_unit_id, id, suite.m_members )
+            NDNBOOST_TEST_FOREACH( test_unit_id, id, suite.m_members )
                 traverse_test_tree( id, V );
         }
         else {
             std::vector<test_unit_id> members( suite.m_members );
             std::random_shuffle( members.begin(), members.end() );
-            BOOST_TEST_FOREACH( test_unit_id, id, members )
+            NDNBOOST_TEST_FOREACH( test_unit_id, id, members )
                 traverse_test_tree( id, V );
         }
         
@@ -284,7 +284,7 @@
 
     if( id != INV_TEST_UNIT_ID ) {
         ts = &framework::get<test_suite>( id ); // !! test for invalid tu type
-        BOOST_ASSERT( ts->p_parent_id == curr_ts_store().back()->p_id );
+        NDNBOOST_ASSERT( ts->p_parent_id == curr_ts_store().back()->p_id );
     }
     else {
         ts = new test_suite( ts_name );
@@ -343,4 +343,4 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_UNIT_TEST_SUITE_IPP_012205GER
+#endif // NDNBOOST_TEST_UNIT_TEST_SUITE_IPP_012205GER
diff --git a/include/ndnboost/test/impl/xml_log_formatter.ipp b/include/ndnboost/test/impl/xml_log_formatter.ipp
index 0bf6460..49321c3 100644
--- a/include/ndnboost/test/impl/xml_log_formatter.ipp
+++ b/include/ndnboost/test/impl/xml_log_formatter.ipp
@@ -12,8 +12,8 @@
 //  Description : implements XML Log formatter
 // ***************************************************************************
 
-#ifndef BOOST_TEST_XML_LOG_FORMATTER_IPP_020105GER
-#define BOOST_TEST_XML_LOG_FORMATTER_IPP_020105GER
+#ifndef NDNBOOST_TEST_XML_LOG_FORMATTER_IPP_020105GER
+#define NDNBOOST_TEST_XML_LOG_FORMATTER_IPP_020105GER
 
 // Boost.Test
 #include <ndnboost/test/output/xml_log_formatter.hpp>
@@ -68,12 +68,12 @@
 xml_log_formatter::log_build_info( std::ostream& ostr )
 {
     ostr  << "<BuildInfo"
-            << " platform"  << attr_value() << BOOST_PLATFORM
-            << " compiler"  << attr_value() << BOOST_COMPILER
-            << " stl"       << attr_value() << BOOST_STDLIB
-            << " boost=\""  << BOOST_VERSION/100000     << "."
-                            << BOOST_VERSION/100 % 1000 << "."
-                            << BOOST_VERSION % 100      << '\"'
+            << " platform"  << attr_value() << NDNBOOST_PLATFORM
+            << " compiler"  << attr_value() << NDNBOOST_COMPILER
+            << " stl"       << attr_value() << NDNBOOST_STDLIB
+            << " boost=\""  << NDNBOOST_VERSION/100000     << "."
+                            << NDNBOOST_VERSION/100 % 1000 << "."
+                            << NDNBOOST_VERSION % 100      << '\"'
             << "/>";
 }
 
@@ -142,9 +142,9 @@
 
     m_curr_tag = xml_tags[let];
     ostr << '<' << m_curr_tag
-         << BOOST_TEST_L( " file" ) << attr_value() << entry_data.m_file_name
-         << BOOST_TEST_L( " line" ) << attr_value() << entry_data.m_line_num
-         << BOOST_TEST_L( "><![CDATA[" );
+         << NDNBOOST_TEST_L( " file" ) << attr_value() << entry_data.m_file_name
+         << NDNBOOST_TEST_L( " line" ) << attr_value() << entry_data.m_line_num
+         << NDNBOOST_TEST_L( "><![CDATA[" );
 }
 
 //____________________________________________________________________________//
@@ -160,7 +160,7 @@
 void
 xml_log_formatter::log_entry_finish( std::ostream& ostr )
 {
-    ostr << BOOST_TEST_L( "]]></" ) << m_curr_tag << BOOST_TEST_L( ">" );
+    ostr << NDNBOOST_TEST_L( "]]></" ) << m_curr_tag << NDNBOOST_TEST_L( ">" );
 
     m_curr_tag.clear();
 }
@@ -177,4 +177,4 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_XML_LOG_FORMATTER_IPP_020105GER
+#endif // NDNBOOST_TEST_XML_LOG_FORMATTER_IPP_020105GER
diff --git a/include/ndnboost/test/impl/xml_report_formatter.ipp b/include/ndnboost/test/impl/xml_report_formatter.ipp
index 92655ee..42b28a7 100644
--- a/include/ndnboost/test/impl/xml_report_formatter.ipp
+++ b/include/ndnboost/test/impl/xml_report_formatter.ipp
@@ -12,8 +12,8 @@
 //  Description : XML report formatter
 // ***************************************************************************
 
-#ifndef BOOST_TEST_XML_REPORT_FORMATTER_IPP_020105GER
-#define BOOST_TEST_XML_REPORT_FORMATTER_IPP_020105GER
+#ifndef NDNBOOST_TEST_XML_REPORT_FORMATTER_IPP_020105GER
+#define NDNBOOST_TEST_XML_REPORT_FORMATTER_IPP_020105GER
 
 // Boost.Test
 #include <ndnboost/test/results_collector.hpp>
@@ -112,4 +112,4 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_XML_REPORT_FORMATTER_IPP_020105GER
+#endif // NDNBOOST_TEST_XML_REPORT_FORMATTER_IPP_020105GER
diff --git a/include/ndnboost/test/interaction_based.hpp b/include/ndnboost/test/interaction_based.hpp
index bb38d21..0f158c3 100644
--- a/include/ndnboost/test/interaction_based.hpp
+++ b/include/ndnboost/test/interaction_based.hpp
@@ -12,8 +12,8 @@
 //  Description : Facilities to perform interaction-based testing
 // ***************************************************************************
 
-#ifndef BOOST_TEST_INTERACTION_BASED_HPP_112105GER
-#define BOOST_TEST_INTERACTION_BASED_HPP_112105GER
+#ifndef NDNBOOST_TEST_INTERACTION_BASED_HPP_112105GER
+#define NDNBOOST_TEST_INTERACTION_BASED_HPP_112105GER
 
 // Boost.Test
 #include <ndnboost/test/detail/config.hpp>
@@ -29,60 +29,60 @@
 //____________________________________________________________________________//
 
 // ************************************************************************** //
-// **************               BOOST_ITEST_EPOINT             ************** //
+// **************               NDNBOOST_ITEST_EPOINT             ************** //
 // ************************************************************************** //
 
-#define BOOST_ITEST_EPOINT( description ) \
-    ::ndnboost::itest::manager::instance().exception_point( BOOST_TEST_L(__FILE__), __LINE__, description )
+#define NDNBOOST_ITEST_EPOINT( description ) \
+    ::ndnboost::itest::manager::instance().exception_point( NDNBOOST_TEST_L(__FILE__), __LINE__, description )
 /**/
 
 // ************************************************************************** //
-// **************               BOOST_ITEST_DPOINT             ************** //
+// **************               NDNBOOST_ITEST_DPOINT             ************** //
 // ************************************************************************** //
 
-#define BOOST_ITEST_DPOINT() \
-    ::ndnboost::itest::manager::instance().decision_point( BOOST_TEST_L(__FILE__), __LINE__ )
+#define NDNBOOST_ITEST_DPOINT() \
+    ::ndnboost::itest::manager::instance().decision_point( NDNBOOST_TEST_L(__FILE__), __LINE__ )
 /**/
 
 // ************************************************************************** //
-// **************                BOOST_ITEST_SCOPE             ************** //
+// **************                NDNBOOST_ITEST_SCOPE             ************** //
 // ************************************************************************** //
 
-#define BOOST_ITEST_SCOPE( scope_name ) \
-    ::ndnboost::itest::scope_guard itest_scope_guard ## __LINE__( BOOST_TEST_L(__FILE__), __LINE__, BOOST_STRINGIZE(scope_name) )
+#define NDNBOOST_ITEST_SCOPE( scope_name ) \
+    ::ndnboost::itest::scope_guard itest_scope_guard ## __LINE__( NDNBOOST_TEST_L(__FILE__), __LINE__, NDNBOOST_STRINGIZE(scope_name) )
 /**/
 
 // ************************************************************************** //
-// **************                 BOOST_ITEST_NEW              ************** //
+// **************                 NDNBOOST_ITEST_NEW              ************** //
 // ************************************************************************** //
 
-#define BOOST_ITEST_NEW( type_name ) \
-    new ( ::ndnboost::itest::location( BOOST_TEST_L(__FILE__), __LINE__ ) ) type_name
+#define NDNBOOST_ITEST_NEW( type_name ) \
+    new ( ::ndnboost::itest::location( NDNBOOST_TEST_L(__FILE__), __LINE__ ) ) type_name
 /**/
 
 // ************************************************************************** //
-// **************              BOOST_ITEST_DATA_FLOW           ************** //
+// **************              NDNBOOST_ITEST_DATA_FLOW           ************** //
 // ************************************************************************** //
 
-#define BOOST_ITEST_DATA_FLOW( v ) \
+#define NDNBOOST_ITEST_DATA_FLOW( v ) \
     ::ndnboost::itest::manager::instance().generic_data_flow( v )
 /**/
 
 // ************************************************************************** //
-// **************               BOOST_ITEST_RETURN             ************** //
+// **************               NDNBOOST_ITEST_RETURN             ************** //
 // ************************************************************************** //
 
-#define BOOST_ITEST_RETURN( type, default_value ) \
+#define NDNBOOST_ITEST_RETURN( type, default_value ) \
     ::ndnboost::itest::manager::instance().generic_return<type>( default_value )
 /**/
 
 // ************************************************************************** //
-// **************              BOOST_ITEST_MOCK_FUNC           ************** //
+// **************              NDNBOOST_ITEST_MOCK_FUNC           ************** //
 // ************************************************************************** //
 
-#define BOOST_ITEST_MOCK_FUNC( function_name )          \
-    BOOST_ITEST_SCOPE( function_name );                 \
-    BOOST_ITEST_EPOINT( 0 );                            \
+#define NDNBOOST_ITEST_MOCK_FUNC( function_name )          \
+    NDNBOOST_ITEST_SCOPE( function_name );                 \
+    NDNBOOST_ITEST_EPOINT( 0 );                            \
     return ::ndnboost::itest::mock_object<>::prototype();  \
 /**/
 
@@ -96,7 +96,7 @@
 // **************                    manager                   ************** //
 // ************************************************************************** //
 
-class BOOST_TEST_DECL manager {
+class NDNBOOST_TEST_DECL manager {
 public:
     // instance access
     static manager&     instance() { return *instance_ptr(); }
@@ -140,10 +140,10 @@
 
 protected:
     manager();
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) 
+#if NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564)) 
 public:
 #endif
-    BOOST_TEST_PROTECTED_VIRTUAL ~manager();
+    NDNBOOST_TEST_PROTECTED_VIRTUAL ~manager();
 
 private:
     struct dummy_constr{};
@@ -193,12 +193,12 @@
 // **************              operator new overload           ************** //
 // ************************************************************************** //
 
-#if !defined(BOOST_ITEST_NO_NEW_OVERLOADS)
+#if !defined(NDNBOOST_ITEST_NO_NEW_OVERLOADS)
 
 // STL
 #include <cstdlib>
 
-# ifdef BOOST_NO_STDC_NAMESPACE
+# ifdef NDNBOOST_NO_STDC_NAMESPACE
 namespace std { using ::malloc; using ::free; }
 # endif
 # ifdef _CRTDBG_MAP_ALLOC
@@ -259,4 +259,4 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_INTERACTION_BASED_HPP_112105GER
+#endif // NDNBOOST_TEST_INTERACTION_BASED_HPP_112105GER
diff --git a/include/ndnboost/test/minimal.hpp b/include/ndnboost/test/minimal.hpp
index 9f4ca44..b2059f8 100644
--- a/include/ndnboost/test/minimal.hpp
+++ b/include/ndnboost/test/minimal.hpp
@@ -12,23 +12,23 @@
 //  Description : simple minimal testing definitions and implementation
 // ***************************************************************************
 
-#ifndef BOOST_TEST_MINIMAL_HPP_071894GER
-#define BOOST_TEST_MINIMAL_HPP_071894GER
+#ifndef NDNBOOST_TEST_MINIMAL_HPP_071894GER
+#define NDNBOOST_TEST_MINIMAL_HPP_071894GER
 
-#define BOOST_CHECK(exp)       \
+#define NDNBOOST_CHECK(exp)       \
   ( (exp)                      \
       ? static_cast<void>(0)   \
-      : ndnboost::minimal_test::report_error(#exp,__FILE__,__LINE__, BOOST_CURRENT_FUNCTION) )
+      : ndnboost::minimal_test::report_error(#exp,__FILE__,__LINE__, NDNBOOST_CURRENT_FUNCTION) )
 
-#define BOOST_REQUIRE(exp)     \
+#define NDNBOOST_REQUIRE(exp)     \
   ( (exp)                      \
       ? static_cast<void>(0)   \
-      : ndnboost::minimal_test::report_critical_error(#exp,__FILE__,__LINE__,BOOST_CURRENT_FUNCTION))
+      : ndnboost::minimal_test::report_critical_error(#exp,__FILE__,__LINE__,NDNBOOST_CURRENT_FUNCTION))
 
-#define BOOST_ERROR( msg_ )    \
-        ndnboost::minimal_test::report_error( (msg_),__FILE__,__LINE__, BOOST_CURRENT_FUNCTION, true )
-#define BOOST_FAIL( msg_ )     \
-        ndnboost::minimal_test::report_critical_error( (msg_),__FILE__,__LINE__, BOOST_CURRENT_FUNCTION, true )
+#define NDNBOOST_ERROR( msg_ )    \
+        ndnboost::minimal_test::report_error( (msg_),__FILE__,__LINE__, NDNBOOST_CURRENT_FUNCTION, true )
+#define NDNBOOST_FAIL( msg_ )     \
+        ndnboost::minimal_test::report_critical_error( (msg_),__FILE__,__LINE__, NDNBOOST_CURRENT_FUNCTION, true )
 
 //____________________________________________________________________________//
 
@@ -41,7 +41,7 @@
 
 // Boost
 #include <ndnboost/cstdlib.hpp>            // for exit codes#include <ndnboost/cstdlib.hpp>            // for exit codes
-#include <ndnboost/current_function.hpp>   // for BOOST_CURRENT_FUNCTION
+#include <ndnboost/current_function.hpp>   // for NDNBOOST_CURRENT_FUNCTION
 
 // STL
 #include <iostream>                     // std::cerr, std::endl
@@ -106,7 +106,7 @@
 
 //____________________________________________________________________________//
 
-int BOOST_TEST_CALL_DECL main( int argc, char* argv[] )
+int NDNBOOST_TEST_CALL_DECL main( int argc, char* argv[] )
 {
     using namespace ndnboost::minimal_test;
 
@@ -114,11 +114,11 @@
         ::ndnboost::execution_monitor ex_mon;
         int run_result = ex_mon.execute( caller( argc, argv ) );
 
-        BOOST_CHECK( run_result == 0 || run_result == ndnboost::exit_success );
+        NDNBOOST_CHECK( run_result == 0 || run_result == ndnboost::exit_success );
     }
     catch( ndnboost::execution_exception const& exex ) {
         if( exex.code() != ndnboost::execution_exception::no_error )
-            BOOST_ERROR( (std::string( "exception \"" ).
+            NDNBOOST_ERROR( (std::string( "exception \"" ).
                             append( exex.what().begin(), exex.what().end() ).
                             append( "\" caught" ) ).c_str() );
         std::cerr << "\n**** Testing aborted.";
@@ -140,4 +140,4 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_MINIMAL_HPP_071894GER
+#endif // NDNBOOST_TEST_MINIMAL_HPP_071894GER
diff --git a/include/ndnboost/test/mock_object.hpp b/include/ndnboost/test/mock_object.hpp
index f2ad7d0..585d94e 100644
--- a/include/ndnboost/test/mock_object.hpp
+++ b/include/ndnboost/test/mock_object.hpp
@@ -12,8 +12,8 @@
 //  Description : Facilities to perform exception safety_tests
 // ***************************************************************************
 
-#ifndef BOOST_TEST_MOCK_OBJECT_HPP_112205GER
-#define BOOST_TEST_MOCK_OBJECT_HPP_112205GER
+#ifndef NDNBOOST_TEST_MOCK_OBJECT_HPP_112205GER
+#define NDNBOOST_TEST_MOCK_OBJECT_HPP_112205GER
 
 // Boost.Test
 #include <ndnboost/test/detail/config.hpp>
@@ -59,8 +59,8 @@
 // ************************************************************************** //
 
 #define MO_OP_IMPL( op, descr, ret )                        \
-    BOOST_ITEST_SCOPE( mock_object::operator op );          \
-    BOOST_ITEST_EPOINT( descr );                            \
+    NDNBOOST_ITEST_SCOPE( mock_object::operator op );          \
+    NDNBOOST_ITEST_EPOINT( descr );                            \
     return ret                                              \
 /**/
 
@@ -74,7 +74,7 @@
 #define MO_UNARY_BOOL_OP( op, descr )                       \
 bool operator op() const                                    \
 {                                                           \
-    MO_OP_IMPL( op, descr, (!!BOOST_ITEST_DPOINT()) );      \
+    MO_OP_IMPL( op, descr, (!!NDNBOOST_ITEST_DPOINT()) );      \
 }                                                           \
 /**/
 
@@ -108,21 +108,21 @@
 operator op( mock_object<i1,Base1> const&,                  \
              mock_object<i2,Base2> const& )                 \
 {                                                           \
-    MO_OP_IMPL( op, descr, BOOST_ITEST_DPOINT() );          \
+    MO_OP_IMPL( op, descr, NDNBOOST_ITEST_DPOINT() );          \
 }                                                           \
                                                             \
 template<int i, typename Base, typename T>                  \
 inline bool                                                 \
 operator op( mock_object<i,Base> const&, T const& )         \
 {                                                           \
-    MO_OP_IMPL( op, descr, BOOST_ITEST_DPOINT() );          \
+    MO_OP_IMPL( op, descr, NDNBOOST_ITEST_DPOINT() );          \
 }                                                           \
                                                             \
 template<int i, typename Base, typename T>                  \
 inline bool                                                 \
 operator op( T const&, mock_object<i,Base> const& )         \
 {                                                           \
-    MO_OP_IMPL( op, descr, BOOST_ITEST_DPOINT() );          \
+    MO_OP_IMPL( op, descr, NDNBOOST_ITEST_DPOINT() );          \
 }                                                           \
 /**/
 
@@ -153,54 +153,54 @@
     // Constructors
     mock_object()
     {
-        BOOST_ITEST_SCOPE( mock_object::mock_object );
-        BOOST_ITEST_EPOINT( "Mock object default constructor" );
+        NDNBOOST_ITEST_SCOPE( mock_object::mock_object );
+        NDNBOOST_ITEST_EPOINT( "Mock object default constructor" );
     }
 
     template<typename T1>
     mock_object( T1 const& arg1 )
     : mock_object_base( arg1 )
     {
-        BOOST_ITEST_SCOPE( mock_object::mock_object );
-        BOOST_ITEST_EPOINT( "Mock object constructor" );
+        NDNBOOST_ITEST_SCOPE( mock_object::mock_object );
+        NDNBOOST_ITEST_EPOINT( "Mock object constructor" );
     }
 
     template<typename T1, typename T2>
     mock_object( T1 const& arg1, T2 const& arg2 )
     : mock_object_base( arg1, arg2 )
     {
-        BOOST_ITEST_SCOPE( mock_object::mock_object );
-        BOOST_ITEST_EPOINT( "Mock object constructor" );
+        NDNBOOST_ITEST_SCOPE( mock_object::mock_object );
+        NDNBOOST_ITEST_EPOINT( "Mock object constructor" );
     }
 
     template<typename T1, typename T2, typename T3>
     mock_object( T1 const& arg1, T2 const& arg2, T3 const& arg3 )
     : mock_object_base( arg1, arg2, arg3 )
     {
-        BOOST_ITEST_SCOPE( mock_object::mock_object );
-        BOOST_ITEST_EPOINT( "Mock object constructor" );
+        NDNBOOST_ITEST_SCOPE( mock_object::mock_object );
+        NDNBOOST_ITEST_EPOINT( "Mock object constructor" );
     }
 
     template<typename T1, typename T2, typename T3, typename T4>
     mock_object( T1 const& arg1, T2 const& arg2, T3 const& arg3, T4 const& arg4 )
     : mock_object_base( arg1, arg2, arg3, arg4 )
     {
-        BOOST_ITEST_SCOPE( mock_object::mock_object );
-        BOOST_ITEST_EPOINT( "Mock object constructor" );
+        NDNBOOST_ITEST_SCOPE( mock_object::mock_object );
+        NDNBOOST_ITEST_EPOINT( "Mock object constructor" );
     }
 
     template<typename T1, typename T2, typename T3, typename T4, typename T5>
     mock_object( T1 const& arg1, T2 const& arg2, T3 const& arg3, T4 const& arg4, T5 const& arg5 )
     : mock_object_base( arg1, arg2, arg3, arg4, arg5 )
     {
-        BOOST_ITEST_SCOPE( mock_object::mock_object );
-        BOOST_ITEST_EPOINT( "Mock object constructor" );
+        NDNBOOST_ITEST_SCOPE( mock_object::mock_object );
+        NDNBOOST_ITEST_EPOINT( "Mock object constructor" );
     }
 
     mock_object( mock_object const& )
     {
-        BOOST_ITEST_SCOPE( mock_object::mock_object );
-        BOOST_ITEST_EPOINT( "Mock object copy constructor" );
+        NDNBOOST_ITEST_SCOPE( mock_object::mock_object );
+        NDNBOOST_ITEST_EPOINT( "Mock object copy constructor" );
     }
 
     // assignment
@@ -238,7 +238,7 @@
     operator safe_bool() const
     {
         MO_OP_IMPL( safe_bool, "Bool context conversion",
-                    (BOOST_ITEST_DPOINT() ? 0 : &dummy::nonnull) );
+                    (NDNBOOST_ITEST_DPOINT() ? 0 : &dummy::nonnull) );
     }
 
     // Function-call operators
@@ -286,7 +286,7 @@
     }
 };
 
-// !! MO_BINARY_OP( BOOST_PP_COMMA(), "Comma operator" )
+// !! MO_BINARY_OP( NDNBOOST_PP_COMMA(), "Comma operator" )
 
 MO_BINARY_BOOL_OP( !=, "Inequality" )
 MO_BINARY_OP( %, "Modulus" )
@@ -325,4 +325,4 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_MOCK_OBJECT_HPP_112205GER
+#endif // NDNBOOST_TEST_MOCK_OBJECT_HPP_112205GER
diff --git a/include/ndnboost/test/output/compiler_log_formatter.hpp b/include/ndnboost/test/output/compiler_log_formatter.hpp
index acef150..f41df07 100644
--- a/include/ndnboost/test/output/compiler_log_formatter.hpp
+++ b/include/ndnboost/test/output/compiler_log_formatter.hpp
@@ -12,8 +12,8 @@
 //  Description : contains compiler like Log formatter definition
 // ***************************************************************************
 
-#ifndef BOOST_TEST_COMPILER_LOG_FORMATTER_HPP_020105GER
-#define BOOST_TEST_COMPILER_LOG_FORMATTER_HPP_020105GER
+#ifndef NDNBOOST_TEST_COMPILER_LOG_FORMATTER_HPP_020105GER
+#define NDNBOOST_TEST_COMPILER_LOG_FORMATTER_HPP_020105GER
 
 // Boost.Test
 #include <ndnboost/test/detail/global_typedef.hpp>
@@ -33,7 +33,7 @@
 // **************             compiler_log_formatter           ************** //
 // ************************************************************************** //
 
-class BOOST_TEST_DECL compiler_log_formatter : public unit_test_log_formatter {
+class NDNBOOST_TEST_DECL compiler_log_formatter : public unit_test_log_formatter {
 public:
     // Formatter interface
     void    log_start( std::ostream&, counter_t test_cases_amount );
@@ -65,4 +65,4 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_COMPILER_LOG_FORMATTER_HPP_020105GER
+#endif // NDNBOOST_TEST_COMPILER_LOG_FORMATTER_HPP_020105GER
diff --git a/include/ndnboost/test/output/plain_report_formatter.hpp b/include/ndnboost/test/output/plain_report_formatter.hpp
index a9bd022..0907c3f 100644
--- a/include/ndnboost/test/output/plain_report_formatter.hpp
+++ b/include/ndnboost/test/output/plain_report_formatter.hpp
@@ -12,8 +12,8 @@
 //  Description : plain report formatter implementation
 // ***************************************************************************
 
-#ifndef BOOST_TEST_PLAIN_REPORT_FORMATTER_HPP_020105GER
-#define BOOST_TEST_PLAIN_REPORT_FORMATTER_HPP_020105GER
+#ifndef NDNBOOST_TEST_PLAIN_REPORT_FORMATTER_HPP_020105GER
+#define NDNBOOST_TEST_PLAIN_REPORT_FORMATTER_HPP_020105GER
 
 // Boost.Test
 #include <ndnboost/test/detail/global_typedef.hpp>
@@ -59,4 +59,4 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_PLAIN_REPORT_FORMATTER_HPP_020105GER
+#endif // NDNBOOST_TEST_PLAIN_REPORT_FORMATTER_HPP_020105GER
diff --git a/include/ndnboost/test/output/xml_log_formatter.hpp b/include/ndnboost/test/output/xml_log_formatter.hpp
index 59ffdcc..7e548ad 100644
--- a/include/ndnboost/test/output/xml_log_formatter.hpp
+++ b/include/ndnboost/test/output/xml_log_formatter.hpp
@@ -12,8 +12,8 @@
 //  Description : contains XML Log formatter definition
 // ***************************************************************************
 
-#ifndef BOOST_TEST_XML_LOG_FORMATTER_020105GER
-#define BOOST_TEST_XML_LOG_FORMATTER_020105GER
+#ifndef NDNBOOST_TEST_XML_LOG_FORMATTER_020105GER
+#define NDNBOOST_TEST_XML_LOG_FORMATTER_020105GER
 
 // Boost.Test
 #include <ndnboost/test/detail/global_typedef.hpp>
@@ -69,4 +69,4 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_XML_LOG_FORMATTER_020105GER
+#endif // NDNBOOST_TEST_XML_LOG_FORMATTER_020105GER
diff --git a/include/ndnboost/test/output/xml_report_formatter.hpp b/include/ndnboost/test/output/xml_report_formatter.hpp
index 17fbe8d..57f02c0 100644
--- a/include/ndnboost/test/output/xml_report_formatter.hpp
+++ b/include/ndnboost/test/output/xml_report_formatter.hpp
@@ -12,8 +12,8 @@
 //  Description : XML report formatter implementation
 // ***************************************************************************
 
-#ifndef BOOST_TEST_XML_REPORT_FORMATTER_HPP_020105GER
-#define BOOST_TEST_XML_REPORT_FORMATTER_HPP_020105GER
+#ifndef NDNBOOST_TEST_XML_REPORT_FORMATTER_HPP_020105GER
+#define NDNBOOST_TEST_XML_REPORT_FORMATTER_HPP_020105GER
 
 // Boost.Test
 #include <ndnboost/test/detail/global_typedef.hpp>
@@ -55,4 +55,4 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_XML_REPORT_FORMATTER_HPP_020105GER
+#endif // NDNBOOST_TEST_XML_REPORT_FORMATTER_HPP_020105GER
diff --git a/include/ndnboost/test/output_test_stream.hpp b/include/ndnboost/test/output_test_stream.hpp
index a62aaef..4f0ab02 100644
--- a/include/ndnboost/test/output_test_stream.hpp
+++ b/include/ndnboost/test/output_test_stream.hpp
@@ -12,8 +12,8 @@
 //  Description : output_test_stream class definition
 // ***************************************************************************
 
-#ifndef BOOST_TEST_OUTPUT_TEST_STREAM_HPP_012705GER
-#define BOOST_TEST_OUTPUT_TEST_STREAM_HPP_012705GER
+#ifndef NDNBOOST_TEST_OUTPUT_TEST_STREAM_HPP_012705GER
+#define NDNBOOST_TEST_OUTPUT_TEST_STREAM_HPP_012705GER
 
 // Boost.Test
 #include <ndnboost/test/detail/global_typedef.hpp>
@@ -37,7 +37,7 @@
 
 namespace test_tools {
 
-class BOOST_TEST_DECL output_test_stream : public wrap_stringstream::wrapped_stream {
+class NDNBOOST_TEST_DECL output_test_stream : public wrap_stringstream::wrapped_stream {
     typedef unit_test::const_string const_string;
     typedef predicate_result        result_type;
 public:
@@ -75,4 +75,4 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_OUTPUT_TEST_STREAM_HPP_012705GER
+#endif // NDNBOOST_TEST_OUTPUT_TEST_STREAM_HPP_012705GER
diff --git a/include/ndnboost/test/predicate_result.hpp b/include/ndnboost/test/predicate_result.hpp
index 13dc668..532b689 100644
--- a/include/ndnboost/test/predicate_result.hpp
+++ b/include/ndnboost/test/predicate_result.hpp
@@ -12,8 +12,8 @@
 //  Description : enhanced result for test predicate that include message explaining failure
 // ***************************************************************************
 
-#ifndef BOOST_TEST_PREDICATE_RESULT_HPP_012705GER
-#define BOOST_TEST_PREDICATE_RESULT_HPP_012705GER
+#ifndef NDNBOOST_TEST_PREDICATE_RESULT_HPP_012705GER
+#define NDNBOOST_TEST_PREDICATE_RESULT_HPP_012705GER
 
 // Boost.Test
 #include <ndnboost/test/utils/class_properties.hpp>
@@ -39,7 +39,7 @@
 // **************                predicate_result              ************** //
 // ************************************************************************** //
 
-class BOOST_TEST_DECL predicate_result {
+class NDNBOOST_TEST_DECL predicate_result {
     typedef unit_test::const_string      const_string;
     struct dummy { void nonnull() {}; };
     typedef void (dummy::*safe_bool)();
@@ -59,7 +59,7 @@
     operator            safe_bool() const           { return !!p_predicate_value ? &dummy::nonnull : 0; }
 
     // Public properties
-    BOOST_READONLY_PROPERTY( bool, (predicate_result) ) p_predicate_value;
+    NDNBOOST_READONLY_PROPERTY( bool, (predicate_result) ) p_predicate_value;
 
     // Access methods
     bool                has_empty_message() const   { return !m_message; }
@@ -85,4 +85,4 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_PREDICATE_RESULT_HPP_012705GER
+#endif // NDNBOOST_TEST_PREDICATE_RESULT_HPP_012705GER
diff --git a/include/ndnboost/test/progress_monitor.hpp b/include/ndnboost/test/progress_monitor.hpp
index bca78ad..bf2c489 100644
--- a/include/ndnboost/test/progress_monitor.hpp
+++ b/include/ndnboost/test/progress_monitor.hpp
@@ -12,8 +12,8 @@
 //  Description : defines simple text based progress monitor
 // ***************************************************************************
 
-#ifndef BOOST_TEST_PROGRESS_MONITOR_HPP_020105GER
-#define BOOST_TEST_PROGRESS_MONITOR_HPP_020105GER
+#ifndef NDNBOOST_TEST_PROGRESS_MONITOR_HPP_020105GER
+#define NDNBOOST_TEST_PROGRESS_MONITOR_HPP_020105GER
 
 // Boost.Test
 #include <ndnboost/test/test_observer.hpp>
@@ -34,7 +34,7 @@
 // **************                progress_monitor              ************** //
 // ************************************************************************** //
 
-class BOOST_TEST_DECL progress_monitor_t : public test_observer, public singleton<progress_monitor_t> {
+class NDNBOOST_TEST_DECL progress_monitor_t : public test_observer, public singleton<progress_monitor_t> {
 public:
     // test observer interface
     void    test_start( counter_t test_cases_amount );
@@ -53,10 +53,10 @@
     void    set_stream( std::ostream& );
 
 private:
-    BOOST_TEST_SINGLETON_CONS( progress_monitor_t );
+    NDNBOOST_TEST_SINGLETON_CONS( progress_monitor_t );
 }; // progress_monitor_t
 
-BOOST_TEST_SINGLETON_INST( progress_monitor )
+NDNBOOST_TEST_SINGLETON_INST( progress_monitor )
 
 } // namespace unit_test
 
@@ -66,5 +66,5 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_PROGRESS_MONITOR_HPP_020105GER
+#endif // NDNBOOST_TEST_PROGRESS_MONITOR_HPP_020105GER
 
diff --git a/include/ndnboost/test/results_collector.hpp b/include/ndnboost/test/results_collector.hpp
index 858bc51..3fdccfa 100644
--- a/include/ndnboost/test/results_collector.hpp
+++ b/include/ndnboost/test/results_collector.hpp
@@ -13,8 +13,8 @@
 //  gathering test results and presenting this information to end-user
 // ***************************************************************************
 
-#ifndef BOOST_TEST_RESULTS_COLLECTOR_HPP_071894GER
-#define BOOST_TEST_RESULTS_COLLECTOR_HPP_071894GER
+#ifndef NDNBOOST_TEST_RESULTS_COLLECTOR_HPP_071894GER
+#define NDNBOOST_TEST_RESULTS_COLLECTOR_HPP_071894GER
 
 // Boost.Test
 #include <ndnboost/test/test_observer.hpp>
@@ -45,12 +45,12 @@
 // **************                 test_results                 ************** //
 // ************************************************************************** //
 
-class BOOST_TEST_DECL test_results {
+class NDNBOOST_TEST_DECL test_results {
 public:
     test_results();
 
-    typedef BOOST_READONLY_PROPERTY( counter_t, (results_collector_t)(test_results)(results_collect_helper) ) counter_prop;
-    typedef BOOST_READONLY_PROPERTY( bool,      (results_collector_t)(test_results)(results_collect_helper) ) bool_prop;
+    typedef NDNBOOST_READONLY_PROPERTY( counter_t, (results_collector_t)(test_results)(results_collect_helper) ) counter_prop;
+    typedef NDNBOOST_READONLY_PROPERTY( bool,      (results_collector_t)(test_results)(results_collect_helper) ) bool_prop;
 
     counter_prop    p_assertions_passed;
     counter_prop    p_assertions_failed;
@@ -76,7 +76,7 @@
 // **************               results_collector              ************** //
 // ************************************************************************** //
 
-class BOOST_TEST_DECL results_collector_t : public test_observer, public singleton<results_collector_t> {
+class NDNBOOST_TEST_DECL results_collector_t : public test_observer, public singleton<results_collector_t> {
 public:
     // test_observer interface implementation
     void                test_start( counter_t test_cases_amount );
@@ -95,10 +95,10 @@
     test_results const& results( test_unit_id ) const;
 
 private:
-    BOOST_TEST_SINGLETON_CONS( results_collector_t );
+    NDNBOOST_TEST_SINGLETON_CONS( results_collector_t );
 };
 
-BOOST_TEST_SINGLETON_INST( results_collector )
+NDNBOOST_TEST_SINGLETON_INST( results_collector )
 
 } // namespace unit_test
 
@@ -108,5 +108,5 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_RESULTS_COLLECTOR_HPP_071894GER
+#endif // NDNBOOST_TEST_RESULTS_COLLECTOR_HPP_071894GER
 
diff --git a/include/ndnboost/test/results_reporter.hpp b/include/ndnboost/test/results_reporter.hpp
index 013523c..16b9ec3 100644
--- a/include/ndnboost/test/results_reporter.hpp
+++ b/include/ndnboost/test/results_reporter.hpp
@@ -13,8 +13,8 @@
 //  gathering test results and presenting this information to end-user
 // ***************************************************************************
 
-#ifndef BOOST_TEST_RESULTS_REPORTER_HPP_021205GER
-#define BOOST_TEST_RESULTS_REPORTER_HPP_021205GER
+#ifndef NDNBOOST_TEST_RESULTS_REPORTER_HPP_021205GER
+#define NDNBOOST_TEST_RESULTS_REPORTER_HPP_021205GER
 
 // Boost.Test
 #include <ndnboost/test/detail/global_typedef.hpp>
@@ -37,7 +37,7 @@
 // **************              formatter interface             ************** //
 // ************************************************************************** //
 
-class BOOST_TEST_DECL format {
+class NDNBOOST_TEST_DECL format {
 public:
     // Destructor
     virtual ~format() {}
@@ -55,18 +55,18 @@
 // **************              report configuration            ************** //
 // ************************************************************************** //
 
-BOOST_TEST_DECL void    set_level( report_level );
-BOOST_TEST_DECL void    set_stream( std::ostream& );
-BOOST_TEST_DECL void    set_format( output_format );
-BOOST_TEST_DECL void    set_format( results_reporter::format* );
+NDNBOOST_TEST_DECL void    set_level( report_level );
+NDNBOOST_TEST_DECL void    set_stream( std::ostream& );
+NDNBOOST_TEST_DECL void    set_format( output_format );
+NDNBOOST_TEST_DECL void    set_format( results_reporter::format* );
 
-BOOST_TEST_DECL std::ostream& get_stream();
+NDNBOOST_TEST_DECL std::ostream& get_stream();
 
 // ************************************************************************** //
 // **************               report initiation              ************** //
 // ************************************************************************** //
 
-BOOST_TEST_DECL void    make_report( report_level l = INV_REPORT_LEVEL, test_unit_id = INV_TEST_UNIT_ID );
+NDNBOOST_TEST_DECL void    make_report( report_level l = INV_REPORT_LEVEL, test_unit_id = INV_TEST_UNIT_ID );
 inline void             confirmation_report( test_unit_id id = INV_TEST_UNIT_ID )   
 { make_report( CONFIRMATION_REPORT, id ); }
 inline void             short_report( test_unit_id id = INV_TEST_UNIT_ID )
@@ -84,5 +84,5 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_RESULTS_REPORTER_HPP_021205GER
+#endif // NDNBOOST_TEST_RESULTS_REPORTER_HPP_021205GER
 
diff --git a/include/ndnboost/test/test_observer.hpp b/include/ndnboost/test/test_observer.hpp
index 21a0846..7757a92 100644
--- a/include/ndnboost/test/test_observer.hpp
+++ b/include/ndnboost/test/test_observer.hpp
@@ -12,8 +12,8 @@
 //  Description : defines abstract interface for test observer
 // ***************************************************************************
 
-#ifndef BOOST_TEST_TEST_OBSERVER_HPP_021005GER
-#define BOOST_TEST_TEST_OBSERVER_HPP_021005GER
+#ifndef NDNBOOST_TEST_TEST_OBSERVER_HPP_021005GER
+#define NDNBOOST_TEST_TEST_OBSERVER_HPP_021005GER
 
 // Boost.Test
 #include <ndnboost/test/detail/fwd_decl.hpp>
@@ -32,7 +32,7 @@
 // **************                 test_observer                ************** //
 // ************************************************************************** //
 
-class BOOST_TEST_DECL test_observer {
+class NDNBOOST_TEST_DECL test_observer {
 public:
     // test observer interface
     virtual void    test_start( counter_t /* test_cases_amount */ ) {}
@@ -50,7 +50,7 @@
     virtual int     priority() { return 0; }
 
 protected:
-    BOOST_TEST_PROTECTED_VIRTUAL ~test_observer() {}
+    NDNBOOST_TEST_PROTECTED_VIRTUAL ~test_observer() {}
 };
 
 } // unit_test
@@ -61,5 +61,5 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_TEST_OBSERVER_HPP_021005GER
+#endif // NDNBOOST_TEST_TEST_OBSERVER_HPP_021005GER
 
diff --git a/include/ndnboost/test/test_tools.hpp b/include/ndnboost/test/test_tools.hpp
index 49a0f73..8e71c02 100644
--- a/include/ndnboost/test/test_tools.hpp
+++ b/include/ndnboost/test/test_tools.hpp
@@ -12,8 +12,8 @@
 //  Description : contains definition for all test tools in test toolbox
 // ***************************************************************************
 
-#ifndef BOOST_TEST_TEST_TOOLS_HPP_012705GER
-#define BOOST_TEST_TEST_TOOLS_HPP_012705GER
+#ifndef NDNBOOST_TEST_TEST_TOOLS_HPP_012705GER
+#define NDNBOOST_TEST_TEST_TOOLS_HPP_012705GER
 
 // Boost.Test
 #include <ndnboost/test/predicate_result.hpp>
@@ -50,7 +50,7 @@
 #include <ios>              // for std::boolalpha
 #include <climits>          // for CHAR_BIT
 
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
 # pragma warning(disable: 4127) // conditional expression is constant
 #endif
 
@@ -73,11 +73,11 @@
 // CT - check type
 // ARGS - arguments list
 
-#define BOOST_TEST_TOOL_IMPL( func, P, check_descr, TL, CT )            \
+#define NDNBOOST_TEST_TOOL_IMPL( func, P, check_descr, TL, CT )            \
     ::ndnboost::test_tools::tt_detail::func(                               \
         P,                                                              \
         ::ndnboost::unit_test::lazy_ostream::instance() << check_descr,    \
-        BOOST_TEST_L(__FILE__),                                         \
+        NDNBOOST_TEST_L(__FILE__),                                         \
         static_cast<std::size_t>(__LINE__),                             \
         ::ndnboost::test_tools::tt_detail::TL,                             \
         ::ndnboost::test_tools::tt_detail::CT                              \
@@ -85,220 +85,220 @@
 
 //____________________________________________________________________________//
 
-#define BOOST_CHECK_IMPL( P, check_descr, TL, CT )                  \
+#define NDNBOOST_CHECK_IMPL( P, check_descr, TL, CT )                  \
 do {                                                                \
-    BOOST_TEST_PASSPOINT();                                         \
-    BOOST_TEST_TOOL_IMPL( check_impl, P, check_descr, TL, CT ), 0 );\
+    NDNBOOST_TEST_PASSPOINT();                                         \
+    NDNBOOST_TEST_TOOL_IMPL( check_impl, P, check_descr, TL, CT ), 0 );\
 } while( ::ndnboost::test_tools::dummy_cond )                          \
 /**/
 
 //____________________________________________________________________________//
 
-#define BOOST_TEST_PASS_ARG_INFO( r, data, arg ) , arg, BOOST_STRINGIZE( arg )
+#define NDNBOOST_TEST_PASS_ARG_INFO( r, data, arg ) , arg, NDNBOOST_STRINGIZE( arg )
 
-#define BOOST_CHECK_WITH_ARGS_IMPL( P, check_descr, TL, CT, ARGS )  \
+#define NDNBOOST_CHECK_WITH_ARGS_IMPL( P, check_descr, TL, CT, ARGS )  \
 do {                                                                \
-    BOOST_TEST_PASSPOINT();                                         \
-    BOOST_TEST_TOOL_IMPL( check_frwd, P, check_descr, TL, CT )      \
-    BOOST_PP_SEQ_FOR_EACH( BOOST_TEST_PASS_ARG_INFO, '_', ARGS ) ); \
+    NDNBOOST_TEST_PASSPOINT();                                         \
+    NDNBOOST_TEST_TOOL_IMPL( check_frwd, P, check_descr, TL, CT )      \
+    NDNBOOST_PP_SEQ_FOR_EACH( NDNBOOST_TEST_PASS_ARG_INFO, '_', ARGS ) ); \
 } while( ::ndnboost::test_tools::dummy_cond )                          \
 /**/
 
 //____________________________________________________________________________//
 
-#define BOOST_WARN( P )                     BOOST_CHECK_IMPL( (P), BOOST_TEST_STRINGIZE( P ), WARN, CHECK_PRED )
-#define BOOST_CHECK( P )                    BOOST_CHECK_IMPL( (P), BOOST_TEST_STRINGIZE( P ), CHECK, CHECK_PRED )
-#define BOOST_REQUIRE( P )                  BOOST_CHECK_IMPL( (P), BOOST_TEST_STRINGIZE( P ), REQUIRE, CHECK_PRED )
+#define NDNBOOST_WARN( P )                     NDNBOOST_CHECK_IMPL( (P), NDNBOOST_TEST_STRINGIZE( P ), WARN, CHECK_PRED )
+#define NDNBOOST_CHECK( P )                    NDNBOOST_CHECK_IMPL( (P), NDNBOOST_TEST_STRINGIZE( P ), CHECK, CHECK_PRED )
+#define NDNBOOST_REQUIRE( P )                  NDNBOOST_CHECK_IMPL( (P), NDNBOOST_TEST_STRINGIZE( P ), REQUIRE, CHECK_PRED )
 
 //____________________________________________________________________________//
 
-#define BOOST_WARN_MESSAGE( P, M )          BOOST_CHECK_IMPL( (P), M, WARN, CHECK_MSG )
-#define BOOST_CHECK_MESSAGE( P, M )         BOOST_CHECK_IMPL( (P), M, CHECK, CHECK_MSG )
-#define BOOST_REQUIRE_MESSAGE( P, M )       BOOST_CHECK_IMPL( (P), M, REQUIRE, CHECK_MSG )
+#define NDNBOOST_WARN_MESSAGE( P, M )          NDNBOOST_CHECK_IMPL( (P), M, WARN, CHECK_MSG )
+#define NDNBOOST_CHECK_MESSAGE( P, M )         NDNBOOST_CHECK_IMPL( (P), M, CHECK, CHECK_MSG )
+#define NDNBOOST_REQUIRE_MESSAGE( P, M )       NDNBOOST_CHECK_IMPL( (P), M, REQUIRE, CHECK_MSG )
 
 //____________________________________________________________________________//
 
-#define BOOST_ERROR( M )                    BOOST_CHECK_MESSAGE( false, M )
-#define BOOST_FAIL( M )                     BOOST_REQUIRE_MESSAGE( false, M )
+#define NDNBOOST_ERROR( M )                    NDNBOOST_CHECK_MESSAGE( false, M )
+#define NDNBOOST_FAIL( M )                     NDNBOOST_REQUIRE_MESSAGE( false, M )
 
 //____________________________________________________________________________//
 
-#define BOOST_CHECK_THROW_IMPL( S, E, P, prefix, TL )                                                   \
+#define NDNBOOST_CHECK_THROW_IMPL( S, E, P, prefix, TL )                                                   \
     try {                                                                                               \
-        BOOST_TEST_PASSPOINT();                                                                         \
+        NDNBOOST_TEST_PASSPOINT();                                                                         \
         S;                                                                                              \
-        BOOST_CHECK_IMPL( false, "exception " BOOST_STRINGIZE( E ) " is expected", TL, CHECK_MSG ); }   \
+        NDNBOOST_CHECK_IMPL( false, "exception " NDNBOOST_STRINGIZE( E ) " is expected", TL, CHECK_MSG ); }   \
     catch( E const& ex ) {                                                                              \
         ::ndnboost::unit_test::ut_detail::ignore_unused_variable_warning( ex );                            \
-        BOOST_CHECK_IMPL( P, prefix BOOST_STRINGIZE( E ) " is caught", TL, CHECK_MSG );                 \
+        NDNBOOST_CHECK_IMPL( P, prefix NDNBOOST_STRINGIZE( E ) " is caught", TL, CHECK_MSG );                 \
     }                                                                                                   \
 /**/
 
 //____________________________________________________________________________//
 
-#define BOOST_WARN_THROW( S, E )            BOOST_CHECK_THROW_IMPL( S, E, true, "exception ", WARN )
-#define BOOST_CHECK_THROW( S, E )           BOOST_CHECK_THROW_IMPL( S, E, true, "exception ", CHECK )
-#define BOOST_REQUIRE_THROW( S, E )         BOOST_CHECK_THROW_IMPL( S, E, true, "exception ", REQUIRE )
+#define NDNBOOST_WARN_THROW( S, E )            NDNBOOST_CHECK_THROW_IMPL( S, E, true, "exception ", WARN )
+#define NDNBOOST_CHECK_THROW( S, E )           NDNBOOST_CHECK_THROW_IMPL( S, E, true, "exception ", CHECK )
+#define NDNBOOST_REQUIRE_THROW( S, E )         NDNBOOST_CHECK_THROW_IMPL( S, E, true, "exception ", REQUIRE )
 
 //____________________________________________________________________________//
 
-#define BOOST_WARN_EXCEPTION( S, E, P )     BOOST_CHECK_THROW_IMPL( S, E, P( ex ), "incorrect exception ", WARN )
-#define BOOST_CHECK_EXCEPTION( S, E, P )    BOOST_CHECK_THROW_IMPL( S, E, P( ex ), "incorrect exception ", CHECK )
-#define BOOST_REQUIRE_EXCEPTION( S, E, P )  BOOST_CHECK_THROW_IMPL( S, E, P( ex ), "incorrect exception ", REQUIRE )
+#define NDNBOOST_WARN_EXCEPTION( S, E, P )     NDNBOOST_CHECK_THROW_IMPL( S, E, P( ex ), "incorrect exception ", WARN )
+#define NDNBOOST_CHECK_EXCEPTION( S, E, P )    NDNBOOST_CHECK_THROW_IMPL( S, E, P( ex ), "incorrect exception ", CHECK )
+#define NDNBOOST_REQUIRE_EXCEPTION( S, E, P )  NDNBOOST_CHECK_THROW_IMPL( S, E, P( ex ), "incorrect exception ", REQUIRE )
 
 //____________________________________________________________________________//
 
-#define BOOST_CHECK_NO_THROW_IMPL( S, TL )                                                          \
+#define NDNBOOST_CHECK_NO_THROW_IMPL( S, TL )                                                          \
     try {                                                                                           \
         S;                                                                                          \
-        BOOST_CHECK_IMPL( true, "no exceptions thrown by " BOOST_STRINGIZE( S ), TL, CHECK_MSG ); } \
+        NDNBOOST_CHECK_IMPL( true, "no exceptions thrown by " NDNBOOST_STRINGIZE( S ), TL, CHECK_MSG ); } \
     catch( ... ) {                                                                                  \
-        BOOST_CHECK_IMPL( false, "exception thrown by " BOOST_STRINGIZE( S ), TL, CHECK_MSG );      \
+        NDNBOOST_CHECK_IMPL( false, "exception thrown by " NDNBOOST_STRINGIZE( S ), TL, CHECK_MSG );      \
     }                                                                                               \
 /**/
 
-#define BOOST_WARN_NO_THROW( S )            BOOST_CHECK_NO_THROW_IMPL( S, WARN )
-#define BOOST_CHECK_NO_THROW( S )           BOOST_CHECK_NO_THROW_IMPL( S, CHECK )
-#define BOOST_REQUIRE_NO_THROW( S )         BOOST_CHECK_NO_THROW_IMPL( S, REQUIRE )
+#define NDNBOOST_WARN_NO_THROW( S )            NDNBOOST_CHECK_NO_THROW_IMPL( S, WARN )
+#define NDNBOOST_CHECK_NO_THROW( S )           NDNBOOST_CHECK_NO_THROW_IMPL( S, CHECK )
+#define NDNBOOST_REQUIRE_NO_THROW( S )         NDNBOOST_CHECK_NO_THROW_IMPL( S, REQUIRE )
 
 //____________________________________________________________________________//
 
-#define BOOST_WARN_EQUAL( L, R ) \
-    BOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::tt_detail::equal_impl_frwd(), "", WARN, CHECK_EQUAL, (L)(R) )
-#define BOOST_CHECK_EQUAL( L, R ) \
-    BOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::tt_detail::equal_impl_frwd(), "", CHECK, CHECK_EQUAL, (L)(R) )
-#define BOOST_REQUIRE_EQUAL( L, R ) \
-    BOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::tt_detail::equal_impl_frwd(), "", REQUIRE, CHECK_EQUAL, (L)(R) )
+#define NDNBOOST_WARN_EQUAL( L, R ) \
+    NDNBOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::tt_detail::equal_impl_frwd(), "", WARN, CHECK_EQUAL, (L)(R) )
+#define NDNBOOST_CHECK_EQUAL( L, R ) \
+    NDNBOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::tt_detail::equal_impl_frwd(), "", CHECK, CHECK_EQUAL, (L)(R) )
+#define NDNBOOST_REQUIRE_EQUAL( L, R ) \
+    NDNBOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::tt_detail::equal_impl_frwd(), "", REQUIRE, CHECK_EQUAL, (L)(R) )
 
 //____________________________________________________________________________//
 
-#define BOOST_WARN_NE( L, R ) \
-    BOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::tt_detail::ne_impl(), "", WARN, CHECK_NE, (L)(R) )
-#define BOOST_CHECK_NE( L, R ) \
-    BOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::tt_detail::ne_impl(), "", CHECK, CHECK_NE, (L)(R) )
-#define BOOST_REQUIRE_NE( L, R ) \
-    BOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::tt_detail::ne_impl(), "", REQUIRE, CHECK_NE, (L)(R) )
+#define NDNBOOST_WARN_NE( L, R ) \
+    NDNBOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::tt_detail::ne_impl(), "", WARN, CHECK_NE, (L)(R) )
+#define NDNBOOST_CHECK_NE( L, R ) \
+    NDNBOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::tt_detail::ne_impl(), "", CHECK, CHECK_NE, (L)(R) )
+#define NDNBOOST_REQUIRE_NE( L, R ) \
+    NDNBOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::tt_detail::ne_impl(), "", REQUIRE, CHECK_NE, (L)(R) )
 
 //____________________________________________________________________________//
 
-#define BOOST_WARN_LT( L, R ) \
-    BOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::tt_detail::lt_impl(), "", WARN, CHECK_LT, (L)(R) )
-#define BOOST_CHECK_LT( L, R ) \
-    BOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::tt_detail::lt_impl(), "", CHECK, CHECK_LT, (L)(R) )
-#define BOOST_REQUIRE_LT( L, R ) \
-    BOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::tt_detail::lt_impl(), "", REQUIRE, CHECK_LT, (L)(R) )
+#define NDNBOOST_WARN_LT( L, R ) \
+    NDNBOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::tt_detail::lt_impl(), "", WARN, CHECK_LT, (L)(R) )
+#define NDNBOOST_CHECK_LT( L, R ) \
+    NDNBOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::tt_detail::lt_impl(), "", CHECK, CHECK_LT, (L)(R) )
+#define NDNBOOST_REQUIRE_LT( L, R ) \
+    NDNBOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::tt_detail::lt_impl(), "", REQUIRE, CHECK_LT, (L)(R) )
 
 //____________________________________________________________________________//
 
-#define BOOST_WARN_LE( L, R ) \
-    BOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::tt_detail::le_impl(), "", WARN, CHECK_LE, (L)(R) )
-#define BOOST_CHECK_LE( L, R ) \
-    BOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::tt_detail::le_impl(), "", CHECK, CHECK_LE, (L)(R) )
-#define BOOST_REQUIRE_LE( L, R ) \
-    BOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::tt_detail::le_impl(), "", REQUIRE, CHECK_LE, (L)(R) )
+#define NDNBOOST_WARN_LE( L, R ) \
+    NDNBOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::tt_detail::le_impl(), "", WARN, CHECK_LE, (L)(R) )
+#define NDNBOOST_CHECK_LE( L, R ) \
+    NDNBOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::tt_detail::le_impl(), "", CHECK, CHECK_LE, (L)(R) )
+#define NDNBOOST_REQUIRE_LE( L, R ) \
+    NDNBOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::tt_detail::le_impl(), "", REQUIRE, CHECK_LE, (L)(R) )
 
 //____________________________________________________________________________//
 
-#define BOOST_WARN_GT( L, R ) \
-    BOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::tt_detail::gt_impl(), "", WARN, CHECK_GT, (L)(R) )
-#define BOOST_CHECK_GT( L, R ) \
-    BOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::tt_detail::gt_impl(), "", CHECK, CHECK_GT, (L)(R) )
-#define BOOST_REQUIRE_GT( L, R ) \
-    BOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::tt_detail::gt_impl(), "", REQUIRE, CHECK_GT, (L)(R) )
+#define NDNBOOST_WARN_GT( L, R ) \
+    NDNBOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::tt_detail::gt_impl(), "", WARN, CHECK_GT, (L)(R) )
+#define NDNBOOST_CHECK_GT( L, R ) \
+    NDNBOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::tt_detail::gt_impl(), "", CHECK, CHECK_GT, (L)(R) )
+#define NDNBOOST_REQUIRE_GT( L, R ) \
+    NDNBOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::tt_detail::gt_impl(), "", REQUIRE, CHECK_GT, (L)(R) )
 
 //____________________________________________________________________________//
 
-#define BOOST_WARN_GE( L, R ) \
-    BOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::tt_detail::ge_impl(), "", WARN, CHECK_GE, (L)(R) )
-#define BOOST_CHECK_GE( L, R ) \
-    BOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::tt_detail::ge_impl(), "", CHECK, CHECK_GE, (L)(R) )
-#define BOOST_REQUIRE_GE( L, R ) \
-    BOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::tt_detail::ge_impl(), "", REQUIRE, CHECK_GE, (L)(R) )
+#define NDNBOOST_WARN_GE( L, R ) \
+    NDNBOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::tt_detail::ge_impl(), "", WARN, CHECK_GE, (L)(R) )
+#define NDNBOOST_CHECK_GE( L, R ) \
+    NDNBOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::tt_detail::ge_impl(), "", CHECK, CHECK_GE, (L)(R) )
+#define NDNBOOST_REQUIRE_GE( L, R ) \
+    NDNBOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::tt_detail::ge_impl(), "", REQUIRE, CHECK_GE, (L)(R) )
 
 //____________________________________________________________________________//
 
-#define BOOST_WARN_CLOSE( L, R, T ) \
-    BOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::check_is_close, "", WARN, CHECK_CLOSE, \
+#define NDNBOOST_WARN_CLOSE( L, R, T ) \
+    NDNBOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::check_is_close, "", WARN, CHECK_CLOSE, \
         (L)(R)(::ndnboost::test_tools::percent_tolerance(T)) )
-#define BOOST_CHECK_CLOSE( L, R, T ) \
-    BOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::check_is_close, "", CHECK, CHECK_CLOSE, \
+#define NDNBOOST_CHECK_CLOSE( L, R, T ) \
+    NDNBOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::check_is_close, "", CHECK, CHECK_CLOSE, \
         (L)(R)(::ndnboost::test_tools::percent_tolerance(T)) )
-#define BOOST_REQUIRE_CLOSE( L, R, T ) \
-    BOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::check_is_close, "", REQUIRE, CHECK_CLOSE, \
+#define NDNBOOST_REQUIRE_CLOSE( L, R, T ) \
+    NDNBOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::check_is_close, "", REQUIRE, CHECK_CLOSE, \
         (L)(R)(::ndnboost::test_tools::percent_tolerance(T)) )
 
 //____________________________________________________________________________//
 
-#define BOOST_WARN_CLOSE_FRACTION( L, R, T ) \
-    BOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::check_is_close, "", WARN, CHECK_CLOSE_FRACTION, \
+#define NDNBOOST_WARN_CLOSE_FRACTION( L, R, T ) \
+    NDNBOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::check_is_close, "", WARN, CHECK_CLOSE_FRACTION, \
     (L)(R)(::ndnboost::test_tools::fraction_tolerance(T)) )
-#define BOOST_CHECK_CLOSE_FRACTION( L, R, T ) \
-    BOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::check_is_close, "", CHECK, CHECK_CLOSE_FRACTION, \
+#define NDNBOOST_CHECK_CLOSE_FRACTION( L, R, T ) \
+    NDNBOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::check_is_close, "", CHECK, CHECK_CLOSE_FRACTION, \
     (L)(R)(::ndnboost::test_tools::fraction_tolerance(T)) )
-#define BOOST_REQUIRE_CLOSE_FRACTION( L, R, T ) \
-    BOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::check_is_close, "", REQUIRE, CHECK_CLOSE_FRACTION, \
+#define NDNBOOST_REQUIRE_CLOSE_FRACTION( L, R, T ) \
+    NDNBOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::check_is_close, "", REQUIRE, CHECK_CLOSE_FRACTION, \
     (L)(R)(::ndnboost::test_tools::fraction_tolerance(T)) )
 
 //____________________________________________________________________________//
 
-#define BOOST_WARN_SMALL( FPV, T ) \
-    BOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::check_is_small, "", WARN, CHECK_SMALL, (FPV)(T) )
-#define BOOST_CHECK_SMALL( FPV, T ) \
-    BOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::check_is_small, "", CHECK, CHECK_SMALL, (FPV)(T) )
-#define BOOST_REQUIRE_SMALL( FPV, T ) \
-    BOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::check_is_small, "", REQUIRE, CHECK_SMALL, (FPV)(T) )
+#define NDNBOOST_WARN_SMALL( FPV, T ) \
+    NDNBOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::check_is_small, "", WARN, CHECK_SMALL, (FPV)(T) )
+#define NDNBOOST_CHECK_SMALL( FPV, T ) \
+    NDNBOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::check_is_small, "", CHECK, CHECK_SMALL, (FPV)(T) )
+#define NDNBOOST_REQUIRE_SMALL( FPV, T ) \
+    NDNBOOST_CHECK_WITH_ARGS_IMPL( ::ndnboost::test_tools::check_is_small, "", REQUIRE, CHECK_SMALL, (FPV)(T) )
 
 //____________________________________________________________________________//
 
-#define BOOST_WARN_PREDICATE( P, ARGS ) \
-    BOOST_CHECK_WITH_ARGS_IMPL( P, BOOST_TEST_STRINGIZE( P ), WARN, CHECK_PRED_WITH_ARGS, ARGS )
-#define BOOST_CHECK_PREDICATE( P, ARGS ) \
-    BOOST_CHECK_WITH_ARGS_IMPL( P, BOOST_TEST_STRINGIZE( P ), CHECK, CHECK_PRED_WITH_ARGS, ARGS )
-#define BOOST_REQUIRE_PREDICATE( P, ARGS ) \
-    BOOST_CHECK_WITH_ARGS_IMPL( P, BOOST_TEST_STRINGIZE( P ), REQUIRE, CHECK_PRED_WITH_ARGS, ARGS )
+#define NDNBOOST_WARN_PREDICATE( P, ARGS ) \
+    NDNBOOST_CHECK_WITH_ARGS_IMPL( P, NDNBOOST_TEST_STRINGIZE( P ), WARN, CHECK_PRED_WITH_ARGS, ARGS )
+#define NDNBOOST_CHECK_PREDICATE( P, ARGS ) \
+    NDNBOOST_CHECK_WITH_ARGS_IMPL( P, NDNBOOST_TEST_STRINGIZE( P ), CHECK, CHECK_PRED_WITH_ARGS, ARGS )
+#define NDNBOOST_REQUIRE_PREDICATE( P, ARGS ) \
+    NDNBOOST_CHECK_WITH_ARGS_IMPL( P, NDNBOOST_TEST_STRINGIZE( P ), REQUIRE, CHECK_PRED_WITH_ARGS, ARGS )
 
 //____________________________________________________________________________//
 
-#define BOOST_EQUAL_COLLECTIONS_IMPL( L_begin, L_end, R_begin, R_end, TL )      \
-    BOOST_TEST_TOOL_IMPL( check_impl, ::ndnboost::test_tools::tt_detail::equal_coll_impl( \
+#define NDNBOOST_EQUAL_COLLECTIONS_IMPL( L_begin, L_end, R_begin, R_end, TL )      \
+    NDNBOOST_TEST_TOOL_IMPL( check_impl, ::ndnboost::test_tools::tt_detail::equal_coll_impl( \
         (L_begin), (L_end), (R_begin), (R_end) ), "", TL, CHECK_EQUAL_COLL ),   \
     4,                                                                          \
-    BOOST_STRINGIZE( L_begin ), BOOST_STRINGIZE( L_end ),                       \
-    BOOST_STRINGIZE( R_begin ), BOOST_STRINGIZE( R_end ) )                      \
+    NDNBOOST_STRINGIZE( L_begin ), NDNBOOST_STRINGIZE( L_end ),                       \
+    NDNBOOST_STRINGIZE( R_begin ), NDNBOOST_STRINGIZE( R_end ) )                      \
 /**/
 
-#define BOOST_WARN_EQUAL_COLLECTIONS( L_begin, L_end, R_begin, R_end )          \
-    BOOST_EQUAL_COLLECTIONS_IMPL( L_begin, L_end, R_begin, R_end, WARN )
-#define BOOST_CHECK_EQUAL_COLLECTIONS( L_begin, L_end, R_begin, R_end )         \
-    BOOST_EQUAL_COLLECTIONS_IMPL( L_begin, L_end, R_begin, R_end, CHECK )
-#define BOOST_REQUIRE_EQUAL_COLLECTIONS( L_begin, L_end, R_begin, R_end )       \
-    BOOST_EQUAL_COLLECTIONS_IMPL( L_begin, L_end, R_begin, R_end, REQUIRE )
+#define NDNBOOST_WARN_EQUAL_COLLECTIONS( L_begin, L_end, R_begin, R_end )          \
+    NDNBOOST_EQUAL_COLLECTIONS_IMPL( L_begin, L_end, R_begin, R_end, WARN )
+#define NDNBOOST_CHECK_EQUAL_COLLECTIONS( L_begin, L_end, R_begin, R_end )         \
+    NDNBOOST_EQUAL_COLLECTIONS_IMPL( L_begin, L_end, R_begin, R_end, CHECK )
+#define NDNBOOST_REQUIRE_EQUAL_COLLECTIONS( L_begin, L_end, R_begin, R_end )       \
+    NDNBOOST_EQUAL_COLLECTIONS_IMPL( L_begin, L_end, R_begin, R_end, REQUIRE )
 
 //____________________________________________________________________________//
 
-#define BOOST_BITWISE_EQUAL_IMPL( L, R, TL )                                    \
-    BOOST_TEST_TOOL_IMPL( check_impl,                                           \
+#define NDNBOOST_BITWISE_EQUAL_IMPL( L, R, TL )                                    \
+    NDNBOOST_TEST_TOOL_IMPL( check_impl,                                           \
       ::ndnboost::test_tools::tt_detail::bitwise_equal_impl( (L), (R) ),           \
       "", TL, CHECK_BITWISE_EQUAL ),                                            \
-    2, BOOST_STRINGIZE( L ), BOOST_STRINGIZE( R ) )                             \
+    2, NDNBOOST_STRINGIZE( L ), NDNBOOST_STRINGIZE( R ) )                             \
 /**/
 
-#define BOOST_WARN_BITWISE_EQUAL( L, R )    BOOST_BITWISE_EQUAL_IMPL( L, R, WARN )
-#define BOOST_CHECK_BITWISE_EQUAL( L, R )   BOOST_BITWISE_EQUAL_IMPL( L, R, CHECK )
-#define BOOST_REQUIRE_BITWISE_EQUAL( L, R ) BOOST_BITWISE_EQUAL_IMPL( L, R, REQUIRE )
+#define NDNBOOST_WARN_BITWISE_EQUAL( L, R )    NDNBOOST_BITWISE_EQUAL_IMPL( L, R, WARN )
+#define NDNBOOST_CHECK_BITWISE_EQUAL( L, R )   NDNBOOST_BITWISE_EQUAL_IMPL( L, R, CHECK )
+#define NDNBOOST_REQUIRE_BITWISE_EQUAL( L, R ) NDNBOOST_BITWISE_EQUAL_IMPL( L, R, REQUIRE )
 
 //____________________________________________________________________________//
 
-#define BOOST_IS_DEFINED( symb )            ::ndnboost::test_tools::tt_detail::is_defined_impl( #symb, BOOST_STRINGIZE(= symb) )
+#define NDNBOOST_IS_DEFINED( symb )            ::ndnboost::test_tools::tt_detail::is_defined_impl( #symb, NDNBOOST_STRINGIZE(= symb) )
 
 //____________________________________________________________________________//
 
 // ***************************** //
 // deprecated interface
 
-#define BOOST_BITWISE_EQUAL( L, R )         BOOST_CHECK_BITWISE_EQUAL( L, R )
-#define BOOST_MESSAGE( M )                  BOOST_TEST_MESSAGE( M )
-#define BOOST_CHECKPOINT( M )               BOOST_TEST_CHECKPOINT( M )
+#define NDNBOOST_BITWISE_EQUAL( L, R )         NDNBOOST_CHECK_BITWISE_EQUAL( L, R )
+#define NDNBOOST_MESSAGE( M )                  NDNBOOST_TEST_MESSAGE( M )
+#define NDNBOOST_CHECKPOINT( M )               NDNBOOST_TEST_CHECKPOINT( M )
 
 namespace ndnboost {
 
@@ -337,7 +337,7 @@
 
 //____________________________________________________________________________//
 
-#define BOOST_TEST_DONT_PRINT_LOG_VALUE( the_type )         \
+#define NDNBOOST_TEST_DONT_PRINT_LOG_VALUE( the_type )         \
 namespace ndnboost { namespace test_tools {                    \
 template<>                                                  \
 struct print_log_value<the_type > {                         \
@@ -348,7 +348,7 @@
 
 //____________________________________________________________________________//
 
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
+#if NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564))
 template<typename T, std::size_t N >
 struct print_log_value< T[N] > {
     void    operator()( std::ostream& ostr, T const* t )
@@ -361,7 +361,7 @@
 //____________________________________________________________________________//
 
 template<>
-struct BOOST_TEST_DECL print_log_value<bool> {
+struct NDNBOOST_TEST_DECL print_log_value<bool> {
     void    operator()( std::ostream& ostr, bool t )
     {
          ostr << std::boolalpha << t;
@@ -371,28 +371,28 @@
 //____________________________________________________________________________//
 
 template<>
-struct BOOST_TEST_DECL print_log_value<char> {
+struct NDNBOOST_TEST_DECL print_log_value<char> {
     void    operator()( std::ostream& ostr, char t );
 };
 
 //____________________________________________________________________________//
 
 template<>
-struct BOOST_TEST_DECL print_log_value<unsigned char> {
+struct NDNBOOST_TEST_DECL print_log_value<unsigned char> {
     void    operator()( std::ostream& ostr, unsigned char t );
 };
 
 //____________________________________________________________________________//
 
 template<>
-struct BOOST_TEST_DECL print_log_value<char const*> {
+struct NDNBOOST_TEST_DECL print_log_value<char const*> {
     void    operator()( std::ostream& ostr, char const* t );
 };
 
 //____________________________________________________________________________//
 
 template<>
-struct BOOST_TEST_DECL print_log_value<wchar_t const*> {
+struct NDNBOOST_TEST_DECL print_log_value<wchar_t const*> {
     void    operator()( std::ostream& ostr, wchar_t const* t );
 };
 
@@ -440,7 +440,7 @@
 
 //____________________________________________________________________________//
 
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) 
+#if NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564)) 
 // Borland suffers premature pointer decay passing arrays by reference
 template<typename T, std::size_t N >
 struct print_helper_t< T[N] > {
@@ -475,7 +475,7 @@
 // **************            TOOL BOX Implementation           ************** //
 // ************************************************************************** //
 
-BOOST_TEST_DECL 
+NDNBOOST_TEST_DECL 
 bool check_impl( predicate_result const& pr, ::ndnboost::unit_test::lazy_ostream const& check_descr,
                  const_string file_name, std::size_t line_num,
                  tool_level tl, check_type ct,
@@ -483,44 +483,44 @@
 
 //____________________________________________________________________________//
 
-#define TEMPL_PARAMS( z, m, dummy ) , typename BOOST_JOIN( Arg, m )
+#define TEMPL_PARAMS( z, m, dummy ) , typename NDNBOOST_JOIN( Arg, m )
 #define FUNC_PARAMS( z, m, dummy )                                                  \
- , BOOST_JOIN( Arg, m ) const& BOOST_JOIN( arg, m )                                 \
- , char const* BOOST_JOIN( BOOST_JOIN( arg, m ), _descr )                           \
+ , NDNBOOST_JOIN( Arg, m ) const& NDNBOOST_JOIN( arg, m )                                 \
+ , char const* NDNBOOST_JOIN( NDNBOOST_JOIN( arg, m ), _descr )                           \
 /**/
 
-#define PRED_PARAMS( z, m, dummy ) BOOST_PP_COMMA_IF( m ) BOOST_JOIN( arg, m ) 
+#define PRED_PARAMS( z, m, dummy ) NDNBOOST_PP_COMMA_IF( m ) NDNBOOST_JOIN( arg, m ) 
 
 #define ARG_INFO( z, m, dummy )                                                     \
- , BOOST_JOIN( BOOST_JOIN( arg, m ), _descr )                                       \
+ , NDNBOOST_JOIN( NDNBOOST_JOIN( arg, m ), _descr )                                       \
  , &static_cast<const unit_test::lazy_ostream&>(unit_test::lazy_ostream::instance() \
-        << ::ndnboost::test_tools::tt_detail::print_helper( BOOST_JOIN( arg, m ) ))    \
+        << ::ndnboost::test_tools::tt_detail::print_helper( NDNBOOST_JOIN( arg, m ) ))    \
 /**/
 
 #define IMPL_FRWD( z, n, dummy )                                                    \
 template<typename Pred                                                              \
-         BOOST_PP_REPEAT_ ## z( BOOST_PP_ADD( n, 1 ), TEMPL_PARAMS, _ )>            \
+         NDNBOOST_PP_REPEAT_ ## z( NDNBOOST_PP_ADD( n, 1 ), TEMPL_PARAMS, _ )>            \
 inline bool                                                                         \
 check_frwd( Pred P, unit_test::lazy_ostream const& check_descr,                     \
             const_string file_name, std::size_t line_num,                           \
             tool_level tl, check_type ct                                            \
-            BOOST_PP_REPEAT_ ## z( BOOST_PP_ADD( n, 1 ), FUNC_PARAMS, _ )           \
+            NDNBOOST_PP_REPEAT_ ## z( NDNBOOST_PP_ADD( n, 1 ), FUNC_PARAMS, _ )           \
 )                                                                                   \
 {                                                                                   \
     return                                                                          \
-    check_impl( P( BOOST_PP_REPEAT_ ## z( BOOST_PP_ADD( n, 1 ), PRED_PARAMS, _ ) ), \
+    check_impl( P( NDNBOOST_PP_REPEAT_ ## z( NDNBOOST_PP_ADD( n, 1 ), PRED_PARAMS, _ ) ), \
                 check_descr, file_name, line_num, tl, ct,                           \
-                BOOST_PP_ADD( n, 1 )                                                \
-                BOOST_PP_REPEAT_ ## z( BOOST_PP_ADD( n, 1 ), ARG_INFO, _ )          \
+                NDNBOOST_PP_ADD( n, 1 )                                                \
+                NDNBOOST_PP_REPEAT_ ## z( NDNBOOST_PP_ADD( n, 1 ), ARG_INFO, _ )          \
     );                                                                              \
 }                                                                                   \
 /**/
 
-#ifndef BOOST_TEST_MAX_PREDICATE_ARITY
-#define BOOST_TEST_MAX_PREDICATE_ARITY 5
+#ifndef NDNBOOST_TEST_MAX_PREDICATE_ARITY
+#define NDNBOOST_TEST_MAX_PREDICATE_ARITY 5
 #endif
 
-BOOST_PP_REPEAT( BOOST_TEST_MAX_PREDICATE_ARITY, IMPL_FRWD, _ )
+NDNBOOST_PP_REPEAT( NDNBOOST_TEST_MAX_PREDICATE_ARITY, IMPL_FRWD, _ )
 
 #undef TEMPL_PARAMS
 #undef FUNC_PARAMS
@@ -538,13 +538,13 @@
 
 //____________________________________________________________________________//
 
-predicate_result        BOOST_TEST_DECL equal_impl( char const* left, char const* right );
+predicate_result        NDNBOOST_TEST_DECL equal_impl( char const* left, char const* right );
 inline predicate_result equal_impl( char* left, char const* right ) { return equal_impl( static_cast<char const*>(left), static_cast<char const*>(right) ); }
 inline predicate_result equal_impl( char const* left, char* right ) { return equal_impl( static_cast<char const*>(left), static_cast<char const*>(right) ); }
 inline predicate_result equal_impl( char* left, char* right )       { return equal_impl( static_cast<char const*>(left), static_cast<char const*>(right) ); }
 
-#if !defined( BOOST_NO_CWCHAR )
-predicate_result        BOOST_TEST_DECL equal_impl( wchar_t const* left, wchar_t const* right );
+#if !defined( NDNBOOST_NO_CWCHAR )
+predicate_result        NDNBOOST_TEST_DECL equal_impl( wchar_t const* left, wchar_t const* right );
 inline predicate_result equal_impl( wchar_t* left, wchar_t const* right ) { return equal_impl( static_cast<wchar_t const*>(left), static_cast<wchar_t const*>(right) ); }
 inline predicate_result equal_impl( wchar_t const* left, wchar_t* right ) { return equal_impl( static_cast<wchar_t const*>(left), static_cast<wchar_t const*>(right) ); }
 inline predicate_result equal_impl( wchar_t* left, wchar_t* right )       { return equal_impl( static_cast<wchar_t const*>(left), static_cast<wchar_t const*>(right) ); }
@@ -700,7 +700,7 @@
 
 //____________________________________________________________________________//
 
-bool BOOST_TEST_DECL is_defined_impl( const_string symbol_name, const_string symbol_value );
+bool NDNBOOST_TEST_DECL is_defined_impl( const_string symbol_name, const_string symbol_value );
 
 //____________________________________________________________________________//
 
@@ -716,4 +716,4 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_TEST_TOOLS_HPP_012705GER
+#endif // NDNBOOST_TEST_TEST_TOOLS_HPP_012705GER
diff --git a/include/ndnboost/test/unit_test_log.hpp b/include/ndnboost/test/unit_test_log.hpp
index 844b6d7..97fcde4 100644
--- a/include/ndnboost/test/unit_test_log.hpp
+++ b/include/ndnboost/test/unit_test_log.hpp
@@ -14,8 +14,8 @@
 //  completely hidden with pimple idiom
 // ***************************************************************************
 
-#ifndef BOOST_TEST_UNIT_TEST_LOG_HPP_071894GER
-#define BOOST_TEST_UNIT_TEST_LOG_HPP_071894GER
+#ifndef NDNBOOST_TEST_UNIT_TEST_LOG_HPP_071894GER
+#define NDNBOOST_TEST_UNIT_TEST_LOG_HPP_071894GER
 
 // Boost.Test
 #include <ndnboost/test/test_observer.hpp>
@@ -48,7 +48,7 @@
 
 namespace log {
 
-struct BOOST_TEST_DECL begin {
+struct NDNBOOST_TEST_DECL begin {
     begin( const_string fn, std::size_t ln )
     : m_file_name( fn )
     , m_line_num( ln )
@@ -68,7 +68,7 @@
 
 namespace ut_detail {
 
-class BOOST_TEST_DECL entry_value_collector {
+class NDNBOOST_TEST_DECL entry_value_collector {
 public:
     // Constructors
     entry_value_collector() : m_last( true ) {}
@@ -90,7 +90,7 @@
 // **************                 unit_test_log                ************** //
 // ************************************************************************** //
 
-class BOOST_TEST_DECL unit_test_log_t : public test_observer, public singleton<unit_test_log_t> {
+class NDNBOOST_TEST_DECL unit_test_log_t : public test_observer, public singleton<unit_test_log_t> {
 public:
     // test_observer interface implementation
     void                test_start( counter_t test_cases_amount );
@@ -128,15 +128,15 @@
 private:
     bool            log_entry_start();
 
-    BOOST_TEST_SINGLETON_CONS( unit_test_log_t );
+    NDNBOOST_TEST_SINGLETON_CONS( unit_test_log_t );
 }; // unit_test_log_t
 
-BOOST_TEST_SINGLETON_INST( unit_test_log )
+NDNBOOST_TEST_SINGLETON_INST( unit_test_log )
 
 // helper macros
-#define BOOST_TEST_LOG_ENTRY( ll )                                                  \
+#define NDNBOOST_TEST_LOG_ENTRY( ll )                                                  \
     (::ndnboost::unit_test::unit_test_log                                              \
-        << ::ndnboost::unit_test::log::begin( BOOST_TEST_L(__FILE__), __LINE__ ))(ll)  \
+        << ::ndnboost::unit_test::log::begin( NDNBOOST_TEST_L(__FILE__), __LINE__ ))(ll)  \
 /**/
 
 } // namespace unit_test
@@ -147,24 +147,24 @@
 // **************       Unit test log interface helpers        ************** //
 // ************************************************************************** //
 
-#define BOOST_TEST_MESSAGE( M )                                 \
-    BOOST_TEST_LOG_ENTRY( ::ndnboost::unit_test::log_messages )    \
+#define NDNBOOST_TEST_MESSAGE( M )                                 \
+    NDNBOOST_TEST_LOG_ENTRY( ::ndnboost::unit_test::log_messages )    \
     << (::ndnboost::unit_test::lazy_ostream::instance() << M)      \
 /**/
 
 //____________________________________________________________________________//
 
-#define BOOST_TEST_PASSPOINT()                                  \
+#define NDNBOOST_TEST_PASSPOINT()                                  \
     ::ndnboost::unit_test::unit_test_log.set_checkpoint(           \
-        BOOST_TEST_L(__FILE__),                                 \
+        NDNBOOST_TEST_L(__FILE__),                                 \
         static_cast<std::size_t>(__LINE__) )                    \
 /**/
 
 //____________________________________________________________________________//
 
-#define BOOST_TEST_CHECKPOINT( M )                              \
+#define NDNBOOST_TEST_CHECKPOINT( M )                              \
     ::ndnboost::unit_test::unit_test_log.set_checkpoint(           \
-        BOOST_TEST_L(__FILE__),                                 \
+        NDNBOOST_TEST_L(__FILE__),                                 \
         static_cast<std::size_t>(__LINE__),                     \
         (::ndnboost::wrap_stringstream().ref() << M).str() )       \
 /**/
@@ -173,5 +173,5 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_UNIT_TEST_LOG_HPP_071894GER
+#endif // NDNBOOST_TEST_UNIT_TEST_LOG_HPP_071894GER
 
diff --git a/include/ndnboost/test/unit_test_log_formatter.hpp b/include/ndnboost/test/unit_test_log_formatter.hpp
index 6449c83..31d2161 100644
--- a/include/ndnboost/test/unit_test_log_formatter.hpp
+++ b/include/ndnboost/test/unit_test_log_formatter.hpp
@@ -12,8 +12,8 @@
 //  Description : 
 // ***************************************************************************
 
-#ifndef BOOST_TEST_UNIT_TEST_LOG_FORMATTER_HPP_071894GER
-#define BOOST_TEST_UNIT_TEST_LOG_FORMATTER_HPP_071894GER
+#ifndef NDNBOOST_TEST_UNIT_TEST_LOG_FORMATTER_HPP_071894GER
+#define NDNBOOST_TEST_UNIT_TEST_LOG_FORMATTER_HPP_071894GER
 
 // Boost.Test
 #include <ndnboost/test/detail/global_typedef.hpp>
@@ -38,7 +38,7 @@
 // **************                log_entry_data                ************** //
 // ************************************************************************** //
 
-struct BOOST_TEST_DECL log_entry_data {
+struct NDNBOOST_TEST_DECL log_entry_data {
     log_entry_data()
     {
         m_file_name.reserve( 200 );
@@ -60,7 +60,7 @@
 // **************                checkpoint_data               ************** //
 // ************************************************************************** //
 
-struct BOOST_TEST_DECL log_checkpoint_data
+struct NDNBOOST_TEST_DECL log_checkpoint_data
 {
     const_string    m_file_name;
     std::size_t     m_line_num;
@@ -78,13 +78,13 @@
 // **************            unit_test_log_formatter           ************** //
 // ************************************************************************** //
 
-class BOOST_TEST_DECL unit_test_log_formatter {
+class NDNBOOST_TEST_DECL unit_test_log_formatter {
 public:
-    enum log_entry_types { BOOST_UTL_ET_INFO, 
-                           BOOST_UTL_ET_MESSAGE,
-                           BOOST_UTL_ET_WARNING,
-                           BOOST_UTL_ET_ERROR,
-                           BOOST_UTL_ET_FATAL_ERROR };
+    enum log_entry_types { NDNBOOST_UTL_ET_INFO, 
+                           NDNBOOST_UTL_ET_MESSAGE,
+                           NDNBOOST_UTL_ET_WARNING,
+                           NDNBOOST_UTL_ET_ERROR,
+                           NDNBOOST_UTL_ET_FATAL_ERROR };
 
     // Destructor
     virtual             ~unit_test_log_formatter() {}
@@ -119,5 +119,5 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_UNIT_TEST_LOG_FORMATTER_HPP_071894GER
+#endif // NDNBOOST_TEST_UNIT_TEST_LOG_FORMATTER_HPP_071894GER
 
diff --git a/include/ndnboost/test/unit_test_monitor.hpp b/include/ndnboost/test/unit_test_monitor.hpp
index 4777d17..834378e 100644
--- a/include/ndnboost/test/unit_test_monitor.hpp
+++ b/include/ndnboost/test/unit_test_monitor.hpp
@@ -13,8 +13,8 @@
 //  run unit of test cases. Translates execution exception into error level
 // ***************************************************************************
 
-#ifndef BOOST_TEST_UNIT_TEST_MONITOR_HPP_020905GER
-#define BOOST_TEST_UNIT_TEST_MONITOR_HPP_020905GER
+#ifndef NDNBOOST_TEST_UNIT_TEST_MONITOR_HPP_020905GER
+#define NDNBOOST_TEST_UNIT_TEST_MONITOR_HPP_020905GER
 
 // Boost.Test
 #include <ndnboost/test/execution_monitor.hpp>
@@ -34,7 +34,7 @@
 // **************               unit_test_monitor              ************** //
 // ************************************************************************** //
 
-class BOOST_TEST_DECL unit_test_monitor_t : public singleton<unit_test_monitor_t>, public execution_monitor {
+class NDNBOOST_TEST_DECL unit_test_monitor_t : public singleton<unit_test_monitor_t>, public execution_monitor {
 public:
     enum error_level { 
         test_fail               =  1,
@@ -53,10 +53,10 @@
     error_level execute_and_translate( test_case const& );
 
 private:
-    BOOST_TEST_SINGLETON_CONS( unit_test_monitor_t );
+    NDNBOOST_TEST_SINGLETON_CONS( unit_test_monitor_t );
 };
 
-BOOST_TEST_SINGLETON_INST( unit_test_monitor )
+NDNBOOST_TEST_SINGLETON_INST( unit_test_monitor )
 
 } // namespace unit_test
 
@@ -66,4 +66,4 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_UNIT_TEST_MONITOR_HPP_020905GER
+#endif // NDNBOOST_TEST_UNIT_TEST_MONITOR_HPP_020905GER
diff --git a/include/ndnboost/test/unit_test_suite.hpp b/include/ndnboost/test/unit_test_suite.hpp
index 5ef5f13..bc70ca6 100644
--- a/include/ndnboost/test/unit_test_suite.hpp
+++ b/include/ndnboost/test/unit_test_suite.hpp
@@ -12,8 +12,8 @@
 //  Description : defines Unit Test Framework public API
 // ***************************************************************************
 
-#ifndef BOOST_TEST_UNIT_TEST_SUITE_HPP_071894GER
-#define BOOST_TEST_UNIT_TEST_SUITE_HPP_071894GER
+#ifndef NDNBOOST_TEST_UNIT_TEST_SUITE_HPP_071894GER
+#define NDNBOOST_TEST_UNIT_TEST_SUITE_HPP_071894GER
 
 // Boost.Test
 #include <ndnboost/test/unit_test_suite_impl.hpp>
@@ -25,106 +25,106 @@
 // **************    Non-auto (explicit) test case interface   ************** //
 // ************************************************************************** //
 
-#define BOOST_TEST_CASE( test_function ) \
-ndnboost::unit_test::make_test_case( ndnboost::unit_test::callback0<>(test_function), BOOST_TEST_STRINGIZE( test_function ) )
-#define BOOST_CLASS_TEST_CASE( test_function, tc_instance ) \
-ndnboost::unit_test::make_test_case((test_function), BOOST_TEST_STRINGIZE( test_function ), tc_instance )
+#define NDNBOOST_TEST_CASE( test_function ) \
+ndnboost::unit_test::make_test_case( ndnboost::unit_test::callback0<>(test_function), NDNBOOST_TEST_STRINGIZE( test_function ) )
+#define NDNBOOST_CLASS_TEST_CASE( test_function, tc_instance ) \
+ndnboost::unit_test::make_test_case((test_function), NDNBOOST_TEST_STRINGIZE( test_function ), tc_instance )
 
 // ************************************************************************** //
-// **************               BOOST_TEST_SUITE               ************** //
+// **************               NDNBOOST_TEST_SUITE               ************** //
 // ************************************************************************** //
 
-#define BOOST_TEST_SUITE( testsuite_name ) \
+#define NDNBOOST_TEST_SUITE( testsuite_name ) \
 ( new ndnboost::unit_test::test_suite( testsuite_name ) )
 
 // ************************************************************************** //
-// **************             BOOST_AUTO_TEST_SUITE            ************** //
+// **************             NDNBOOST_AUTO_TEST_SUITE            ************** //
 // ************************************************************************** //
 
-#define BOOST_AUTO_TEST_SUITE( suite_name )                             \
+#define NDNBOOST_AUTO_TEST_SUITE( suite_name )                             \
 namespace suite_name {                                                  \
-BOOST_AUTO_TU_REGISTRAR( suite_name )( BOOST_STRINGIZE( suite_name ) ); \
+NDNBOOST_AUTO_TU_REGISTRAR( suite_name )( NDNBOOST_STRINGIZE( suite_name ) ); \
 /**/
 
 // ************************************************************************** //
-// **************            BOOST_FIXTURE_TEST_SUITE          ************** //
+// **************            NDNBOOST_FIXTURE_TEST_SUITE          ************** //
 // ************************************************************************** //
 
-#define BOOST_FIXTURE_TEST_SUITE( suite_name, F )                       \
-BOOST_AUTO_TEST_SUITE( suite_name )                                     \
-typedef F BOOST_AUTO_TEST_CASE_FIXTURE;                                 \
+#define NDNBOOST_FIXTURE_TEST_SUITE( suite_name, F )                       \
+NDNBOOST_AUTO_TEST_SUITE( suite_name )                                     \
+typedef F NDNBOOST_AUTO_TEST_CASE_FIXTURE;                                 \
 /**/
 
 // ************************************************************************** //
-// **************           BOOST_AUTO_TEST_SUITE_END          ************** //
+// **************           NDNBOOST_AUTO_TEST_SUITE_END          ************** //
 // ************************************************************************** //
 
-#define BOOST_AUTO_TEST_SUITE_END()                                     \
-BOOST_AUTO_TU_REGISTRAR( BOOST_JOIN( end_suite, __LINE__ ) )( 1 );      \
+#define NDNBOOST_AUTO_TEST_SUITE_END()                                     \
+NDNBOOST_AUTO_TU_REGISTRAR( NDNBOOST_JOIN( end_suite, __LINE__ ) )( 1 );      \
 }                                                                       \
 /**/
 
 // ************************************************************************** //
-// **************    BOOST_AUTO_TEST_CASE_EXPECTED_FAILURES    ************** //
+// **************    NDNBOOST_AUTO_TEST_CASE_EXPECTED_FAILURES    ************** //
 // ************************************************************************** //
 
-#define BOOST_AUTO_TEST_CASE_EXPECTED_FAILURES( test_name, n )          \
-struct BOOST_AUTO_TC_UNIQUE_ID( test_name );                            \
+#define NDNBOOST_AUTO_TEST_CASE_EXPECTED_FAILURES( test_name, n )          \
+struct NDNBOOST_AUTO_TC_UNIQUE_ID( test_name );                            \
                                                                         \
-static struct BOOST_JOIN( test_name, _exp_fail_num_spec )               \
+static struct NDNBOOST_JOIN( test_name, _exp_fail_num_spec )               \
 : ndnboost::unit_test::ut_detail::                                         \
-  auto_tc_exp_fail<BOOST_AUTO_TC_UNIQUE_ID( test_name ) >               \
+  auto_tc_exp_fail<NDNBOOST_AUTO_TC_UNIQUE_ID( test_name ) >               \
 {                                                                       \
-    BOOST_JOIN( test_name, _exp_fail_num_spec )()                       \
+    NDNBOOST_JOIN( test_name, _exp_fail_num_spec )()                       \
     : ndnboost::unit_test::ut_detail::                                     \
-      auto_tc_exp_fail<BOOST_AUTO_TC_UNIQUE_ID( test_name ) >( n )      \
+      auto_tc_exp_fail<NDNBOOST_AUTO_TC_UNIQUE_ID( test_name ) >( n )      \
     {}                                                                  \
-} BOOST_JOIN( test_name, _exp_fail_num_spec_inst );                     \
+} NDNBOOST_JOIN( test_name, _exp_fail_num_spec_inst );                     \
                                                                         \
 /**/
 
 // ************************************************************************** //
-// **************            BOOST_FIXTURE_TEST_CASE           ************** //
+// **************            NDNBOOST_FIXTURE_TEST_CASE           ************** //
 // ************************************************************************** //
 
-#define BOOST_FIXTURE_TEST_CASE( test_name, F )                         \
+#define NDNBOOST_FIXTURE_TEST_CASE( test_name, F )                         \
 struct test_name : public F { void test_method(); };                    \
                                                                         \
-static void BOOST_AUTO_TC_INVOKER( test_name )()                        \
+static void NDNBOOST_AUTO_TC_INVOKER( test_name )()                        \
 {                                                                       \
     test_name t;                                                        \
     t.test_method();                                                    \
 }                                                                       \
                                                                         \
-struct BOOST_AUTO_TC_UNIQUE_ID( test_name ) {};                         \
+struct NDNBOOST_AUTO_TC_UNIQUE_ID( test_name ) {};                         \
                                                                         \
-BOOST_AUTO_TU_REGISTRAR( test_name )(                                   \
+NDNBOOST_AUTO_TU_REGISTRAR( test_name )(                                   \
     ndnboost::unit_test::make_test_case(                                   \
-        &BOOST_AUTO_TC_INVOKER( test_name ), #test_name ),              \
+        &NDNBOOST_AUTO_TC_INVOKER( test_name ), #test_name ),              \
     ndnboost::unit_test::ut_detail::auto_tc_exp_fail<                      \
-        BOOST_AUTO_TC_UNIQUE_ID( test_name )>::instance()->value() );   \
+        NDNBOOST_AUTO_TC_UNIQUE_ID( test_name )>::instance()->value() );   \
                                                                         \
 void test_name::test_method()                                           \
 /**/
 
 // ************************************************************************** //
-// **************             BOOST_AUTO_TEST_CASE             ************** //
+// **************             NDNBOOST_AUTO_TEST_CASE             ************** //
 // ************************************************************************** //
 
-#define BOOST_AUTO_TEST_CASE( test_name )                               \
-BOOST_FIXTURE_TEST_CASE( test_name, BOOST_AUTO_TEST_CASE_FIXTURE )
+#define NDNBOOST_AUTO_TEST_CASE( test_name )                               \
+NDNBOOST_FIXTURE_TEST_CASE( test_name, NDNBOOST_AUTO_TEST_CASE_FIXTURE )
 /**/
 
 // ************************************************************************** //
-// **************       BOOST_FIXTURE_TEST_CASE_TEMPLATE       ************** //
+// **************       NDNBOOST_FIXTURE_TEST_CASE_TEMPLATE       ************** //
 // ************************************************************************** //
 
-#define BOOST_FIXTURE_TEST_CASE_TEMPLATE( test_name, type_name, TL, F ) \
+#define NDNBOOST_FIXTURE_TEST_CASE_TEMPLATE( test_name, type_name, TL, F ) \
 template<typename type_name>                                            \
 struct test_name : public F                                             \
 { void test_method(); };                                                \
                                                                         \
-struct BOOST_AUTO_TC_INVOKER( test_name ) {                             \
+struct NDNBOOST_AUTO_TC_INVOKER( test_name ) {                             \
     template<typename TestType>                                         \
     static void run( ndnboost::type<TestType>* = 0 )                       \
     {                                                                   \
@@ -133,61 +133,61 @@
     }                                                                   \
 };                                                                      \
                                                                         \
-BOOST_AUTO_TU_REGISTRAR( test_name )(                                   \
+NDNBOOST_AUTO_TU_REGISTRAR( test_name )(                                   \
     ndnboost::unit_test::ut_detail::template_test_case_gen<                \
-        BOOST_AUTO_TC_INVOKER( test_name ),TL >(                        \
-          BOOST_STRINGIZE( test_name ) ) );                             \
+        NDNBOOST_AUTO_TC_INVOKER( test_name ),TL >(                        \
+          NDNBOOST_STRINGIZE( test_name ) ) );                             \
                                                                         \
 template<typename type_name>                                            \
 void test_name<type_name>::test_method()                                \
 /**/
 
 // ************************************************************************** //
-// **************        BOOST_AUTO_TEST_CASE_TEMPLATE         ************** //
+// **************        NDNBOOST_AUTO_TEST_CASE_TEMPLATE         ************** //
 // ************************************************************************** //
 
-#define BOOST_AUTO_TEST_CASE_TEMPLATE( test_name, type_name, TL )       \
-BOOST_FIXTURE_TEST_CASE_TEMPLATE( test_name, type_name, TL, BOOST_AUTO_TEST_CASE_FIXTURE )
+#define NDNBOOST_AUTO_TEST_CASE_TEMPLATE( test_name, type_name, TL )       \
+NDNBOOST_FIXTURE_TEST_CASE_TEMPLATE( test_name, type_name, TL, NDNBOOST_AUTO_TEST_CASE_FIXTURE )
 
 // ************************************************************************** //
-// **************           BOOST_TEST_CASE_TEMPLATE           ************** //
+// **************           NDNBOOST_TEST_CASE_TEMPLATE           ************** //
 // ************************************************************************** //
 
-#define BOOST_TEST_CASE_TEMPLATE( name, typelist )                          \
+#define NDNBOOST_TEST_CASE_TEMPLATE( name, typelist )                          \
     ndnboost::unit_test::ut_detail::template_test_case_gen<name,typelist >(    \
-        BOOST_TEST_STRINGIZE( name ) )                                      \
+        NDNBOOST_TEST_STRINGIZE( name ) )                                      \
 /**/
 
 // ************************************************************************** //
-// **************      BOOST_TEST_CASE_TEMPLATE_FUNCTION       ************** //
+// **************      NDNBOOST_TEST_CASE_TEMPLATE_FUNCTION       ************** //
 // ************************************************************************** //
 
-#define BOOST_TEST_CASE_TEMPLATE_FUNCTION( name, type_name )    \
+#define NDNBOOST_TEST_CASE_TEMPLATE_FUNCTION( name, type_name )    \
 template<typename type_name>                                    \
-void BOOST_JOIN( name, _impl )( ndnboost::type<type_name>* );      \
+void NDNBOOST_JOIN( name, _impl )( ndnboost::type<type_name>* );      \
                                                                 \
 struct name {                                                   \
     template<typename TestType>                                 \
     static void run( ndnboost::type<TestType>* frwrd = 0 )         \
     {                                                           \
-       BOOST_JOIN( name, _impl )( frwrd );                      \
+       NDNBOOST_JOIN( name, _impl )( frwrd );                      \
     }                                                           \
 };                                                              \
                                                                 \
 template<typename type_name>                                    \
-void BOOST_JOIN( name, _impl )( ndnboost::type<type_name>* )       \
+void NDNBOOST_JOIN( name, _impl )( ndnboost::type<type_name>* )       \
 /**/
 
 // ************************************************************************** //
-// **************              BOOST_GLOBAL_FIXURE             ************** //
+// **************              NDNBOOST_GLOBAL_FIXURE             ************** //
 // ************************************************************************** //
 
-#define BOOST_GLOBAL_FIXTURE( F ) \
-static ndnboost::unit_test::ut_detail::global_fixture_impl<F> BOOST_JOIN( gf_, F ) ; \
+#define NDNBOOST_GLOBAL_FIXTURE( F ) \
+static ndnboost::unit_test::ut_detail::global_fixture_impl<F> NDNBOOST_JOIN( gf_, F ) ; \
 /**/
 
 // ************************************************************************** //
-// **************         BOOST_AUTO_TEST_CASE_FIXTURE         ************** //
+// **************         NDNBOOST_AUTO_TEST_CASE_FIXTURE         ************** //
 // ************************************************************************** //
 
 namespace ndnboost { namespace unit_test { namespace ut_detail {
@@ -199,37 +199,37 @@
 } // namespace ndnboost
 
 // Intentionally is in global namespace, so that FIXURE_TEST_SUITE can reset it in user code.
-typedef ::ndnboost::unit_test::ut_detail::nil_t BOOST_AUTO_TEST_CASE_FIXTURE;
+typedef ::ndnboost::unit_test::ut_detail::nil_t NDNBOOST_AUTO_TEST_CASE_FIXTURE;
 
 // ************************************************************************** //
 // **************   Auto registration facility helper macros   ************** //
 // ************************************************************************** //
 
-#define BOOST_AUTO_TU_REGISTRAR( test_name )    \
-static ndnboost::unit_test::ut_detail::auto_test_unit_registrar BOOST_JOIN( BOOST_JOIN( test_name, _registrar ), __LINE__ )
-#define BOOST_AUTO_TC_INVOKER( test_name )      BOOST_JOIN( test_name, _invoker )
-#define BOOST_AUTO_TC_UNIQUE_ID( test_name )    BOOST_JOIN( test_name, _id )
+#define NDNBOOST_AUTO_TU_REGISTRAR( test_name )    \
+static ndnboost::unit_test::ut_detail::auto_test_unit_registrar NDNBOOST_JOIN( NDNBOOST_JOIN( test_name, _registrar ), __LINE__ )
+#define NDNBOOST_AUTO_TC_INVOKER( test_name )      NDNBOOST_JOIN( test_name, _invoker )
+#define NDNBOOST_AUTO_TC_UNIQUE_ID( test_name )    NDNBOOST_JOIN( test_name, _id )
 
 // ************************************************************************** //
-// **************                BOOST_TEST_MAIN               ************** //
+// **************                NDNBOOST_TEST_MAIN               ************** //
 // ************************************************************************** //
 
-#if defined(BOOST_TEST_MAIN)
+#if defined(NDNBOOST_TEST_MAIN)
 
-#ifdef BOOST_TEST_ALTERNATIVE_INIT_API
+#ifdef NDNBOOST_TEST_ALTERNATIVE_INIT_API
 bool init_unit_test()                   {
 #else
 ::ndnboost::unit_test::test_suite*
 init_unit_test_suite( int, char* [] )   {
 #endif
 
-#ifdef BOOST_TEST_MODULE
+#ifdef NDNBOOST_TEST_MODULE
     using namespace ::ndnboost::unit_test;
-    assign_op( framework::master_test_suite().p_name.value, BOOST_TEST_STRINGIZE( BOOST_TEST_MODULE ).trim( "\"" ), 0 );
+    assign_op( framework::master_test_suite().p_name.value, NDNBOOST_TEST_STRINGIZE( NDNBOOST_TEST_MODULE ).trim( "\"" ), 0 );
     
 #endif
 
-#ifdef BOOST_TEST_ALTERNATIVE_INIT_API
+#ifdef NDNBOOST_TEST_ALTERNATIVE_INIT_API
     return true;
 }
 #else
@@ -241,5 +241,5 @@
 
 //____________________________________________________________________________//
 
-#endif // BOOST_TEST_UNIT_TEST_SUITE_HPP_071894GER
+#endif // NDNBOOST_TEST_UNIT_TEST_SUITE_HPP_071894GER
 
diff --git a/include/ndnboost/test/unit_test_suite_impl.hpp b/include/ndnboost/test/unit_test_suite_impl.hpp
index 42933e4..93e1097 100644
--- a/include/ndnboost/test/unit_test_suite_impl.hpp
+++ b/include/ndnboost/test/unit_test_suite_impl.hpp
@@ -12,8 +12,8 @@
 //  Description : defines test_unit, test_case, test_case_results, test_suite and test_tree_visitor
 // ***************************************************************************
 
-#ifndef BOOST_TEST_UNIT_TEST_SUITE_IMPL_HPP_071894GER
-#define BOOST_TEST_UNIT_TEST_SUITE_IMPL_HPP_071894GER
+#ifndef NDNBOOST_TEST_UNIT_TEST_SUITE_IMPL_HPP_071894GER
+#define NDNBOOST_TEST_UNIT_TEST_SUITE_IMPL_HPP_071894GER
 
 // Boost.Test
 #include <ndnboost/test/detail/config.hpp>
@@ -49,7 +49,7 @@
 // **************                   test_unit                  ************** //
 // ************************************************************************** //
 
-class BOOST_TEST_DECL test_unit {
+class NDNBOOST_TEST_DECL test_unit {
 public:
     enum { type = tut_any };
 
@@ -61,8 +61,8 @@
     bool    check_dependencies() const;
 
     // Public r/o properties
-    typedef BOOST_READONLY_PROPERTY(test_unit_id,(framework_impl))  id_t;
-    typedef BOOST_READONLY_PROPERTY(test_unit_id,(test_suite))      parent_id_t;
+    typedef NDNBOOST_READONLY_PROPERTY(test_unit_id,(framework_impl))  id_t;
+    typedef NDNBOOST_READONLY_PROPERTY(test_unit_id,(test_suite))      parent_id_t;
     readonly_property<test_unit_type>   p_type;                 // type for this test unit
     readonly_property<const_string>     p_type_name;            // "case"/"suite"
     id_t                                p_id;                   // unique id for this test unit
@@ -88,19 +88,19 @@
 // **************              test_case_generator             ************** //
 // ************************************************************************** //
 
-class BOOST_TEST_DECL test_unit_generator {
+class NDNBOOST_TEST_DECL test_unit_generator {
 public:
     virtual test_unit*  next() const = 0;
 
 protected:
-    BOOST_TEST_PROTECTED_VIRTUAL ~test_unit_generator() {}
+    NDNBOOST_TEST_PROTECTED_VIRTUAL ~test_unit_generator() {}
 };
 
 // ************************************************************************** //
 // **************                   test_case                  ************** //
 // ************************************************************************** //
 
-class BOOST_TEST_DECL test_case : public test_unit {
+class NDNBOOST_TEST_DECL test_case : public test_unit {
 public:
     enum { type = tut_case };
 
@@ -114,7 +114,7 @@
     friend class framework_impl;
     ~test_case() {}
 
-    // BOOST_MSVC <= 1200 have problems with callback as property
+    // NDNBOOST_MSVC <= 1200 have problems with callback as property
     // Data members
     callback0<> m_test_func;
 };
@@ -123,7 +123,7 @@
 // **************                  test_suite                  ************** //
 // ************************************************************************** //
 
-class BOOST_TEST_DECL test_suite : public test_unit {
+class NDNBOOST_TEST_DECL test_suite : public test_unit {
 public:
     enum { type = tut_suite };
 
@@ -140,7 +140,7 @@
     std::size_t     size() const { return m_members.size(); }
 
 protected:
-    friend BOOST_TEST_DECL 
+    friend NDNBOOST_TEST_DECL 
     void        traverse_test_tree( test_suite const&, test_tree_visitor& );
     friend class framework_impl;
     virtual     ~test_suite() {}
@@ -153,7 +153,7 @@
 // **************               master_test_suite              ************** //
 // ************************************************************************** //
 
-class BOOST_TEST_DECL master_test_suite_t : public test_suite {
+class NDNBOOST_TEST_DECL master_test_suite_t : public test_suite {
 public:
     master_test_suite_t() : test_suite( "Master Test Suite" )
     , argc( 0 )
@@ -170,7 +170,7 @@
 // **************               test_tree_visitor              ************** //
 // ************************************************************************** //
 
-class BOOST_TEST_DECL test_tree_visitor {
+class NDNBOOST_TEST_DECL test_tree_visitor {
 public:
     // test tree visitor interface
     virtual void    visit( test_case const& )               {}
@@ -178,16 +178,16 @@
     virtual void    test_suite_finish( test_suite const& )  {}
 
 protected:
-    BOOST_TEST_PROTECTED_VIRTUAL ~test_tree_visitor() {}
+    NDNBOOST_TEST_PROTECTED_VIRTUAL ~test_tree_visitor() {}
 };
 
 // ************************************************************************** //
 // **************               traverse_test_tree             ************** //
 // ************************************************************************** //
 
-BOOST_TEST_DECL void    traverse_test_tree( test_case const&, test_tree_visitor& );
-BOOST_TEST_DECL void    traverse_test_tree( test_suite const&, test_tree_visitor& );
-BOOST_TEST_DECL void    traverse_test_tree( test_unit_id     , test_tree_visitor& );
+NDNBOOST_TEST_DECL void    traverse_test_tree( test_case const&, test_tree_visitor& );
+NDNBOOST_TEST_DECL void    traverse_test_tree( test_suite const&, test_tree_visitor& );
+NDNBOOST_TEST_DECL void    traverse_test_tree( test_unit_id     , test_tree_visitor& );
 
 //____________________________________________________________________________//
 
@@ -211,7 +211,7 @@
     // Constructor
     test_case_counter() : p_count( 0 ) {}
 
-    BOOST_READONLY_PROPERTY( counter_t, (test_case_counter)) p_count;
+    NDNBOOST_READONLY_PROPERTY( counter_t, (test_case_counter)) p_count;
 private:
     // test tree visitor interface
     virtual void    visit( test_case const& );
@@ -222,7 +222,7 @@
 // **************               test_being_aborted             ************** //
 // ************************************************************************** //
 
-struct BOOST_TEST_DECL test_being_aborted {};
+struct NDNBOOST_TEST_DECL test_being_aborted {};
 
 // ************************************************************************** //
 // **************               object generators              ************** //
@@ -230,7 +230,7 @@
 
 namespace ut_detail {
 
-BOOST_TEST_DECL std::string normalize_test_case_name( const_string tu_name );
+NDNBOOST_TEST_DECL std::string normalize_test_case_name( const_string tu_name );
 
 template<typename InstanceType,typename UserTestCase>
 struct user_tc_method_invoker {
@@ -275,7 +275,7 @@
 
 namespace ut_detail {
 
-struct BOOST_TEST_DECL auto_test_unit_registrar
+struct NDNBOOST_TEST_DECL auto_test_unit_registrar
 {
     // Constructors
                 auto_test_unit_registrar( test_case* tc, counter_t exp_fail );
@@ -322,7 +322,7 @@
 // **************                global_fixture                ************** //
 // ************************************************************************** //
 
-class BOOST_TEST_DECL global_fixture : public test_observer { 
+class NDNBOOST_TEST_DECL global_fixture : public test_observer { 
 public: 
     // Constructor
     global_fixture();
@@ -430,5 +430,5 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_UNIT_TEST_SUITE_IMPL_HPP_071894GER
+#endif // NDNBOOST_TEST_UNIT_TEST_SUITE_IMPL_HPP_071894GER
 
diff --git a/include/ndnboost/test/utils/algorithm.hpp b/include/ndnboost/test/utils/algorithm.hpp
index 8003dfe..3ff7d06 100644
--- a/include/ndnboost/test/utils/algorithm.hpp
+++ b/include/ndnboost/test/utils/algorithm.hpp
@@ -12,8 +12,8 @@
 //  Description : addition to STL algorithms
 // ***************************************************************************
 
-#ifndef BOOST_ALGORITHM_HPP_062304GER
-#define BOOST_ALGORITHM_HPP_062304GER
+#ifndef NDNBOOST_ALGORITHM_HPP_062304GER
+#define NDNBOOST_ALGORITHM_HPP_062304GER
 
 #include <utility>
 #include <algorithm> // std::find
@@ -223,6 +223,6 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_ALGORITHM_HPP_062304GER
+#endif // NDNBOOST_ALGORITHM_HPP_062304GER
 
 
diff --git a/include/ndnboost/test/utils/assign_op.hpp b/include/ndnboost/test/utils/assign_op.hpp
index b3d7ca0..4e4be04 100644
--- a/include/ndnboost/test/utils/assign_op.hpp
+++ b/include/ndnboost/test/utils/assign_op.hpp
@@ -12,8 +12,8 @@
 //  Description : overloadable assignment
 // ***************************************************************************
 
-#ifndef BOOST_TEST_ASSIGN_OP_033005GER
-#define BOOST_TEST_ASSIGN_OP_033005GER
+#ifndef NDNBOOST_TEST_ASSIGN_OP_033005GER
+#define NDNBOOST_TEST_ASSIGN_OP_033005GER
 
 namespace ndnboost {
 
@@ -37,5 +37,5 @@
 
 } // namespace ndnboost
 
-#endif // BOOST_TEST_ASSIGN_OP_033005GER
+#endif // NDNBOOST_TEST_ASSIGN_OP_033005GER
 
diff --git a/include/ndnboost/test/utils/basic_cstring/basic_cstring.hpp b/include/ndnboost/test/utils/basic_cstring/basic_cstring.hpp
index b3982df..41a64cd 100644
--- a/include/ndnboost/test/utils/basic_cstring/basic_cstring.hpp
+++ b/include/ndnboost/test/utils/basic_cstring/basic_cstring.hpp
@@ -13,8 +13,8 @@
 //                interface
 // ***************************************************************************
 
-#ifndef BOOST_TEST_BASIC_CSTRING_HPP_071894GER
-#define BOOST_TEST_BASIC_CSTRING_HPP_071894GER
+#ifndef NDNBOOST_TEST_BASIC_CSTRING_HPP_071894GER
+#define NDNBOOST_TEST_BASIC_CSTRING_HPP_071894GER
 
 // Boost.Test
 #include <ndnboost/test/utils/basic_cstring/basic_cstring_fwd.hpp>
@@ -56,7 +56,7 @@
 
     // !! should also present reverse_iterator, const_reverse_iterator
 
-#if !BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600))
+#if !NDNBOOST_WORKAROUND(__IBMCPP__, NDNBOOST_TESTED_AT(600))
     enum npos_type { npos = static_cast<size_type>(-1) };
 #else
     // IBM/VisualAge version 6 is not able to handle enums larger than 4 bytes.
@@ -728,4 +728,4 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_BASIC_CSTRING_HPP_071894GER
+#endif // NDNBOOST_TEST_BASIC_CSTRING_HPP_071894GER
diff --git a/include/ndnboost/test/utils/basic_cstring/basic_cstring_fwd.hpp b/include/ndnboost/test/utils/basic_cstring/basic_cstring_fwd.hpp
index 14cb33b..7b9adb2 100644
--- a/include/ndnboost/test/utils/basic_cstring/basic_cstring_fwd.hpp
+++ b/include/ndnboost/test/utils/basic_cstring/basic_cstring_fwd.hpp
@@ -13,8 +13,8 @@
 //                interface
 // ***************************************************************************
 
-#ifndef BOOST_TEST_BASIC_CSTRING_FWD_HPP_071894GER
-#define BOOST_TEST_BASIC_CSTRING_FWD_HPP_071894GER
+#ifndef NDNBOOST_TEST_BASIC_CSTRING_FWD_HPP_071894GER
+#define NDNBOOST_TEST_BASIC_CSTRING_FWD_HPP_071894GER
 
 #include <ndnboost/detail/workaround.hpp>
 
@@ -24,7 +24,7 @@
 
 template<typename CharT> class      basic_cstring;
 typedef basic_cstring<char const>   const_string;
-#if BOOST_WORKAROUND(__DECCXX_VER, BOOST_TESTED_AT(60590041))
+#if NDNBOOST_WORKAROUND(__DECCXX_VER, NDNBOOST_TESTED_AT(60590041))
 typedef const_string                literal_string;
 #else
 typedef const_string const          literal_string;
@@ -36,5 +36,5 @@
 
 } // namespace ndnboost
 
-#endif // BOOST_TEST_BASIC_CSTRING_FWD_HPP_071894GER
+#endif // NDNBOOST_TEST_BASIC_CSTRING_FWD_HPP_071894GER
 
diff --git a/include/ndnboost/test/utils/basic_cstring/bcs_char_traits.hpp b/include/ndnboost/test/utils/basic_cstring/bcs_char_traits.hpp
index d6571f7..d9afcb5 100644
--- a/include/ndnboost/test/utils/basic_cstring/bcs_char_traits.hpp
+++ b/include/ndnboost/test/utils/basic_cstring/bcs_char_traits.hpp
@@ -12,8 +12,8 @@
 //  Description : generic char traits class; wraps std::char_traits
 // ***************************************************************************
 
-#ifndef BOOST_TEST_BCS_CHAR_TRAITS_HPP_071894GER
-#define BOOST_TEST_BCS_CHAR_TRAITS_HPP_071894GER
+#ifndef NDNBOOST_TEST_BCS_CHAR_TRAITS_HPP_071894GER
+#define NDNBOOST_TEST_BCS_CHAR_TRAITS_HPP_071894GER
 
 // Boost
 #include <ndnboost/config.hpp>
@@ -39,7 +39,7 @@
 
 template<> struct bcs_base_char<char const>             { typedef char type; };
 template<> struct bcs_base_char<unsigned char>          { typedef char type; };
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551))
+#if !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x551))
 template<> struct bcs_base_char<unsigned char const>    { typedef char type; };
 #endif
 
@@ -52,7 +52,7 @@
 template<typename CharT>
 struct bcs_char_traits_impl
 {
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
+#if NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564))
     typedef CharT const const_char;
 #else
     typedef typename ndnboost::add_const<CharT>::type const_char;
@@ -103,7 +103,7 @@
     }
 };
 
-#ifdef BOOST_CLASSIC_IOSTREAMS
+#ifdef NDNBOOST_CLASSIC_IOSTREAMS
 template<typename CharT>
 struct char_traits_with_find : std::string_char_traits<CharT> {
     static CharT const* find( CharT const* s, std::size_t n, CharT c )
@@ -130,7 +130,7 @@
 class bcs_char_traits : public bcs_char_traits_impl<CharT> {
     typedef typename ut_detail::bcs_base_char<CharT>::type                              the_base_char;
 public:
-#ifdef BOOST_CLASSIC_IOSTREAMS
+#ifdef NDNBOOST_CLASSIC_IOSTREAMS
     typedef std::basic_string<the_base_char, std::string_char_traits<the_base_char> >   std_string;
 #else
     typedef std::basic_string<the_base_char, std::char_traits<the_base_char> >          std_string;
@@ -147,4 +147,4 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_BCS_CHAR_TRAITS_HPP_071894GER
+#endif // NDNBOOST_TEST_BCS_CHAR_TRAITS_HPP_071894GER
diff --git a/include/ndnboost/test/utils/basic_cstring/compare.hpp b/include/ndnboost/test/utils/basic_cstring/compare.hpp
index db9c854..1880c8a 100644
--- a/include/ndnboost/test/utils/basic_cstring/compare.hpp
+++ b/include/ndnboost/test/utils/basic_cstring/compare.hpp
@@ -12,8 +12,8 @@
 //  Description : class basic_cstring comparisons implementation
 // ***************************************************************************
 
-#ifndef  BOOST_TEST_BASIC_CSTRING_COMPARE_HPP_071894GER
-#define  BOOST_TEST_BASIC_CSTRING_COMPARE_HPP_071894GER
+#ifndef  NDNBOOST_TEST_BASIC_CSTRING_COMPARE_HPP_071894GER
+#define  NDNBOOST_TEST_BASIC_CSTRING_COMPARE_HPP_071894GER
 
 // Boost.Test
 #include <ndnboost/test/utils/basic_cstring/basic_cstring.hpp>
@@ -26,7 +26,7 @@
 
 //____________________________________________________________________________//
 
-# if defined(BOOST_NO_STDC_NAMESPACE) && !BOOST_WORKAROUND(__BORLANDC__, <= 0x570)
+# if defined(NDNBOOST_NO_STDC_NAMESPACE) && !NDNBOOST_WORKAROUND(__BORLANDC__, <= 0x570)
 namespace std { using ::toupper; }
 # endif
 
@@ -112,4 +112,4 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_BASIC_CSTRING_COMPARE_HPP_071894GER
+#endif // NDNBOOST_TEST_BASIC_CSTRING_COMPARE_HPP_071894GER
diff --git a/include/ndnboost/test/utils/basic_cstring/io.hpp b/include/ndnboost/test/utils/basic_cstring/io.hpp
index adb6d1e..8ad770a 100644
--- a/include/ndnboost/test/utils/basic_cstring/io.hpp
+++ b/include/ndnboost/test/utils/basic_cstring/io.hpp
@@ -12,8 +12,8 @@
 //  Description : basic_cstring i/o implementation
 // ***************************************************************************
 
-#ifndef  BOOST_TEST_BASIC_CSTRING_IO_HPP_071894GER
-#define  BOOST_TEST_BASIC_CSTRING_IO_HPP_071894GER
+#ifndef  NDNBOOST_TEST_BASIC_CSTRING_IO_HPP_071894GER
+#define  NDNBOOST_TEST_BASIC_CSTRING_IO_HPP_071894GER
 
 // Boost.Test
 #include <ndnboost/test/utils/basic_cstring/basic_cstring.hpp>
@@ -30,7 +30,7 @@
 
 namespace unit_test {
 
-#ifdef BOOST_CLASSIC_IOSTREAMS
+#ifdef NDNBOOST_CLASSIC_IOSTREAMS
 
 template<typename CharT>
 inline std::ostream&
@@ -70,4 +70,4 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_BASIC_CSTRING_IO_HPP_071894GER
+#endif // NDNBOOST_TEST_BASIC_CSTRING_IO_HPP_071894GER
diff --git a/include/ndnboost/test/utils/callback.hpp b/include/ndnboost/test/utils/callback.hpp
index 91e23f3..4bd786f 100644
--- a/include/ndnboost/test/utils/callback.hpp
+++ b/include/ndnboost/test/utils/callback.hpp
@@ -12,8 +12,8 @@
 //  Description : 
 // ***************************************************************************
 
-#ifndef BOOST_TEST_CALLBACK_020505GER
-#define BOOST_TEST_CALLBACK_020505GER
+#ifndef NDNBOOST_TEST_CALLBACK_020505GER
+#define NDNBOOST_TEST_CALLBACK_020505GER
 
 // Boost
 #include <ndnboost/config.hpp>
@@ -22,8 +22,8 @@
 
 #include <ndnboost/test/detail/suppress_warnings.hpp>
 
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) || BOOST_WORKAROUND(BOOST_INTEL, <= 700)
-#  define BOOST_CALLBACK_EXPLICIT_COPY_CONSTRUCTOR
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300) || NDNBOOST_WORKAROUND(NDNBOOST_INTEL, <= 700)
+#  define NDNBOOST_CALLBACK_EXPLICIT_COPY_CONSTRUCTOR
 #endif
 
 //____________________________________________________________________________//
@@ -102,7 +102,7 @@
 public:
     // Constructors
     callback0() {}
-#ifdef BOOST_CALLBACK_EXPLICIT_COPY_CONSTRUCTOR
+#ifdef NDNBOOST_CALLBACK_EXPLICIT_COPY_CONSTRUCTOR
     callback0( callback0 const& rhs ) : m_impl( rhs.m_impl ) {}
 #endif
 
@@ -160,7 +160,7 @@
 public:
     // Constructors
     callback1() {}
-#ifdef BOOST_CALLBACK_EXPLICIT_COPY_CONSTRUCTOR
+#ifdef NDNBOOST_CALLBACK_EXPLICIT_COPY_CONSTRUCTOR
     callback1( callback1 const& rhs ) : m_impl( rhs.m_impl ) {}
 #endif
 
@@ -218,7 +218,7 @@
 public:
     // Constructors
     callback2() {}
-#ifdef BOOST_CALLBACK_EXPLICIT_COPY_CONSTRUCTOR
+#ifdef NDNBOOST_CALLBACK_EXPLICIT_COPY_CONSTRUCTOR
     callback2( callback2 const& rhs ) : m_impl( rhs.m_impl ) {}
 #endif
 
@@ -275,7 +275,7 @@
 public:
     // Constructors
     callback3() {}
-#ifdef BOOST_CALLBACK_EXPLICIT_COPY_CONSTRUCTOR
+#ifdef NDNBOOST_CALLBACK_EXPLICIT_COPY_CONSTRUCTOR
     callback3( callback3 const& rhs ) : m_impl( rhs.m_impl ) {}
 #endif
 
@@ -301,10 +301,10 @@
 
 } // namespace ndnboost
 
-#undef BOOST_CALLBACK_EXPLICIT_COPY_CONSTRUCTOR
+#undef NDNBOOST_CALLBACK_EXPLICIT_COPY_CONSTRUCTOR
 
 //____________________________________________________________________________//
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_CALLBACK_020505GER
+#endif // NDNBOOST_TEST_CALLBACK_020505GER
diff --git a/include/ndnboost/test/utils/class_properties.hpp b/include/ndnboost/test/utils/class_properties.hpp
index 8da1f45..b5ea998 100644
--- a/include/ndnboost/test/utils/class_properties.hpp
+++ b/include/ndnboost/test/utils/class_properties.hpp
@@ -13,14 +13,14 @@
 //  properties in C++ classes. Original idea by Henrik Ravn.
 // ***************************************************************************
 
-#ifndef BOOST_TEST_CLASS_PROPERTIES_HPP_071894GER
-#define BOOST_TEST_CLASS_PROPERTIES_HPP_071894GER
+#ifndef NDNBOOST_TEST_CLASS_PROPERTIES_HPP_071894GER
+#define NDNBOOST_TEST_CLASS_PROPERTIES_HPP_071894GER
 
 // Boost.Test
 #include <ndnboost/test/detail/config.hpp>
 
 // Boost
-#if !BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600))
+#if !NDNBOOST_WORKAROUND(__IBMCPP__, NDNBOOST_TESTED_AT(600))
 #include <ndnboost/preprocessor/seq/for_each.hpp>
 #endif
 #include <ndnboost/call_traits.hpp>
@@ -62,7 +62,7 @@
     address_res_t   operator&() const       { return &value; }
 
     // Data members
-#ifndef BOOST_TEST_NO_PROTECTED_USING
+#ifndef NDNBOOST_TEST_NO_PROTECTED_USING
 protected:
 #endif
     PropertyType        value;
@@ -70,7 +70,7 @@
 
 //____________________________________________________________________________//
 
-#ifdef BOOST_CLASSIC_IOSTREAMS
+#ifdef NDNBOOST_CLASSIC_IOSTREAMS
 
 template<class PropertyType>
 inline std::ostream&
@@ -116,7 +116,7 @@
 
 #undef DEFINE_PROPERTY_FREE_BINARY_OPERATOR
 
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
 
 #define DEFINE_PROPERTY_LOGICAL_OPERATOR( op )                                  \
 template<class PropertyType>                                                    \
@@ -159,23 +159,23 @@
 
 //____________________________________________________________________________//
 
-#if BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600))
+#if NDNBOOST_WORKAROUND(__IBMCPP__, NDNBOOST_TESTED_AT(600))
 
-#define BOOST_READONLY_PROPERTY( property_type, friends ) ndnboost::unit_test::readwrite_property<property_type >
+#define NDNBOOST_READONLY_PROPERTY( property_type, friends ) ndnboost::unit_test::readwrite_property<property_type >
 
 #else
 
-#define BOOST_READONLY_PROPERTY_DECLARE_FRIEND(r, data, elem) friend class elem;
+#define NDNBOOST_READONLY_PROPERTY_DECLARE_FRIEND(r, data, elem) friend class elem;
 
-#define BOOST_READONLY_PROPERTY( property_type, friends )                           \
-class BOOST_JOIN( readonly_property, __LINE__ )                                     \
+#define NDNBOOST_READONLY_PROPERTY( property_type, friends )                           \
+class NDNBOOST_JOIN( readonly_property, __LINE__ )                                     \
 : public ndnboost::unit_test::readonly_property<property_type > {                      \
     typedef ndnboost::unit_test::readonly_property<property_type > base_prop;          \
-    BOOST_PP_SEQ_FOR_EACH( BOOST_READONLY_PROPERTY_DECLARE_FRIEND, ' ', friends )   \
+    NDNBOOST_PP_SEQ_FOR_EACH( NDNBOOST_READONLY_PROPERTY_DECLARE_FRIEND, ' ', friends )   \
     typedef base_prop::write_param_t  write_param_t;                                \
 public:                                                                             \
-                BOOST_JOIN( readonly_property, __LINE__ )() {}                      \
-    explicit    BOOST_JOIN( readonly_property, __LINE__ )( write_param_t init_v  )  \
+                NDNBOOST_JOIN( readonly_property, __LINE__ )() {}                      \
+    explicit    NDNBOOST_JOIN( readonly_property, __LINE__ )( write_param_t init_v  )  \
     : base_prop( init_v ) {}                                                        \
 }                                                                                   \
 /**/
@@ -201,7 +201,7 @@
     arrow_res_t     operator->()            { return ndnboost::addressof( base_prop::value ); }
     const_arrow_res_t operator->() const    { return ndnboost::addressof( base_prop::value ); }
 
-#ifndef BOOST_TEST_NO_PROTECTED_USING
+#ifndef NDNBOOST_TEST_NO_PROTECTED_USING
     using           base_prop::value;
 #endif
 };
@@ -216,6 +216,6 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#undef BOOST_TEST_NO_PROTECTED_USING
+#undef NDNBOOST_TEST_NO_PROTECTED_USING
 
-#endif // BOOST_TEST_CLASS_PROPERTIES_HPP_071894GER
+#endif // NDNBOOST_TEST_CLASS_PROPERTIES_HPP_071894GER
diff --git a/include/ndnboost/test/utils/custom_manip.hpp b/include/ndnboost/test/utils/custom_manip.hpp
index cf5d76d..165ddc7 100644
--- a/include/ndnboost/test/utils/custom_manip.hpp
+++ b/include/ndnboost/test/utils/custom_manip.hpp
@@ -12,8 +12,8 @@
 //  Description : simple helpers for creating cusom output manipulators
 // ***************************************************************************
 
-#ifndef BOOST_TEST_CUSTOM_MANIP_HPP_071894GER
-#define BOOST_TEST_CUSTOM_MANIP_HPP_071894GER
+#ifndef NDNBOOST_TEST_CUSTOM_MANIP_HPP_071894GER
+#define NDNBOOST_TEST_CUSTOM_MANIP_HPP_071894GER
 
 // STL
 #include <iosfwd>
@@ -60,4 +60,4 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_CUSTOM_MANIP_HPP_071894GER
+#endif // NDNBOOST_TEST_CUSTOM_MANIP_HPP_071894GER
diff --git a/include/ndnboost/test/utils/fixed_mapping.hpp b/include/ndnboost/test/utils/fixed_mapping.hpp
index dc08593..76ab30a 100644
--- a/include/ndnboost/test/utils/fixed_mapping.hpp
+++ b/include/ndnboost/test/utils/fixed_mapping.hpp
@@ -12,8 +12,8 @@
 //  Description : fixed sized mapping with specified invalid value
 // ***************************************************************************
 
-#ifndef BOOST_TEST_FIXED_MAPPING_HPP_071894GER
-#define BOOST_TEST_FIXED_MAPPING_HPP_071894GER
+#ifndef NDNBOOST_TEST_FIXED_MAPPING_HPP_071894GER
+#define NDNBOOST_TEST_FIXED_MAPPING_HPP_071894GER
 
 // Boost
 #include <ndnboost/preprocessor/repetition/repeat.hpp>
@@ -45,16 +45,16 @@
 #define CONSTR_BODY_MID( z, i, dummy1 ) add_pair( key##i, v##i );
 
 #define CONSTR_DECL( z, n, dummy1 )                                 \
-    fixed_mapping( BOOST_PP_REPEAT_ ## z( n, CONSTR_DECL_MID, "" )  \
+    fixed_mapping( NDNBOOST_PP_REPEAT_ ## z( n, CONSTR_DECL_MID, "" )  \
                          value_param_type invalid_value )           \
     : m_invalid_value( invalid_value )                              \
     {                                                               \
-        BOOST_PP_REPEAT_ ## z( n, CONSTR_BODY_MID, "" )             \
+        NDNBOOST_PP_REPEAT_ ## z( n, CONSTR_BODY_MID, "" )             \
         init();                                                     \
     }                                                               \
 /**/
 
-#define CONTRUCTORS( n ) BOOST_PP_REPEAT( n, CONSTR_DECL, "" )
+#define CONTRUCTORS( n ) NDNBOOST_PP_REPEAT( n, CONSTR_DECL, "" )
 
 template<typename Key, typename Value, typename Compare = std::less<Key> >
 class fixed_mapping
@@ -67,7 +67,7 @@
     typedef typename call_traits<Value>::param_type         value_param_type;
     typedef typename call_traits<Value>::const_reference    value_ref_type;
 
-#if BOOST_WORKAROUND(__DECCXX_VER, BOOST_TESTED_AT(60590042))
+#if NDNBOOST_WORKAROUND(__DECCXX_VER, NDNBOOST_TESTED_AT(60590042))
     struct p1; friend struct p1;
     struct p2; friend struct p2;
 #endif
@@ -86,7 +86,7 @@
 
 public:
     // Constructors
-    CONTRUCTORS( BOOST_PP_ADD( MAX_MAP_SIZE, 1 ) )
+    CONTRUCTORS( NDNBOOST_PP_ADD( MAX_MAP_SIZE, 1 ) )
 
     // key -> value access
     value_ref_type  operator[]( key_param_type key ) const
@@ -120,5 +120,5 @@
 #undef CONSTR_DECL
 #undef CONTRUCTORS
 
-#endif // BOOST_TEST_FIXED_MAPPING_HPP_071894GER
+#endif // NDNBOOST_TEST_FIXED_MAPPING_HPP_071894GER
 
diff --git a/include/ndnboost/test/utils/foreach.hpp b/include/ndnboost/test/utils/foreach.hpp
index 8404e72..4bc2027 100644
--- a/include/ndnboost/test/utils/foreach.hpp
+++ b/include/ndnboost/test/utils/foreach.hpp
@@ -10,15 +10,15 @@
 //
 //  Version     : $Revision: 54633 $
 //
-//  Description : this is an abridged version of an excelent BOOST_FOREACH facility
+//  Description : this is an abridged version of an excelent NDNBOOST_FOREACH facility
 //  presented by Eric Niebler. I am so fond of it so I can't wait till it 
 //  going to be accepted into Boost. Also I need version with less number of dependencies 
 //  and more portable. This version doesn't support rvalues and will reeveluate it's 
 //  parameters, but should be good enough for my purposes.
 // ***************************************************************************
 
-#ifndef BOOST_TEST_FOREACH_HPP_021005GER
-#define BOOST_TEST_FOREACH_HPP_021005GER
+#ifndef NDNBOOST_TEST_FOREACH_HPP_021005GER
+#define NDNBOOST_TEST_FOREACH_HPP_021005GER
 
 // Boost.Test
 #include <ndnboost/test/detail/config.hpp>
@@ -92,19 +92,19 @@
 // ************************************************************************** //
 
 template<typename C>
-inline static_any<BOOST_DEDUCED_TYPENAME C::iterator>
+inline static_any<NDNBOOST_DEDUCED_TYPENAME C::iterator>
 begin( C& t, mpl::false_ )
 {
-    return static_any<BOOST_DEDUCED_TYPENAME C::iterator>( t.begin() );
+    return static_any<NDNBOOST_DEDUCED_TYPENAME C::iterator>( t.begin() );
 }
 
 //____________________________________________________________________________//
 
 template<typename C>
-inline static_any<BOOST_DEDUCED_TYPENAME C::const_iterator>
+inline static_any<NDNBOOST_DEDUCED_TYPENAME C::const_iterator>
 begin( C const& t, mpl::true_ )
 {
-    return static_any<BOOST_DEDUCED_TYPENAME C::const_iterator>( t.begin() );
+    return static_any<NDNBOOST_DEDUCED_TYPENAME C::const_iterator>( t.begin() );
 }
 
 //____________________________________________________________________________//
@@ -114,19 +114,19 @@
 // ************************************************************************** //
 
 template<typename C>
-inline static_any<BOOST_DEDUCED_TYPENAME C::iterator>
+inline static_any<NDNBOOST_DEDUCED_TYPENAME C::iterator>
 end( C& t, mpl::false_ )
 {
-    return static_any<BOOST_DEDUCED_TYPENAME C::iterator>( t.end() );
+    return static_any<NDNBOOST_DEDUCED_TYPENAME C::iterator>( t.end() );
 }
 
 //____________________________________________________________________________//
 
 template<typename C>
-inline static_any<BOOST_DEDUCED_TYPENAME C::const_iterator>
+inline static_any<NDNBOOST_DEDUCED_TYPENAME C::const_iterator>
 end( C const& t, mpl::true_ )
 {
-    return static_any<BOOST_DEDUCED_TYPENAME C::const_iterator>( t.end() );
+    return static_any<NDNBOOST_DEDUCED_TYPENAME C::const_iterator>( t.end() );
 }
 
 //____________________________________________________________________________//
@@ -139,8 +139,8 @@
 inline bool
 done( static_any_t cur, static_any_t end, C&, mpl::false_ )
 {
-    return  static_any_cast<BOOST_DEDUCED_TYPENAME C::iterator>( cur ) ==
-            static_any_cast<BOOST_DEDUCED_TYPENAME C::iterator>( end );
+    return  static_any_cast<NDNBOOST_DEDUCED_TYPENAME C::iterator>( cur ) ==
+            static_any_cast<NDNBOOST_DEDUCED_TYPENAME C::iterator>( end );
 }
 
 //____________________________________________________________________________//
@@ -149,8 +149,8 @@
 inline bool
 done( static_any_t cur, static_any_t end, C const&, mpl::true_ )
 {
-    return  static_any_cast<BOOST_DEDUCED_TYPENAME C::const_iterator>( cur ) ==
-            static_any_cast<BOOST_DEDUCED_TYPENAME C::const_iterator>( end );
+    return  static_any_cast<NDNBOOST_DEDUCED_TYPENAME C::const_iterator>( cur ) ==
+            static_any_cast<NDNBOOST_DEDUCED_TYPENAME C::const_iterator>( end );
 }
 
 //____________________________________________________________________________//
@@ -163,7 +163,7 @@
 inline void
 next( static_any_t cur, C&, mpl::false_ )
 {
-    ++static_any_cast<BOOST_DEDUCED_TYPENAME C::iterator>( cur );
+    ++static_any_cast<NDNBOOST_DEDUCED_TYPENAME C::iterator>( cur );
 }
 
 //____________________________________________________________________________//
@@ -172,7 +172,7 @@
 inline void
 next( static_any_t cur, C const&, mpl::true_ )
 {
-    ++static_any_cast<BOOST_DEDUCED_TYPENAME C::const_iterator>( cur );
+    ++static_any_cast<NDNBOOST_DEDUCED_TYPENAME C::const_iterator>( cur );
 }
 
 //____________________________________________________________________________//
@@ -185,7 +185,7 @@
 inline RefType
 deref( static_any_t cur, C&, ::ndnboost::type<RefType>, mpl::false_ )
 {
-    return *static_any_cast<BOOST_DEDUCED_TYPENAME C::iterator>( cur );
+    return *static_any_cast<NDNBOOST_DEDUCED_TYPENAME C::iterator>( cur );
 }
 
 //____________________________________________________________________________//
@@ -194,76 +194,76 @@
 inline RefType
 deref( static_any_t cur, C const&, ::ndnboost::type<RefType>, mpl::true_ )
 {
-    return *static_any_cast<BOOST_DEDUCED_TYPENAME C::const_iterator>( cur );
+    return *static_any_cast<NDNBOOST_DEDUCED_TYPENAME C::const_iterator>( cur );
 }
 
 //____________________________________________________________________________//
 
 // ************************************************************************** //
-// **************              BOOST_TEST_FOREACH              ************** //
+// **************              NDNBOOST_TEST_FOREACH              ************** //
 // ************************************************************************** //
 
-#define BOOST_TEST_FE_ANY                   ::ndnboost::unit_test::for_each::static_any_t
-#define BOOST_TEST_FE_IS_CONST( COL )       ::ndnboost::unit_test::for_each::is_const_coll( COL )
+#define NDNBOOST_TEST_FE_ANY                   ::ndnboost::unit_test::for_each::static_any_t
+#define NDNBOOST_TEST_FE_IS_CONST( COL )       ::ndnboost::unit_test::for_each::is_const_coll( COL )
 
-#define BOOST_TEST_FE_BEG( COL )            \
+#define NDNBOOST_TEST_FE_BEG( COL )            \
     ::ndnboost::unit_test::for_each::begin(    \
         COL,                                \
-        BOOST_TEST_FE_IS_CONST( COL ) )     \
+        NDNBOOST_TEST_FE_IS_CONST( COL ) )     \
 /**/
 
-#define BOOST_TEST_FE_END( COL )            \
+#define NDNBOOST_TEST_FE_END( COL )            \
     ::ndnboost::unit_test::for_each::end(      \
         COL,                                \
-        BOOST_TEST_FE_IS_CONST( COL ) )     \
+        NDNBOOST_TEST_FE_IS_CONST( COL ) )     \
 /**/
 
-#define BOOST_TEST_FE_DONE( COL )           \
+#define NDNBOOST_TEST_FE_DONE( COL )           \
     ::ndnboost::unit_test::for_each::done(     \
-        BOOST_TEST_FE_CUR_VAR,              \
-        BOOST_TEST_FE_END_VAR,              \
+        NDNBOOST_TEST_FE_CUR_VAR,              \
+        NDNBOOST_TEST_FE_END_VAR,              \
         COL,                                \
-        BOOST_TEST_FE_IS_CONST( COL ) )     \
+        NDNBOOST_TEST_FE_IS_CONST( COL ) )     \
 /**/
 
-#define BOOST_TEST_FE_NEXT( COL )           \
+#define NDNBOOST_TEST_FE_NEXT( COL )           \
     ::ndnboost::unit_test::for_each::next(     \
-        BOOST_TEST_FE_CUR_VAR,              \
+        NDNBOOST_TEST_FE_CUR_VAR,              \
         COL,                                \
-        BOOST_TEST_FE_IS_CONST( COL ) )     \
+        NDNBOOST_TEST_FE_IS_CONST( COL ) )     \
 /**/
 
-#define BOOST_FOREACH_NOOP(COL)             \
+#define NDNBOOST_FOREACH_NOOP(COL)             \
     ((void)&(COL))
 
-#define BOOST_TEST_FE_DEREF( COL, RefType ) \
+#define NDNBOOST_TEST_FE_DEREF( COL, RefType ) \
     ::ndnboost::unit_test::for_each::deref(    \
-        BOOST_TEST_FE_CUR_VAR,              \
+        NDNBOOST_TEST_FE_CUR_VAR,              \
         COL,                                \
         ::ndnboost::type<RefType >(),          \
-        BOOST_TEST_FE_IS_CONST( COL ) )     \
+        NDNBOOST_TEST_FE_IS_CONST( COL ) )     \
 /**/
 
-#if BOOST_WORKAROUND( BOOST_MSVC, == 1310 )
-#define BOOST_TEST_LINE_NUM
+#if NDNBOOST_WORKAROUND( NDNBOOST_MSVC, == 1310 )
+#define NDNBOOST_TEST_LINE_NUM
 #else
-#define BOOST_TEST_LINE_NUM     __LINE__
+#define NDNBOOST_TEST_LINE_NUM     __LINE__
 #endif
 
-#define BOOST_TEST_FE_CUR_VAR   BOOST_JOIN( _fe_cur_, BOOST_TEST_LINE_NUM )
-#define BOOST_TEST_FE_END_VAR   BOOST_JOIN( _fe_end_, BOOST_TEST_LINE_NUM )
-#define BOOST_TEST_FE_CON_VAR   BOOST_JOIN( _fe_con_, BOOST_TEST_LINE_NUM )
+#define NDNBOOST_TEST_FE_CUR_VAR   NDNBOOST_JOIN( _fe_cur_, NDNBOOST_TEST_LINE_NUM )
+#define NDNBOOST_TEST_FE_END_VAR   NDNBOOST_JOIN( _fe_end_, NDNBOOST_TEST_LINE_NUM )
+#define NDNBOOST_TEST_FE_CON_VAR   NDNBOOST_JOIN( _fe_con_, NDNBOOST_TEST_LINE_NUM )
 
-#define BOOST_TEST_FOREACH( RefType, var, COL )                                             \
-if( BOOST_TEST_FE_ANY BOOST_TEST_FE_CUR_VAR = BOOST_TEST_FE_BEG( COL ) ) {} else            \
-if( BOOST_TEST_FE_ANY BOOST_TEST_FE_END_VAR = BOOST_TEST_FE_END( COL ) ) {} else            \
-for( bool BOOST_TEST_FE_CON_VAR = true;                                                     \
-          BOOST_TEST_FE_CON_VAR && !BOOST_TEST_FE_DONE( COL );                              \
-          BOOST_TEST_FE_CON_VAR ? BOOST_TEST_FE_NEXT( COL ) : BOOST_FOREACH_NOOP( COL ))    \
+#define NDNBOOST_TEST_FOREACH( RefType, var, COL )                                             \
+if( NDNBOOST_TEST_FE_ANY NDNBOOST_TEST_FE_CUR_VAR = NDNBOOST_TEST_FE_BEG( COL ) ) {} else            \
+if( NDNBOOST_TEST_FE_ANY NDNBOOST_TEST_FE_END_VAR = NDNBOOST_TEST_FE_END( COL ) ) {} else            \
+for( bool NDNBOOST_TEST_FE_CON_VAR = true;                                                     \
+          NDNBOOST_TEST_FE_CON_VAR && !NDNBOOST_TEST_FE_DONE( COL );                              \
+          NDNBOOST_TEST_FE_CON_VAR ? NDNBOOST_TEST_FE_NEXT( COL ) : NDNBOOST_FOREACH_NOOP( COL ))    \
                                                                                             \
-    if( (BOOST_TEST_FE_CON_VAR = false, false) ) {} else                                    \
-    for( RefType var = BOOST_TEST_FE_DEREF( COL, RefType );                                 \
-         !BOOST_TEST_FE_CON_VAR; BOOST_TEST_FE_CON_VAR = true )                             \
+    if( (NDNBOOST_TEST_FE_CON_VAR = false, false) ) {} else                                    \
+    for( RefType var = NDNBOOST_TEST_FE_DEREF( COL, RefType );                                 \
+         !NDNBOOST_TEST_FE_CON_VAR; NDNBOOST_TEST_FE_CON_VAR = true )                             \
 /**/
 
 //____________________________________________________________________________//
@@ -278,4 +278,4 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_FOREACH_HPP_021005GER
+#endif // NDNBOOST_TEST_FOREACH_HPP_021005GER
diff --git a/include/ndnboost/test/utils/iterator/input_iterator_facade.hpp b/include/ndnboost/test/utils/iterator/input_iterator_facade.hpp
index 92968ac..7763fce 100644
--- a/include/ndnboost/test/utils/iterator/input_iterator_facade.hpp
+++ b/include/ndnboost/test/utils/iterator/input_iterator_facade.hpp
@@ -12,8 +12,8 @@
 //  Description : Input iterator facade 
 // ***************************************************************************
 
-#ifndef BOOST_INPUT_ITERATOR_FACADE_HPP_071894GER
-#define BOOST_INPUT_ITERATOR_FACADE_HPP_071894GER
+#ifndef NDNBOOST_INPUT_ITERATOR_FACADE_HPP_071894GER
+#define NDNBOOST_INPUT_ITERATOR_FACADE_HPP_071894GER
 
 // Boost
 #include <ndnboost/iterator/iterator_facade.hpp>
@@ -32,7 +32,7 @@
 
 class input_iterator_core_access
 {
-#if defined(BOOST_NO_MEMBER_TEMPLATE_FRIENDS) || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551))
+#if defined(NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS) || NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x551))
 public:
 #else
     template <class I, class V, class R, class TC> friend class input_iterator_facade;
@@ -105,5 +105,5 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_INPUT_ITERATOR_FACADE_HPP_071894GER
+#endif // NDNBOOST_INPUT_ITERATOR_FACADE_HPP_071894GER
 
diff --git a/include/ndnboost/test/utils/iterator/token_iterator.hpp b/include/ndnboost/test/utils/iterator/token_iterator.hpp
index c1b2dbc..efc99fe 100644
--- a/include/ndnboost/test/utils/iterator/token_iterator.hpp
+++ b/include/ndnboost/test/utils/iterator/token_iterator.hpp
@@ -12,8 +12,8 @@
 //  Description : token iterator for string and range tokenization
 // ***************************************************************************
 
-#ifndef BOOST_TOKEN_ITERATOR_HPP_071894GER
-#define BOOST_TOKEN_ITERATOR_HPP_071894GER
+#ifndef NDNBOOST_TOKEN_ITERATOR_HPP_071894GER
+#define NDNBOOST_TOKEN_ITERATOR_HPP_071894GER
 
 // Boost
 #include <ndnboost/config.hpp>
@@ -35,7 +35,7 @@
 
 //____________________________________________________________________________//
 
-#ifdef BOOST_NO_STDC_NAMESPACE
+#ifdef NDNBOOST_NO_STDC_NAMESPACE
 namespace std{ using ::ispunct; using ::isspace; }
 #endif
 
@@ -65,7 +65,7 @@
 public:
     bool operator()( CharT c1, CharT c2 )
     {
-#ifdef BOOST_CLASSIC_IOSTREAMS
+#ifdef NDNBOOST_CLASSIC_IOSTREAMS
         return std::string_char_traits<CharT>::eq( c1, c2 );
 #else
         return std::char_traits<CharT>::eq( c1, c2 );
@@ -102,7 +102,7 @@
     {
         switch( m_type ) {
         case dt_char: {
-            BOOST_TEST_FOREACH( CharT, delim, m_delimeters )
+            NDNBOOST_TEST_FOREACH( CharT, delim, m_delimeters )
                 if( CharCompare()( delim, c ) )
                     return true;
 
@@ -131,7 +131,7 @@
 
 template<typename TraversalTag>
 struct token_assigner {
-#if BOOST_WORKAROUND( BOOST_DINKUMWARE_STDLIB, < 306 )
+#if NDNBOOST_WORKAROUND( NDNBOOST_DINKUMWARE_STDLIB, < 306 )
     template<typename Iterator, typename C, typename T>
     static void assign( Iterator b, Iterator e, std::basic_string<C,T>& t )
     { for( ; b != e; ++b ) t += *b; }
@@ -216,7 +216,7 @@
     template<typename Iter> 
     bool                    get( Iter& begin, Iter end )
     {
-        typedef ut_detail::token_assigner<BOOST_DEDUCED_TYPENAME iterator_traversal<Iter>::type> Assigner;
+        typedef ut_detail::token_assigner<NDNBOOST_DEDUCED_TYPENAME iterator_traversal<Iter>::type> Assigner;
         Iter check_point;
 
         this->m_value.clear();
@@ -336,8 +336,8 @@
 // ************************************************************************** //
 
 template<typename Iter,
-         typename CharCompare = ut_detail::default_char_compare<BOOST_DEDUCED_TYPENAME iterator_value<Iter>::type>,
-         typename ValueType   = std::basic_string<BOOST_DEDUCED_TYPENAME iterator_value<Iter>::type>,
+         typename CharCompare = ut_detail::default_char_compare<NDNBOOST_DEDUCED_TYPENAME iterator_value<Iter>::type>,
+         typename ValueType   = std::basic_string<NDNBOOST_DEDUCED_TYPENAME iterator_value<Iter>::type>,
          typename Reference   = ValueType const&>
 class range_token_iterator
 : public token_iterator_base<range_token_iterator<Iter,CharCompare,ValueType,Reference>,
@@ -414,5 +414,5 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TOKEN_ITERATOR_HPP_071894GER
+#endif // NDNBOOST_TOKEN_ITERATOR_HPP_071894GER
 
diff --git a/include/ndnboost/test/utils/lazy_ostream.hpp b/include/ndnboost/test/utils/lazy_ostream.hpp
index 4b9a0a3..da3fa22 100644
--- a/include/ndnboost/test/utils/lazy_ostream.hpp
+++ b/include/ndnboost/test/utils/lazy_ostream.hpp
@@ -12,8 +12,8 @@
 //  Description : contains definition for all test tools in test toolbox
 // ***************************************************************************
 
-#ifndef BOOST_TEST_LAZY_OSTREAM_HPP_070708GER
-#define BOOST_TEST_LAZY_OSTREAM_HPP_070708GER
+#ifndef NDNBOOST_TEST_LAZY_OSTREAM_HPP_070708GER
+#define NDNBOOST_TEST_LAZY_OSTREAM_HPP_070708GER
 
 // Boost.Test
 #include <ndnboost/test/detail/config.hpp>
@@ -48,10 +48,10 @@
     explicit                lazy_ostream( bool empty = true ) : m_empty( empty )    {}
 
     // protected destructor to make sure right one is called
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582))
+#if NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x582))
 public:
 #endif
-    BOOST_TEST_PROTECTED_VIRTUAL ~lazy_ostream()                                    {}
+    NDNBOOST_TEST_PROTECTED_VIRTUAL ~lazy_ostream()                                    {}
 
 private:
     // Data members
@@ -90,13 +90,13 @@
 
 //____________________________________________________________________________//
 
-#if BOOST_TEST_USE_STD_LOCALE
+#if NDNBOOST_TEST_USE_STD_LOCALE
 
 template<typename R,typename S>
-inline lazy_ostream_impl<R& (BOOST_TEST_CALL_DECL *)(S&)>
-operator<<( lazy_ostream const& prev, R& (BOOST_TEST_CALL_DECL *man)(S&) )
+inline lazy_ostream_impl<R& (NDNBOOST_TEST_CALL_DECL *)(S&)>
+operator<<( lazy_ostream const& prev, R& (NDNBOOST_TEST_CALL_DECL *man)(S&) )
 {
-    return lazy_ostream_impl<R& (BOOST_TEST_CALL_DECL *)(S&)>( prev, man );
+    return lazy_ostream_impl<R& (NDNBOOST_TEST_CALL_DECL *)(S&)>( prev, man );
 }
 
 //____________________________________________________________________________//
@@ -111,4 +111,4 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_LAZY_OSTREAM_HPP_070708GER
+#endif // NDNBOOST_TEST_LAZY_OSTREAM_HPP_070708GER
diff --git a/include/ndnboost/test/utils/named_params.hpp b/include/ndnboost/test/utils/named_params.hpp
index 371d594..b120e56 100644
--- a/include/ndnboost/test/utils/named_params.hpp
+++ b/include/ndnboost/test/utils/named_params.hpp
@@ -12,8 +12,8 @@
 //  Description : facilities for named function parameters support
 // ***************************************************************************
 
-#ifndef BOOST_TEST_NAMED_PARAM_022505GER
-#define BOOST_TEST_NAMED_PARAM_022505GER
+#ifndef NDNBOOST_TEST_NAMED_PARAM_022505GER
+#define NDNBOOST_TEST_NAMED_PARAM_022505GER
 
 // Boost
 #include <ndnboost/config.hpp>
@@ -139,8 +139,8 @@
     void        erase( keyword<typename NP::id,false> kw ) const        { m_param.erase( kw ); }
     using       Rest::erase;
 
-#if BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3206)) || \
-    BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x0610))
+#if NDNBOOST_WORKAROUND(__MWERKS__, NDNBOOST_TESTED_AT(0x3206)) || \
+    NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x0610))
     template<typename NP>
     named_parameter_combine<NP,self_type> operator,( NP const& np ) const
     { return named_parameter_combine<NP,self_type>( np, *this ); }
@@ -295,8 +295,8 @@
 
 template<typename T, typename Source>
 inline void
-#if BOOST_WORKAROUND( __MWERKS__, BOOST_TESTED_AT( 0x3003 ) ) \
-    || BOOST_WORKAROUND( __DECCXX_VER, BOOST_TESTED_AT(60590042) )
+#if NDNBOOST_WORKAROUND( __MWERKS__, NDNBOOST_TESTED_AT( 0x3003 ) ) \
+    || NDNBOOST_WORKAROUND( __DECCXX_VER, NDNBOOST_TESTED_AT(60590042) )
 optionally_assign( T& target, Source src )
 #else
 optionally_assign( T& target, Source const& src )
@@ -325,5 +325,5 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_NAMED_PARAM_022505GER
+#endif // NDNBOOST_TEST_NAMED_PARAM_022505GER
 
diff --git a/include/ndnboost/test/utils/rtti.hpp b/include/ndnboost/test/utils/rtti.hpp
index 2413106..e547ad2 100644
--- a/include/ndnboost/test/utils/rtti.hpp
+++ b/include/ndnboost/test/utils/rtti.hpp
@@ -12,8 +12,8 @@
 //  Description : simple facilities for accessing type information at runtime
 // ***************************************************************************
 
-#ifndef BOOST_TEST_RTTI_HPP_062604GER
-#define BOOST_TEST_RTTI_HPP_062604GER
+#ifndef NDNBOOST_TEST_RTTI_HPP_062604GER
+#define NDNBOOST_TEST_RTTI_HPP_062604GER
 
 #include <cstddef>
 
@@ -52,8 +52,8 @@
 
 //____________________________________________________________________________//
 
-#define BOOST_RTTI_SWITCH( type_id_ ) if( ::ndnboost::rtti::id_t switch_by_id = type_id_ )
-#define BOOST_RTTI_CASE( type )       if( switch_by_id == ::ndnboost::rtti::type_id<type>() )
+#define NDNBOOST_RTTI_SWITCH( type_id_ ) if( ::ndnboost::rtti::id_t switch_by_id = type_id_ )
+#define NDNBOOST_RTTI_CASE( type )       if( switch_by_id == ::ndnboost::rtti::type_id<type>() )
 
 //____________________________________________________________________________//
 
@@ -61,4 +61,4 @@
 
 } // namespace ndnboost
 
-#endif // BOOST_RT_RTTI_HPP_062604GER
+#endif // NDNBOOST_RT_RTTI_HPP_062604GER
diff --git a/include/ndnboost/test/utils/runtime/argument.hpp b/include/ndnboost/test/utils/runtime/argument.hpp
index c14956c..fa2b29d 100644
--- a/include/ndnboost/test/utils/runtime/argument.hpp
+++ b/include/ndnboost/test/utils/runtime/argument.hpp
@@ -12,8 +12,8 @@
 //  Description : model of actual argument (both typed and abstract interface)
 // ***************************************************************************
 
-#ifndef BOOST_RT_ARGUMENT_HPP_062604GER
-#define BOOST_RT_ARGUMENT_HPP_062604GER
+#ifndef NDNBOOST_RT_ARGUMENT_HPP_062604GER
+#define NDNBOOST_RT_ARGUMENT_HPP_062604GER
 
 // Boost.Runtime.Parameter
 #include <ndnboost/test/utils/runtime/config.hpp>
@@ -29,13 +29,13 @@
 
 namespace ndnboost {
 
-namespace BOOST_RT_PARAM_NAMESPACE {
+namespace NDNBOOST_RT_PARAM_NAMESPACE {
 
 // ************************************************************************** //
 // **************              runtime::argument               ************** //
 // ************************************************************************** //
 
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
 #  pragma warning(push)
 #  pragma warning(disable:4244)
 #endif
@@ -99,14 +99,14 @@
     return static_cast<typed_argument<T>&>( arg_ ).p_value.value;
 }
 
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
 #  pragma warning(pop)
 #endif
 
 //____________________________________________________________________________//
 
-} // namespace BOOST_RT_PARAM_NAMESPACE
+} // namespace NDNBOOST_RT_PARAM_NAMESPACE
 
 } // namespace ndnboost
 
-#endif // BOOST_RT_ARGUMENT_HPP_062604GER
+#endif // NDNBOOST_RT_ARGUMENT_HPP_062604GER
diff --git a/include/ndnboost/test/utils/runtime/cla/argument_factory.hpp b/include/ndnboost/test/utils/runtime/cla/argument_factory.hpp
index 4f6709b..90f1df4 100644
--- a/include/ndnboost/test/utils/runtime/cla/argument_factory.hpp
+++ b/include/ndnboost/test/utils/runtime/cla/argument_factory.hpp
@@ -12,8 +12,8 @@
 //  Description : generic typed_argument_factory implementation
 // ***************************************************************************
 
-#ifndef BOOST_RT_CLA_ARGUMENT_FACTORY_HPP_062604GER
-#define BOOST_RT_CLA_ARGUMENT_FACTORY_HPP_062604GER
+#ifndef NDNBOOST_RT_CLA_ARGUMENT_FACTORY_HPP_062604GER
+#define NDNBOOST_RT_CLA_ARGUMENT_FACTORY_HPP_062604GER
 
 // Boost.Runtime.Parameter
 #include <ndnboost/test/utils/runtime/config.hpp>
@@ -41,7 +41,7 @@
 
 namespace ndnboost {
 
-namespace BOOST_RT_PARAM_NAMESPACE {
+namespace NDNBOOST_RT_PARAM_NAMESPACE {
 
 namespace cla {
 
@@ -72,7 +72,7 @@
     typed_argument_factory()
     : m_value_interpreter( rt_cla_detail::default_value_interpreter() )
     {}
-    BOOST_RT_PARAM_UNNEEDED_VIRTUAL ~typed_argument_factory() {}
+    NDNBOOST_RT_PARAM_UNNEEDED_VIRTUAL ~typed_argument_factory() {}
 
     // properties modification
     template<typename Modifier>
@@ -82,24 +82,24 @@
         optionally_assign( m_value_interpreter, m, interpreter );
 
         if( m.has( default_value ) ) {
-            BOOST_RT_PARAM_VALIDATE_LOGIC( !m_value_generator, 
-                BOOST_RT_PARAM_LITERAL( "multiple value generators for parameter" ) );
+            NDNBOOST_RT_PARAM_VALIDATE_LOGIC( !m_value_generator, 
+                NDNBOOST_RT_PARAM_LITERAL( "multiple value generators for parameter" ) );
 
             T const& dv_ref = m[default_value];
             m_value_generator = rt_cla_detail::const_generator<T>( dv_ref );
         }
 
         if( m.has( default_refer_to ) ) {
-            BOOST_RT_PARAM_VALIDATE_LOGIC( !m_value_generator, 
-                BOOST_RT_PARAM_LITERAL( "multiple value generators for parameter" ) );
+            NDNBOOST_RT_PARAM_VALIDATE_LOGIC( !m_value_generator, 
+                NDNBOOST_RT_PARAM_LITERAL( "multiple value generators for parameter" ) );
 
             cstring ref_id = m[default_refer_to];
             m_value_generator = rt_cla_detail::ref_generator<T>( ref_id );
         }
 
         if( m.has( assign_to ) ) {
-            BOOST_RT_PARAM_VALIDATE_LOGIC( !m_value_handler, 
-                BOOST_RT_PARAM_LITERAL( "multiple value handlers for parameter" ) );
+            NDNBOOST_RT_PARAM_VALIDATE_LOGIC( !m_value_handler, 
+                NDNBOOST_RT_PARAM_LITERAL( "multiple value handlers for parameter" ) );
 
             m_value_handler = rt_cla_detail::assigner<T>( m[assign_to] );
         }
@@ -129,7 +129,7 @@
         m_value_interpreter( tr, value );
     }
     catch( ... ) { // !! should we do that?
-        BOOST_RT_PARAM_TRACE( "Fail to parse argument value" );
+        NDNBOOST_RT_PARAM_TRACE( "Fail to parse argument value" );
 
         if( !p.p_optional_value )
             throw;
@@ -137,11 +137,11 @@
 
     argument_ptr actual_arg = p.actual_argument();
 
-    BOOST_RT_CLA_VALIDATE_INPUT( !!value || p.p_optional_value, tr, 
-        BOOST_RT_PARAM_LITERAL( "Argument value missing for parameter " ) << p.id_2_report() );
+    NDNBOOST_RT_CLA_VALIDATE_INPUT( !!value || p.p_optional_value, tr, 
+        NDNBOOST_RT_PARAM_LITERAL( "Argument value missing for parameter " ) << p.id_2_report() );
 
-    BOOST_RT_CLA_VALIDATE_INPUT( !actual_arg || p.p_multiplicable, tr, 
-        BOOST_RT_PARAM_LITERAL( "Unexpected repetition of the parameter " ) << p.id_2_report() );
+    NDNBOOST_RT_CLA_VALIDATE_INPUT( !actual_arg || p.p_multiplicable, tr, 
+        NDNBOOST_RT_PARAM_LITERAL( "Unexpected repetition of the parameter " ) << p.id_2_report() );
 
     if( !!value && !!m_value_handler )
         m_value_handler( p, *value );
@@ -211,8 +211,8 @@
 
 } // namespace ndnboost
 
-} // namespace BOOST_RT_PARAM_NAMESPACE
+} // namespace NDNBOOST_RT_PARAM_NAMESPACE
 
 } // namespace cla
 
-#endif // BOOST_RT_CLA_ARGUMENT_FACTORY_HPP_062604GER
+#endif // NDNBOOST_RT_CLA_ARGUMENT_FACTORY_HPP_062604GER
diff --git a/include/ndnboost/test/utils/runtime/cla/argv_traverser.hpp b/include/ndnboost/test/utils/runtime/cla/argv_traverser.hpp
index 8674bd2..1e1f7bc 100644
--- a/include/ndnboost/test/utils/runtime/cla/argv_traverser.hpp
+++ b/include/ndnboost/test/utils/runtime/cla/argv_traverser.hpp
@@ -12,8 +12,8 @@
 //  Description : defines facility to hide input traversing details
 // ***************************************************************************
 
-#ifndef BOOST_RT_CLA_ARGV_TRAVERSER_HPP_062604GER
-#define BOOST_RT_CLA_ARGV_TRAVERSER_HPP_062604GER
+#ifndef NDNBOOST_RT_CLA_ARGV_TRAVERSER_HPP_062604GER
+#define NDNBOOST_RT_CLA_ARGV_TRAVERSER_HPP_062604GER
 
 // Boost.Runtime.Parameter
 #include <ndnboost/test/utils/runtime/config.hpp>
@@ -27,7 +27,7 @@
 
 namespace ndnboost {
 
-namespace BOOST_RT_PARAM_NAMESPACE {
+namespace NDNBOOST_RT_PARAM_NAMESPACE {
 
 namespace cla {
 
@@ -84,15 +84,15 @@
 
 } // namespace cla
 
-} // namespace BOOST_RT_PARAM_NAMESPACE
+} // namespace NDNBOOST_RT_PARAM_NAMESPACE
 
 } // namespace ndnboost
 
-#ifndef BOOST_RT_PARAM_OFFLINE
+#ifndef NDNBOOST_RT_PARAM_OFFLINE
 
-#  define BOOST_RT_PARAM_INLINE inline
+#  define NDNBOOST_RT_PARAM_INLINE inline
 #  include <ndnboost/test/utils/runtime/cla/argv_traverser.ipp>
 
 #endif
 
-#endif // BOOST_RT_CLA_ARGV_TRAVERSER_HPP_062604GER
+#endif // NDNBOOST_RT_CLA_ARGV_TRAVERSER_HPP_062604GER
diff --git a/include/ndnboost/test/utils/runtime/cla/argv_traverser.ipp b/include/ndnboost/test/utils/runtime/cla/argv_traverser.ipp
index da03cd9..99c047d 100644
--- a/include/ndnboost/test/utils/runtime/cla/argv_traverser.ipp
+++ b/include/ndnboost/test/utils/runtime/cla/argv_traverser.ipp
@@ -12,8 +12,8 @@
 //  Description : implements facility to hide input traversing details
 // ***************************************************************************
 
-#ifndef BOOST_RT_CLA_ARGV_TRAVERSER_IPP_070604GER
-#define BOOST_RT_CLA_ARGV_TRAVERSER_IPP_070604GER
+#ifndef NDNBOOST_RT_CLA_ARGV_TRAVERSER_IPP_070604GER
+#define NDNBOOST_RT_CLA_ARGV_TRAVERSER_IPP_070604GER
 
 // Boost.Runtime.Parameter
 #include <ndnboost/test/utils/runtime/trace.hpp>
@@ -24,13 +24,13 @@
 #include <memory>
 #include <cstring>
 
-#ifdef BOOST_NO_STDC_NAMESPACE
+#ifdef NDNBOOST_NO_STDC_NAMESPACE
 namespace std { using ::memcpy; }
 #endif
 
 namespace ndnboost {
 
-namespace BOOST_RT_PARAM_NAMESPACE {
+namespace NDNBOOST_RT_PARAM_NAMESPACE {
 
 namespace cla {
 
@@ -38,21 +38,21 @@
 // **************          runtime::cla::argv_traverser        ************** //
 // ************************************************************************** //
 
-BOOST_RT_PARAM_INLINE
+NDNBOOST_RT_PARAM_INLINE
 argv_traverser::argv_traverser()
-: p_ignore_mismatch( false ), p_separator( BOOST_RT_PARAM_LITERAL( ' ' ) )
+: p_ignore_mismatch( false ), p_separator( NDNBOOST_RT_PARAM_LITERAL( ' ' ) )
 {
 }
 
 //____________________________________________________________________________//
 
-BOOST_RT_PARAM_INLINE void
+NDNBOOST_RT_PARAM_INLINE void
 argv_traverser::init( int argc, char_type** argv )
 {
     for( int index = 1; index < argc; ++index ) {
         m_buffer += argv[index];
         if( index != argc-1 )
-            m_buffer += BOOST_RT_PARAM_LITERAL( ' ' );
+            m_buffer += NDNBOOST_RT_PARAM_LITERAL( ' ' );
     }
 
     m_remainder.reset( new char_type[m_buffer.size()+1] );
@@ -60,14 +60,14 @@
     m_work_buffer       = m_buffer;
     m_commited_end      = m_work_buffer.begin();
 
-    BOOST_RT_PARAM_TRACE( "Input buffer: " << m_buffer );
+    NDNBOOST_RT_PARAM_TRACE( "Input buffer: " << m_buffer );
 
     next_token();
 }
 
 //____________________________________________________________________________//
 
-BOOST_RT_PARAM_INLINE void
+NDNBOOST_RT_PARAM_INLINE void
 argv_traverser::remainder( int& argc, char_type** argv )
 {
     argc = 1;
@@ -76,14 +76,14 @@
         argv[argc++] = m_remainder.get() + pos;
 
         pos = std::find( m_remainder.get() + pos, m_remainder.get() + m_remainder_size, 
-                         BOOST_RT_PARAM_LITERAL( ' ' ) ) - m_remainder.get();
-        m_remainder[pos++] = BOOST_RT_PARAM_LITERAL( '\0' );
+                         NDNBOOST_RT_PARAM_LITERAL( ' ' ) ) - m_remainder.get();
+        m_remainder[pos++] = NDNBOOST_RT_PARAM_LITERAL( '\0' );
     }
 }
 
 //____________________________________________________________________________//
 
-BOOST_RT_PARAM_INLINE cstring
+NDNBOOST_RT_PARAM_INLINE cstring
 argv_traverser::token() const
 {
     return m_token;
@@ -91,7 +91,7 @@
 
 //____________________________________________________________________________//
 
-BOOST_RT_PARAM_INLINE void
+NDNBOOST_RT_PARAM_INLINE void
 argv_traverser::next_token()
 {
     if( m_work_buffer.is_empty() )
@@ -108,7 +108,7 @@
 
 //____________________________________________________________________________//
 
-BOOST_RT_PARAM_INLINE cstring
+NDNBOOST_RT_PARAM_INLINE cstring
 argv_traverser::input() const
 {
     return m_work_buffer;
@@ -116,7 +116,7 @@
 
 //____________________________________________________________________________//
 
-BOOST_RT_PARAM_INLINE void
+NDNBOOST_RT_PARAM_INLINE void
 argv_traverser::trim( std::size_t size )
 {
     m_work_buffer.trim_left( size );
@@ -131,7 +131,7 @@
 
 //____________________________________________________________________________//
 
-BOOST_RT_PARAM_INLINE bool
+NDNBOOST_RT_PARAM_INLINE bool
 argv_traverser::match_front( cstring str )
 {
     return m_work_buffer.size() < str.size() ? false : m_work_buffer.substr( 0, str.size() ) == str;
@@ -139,7 +139,7 @@
 
 //____________________________________________________________________________//
 
-BOOST_RT_PARAM_INLINE bool
+NDNBOOST_RT_PARAM_INLINE bool
 argv_traverser::match_front( char_type c )
 {
     return first_char( m_work_buffer ) == c;
@@ -147,7 +147,7 @@
 
 //____________________________________________________________________________//
 
-BOOST_RT_PARAM_INLINE bool
+NDNBOOST_RT_PARAM_INLINE bool
 argv_traverser::eoi() const
 {
     return m_work_buffer.is_empty();
@@ -155,7 +155,7 @@
 
 //____________________________________________________________________________//
 
-BOOST_RT_PARAM_INLINE void
+NDNBOOST_RT_PARAM_INLINE void
 argv_traverser::commit()
 {
     m_commited_end = m_work_buffer.begin();
@@ -163,7 +163,7 @@
 
 //____________________________________________________________________________//
 
-BOOST_RT_PARAM_INLINE void
+NDNBOOST_RT_PARAM_INLINE void
 argv_traverser::rollback()
 {
     m_work_buffer.assign( m_commited_end, m_work_buffer.end() );
@@ -174,7 +174,7 @@
 
 //____________________________________________________________________________//
 
-BOOST_RT_PARAM_INLINE std::size_t
+NDNBOOST_RT_PARAM_INLINE std::size_t
 argv_traverser::input_pos() const
 {
     return m_work_buffer.begin() - m_commited_end;
@@ -182,7 +182,7 @@
 
 //____________________________________________________________________________//
 
-BOOST_RT_PARAM_INLINE bool
+NDNBOOST_RT_PARAM_INLINE bool
 argv_traverser::handle_mismatch()
 {
     if( !p_ignore_mismatch )
@@ -202,8 +202,8 @@
 
 } // namespace cla
 
-} // namespace BOOST_RT_PARAM_NAMESPACE
+} // namespace NDNBOOST_RT_PARAM_NAMESPACE
 
 } // namespace ndnboost
 
-#endif // BOOST_RT_CLA_ARGV_TRAVERSER_IPP_070604GER
+#endif // NDNBOOST_RT_CLA_ARGV_TRAVERSER_IPP_070604GER
diff --git a/include/ndnboost/test/utils/runtime/cla/basic_parameter.hpp b/include/ndnboost/test/utils/runtime/cla/basic_parameter.hpp
index 39ebb72..79ec2b8 100644
--- a/include/ndnboost/test/utils/runtime/cla/basic_parameter.hpp
+++ b/include/ndnboost/test/utils/runtime/cla/basic_parameter.hpp
@@ -12,8 +12,8 @@
 //  Description : generic custom parameter generator
 // ***************************************************************************
 
-#ifndef BOOST_RT_CLA_BASIC_PARAMETER_HPP_062604GER
-#define BOOST_RT_CLA_BASIC_PARAMETER_HPP_062604GER
+#ifndef NDNBOOST_RT_CLA_BASIC_PARAMETER_HPP_062604GER
+#define NDNBOOST_RT_CLA_BASIC_PARAMETER_HPP_062604GER
 
 // Boost.Runtime.Parameter
 #include <ndnboost/test/utils/runtime/config.hpp>
@@ -28,7 +28,7 @@
 
 namespace ndnboost {
 
-namespace BOOST_RT_PARAM_NAMESPACE {
+namespace NDNBOOST_RT_PARAM_NAMESPACE {
 
 namespace cla {
 
@@ -59,7 +59,7 @@
 
 //____________________________________________________________________________//
 
-#define BOOST_RT_CLA_NAMED_PARAM_GENERATORS( param_type )                                       \
+#define NDNBOOST_RT_CLA_NAMED_PARAM_GENERATORS( param_type )                                       \
 template<typename T>                                                                            \
 inline shared_ptr<param_type ## _t<T> >                                                         \
 param_type( cstring name = cstring() )                                                          \
@@ -78,8 +78,8 @@
 
 } // namespace cla
 
-} // namespace BOOST_RT_PARAM_NAMESPACE
+} // namespace NDNBOOST_RT_PARAM_NAMESPACE
 
 } // namespace ndnboost
 
-#endif // BOOST_RT_CLA_BASIC_PARAMETER_HPP_062604GER
+#endif // NDNBOOST_RT_CLA_BASIC_PARAMETER_HPP_062604GER
diff --git a/include/ndnboost/test/utils/runtime/cla/char_parameter.hpp b/include/ndnboost/test/utils/runtime/cla/char_parameter.hpp
index d95b95b..ff9abca 100644
--- a/include/ndnboost/test/utils/runtime/cla/char_parameter.hpp
+++ b/include/ndnboost/test/utils/runtime/cla/char_parameter.hpp
@@ -12,8 +12,8 @@
 //  Description : defines model of parameter with single char name
 // ***************************************************************************
 
-#ifndef BOOST_RT_CLA_CHAR_PARAMETER_HPP_062604GER
-#define BOOST_RT_CLA_CHAR_PARAMETER_HPP_062604GER
+#ifndef NDNBOOST_RT_CLA_CHAR_PARAMETER_HPP_062604GER
+#define NDNBOOST_RT_CLA_CHAR_PARAMETER_HPP_062604GER
 
 // Boost.Runtime.Parameter
 #include <ndnboost/test/utils/runtime/config.hpp>
@@ -24,7 +24,7 @@
 
 namespace ndnboost {
 
-namespace BOOST_RT_PARAM_NAMESPACE {
+namespace NDNBOOST_RT_PARAM_NAMESPACE {
 
 namespace cla {
 
@@ -36,7 +36,7 @@
 public:
     // Constructor
     char_name_policy();
-    BOOST_RT_PARAM_UNNEEDED_VIRTUAL ~char_name_policy() {}
+    NDNBOOST_RT_PARAM_UNNEEDED_VIRTUAL ~char_name_policy() {}
 
     // policy interface
     virtual bool    conflict_with( identification_policy const& ) const;
@@ -47,7 +47,7 @@
     {
         basic_naming_policy::accept_modifier( m );
 
-        BOOST_RT_PARAM_VALIDATE_LOGIC( p_name->size() <= 1, "Invalid parameter name "  << p_name );
+        NDNBOOST_RT_PARAM_VALIDATE_LOGIC( p_name->size() <= 1, "Invalid parameter name "  << p_name );
     }
 };
 
@@ -84,15 +84,15 @@
 
 } // namespace cla
 
-} // namespace BOOST_RT_PARAM_NAMESPACE
+} // namespace NDNBOOST_RT_PARAM_NAMESPACE
 
 } // namespace ndnboost
 
-#ifndef BOOST_RT_PARAM_OFFLINE
+#ifndef NDNBOOST_RT_PARAM_OFFLINE
 
-#  define BOOST_RT_PARAM_INLINE inline
+#  define NDNBOOST_RT_PARAM_INLINE inline
 #  include <ndnboost/test/utils/runtime/cla/char_parameter.ipp>
 
 #endif
 
-#endif // BOOST_RT_CLA_CHAR_PARAMETER_HPP_062604GER
+#endif // NDNBOOST_RT_CLA_CHAR_PARAMETER_HPP_062604GER
diff --git a/include/ndnboost/test/utils/runtime/cla/char_parameter.ipp b/include/ndnboost/test/utils/runtime/cla/char_parameter.ipp
index 5922902..3b1db63 100644
--- a/include/ndnboost/test/utils/runtime/cla/char_parameter.ipp
+++ b/include/ndnboost/test/utils/runtime/cla/char_parameter.ipp
@@ -12,8 +12,8 @@
 //  Description : implements model of parameter with single char name
 // ***************************************************************************
 
-#ifndef BOOST_RT_CLA_CHAR_PARAMETER_IPP_062904GER
-#define BOOST_RT_CLA_CHAR_PARAMETER_IPP_062904GER
+#ifndef NDNBOOST_RT_CLA_CHAR_PARAMETER_IPP_062904GER
+#define NDNBOOST_RT_CLA_CHAR_PARAMETER_IPP_062904GER
 
 // Boost.Runtime.Parameter
 #include <ndnboost/test/utils/runtime/config.hpp>
@@ -22,7 +22,7 @@
 
 namespace ndnboost {
 
-namespace BOOST_RT_PARAM_NAMESPACE {
+namespace NDNBOOST_RT_PARAM_NAMESPACE {
 
 namespace cla {
 
@@ -30,16 +30,16 @@
 // **************               char_name_policy               ************** //
 // ************************************************************************** //
 
-BOOST_RT_PARAM_INLINE 
+NDNBOOST_RT_PARAM_INLINE 
 char_name_policy::char_name_policy()
 : basic_naming_policy( rtti::type_id<char_name_policy>() )
 {
-    assign_op( p_prefix.value, BOOST_RT_PARAM_CSTRING_LITERAL( "-" ), 0 );
+    assign_op( p_prefix.value, NDNBOOST_RT_PARAM_CSTRING_LITERAL( "-" ), 0 );
 }
 
 //____________________________________________________________________________//
 
-BOOST_RT_PARAM_INLINE bool
+NDNBOOST_RT_PARAM_INLINE bool
 char_name_policy::conflict_with( identification_policy const& id ) const
 {
     return id.p_type_id == p_type_id && 
@@ -50,8 +50,8 @@
 
 } // namespace cla
 
-} // namespace BOOST_RT_PARAM_NAMESPACE
+} // namespace NDNBOOST_RT_PARAM_NAMESPACE
 
 } // namespace ndnboost
 
-#endif // BOOST_RT_CLA_CHAR_PARAMETER_IPP_062904GER
+#endif // NDNBOOST_RT_CLA_CHAR_PARAMETER_IPP_062904GER
diff --git a/include/ndnboost/test/utils/runtime/cla/detail/argument_value_usage.hpp b/include/ndnboost/test/utils/runtime/cla/detail/argument_value_usage.hpp
index b78097b..a8050b2 100644
--- a/include/ndnboost/test/utils/runtime/cla/detail/argument_value_usage.hpp
+++ b/include/ndnboost/test/utils/runtime/cla/detail/argument_value_usage.hpp
@@ -13,8 +13,8 @@
 //  Description : argument usage printing helpers
 // ***************************************************************************
 
-#ifndef BOOST_RT_CLA_ARGUMENT_VALUE_USAGE_HPP_062604GER
-#define BOOST_RT_CLA_ARGUMENT_VALUE_USAGE_HPP_062604GER
+#ifndef NDNBOOST_RT_CLA_ARGUMENT_VALUE_USAGE_HPP_062604GER
+#define NDNBOOST_RT_CLA_ARGUMENT_VALUE_USAGE_HPP_062604GER
 
 // Boost.Runtime.Parameter
 #include <ndnboost/test/utils/runtime/config.hpp>
@@ -32,7 +32,7 @@
 
 namespace ndnboost {
 
-namespace BOOST_RT_PARAM_NAMESPACE {
+namespace NDNBOOST_RT_PARAM_NAMESPACE {
 
 namespace cla {
 
@@ -47,7 +47,7 @@
 inline void
 argument_value_usage( format_stream& fs, long, T* = 0 )
 {
-    fs << BOOST_RT_PARAM_CSTRING_LITERAL( "<value>" );
+    fs << NDNBOOST_RT_PARAM_CSTRING_LITERAL( "<value>" );
 }
 
 //____________________________________________________________________________//
@@ -57,7 +57,7 @@
 inline void
 argument_value_usage( format_stream& fs, int, std::list<T>* = 0 )
 {
-    fs << BOOST_RT_PARAM_CSTRING_LITERAL( "(<value1>, ..., <valueN>)" );
+    fs << NDNBOOST_RT_PARAM_CSTRING_LITERAL( "(<value1>, ..., <valueN>)" );
 }
 
 //____________________________________________________________________________//
@@ -66,7 +66,7 @@
 inline void
 argument_value_usage( format_stream& fs,  int, bool* = 0 )
 {
-    fs << BOOST_RT_PARAM_CSTRING_LITERAL( "yes|y|no|n" );
+    fs << NDNBOOST_RT_PARAM_CSTRING_LITERAL( "yes|y|no|n" );
 }
 
 //____________________________________________________________________________//
@@ -75,8 +75,8 @@
 
 } // namespace cla
 
-} // namespace BOOST_RT_PARAM_NAMESPACE
+} // namespace NDNBOOST_RT_PARAM_NAMESPACE
 
 } // namespace ndnboost
 
-#endif // BOOST_RT_CLA_ARGUMENT_VALUE_USAGE_HPP_062604GER
+#endif // NDNBOOST_RT_CLA_ARGUMENT_VALUE_USAGE_HPP_062604GER
diff --git a/include/ndnboost/test/utils/runtime/cla/dual_name_parameter.hpp b/include/ndnboost/test/utils/runtime/cla/dual_name_parameter.hpp
index 3adbb85..4c8c00d 100644
--- a/include/ndnboost/test/utils/runtime/cla/dual_name_parameter.hpp
+++ b/include/ndnboost/test/utils/runtime/cla/dual_name_parameter.hpp
@@ -12,8 +12,8 @@
 //  Description : defines model of generic parameter with dual naming
 // ***************************************************************************
 
-#ifndef BOOST_RT_CLA_DUAL_NAME_PARAMETER_HPP_062604GER
-#define BOOST_RT_CLA_DUAL_NAME_PARAMETER_HPP_062604GER
+#ifndef NDNBOOST_RT_CLA_DUAL_NAME_PARAMETER_HPP_062604GER
+#define NDNBOOST_RT_CLA_DUAL_NAME_PARAMETER_HPP_062604GER
 
 // Boost.Runtime.Parameter
 #include <ndnboost/test/utils/runtime/config.hpp>
@@ -23,7 +23,7 @@
 
 namespace ndnboost {
 
-namespace BOOST_RT_PARAM_NAMESPACE {
+namespace NDNBOOST_RT_PARAM_NAMESPACE {
 
 namespace cla {
 
@@ -76,21 +76,21 @@
 
 //____________________________________________________________________________//
 
-BOOST_RT_CLA_NAMED_PARAM_GENERATORS( dual_name_parameter )
+NDNBOOST_RT_CLA_NAMED_PARAM_GENERATORS( dual_name_parameter )
 
 //____________________________________________________________________________//
 
 } // namespace cla
 
-} // namespace BOOST_RT_PARAM_NAMESPACE
+} // namespace NDNBOOST_RT_PARAM_NAMESPACE
 
 } // namespace ndnboost
 
-#ifndef BOOST_RT_PARAM_OFFLINE
+#ifndef NDNBOOST_RT_PARAM_OFFLINE
 
-#  define BOOST_RT_PARAM_INLINE inline
+#  define NDNBOOST_RT_PARAM_INLINE inline
 #  include <ndnboost/test/utils/runtime/cla/dual_name_parameter.ipp>
 
 #endif
 
-#endif // BOOST_RT_CLA_DUAL_NAME_PARAMETER_HPP_062604GER
+#endif // NDNBOOST_RT_CLA_DUAL_NAME_PARAMETER_HPP_062604GER
diff --git a/include/ndnboost/test/utils/runtime/cla/dual_name_parameter.ipp b/include/ndnboost/test/utils/runtime/cla/dual_name_parameter.ipp
index 8fcb04f..9caf386 100644
--- a/include/ndnboost/test/utils/runtime/cla/dual_name_parameter.ipp
+++ b/include/ndnboost/test/utils/runtime/cla/dual_name_parameter.ipp
@@ -12,8 +12,8 @@
 //  Description : implements model of generic parameter with dual naming
 // ***************************************************************************
 
-#ifndef BOOST_RT_CLA_DUAL_NAME_PARAMETER_IPP_062904GER
-#define BOOST_RT_CLA_DUAL_NAME_PARAMETER_IPP_062904GER
+#ifndef NDNBOOST_RT_CLA_DUAL_NAME_PARAMETER_IPP_062904GER
+#define NDNBOOST_RT_CLA_DUAL_NAME_PARAMETER_IPP_062904GER
 
 // Boost.Runtime.Parameter
 #include <ndnboost/test/utils/runtime/config.hpp>
@@ -23,7 +23,7 @@
 
 namespace ndnboost {
 
-namespace BOOST_RT_PARAM_NAMESPACE {
+namespace NDNBOOST_RT_PARAM_NAMESPACE {
 
 namespace cla {
 
@@ -31,11 +31,11 @@
 // **************               dual_name_policy               ************** //
 // ************************************************************************** //
 
-BOOST_RT_PARAM_INLINE 
+NDNBOOST_RT_PARAM_INLINE 
 dual_name_policy::dual_name_policy()
 {
-    m_primary.accept_modifier( prefix = BOOST_RT_PARAM_CSTRING_LITERAL( "--" ) );
-    m_secondary.accept_modifier( prefix = BOOST_RT_PARAM_CSTRING_LITERAL( "-" ) );
+    m_primary.accept_modifier( prefix = NDNBOOST_RT_PARAM_CSTRING_LITERAL( "--" ) );
+    m_secondary.accept_modifier( prefix = NDNBOOST_RT_PARAM_CSTRING_LITERAL( "-" ) );
 }
 
 //____________________________________________________________________________//
@@ -46,7 +46,7 @@
 inline void
 split( string_name_policy& snp, char_name_policy& cnp, cstring src, K const& k )
 {
-    cstring::iterator sep = std::find( src.begin(), src.end(), BOOST_RT_PARAM_LITERAL( '|' ) );
+    cstring::iterator sep = std::find( src.begin(), src.end(), NDNBOOST_RT_PARAM_LITERAL( '|' ) );
     
     if( sep != src.begin() )
         snp.accept_modifier( k = cstring( src.begin(), sep ) );
@@ -57,7 +57,7 @@
 
 } // local namespace
 
-BOOST_RT_PARAM_INLINE void
+NDNBOOST_RT_PARAM_INLINE void
 dual_name_policy::set_prefix( cstring src )
 {
     split( m_primary, m_secondary, src, prefix );
@@ -65,7 +65,7 @@
 
 //____________________________________________________________________________//
 
-BOOST_RT_PARAM_INLINE void
+NDNBOOST_RT_PARAM_INLINE void
 dual_name_policy::set_name( cstring src )
 {
     split( m_primary, m_secondary, src, name );
@@ -73,7 +73,7 @@
 
 //____________________________________________________________________________//
 
-BOOST_RT_PARAM_INLINE void
+NDNBOOST_RT_PARAM_INLINE void
 dual_name_policy::set_separator( cstring src )
 {
     split( m_primary, m_secondary, src, separator );
@@ -83,8 +83,8 @@
 
 } // namespace cla
 
-} // namespace BOOST_RT_PARAM_NAMESPACE
+} // namespace NDNBOOST_RT_PARAM_NAMESPACE
 
 } // namespace ndnboost
 
-#endif // BOOST_RT_CLA_DUAL_NAME_PARAMETER_IPP_062904GER
+#endif // NDNBOOST_RT_CLA_DUAL_NAME_PARAMETER_IPP_062904GER
diff --git a/include/ndnboost/test/utils/runtime/cla/fwd.hpp b/include/ndnboost/test/utils/runtime/cla/fwd.hpp
index 4065e9b..d221808 100644
--- a/include/ndnboost/test/utils/runtime/cla/fwd.hpp
+++ b/include/ndnboost/test/utils/runtime/cla/fwd.hpp
@@ -12,8 +12,8 @@
 //  Description : cla subsystem forward declarations
 // ***************************************************************************
 
-#ifndef BOOST_RT_CLA_FWD_HPP_062604GER
-#define BOOST_RT_CLA_FWD_HPP_062604GER
+#ifndef NDNBOOST_RT_CLA_FWD_HPP_062604GER
+#define NDNBOOST_RT_CLA_FWD_HPP_062604GER
 
 // Boost.Runtime.Parameter
 #include <ndnboost/test/utils/runtime/config.hpp>
@@ -23,7 +23,7 @@
 
 namespace ndnboost {
 
-namespace BOOST_RT_PARAM_NAMESPACE {
+namespace NDNBOOST_RT_PARAM_NAMESPACE {
 
 namespace cla {
 
@@ -48,8 +48,8 @@
 
 } // namespace cla
 
-} // namespace BOOST_RT_PARAM_NAMESPACE
+} // namespace NDNBOOST_RT_PARAM_NAMESPACE
 
 } // namespace ndnboost
 
-#endif // BOOST_RT_CLA_FWD_HPP_062604GER
+#endif // NDNBOOST_RT_CLA_FWD_HPP_062604GER
diff --git a/include/ndnboost/test/utils/runtime/cla/id_policy.hpp b/include/ndnboost/test/utils/runtime/cla/id_policy.hpp
index fb29cb7..2f587b4 100644
--- a/include/ndnboost/test/utils/runtime/cla/id_policy.hpp
+++ b/include/ndnboost/test/utils/runtime/cla/id_policy.hpp
@@ -12,8 +12,8 @@
 //  Description : some generic identification policies definition
 // ***************************************************************************
 
-#ifndef BOOST_RT_CLA_ID_POLICY_HPP_062604GER
-#define BOOST_RT_CLA_ID_POLICY_HPP_062604GER
+#ifndef NDNBOOST_RT_CLA_ID_POLICY_HPP_062604GER
+#define NDNBOOST_RT_CLA_ID_POLICY_HPP_062604GER
 
 // Boost.Runtime.Parameter
 #include <ndnboost/test/utils/runtime/config.hpp>
@@ -30,7 +30,7 @@
 
 namespace ndnboost {
 
-namespace BOOST_RT_PARAM_NAMESPACE {
+namespace NDNBOOST_RT_PARAM_NAMESPACE {
 
 namespace cla {
 
@@ -65,7 +65,7 @@
     explicit basic_naming_policy( rtti::id_t dyn_type )
     : identification_policy( dyn_type )
     {}
-    BOOST_RT_PARAM_UNNEEDED_VIRTUAL ~basic_naming_policy() {}
+    NDNBOOST_RT_PARAM_UNNEEDED_VIRTUAL ~basic_naming_policy() {}
 
     // Naming policy interface
     virtual bool    match_prefix( argv_traverser& tr ) const;
@@ -102,11 +102,11 @@
     }
     virtual void    usage_info( format_stream& fs ) const
     {
-        fs << BOOST_RT_PARAM_LITERAL( '{' );
+        fs << NDNBOOST_RT_PARAM_LITERAL( '{' );
         m_primary.usage_info( fs );
-        fs << BOOST_RT_PARAM_LITERAL( '|' );
+        fs << NDNBOOST_RT_PARAM_LITERAL( '|' );
         m_secondary.usage_info( fs );
-        fs << BOOST_RT_PARAM_LITERAL( '}' );
+        fs << NDNBOOST_RT_PARAM_LITERAL( '}' );
     }
     virtual bool    matching( parameter const& p, argv_traverser& tr, bool primary ) const
     {
@@ -122,7 +122,7 @@
     }
 
 protected:
-    BOOST_RT_PARAM_UNNEEDED_VIRTUAL ~dual_id_policy() {}
+    NDNBOOST_RT_PARAM_UNNEEDED_VIRTUAL ~dual_id_policy() {}
 
     // Data members
     PrimaryId       m_primary;
@@ -131,15 +131,15 @@
 
 } // namespace cla
 
-} // namespace BOOST_RT_PARAM_NAMESPACE
+} // namespace NDNBOOST_RT_PARAM_NAMESPACE
 
 } // namespace ndnboost
 
-#ifndef BOOST_RT_PARAM_OFFLINE
+#ifndef NDNBOOST_RT_PARAM_OFFLINE
 
-#  define BOOST_RT_PARAM_INLINE inline
+#  define NDNBOOST_RT_PARAM_INLINE inline
 #  include <ndnboost/test/utils/runtime/cla/id_policy.ipp>
 
 #endif
 
-#endif // BOOST_RT_CLA_ID_POLICY_HPP_062604GER
+#endif // NDNBOOST_RT_CLA_ID_POLICY_HPP_062604GER
diff --git a/include/ndnboost/test/utils/runtime/cla/id_policy.ipp b/include/ndnboost/test/utils/runtime/cla/id_policy.ipp
index 6d2c2f4..49a462d 100644
--- a/include/ndnboost/test/utils/runtime/cla/id_policy.ipp
+++ b/include/ndnboost/test/utils/runtime/cla/id_policy.ipp
@@ -12,8 +12,8 @@
 //  Description : some generic identification policies implementation
 // ***************************************************************************
 
-#ifndef BOOST_RT_CLA_ID_POLICY_IPP_062904GER
-#define BOOST_RT_CLA_ID_POLICY_IPP_062904GER
+#ifndef NDNBOOST_RT_CLA_ID_POLICY_IPP_062904GER
+#define NDNBOOST_RT_CLA_ID_POLICY_IPP_062904GER
 
 // Boost.Runtime.Parameter
 #include <ndnboost/test/utils/runtime/config.hpp>
@@ -23,7 +23,7 @@
 
 namespace ndnboost {
 
-namespace BOOST_RT_PARAM_NAMESPACE {
+namespace NDNBOOST_RT_PARAM_NAMESPACE {
 
 namespace cla {
 
@@ -31,18 +31,18 @@
 // **************              basic_naming_policy             ************** //
 // ************************************************************************** //
 
-BOOST_RT_PARAM_INLINE void
+NDNBOOST_RT_PARAM_INLINE void
 basic_naming_policy::usage_info( format_stream& fs ) const
 {
     fs << p_prefix << p_name << p_separator;
 
     if( p_separator->empty() )
-        fs << BOOST_RT_PARAM_LITERAL( ' ' );
+        fs << NDNBOOST_RT_PARAM_LITERAL( ' ' );
 }
 
 //____________________________________________________________________________//
 
-BOOST_RT_PARAM_INLINE bool
+NDNBOOST_RT_PARAM_INLINE bool
 basic_naming_policy::match_prefix( argv_traverser& tr ) const
 {
     if( !tr.match_front( p_prefix.get() ) )
@@ -54,7 +54,7 @@
 
 //____________________________________________________________________________//
     
-BOOST_RT_PARAM_INLINE bool
+NDNBOOST_RT_PARAM_INLINE bool
 basic_naming_policy::match_name( argv_traverser& tr ) const
 {
     if( !tr.match_front( p_name.get() ) )
@@ -66,7 +66,7 @@
 
 //____________________________________________________________________________//
     
-BOOST_RT_PARAM_INLINE bool
+NDNBOOST_RT_PARAM_INLINE bool
 basic_naming_policy::match_separator( argv_traverser& tr, bool optional_value ) const
 {
     if( p_separator->empty() ) {
@@ -92,7 +92,7 @@
 
 //____________________________________________________________________________//
 
-BOOST_RT_PARAM_INLINE bool
+NDNBOOST_RT_PARAM_INLINE bool
 basic_naming_policy::matching( parameter const& p, argv_traverser& tr, bool ) const
 {
     if( !match_prefix( tr ) )
@@ -111,8 +111,8 @@
 
 } // namespace cla
 
-} // namespace BOOST_RT_PARAM_NAMESPACE
+} // namespace NDNBOOST_RT_PARAM_NAMESPACE
 
 } // namespace ndnboost
 
-#endif // BOOST_RT_CLA_ID_POLICY_IPP_062904GER
+#endif // NDNBOOST_RT_CLA_ID_POLICY_IPP_062904GER
diff --git a/include/ndnboost/test/utils/runtime/cla/iface/argument_factory.hpp b/include/ndnboost/test/utils/runtime/cla/iface/argument_factory.hpp
index 84c1e40..0c90bb9 100644
--- a/include/ndnboost/test/utils/runtime/cla/iface/argument_factory.hpp
+++ b/include/ndnboost/test/utils/runtime/cla/iface/argument_factory.hpp
@@ -12,8 +12,8 @@
 //  Description : defines interface for argument_factory
 // ***************************************************************************
 
-#ifndef BOOST_RT_CLA_IFACE_ARGUMENT_FACTORY_HPP_062604GER
-#define BOOST_RT_CLA_IFACE_ARGUMENT_FACTORY_HPP_062604GER
+#ifndef NDNBOOST_RT_CLA_IFACE_ARGUMENT_FACTORY_HPP_062604GER
+#define NDNBOOST_RT_CLA_IFACE_ARGUMENT_FACTORY_HPP_062604GER
 
 // Boost.Runtime.Parameter
 #include <ndnboost/test/utils/runtime/config.hpp>
@@ -23,7 +23,7 @@
 
 namespace ndnboost {
 
-namespace BOOST_RT_PARAM_NAMESPACE {
+namespace NDNBOOST_RT_PARAM_NAMESPACE {
 
 namespace cla {
 
@@ -39,13 +39,13 @@
     virtual argument_ptr produce_using( parameter& p, parser const& )      = 0;  /// produce argument based on internal generator and/or values of other parameters
     virtual void         argument_usage_info( format_stream& fs )          = 0;  /// argument value format information
 protected:
-    BOOST_TEST_PROTECTED_VIRTUAL ~argument_factory() {}
+    NDNBOOST_TEST_PROTECTED_VIRTUAL ~argument_factory() {}
 };
 
 } // namespace ndnboost
 
-} // namespace BOOST_RT_PARAM_NAMESPACE
+} // namespace NDNBOOST_RT_PARAM_NAMESPACE
 
 } // namespace cla
 
-#endif // BOOST_RT_CLA_IFACE_ARGUMENT_FACTORY_HPP_062604GER
+#endif // NDNBOOST_RT_CLA_IFACE_ARGUMENT_FACTORY_HPP_062604GER
diff --git a/include/ndnboost/test/utils/runtime/cla/iface/id_policy.hpp b/include/ndnboost/test/utils/runtime/cla/iface/id_policy.hpp
index 338f8d5..06a0d0d 100644
--- a/include/ndnboost/test/utils/runtime/cla/iface/id_policy.hpp
+++ b/include/ndnboost/test/utils/runtime/cla/iface/id_policy.hpp
@@ -12,8 +12,8 @@
 //  Description : defines interface for identification_policy
 // ***************************************************************************
 
-#ifndef BOOST_RT_CLA_IFACE_ID_POLICY_HPP_062604GER
-#define BOOST_RT_CLA_IFACE_ID_POLICY_HPP_062604GER
+#ifndef NDNBOOST_RT_CLA_IFACE_ID_POLICY_HPP_062604GER
+#define NDNBOOST_RT_CLA_IFACE_ID_POLICY_HPP_062604GER
 
 // Boost.Runtime.Parameter
 #include <ndnboost/test/utils/runtime/config.hpp>
@@ -26,7 +26,7 @@
 
 namespace ndnboost {
 
-namespace BOOST_RT_PARAM_NAMESPACE {
+namespace NDNBOOST_RT_PARAM_NAMESPACE {
 
 namespace cla {
 
@@ -34,7 +34,7 @@
 // **************             identification_policy            ************** //
 // ************************************************************************** //
 
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
 #  pragma warning(push)
 #  pragma warning(disable:4244)
 #endif
@@ -57,17 +57,17 @@
     explicit        identification_policy( rtti::id_t dyn_type )
     : p_type_id( dyn_type )
     {}
-    BOOST_TEST_PROTECTED_VIRTUAL ~identification_policy() {}
+    NDNBOOST_TEST_PROTECTED_VIRTUAL ~identification_policy() {}
 };
 
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
 #  pragma warning(pop)
 #endif
 
 } // namespace cla
 
-} // namespace BOOST_RT_PARAM_NAMESPACE
+} // namespace NDNBOOST_RT_PARAM_NAMESPACE
 
 } // namespace ndnboost
 
-#endif // BOOST_RT_CLA_IFACE_ID_POLICY_HPP_062604GER
+#endif // NDNBOOST_RT_CLA_IFACE_ID_POLICY_HPP_062604GER
diff --git a/include/ndnboost/test/utils/runtime/cla/modifier.hpp b/include/ndnboost/test/utils/runtime/cla/modifier.hpp
index 32719ab..d92e400 100644
--- a/include/ndnboost/test/utils/runtime/cla/modifier.hpp
+++ b/include/ndnboost/test/utils/runtime/cla/modifier.hpp
@@ -12,8 +12,8 @@
 //  Description : parameter modifiers
 // ***************************************************************************
 
-#ifndef BOOST_RT_CLA_MODIFIER_HPP_062604GER
-#define BOOST_RT_CLA_MODIFIER_HPP_062604GER
+#ifndef NDNBOOST_RT_CLA_MODIFIER_HPP_062604GER
+#define NDNBOOST_RT_CLA_MODIFIER_HPP_062604GER
 
 // Boost.Runtime.Parameter
 #include <ndnboost/test/utils/runtime/config.hpp>
@@ -23,7 +23,7 @@
 
 namespace ndnboost {
 
-namespace BOOST_RT_PARAM_NAMESPACE {
+namespace NDNBOOST_RT_PARAM_NAMESPACE {
 
 namespace cla {
 
@@ -62,8 +62,8 @@
 
 } // namespace cla
 
-} // namespace BOOST_RT_PARAM_NAMESPACE
+} // namespace NDNBOOST_RT_PARAM_NAMESPACE
 
 } // namespace ndnboost
 
-#endif // BOOST_RT_CLA_MODIFIER_HPP_062604GER
+#endif // NDNBOOST_RT_CLA_MODIFIER_HPP_062604GER
diff --git a/include/ndnboost/test/utils/runtime/cla/named_parameter.hpp b/include/ndnboost/test/utils/runtime/cla/named_parameter.hpp
index 28f03b4..0160f79 100644
--- a/include/ndnboost/test/utils/runtime/cla/named_parameter.hpp
+++ b/include/ndnboost/test/utils/runtime/cla/named_parameter.hpp
@@ -12,8 +12,8 @@
 //  Description : defines model of named parameter
 // ***************************************************************************
 
-#ifndef BOOST_RT_CLA_NAMED_PARAMETER_HPP_062604GER
-#define BOOST_RT_CLA_NAMED_PARAMETER_HPP_062604GER
+#ifndef NDNBOOST_RT_CLA_NAMED_PARAMETER_HPP_062604GER
+#define NDNBOOST_RT_CLA_NAMED_PARAMETER_HPP_062604GER
 
 // Boost.Runtime.Parameter
 #include <ndnboost/test/utils/runtime/config.hpp>
@@ -23,7 +23,7 @@
 
 namespace ndnboost {
 
-namespace BOOST_RT_PARAM_NAMESPACE {
+namespace NDNBOOST_RT_PARAM_NAMESPACE {
 
 namespace cla {
 
@@ -35,7 +35,7 @@
 public:
     // Constructor
     string_name_policy();
-    BOOST_RT_PARAM_UNNEEDED_VIRTUAL ~string_name_policy() {}
+    NDNBOOST_RT_PARAM_UNNEEDED_VIRTUAL ~string_name_policy() {}
 
     // policy interface
     virtual bool    responds_to( cstring name ) const;
@@ -73,21 +73,21 @@
 
 //____________________________________________________________________________//
 
-BOOST_RT_CLA_NAMED_PARAM_GENERATORS( named_parameter )
+NDNBOOST_RT_CLA_NAMED_PARAM_GENERATORS( named_parameter )
 
 //____________________________________________________________________________//
 
 } // namespace cla
 
-} // namespace BOOST_RT_PARAM_NAMESPACE
+} // namespace NDNBOOST_RT_PARAM_NAMESPACE
 
 } // namespace ndnboost
 
-#ifndef BOOST_RT_PARAM_OFFLINE
+#ifndef NDNBOOST_RT_PARAM_OFFLINE
 
-#  define BOOST_RT_PARAM_INLINE inline
+#  define NDNBOOST_RT_PARAM_INLINE inline
 #  include <ndnboost/test/utils/runtime/cla/named_parameter.ipp>
 
 #endif
 
-#endif // BOOST_RT_CLA_NAMED_PARAMETER_HPP_062604GER
+#endif // NDNBOOST_RT_CLA_NAMED_PARAMETER_HPP_062604GER
diff --git a/include/ndnboost/test/utils/runtime/cla/named_parameter.ipp b/include/ndnboost/test/utils/runtime/cla/named_parameter.ipp
index 1d77018..b626ee0 100644
--- a/include/ndnboost/test/utils/runtime/cla/named_parameter.ipp
+++ b/include/ndnboost/test/utils/runtime/cla/named_parameter.ipp
@@ -12,8 +12,8 @@
 //  Description : implements model of named parameter
 // ***************************************************************************
 
-#ifndef BOOST_RT_CLA_NAMED_PARAMETER_IPP_062904GER
-#define BOOST_RT_CLA_NAMED_PARAMETER_IPP_062904GER
+#ifndef NDNBOOST_RT_CLA_NAMED_PARAMETER_IPP_062904GER
+#define NDNBOOST_RT_CLA_NAMED_PARAMETER_IPP_062904GER
 
 // Boost.Runtime.Parameter
 #include <ndnboost/test/utils/runtime/config.hpp>
@@ -26,7 +26,7 @@
 
 namespace ndnboost {
 
-namespace BOOST_RT_PARAM_NAMESPACE {
+namespace NDNBOOST_RT_PARAM_NAMESPACE {
 
 namespace cla {
 
@@ -34,17 +34,17 @@
 // **************              string_name_policy              ************** //
 // ************************************************************************** //
 
-BOOST_RT_PARAM_INLINE 
+NDNBOOST_RT_PARAM_INLINE 
 string_name_policy::string_name_policy()
 : basic_naming_policy( rtti::type_id<string_name_policy>() )
 , m_guess_name( false )
 {
-    assign_op( p_prefix.value, BOOST_RT_PARAM_CSTRING_LITERAL( "-" ), 0 );
+    assign_op( p_prefix.value, NDNBOOST_RT_PARAM_CSTRING_LITERAL( "-" ), 0 );
 }
 
 //____________________________________________________________________________//
 
-BOOST_RT_PARAM_INLINE bool
+NDNBOOST_RT_PARAM_INLINE bool
 string_name_policy::responds_to( cstring name ) const
 {
     std::pair<cstring::iterator,dstring::const_iterator> mm_pos;
@@ -56,12 +56,12 @@
 
 //____________________________________________________________________________//
 
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
 #  pragma warning(push)
 #  pragma warning(disable:4244)
 #endif
 
-BOOST_RT_PARAM_INLINE bool
+NDNBOOST_RT_PARAM_INLINE bool
 string_name_policy::conflict_with( identification_policy const& id ) const
 {
     if( id.p_type_id == p_type_id ) {
@@ -92,13 +92,13 @@
     return false;    
 }
 
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
 #  pragma warning(pop)
 #endif
 
 //____________________________________________________________________________//
 
-BOOST_RT_PARAM_INLINE bool
+NDNBOOST_RT_PARAM_INLINE bool
 string_name_policy::match_name( argv_traverser& tr ) const
 {
     if( !m_guess_name )
@@ -122,8 +122,8 @@
 
 } // namespace cla
 
-} // namespace BOOST_RT_PARAM_NAMESPACE
+} // namespace NDNBOOST_RT_PARAM_NAMESPACE
 
 } // namespace ndnboost
 
-#endif // BOOST_RT_CLA_NAMED_PARAMETER_IPP_062904GER
+#endif // NDNBOOST_RT_CLA_NAMED_PARAMETER_IPP_062904GER
diff --git a/include/ndnboost/test/utils/runtime/cla/parameter.hpp b/include/ndnboost/test/utils/runtime/cla/parameter.hpp
index 36edbb6..84d60d3 100644
--- a/include/ndnboost/test/utils/runtime/cla/parameter.hpp
+++ b/include/ndnboost/test/utils/runtime/cla/parameter.hpp
@@ -12,8 +12,8 @@
 //  Description : defines model of formal parameter
 // ***************************************************************************
 
-#ifndef BOOST_RT_CLA_PARAMETER_HPP_062604GER
-#define BOOST_RT_CLA_PARAMETER_HPP_062604GER
+#ifndef NDNBOOST_RT_CLA_PARAMETER_HPP_062604GER
+#define NDNBOOST_RT_CLA_PARAMETER_HPP_062604GER
 
 // Boost.Runtime.Parameter
 #include <ndnboost/test/utils/runtime/config.hpp>
@@ -32,7 +32,7 @@
 
 namespace ndnboost {
 
-namespace BOOST_RT_PARAM_NAMESPACE {
+namespace NDNBOOST_RT_PARAM_NAMESPACE {
 
 namespace cla {
 
@@ -40,7 +40,7 @@
 // **************            runtime::cla::parameter           ************** //
 // ************************************************************************** //
 
-class parameter : public BOOST_RT_PARAM_NAMESPACE::parameter {
+class parameter : public NDNBOOST_RT_PARAM_NAMESPACE::parameter {
 public:
     parameter( identification_policy& ID, argument_factory& F, bool optional_value = false )
     : p_optional( false )
@@ -96,12 +96,12 @@
     { 
         m_id_policy.usage_info( fs );
         if( p_optional_value )
-            fs << BOOST_RT_PARAM_LITERAL( '[' );
+            fs << NDNBOOST_RT_PARAM_LITERAL( '[' );
 
         m_arg_factory.argument_usage_info( fs );
 
         if( p_optional_value )
-            fs << BOOST_RT_PARAM_LITERAL( ']' );
+            fs << NDNBOOST_RT_PARAM_LITERAL( ']' );
     }
 
     // argument match/produce based on input
@@ -143,8 +143,8 @@
 
 } // namespace cla
 
-} // namespace BOOST_RT_PARAM_NAMESPACE
+} // namespace NDNBOOST_RT_PARAM_NAMESPACE
 
 } // namespace ndnboost
 
-#endif // BOOST_RT_CLA_PARAMETER_HPP_062604GER
+#endif // NDNBOOST_RT_CLA_PARAMETER_HPP_062604GER
diff --git a/include/ndnboost/test/utils/runtime/cla/parser.hpp b/include/ndnboost/test/utils/runtime/cla/parser.hpp
index d98625c..f303f69 100644
--- a/include/ndnboost/test/utils/runtime/cla/parser.hpp
+++ b/include/ndnboost/test/utils/runtime/cla/parser.hpp
@@ -12,8 +12,8 @@
 //  Description : defines parser - public interface for CLA parsing and accessing
 // ***************************************************************************
 
-#ifndef BOOST_RT_CLA_PARSER_HPP_062604GER
-#define BOOST_RT_CLA_PARSER_HPP_062604GER
+#ifndef NDNBOOST_RT_CLA_PARSER_HPP_062604GER
+#define NDNBOOST_RT_CLA_PARSER_HPP_062604GER
 
 // Boost.Runtime.Parameter
 #include <ndnboost/test/utils/runtime/config.hpp>
@@ -32,7 +32,7 @@
 
 namespace ndnboost {
 
-namespace BOOST_RT_PARAM_NAMESPACE {
+namespace NDNBOOST_RT_PARAM_NAMESPACE {
 
 namespace cla {
 
@@ -139,15 +139,15 @@
 
 } // namespace cla
 
-} // namespace BOOST_RT_PARAM_NAMESPACE
+} // namespace NDNBOOST_RT_PARAM_NAMESPACE
 
 } // namespace ndnboost
 
-#ifndef BOOST_RT_PARAM_OFFLINE
+#ifndef NDNBOOST_RT_PARAM_OFFLINE
 
-#  define BOOST_RT_PARAM_INLINE inline
+#  define NDNBOOST_RT_PARAM_INLINE inline
 #  include <ndnboost/test/utils/runtime/cla/parser.ipp>
 
 #endif
 
-#endif // BOOST_RT_CLA_PARSER_HPP_062604GER
+#endif // NDNBOOST_RT_CLA_PARSER_HPP_062604GER
diff --git a/include/ndnboost/test/utils/runtime/cla/parser.ipp b/include/ndnboost/test/utils/runtime/cla/parser.ipp
index 5be8503..aa39485 100644
--- a/include/ndnboost/test/utils/runtime/cla/parser.ipp
+++ b/include/ndnboost/test/utils/runtime/cla/parser.ipp
@@ -12,8 +12,8 @@
 //  Description : implements parser - public interface for CLA parsing and accessing
 // ***************************************************************************
 
-#ifndef BOOST_RT_CLA_PARSER_IPP_062904GER
-#define BOOST_RT_CLA_PARSER_IPP_062904GER
+#ifndef NDNBOOST_RT_CLA_PARSER_IPP_062904GER
+#define NDNBOOST_RT_CLA_PARSER_IPP_062904GER
 
 // Boost.Runtime.Parameter
 #include <ndnboost/test/utils/runtime/config.hpp>
@@ -35,7 +35,7 @@
 
 namespace ndnboost {
 
-namespace BOOST_RT_PARAM_NAMESPACE {
+namespace NDNBOOST_RT_PARAM_NAMESPACE {
 
 namespace cla {
 
@@ -43,7 +43,7 @@
 // **************             runtime::cla::parser             ************** //
 // ************************************************************************** //
 
-BOOST_RT_PARAM_INLINE
+NDNBOOST_RT_PARAM_INLINE
 parser::parser( cstring program_name )
 {
     assign_op( m_program_name, program_name, 0 );
@@ -51,7 +51,7 @@
 
 //____________________________________________________________________________//
 
-BOOST_RT_PARAM_INLINE parser::param_iterator
+NDNBOOST_RT_PARAM_INLINE parser::param_iterator
 parser::first_param() const
 {
     return m_parameters.begin();
@@ -59,7 +59,7 @@
 
 //____________________________________________________________________________//
 
-BOOST_RT_PARAM_INLINE parser::param_iterator
+NDNBOOST_RT_PARAM_INLINE parser::param_iterator
 parser::last_param() const
 {
     return m_parameters.end();
@@ -67,25 +67,25 @@
 
 //____________________________________________________________________________//
 
-BOOST_RT_PARAM_INLINE argument const&
+NDNBOOST_RT_PARAM_INLINE argument const&
 parser::valid_argument( cstring string_id ) const
 {
     const_argument_ptr arg = (*this)[string_id];
 
-    BOOST_RT_PARAM_VALIDATE_LOGIC( !!arg, "Actual argument for parameter " << string_id << " is not present" );
+    NDNBOOST_RT_PARAM_VALIDATE_LOGIC( !!arg, "Actual argument for parameter " << string_id << " is not present" );
 
     return *arg;
 }
 
 //____________________________________________________________________________//
 
-BOOST_RT_PARAM_INLINE parser&
+NDNBOOST_RT_PARAM_INLINE parser&
 parser::operator<<( parameter_ptr new_param )
 {
-    BOOST_TEST_FOREACH( parameter_ptr, old_param, m_parameters ) {
-        BOOST_RT_PARAM_VALIDATE_LOGIC( !old_param->conflict_with( *new_param ),
-            BOOST_RT_PARAM_LITERAL( "Definition of parameter " )                << new_param->id_2_report() << 
-            BOOST_RT_PARAM_LITERAL( " conflicts with defintion of parameter " ) << old_param->id_2_report() );
+    NDNBOOST_TEST_FOREACH( parameter_ptr, old_param, m_parameters ) {
+        NDNBOOST_RT_PARAM_VALIDATE_LOGIC( !old_param->conflict_with( *new_param ),
+            NDNBOOST_RT_PARAM_LITERAL( "Definition of parameter " )                << new_param->id_2_report() << 
+            NDNBOOST_RT_PARAM_LITERAL( " conflicts with defintion of parameter " ) << old_param->id_2_report() );
     }
 
     m_parameters.push_back( new_param );
@@ -95,12 +95,12 @@
 
 //____________________________________________________________________________//
 
-BOOST_RT_PARAM_INLINE void
+NDNBOOST_RT_PARAM_INLINE void
 parser::parse( int& argc, char_type** argv )
 {
     if( m_program_name.empty() ) {
         m_program_name.assign( argv[0] );
-        dstring::size_type pos = m_program_name.find_last_of( BOOST_RT_PARAM_LITERAL( "/\\" ) );
+        dstring::size_type pos = m_program_name.find_last_of( NDNBOOST_RT_PARAM_LITERAL( "/\\" ) );
 
         if( pos != static_cast<dstring::size_type>(cstring::npos) )
             m_program_name.erase( 0, pos+1 );
@@ -112,14 +112,14 @@
         while( !m_traverser.eoi() ) {
             parameter_ptr found_param;
 
-            BOOST_RT_PARAM_TRACE( "Total " << m_parameters.size() << " parameters registered" );
+            NDNBOOST_RT_PARAM_TRACE( "Total " << m_parameters.size() << " parameters registered" );
 
-            BOOST_TEST_FOREACH( parameter_ptr const&, curr_param, m_parameters ) {
-                BOOST_RT_PARAM_TRACE( "Try parameter " << curr_param->id_2_report() );
+            NDNBOOST_TEST_FOREACH( parameter_ptr const&, curr_param, m_parameters ) {
+                NDNBOOST_RT_PARAM_TRACE( "Try parameter " << curr_param->id_2_report() );
 
                 if( curr_param->matching( m_traverser, !found_param ) ) {
-                    BOOST_RT_PARAM_TRACE( "Match found" );
-                    BOOST_RT_CLA_VALIDATE_INPUT( !found_param, (m_traverser.rollback(),m_traverser), "Ambiguous input" );
+                    NDNBOOST_RT_PARAM_TRACE( "Match found" );
+                    NDNBOOST_RT_CLA_VALIDATE_INPUT( !found_param, (m_traverser.rollback(),m_traverser), "Ambiguous input" );
 
                     found_param = curr_param;
                 }
@@ -128,32 +128,32 @@
             }
 
             if( !found_param ) {
-                BOOST_RT_PARAM_TRACE( "No match found" );
-                BOOST_RT_CLA_VALIDATE_INPUT( m_traverser.handle_mismatch(), m_traverser,
-                                             BOOST_RT_PARAM_LITERAL( "Unexpected input" ) );
+                NDNBOOST_RT_PARAM_TRACE( "No match found" );
+                NDNBOOST_RT_CLA_VALIDATE_INPUT( m_traverser.handle_mismatch(), m_traverser,
+                                             NDNBOOST_RT_PARAM_LITERAL( "Unexpected input" ) );
 
                 continue;
             }
 
-            BOOST_RT_PARAM_TRACE( "Parse argument value" );
+            NDNBOOST_RT_PARAM_TRACE( "Parse argument value" );
             found_param->produce_argument( m_traverser );
 
             m_traverser.commit();
         }
 
-        BOOST_TEST_FOREACH( parameter_ptr const&, curr_param, m_parameters ) {
+        NDNBOOST_TEST_FOREACH( parameter_ptr const&, curr_param, m_parameters ) {
             if( !curr_param->p_optional && !curr_param->actual_argument() ) {
                 curr_param->produce_argument( *this );
 
-                BOOST_RT_PARAM_VALIDATE_LOGIC( curr_param->actual_argument(),
-                    BOOST_RT_PARAM_LITERAL( "Required argument for parameter " ) << curr_param->id_2_report()
-                        << BOOST_RT_PARAM_LITERAL( " is missing" ) );
+                NDNBOOST_RT_PARAM_VALIDATE_LOGIC( curr_param->actual_argument(),
+                    NDNBOOST_RT_PARAM_LITERAL( "Required argument for parameter " ) << curr_param->id_2_report()
+                        << NDNBOOST_RT_PARAM_LITERAL( " is missing" ) );
             }
         }
     }
     catch( bad_lexical_cast const& ) {
-        BOOST_RT_PARAM_REPORT_LOGIC_ERROR( 
-            BOOST_RT_PARAM_LITERAL( "String to value convertion error during input parsing" ) );
+        NDNBOOST_RT_PARAM_REPORT_LOGIC_ERROR( 
+            NDNBOOST_RT_PARAM_LITERAL( "String to value convertion error during input parsing" ) );
     }
 
     m_traverser.remainder( argc, argv );
@@ -161,15 +161,15 @@
 
 //____________________________________________________________________________//
 
-BOOST_RT_PARAM_INLINE const_argument_ptr
+NDNBOOST_RT_PARAM_INLINE const_argument_ptr
 parser::operator[]( cstring string_id ) const
 {
     parameter_ptr found_param;
 
-    BOOST_TEST_FOREACH( parameter_ptr const&, curr_param, m_parameters ) {
+    NDNBOOST_TEST_FOREACH( parameter_ptr const&, curr_param, m_parameters ) {
         if( curr_param->responds_to( string_id ) ) {
-            BOOST_RT_PARAM_VALIDATE_LOGIC( !found_param,
-                                           BOOST_RT_PARAM_LITERAL( "Ambiguous parameter string id: " ) << string_id );
+            NDNBOOST_RT_PARAM_VALIDATE_LOGIC( !found_param,
+                                           NDNBOOST_RT_PARAM_LITERAL( "Ambiguous parameter string id: " ) << string_id );
 
             found_param = curr_param;
         }
@@ -180,7 +180,7 @@
 
 //____________________________________________________________________________//
 
-BOOST_RT_PARAM_INLINE cstring
+NDNBOOST_RT_PARAM_INLINE cstring
 parser::get( cstring string_id ) const
 {
     return get<cstring>( string_id );
@@ -188,62 +188,62 @@
 
 //____________________________________________________________________________//
 
-BOOST_RT_PARAM_INLINE void
+NDNBOOST_RT_PARAM_INLINE void
 parser::usage( out_stream& ostr )
 {
     if( m_program_name.empty() )
-        assign_op( m_program_name, BOOST_RT_PARAM_CSTRING_LITERAL( "<program>" ), 0 );
+        assign_op( m_program_name, NDNBOOST_RT_PARAM_CSTRING_LITERAL( "<program>" ), 0 );
 
     format_stream fs;
 
     fs << m_program_name;
 
-    BOOST_TEST_FOREACH( parameter_ptr const&, curr_param, m_parameters ) {
-        fs << BOOST_RT_PARAM_LITERAL( ' ' );
+    NDNBOOST_TEST_FOREACH( parameter_ptr const&, curr_param, m_parameters ) {
+        fs << NDNBOOST_RT_PARAM_LITERAL( ' ' );
 
         if( curr_param->p_optional )
-            fs << BOOST_RT_PARAM_LITERAL( '[' );
+            fs << NDNBOOST_RT_PARAM_LITERAL( '[' );
 
         curr_param->usage_info( fs );
 
         if( curr_param->p_optional )
-            fs << BOOST_RT_PARAM_LITERAL( ']' );
+            fs << NDNBOOST_RT_PARAM_LITERAL( ']' );
 
         if( curr_param->p_multiplicable ) {
-            fs << BOOST_RT_PARAM_CSTRING_LITERAL( " ... " );
+            fs << NDNBOOST_RT_PARAM_CSTRING_LITERAL( " ... " );
             
             if( curr_param->p_optional )
-                fs << BOOST_RT_PARAM_LITERAL( '[' );
+                fs << NDNBOOST_RT_PARAM_LITERAL( '[' );
 
             curr_param->usage_info( fs );
 
             if( curr_param->p_optional )
-                fs << BOOST_RT_PARAM_LITERAL( ']' );
+                fs << NDNBOOST_RT_PARAM_LITERAL( ']' );
         }
     }
 
-    ostr << BOOST_RT_PARAM_CSTRING_LITERAL( "Usage:\n" ) << fs.str() << std::endl;
+    ostr << NDNBOOST_RT_PARAM_CSTRING_LITERAL( "Usage:\n" ) << fs.str() << std::endl;
 }
 
 //____________________________________________________________________________//
 
-BOOST_RT_PARAM_INLINE void
+NDNBOOST_RT_PARAM_INLINE void
 parser::help( out_stream& ostr )
 {
     usage( ostr );
 
     bool need_where = true;
 
-    BOOST_TEST_FOREACH( parameter_ptr const&, curr_param, m_parameters ) {
+    NDNBOOST_TEST_FOREACH( parameter_ptr const&, curr_param, m_parameters ) {
         if( curr_param->p_description->empty() )
             continue;
 
         if( need_where ) {
-            ostr << BOOST_RT_PARAM_CSTRING_LITERAL( "where:\n" );
+            ostr << NDNBOOST_RT_PARAM_CSTRING_LITERAL( "where:\n" );
             need_where = false;
         }
 
-        ostr << curr_param->id_2_report() << BOOST_RT_PARAM_CSTRING_LITERAL( " - " ) << curr_param->p_description << std::endl;
+        ostr << curr_param->id_2_report() << NDNBOOST_RT_PARAM_CSTRING_LITERAL( " - " ) << curr_param->p_description << std::endl;
     }
 }
 
@@ -251,8 +251,8 @@
 
 } // namespace cla
 
-} // namespace BOOST_RT_PARAM_NAMESPACE
+} // namespace NDNBOOST_RT_PARAM_NAMESPACE
 
 } // namespace ndnboost
 
-#endif // BOOST_RT_CLA_PARSER_IPP_062904GER
+#endif // NDNBOOST_RT_CLA_PARSER_IPP_062904GER
diff --git a/include/ndnboost/test/utils/runtime/cla/typed_parameter.hpp b/include/ndnboost/test/utils/runtime/cla/typed_parameter.hpp
index b8ad9e4..743d755 100644
--- a/include/ndnboost/test/utils/runtime/cla/typed_parameter.hpp
+++ b/include/ndnboost/test/utils/runtime/cla/typed_parameter.hpp
@@ -12,8 +12,8 @@
 //  Description : generic typed parameter model
 // ***************************************************************************
 
-#ifndef BOOST_RT_CLA_TYPED_PARAMETER_HPP_062604GER
-#define BOOST_RT_CLA_TYPED_PARAMETER_HPP_062604GER
+#ifndef NDNBOOST_RT_CLA_TYPED_PARAMETER_HPP_062604GER
+#define NDNBOOST_RT_CLA_TYPED_PARAMETER_HPP_062604GER
 
 // Boost.Runtime.Parameter
 #include <ndnboost/test/utils/runtime/config.hpp>
@@ -29,7 +29,7 @@
 
 namespace ndnboost {
 
-namespace BOOST_RT_PARAM_NAMESPACE {
+namespace NDNBOOST_RT_PARAM_NAMESPACE {
 
 namespace cla {
 
@@ -52,8 +52,8 @@
 
         m_arg_factory.accept_modifier( m );
 
-        BOOST_RT_PARAM_VALIDATE_LOGIC( !p_optional || !m_arg_factory.m_value_generator,
-            BOOST_RT_PARAM_LITERAL( "can't define a value generator for optional parameter " ) << id_2_report() );
+        NDNBOOST_RT_PARAM_VALIDATE_LOGIC( !p_optional || !m_arg_factory.m_value_generator,
+            NDNBOOST_RT_PARAM_LITERAL( "can't define a value generator for optional parameter " ) << id_2_report() );
     }
 
 private:
@@ -63,8 +63,8 @@
 
 } // namespace cla
 
-} // namespace BOOST_RT_PARAM_NAMESPACE
+} // namespace NDNBOOST_RT_PARAM_NAMESPACE
 
 } // namespace ndnboost
 
-#endif // BOOST_RT_CLA_TYPED_PARAMETER_HPP_062604GER
+#endif // NDNBOOST_RT_CLA_TYPED_PARAMETER_HPP_062604GER
diff --git a/include/ndnboost/test/utils/runtime/cla/validation.hpp b/include/ndnboost/test/utils/runtime/cla/validation.hpp
index 18c9b77..011cfbe 100644
--- a/include/ndnboost/test/utils/runtime/cla/validation.hpp
+++ b/include/ndnboost/test/utils/runtime/cla/validation.hpp
@@ -12,8 +12,8 @@
 //  Description : input validation helpers definition
 // ***************************************************************************
 
-#ifndef BOOST_RT_CLA_VALIDATION_HPP_062604GER
-#define BOOST_RT_CLA_VALIDATION_HPP_062604GER
+#ifndef NDNBOOST_RT_CLA_VALIDATION_HPP_062604GER
+#define NDNBOOST_RT_CLA_VALIDATION_HPP_062604GER
 
 // Boost.Runtime.Parameter
 #include <ndnboost/test/utils/runtime/config.hpp>
@@ -22,7 +22,7 @@
 
 namespace ndnboost {
 
-namespace BOOST_RT_PARAM_NAMESPACE {
+namespace NDNBOOST_RT_PARAM_NAMESPACE {
 
 namespace cla {
 
@@ -34,22 +34,22 @@
 
 //____________________________________________________________________________//
 
-#define BOOST_RT_CLA_VALIDATE_INPUT( b, tr, msg ) \
-    if( b ) ; else ::ndnboost::BOOST_RT_PARAM_NAMESPACE::cla::report_input_error( tr, format_stream().ref() << msg )
+#define NDNBOOST_RT_CLA_VALIDATE_INPUT( b, tr, msg ) \
+    if( b ) ; else ::ndnboost::NDNBOOST_RT_PARAM_NAMESPACE::cla::report_input_error( tr, format_stream().ref() << msg )
 
 //____________________________________________________________________________//
 
 } // namespace cla
 
-} // namespace BOOST_RT_PARAM_NAMESPACE
+} // namespace NDNBOOST_RT_PARAM_NAMESPACE
 
 } // namespace ndnboost
 
-#ifndef BOOST_RT_PARAM_OFFLINE
+#ifndef NDNBOOST_RT_PARAM_OFFLINE
 
-#  define BOOST_RT_PARAM_INLINE inline
+#  define NDNBOOST_RT_PARAM_INLINE inline
 #  include <ndnboost/test/utils/runtime/cla/validation.ipp>
 
 #endif
 
-#endif // BOOST_RT_CLA_VALIDATION_HPP_062604GER
+#endif // NDNBOOST_RT_CLA_VALIDATION_HPP_062604GER
diff --git a/include/ndnboost/test/utils/runtime/cla/validation.ipp b/include/ndnboost/test/utils/runtime/cla/validation.ipp
index 5d295d7..4af9370 100644
--- a/include/ndnboost/test/utils/runtime/cla/validation.ipp
+++ b/include/ndnboost/test/utils/runtime/cla/validation.ipp
@@ -12,15 +12,15 @@
 //  Description : input validation helpers implementation
 // ***************************************************************************
 
-#ifndef BOOST_RT_CLA_VALIDATION_IPP_070604GER
-#define BOOST_RT_CLA_VALIDATION_IPP_070604GER
+#ifndef NDNBOOST_RT_CLA_VALIDATION_IPP_070604GER
+#define NDNBOOST_RT_CLA_VALIDATION_IPP_070604GER
 
 // Boost.Runtime.Parameter
 #include <ndnboost/test/utils/runtime/config.hpp>
 
 #include <ndnboost/test/utils/runtime/cla/argv_traverser.hpp>
 #include <ndnboost/test/utils/runtime/cla/validation.hpp>
-#include <ndnboost/test/utils/runtime/validation.hpp> // BOOST_RT_PARAM_NAMESPACE::logic_error
+#include <ndnboost/test/utils/runtime/validation.hpp> // NDNBOOST_RT_PARAM_NAMESPACE::logic_error
 
 // Boost
 #include <ndnboost/test/utils/basic_cstring/io.hpp>
@@ -29,7 +29,7 @@
 
 namespace ndnboost {
 
-namespace BOOST_RT_PARAM_NAMESPACE {
+namespace NDNBOOST_RT_PARAM_NAMESPACE {
 
 namespace cla {
 
@@ -37,29 +37,29 @@
 // **************           runtime::cla::validation           ************** //
 // ************************************************************************** //
 
-BOOST_RT_PARAM_INLINE void
+NDNBOOST_RT_PARAM_INLINE void
 report_input_error( argv_traverser const& tr, format_stream& msg )
 {
     if( tr.eoi() )
-        msg << BOOST_RT_PARAM_LITERAL( " at the end of input" );
+        msg << NDNBOOST_RT_PARAM_LITERAL( " at the end of input" );
     else {
-        msg << BOOST_RT_PARAM_LITERAL( " in the following position: " );
+        msg << NDNBOOST_RT_PARAM_LITERAL( " in the following position: " );
 
         if( tr.input().size() > 5 )
-            msg << tr.input().substr( 0, 5 ) << BOOST_RT_PARAM_LITERAL( "..." );
+            msg << tr.input().substr( 0, 5 ) << NDNBOOST_RT_PARAM_LITERAL( "..." );
         else
             msg << tr.input();
     }
 
-    throw BOOST_RT_PARAM_NAMESPACE::logic_error( msg.str() );
+    throw NDNBOOST_RT_PARAM_NAMESPACE::logic_error( msg.str() );
 }
 
 //____________________________________________________________________________//
 
 } // namespace cla
 
-} // namespace BOOST_RT_PARAM_NAMESPACE
+} // namespace NDNBOOST_RT_PARAM_NAMESPACE
 
 } // namespace ndnboost
 
-#endif // BOOST_RT_CLA_VALIDATION_IPP_070604GER
+#endif // NDNBOOST_RT_CLA_VALIDATION_IPP_070604GER
diff --git a/include/ndnboost/test/utils/runtime/cla/value_generator.hpp b/include/ndnboost/test/utils/runtime/cla/value_generator.hpp
index d402977..df92c36 100644
--- a/include/ndnboost/test/utils/runtime/cla/value_generator.hpp
+++ b/include/ndnboost/test/utils/runtime/cla/value_generator.hpp
@@ -12,8 +12,8 @@
 //  Description : specific value generators
 // ***************************************************************************
 
-#ifndef BOOST_RT_CLA_VALUE_GENERATOR_HPP_062604GER
-#define BOOST_RT_CLA_VALUE_GENERATOR_HPP_062604GER
+#ifndef NDNBOOST_RT_CLA_VALUE_GENERATOR_HPP_062604GER
+#define NDNBOOST_RT_CLA_VALUE_GENERATOR_HPP_062604GER
 
 // Boost.Runtime.Parameter
 #include <ndnboost/test/utils/runtime/config.hpp>
@@ -23,7 +23,7 @@
 
 namespace ndnboost {
 
-namespace BOOST_RT_PARAM_NAMESPACE {
+namespace NDNBOOST_RT_PARAM_NAMESPACE {
 
 namespace cla {
 
@@ -74,8 +74,8 @@
 
 } // namespace cla
 
-} // namespace BOOST_RT_PARAM_NAMESPACE
+} // namespace NDNBOOST_RT_PARAM_NAMESPACE
 
 } // namespace ndnboost
 
-#endif // BOOST_RT_CLA_VALUE_GENERATOR_HPP_062604GER
+#endif // NDNBOOST_RT_CLA_VALUE_GENERATOR_HPP_062604GER
diff --git a/include/ndnboost/test/utils/runtime/cla/value_handler.hpp b/include/ndnboost/test/utils/runtime/cla/value_handler.hpp
index 1d792ba..0090603 100644
--- a/include/ndnboost/test/utils/runtime/cla/value_handler.hpp
+++ b/include/ndnboost/test/utils/runtime/cla/value_handler.hpp
@@ -12,8 +12,8 @@
 //  Description : specific value handlers
 // ***************************************************************************
 
-#ifndef BOOST_RT_CLA_VALUE_HANDLER_HPP_062604GER
-#define BOOST_RT_CLA_VALUE_HANDLER_HPP_062604GER
+#ifndef NDNBOOST_RT_CLA_VALUE_HANDLER_HPP_062604GER
+#define NDNBOOST_RT_CLA_VALUE_HANDLER_HPP_062604GER
 
 // Boost.Runtime.Parameter
 #include <ndnboost/test/utils/runtime/config.hpp>
@@ -22,7 +22,7 @@
 
 namespace ndnboost {
 
-namespace BOOST_RT_PARAM_NAMESPACE {
+namespace NDNBOOST_RT_PARAM_NAMESPACE {
 
 namespace cla {
 
@@ -50,8 +50,8 @@
 
 } // namespace cla
 
-} // namespace BOOST_RT_PARAM_NAMESPACE
+} // namespace NDNBOOST_RT_PARAM_NAMESPACE
 
 } // namespace ndnboost
 
-#endif // BOOST_RT_CLA_VALUE_HANDLER_HPP_062604GER
+#endif // NDNBOOST_RT_CLA_VALUE_HANDLER_HPP_062604GER
diff --git a/include/ndnboost/test/utils/runtime/config.hpp b/include/ndnboost/test/utils/runtime/config.hpp
index 8067a96..f5f8f17 100644
--- a/include/ndnboost/test/utils/runtime/config.hpp
+++ b/include/ndnboost/test/utils/runtime/config.hpp
@@ -12,12 +12,12 @@
 //  Description : Runtime.Param library configuration
 // ***************************************************************************
 
-#ifndef BOOST_RT_CONFIG_HPP_062604GER
-#define BOOST_RT_CONFIG_HPP_062604GER
+#ifndef NDNBOOST_RT_CONFIG_HPP_062604GER
+#define NDNBOOST_RT_CONFIG_HPP_062604GER
 
 // Boost
 #include <ndnboost/config.hpp>
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
 # pragma warning(disable: 4511) // copy constructor could not be generated
 # pragma warning(disable: 4512) // assignment operator could not be generated
 # pragma warning(disable: 4181) // qualifier applied to reference type; ignored
@@ -36,11 +36,11 @@
 
 //____________________________________________________________________________//
 
-#ifndef BOOST_RT_PARAM_CUSTOM_STRING
-#  ifndef BOOST_RT_PARAM_WIDE_STRING
-#    define BOOST_RT_PARAM_NAMESPACE                            runtime
+#ifndef NDNBOOST_RT_PARAM_CUSTOM_STRING
+#  ifndef NDNBOOST_RT_PARAM_WIDE_STRING
+#    define NDNBOOST_RT_PARAM_NAMESPACE                            runtime
 #  else
-#    define BOOST_RT_PARAM_NAMESPACE                            wide_runtime
+#    define NDNBOOST_RT_PARAM_NAMESPACE                            wide_runtime
 #  endif
 #endif
 
@@ -50,10 +50,10 @@
 
 namespace ndnboost {
 
-namespace BOOST_RT_PARAM_NAMESPACE {
+namespace NDNBOOST_RT_PARAM_NAMESPACE {
 
-#ifndef BOOST_RT_PARAM_CUSTOM_STRING
-#  ifndef BOOST_RT_PARAM_WIDE_STRING
+#ifndef NDNBOOST_RT_PARAM_CUSTOM_STRING
+#  ifndef NDNBOOST_RT_PARAM_WIDE_STRING
 
 typedef char                                                    char_type;
 typedef std::string                                             dstring;
@@ -61,13 +61,13 @@
 typedef unit_test::literal_string                               literal_cstring;
 typedef wrap_stringstream                                       format_stream;
 
-#ifdef BOOST_CLASSIC_IOSTREAMS
+#ifdef NDNBOOST_CLASSIC_IOSTREAMS
 typedef std::ostream                                            out_stream;
 #else
 typedef std::basic_ostream<char_type>                           out_stream;
 #endif
 
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
 #pragma warning(push)
 #pragma warning(disable:4996) // putenv
 #endif
@@ -97,15 +97,15 @@
 #endif
 #endif
 
-#ifdef BOOST_MSVC 
+#ifdef NDNBOOST_MSVC 
 #pragma warning(pop) 
 #endif 
 
-#define BOOST_RT_PARAM_LITERAL( l ) l
-#define BOOST_RT_PARAM_CSTRING_LITERAL( l ) cstring( l, sizeof( l ) - 1 )
-#define BOOST_RT_PARAM_GETENV getenv
-#define BOOST_RT_PARAM_PUTENV ::ndnboost::BOOST_RT_PARAM_NAMESPACE::putenv_impl
-#define BOOST_RT_PARAM_EXCEPTION_INHERIT_STD
+#define NDNBOOST_RT_PARAM_LITERAL( l ) l
+#define NDNBOOST_RT_PARAM_CSTRING_LITERAL( l ) cstring( l, sizeof( l ) - 1 )
+#define NDNBOOST_RT_PARAM_GETENV getenv
+#define NDNBOOST_RT_PARAM_PUTENV ::ndnboost::NDNBOOST_RT_PARAM_NAMESPACE::putenv_impl
+#define NDNBOOST_RT_PARAM_EXCEPTION_INHERIT_STD
 
 //____________________________________________________________________________//
 
@@ -133,24 +133,24 @@
 }
 #endif
 
-#define BOOST_RT_PARAM_LITERAL( l ) L ## l
-#define BOOST_RT_PARAM_CSTRING_LITERAL( l ) cstring( L ## l, sizeof( L ## l )/sizeof(wchar_t) - 1 )
-#define BOOST_RT_PARAM_GETENV wgetenv
-#define BOOST_RT_PARAM_PUTENV putenv_impl
+#define NDNBOOST_RT_PARAM_LITERAL( l ) L ## l
+#define NDNBOOST_RT_PARAM_CSTRING_LITERAL( l ) cstring( L ## l, sizeof( L ## l )/sizeof(wchar_t) - 1 )
+#define NDNBOOST_RT_PARAM_GETENV wgetenv
+#define NDNBOOST_RT_PARAM_PUTENV putenv_impl
 
 #  endif
 #endif
 
 #ifdef __GNUC__
-#define BOOST_RT_PARAM_UNNEEDED_VIRTUAL virtual
+#define NDNBOOST_RT_PARAM_UNNEEDED_VIRTUAL virtual
 #else
-#define BOOST_RT_PARAM_UNNEEDED_VIRTUAL
+#define NDNBOOST_RT_PARAM_UNNEEDED_VIRTUAL
 #endif
 
 //____________________________________________________________________________//
 
-} // namespace BOOST_RT_PARAM_NAMESPACE
+} // namespace NDNBOOST_RT_PARAM_NAMESPACE
 
 } // namespace ndnboost
 
-#endif // BOOST_RT_CONFIG_HPP_062604GER
+#endif // NDNBOOST_RT_CONFIG_HPP_062604GER
diff --git a/include/ndnboost/test/utils/runtime/env/environment.hpp b/include/ndnboost/test/utils/runtime/env/environment.hpp
index b45f10f..3634fac 100644
--- a/include/ndnboost/test/utils/runtime/env/environment.hpp
+++ b/include/ndnboost/test/utils/runtime/env/environment.hpp
@@ -12,8 +12,8 @@
 //  Description : defines and implements inline model of program environment 
 // ***************************************************************************
 
-#ifndef BOOST_RT_ENV_ENVIRONMENT_HPP_062604GER
-#define BOOST_RT_ENV_ENVIRONMENT_HPP_062604GER
+#ifndef NDNBOOST_RT_ENV_ENVIRONMENT_HPP_062604GER
+#define NDNBOOST_RT_ENV_ENVIRONMENT_HPP_062604GER
 
 #ifdef UNDER_CE
 #error Windows CE does not support environment variables.
@@ -37,7 +37,7 @@
 
 namespace ndnboost {
 
-namespace BOOST_RT_PARAM_NAMESPACE {
+namespace NDNBOOST_RT_PARAM_NAMESPACE {
 
 // ************************************************************************** //
 // **************      runtime::environment implementation     ************** //
@@ -158,15 +158,15 @@
 
 namespace env = environment;
 
-} // namespace BOOST_RT_PARAM_NAMESPACE
+} // namespace NDNBOOST_RT_PARAM_NAMESPACE
 
 } // namespace ndnboost
 
-#ifndef BOOST_RT_PARAM_OFFLINE
+#ifndef NDNBOOST_RT_PARAM_OFFLINE
 
-#define BOOST_RT_PARAM_INLINE inline
+#define NDNBOOST_RT_PARAM_INLINE inline
 #include <ndnboost/test/utils/runtime/env/environment.ipp>
 
 #endif
 
-#endif // BOOST_RT_ENV_ENVIRONMENT_HPP_062604GER
+#endif // NDNBOOST_RT_ENV_ENVIRONMENT_HPP_062604GER
diff --git a/include/ndnboost/test/utils/runtime/env/environment.ipp b/include/ndnboost/test/utils/runtime/env/environment.ipp
index f2929de..3dd78f9 100644
--- a/include/ndnboost/test/utils/runtime/env/environment.ipp
+++ b/include/ndnboost/test/utils/runtime/env/environment.ipp
@@ -12,8 +12,8 @@
 //  Description : implements model of program environment 
 // ***************************************************************************
 
-#ifndef BOOST_RT_ENV_ENVIRONMENT_IPP_062904GER
-#define BOOST_RT_ENV_ENVIRONMENT_IPP_062904GER
+#ifndef NDNBOOST_RT_ENV_ENVIRONMENT_IPP_062904GER
+#define NDNBOOST_RT_ENV_ENVIRONMENT_IPP_062904GER
 
 // Boost.Runtime.Parameter
 #include <ndnboost/test/utils/runtime/config.hpp>
@@ -31,7 +31,7 @@
 
 namespace ndnboost {
 
-namespace BOOST_RT_PARAM_NAMESPACE {
+namespace NDNBOOST_RT_PARAM_NAMESPACE {
 
 namespace environment {
 
@@ -44,10 +44,10 @@
 typedef std::map<cstring,rt_env_detail::variable_data> registry;
 typedef std::list<dstring> keys;
 
-BOOST_RT_PARAM_INLINE registry& s_registry()    { static registry instance; return instance; }
-BOOST_RT_PARAM_INLINE keys&     s_keys()        { static keys instance; return instance; }
+NDNBOOST_RT_PARAM_INLINE registry& s_registry()    { static registry instance; return instance; }
+NDNBOOST_RT_PARAM_INLINE keys&     s_keys()        { static keys instance; return instance; }
 
-BOOST_RT_PARAM_INLINE variable_data&
+NDNBOOST_RT_PARAM_INLINE variable_data&
 new_var_record( cstring var_name )
 {
     // save the name in list of keys
@@ -65,7 +65,7 @@
 
 //____________________________________________________________________________//
 
-BOOST_RT_PARAM_INLINE variable_data*
+NDNBOOST_RT_PARAM_INLINE variable_data*
 find_var_record( cstring var_name )
 {
     registry::iterator it = s_registry().find( var_name );
@@ -75,41 +75,41 @@
 
 //____________________________________________________________________________//
 
-#ifdef BOOST_MSVC 
+#ifdef NDNBOOST_MSVC 
 #pragma warning(push) 
 #pragma warning(disable:4996) // getenv
 #endif
 
-BOOST_RT_PARAM_INLINE cstring
+NDNBOOST_RT_PARAM_INLINE cstring
 sys_read_var( cstring var_name )
 {
     using namespace std;
-    return BOOST_RT_PARAM_GETENV( var_name.begin() );
+    return NDNBOOST_RT_PARAM_GETENV( var_name.begin() );
 }
 
-#ifdef BOOST_MSVC 
+#ifdef NDNBOOST_MSVC 
 #pragma warning(pop) 
 #endif
 //____________________________________________________________________________//
 
-BOOST_RT_PARAM_INLINE void
+NDNBOOST_RT_PARAM_INLINE void
 sys_write_var( cstring var_name, format_stream& var_value )
 {
-    BOOST_RT_PARAM_PUTENV( var_name, cstring( var_value.str() ) );
+    NDNBOOST_RT_PARAM_PUTENV( var_name, cstring( var_value.str() ) );
 }
 
 //____________________________________________________________________________//
 
 } // namespace rt_env_detail
 
-BOOST_RT_PARAM_INLINE variable_base
+NDNBOOST_RT_PARAM_INLINE variable_base
 var( cstring var_name )
 {
     rt_env_detail::variable_data* vd = rt_env_detail::find_var_record( var_name );
 
-    BOOST_RT_PARAM_VALIDATE_LOGIC( !!vd,
-                                   BOOST_RT_PARAM_LITERAL( "First access to the environment variable " ) 
-                                        << var_name << BOOST_RT_PARAM_LITERAL( " should be typed" ) );
+    NDNBOOST_RT_PARAM_VALIDATE_LOGIC( !!vd,
+                                   NDNBOOST_RT_PARAM_LITERAL( "First access to the environment variable " ) 
+                                        << var_name << NDNBOOST_RT_PARAM_LITERAL( " should be typed" ) );
 
     return variable_base( *vd );
 }
@@ -118,8 +118,8 @@
 
 } // namespace environment
 
-} // namespace BOOST_RT_PARAM_NAMESPACE
+} // namespace NDNBOOST_RT_PARAM_NAMESPACE
 
 } // namespace ndnboost
 
-#endif // BOOST_RT_ENV_ENVIRONMENT_IPP_062904GER
+#endif // NDNBOOST_RT_ENV_ENVIRONMENT_IPP_062904GER
diff --git a/include/ndnboost/test/utils/runtime/env/fwd.hpp b/include/ndnboost/test/utils/runtime/env/fwd.hpp
index b869605..10721fc 100644
--- a/include/ndnboost/test/utils/runtime/env/fwd.hpp
+++ b/include/ndnboost/test/utils/runtime/env/fwd.hpp
@@ -12,8 +12,8 @@
 //  Description : environment subsystem forward declarations
 // ***************************************************************************
 
-#ifndef BOOST_RT_ENV_FWD_HPP_062604GER
-#define BOOST_RT_ENV_FWD_HPP_062604GER
+#ifndef NDNBOOST_RT_ENV_FWD_HPP_062604GER
+#define NDNBOOST_RT_ENV_FWD_HPP_062604GER
 
 #ifdef UNDER_CE
 #error Windows CE does not support environment variables.
@@ -24,7 +24,7 @@
 
 namespace ndnboost {
 
-namespace BOOST_RT_PARAM_NAMESPACE {
+namespace NDNBOOST_RT_PARAM_NAMESPACE {
 
 namespace environment {
 
@@ -47,8 +47,8 @@
 
 } // namespace environment
 
-} // namespace BOOST_RT_PARAM_NAMESPACE
+} // namespace NDNBOOST_RT_PARAM_NAMESPACE
 
 } // namespace ndnboost
 
-#endif // BOOST_RT_ENV_FWD_HPP_062604GER
+#endif // NDNBOOST_RT_ENV_FWD_HPP_062604GER
diff --git a/include/ndnboost/test/utils/runtime/env/modifier.hpp b/include/ndnboost/test/utils/runtime/env/modifier.hpp
index a760368..0cfcff3 100644
--- a/include/ndnboost/test/utils/runtime/env/modifier.hpp
+++ b/include/ndnboost/test/utils/runtime/env/modifier.hpp
@@ -12,8 +12,8 @@
 //  Description : defines variable modifiers
 // ***************************************************************************
 
-#ifndef BOOST_RT_ENV_MODIFIER_HPP_062604GER
-#define BOOST_RT_ENV_MODIFIER_HPP_062604GER
+#ifndef NDNBOOST_RT_ENV_MODIFIER_HPP_062604GER
+#define NDNBOOST_RT_ENV_MODIFIER_HPP_062604GER
 
 // Boost.Runtime.Parameter
 #include <ndnboost/test/utils/runtime/config.hpp>
@@ -23,7 +23,7 @@
 
 namespace ndnboost {
 
-namespace BOOST_RT_PARAM_NAMESPACE {
+namespace NDNBOOST_RT_PARAM_NAMESPACE {
 
 namespace environment {
 
@@ -40,8 +40,8 @@
 } // local namespace
 } // namespace environment
 
-} // namespace BOOST_RT_PARAM_NAMESPACE
+} // namespace NDNBOOST_RT_PARAM_NAMESPACE
 
 } // namespace ndnboost
 
-#endif // BOOST_RT_ENV_MODIFIER_HPP_062604GER
+#endif // NDNBOOST_RT_ENV_MODIFIER_HPP_062604GER
diff --git a/include/ndnboost/test/utils/runtime/env/variable.hpp b/include/ndnboost/test/utils/runtime/env/variable.hpp
index 17a4f39..d86bb22 100644
--- a/include/ndnboost/test/utils/runtime/env/variable.hpp
+++ b/include/ndnboost/test/utils/runtime/env/variable.hpp
@@ -12,8 +12,8 @@
 //  Description : defines model of program environment variable
 // ***************************************************************************
 
-#ifndef BOOST_RT_ENV_VARIABLE_HPP_062604GER
-#define BOOST_RT_ENV_VARIABLE_HPP_062604GER
+#ifndef NDNBOOST_RT_ENV_VARIABLE_HPP_062604GER
+#define NDNBOOST_RT_ENV_VARIABLE_HPP_062604GER
 
 #ifdef UNDER_CE
 #error Windows CE does not support environment variables.
@@ -32,7 +32,7 @@
 
 namespace ndnboost {
 
-namespace BOOST_RT_PARAM_NAMESPACE {
+namespace NDNBOOST_RT_PARAM_NAMESPACE {
 
 namespace environment {
 
@@ -104,8 +104,8 @@
     // access methods
     T const&    value() const                               { return variable_base::value<T>(); }
 
-#if BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3206)) || \
-    BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x0593))
+#if NDNBOOST_WORKAROUND(__MWERKS__, NDNBOOST_TESTED_AT(0x3206)) || \
+    NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x0593))
     template<typename T>
     void        value( ndnboost::optional<T>& res ) const      { variable_base::value( res ); }
 #else
@@ -179,7 +179,7 @@
 
 } // namespace environment
 
-} // namespace BOOST_RT_PARAM_NAMESPACE
+} // namespace NDNBOOST_RT_PARAM_NAMESPACE
 
 } // namespace ndnboost
 
@@ -195,7 +195,7 @@
 
 namespace ndnboost {
 
-namespace BOOST_RT_PARAM_NAMESPACE {
+namespace NDNBOOST_RT_PARAM_NAMESPACE {
 
 namespace environment {
 
@@ -216,8 +216,8 @@
 
 } // namespace environment
 
-} // namespace BOOST_RT_PARAM_NAMESPACE
+} // namespace NDNBOOST_RT_PARAM_NAMESPACE
 
 } // namespace ndnboost
 
-#endif // BOOST_RT_ENV_VARIABLE_HPP_062604GER
+#endif // NDNBOOST_RT_ENV_VARIABLE_HPP_062604GER
diff --git a/include/ndnboost/test/utils/runtime/fwd.hpp b/include/ndnboost/test/utils/runtime/fwd.hpp
index 3714bfc..3affb55 100644
--- a/include/ndnboost/test/utils/runtime/fwd.hpp
+++ b/include/ndnboost/test/utils/runtime/fwd.hpp
@@ -12,8 +12,8 @@
 //  Description : global framework level forward declaration
 // ***************************************************************************
 
-#ifndef BOOST_RT_FWD_HPP_062604GER
-#define BOOST_RT_FWD_HPP_062604GER
+#ifndef NDNBOOST_RT_FWD_HPP_062604GER
+#define NDNBOOST_RT_FWD_HPP_062604GER
 
 // Boost.Runtime.Parameter
 #include <ndnboost/test/utils/runtime/config.hpp>
@@ -23,7 +23,7 @@
 
 namespace ndnboost {
 
-namespace BOOST_RT_PARAM_NAMESPACE {
+namespace NDNBOOST_RT_PARAM_NAMESPACE {
 
 class parameter;
 
@@ -34,8 +34,8 @@
 template<typename T> class value_interpreter;
 template<typename T> class typed_argument;
 
-} // namespace BOOST_RT_PARAM_NAMESPACE
+} // namespace NDNBOOST_RT_PARAM_NAMESPACE
 
 } // namespace ndnboost
 
-#endif // BOOST_RT_FWD_HPP_062604GER
+#endif // NDNBOOST_RT_FWD_HPP_062604GER
diff --git a/include/ndnboost/test/utils/runtime/interpret_argument_value.hpp b/include/ndnboost/test/utils/runtime/interpret_argument_value.hpp
index 4f5a214..4dec761 100644
--- a/include/ndnboost/test/utils/runtime/interpret_argument_value.hpp
+++ b/include/ndnboost/test/utils/runtime/interpret_argument_value.hpp
@@ -12,8 +12,8 @@
 //  Description : default algorithms for string to specific type convertions
 // ***************************************************************************
 
-#ifndef BOOST_RT_INTERPRET_ARGUMENT_VALUE_HPP_062604GER
-#define BOOST_RT_INTERPRET_ARGUMENT_VALUE_HPP_062604GER
+#ifndef NDNBOOST_RT_INTERPRET_ARGUMENT_VALUE_HPP_062604GER
+#define NDNBOOST_RT_INTERPRET_ARGUMENT_VALUE_HPP_062604GER
 
 // Boost.Runtime.Parameter
 #include <ndnboost/test/utils/runtime/config.hpp>
@@ -33,7 +33,7 @@
 
 namespace ndnboost {
 
-namespace BOOST_RT_PARAM_NAMESPACE {
+namespace NDNBOOST_RT_PARAM_NAMESPACE {
 
 // ************************************************************************** //
 // **************       runtime::interpret_argument_value      ************** //
@@ -45,11 +45,11 @@
 struct interpret_argument_value_impl {
     static bool _( cstring source, ndnboost::optional<T>& res )
     {
-        BOOST_RT_PARAM_TRACE( "In interpret_argument_value_impl<" << typeid(T).name() << ">" );
+        NDNBOOST_RT_PARAM_TRACE( "In interpret_argument_value_impl<" << typeid(T).name() << ">" );
 
         res = lexical_cast<T>( source );
 
-        BOOST_RT_PARAM_TRACE( "String " << source << " is interpreted as " << *res );
+        NDNBOOST_RT_PARAM_TRACE( "String " << source << " is interpreted as " << *res );
         return true;
     }
 };
@@ -62,7 +62,7 @@
 struct interpret_argument_value_impl<dstring> {
     static bool _( cstring source, ndnboost::optional<dstring>& res )
     {
-        BOOST_RT_PARAM_TRACE( "In interpret_argument_value_impl<dstring>" );
+        NDNBOOST_RT_PARAM_TRACE( "In interpret_argument_value_impl<dstring>" );
 
         res = dstring();
         assign_op( *res, source, 0 );
@@ -78,7 +78,7 @@
 struct interpret_argument_value_impl<cstring> {
     static bool _( cstring source, ndnboost::optional<cstring>& res )
     {
-        BOOST_RT_PARAM_TRACE( "In interpret_argument_value_impl<cstring>" );
+        NDNBOOST_RT_PARAM_TRACE( "In interpret_argument_value_impl<cstring>" );
 
         res = source;
 
@@ -93,14 +93,14 @@
 struct interpret_argument_value_impl<bool> {
     static bool _( cstring source, ndnboost::optional<bool>& res )
     {
-        BOOST_RT_PARAM_TRACE( "In interpret_argument_value_impl<bool>" );
+        NDNBOOST_RT_PARAM_TRACE( "In interpret_argument_value_impl<bool>" );
 
-        static literal_cstring YES( BOOST_RT_PARAM_CSTRING_LITERAL( "YES" ) );
-        static literal_cstring Y( BOOST_RT_PARAM_CSTRING_LITERAL( "Y" ) );
-        static literal_cstring NO( BOOST_RT_PARAM_CSTRING_LITERAL( "NO" ) );
-        static literal_cstring N( BOOST_RT_PARAM_CSTRING_LITERAL( "N" ) );
-        static literal_cstring one( BOOST_RT_PARAM_CSTRING_LITERAL( "1" ) );
-        static literal_cstring zero( BOOST_RT_PARAM_CSTRING_LITERAL( "0" ) );
+        static literal_cstring YES( NDNBOOST_RT_PARAM_CSTRING_LITERAL( "YES" ) );
+        static literal_cstring Y( NDNBOOST_RT_PARAM_CSTRING_LITERAL( "Y" ) );
+        static literal_cstring NO( NDNBOOST_RT_PARAM_CSTRING_LITERAL( "NO" ) );
+        static literal_cstring N( NDNBOOST_RT_PARAM_CSTRING_LITERAL( "N" ) );
+        static literal_cstring one( NDNBOOST_RT_PARAM_CSTRING_LITERAL( "1" ) );
+        static literal_cstring zero( NDNBOOST_RT_PARAM_CSTRING_LITERAL( "0" ) );
 
         source.trim();
 
@@ -135,13 +135,13 @@
 inline bool
 interpret_argument_value( cstring source, ndnboost::optional<std::list<T> >& res, int )
 {
-    BOOST_RT_PARAM_TRACE( "In interpret_argument_value<std::list<T>>" );
+    NDNBOOST_RT_PARAM_TRACE( "In interpret_argument_value<std::list<T>>" );
 
     res = std::list<T>();
 
     while( !source.is_empty() ) {
         // !! should we use token_iterator
-        cstring::iterator single_value_end = std::find( source.begin(), source.end(), BOOST_RT_PARAM_LITERAL( ',' ) );
+        cstring::iterator single_value_end = std::find( source.begin(), source.end(), NDNBOOST_RT_PARAM_LITERAL( ',' ) );
 
         ndnboost::optional<T> value;
         interpret_argument_value( cstring( source.begin(), single_value_end ), value, 0 );
@@ -156,8 +156,8 @@
 
 //____________________________________________________________________________//
 
-} // namespace BOOST_RT_PARAM_NAMESPACE
+} // namespace NDNBOOST_RT_PARAM_NAMESPACE
 
 } // namespace ndnboost
 
-#endif // BOOST_RT_INTERPRET_ARGUMENT_VALUE_HPP_062604GER
+#endif // NDNBOOST_RT_INTERPRET_ARGUMENT_VALUE_HPP_062604GER
diff --git a/include/ndnboost/test/utils/runtime/parameter.hpp b/include/ndnboost/test/utils/runtime/parameter.hpp
index 2f6d1b7..73fb81c 100644
--- a/include/ndnboost/test/utils/runtime/parameter.hpp
+++ b/include/ndnboost/test/utils/runtime/parameter.hpp
@@ -12,15 +12,15 @@
 //  Description : abstract interface for the formal parameter
 // ***************************************************************************
 
-#ifndef BOOST_RT_PARAMETER_HPP_062604GER
-#define BOOST_RT_PARAMETER_HPP_062604GER
+#ifndef NDNBOOST_RT_PARAMETER_HPP_062604GER
+#define NDNBOOST_RT_PARAMETER_HPP_062604GER
 
 // Boost.Runtime.Parameter
 #include <ndnboost/test/utils/runtime/config.hpp>
 
 namespace ndnboost {
 
-namespace BOOST_RT_PARAM_NAMESPACE {
+namespace NDNBOOST_RT_PARAM_NAMESPACE {
 
 // ************************************************************************** //
 // **************              runtime::parameter              ************** //
@@ -31,8 +31,8 @@
     virtual ~parameter() {}
 };
 
-} // namespace BOOST_RT_PARAM_NAMESPACE
+} // namespace NDNBOOST_RT_PARAM_NAMESPACE
 
 } // namespace ndnboost
 
-#endif // BOOST_RT_PARAMETER_HPP_062604GER
+#endif // NDNBOOST_RT_PARAMETER_HPP_062604GER
diff --git a/include/ndnboost/test/utils/runtime/trace.hpp b/include/ndnboost/test/utils/runtime/trace.hpp
index c71eb8e..fd47429 100644
--- a/include/ndnboost/test/utils/runtime/trace.hpp
+++ b/include/ndnboost/test/utils/runtime/trace.hpp
@@ -12,19 +12,19 @@
 //  Description : optional internal tracing
 // ***************************************************************************
 
-#ifndef BOOST_RT_TRACE_HPP_062604GER
-#define BOOST_RT_TRACE_HPP_062604GER
+#ifndef NDNBOOST_RT_TRACE_HPP_062604GER
+#define NDNBOOST_RT_TRACE_HPP_062604GER
 
 // Boost.Runtime.Parameter
 #include <ndnboost/test/utils/runtime/config.hpp>
 
-#ifdef BOOST_RT_PARAM_DEBUG
+#ifdef NDNBOOST_RT_PARAM_DEBUG
 
 #include <iostream>
 
-#  define BOOST_RT_PARAM_TRACE( str ) std::cerr << str << std::endl
+#  define NDNBOOST_RT_PARAM_TRACE( str ) std::cerr << str << std::endl
 #else
-#  define BOOST_RT_PARAM_TRACE( str )
+#  define NDNBOOST_RT_PARAM_TRACE( str )
 #endif
 
-#endif // BOOST_RT_TRACE_HPP_062604GER
+#endif // NDNBOOST_RT_TRACE_HPP_062604GER
diff --git a/include/ndnboost/test/utils/runtime/validation.hpp b/include/ndnboost/test/utils/runtime/validation.hpp
index e794df9..9c8ce79 100644
--- a/include/ndnboost/test/utils/runtime/validation.hpp
+++ b/include/ndnboost/test/utils/runtime/validation.hpp
@@ -12,8 +12,8 @@
 //  Description : defines exceptions and validation tools
 // ***************************************************************************
 
-#ifndef BOOST_RT_VALIDATION_HPP_062604GER
-#define BOOST_RT_VALIDATION_HPP_062604GER
+#ifndef NDNBOOST_RT_VALIDATION_HPP_062604GER
+#define NDNBOOST_RT_VALIDATION_HPP_062604GER
 
 // Boost.Runtime.Parameter
 #include <ndnboost/test/utils/runtime/config.hpp>
@@ -25,20 +25,20 @@
 #include <ndnboost/shared_ptr.hpp>
 
 // STL
-#ifdef BOOST_RT_PARAM_EXCEPTION_INHERIT_STD
+#ifdef NDNBOOST_RT_PARAM_EXCEPTION_INHERIT_STD
 #include <stdexcept>
 #endif
 
 namespace ndnboost {
 
-namespace BOOST_RT_PARAM_NAMESPACE {
+namespace NDNBOOST_RT_PARAM_NAMESPACE {
 
 // ************************************************************************** //
 // **************             runtime::logic_error             ************** //
 // ************************************************************************** //
 
 class logic_error 
-#ifdef BOOST_RT_PARAM_EXCEPTION_INHERIT_STD
+#ifdef NDNBOOST_RT_PARAM_EXCEPTION_INHERIT_STD
 : public std::exception
 #endif
 {
@@ -62,21 +62,21 @@
 inline void
 report_logic_error( format_stream& msg )
 {
-    throw BOOST_RT_PARAM_NAMESPACE::logic_error( msg.str() );
+    throw NDNBOOST_RT_PARAM_NAMESPACE::logic_error( msg.str() );
 }
 
 //____________________________________________________________________________//
 
-#define BOOST_RT_PARAM_REPORT_LOGIC_ERROR( msg ) \
-    ndnboost::BOOST_RT_PARAM_NAMESPACE::report_logic_error( format_stream().ref() << msg )
+#define NDNBOOST_RT_PARAM_REPORT_LOGIC_ERROR( msg ) \
+    ndnboost::NDNBOOST_RT_PARAM_NAMESPACE::report_logic_error( format_stream().ref() << msg )
 
-#define BOOST_RT_PARAM_VALIDATE_LOGIC( b, msg ) \
-    if( b ) {} else BOOST_RT_PARAM_REPORT_LOGIC_ERROR( msg )
+#define NDNBOOST_RT_PARAM_VALIDATE_LOGIC( b, msg ) \
+    if( b ) {} else NDNBOOST_RT_PARAM_REPORT_LOGIC_ERROR( msg )
 
 //____________________________________________________________________________//
 
-} // namespace BOOST_RT_PARAM_NAMESPACE
+} // namespace NDNBOOST_RT_PARAM_NAMESPACE
 
 } // namespace ndnboost
 
-#endif // BOOST_RT_VALIDATION_HPP_062604GER
+#endif // NDNBOOST_RT_VALIDATION_HPP_062604GER
diff --git a/include/ndnboost/test/utils/trivial_singleton.hpp b/include/ndnboost/test/utils/trivial_singleton.hpp
index 6fba5c9..9fcff0b 100644
--- a/include/ndnboost/test/utils/trivial_singleton.hpp
+++ b/include/ndnboost/test/utils/trivial_singleton.hpp
@@ -12,8 +12,8 @@
 //  Description : simple helpers for creating cusom output manipulators
 // ***************************************************************************
 
-#ifndef BOOST_TEST_TRIVIAL_SIGNLETON_HPP_020505GER
-#define BOOST_TEST_TRIVIAL_SIGNLETON_HPP_020505GER
+#ifndef NDNBOOST_TEST_TRIVIAL_SIGNLETON_HPP_020505GER
+#define NDNBOOST_TEST_TRIVIAL_SIGNLETON_HPP_020505GER
 
 #include <ndnboost/config.hpp>
 #include <ndnboost/detail/workaround.hpp>
@@ -43,25 +43,25 @@
 
 } // namespace unit_test
 
-#define BOOST_TEST_SINGLETON_CONS( type )       \
+#define NDNBOOST_TEST_SINGLETON_CONS( type )       \
 friend class ndnboost::unit_test::singleton<type>; \
 type() {}                                       \
 /**/
 
-#if BOOST_WORKAROUND(__DECCXX_VER, BOOST_TESTED_AT(60590042))
+#if NDNBOOST_WORKAROUND(__DECCXX_VER, NDNBOOST_TESTED_AT(60590042))
 
-#define BOOST_TEST_SINGLETON_INST( inst ) \
-template class unit_test::singleton< BOOST_JOIN( inst, _t ) > ; \
-namespace { BOOST_JOIN( inst, _t)& inst = BOOST_JOIN( inst, _t)::instance(); }
+#define NDNBOOST_TEST_SINGLETON_INST( inst ) \
+template class unit_test::singleton< NDNBOOST_JOIN( inst, _t ) > ; \
+namespace { NDNBOOST_JOIN( inst, _t)& inst = NDNBOOST_JOIN( inst, _t)::instance(); }
 
 #elif defined(__APPLE_CC__) && defined(__GNUC__) && __GNUC__ < 4
-#define BOOST_TEST_SINGLETON_INST( inst ) \
-static BOOST_JOIN( inst, _t)& inst = BOOST_JOIN (inst, _t)::instance();
+#define NDNBOOST_TEST_SINGLETON_INST( inst ) \
+static NDNBOOST_JOIN( inst, _t)& inst = NDNBOOST_JOIN (inst, _t)::instance();
 
 #else
 
-#define BOOST_TEST_SINGLETON_INST( inst ) \
-namespace { BOOST_JOIN( inst, _t)& inst = BOOST_JOIN( inst, _t)::instance(); }
+#define NDNBOOST_TEST_SINGLETON_INST( inst ) \
+namespace { NDNBOOST_JOIN( inst, _t)& inst = NDNBOOST_JOIN( inst, _t)::instance(); }
 
 #endif
 
@@ -71,4 +71,4 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_TRIVIAL_SIGNLETON_HPP_020505GER
+#endif // NDNBOOST_TEST_TRIVIAL_SIGNLETON_HPP_020505GER
diff --git a/include/ndnboost/test/utils/wrap_stringstream.hpp b/include/ndnboost/test/utils/wrap_stringstream.hpp
index bd112e9..2fe1111 100644
--- a/include/ndnboost/test/utils/wrap_stringstream.hpp
+++ b/include/ndnboost/test/utils/wrap_stringstream.hpp
@@ -13,18 +13,18 @@
 //                to provide the unified interface
 // ***************************************************************************
 
-#ifndef BOOST_WRAP_STRINGSTREAM_HPP_071894GER
-#define BOOST_WRAP_STRINGSTREAM_HPP_071894GER
+#ifndef NDNBOOST_WRAP_STRINGSTREAM_HPP_071894GER
+#define NDNBOOST_WRAP_STRINGSTREAM_HPP_071894GER
 
 // Boost.Test
 #include <ndnboost/test/detail/config.hpp>
 
 // STL
-#ifdef BOOST_NO_STRINGSTREAM
+#ifdef NDNBOOST_NO_STRINGSTREAM
 #include <strstream>        // for std::ostrstream
 #else
 #include <sstream>          // for std::ostringstream
-#endif // BOOST_NO_STRINGSTREAM
+#endif // NDNBOOST_NO_STRINGSTREAM
 
 #include <ndnboost/test/detail/suppress_warnings.hpp>
 
@@ -39,13 +39,13 @@
 template<typename CharT>
 class basic_wrap_stringstream {
 public:
-#if defined(BOOST_CLASSIC_IOSTREAMS)
+#if defined(NDNBOOST_CLASSIC_IOSTREAMS)
     typedef std::ostringstream               wrapped_stream;
-#elif defined(BOOST_NO_STRINGSTREAM)
+#elif defined(NDNBOOST_NO_STRINGSTREAM)
     typedef std::basic_ostrstream<CharT>     wrapped_stream;
 #else
     typedef std::basic_ostringstream<CharT>  wrapped_stream;
-#endif // BOOST_NO_STRINGSTREAM
+#endif // NDNBOOST_NO_STRINGSTREAM
     // Access methods
     basic_wrap_stringstream&        ref();
     wrapped_stream&                 stream();
@@ -92,7 +92,7 @@
 basic_wrap_stringstream<CharT>::str()
 {
 
-#ifdef BOOST_NO_STRINGSTREAM
+#ifdef NDNBOOST_NO_STRINGSTREAM
     m_str.assign( m_stream.str(), m_stream.pcount() );
     m_stream.freeze( false );
 #else
@@ -114,11 +114,11 @@
 
 //____________________________________________________________________________//
 
-#if BOOST_TEST_USE_STD_LOCALE 
+#if NDNBOOST_TEST_USE_STD_LOCALE 
 
 template <typename CharT>
 inline basic_wrap_stringstream<CharT>&
-operator<<( basic_wrap_stringstream<CharT>& targ, std::ios_base& (BOOST_TEST_CALL_DECL *man)(std::ios_base&) )
+operator<<( basic_wrap_stringstream<CharT>& targ, std::ios_base& (NDNBOOST_TEST_CALL_DECL *man)(std::ios_base&) )
 {
     targ.stream() << man;
     return targ;
@@ -128,7 +128,7 @@
 
 template<typename CharT,typename Elem,typename Tr>
 inline basic_wrap_stringstream<CharT>&
-operator<<( basic_wrap_stringstream<CharT>& targ, std::basic_ostream<Elem,Tr>& (BOOST_TEST_CALL_DECL *man)(std::basic_ostream<Elem, Tr>&) )
+operator<<( basic_wrap_stringstream<CharT>& targ, std::basic_ostream<Elem,Tr>& (NDNBOOST_TEST_CALL_DECL *man)(std::basic_ostream<Elem, Tr>&) )
 {
     targ.stream() << man;
     return targ;
@@ -138,7 +138,7 @@
 
 template<typename CharT,typename Elem,typename Tr>
 inline basic_wrap_stringstream<CharT>&
-operator<<( basic_wrap_stringstream<CharT>& targ, std::basic_ios<Elem, Tr>& (BOOST_TEST_CALL_DECL *man)(std::basic_ios<Elem, Tr>&) )
+operator<<( basic_wrap_stringstream<CharT>& targ, std::basic_ios<Elem, Tr>& (NDNBOOST_TEST_CALL_DECL *man)(std::basic_ios<Elem, Tr>&) )
 {
     targ.stream() << man;
     return targ;
@@ -161,4 +161,4 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif  // BOOST_WRAP_STRINGSTREAM_HPP_071894GER
+#endif  // NDNBOOST_WRAP_STRINGSTREAM_HPP_071894GER
diff --git a/include/ndnboost/test/utils/xml_printer.hpp b/include/ndnboost/test/utils/xml_printer.hpp
index 58ecc6b..50f2972 100644
--- a/include/ndnboost/test/utils/xml_printer.hpp
+++ b/include/ndnboost/test/utils/xml_printer.hpp
@@ -12,8 +12,8 @@
 //  Description : common code used by any agent serving as XML printer
 // ***************************************************************************
 
-#ifndef BOOST_TEST_XML_PRINTER_HPP_071894GER
-#define BOOST_TEST_XML_PRINTER_HPP_071894GER
+#ifndef NDNBOOST_TEST_XML_PRINTER_HPP_071894GER
+#define NDNBOOST_TEST_XML_PRINTER_HPP_071894GER
 
 // Boost.Test
 #include <ndnboost/test/utils/basic_cstring/basic_cstring.hpp>
@@ -53,7 +53,7 @@
         0
     );
 
-    BOOST_TEST_FOREACH( char, c, value ) {
+    NDNBOOST_TEST_FOREACH( char, c, value ) {
         char const* ref = char_type[c];
 
         if( ref )
@@ -102,7 +102,7 @@
 inline std::ostream&
 operator<<( custom_printer<cdata> const& p, const_string value )
 {
-    return *p << BOOST_TEST_L( "<![CDATA[" ) << value << BOOST_TEST_L( "]]>" );
+    return *p << NDNBOOST_TEST_L( "<![CDATA[" ) << value << NDNBOOST_TEST_L( "]]>" );
 }
 
 //____________________________________________________________________________//
@@ -115,4 +115,4 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_XML_PRINTER_HPP_071894GER
+#endif // NDNBOOST_TEST_XML_PRINTER_HPP_071894GER
diff --git a/include/ndnboost/throw_exception.hpp b/include/ndnboost/throw_exception.hpp
index 08cef38..9ee3ca5 100644
--- a/include/ndnboost/throw_exception.hpp
+++ b/include/ndnboost/throw_exception.hpp
@@ -1,9 +1,9 @@
 #ifndef UUID_AA15E74A856F11E08B8D93F24824019B
 #define UUID_AA15E74A856F11E08B8D93F24824019B
-#if defined(__GNUC__) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#if defined(__GNUC__) && !defined(NDNBOOST_EXCEPTION_ENABLE_WARNINGS)
 #pragma GCC system_header
 #endif
-#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#if defined(_MSC_VER) && !defined(NDNBOOST_EXCEPTION_ENABLE_WARNINGS)
 #pragma warning(push,1)
 #endif
 
@@ -31,25 +31,25 @@
 #include <ndnboost/config.hpp>
 #include <exception>
 
-#if !defined( BOOST_EXCEPTION_DISABLE ) && defined( __BORLANDC__ ) && BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x593) )
-# define BOOST_EXCEPTION_DISABLE
+#if !defined( NDNBOOST_EXCEPTION_DISABLE ) && defined( __BORLANDC__ ) && NDNBOOST_WORKAROUND( __BORLANDC__, NDNBOOST_TESTED_AT(0x593) )
+# define NDNBOOST_EXCEPTION_DISABLE
 #endif
 
-#if !defined( BOOST_EXCEPTION_DISABLE ) && defined( BOOST_MSVC ) && BOOST_WORKAROUND( BOOST_MSVC, < 1310 )
-# define BOOST_EXCEPTION_DISABLE
+#if !defined( NDNBOOST_EXCEPTION_DISABLE ) && defined( NDNBOOST_MSVC ) && NDNBOOST_WORKAROUND( NDNBOOST_MSVC, < 1310 )
+# define NDNBOOST_EXCEPTION_DISABLE
 #endif
 
-#if !defined( BOOST_EXCEPTION_DISABLE )
+#if !defined( NDNBOOST_EXCEPTION_DISABLE )
 # include <ndnboost/exception/exception.hpp>
 # include <ndnboost/current_function.hpp>
-# define BOOST_THROW_EXCEPTION(x) ::ndnboost::exception_detail::throw_exception_(x,BOOST_CURRENT_FUNCTION,__FILE__,__LINE__)
+# define NDNBOOST_THROW_EXCEPTION(x) ::ndnboost::exception_detail::throw_exception_(x,NDNBOOST_CURRENT_FUNCTION,__FILE__,__LINE__)
 #else
-# define BOOST_THROW_EXCEPTION(x) ::ndnboost::throw_exception(x)
+# define NDNBOOST_THROW_EXCEPTION(x) ::ndnboost::throw_exception(x)
 #endif
 
 namespace ndnboost
 {
-#ifdef BOOST_NO_EXCEPTIONS
+#ifdef NDNBOOST_NO_EXCEPTIONS
 
 void throw_exception( std::exception const & e ); // user defined
 
@@ -57,13 +57,13 @@
 
 inline void throw_exception_assert_compatibility( std::exception const & ) { }
 
-template<class E> BOOST_ATTRIBUTE_NORETURN inline void throw_exception( E const & e )
+template<class E> NDNBOOST_ATTRIBUTE_NORETURN inline void throw_exception( E const & e )
 {
     //All boost exceptions are required to derive from std::exception,
-    //to ensure compatibility with BOOST_NO_EXCEPTIONS.
+    //to ensure compatibility with NDNBOOST_NO_EXCEPTIONS.
     throw_exception_assert_compatibility(e);
 
-#ifndef BOOST_EXCEPTION_DISABLE
+#ifndef NDNBOOST_EXCEPTION_DISABLE
     throw enable_current_exception(enable_error_info(e));
 #else
     throw e;
@@ -72,12 +72,12 @@
 
 #endif
 
-#if !defined( BOOST_EXCEPTION_DISABLE )
+#if !defined( NDNBOOST_EXCEPTION_DISABLE )
     namespace
     exception_detail
     {
         template <class E>
-        BOOST_ATTRIBUTE_NORETURN
+        NDNBOOST_ATTRIBUTE_NORETURN
         void
         throw_exception_( E const & x, char const * current_function, char const * file, int line )
         {
@@ -94,7 +94,7 @@
 #endif
 } // namespace ndnboost
 
-#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#if defined(_MSC_VER) && !defined(NDNBOOST_EXCEPTION_ENABLE_WARNINGS)
 #pragma warning(pop)
 #endif
 #endif
diff --git a/include/ndnboost/timer.hpp b/include/ndnboost/timer.hpp
index 95ca7b0..e19f360 100644
--- a/include/ndnboost/timer.hpp
+++ b/include/ndnboost/timer.hpp
@@ -14,14 +14,14 @@
 //  16 Jul 99  Second beta
 //   6 Jul 99  Initial boost version
 
-#ifndef BOOST_TIMER_HPP
-#define BOOST_TIMER_HPP
+#ifndef NDNBOOST_TIMER_HPP
+#define NDNBOOST_TIMER_HPP
 
 #include <ndnboost/config.hpp>
 #include <ctime>
 #include <ndnboost/limits.hpp>
 
-# ifdef BOOST_NO_STDC_NAMESPACE
+# ifdef NDNBOOST_NO_STDC_NAMESPACE
     namespace std { using ::clock_t; using ::clock; }
 # endif
 
@@ -69,4 +69,4 @@
 
 } // namespace ndnboost
 
-#endif  // BOOST_TIMER_HPP
+#endif  // NDNBOOST_TIMER_HPP
diff --git a/include/ndnboost/tuple/detail/tuple_basic.hpp b/include/ndnboost/tuple/detail/tuple_basic.hpp
index 75f7d80..cbb6774 100644
--- a/include/ndnboost/tuple/detail/tuple_basic.hpp
+++ b/include/ndnboost/tuple/detail/tuple_basic.hpp
@@ -29,8 +29,8 @@
 //      Added default constructor for cons<>.
 // -----------------------------------------------------------------
 
-#ifndef BOOST_TUPLE_BASIC_HPP
-#define BOOST_TUPLE_BASIC_HPP
+#ifndef NDNBOOST_TUPLE_BASIC_HPP
+#define NDNBOOST_TUPLE_BASIC_HPP
 
 
 #include <utility> // needed for the assignment from pair to tuple
@@ -39,7 +39,7 @@
 #include "ndnboost/type_traits/function_traits.hpp"
 #include "ndnboost/utility/swap.hpp"
 
-#include "ndnboost/detail/workaround.hpp" // needed for BOOST_WORKAROUND
+#include "ndnboost/detail/workaround.hpp" // needed for NDNBOOST_WORKAROUND
 
 namespace ndnboost {
 namespace tuples {
@@ -91,9 +91,9 @@
 struct drop_front {
     template<class Tuple>
     struct apply {
-        typedef BOOST_DEDUCED_TYPENAME drop_front<N-1>::BOOST_NESTED_TEMPLATE
+        typedef NDNBOOST_DEDUCED_TYPENAME drop_front<N-1>::NDNBOOST_NESTED_TEMPLATE
             apply<Tuple> next;
-        typedef BOOST_DEDUCED_TYPENAME next::type::tail_type type;
+        typedef NDNBOOST_DEDUCED_TYPENAME next::type::tail_type type;
         static const type& call(const Tuple& tup) {
             return next::call(tup).tail;
         }
@@ -119,12 +119,12 @@
 // Nth element ot T, first element is at index 0
 // -------------------------------------------------------
 
-#ifndef BOOST_NO_CV_SPECIALIZATIONS
+#ifndef NDNBOOST_NO_CV_SPECIALIZATIONS
 
 template<int N, class T>
 struct element
 {
-  typedef BOOST_DEDUCED_TYPENAME detail::drop_front<N>::BOOST_NESTED_TEMPLATE
+  typedef NDNBOOST_DEDUCED_TYPENAME detail::drop_front<N>::NDNBOOST_NESTED_TEMPLATE
       apply<T>::type::head_type type;
 };
 
@@ -132,30 +132,30 @@
 struct element<N, const T>
 {
 private:
-  typedef BOOST_DEDUCED_TYPENAME detail::drop_front<N>::BOOST_NESTED_TEMPLATE
+  typedef NDNBOOST_DEDUCED_TYPENAME detail::drop_front<N>::NDNBOOST_NESTED_TEMPLATE
       apply<T>::type::head_type unqualified_type;
 public:
-#if BOOST_WORKAROUND(__BORLANDC__,<0x600)
+#if NDNBOOST_WORKAROUND(__BORLANDC__,<0x600)
   typedef const unqualified_type type;
 #else
-  typedef BOOST_DEDUCED_TYPENAME ndnboost::add_const<unqualified_type>::type type;
+  typedef NDNBOOST_DEDUCED_TYPENAME ndnboost::add_const<unqualified_type>::type type;
 #endif
 };
-#else // def BOOST_NO_CV_SPECIALIZATIONS
+#else // def NDNBOOST_NO_CV_SPECIALIZATIONS
 
 namespace detail {
 
 template<int N, class T, bool IsConst>
 struct element_impl
 {
-  typedef BOOST_DEDUCED_TYPENAME detail::drop_front<N>::BOOST_NESTED_TEMPLATE
+  typedef NDNBOOST_DEDUCED_TYPENAME detail::drop_front<N>::NDNBOOST_NESTED_TEMPLATE
       apply<T>::type::head_type type;
 };
 
 template<int N, class T>
 struct element_impl<N, T, true /* IsConst */>
 {
-  typedef BOOST_DEDUCED_TYPENAME detail::drop_front<N>::BOOST_NESTED_TEMPLATE
+  typedef NDNBOOST_DEDUCED_TYPENAME detail::drop_front<N>::NDNBOOST_NESTED_TEMPLATE
       apply<T>::type::head_type unqualified_type;
   typedef const unqualified_type type;
 };
@@ -208,10 +208,10 @@
 inline typename access_traits<
                   typename element<N, cons<HT, TT> >::type
                 >::non_const_type
-get(cons<HT, TT>& c BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(int, N)) {
-  typedef BOOST_DEDUCED_TYPENAME detail::drop_front<N>::BOOST_NESTED_TEMPLATE
+get(cons<HT, TT>& c NDNBOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(int, N)) {
+  typedef NDNBOOST_DEDUCED_TYPENAME detail::drop_front<N>::NDNBOOST_NESTED_TEMPLATE
       apply<cons<HT, TT> > impl;
-  typedef BOOST_DEDUCED_TYPENAME impl::type cons_element;
+  typedef NDNBOOST_DEDUCED_TYPENAME impl::type cons_element;
   return const_cast<cons_element&>(impl::call(c)).head;
 }
 
@@ -222,10 +222,10 @@
 inline typename access_traits<
                   typename element<N, cons<HT, TT> >::type
                 >::const_type
-get(const cons<HT, TT>& c BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(int, N)) {
-  typedef BOOST_DEDUCED_TYPENAME detail::drop_front<N>::BOOST_NESTED_TEMPLATE
+get(const cons<HT, TT>& c NDNBOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(int, N)) {
+  typedef NDNBOOST_DEDUCED_TYPENAME detail::drop_front<N>::NDNBOOST_NESTED_TEMPLATE
       apply<cons<HT, TT> > impl;
-  typedef BOOST_DEDUCED_TYPENAME impl::type cons_element;
+  typedef NDNBOOST_DEDUCED_TYPENAME impl::type cons_element;
   return impl::call(c).head;
 }
 
@@ -322,7 +322,7 @@
 
   template <class T1, class T2>
   cons& operator=( const std::pair<T1, T2>& u ) {
-    BOOST_STATIC_ASSERT(length<cons>::value == 2); // check length = 2
+    NDNBOOST_STATIC_ASSERT(length<cons>::value == 2); // check length = 2
     head = u.first; tail.head = u.second; return *this;
   }
 
@@ -399,7 +399,7 @@
   typename access_traits<
              typename element<N, self_type>::type
             >::non_const_type
-  get(BOOST_EXPLICIT_TEMPLATE_NON_TYPE(int, N)) {
+  get(NDNBOOST_EXPLICIT_TEMPLATE_NON_TYPE(int, N)) {
     return ndnboost::tuples::get<N>(*this);
   }
 
@@ -407,7 +407,7 @@
   typename access_traits<
              typename element<N, self_type>::type
            >::const_type
-  get(BOOST_EXPLICIT_TEMPLATE_NON_TYPE(int, N)) const {
+  get(NDNBOOST_EXPLICIT_TEMPLATE_NON_TYPE(int, N)) const {
     return ndnboost::tuples::get<N>(*this);
   }
 
@@ -417,27 +417,27 @@
 
 template<class T>
 struct length  {
-  BOOST_STATIC_CONSTANT(int, value = 1 + length<typename T::tail_type>::value);
+  NDNBOOST_STATIC_CONSTANT(int, value = 1 + length<typename T::tail_type>::value);
 };
 
 template<>
 struct length<tuple<> > {
-  BOOST_STATIC_CONSTANT(int, value = 0);
+  NDNBOOST_STATIC_CONSTANT(int, value = 0);
 };
 
 template<>
 struct length<tuple<> const> {
-  BOOST_STATIC_CONSTANT(int, value = 0);
+  NDNBOOST_STATIC_CONSTANT(int, value = 0);
 };
 
 template<>
 struct length<null_type> {
-  BOOST_STATIC_CONSTANT(int, value = 0);
+  NDNBOOST_STATIC_CONSTANT(int, value = 0);
 };
 
 template<>
 struct length<null_type const> {
-  BOOST_STATIC_CONSTANT(int, value = 0);
+  NDNBOOST_STATIC_CONSTANT(int, value = 0);
 };
 
 namespace detail {
@@ -579,7 +579,7 @@
 
   template <class U1, class U2>
   tuple& operator=(const std::pair<U1, U2>& k) {
-    BOOST_STATIC_ASSERT(length<tuple>::value == 2);// check_length = 2
+    NDNBOOST_STATIC_ASSERT(length<tuple>::value == 2);// check_length = 2
     this->head = k.first;
     this->tail.head = k.second;
     return *this;
@@ -975,6 +975,6 @@
 } // end of namespace ndnboost
 
 
-#endif // BOOST_TUPLE_BASIC_HPP
+#endif // NDNBOOST_TUPLE_BASIC_HPP
 
 
diff --git a/include/ndnboost/tuple/detail/tuple_basic_no_partial_spec.hpp b/include/ndnboost/tuple/detail/tuple_basic_no_partial_spec.hpp
index 5f89415..59222b7 100644
--- a/include/ndnboost/tuple/detail/tuple_basic_no_partial_spec.hpp
+++ b/include/ndnboost/tuple/detail/tuple_basic_no_partial_spec.hpp
@@ -23,14 +23,14 @@
 
 // -----------------------------------------------------------------
 
-#ifndef BOOST_TUPLE_BASIC_NO_PARTIAL_SPEC_HPP
-#define BOOST_TUPLE_BASIC_NO_PARTIAL_SPEC_HPP
+#ifndef NDNBOOST_TUPLE_BASIC_NO_PARTIAL_SPEC_HPP
+#define NDNBOOST_TUPLE_BASIC_NO_PARTIAL_SPEC_HPP
 
 #include "ndnboost/type_traits.hpp"
 #include "ndnboost/utility/swap.hpp"
 #include <utility>
 
-#if defined BOOST_MSVC
+#if defined NDNBOOST_MSVC
 #pragma warning(disable:4518) // storage-class or type specifier(s) unexpected here; ignored
 #pragma warning(disable:4181) // qualifier applied to reference type ignored
 #pragma warning(disable:4227) // qualifier applied to reference type ignored
@@ -106,7 +106,7 @@
         // Each of vc6 and vc7 seem to require a different formulation
         // of this return type
         template <class H, class T>
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
         static typename add_reference<typename add_const<T>::type>::type
 #else
         static typename add_const_reference<T>::type
@@ -179,7 +179,7 @@
 
      cons() : head(), tail() {}
 
-#if defined BOOST_MSVC
+#if defined NDNBOOST_MSVC
       template<typename Tail>
       cons(head_cref h /* = head_type() */, // causes MSVC 6.5 to barf.
                     const Tail& t) : head(h), tail(t.head, t.tail)
@@ -314,7 +314,7 @@
 
     namespace detail {
 
-#if defined(BOOST_MSVC) && (BOOST_MSVC == 1300)
+#if defined(NDNBOOST_MSVC) && (NDNBOOST_MSVC == 1300)
       // special workaround for vc7:
 
       template <bool x>
@@ -397,17 +397,17 @@
     template<typename Tuple>
     struct length
     {
-      BOOST_STATIC_CONSTANT(int, value = 1 + length<typename Tuple::tail_type>::value);
+      NDNBOOST_STATIC_CONSTANT(int, value = 1 + length<typename Tuple::tail_type>::value);
     };
 
     template<> struct length<tuple<> > {
-      BOOST_STATIC_CONSTANT(int, value = 0);
+      NDNBOOST_STATIC_CONSTANT(int, value = 0);
     };
 
     template<>
     struct length<null_type>
     {
-      BOOST_STATIC_CONSTANT(int, value = 0);
+      NDNBOOST_STATIC_CONSTANT(int, value = 0);
     };
 
     namespace detail {
@@ -862,4 +862,4 @@
 
 } // namespace tuples
 } // namespace ndnboost
-#endif // BOOST_TUPLE_BASIC_NO_PARTIAL_SPEC_HPP
+#endif // NDNBOOST_TUPLE_BASIC_NO_PARTIAL_SPEC_HPP
diff --git a/include/ndnboost/tuple/tuple.hpp b/include/ndnboost/tuple/tuple.hpp
index 06689bd..40b5804 100644
--- a/include/ndnboost/tuple/tuple.hpp
+++ b/include/ndnboost/tuple/tuple.hpp
@@ -10,8 +10,8 @@
 
 // ----------------------------------------------------------------- 
 
-#ifndef BOOST_TUPLE_HPP
-#define BOOST_TUPLE_HPP
+#ifndef NDNBOOST_TUPLE_HPP
+#define NDNBOOST_TUPLE_HPP
 
 #if defined(__sgi) && defined(_COMPILER_VERSION) && _COMPILER_VERSION <= 730
 // Work around a compiler bug.
@@ -23,7 +23,7 @@
 #include "ndnboost/config.hpp"
 #include "ndnboost/static_assert.hpp"
 
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#if defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 // The MSVC version
 #include "ndnboost/tuple/detail/tuple_basic_no_partial_spec.hpp"
 
@@ -32,16 +32,16 @@
 #include "ndnboost/ref.hpp"
 #include "ndnboost/tuple/detail/tuple_basic.hpp"
 
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 namespace ndnboost {    
 
 using tuples::tuple;
 using tuples::make_tuple;
 using tuples::tie;
-#if !defined(BOOST_NO_USING_TEMPLATE)
+#if !defined(NDNBOOST_NO_USING_TEMPLATE)
 using tuples::get;
-#elif !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#elif !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 //
 // The "using tuples::get" statement causes the
 // Borland compiler to ICE, use forwarding
@@ -64,7 +64,7 @@
 get(const tuples::cons<HT, TT>& c) {
   return tuples::get<N,HT,TT>(c);
 }
-#else  // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#else  // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 //
 // MSVC, using declarations don't mix with templates well,
 // so use forwarding functions instead:
@@ -82,9 +82,9 @@
 {
    return tuples::detail::get_class<N>::get(t);
 }
-#endif // BOOST_NO_USING_TEMPLATE
+#endif // NDNBOOST_NO_USING_TEMPLATE
    
 } // end namespace ndnboost
 
 
-#endif // BOOST_TUPLE_HPP
+#endif // NDNBOOST_TUPLE_HPP
diff --git a/include/ndnboost/type.hpp b/include/ndnboost/type.hpp
index ce726f8..92e4192 100644
--- a/include/ndnboost/type.hpp
+++ b/include/ndnboost/type.hpp
@@ -3,8 +3,8 @@
 // accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_TYPE_DWA20010120_HPP
-# define BOOST_TYPE_DWA20010120_HPP
+#ifndef NDNBOOST_TYPE_DWA20010120_HPP
+# define NDNBOOST_TYPE_DWA20010120_HPP
 
 namespace ndnboost {
 
@@ -15,4 +15,4 @@
 
 }
 
-#endif // BOOST_TYPE_DWA20010120_HPP
+#endif // NDNBOOST_TYPE_DWA20010120_HPP
diff --git a/include/ndnboost/type_traits.hpp b/include/ndnboost/type_traits.hpp
index 01081e0..10cccea 100644
--- a/include/ndnboost/type_traits.hpp
+++ b/include/ndnboost/type_traits.hpp
@@ -7,8 +7,8 @@
 
 //  See ndnboost/type_traits/*.hpp for full copyright notices.
 
-#ifndef BOOST_TYPE_TRAITS_HPP
-#define BOOST_TYPE_TRAITS_HPP
+#ifndef NDNBOOST_TYPE_TRAITS_HPP
+#define NDNBOOST_TYPE_TRAITS_HPP
 
 #include "ndnboost/type_traits/add_const.hpp"
 #include "ndnboost/type_traits/add_cv.hpp"
@@ -97,4 +97,4 @@
 
 #include "ndnboost/type_traits/ice.hpp"
 
-#endif // BOOST_TYPE_TRAITS_HPP
+#endif // NDNBOOST_TYPE_TRAITS_HPP
diff --git a/include/ndnboost/type_traits/add_const.hpp b/include/ndnboost/type_traits/add_const.hpp
index 61fe636..47c5ed0 100644
--- a/include/ndnboost/type_traits/add_const.hpp
+++ b/include/ndnboost/type_traits/add_const.hpp
@@ -7,8 +7,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_ADD_CONST_HPP_INCLUDED
-#define BOOST_TT_ADD_CONST_HPP_INCLUDED
+#ifndef NDNBOOST_TT_ADD_CONST_HPP_INCLUDED
+#define NDNBOOST_TT_ADD_CONST_HPP_INCLUDED
 
 #include <ndnboost/config.hpp>
 
@@ -22,7 +22,7 @@
 // the same as "T const", but it does suppress warnings
 // from some compilers:
 
-#if defined(BOOST_MSVC)
+#if defined(NDNBOOST_MSVC)
 // This bogus warning will appear when add_const is applied to a
 // const volatile reference because we can't detect const volatile
 // references with MSVC6.
@@ -30,18 +30,18 @@
 #   pragma warning(disable:4181) // warning C4181: qualifier applied to reference type ignored
 #endif 
 
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(add_const,T,T const)
+NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(add_const,T,T const)
 
-#if defined(BOOST_MSVC)
+#if defined(NDNBOOST_MSVC)
 #   pragma warning(pop)
 #endif 
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,add_const,T&,T&)
+#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,add_const,T&,T&)
 #endif
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/type_trait_undef.hpp>
 
-#endif // BOOST_TT_ADD_CONST_HPP_INCLUDED
+#endif // NDNBOOST_TT_ADD_CONST_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/add_cv.hpp b/include/ndnboost/type_traits/add_cv.hpp
index ddf3ac1..8cd56d8 100644
--- a/include/ndnboost/type_traits/add_cv.hpp
+++ b/include/ndnboost/type_traits/add_cv.hpp
@@ -8,8 +8,8 @@
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
 
-#ifndef BOOST_TT_ADD_CV_HPP_INCLUDED
-#define BOOST_TT_ADD_CV_HPP_INCLUDED
+#ifndef NDNBOOST_TT_ADD_CV_HPP_INCLUDED
+#define NDNBOOST_TT_ADD_CV_HPP_INCLUDED
 
 #include <ndnboost/config.hpp>
 
@@ -23,7 +23,7 @@
 // the same as "T const volatile", but it does suppress warnings
 // from some compilers:
 
-#if defined(BOOST_MSVC)
+#if defined(NDNBOOST_MSVC)
 // This bogus warning will appear when add_volatile is applied to a
 // const volatile reference because we can't detect const volatile
 // references with MSVC6.
@@ -31,18 +31,18 @@
 #   pragma warning(disable:4181) // warning C4181: qualifier applied to reference type ignored
 #endif 
 
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(add_cv,T,T const volatile)
+NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(add_cv,T,T const volatile)
 
-#if defined(BOOST_MSVC)
+#if defined(NDNBOOST_MSVC)
 #   pragma warning(pop)
 #endif 
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,add_cv,T&,T&)
+#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,add_cv,T&,T&)
 #endif
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/type_trait_undef.hpp>
 
-#endif // BOOST_TT_ADD_CV_HPP_INCLUDED
+#endif // NDNBOOST_TT_ADD_CV_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/add_lvalue_reference.hpp b/include/ndnboost/type_traits/add_lvalue_reference.hpp
index 5a3a256..592efc5 100644
--- a/include/ndnboost/type_traits/add_lvalue_reference.hpp
+++ b/include/ndnboost/type_traits/add_lvalue_reference.hpp
@@ -3,8 +3,8 @@
 //  Distributed under the Boost Software License, Version 1.0.
 //  See http://www.boost.org/LICENSE_1_0.txt
 
-#ifndef BOOST_TYPE_TRAITS_EXT_ADD_LVALUE_REFERENCE__HPP
-#define BOOST_TYPE_TRAITS_EXT_ADD_LVALUE_REFERENCE__HPP
+#ifndef NDNBOOST_TYPE_TRAITS_EXT_ADD_LVALUE_REFERENCE__HPP
+#define NDNBOOST_TYPE_TRAITS_EXT_ADD_LVALUE_REFERENCE__HPP
 
 #include <ndnboost/type_traits/add_reference.hpp>
 
@@ -13,14 +13,14 @@
 
 namespace ndnboost{
 
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(add_lvalue_reference,T,typename ndnboost::add_reference<T>::type)
+NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(add_lvalue_reference,T,typename ndnboost::add_reference<T>::type)
 
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,add_lvalue_reference,T&&,T&)
+#ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,add_lvalue_reference,T&&,T&)
 #endif
 
 }
 
 #include <ndnboost/type_traits/detail/type_trait_undef.hpp>
 
-#endif  // BOOST_TYPE_TRAITS_EXT_ADD_LVALUE_REFERENCE__HPP
+#endif  // NDNBOOST_TYPE_TRAITS_EXT_ADD_LVALUE_REFERENCE__HPP
diff --git a/include/ndnboost/type_traits/add_pointer.hpp b/include/ndnboost/type_traits/add_pointer.hpp
index 0347139..726f60b 100644
--- a/include/ndnboost/type_traits/add_pointer.hpp
+++ b/include/ndnboost/type_traits/add_pointer.hpp
@@ -6,8 +6,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_ADD_POINTER_HPP_INCLUDED
-#define BOOST_TT_ADD_POINTER_HPP_INCLUDED
+#ifndef NDNBOOST_TT_ADD_POINTER_HPP_INCLUDED
+#define NDNBOOST_TT_ADD_POINTER_HPP_INCLUDED
 
 #include <ndnboost/type_traits/remove_reference.hpp>
 
@@ -63,10 +63,10 @@
 
 } // namespace detail
 
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(add_pointer,T,typename ndnboost::detail::add_pointer_impl<T>::type)
+NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(add_pointer,T,typename ndnboost::detail::add_pointer_impl<T>::type)
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/type_trait_undef.hpp>
 
-#endif // BOOST_TT_ADD_POINTER_HPP_INCLUDED
+#endif // NDNBOOST_TT_ADD_POINTER_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/add_reference.hpp b/include/ndnboost/type_traits/add_reference.hpp
index d825355..993b8bc 100644
--- a/include/ndnboost/type_traits/add_reference.hpp
+++ b/include/ndnboost/type_traits/add_reference.hpp
@@ -6,8 +6,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_ADD_REFERENCE_HPP_INCLUDED
-#define BOOST_TT_ADD_REFERENCE_HPP_INCLUDED
+#ifndef NDNBOOST_TT_ADD_REFERENCE_HPP_INCLUDED
+#define NDNBOOST_TT_ADD_REFERENCE_HPP_INCLUDED
 
 #include <ndnboost/type_traits/is_reference.hpp>
 #include <ndnboost/detail/workaround.hpp>
@@ -20,7 +20,7 @@
 
 namespace detail {
 
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && defined(BOOST_MSVC6_MEMBER_TEMPLATES)
+#if defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && defined(NDNBOOST_MSVC6_MEMBER_TEMPLATES)
 
 template <bool x>
 struct reference_adder
@@ -62,7 +62,7 @@
     typedef T& type;
 };
 
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
+#ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
 template <typename T>
 struct add_reference_rvalue_layer<T&&>
 {
@@ -76,32 +76,32 @@
     typedef typename add_reference_rvalue_layer<T>::type type;
 };
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-BOOST_TT_AUX_TYPE_TRAIT_IMPL_PARTIAL_SPEC1_1(typename T,add_reference,T&,T&)
+#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+NDNBOOST_TT_AUX_TYPE_TRAIT_IMPL_PARTIAL_SPEC1_1(typename T,add_reference,T&,T&)
 #endif
 
 #endif
 
 // these full specialisations are always required:
-BOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1(add_reference,void,void)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1(add_reference,void const,void const)
-BOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1(add_reference,void volatile,void volatile)
-BOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1(add_reference,void const volatile,void const volatile)
+NDNBOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1(add_reference,void,void)
+#ifndef NDNBOOST_NO_CV_VOID_SPECIALIZATIONS
+NDNBOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1(add_reference,void const,void const)
+NDNBOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1(add_reference,void volatile,void volatile)
+NDNBOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1(add_reference,void const volatile,void const volatile)
 #endif
 
 } // namespace detail
 
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(add_reference,T,typename ndnboost::detail::add_reference_impl<T>::type)
+NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(add_reference,T,typename ndnboost::detail::add_reference_impl<T>::type)
 
 // agurt, 07/mar/03: workaround Borland's ill-formed sensitivity to an additional
 // level of indirection, here
-#if BOOST_WORKAROUND(__BORLANDC__, < 0x600)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,add_reference,T&,T&)
+#if NDNBOOST_WORKAROUND(__BORLANDC__, < 0x600)
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,add_reference,T&,T&)
 #endif
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/type_trait_undef.hpp>
 
-#endif // BOOST_TT_ADD_REFERENCE_HPP_INCLUDED
+#endif // NDNBOOST_TT_ADD_REFERENCE_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/add_rvalue_reference.hpp b/include/ndnboost/type_traits/add_rvalue_reference.hpp
index 1a09de7..b163075 100644
--- a/include/ndnboost/type_traits/add_rvalue_reference.hpp
+++ b/include/ndnboost/type_traits/add_rvalue_reference.hpp
@@ -5,8 +5,8 @@
 //  Distributed under the Boost Software License, Version 1.0.
 //  See http://www.boost.org/LICENSE_1_0.txt
 
-#ifndef BOOST_TYPE_TRAITS_EXT_ADD_RVALUE_REFERENCE__HPP
-#define BOOST_TYPE_TRAITS_EXT_ADD_RVALUE_REFERENCE__HPP
+#ifndef NDNBOOST_TYPE_TRAITS_EXT_ADD_RVALUE_REFERENCE__HPP
+#define NDNBOOST_TYPE_TRAITS_EXT_ADD_RVALUE_REFERENCE__HPP
 
 #include <ndnboost/config.hpp>
 
@@ -39,7 +39,7 @@
     struct add_rvalue_reference_helper
     { typedef T   type; };
 
-#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#if !defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
     template <typename T>
     struct add_rvalue_reference_helper<T, true>
     {
@@ -56,11 +56,11 @@
 
 }
 
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(add_rvalue_reference,T,typename ndnboost::type_traits_detail::add_rvalue_reference_imp<T>::type)
+NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(add_rvalue_reference,T,typename ndnboost::type_traits_detail::add_rvalue_reference_imp<T>::type)
 
 }  // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/type_trait_undef.hpp>
 
-#endif  // BOOST_TYPE_TRAITS_EXT_ADD_RVALUE_REFERENCE__HPP
+#endif  // NDNBOOST_TYPE_TRAITS_EXT_ADD_RVALUE_REFERENCE__HPP
 
diff --git a/include/ndnboost/type_traits/add_volatile.hpp b/include/ndnboost/type_traits/add_volatile.hpp
index 51ddce9..a8f1162 100644
--- a/include/ndnboost/type_traits/add_volatile.hpp
+++ b/include/ndnboost/type_traits/add_volatile.hpp
@@ -7,8 +7,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_ADD_VOLATILE_HPP_INCLUDED
-#define BOOST_TT_ADD_VOLATILE_HPP_INCLUDED
+#ifndef NDNBOOST_TT_ADD_VOLATILE_HPP_INCLUDED
+#define NDNBOOST_TT_ADD_VOLATILE_HPP_INCLUDED
 
 #include <ndnboost/config.hpp>
 
@@ -22,7 +22,7 @@
 // the same as "T volatile", but it does suppress warnings
 // from some compilers:
 
-#if defined(BOOST_MSVC)
+#if defined(NDNBOOST_MSVC)
 // This bogus warning will appear when add_volatile is applied to a
 // const volatile reference because we can't detect const volatile
 // references with MSVC6.
@@ -30,18 +30,18 @@
 #   pragma warning(disable:4181) // warning C4181: qualifier applied to reference type ignored
 #endif 
 
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(add_volatile,T,T volatile)
+NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(add_volatile,T,T volatile)
 
-#if defined(BOOST_MSVC)
+#if defined(NDNBOOST_MSVC)
 #   pragma warning(pop)
 #endif 
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,add_volatile,T&,T&)
+#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,add_volatile,T&,T&)
 #endif
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/type_trait_undef.hpp>
 
-#endif // BOOST_TT_ADD_VOLATILE_HPP_INCLUDED
+#endif // NDNBOOST_TT_ADD_VOLATILE_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/aligned_storage.hpp b/include/ndnboost/type_traits/aligned_storage.hpp
index bdb9735..ade66a1 100644
--- a/include/ndnboost/type_traits/aligned_storage.hpp
+++ b/include/ndnboost/type_traits/aligned_storage.hpp
@@ -6,8 +6,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_ALIGNED_STORAGE_HPP_INCLUDED
-#  define BOOST_TT_ALIGNED_STORAGE_HPP_INCLUDED
+#ifndef NDNBOOST_TT_ALIGNED_STORAGE_HPP_INCLUDED
+#  define NDNBOOST_TT_ALIGNED_STORAGE_HPP_INCLUDED
 #  include <ndnboost/aligned_storage.hpp>
-#endif // BOOST_TT_ALIGNED_STORAGE_HPP_INCLUDED
+#endif // NDNBOOST_TT_ALIGNED_STORAGE_HPP_INCLUDED
 
diff --git a/include/ndnboost/type_traits/alignment_of.hpp b/include/ndnboost/type_traits/alignment_of.hpp
index e27ff7b..c7d35ac 100644
--- a/include/ndnboost/type_traits/alignment_of.hpp
+++ b/include/ndnboost/type_traits/alignment_of.hpp
@@ -6,8 +6,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_ALIGNMENT_OF_HPP_INCLUDED
-#define BOOST_TT_ALIGNMENT_OF_HPP_INCLUDED
+#ifndef NDNBOOST_TT_ALIGNMENT_OF_HPP_INCLUDED
+#define NDNBOOST_TT_ALIGNMENT_OF_HPP_INCLUDED
 
 #include <ndnboost/config.hpp>
 #include <cstddef>
@@ -16,7 +16,7 @@
 // should be the last #include
 #include <ndnboost/type_traits/detail/size_t_trait_def.hpp>
 
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
 #   pragma warning(push)
 #   pragma warning(disable: 4121 4512) // alignment is sensitive to packing
 #endif
@@ -31,7 +31,7 @@
 // get the alignment of some arbitrary type:
 namespace detail {
 
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
 #pragma warning(push)
 #pragma warning(disable:4324) // structure was padded due to __declspec(align())
 #endif
@@ -42,33 +42,33 @@
     T t;
     alignment_of_hack();
 };
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
 #pragma warning(pop)
 #endif
 
 template <unsigned A, unsigned S>
 struct alignment_logic
 {
-    BOOST_STATIC_CONSTANT(std::size_t, value = A < S ? A : S);
+    NDNBOOST_STATIC_CONSTANT(std::size_t, value = A < S ? A : S);
 };
 
 
 template< typename T >
 struct alignment_of_impl
 {
-#if defined(BOOST_MSVC) && (BOOST_MSVC >= 1400)
+#if defined(NDNBOOST_MSVC) && (NDNBOOST_MSVC >= 1400)
     //
     // With MSVC both the native __alignof operator
     // and our own logic gets things wrong from time to time :-(
     // Using a combination of the two seems to make the most of a bad job:
     //
-    BOOST_STATIC_CONSTANT(std::size_t, value =
+    NDNBOOST_STATIC_CONSTANT(std::size_t, value =
         (::ndnboost::detail::alignment_logic<
             sizeof(::ndnboost::detail::alignment_of_hack<T>) - sizeof(T),
             __alignof(T)
         >::value));
-#elif !defined(BOOST_ALIGNMENT_OF)
-    BOOST_STATIC_CONSTANT(std::size_t, value =
+#elif !defined(NDNBOOST_ALIGNMENT_OF)
+    NDNBOOST_STATIC_CONSTANT(std::size_t, value =
         (::ndnboost::detail::alignment_logic<
             sizeof(::ndnboost::detail::alignment_of_hack<T>) - sizeof(T),
             sizeof(T)
@@ -80,17 +80,17 @@
    // always work in that context for some unexplained reason.
    // (See type_with_alignment tests for test cases).
    //
-   BOOST_STATIC_CONSTANT(std::size_t, value = BOOST_ALIGNMENT_OF(T));
+   NDNBOOST_STATIC_CONSTANT(std::size_t, value = NDNBOOST_ALIGNMENT_OF(T));
 #endif
 };
 
 } // namespace detail
 
-BOOST_TT_AUX_SIZE_T_TRAIT_DEF1(alignment_of,T,::ndnboost::detail::alignment_of_impl<T>::value)
+NDNBOOST_TT_AUX_SIZE_T_TRAIT_DEF1(alignment_of,T,::ndnboost::detail::alignment_of_impl<T>::value)
 
 // references have to be treated specially, assume
 // that a reference is just a special pointer:
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 template <typename T>
 struct alignment_of<T&>
     : public alignment_of<T*>
@@ -106,11 +106,11 @@
 #endif
 
 // void has to be treated specially:
-BOOST_TT_AUX_SIZE_T_TRAIT_SPEC1(alignment_of,void,0)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_SIZE_T_TRAIT_SPEC1(alignment_of,void const,0)
-BOOST_TT_AUX_SIZE_T_TRAIT_SPEC1(alignment_of,void volatile,0)
-BOOST_TT_AUX_SIZE_T_TRAIT_SPEC1(alignment_of,void const volatile,0)
+NDNBOOST_TT_AUX_SIZE_T_TRAIT_SPEC1(alignment_of,void,0)
+#ifndef NDNBOOST_NO_CV_VOID_SPECIALIZATIONS
+NDNBOOST_TT_AUX_SIZE_T_TRAIT_SPEC1(alignment_of,void const,0)
+NDNBOOST_TT_AUX_SIZE_T_TRAIT_SPEC1(alignment_of,void volatile,0)
+NDNBOOST_TT_AUX_SIZE_T_TRAIT_SPEC1(alignment_of,void const volatile,0)
 #endif
 
 } // namespace ndnboost
@@ -118,11 +118,11 @@
 #if defined(__BORLANDC__) && (__BORLANDC__ < 0x600)
 #pragma option pop
 #endif
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
 #   pragma warning(pop)
 #endif
 
 #include <ndnboost/type_traits/detail/size_t_trait_undef.hpp>
 
-#endif // BOOST_TT_ALIGNMENT_OF_HPP_INCLUDED
+#endif // NDNBOOST_TT_ALIGNMENT_OF_HPP_INCLUDED
 
diff --git a/include/ndnboost/type_traits/arithmetic_traits.hpp b/include/ndnboost/type_traits/arithmetic_traits.hpp
index 31e6500..dc8e197 100644
--- a/include/ndnboost/type_traits/arithmetic_traits.hpp
+++ b/include/ndnboost/type_traits/arithmetic_traits.hpp
@@ -8,8 +8,8 @@
 //  defines traits classes for arithmetic types:
 //  is_void, is_integral, is_float, is_arithmetic, is_fundamental.
 
-#ifndef BOOST_TT_ARITHMETIC_TRAITS_HPP_INCLUDED
-#define BOOST_TT_ARITHMETIC_TRAITS_HPP_INCLUDED
+#ifndef NDNBOOST_TT_ARITHMETIC_TRAITS_HPP_INCLUDED
+#define NDNBOOST_TT_ARITHMETIC_TRAITS_HPP_INCLUDED
 
 #include <ndnboost/type_traits/is_arithmetic.hpp>
 #include <ndnboost/type_traits/is_float.hpp>
@@ -17,4 +17,4 @@
 #include <ndnboost/type_traits/is_integral.hpp>
 #include <ndnboost/type_traits/is_void.hpp>
 
-#endif // BOOST_TT_ARITHMETIC_TRAITS_HPP_INCLUDED
+#endif // NDNBOOST_TT_ARITHMETIC_TRAITS_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/broken_compiler_spec.hpp b/include/ndnboost/type_traits/broken_compiler_spec.hpp
index 7e5023d..00a5ee0 100644
--- a/include/ndnboost/type_traits/broken_compiler_spec.hpp
+++ b/include/ndnboost/type_traits/broken_compiler_spec.hpp
@@ -6,112 +6,112 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_BROKEN_COMPILER_SPEC_HPP_INCLUDED
-#define BOOST_TT_BROKEN_COMPILER_SPEC_HPP_INCLUDED
+#ifndef NDNBOOST_TT_BROKEN_COMPILER_SPEC_HPP_INCLUDED
+#define NDNBOOST_TT_BROKEN_COMPILER_SPEC_HPP_INCLUDED
 
 #include <ndnboost/mpl/aux_/lambda_support.hpp>
 #include <ndnboost/config.hpp>
 
-// these are needed regardless of BOOST_TT_NO_BROKEN_COMPILER_SPEC 
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+// these are needed regardless of NDNBOOST_TT_NO_BROKEN_COMPILER_SPEC 
+#if defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 namespace ndnboost { namespace detail {
 template< typename T > struct remove_const_impl     { typedef T type; };
 template< typename T > struct remove_volatile_impl  { typedef T type; };
 template< typename T > struct remove_pointer_impl   { typedef T type; };
 template< typename T > struct remove_reference_impl { typedef T type; };
-typedef int invoke_BOOST_TT_BROKEN_COMPILER_SPEC_outside_all_namespaces;
+typedef int invoke_NDNBOOST_TT_BROKEN_COMPILER_SPEC_outside_all_namespaces;
 }}
 #endif
 
 // agurt, 27/jun/03: disable the workaround if user defined 
-// BOOST_TT_NO_BROKEN_COMPILER_SPEC
-#if    !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-    || defined(BOOST_TT_NO_BROKEN_COMPILER_SPEC)
+// NDNBOOST_TT_NO_BROKEN_COMPILER_SPEC
+#if    !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
+    || defined(NDNBOOST_TT_NO_BROKEN_COMPILER_SPEC)
 
-#   define BOOST_TT_BROKEN_COMPILER_SPEC(T) /**/
+#   define NDNBOOST_TT_BROKEN_COMPILER_SPEC(T) /**/
 
 #else
 
-// same as BOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1 macro, except that it
+// same as NDNBOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1 macro, except that it
 // never gets #undef-ined
-#   define BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(trait,spec,result) \
+#   define NDNBOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(trait,spec,result) \
 template<> struct trait##_impl<spec> \
 { \
     typedef result type; \
 }; \
 /**/
 
-#   define BOOST_TT_AUX_REMOVE_CONST_VOLATILE_RANK1_SPEC(T)                         \
-    BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_const,T const,T)                    \
-    BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_const,T const volatile,T volatile)  \
-    BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_volatile,T volatile,T)              \
-    BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_volatile,T const volatile,T const)  \
+#   define NDNBOOST_TT_AUX_REMOVE_CONST_VOLATILE_RANK1_SPEC(T)                         \
+    NDNBOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_const,T const,T)                    \
+    NDNBOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_const,T const volatile,T volatile)  \
+    NDNBOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_volatile,T volatile,T)              \
+    NDNBOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_volatile,T const volatile,T const)  \
     /**/
 
-#   define BOOST_TT_AUX_REMOVE_PTR_REF_RANK_1_SPEC(T)                               \
-    BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_pointer,T*,T)                       \
-    BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_pointer,T*const,T)                  \
-    BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_pointer,T*volatile,T)               \
-    BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_pointer,T*const volatile,T)         \
-    BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_reference,T&,T)                     \
+#   define NDNBOOST_TT_AUX_REMOVE_PTR_REF_RANK_1_SPEC(T)                               \
+    NDNBOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_pointer,T*,T)                       \
+    NDNBOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_pointer,T*const,T)                  \
+    NDNBOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_pointer,T*volatile,T)               \
+    NDNBOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_pointer,T*const volatile,T)         \
+    NDNBOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_reference,T&,T)                     \
     /**/
 
-#   define BOOST_TT_AUX_REMOVE_PTR_REF_RANK_2_SPEC(T)                               \
-    BOOST_TT_AUX_REMOVE_PTR_REF_RANK_1_SPEC(T)                                      \
-    BOOST_TT_AUX_REMOVE_PTR_REF_RANK_1_SPEC(T const)                                \
-    BOOST_TT_AUX_REMOVE_PTR_REF_RANK_1_SPEC(T volatile)                             \
-    BOOST_TT_AUX_REMOVE_PTR_REF_RANK_1_SPEC(T const volatile)                       \
+#   define NDNBOOST_TT_AUX_REMOVE_PTR_REF_RANK_2_SPEC(T)                               \
+    NDNBOOST_TT_AUX_REMOVE_PTR_REF_RANK_1_SPEC(T)                                      \
+    NDNBOOST_TT_AUX_REMOVE_PTR_REF_RANK_1_SPEC(T const)                                \
+    NDNBOOST_TT_AUX_REMOVE_PTR_REF_RANK_1_SPEC(T volatile)                             \
+    NDNBOOST_TT_AUX_REMOVE_PTR_REF_RANK_1_SPEC(T const volatile)                       \
     /**/
 
-#   define BOOST_TT_AUX_REMOVE_ALL_RANK_1_SPEC(T)                                   \
-    BOOST_TT_AUX_REMOVE_PTR_REF_RANK_2_SPEC(T)                                      \
-    BOOST_TT_AUX_REMOVE_CONST_VOLATILE_RANK1_SPEC(T)                                \
+#   define NDNBOOST_TT_AUX_REMOVE_ALL_RANK_1_SPEC(T)                                   \
+    NDNBOOST_TT_AUX_REMOVE_PTR_REF_RANK_2_SPEC(T)                                      \
+    NDNBOOST_TT_AUX_REMOVE_CONST_VOLATILE_RANK1_SPEC(T)                                \
     /**/
 
-#   define BOOST_TT_AUX_REMOVE_ALL_RANK_2_SPEC(T)                                   \
-    BOOST_TT_AUX_REMOVE_ALL_RANK_1_SPEC(T*)                                         \
-    BOOST_TT_AUX_REMOVE_ALL_RANK_1_SPEC(T const*)                                   \
-    BOOST_TT_AUX_REMOVE_ALL_RANK_1_SPEC(T volatile*)                                \
-    BOOST_TT_AUX_REMOVE_ALL_RANK_1_SPEC(T const volatile*)                          \
+#   define NDNBOOST_TT_AUX_REMOVE_ALL_RANK_2_SPEC(T)                                   \
+    NDNBOOST_TT_AUX_REMOVE_ALL_RANK_1_SPEC(T*)                                         \
+    NDNBOOST_TT_AUX_REMOVE_ALL_RANK_1_SPEC(T const*)                                   \
+    NDNBOOST_TT_AUX_REMOVE_ALL_RANK_1_SPEC(T volatile*)                                \
+    NDNBOOST_TT_AUX_REMOVE_ALL_RANK_1_SPEC(T const volatile*)                          \
     /**/
 
-#   define BOOST_TT_BROKEN_COMPILER_SPEC(T)                                         \
+#   define NDNBOOST_TT_BROKEN_COMPILER_SPEC(T)                                         \
     namespace ndnboost { namespace detail {                                            \
-    typedef invoke_BOOST_TT_BROKEN_COMPILER_SPEC_outside_all_namespaces             \
-      please_invoke_BOOST_TT_BROKEN_COMPILER_SPEC_outside_all_namespaces;           \
-    BOOST_TT_AUX_REMOVE_ALL_RANK_1_SPEC(T)                                          \
-    BOOST_TT_AUX_REMOVE_ALL_RANK_2_SPEC(T)                                          \
-    BOOST_TT_AUX_REMOVE_ALL_RANK_2_SPEC(T*)                                         \
-    BOOST_TT_AUX_REMOVE_ALL_RANK_2_SPEC(T const*)                                   \
-    BOOST_TT_AUX_REMOVE_ALL_RANK_2_SPEC(T volatile*)                                \
-    BOOST_TT_AUX_REMOVE_ALL_RANK_2_SPEC(T const volatile*)                          \
+    typedef invoke_NDNBOOST_TT_BROKEN_COMPILER_SPEC_outside_all_namespaces             \
+      please_invoke_NDNBOOST_TT_BROKEN_COMPILER_SPEC_outside_all_namespaces;           \
+    NDNBOOST_TT_AUX_REMOVE_ALL_RANK_1_SPEC(T)                                          \
+    NDNBOOST_TT_AUX_REMOVE_ALL_RANK_2_SPEC(T)                                          \
+    NDNBOOST_TT_AUX_REMOVE_ALL_RANK_2_SPEC(T*)                                         \
+    NDNBOOST_TT_AUX_REMOVE_ALL_RANK_2_SPEC(T const*)                                   \
+    NDNBOOST_TT_AUX_REMOVE_ALL_RANK_2_SPEC(T volatile*)                                \
+    NDNBOOST_TT_AUX_REMOVE_ALL_RANK_2_SPEC(T const volatile*)                          \
     }}                                                                              \
     /**/
 
 #   include <ndnboost/type_traits/detail/type_trait_undef.hpp>
 
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
-BOOST_TT_BROKEN_COMPILER_SPEC(bool)
-BOOST_TT_BROKEN_COMPILER_SPEC(char)
-#ifndef BOOST_NO_INTRINSIC_WCHAR_T
-BOOST_TT_BROKEN_COMPILER_SPEC(wchar_t)
+NDNBOOST_TT_BROKEN_COMPILER_SPEC(bool)
+NDNBOOST_TT_BROKEN_COMPILER_SPEC(char)
+#ifndef NDNBOOST_NO_INTRINSIC_WCHAR_T
+NDNBOOST_TT_BROKEN_COMPILER_SPEC(wchar_t)
 #endif
-BOOST_TT_BROKEN_COMPILER_SPEC(signed char)
-BOOST_TT_BROKEN_COMPILER_SPEC(unsigned char)
-BOOST_TT_BROKEN_COMPILER_SPEC(signed short)
-BOOST_TT_BROKEN_COMPILER_SPEC(unsigned short)
-BOOST_TT_BROKEN_COMPILER_SPEC(signed int)
-BOOST_TT_BROKEN_COMPILER_SPEC(unsigned int)
-BOOST_TT_BROKEN_COMPILER_SPEC(signed long)
-BOOST_TT_BROKEN_COMPILER_SPEC(unsigned long)
-BOOST_TT_BROKEN_COMPILER_SPEC(float)
-BOOST_TT_BROKEN_COMPILER_SPEC(double)
-//BOOST_TT_BROKEN_COMPILER_SPEC(long double)
+NDNBOOST_TT_BROKEN_COMPILER_SPEC(signed char)
+NDNBOOST_TT_BROKEN_COMPILER_SPEC(unsigned char)
+NDNBOOST_TT_BROKEN_COMPILER_SPEC(signed short)
+NDNBOOST_TT_BROKEN_COMPILER_SPEC(unsigned short)
+NDNBOOST_TT_BROKEN_COMPILER_SPEC(signed int)
+NDNBOOST_TT_BROKEN_COMPILER_SPEC(unsigned int)
+NDNBOOST_TT_BROKEN_COMPILER_SPEC(signed long)
+NDNBOOST_TT_BROKEN_COMPILER_SPEC(unsigned long)
+NDNBOOST_TT_BROKEN_COMPILER_SPEC(float)
+NDNBOOST_TT_BROKEN_COMPILER_SPEC(double)
+//NDNBOOST_TT_BROKEN_COMPILER_SPEC(long double)
 
 // for backward compatibility
-#define BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(T) \
-    BOOST_TT_BROKEN_COMPILER_SPEC(T) \
+#define NDNBOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(T) \
+    NDNBOOST_TT_BROKEN_COMPILER_SPEC(T) \
 /**/
 
-#endif // BOOST_TT_BROKEN_COMPILER_SPEC_HPP_INCLUDED
+#endif // NDNBOOST_TT_BROKEN_COMPILER_SPEC_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/common_type.hpp b/include/ndnboost/type_traits/common_type.hpp
index 0981526..c72c34e 100644
--- a/include/ndnboost/type_traits/common_type.hpp
+++ b/include/ndnboost/type_traits/common_type.hpp
@@ -6,46 +6,46 @@
 //  Distributed under the Boost Software License, Version 1.0.
 //  See http://www.boost.org/LICENSE_1_0.txt
 
-#ifndef BOOST_TYPE_TRAITS_COMMON_TYPE_HPP
-#define BOOST_TYPE_TRAITS_COMMON_TYPE_HPP
+#ifndef NDNBOOST_TYPE_TRAITS_COMMON_TYPE_HPP
+#define NDNBOOST_TYPE_TRAITS_COMMON_TYPE_HPP
 
 #include <ndnboost/config.hpp>
 
-#if defined(__SUNPRO_CC) && !defined(BOOST_COMMON_TYPE_DONT_USE_TYPEOF)
-#  define BOOST_COMMON_TYPE_DONT_USE_TYPEOF
+#if defined(__SUNPRO_CC) && !defined(NDNBOOST_COMMON_TYPE_DONT_USE_TYPEOF)
+#  define NDNBOOST_COMMON_TYPE_DONT_USE_TYPEOF
 #endif
-#if defined(__IBMCPP__) && !defined(BOOST_COMMON_TYPE_DONT_USE_TYPEOF)
-#  define BOOST_COMMON_TYPE_DONT_USE_TYPEOF
+#if defined(__IBMCPP__) && !defined(NDNBOOST_COMMON_TYPE_DONT_USE_TYPEOF)
+#  define NDNBOOST_COMMON_TYPE_DONT_USE_TYPEOF
 #endif
 
 //----------------------------------------------------------------------------//
-#if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_COMMON_TYPE_ARITY)
-#define BOOST_COMMON_TYPE_ARITY 3
+#if defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(NDNBOOST_COMMON_TYPE_ARITY)
+#define NDNBOOST_COMMON_TYPE_ARITY 3
 #endif
 
 //----------------------------------------------------------------------------//
-#if defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_COMMON_TYPE_DONT_USE_TYPEOF)
+#if defined(NDNBOOST_NO_CXX11_DECLTYPE) && !defined(NDNBOOST_COMMON_TYPE_DONT_USE_TYPEOF)
 #include <ndnboost/typeof/typeof.hpp>   // boost wonders never cease!
 #endif
 
 //----------------------------------------------------------------------------//
-#ifndef BOOST_NO_CXX11_STATIC_ASSERT
-#define BOOST_COMMON_TYPE_STATIC_ASSERT(CND, MSG, TYPES) static_assert(CND,MSG)
-#elif defined(BOOST_COMMON_TYPE_USES_MPL_ASSERT)
+#ifndef NDNBOOST_NO_CXX11_STATIC_ASSERT
+#define NDNBOOST_COMMON_TYPE_STATIC_ASSERT(CND, MSG, TYPES) static_assert(CND,MSG)
+#elif defined(NDNBOOST_COMMON_TYPE_USES_MPL_ASSERT)
 #include <ndnboost/mpl/assert.hpp>
 #include <ndnboost/mpl/bool.hpp>
-#define BOOST_COMMON_TYPE_STATIC_ASSERT(CND, MSG, TYPES)                                 \
-    BOOST_MPL_ASSERT_MSG(ndnboost::mpl::bool_< (CND) >::type::value, MSG, TYPES)
+#define NDNBOOST_COMMON_TYPE_STATIC_ASSERT(CND, MSG, TYPES)                                 \
+    NDNBOOST_MPL_ASSERT_MSG(ndnboost::mpl::bool_< (CND) >::type::value, MSG, TYPES)
 #else
 #include <ndnboost/static_assert.hpp>
-#define BOOST_COMMON_TYPE_STATIC_ASSERT(CND, MSG, TYPES) BOOST_STATIC_ASSERT(CND)
+#define NDNBOOST_COMMON_TYPE_STATIC_ASSERT(CND, MSG, TYPES) NDNBOOST_STATIC_ASSERT(CND)
 #endif
 
-#if !defined(BOOST_NO_CXX11_STATIC_ASSERT) || !defined(BOOST_COMMON_TYPE_USES_MPL_ASSERT)
-#define BOOST_COMMON_TYPE_MUST_BE_A_COMPLE_TYPE "must be complete type"
+#if !defined(NDNBOOST_NO_CXX11_STATIC_ASSERT) || !defined(NDNBOOST_COMMON_TYPE_USES_MPL_ASSERT)
+#define NDNBOOST_COMMON_TYPE_MUST_BE_A_COMPLE_TYPE "must be complete type"
 #endif
 
-#if defined(BOOST_NO_CXX11_DECLTYPE) && defined(BOOST_COMMON_TYPE_DONT_USE_TYPEOF)
+#if defined(NDNBOOST_NO_CXX11_DECLTYPE) && defined(NDNBOOST_COMMON_TYPE_DONT_USE_TYPEOF)
 #include <ndnboost/type_traits/detail/common_type_imp.hpp>
 #include <ndnboost/type_traits/remove_cv.hpp>
 #endif
@@ -65,7 +65,7 @@
 namespace ndnboost {
 
 // prototype
-#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
+#if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
     template<typename... T>
     struct common_type;
 #else // or no specialization
@@ -80,14 +80,14 @@
 
 // 1 arg
     template<typename T>
-#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
+#if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
     struct common_type<T>
 #else
     struct common_type<T, void, void>
 
 #endif
     {
-        BOOST_COMMON_TYPE_STATIC_ASSERT(sizeof(T) > 0, BOOST_COMMON_TYPE_MUST_BE_A_COMPLE_TYPE, (T));
+        NDNBOOST_COMMON_TYPE_STATIC_ASSERT(sizeof(T) > 0, NDNBOOST_COMMON_TYPE_MUST_BE_A_COMPLE_TYPE, (T));
     public:
         typedef T type;
     };
@@ -99,17 +99,17 @@
     struct common_type_2
     {
     private:
-        BOOST_COMMON_TYPE_STATIC_ASSERT(sizeof(T) > 0, BOOST_COMMON_TYPE_MUST_BE_A_COMPLE_TYPE, (T));
-        BOOST_COMMON_TYPE_STATIC_ASSERT(sizeof(U) > 0, BOOST_COMMON_TYPE_MUST_BE_A_COMPLE_TYPE, (U));
+        NDNBOOST_COMMON_TYPE_STATIC_ASSERT(sizeof(T) > 0, NDNBOOST_COMMON_TYPE_MUST_BE_A_COMPLE_TYPE, (T));
+        NDNBOOST_COMMON_TYPE_STATIC_ASSERT(sizeof(U) > 0, NDNBOOST_COMMON_TYPE_MUST_BE_A_COMPLE_TYPE, (U));
         static bool declval_bool();  // workaround gcc bug; not required by std
         static typename add_rvalue_reference<T>::type declval_T();  // workaround gcc bug; not required by std
         static typename add_rvalue_reference<U>::type declval_U();  // workaround gcc bug; not required by std
         static typename add_rvalue_reference<bool>::type declval_b();  
 
-#if !defined(BOOST_NO_CXX11_DECLTYPE)
+#if !defined(NDNBOOST_NO_CXX11_DECLTYPE)
     public:
         typedef decltype(declval<bool>() ? declval<T>() : declval<U>()) type;
-#elif defined(BOOST_COMMON_TYPE_DONT_USE_TYPEOF)
+#elif defined(NDNBOOST_COMMON_TYPE_DONT_USE_TYPEOF)
     public:
     typedef typename detail_type_traits_common_type::common_type_impl<
           typename remove_cv<T>::type,
@@ -117,7 +117,7 @@
       >::type type;
 #else
     public:
-        typedef BOOST_TYPEOF_TPL(declval_b() ? declval_T() : declval_U()) type;
+        typedef NDNBOOST_TYPEOF_TPL(declval_b() ? declval_T() : declval_U()) type;
 #endif
 
 #if defined(__GNUC__) && __GNUC__ == 3 && (__GNUC_MINOR__ == 2 || __GNUC_MINOR__ == 3)
@@ -133,7 +133,7 @@
     };
     }
 
-#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
+#if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
     template <class T, class U>
     struct common_type<T, U>
 #else
@@ -145,7 +145,7 @@
 
 
 // 3 or more args
-#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
+#if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
     template<typename T, typename U, typename... V>
     struct common_type<T, U, V...> {
     public:
@@ -154,4 +154,4 @@
 #endif
 }  // namespace ndnboost
 
-#endif  // BOOST_TYPE_TRAITS_COMMON_TYPE_HPP
+#endif  // NDNBOOST_TYPE_TRAITS_COMMON_TYPE_HPP
diff --git a/include/ndnboost/type_traits/composite_traits.hpp b/include/ndnboost/type_traits/composite_traits.hpp
index 6be9467..0c5b5e8 100644
--- a/include/ndnboost/type_traits/composite_traits.hpp
+++ b/include/ndnboost/type_traits/composite_traits.hpp
@@ -10,8 +10,8 @@
 //  is_array, is_pointer, is_reference, is_member_pointer, is_enum, is_union.
 //
 
-#ifndef BOOST_TT_COMPOSITE_TRAITS_HPP_INCLUDED
-#define BOOST_TT_COMPOSITE_TRAITS_HPP_INCLUDED
+#ifndef NDNBOOST_TT_COMPOSITE_TRAITS_HPP_INCLUDED
+#define NDNBOOST_TT_COMPOSITE_TRAITS_HPP_INCLUDED
 
 #include <ndnboost/type_traits/is_array.hpp>
 #include <ndnboost/type_traits/is_enum.hpp>
@@ -21,7 +21,7 @@
 #include <ndnboost/type_traits/is_reference.hpp>
 #include <ndnboost/type_traits/is_union.hpp>
 
-#endif // BOOST_TT_COMPOSITE_TRAITS_HPP_INCLUDED
+#endif // NDNBOOST_TT_COMPOSITE_TRAITS_HPP_INCLUDED
 
 
 
diff --git a/include/ndnboost/type_traits/conditional.hpp b/include/ndnboost/type_traits/conditional.hpp
index 6d2f45c..91a9ce0 100644
--- a/include/ndnboost/type_traits/conditional.hpp
+++ b/include/ndnboost/type_traits/conditional.hpp
@@ -7,8 +7,8 @@
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
 
-#ifndef BOOST_TT_CONDITIONAL_HPP_INCLUDED
-#define BOOST_TT_CONDITIONAL_HPP_INCLUDED
+#ifndef NDNBOOST_TT_CONDITIONAL_HPP_INCLUDED
+#define NDNBOOST_TT_CONDITIONAL_HPP_INCLUDED
 
 #include <ndnboost/mpl/if.hpp>
 
@@ -22,4 +22,4 @@
 } // namespace ndnboost
 
 
-#endif // BOOST_TT_CONDITIONAL_HPP_INCLUDED
+#endif // NDNBOOST_TT_CONDITIONAL_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/config.hpp b/include/ndnboost/type_traits/config.hpp
index 05fc352..8effeec 100644
--- a/include/ndnboost/type_traits/config.hpp
+++ b/include/ndnboost/type_traits/config.hpp
@@ -6,10 +6,10 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_CONFIG_HPP_INCLUDED
-#define BOOST_TT_CONFIG_HPP_INCLUDED
+#ifndef NDNBOOST_TT_CONFIG_HPP_INCLUDED
+#define NDNBOOST_TT_CONFIG_HPP_INCLUDED
 
-#ifndef BOOST_CONFIG_HPP
+#ifndef NDNBOOST_CONFIG_HPP
 #include <ndnboost/config.hpp>
 #endif
 
@@ -20,57 +20,57 @@
 // it needs to be declared __cdecl to suppress compiler
 // warnings from MS and Borland compilers (this *must*
 // appear before we include is_same.hpp below):
-#if defined(BOOST_MSVC) || (defined(__BORLANDC__) && !defined(BOOST_DISABLE_WIN32))
-#   define BOOST_TT_DECL __cdecl
+#if defined(NDNBOOST_MSVC) || (defined(__BORLANDC__) && !defined(NDNBOOST_DISABLE_WIN32))
+#   define NDNBOOST_TT_DECL __cdecl
 #else
-#   define BOOST_TT_DECL /**/
+#   define NDNBOOST_TT_DECL /**/
 #endif
 
-# if (BOOST_WORKAROUND(__MWERKS__, < 0x3000)                         \
-    || BOOST_WORKAROUND(BOOST_MSVC, <= 1301)                        \
-    || !defined(__EDG_VERSION__) && BOOST_WORKAROUND(__GNUC__, < 3) \
-    || BOOST_WORKAROUND(__IBMCPP__, < 600 )                         \
-    || BOOST_WORKAROUND(__BORLANDC__, < 0x5A0)                      \
+# if (NDNBOOST_WORKAROUND(__MWERKS__, < 0x3000)                         \
+    || NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1301)                        \
+    || !defined(__EDG_VERSION__) && NDNBOOST_WORKAROUND(__GNUC__, < 3) \
+    || NDNBOOST_WORKAROUND(__IBMCPP__, < 600 )                         \
+    || NDNBOOST_WORKAROUND(__BORLANDC__, < 0x5A0)                      \
     || defined(__ghs)                                               \
-    || BOOST_WORKAROUND(__HP_aCC, < 60700)           \
-    || BOOST_WORKAROUND(MPW_CPLUS, BOOST_TESTED_AT(0x890))          \
-    || BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x580)))       \
-    && defined(BOOST_NO_IS_ABSTRACT)
+    || NDNBOOST_WORKAROUND(__HP_aCC, < 60700)           \
+    || NDNBOOST_WORKAROUND(MPW_CPLUS, NDNBOOST_TESTED_AT(0x890))          \
+    || NDNBOOST_WORKAROUND(__SUNPRO_CC, NDNBOOST_TESTED_AT(0x580)))       \
+    && defined(NDNBOOST_NO_IS_ABSTRACT)
 
-#   define BOOST_TT_NO_CONFORMING_IS_CLASS_IMPLEMENTATION 1
+#   define NDNBOOST_TT_NO_CONFORMING_IS_CLASS_IMPLEMENTATION 1
 
 #endif
 
-#ifndef BOOST_TT_NO_CONFORMING_IS_CLASS_IMPLEMENTATION
-# define BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION 1
+#ifndef NDNBOOST_TT_NO_CONFORMING_IS_CLASS_IMPLEMENTATION
+# define NDNBOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION 1
 #endif
 
 //
-// Define BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING 
+// Define NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING 
 // when we can't test for function types with elipsis:
 //
-#if BOOST_WORKAROUND(__GNUC__, < 3)
-#  define BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#if NDNBOOST_WORKAROUND(__GNUC__, < 3)
+#  define NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 #endif
 
 //
-// define BOOST_TT_TEST_MS_FUNC_SIGS
+// define NDNBOOST_TT_TEST_MS_FUNC_SIGS
 // when we want to test __stdcall etc function types with is_function etc
 // (Note, does not work with Borland, even though it does support __stdcall etc):
 //
 #if defined(_MSC_EXTENSIONS) && !defined(__BORLANDC__)
-#  define BOOST_TT_TEST_MS_FUNC_SIGS
+#  define NDNBOOST_TT_TEST_MS_FUNC_SIGS
 #endif
 
 //
-// define BOOST_TT_NO_CV_FUNC_TEST
+// define NDNBOOST_TT_NO_CV_FUNC_TEST
 // if tests for cv-qualified member functions don't 
 // work in is_member_function_pointer
 //
-#if BOOST_WORKAROUND(__MWERKS__, < 0x3000) || BOOST_WORKAROUND(__IBMCPP__, <= 600)
-#  define BOOST_TT_NO_CV_FUNC_TEST
+#if NDNBOOST_WORKAROUND(__MWERKS__, < 0x3000) || NDNBOOST_WORKAROUND(__IBMCPP__, <= 600)
+#  define NDNBOOST_TT_NO_CV_FUNC_TEST
 #endif
 
-#endif // BOOST_TT_CONFIG_HPP_INCLUDED
+#endif // NDNBOOST_TT_CONFIG_HPP_INCLUDED
 
 
diff --git a/include/ndnboost/type_traits/conversion_traits.hpp b/include/ndnboost/type_traits/conversion_traits.hpp
index 589c617..d3bb165 100644
--- a/include/ndnboost/type_traits/conversion_traits.hpp
+++ b/include/ndnboost/type_traits/conversion_traits.hpp
@@ -9,9 +9,9 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_CONVERSION_TRAITS_HPP_INCLUDED
-#define BOOST_TT_CONVERSION_TRAITS_HPP_INCLUDED
+#ifndef NDNBOOST_TT_CONVERSION_TRAITS_HPP_INCLUDED
+#define NDNBOOST_TT_CONVERSION_TRAITS_HPP_INCLUDED
 
 #include <ndnboost/type_traits/is_convertible.hpp>
 
-#endif // BOOST_TT_CONVERSION_TRAITS_HPP_INCLUDED
+#endif // NDNBOOST_TT_CONVERSION_TRAITS_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/cv_traits.hpp b/include/ndnboost/type_traits/cv_traits.hpp
index f6840b8..1fba149 100644
--- a/include/ndnboost/type_traits/cv_traits.hpp
+++ b/include/ndnboost/type_traits/cv_traits.hpp
@@ -9,8 +9,8 @@
 //  defines traits classes for cv-qualified types:
 //  is_const, is_volatile, remove_const, remove_volatile, remove_cv.
 
-#ifndef BOOST_TT_CV_TRAITS_HPP_INCLUDED
-#define BOOST_TT_CV_TRAITS_HPP_INCLUDED
+#ifndef NDNBOOST_TT_CV_TRAITS_HPP_INCLUDED
+#define NDNBOOST_TT_CV_TRAITS_HPP_INCLUDED
 
 #include <ndnboost/type_traits/add_const.hpp>
 #include <ndnboost/type_traits/add_volatile.hpp>
@@ -21,4 +21,4 @@
 #include <ndnboost/type_traits/remove_volatile.hpp>
 #include <ndnboost/type_traits/remove_cv.hpp>
 
-#endif // BOOST_TT_CV_TRAITS_HPP_INCLUDED
+#endif // NDNBOOST_TT_CV_TRAITS_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/decay.hpp b/include/ndnboost/type_traits/decay.hpp
index 442367e..7e736dc 100644
--- a/include/ndnboost/type_traits/decay.hpp
+++ b/include/ndnboost/type_traits/decay.hpp
@@ -6,8 +6,8 @@
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
 
-#ifndef BOOST_TT_DECAY_HPP_INCLUDED
-#define BOOST_TT_DECAY_HPP_INCLUDED
+#ifndef NDNBOOST_TT_DECAY_HPP_INCLUDED
+#define NDNBOOST_TT_DECAY_HPP_INCLUDED
 
 #include <ndnboost/type_traits/config.hpp>
 #include <ndnboost/type_traits/is_array.hpp>
@@ -25,12 +25,12 @@
     struct decay
     {
     private:
-        typedef BOOST_DEDUCED_TYPENAME remove_reference<T>::type Ty;
+        typedef NDNBOOST_DEDUCED_TYPENAME remove_reference<T>::type Ty;
     public:
-        typedef BOOST_DEDUCED_TYPENAME mpl::eval_if< 
+        typedef NDNBOOST_DEDUCED_TYPENAME mpl::eval_if< 
             is_array<Ty>,
-            mpl::identity<BOOST_DEDUCED_TYPENAME remove_bounds<Ty>::type*>,
-            BOOST_DEDUCED_TYPENAME mpl::eval_if< 
+            mpl::identity<NDNBOOST_DEDUCED_TYPENAME remove_bounds<Ty>::type*>,
+            NDNBOOST_DEDUCED_TYPENAME mpl::eval_if< 
                 is_function<Ty>,
                 add_pointer<Ty>,
                 mpl::identity<Ty>
@@ -41,4 +41,4 @@
 } // namespace ndnboost
 
 
-#endif // BOOST_TT_DECAY_HPP_INCLUDED
+#endif // NDNBOOST_TT_DECAY_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/detail/bool_trait_def.hpp b/include/ndnboost/type_traits/detail/bool_trait_def.hpp
index a80e999..568847e 100644
--- a/include/ndnboost/type_traits/detail/bool_trait_def.hpp
+++ b/include/ndnboost/type_traits/detail/bool_trait_def.hpp
@@ -22,175 +22,175 @@
 // cleaning up afterwards: so we'd better undef the macros just in case 
 // they've been defined already....
 //
-#ifdef BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL
-#undef BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL
-#undef BOOST_TT_AUX_BOOL_C_BASE
-#undef BOOST_TT_AUX_BOOL_TRAIT_DEF1
-#undef BOOST_TT_AUX_BOOL_TRAIT_DEF2
-#undef BOOST_TT_AUX_BOOL_TRAIT_SPEC1
-#undef BOOST_TT_AUX_BOOL_TRAIT_SPEC2
-#undef BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1
-#undef BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2
-#undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1
-#undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2
-#undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_1
-#undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2
-#undef BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1
-#undef BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1
+#ifdef NDNBOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL
+#undef NDNBOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL
+#undef NDNBOOST_TT_AUX_BOOL_C_BASE
+#undef NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1
+#undef NDNBOOST_TT_AUX_BOOL_TRAIT_DEF2
+#undef NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1
+#undef NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC2
+#undef NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1
+#undef NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2
+#undef NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1
+#undef NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2
+#undef NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_1
+#undef NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2
+#undef NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1
+#undef NDNBOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1
 #endif
 
 #if defined(__SUNPRO_CC) && (__SUNPRO_CC < 0x570)
-#   define BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
+#   define NDNBOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
     typedef ::ndnboost::integral_constant<bool,C> type; \
     enum { value = type::value }; \
     /**/
-#   define BOOST_TT_AUX_BOOL_C_BASE(C)
+#   define NDNBOOST_TT_AUX_BOOL_C_BASE(C)
 
-#elif defined(BOOST_MSVC) && BOOST_MSVC < 1300
+#elif defined(NDNBOOST_MSVC) && NDNBOOST_MSVC < 1300
 
-#   define BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
+#   define NDNBOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
     typedef ::ndnboost::integral_constant<bool,C> base_; \
     using base_::value; \
     /**/
 
 #endif
 
-#ifndef BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL
-#   define BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) /**/
+#ifndef NDNBOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL
+#   define NDNBOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) /**/
 #endif
 
-#ifndef BOOST_TT_AUX_BOOL_C_BASE
-#   define BOOST_TT_AUX_BOOL_C_BASE(C) : public ::ndnboost::integral_constant<bool,C>
+#ifndef NDNBOOST_TT_AUX_BOOL_C_BASE
+#   define NDNBOOST_TT_AUX_BOOL_C_BASE(C) : public ::ndnboost::integral_constant<bool,C>
 #endif 
 
 
-#define BOOST_TT_AUX_BOOL_TRAIT_DEF1(trait,T,C) \
+#define NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(trait,T,C) \
 template< typename T > struct trait \
-    BOOST_TT_AUX_BOOL_C_BASE(C) \
+    NDNBOOST_TT_AUX_BOOL_C_BASE(C) \
 { \
 public:\
-    BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,trait,(T)) \
+    NDNBOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,trait,(T)) \
 }; \
 \
-BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1,trait) \
+NDNBOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1,trait) \
 /**/
 
 
-#define BOOST_TT_AUX_BOOL_TRAIT_DEF2(trait,T1,T2,C) \
+#define NDNBOOST_TT_AUX_BOOL_TRAIT_DEF2(trait,T1,T2,C) \
 template< typename T1, typename T2 > struct trait \
-    BOOST_TT_AUX_BOOL_C_BASE(C) \
+    NDNBOOST_TT_AUX_BOOL_C_BASE(C) \
 { \
 public:\
-    BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2,trait,(T1,T2)) \
+    NDNBOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2,trait,(T1,T2)) \
 }; \
 \
-BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,trait) \
+NDNBOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,trait) \
 /**/
 
-#define BOOST_TT_AUX_BOOL_TRAIT_DEF3(trait,T1,T2,T3,C) \
+#define NDNBOOST_TT_AUX_BOOL_TRAIT_DEF3(trait,T1,T2,T3,C) \
 template< typename T1, typename T2, typename T3 > struct trait \
-    BOOST_TT_AUX_BOOL_C_BASE(C) \
+    NDNBOOST_TT_AUX_BOOL_C_BASE(C) \
 { \
 public:\
-    BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(3,trait,(T1,T2,T3)) \
+    NDNBOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(3,trait,(T1,T2,T3)) \
 }; \
 \
-BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(3,trait) \
+NDNBOOST_TT_AUX_TEMPLATE_ARITY_SPEC(3,trait) \
 /**/
 
-#define BOOST_TT_AUX_BOOL_TRAIT_SPEC1(trait,sp,C) \
+#define NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(trait,sp,C) \
 template<> struct trait< sp > \
-    BOOST_TT_AUX_BOOL_C_BASE(C) \
+    NDNBOOST_TT_AUX_BOOL_C_BASE(C) \
 { \
 public:\
-    BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(1,trait,(sp)) \
+    NDNBOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(1,trait,(sp)) \
 }; \
 /**/
 
-#define BOOST_TT_AUX_BOOL_TRAIT_SPEC2(trait,sp1,sp2,C) \
+#define NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC2(trait,sp1,sp2,C) \
 template<> struct trait< sp1,sp2 > \
-    BOOST_TT_AUX_BOOL_C_BASE(C) \
+    NDNBOOST_TT_AUX_BOOL_C_BASE(C) \
 { \
 public:\
-    BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2,trait,(sp1,sp2)) \
+    NDNBOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2,trait,(sp1,sp2)) \
 }; \
 /**/
 
-#define BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(trait,sp,C) \
+#define NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(trait,sp,C) \
 template<> struct trait##_impl< sp > \
 { \
 public:\
-    BOOST_STATIC_CONSTANT(bool, value = (C)); \
+    NDNBOOST_STATIC_CONSTANT(bool, value = (C)); \
 }; \
 /**/
 
-#define BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2(trait,sp1,sp2,C) \
+#define NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2(trait,sp1,sp2,C) \
 template<> struct trait##_impl< sp1,sp2 > \
 { \
 public:\
-    BOOST_STATIC_CONSTANT(bool, value = (C)); \
+    NDNBOOST_STATIC_CONSTANT(bool, value = (C)); \
 }; \
 /**/
 
-#define BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(param,trait,sp,C) \
+#define NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(param,trait,sp,C) \
 template< param > struct trait< sp > \
-    BOOST_TT_AUX_BOOL_C_BASE(C) \
+    NDNBOOST_TT_AUX_BOOL_C_BASE(C) \
 { \
 public:\
-    BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
+    NDNBOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
 }; \
 /**/
 
-#define BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(param1,param2,trait,sp,C) \
+#define NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(param1,param2,trait,sp,C) \
 template< param1, param2 > struct trait< sp > \
-    BOOST_TT_AUX_BOOL_C_BASE(C) \
+    NDNBOOST_TT_AUX_BOOL_C_BASE(C) \
 { \
 public:\
-    BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
+    NDNBOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
 }; \
 /**/
 
-#define BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_1(param,trait,sp1,sp2,C) \
+#define NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_1(param,trait,sp1,sp2,C) \
 template< param > struct trait< sp1,sp2 > \
-    BOOST_TT_AUX_BOOL_C_BASE(C) \
+    NDNBOOST_TT_AUX_BOOL_C_BASE(C) \
 { \
 public:\
-    BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2,trait,(sp1,sp2)) \
+    NDNBOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2,trait,(sp1,sp2)) \
 }; \
 /**/
 
-#define BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(param1,param2,trait,sp1,sp2,C) \
+#define NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(param1,param2,trait,sp1,sp2,C) \
 template< param1, param2 > struct trait< sp1,sp2 > \
-    BOOST_TT_AUX_BOOL_C_BASE(C) \
+    NDNBOOST_TT_AUX_BOOL_C_BASE(C) \
 { \
 public:\
-    BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
+    NDNBOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
 }; \
 /**/
 
-#define BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(param,trait,sp1,sp2,C) \
+#define NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(param,trait,sp1,sp2,C) \
 template< param > struct trait##_impl< sp1,sp2 > \
 { \
 public:\
-    BOOST_STATIC_CONSTANT(bool, value = (C)); \
+    NDNBOOST_STATIC_CONSTANT(bool, value = (C)); \
 }; \
 /**/
 
-#ifndef BOOST_NO_CV_SPECIALIZATIONS
-#   define BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(trait,sp,value) \
-    BOOST_TT_AUX_BOOL_TRAIT_SPEC1(trait,sp,value) \
-    BOOST_TT_AUX_BOOL_TRAIT_SPEC1(trait,sp const,value) \
-    BOOST_TT_AUX_BOOL_TRAIT_SPEC1(trait,sp volatile,value) \
-    BOOST_TT_AUX_BOOL_TRAIT_SPEC1(trait,sp const volatile,value) \
+#ifndef NDNBOOST_NO_CV_SPECIALIZATIONS
+#   define NDNBOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(trait,sp,value) \
+    NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(trait,sp,value) \
+    NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(trait,sp const,value) \
+    NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(trait,sp volatile,value) \
+    NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(trait,sp const volatile,value) \
     /**/
 #else
-#   define BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(trait,sp,value) \
-    BOOST_TT_AUX_BOOL_TRAIT_SPEC1(trait,sp,value) \
+#   define NDNBOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(trait,sp,value) \
+    NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(trait,sp,value) \
     /**/
 #endif
diff --git a/include/ndnboost/type_traits/detail/bool_trait_undef.hpp b/include/ndnboost/type_traits/detail/bool_trait_undef.hpp
index 008febe..24bd220 100644
--- a/include/ndnboost/type_traits/detail/bool_trait_undef.hpp
+++ b/include/ndnboost/type_traits/detail/bool_trait_undef.hpp
@@ -11,18 +11,18 @@
 // $Date: 2011-10-09 15:28:33 -0700 (Sun, 09 Oct 2011) $
 // $Revision: 74865 $
 
-#undef BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL
-#undef BOOST_TT_AUX_BOOL_C_BASE
-#undef BOOST_TT_AUX_BOOL_TRAIT_DEF1
-#undef BOOST_TT_AUX_BOOL_TRAIT_DEF2
-#undef BOOST_TT_AUX_BOOL_TRAIT_DEF3
-#undef BOOST_TT_AUX_BOOL_TRAIT_SPEC1
-#undef BOOST_TT_AUX_BOOL_TRAIT_SPEC2
-#undef BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1
-#undef BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2
-#undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1
-#undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2
-#undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_1
-#undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2
-#undef BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1
-#undef BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1
+#undef NDNBOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL
+#undef NDNBOOST_TT_AUX_BOOL_C_BASE
+#undef NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1
+#undef NDNBOOST_TT_AUX_BOOL_TRAIT_DEF2
+#undef NDNBOOST_TT_AUX_BOOL_TRAIT_DEF3
+#undef NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1
+#undef NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC2
+#undef NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1
+#undef NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2
+#undef NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1
+#undef NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2
+#undef NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_1
+#undef NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2
+#undef NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1
+#undef NDNBOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1
diff --git a/include/ndnboost/type_traits/detail/common_type_imp.hpp b/include/ndnboost/type_traits/detail/common_type_imp.hpp
index 8dd12b4..70dedf9 100644
--- a/include/ndnboost/type_traits/detail/common_type_imp.hpp
+++ b/include/ndnboost/type_traits/detail/common_type_imp.hpp
@@ -16,8 +16,8 @@
  * Note that this evaluates to void if one or both of T and U is void.
  ******************************************************************************/
 
-#ifndef BOOST_TYPE_TRAITS_DETAIL_COMMON_TYPE_IMP_HPP
-#define BOOST_TYPE_TRAITS_DETAIL_COMMON_TYPE_IMP_HPP
+#ifndef NDNBOOST_TYPE_TRAITS_DETAIL_COMMON_TYPE_IMP_HPP
+#define NDNBOOST_TYPE_TRAITS_DETAIL_COMMON_TYPE_IMP_HPP
 
 #include <cstddef>
 
@@ -124,8 +124,8 @@
 template< std::size_t N > struct sizeof_t { char _dummy[N]; };
 typedef sizeof_t<1> yes_type;
 typedef sizeof_t<2> no_type;
-BOOST_MPL_ASSERT_RELATION( sizeof( yes_type ), ==, 1 );
-BOOST_MPL_ASSERT_RELATION( sizeof( no_type ), ==, 2 );
+NDNBOOST_MPL_ASSERT_RELATION( sizeof( yes_type ), ==, 1 );
+NDNBOOST_MPL_ASSERT_RELATION( sizeof( no_type ), ==, 2 );
 
 /*******************************************************************************
  * rvalue_test(T&) -> no_type
@@ -329,5 +329,5 @@
 
 } // namespace ndnboost
 
-#endif // BOOST_TYPE_TRAITS_DETAIL_COMMON_TYPE_HPP
+#endif // NDNBOOST_TYPE_TRAITS_DETAIL_COMMON_TYPE_HPP
 
diff --git a/include/ndnboost/type_traits/detail/cv_traits_impl.hpp b/include/ndnboost/type_traits/detail/cv_traits_impl.hpp
index 5f1dd5e..7574e5b 100644
--- a/include/ndnboost/type_traits/detail/cv_traits_impl.hpp
+++ b/include/ndnboost/type_traits/detail/cv_traits_impl.hpp
@@ -8,18 +8,18 @@
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
 
-#ifndef BOOST_TT_DETAIL_CV_TRAITS_IMPL_HPP_INCLUDED
-#define BOOST_TT_DETAIL_CV_TRAITS_IMPL_HPP_INCLUDED
+#ifndef NDNBOOST_TT_DETAIL_CV_TRAITS_IMPL_HPP_INCLUDED
+#define NDNBOOST_TT_DETAIL_CV_TRAITS_IMPL_HPP_INCLUDED
 
 #include <ndnboost/config.hpp>
 #include <ndnboost/detail/workaround.hpp>
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 // implementation helper:
 
 
-#if !(BOOST_WORKAROUND(__GNUC__,== 3) && BOOST_WORKAROUND(__GNUC_MINOR__, <= 2))
+#if !(NDNBOOST_WORKAROUND(__GNUC__,== 3) && NDNBOOST_WORKAROUND(__GNUC_MINOR__, <= 2))
 namespace ndnboost {
 namespace detail {
 #else
@@ -34,36 +34,36 @@
 template <typename T>
 struct cv_traits_imp<T*>
 {
-    BOOST_STATIC_CONSTANT(bool, is_const = false);
-    BOOST_STATIC_CONSTANT(bool, is_volatile = false);
+    NDNBOOST_STATIC_CONSTANT(bool, is_const = false);
+    NDNBOOST_STATIC_CONSTANT(bool, is_volatile = false);
     typedef T unqualified_type;
 };
 
 template <typename T>
 struct cv_traits_imp<const T*>
 {
-    BOOST_STATIC_CONSTANT(bool, is_const = true);
-    BOOST_STATIC_CONSTANT(bool, is_volatile = false);
+    NDNBOOST_STATIC_CONSTANT(bool, is_const = true);
+    NDNBOOST_STATIC_CONSTANT(bool, is_volatile = false);
     typedef T unqualified_type;
 };
 
 template <typename T>
 struct cv_traits_imp<volatile T*>
 {
-    BOOST_STATIC_CONSTANT(bool, is_const = false);
-    BOOST_STATIC_CONSTANT(bool, is_volatile = true);
+    NDNBOOST_STATIC_CONSTANT(bool, is_const = false);
+    NDNBOOST_STATIC_CONSTANT(bool, is_volatile = true);
     typedef T unqualified_type;
 };
 
 template <typename T>
 struct cv_traits_imp<const volatile T*>
 {
-    BOOST_STATIC_CONSTANT(bool, is_const = true);
-    BOOST_STATIC_CONSTANT(bool, is_volatile = true);
+    NDNBOOST_STATIC_CONSTANT(bool, is_const = true);
+    NDNBOOST_STATIC_CONSTANT(bool, is_volatile = true);
     typedef T unqualified_type;
 };
 
-#if BOOST_WORKAROUND(__GNUC__,== 3) && BOOST_WORKAROUND(__GNUC_MINOR__, <= 2)
+#if NDNBOOST_WORKAROUND(__GNUC__,== 3) && NDNBOOST_WORKAROUND(__GNUC_MINOR__, <= 2)
 // We have to exclude function pointers 
 // (see http://gcc.gnu.org/bugzilla/show_bug.cgi?8503)
 yes_type mini_funcptr_tester(...);
@@ -82,8 +82,8 @@
 // Functions are never cv-qualified
 template <typename T> struct cv_traits_imp<T*,1>
 {
-    BOOST_STATIC_CONSTANT(bool, is_const = false);
-    BOOST_STATIC_CONSTANT(bool, is_volatile = false);
+    NDNBOOST_STATIC_CONSTANT(bool, is_const = false);
+    NDNBOOST_STATIC_CONSTANT(bool, is_volatile = false);
     typedef T unqualified_type;
 };
 
@@ -92,6 +92,6 @@
 } // namespace detail
 } // namespace ndnboost 
 
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
-#endif // BOOST_TT_DETAIL_CV_TRAITS_IMPL_HPP_INCLUDED
+#endif // NDNBOOST_TT_DETAIL_CV_TRAITS_IMPL_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/detail/false_result.hpp b/include/ndnboost/type_traits/detail/false_result.hpp
index d0bd864..d4bc23b 100644
--- a/include/ndnboost/type_traits/detail/false_result.hpp
+++ b/include/ndnboost/type_traits/detail/false_result.hpp
@@ -6,8 +6,8 @@
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
 
-#ifndef BOOST_TT_DETAIL_FALSE_RESULT_HPP_INCLUDED
-#define BOOST_TT_DETAIL_FALSE_RESULT_HPP_INCLUDED
+#ifndef NDNBOOST_TT_DETAIL_FALSE_RESULT_HPP_INCLUDED
+#define NDNBOOST_TT_DETAIL_FALSE_RESULT_HPP_INCLUDED
 
 #include <ndnboost/config.hpp>
 
@@ -19,10 +19,10 @@
 {
     template <typename T> struct result_
     {
-        BOOST_STATIC_CONSTANT(bool, value = false);
+        NDNBOOST_STATIC_CONSTANT(bool, value = false);
     };
 };
 
 }} // namespace ndnboost::type_traits
 
-#endif // BOOST_TT_DETAIL_FALSE_RESULT_HPP_INCLUDED
+#endif // NDNBOOST_TT_DETAIL_FALSE_RESULT_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/detail/has_binary_operator.hpp b/include/ndnboost/type_traits/detail/has_binary_operator.hpp
index a18f00d..c10ef10 100644
--- a/include/ndnboost/type_traits/detail/has_binary_operator.hpp
+++ b/include/ndnboost/type_traits/detail/has_binary_operator.hpp
@@ -38,7 +38,7 @@
 // cannot find another implementation -> declared as system header to suppress these warnings.
 #if defined(__GNUC__) && ((__GNUC__==3 && __GNUC_MINOR__>=1) || (__GNUC__>3))
 #   pragma GCC system_header
-#elif defined(BOOST_MSVC)
+#elif defined(NDNBOOST_MSVC)
 #   pragma warning ( push )
 #   pragma warning ( disable : 4018 4244 4547 4800 4804 4805 4913 )
 #endif
@@ -47,7 +47,7 @@
 namespace detail {
 
 // This namespace ensures that argument-dependent name lookup does not mess things up.
-namespace BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) {
+namespace NDNBOOST_JOIN(NDNBOOST_TT_TRAIT_NAME,_impl) {
 
 // 1. a function to have an instance of type T without requiring T to be default
 // constructible
@@ -56,7 +56,7 @@
 
 // 2. we provide our operator definition for types that do not have one already
 
-// a type returned from operator BOOST_TT_TRAIT_OP when no such operator is
+// a type returned from operator NDNBOOST_TT_TRAIT_OP when no such operator is
 // found in the type's own namespace (our own operator is used) so that we have
 // a means to know that our operator was used
 struct no_operator { };
@@ -66,33 +66,33 @@
 // via argument-dependent name lookup
 struct any { template <class T> any(T const&); };
 
-// when operator BOOST_TT_TRAIT_OP is not available, this one is used
-no_operator operator BOOST_TT_TRAIT_OP (const any&, const any&);
+// when operator NDNBOOST_TT_TRAIT_OP is not available, this one is used
+no_operator operator NDNBOOST_TT_TRAIT_OP (const any&, const any&);
 
 
 // 3. checks if the operator returns void or not
 // conditions: Lhs!=void and Rhs!=void
 
 // we first redefine "operator," so that we have no compilation error if
-// operator BOOST_TT_TRAIT_OP returns void and we can use the return type of
-// (lhs BOOST_TT_TRAIT_OP rhs, returns_void_t()) to deduce if
-// operator BOOST_TT_TRAIT_OP returns void or not:
-// - operator BOOST_TT_TRAIT_OP returns void   -> (lhs BOOST_TT_TRAIT_OP rhs, returns_void_t()) returns returns_void_t
-// - operator BOOST_TT_TRAIT_OP returns !=void -> (lhs BOOST_TT_TRAIT_OP rhs, returns_void_t()) returns int
+// operator NDNBOOST_TT_TRAIT_OP returns void and we can use the return type of
+// (lhs NDNBOOST_TT_TRAIT_OP rhs, returns_void_t()) to deduce if
+// operator NDNBOOST_TT_TRAIT_OP returns void or not:
+// - operator NDNBOOST_TT_TRAIT_OP returns void   -> (lhs NDNBOOST_TT_TRAIT_OP rhs, returns_void_t()) returns returns_void_t
+// - operator NDNBOOST_TT_TRAIT_OP returns !=void -> (lhs NDNBOOST_TT_TRAIT_OP rhs, returns_void_t()) returns int
 struct returns_void_t { };
 template <typename T> int operator,(const T&, returns_void_t);
 template <typename T> int operator,(const volatile T&, returns_void_t);
 
 // this intermediate trait has member value of type bool:
-// - value==true -> operator BOOST_TT_TRAIT_OP returns void
-// - value==false -> operator BOOST_TT_TRAIT_OP does not return void
+// - value==true -> operator NDNBOOST_TT_TRAIT_OP returns void
+// - value==false -> operator NDNBOOST_TT_TRAIT_OP does not return void
 template < typename Lhs, typename Rhs >
 struct operator_returns_void {
    // overloads of function returns_void make the difference
    // yes_type and no_type have different size by construction
    static ::ndnboost::type_traits::yes_type returns_void(returns_void_t);
    static ::ndnboost::type_traits::no_type returns_void(int);
-   BOOST_STATIC_CONSTANT(bool, value = (sizeof(::ndnboost::type_traits::yes_type)==sizeof(returns_void((make<Lhs>() BOOST_TT_TRAIT_OP make<Rhs>(),returns_void_t())))));
+   NDNBOOST_STATIC_CONSTANT(bool, value = (sizeof(::ndnboost::type_traits::yes_type)==sizeof(returns_void((make<Lhs>() NDNBOOST_TT_TRAIT_OP make<Rhs>(),returns_void_t())))));
 };
 
 
@@ -106,27 +106,27 @@
 
 template < typename Lhs, typename Rhs >
 struct operator_returns_Ret < Lhs, Rhs, dont_care, true > {
-   BOOST_STATIC_CONSTANT(bool, value = true);
+   NDNBOOST_STATIC_CONSTANT(bool, value = true);
 };
 
 template < typename Lhs, typename Rhs >
 struct operator_returns_Ret < Lhs, Rhs, dont_care, false > {
-   BOOST_STATIC_CONSTANT(bool, value = true);
+   NDNBOOST_STATIC_CONSTANT(bool, value = true);
 };
 
 template < typename Lhs, typename Rhs >
 struct operator_returns_Ret < Lhs, Rhs, void, true > {
-   BOOST_STATIC_CONSTANT(bool, value = true);
+   NDNBOOST_STATIC_CONSTANT(bool, value = true);
 };
 
 template < typename Lhs, typename Rhs >
 struct operator_returns_Ret < Lhs, Rhs, void, false > {
-   BOOST_STATIC_CONSTANT(bool, value = false);
+   NDNBOOST_STATIC_CONSTANT(bool, value = false);
 };
 
 template < typename Lhs, typename Rhs, typename Ret >
 struct operator_returns_Ret < Lhs, Rhs, Ret, true > {
-   BOOST_STATIC_CONSTANT(bool, value = false);
+   NDNBOOST_STATIC_CONSTANT(bool, value = false);
 };
 
 // otherwise checks if it is convertible to Ret using the sizeof trick
@@ -137,14 +137,14 @@
    static ::ndnboost::type_traits::yes_type is_convertible_to_Ret(Ret); // this version is preferred for types convertible to Ret
    static ::ndnboost::type_traits::no_type is_convertible_to_Ret(...); // this version is used otherwise
 
-   BOOST_STATIC_CONSTANT(bool, value = (sizeof(is_convertible_to_Ret(make<Lhs>() BOOST_TT_TRAIT_OP make<Rhs>()))==sizeof(::ndnboost::type_traits::yes_type)));
+   NDNBOOST_STATIC_CONSTANT(bool, value = (sizeof(is_convertible_to_Ret(make<Lhs>() NDNBOOST_TT_TRAIT_OP make<Rhs>()))==sizeof(::ndnboost::type_traits::yes_type)));
 };
 
 
 // 5. checks for operator existence
 // condition: Lhs!=void and Rhs!=void
 
-// checks if our definition of operator BOOST_TT_TRAIT_OP is used or an other
+// checks if our definition of operator NDNBOOST_TT_TRAIT_OP is used or an other
 // existing one;
 // this is done with redefinition of "operator," that returns no_operator or has_operator
 struct has_operator { };
@@ -155,15 +155,15 @@
    static ::ndnboost::type_traits::yes_type check(has_operator); // this version is preferred when operator exists
    static ::ndnboost::type_traits::no_type check(no_operator); // this version is used otherwise
 
-   BOOST_STATIC_CONSTANT(bool, value = (sizeof(check(((make<Lhs>() BOOST_TT_TRAIT_OP make<Rhs>()),make<has_operator>())))==sizeof(::ndnboost::type_traits::yes_type)));
+   NDNBOOST_STATIC_CONSTANT(bool, value = (sizeof(check(((make<Lhs>() NDNBOOST_TT_TRAIT_OP make<Rhs>()),make<has_operator>())))==sizeof(::ndnboost::type_traits::yes_type)));
 };
 
 
 // 6. main trait: to avoid any compilation error, this class behaves
-// differently when operator BOOST_TT_TRAIT_OP(Lhs, Rhs) is forbidden by the
+// differently when operator NDNBOOST_TT_TRAIT_OP(Lhs, Rhs) is forbidden by the
 // standard.
 // Forbidden_if is a bool that is:
-// - true when the operator BOOST_TT_TRAIT_OP(Lhs, Rhs) is forbidden by the standard
+// - true when the operator NDNBOOST_TT_TRAIT_OP(Lhs, Rhs) is forbidden by the standard
 //   (would yield compilation error if used)
 // - false otherwise
 template < typename Lhs, typename Rhs, typename Ret, bool Forbidden_if >
@@ -171,12 +171,12 @@
 
 template < typename Lhs, typename Rhs, typename Ret >
 struct trait_impl1 < Lhs, Rhs, Ret, true > {
-   BOOST_STATIC_CONSTANT(bool, value = false);
+   NDNBOOST_STATIC_CONSTANT(bool, value = false);
 };
 
 template < typename Lhs, typename Rhs, typename Ret >
 struct trait_impl1 < Lhs, Rhs, Ret, false > {
-   BOOST_STATIC_CONSTANT(bool,
+   NDNBOOST_STATIC_CONSTANT(bool,
       value = (
          ::ndnboost::type_traits::ice_and<
             operator_exists < Lhs, Rhs >::value,
@@ -189,17 +189,17 @@
 // some specializations needs to be declared for the special void case
 template < typename Rhs, typename Ret >
 struct trait_impl1 < void, Rhs, Ret, false > {
-   BOOST_STATIC_CONSTANT(bool, value = false);
+   NDNBOOST_STATIC_CONSTANT(bool, value = false);
 };
 
 template < typename Lhs, typename Ret >
 struct trait_impl1 < Lhs, void, Ret, false > {
-   BOOST_STATIC_CONSTANT(bool, value = false);
+   NDNBOOST_STATIC_CONSTANT(bool, value = false);
 };
 
 template < typename Ret >
 struct trait_impl1 < void, void, Ret, false > {
-   BOOST_STATIC_CONSTANT(bool, value = false);
+   NDNBOOST_STATIC_CONSTANT(bool, value = false);
 };
 
 // defines some typedef for convenience
@@ -211,18 +211,18 @@
    typedef typename ::ndnboost::remove_cv<Rhs_noref>::type Rhs_nocv;
    typedef typename ::ndnboost::remove_cv< typename ::ndnboost::remove_reference< typename ::ndnboost::remove_pointer<Lhs_noref>::type >::type >::type Lhs_noptr;
    typedef typename ::ndnboost::remove_cv< typename ::ndnboost::remove_reference< typename ::ndnboost::remove_pointer<Rhs_noref>::type >::type >::type Rhs_noptr;
-   BOOST_STATIC_CONSTANT(bool, value = (trait_impl1 < Lhs_noref, Rhs_noref, Ret, BOOST_TT_FORBIDDEN_IF >::value));
+   NDNBOOST_STATIC_CONSTANT(bool, value = (trait_impl1 < Lhs_noref, Rhs_noref, Ret, NDNBOOST_TT_FORBIDDEN_IF >::value));
 };
 
 } // namespace impl
 } // namespace detail
 
 // this is the accessible definition of the trait to end user
-BOOST_TT_AUX_BOOL_TRAIT_DEF3(BOOST_TT_TRAIT_NAME, Lhs, Rhs=Lhs, Ret=::ndnboost::detail::BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)::dont_care, (::ndnboost::detail::BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)::trait_impl < Lhs, Rhs, Ret >::value))
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF3(NDNBOOST_TT_TRAIT_NAME, Lhs, Rhs=Lhs, Ret=::ndnboost::detail::NDNBOOST_JOIN(NDNBOOST_TT_TRAIT_NAME,_impl)::dont_care, (::ndnboost::detail::NDNBOOST_JOIN(NDNBOOST_TT_TRAIT_NAME,_impl)::trait_impl < Lhs, Rhs, Ret >::value))
 
 } // namespace ndnboost
 
-#if defined(BOOST_MSVC)
+#if defined(NDNBOOST_MSVC)
 #   pragma warning ( pop )
 #endif
 
diff --git a/include/ndnboost/type_traits/detail/has_postfix_operator.hpp b/include/ndnboost/type_traits/detail/has_postfix_operator.hpp
index bdd7f5a..5d23573 100644
--- a/include/ndnboost/type_traits/detail/has_postfix_operator.hpp
+++ b/include/ndnboost/type_traits/detail/has_postfix_operator.hpp
@@ -24,7 +24,7 @@
 // avoid warnings
 #if defined(__GNUC__) && ((__GNUC__==3 && __GNUC_MINOR__>=1) || (__GNUC__>3))
 #   pragma GCC system_header
-#elif defined(BOOST_MSVC)
+#elif defined(NDNBOOST_MSVC)
 #   pragma warning ( push )
 #   pragma warning ( disable : 4244 4913 )
 #endif
@@ -33,7 +33,7 @@
 namespace detail {
 
 // This namespace ensures that argument-dependent name lookup does not mess things up.
-namespace BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) {
+namespace NDNBOOST_JOIN(NDNBOOST_TT_TRAIT_NAME,_impl) {
 
 // 1. a function to have an instance of type T without requiring T to be default
 // constructible
@@ -42,7 +42,7 @@
 
 // 2. we provide our operator definition for types that do not have one already
 
-// a type returned from operator BOOST_TT_TRAIT_OP when no such operator is
+// a type returned from operator NDNBOOST_TT_TRAIT_OP when no such operator is
 // found in the type's own namespace (our own operator is used) so that we have
 // a means to know that our operator was used
 struct no_operator { };
@@ -52,33 +52,33 @@
 // via argument-dependent name lookup
 struct any { template <class T> any(T const&); };
 
-// when operator BOOST_TT_TRAIT_OP is not available, this one is used
-no_operator operator BOOST_TT_TRAIT_OP (const any&, int);
+// when operator NDNBOOST_TT_TRAIT_OP is not available, this one is used
+no_operator operator NDNBOOST_TT_TRAIT_OP (const any&, int);
 
 
 // 3. checks if the operator returns void or not
 // conditions: Lhs!=void
 
 // we first redefine "operator," so that we have no compilation error if
-// operator BOOST_TT_TRAIT_OP returns void and we can use the return type of
-// (lhs BOOST_TT_TRAIT_OP, returns_void_t()) to deduce if
-// operator BOOST_TT_TRAIT_OP returns void or not:
-// - operator BOOST_TT_TRAIT_OP returns void   -> (lhs BOOST_TT_TRAIT_OP, returns_void_t()) returns returns_void_t
-// - operator BOOST_TT_TRAIT_OP returns !=void -> (lhs BOOST_TT_TRAIT_OP, returns_void_t()) returns int
+// operator NDNBOOST_TT_TRAIT_OP returns void and we can use the return type of
+// (lhs NDNBOOST_TT_TRAIT_OP, returns_void_t()) to deduce if
+// operator NDNBOOST_TT_TRAIT_OP returns void or not:
+// - operator NDNBOOST_TT_TRAIT_OP returns void   -> (lhs NDNBOOST_TT_TRAIT_OP, returns_void_t()) returns returns_void_t
+// - operator NDNBOOST_TT_TRAIT_OP returns !=void -> (lhs NDNBOOST_TT_TRAIT_OP, returns_void_t()) returns int
 struct returns_void_t { };
 template <typename T> int operator,(const T&, returns_void_t);
 template <typename T> int operator,(const volatile T&, returns_void_t);
 
 // this intermediate trait has member value of type bool:
-// - value==true -> operator BOOST_TT_TRAIT_OP returns void
-// - value==false -> operator BOOST_TT_TRAIT_OP does not return void
+// - value==true -> operator NDNBOOST_TT_TRAIT_OP returns void
+// - value==false -> operator NDNBOOST_TT_TRAIT_OP does not return void
 template < typename Lhs >
 struct operator_returns_void {
    // overloads of function returns_void make the difference
    // yes_type and no_type have different size by construction
    static ::ndnboost::type_traits::yes_type returns_void(returns_void_t);
    static ::ndnboost::type_traits::no_type returns_void(int);
-   BOOST_STATIC_CONSTANT(bool, value = (sizeof(::ndnboost::type_traits::yes_type)==sizeof(returns_void((make<Lhs>() BOOST_TT_TRAIT_OP,returns_void_t())))));
+   NDNBOOST_STATIC_CONSTANT(bool, value = (sizeof(::ndnboost::type_traits::yes_type)==sizeof(returns_void((make<Lhs>() NDNBOOST_TT_TRAIT_OP,returns_void_t())))));
 };
 
 
@@ -92,27 +92,27 @@
 
 template < typename Lhs >
 struct operator_returns_Ret < Lhs, dont_care, true > {
-   BOOST_STATIC_CONSTANT(bool, value = true);
+   NDNBOOST_STATIC_CONSTANT(bool, value = true);
 };
 
 template < typename Lhs >
 struct operator_returns_Ret < Lhs, dont_care, false > {
-   BOOST_STATIC_CONSTANT(bool, value = true);
+   NDNBOOST_STATIC_CONSTANT(bool, value = true);
 };
 
 template < typename Lhs >
 struct operator_returns_Ret < Lhs, void, true > {
-   BOOST_STATIC_CONSTANT(bool, value = true);
+   NDNBOOST_STATIC_CONSTANT(bool, value = true);
 };
 
 template < typename Lhs >
 struct operator_returns_Ret < Lhs, void, false > {
-   BOOST_STATIC_CONSTANT(bool, value = false);
+   NDNBOOST_STATIC_CONSTANT(bool, value = false);
 };
 
 template < typename Lhs, typename Ret >
 struct operator_returns_Ret < Lhs, Ret, true > {
-   BOOST_STATIC_CONSTANT(bool, value = false);
+   NDNBOOST_STATIC_CONSTANT(bool, value = false);
 };
 
 // otherwise checks if it is convertible to Ret using the sizeof trick
@@ -123,14 +123,14 @@
    static ::ndnboost::type_traits::yes_type is_convertible_to_Ret(Ret); // this version is preferred for types convertible to Ret
    static ::ndnboost::type_traits::no_type is_convertible_to_Ret(...); // this version is used otherwise
 
-   BOOST_STATIC_CONSTANT(bool, value = (sizeof(is_convertible_to_Ret(make<Lhs>() BOOST_TT_TRAIT_OP))==sizeof(::ndnboost::type_traits::yes_type)));
+   NDNBOOST_STATIC_CONSTANT(bool, value = (sizeof(is_convertible_to_Ret(make<Lhs>() NDNBOOST_TT_TRAIT_OP))==sizeof(::ndnboost::type_traits::yes_type)));
 };
 
 
 // 5. checks for operator existence
 // condition: Lhs!=void
 
-// checks if our definition of operator BOOST_TT_TRAIT_OP is used or an other
+// checks if our definition of operator NDNBOOST_TT_TRAIT_OP is used or an other
 // existing one;
 // this is done with redefinition of "operator," that returns no_operator or has_operator
 struct has_operator { };
@@ -141,15 +141,15 @@
    static ::ndnboost::type_traits::yes_type check(has_operator); // this version is preferred when operator exists
    static ::ndnboost::type_traits::no_type check(no_operator); // this version is used otherwise
 
-   BOOST_STATIC_CONSTANT(bool, value = (sizeof(check(((make<Lhs>() BOOST_TT_TRAIT_OP),make<has_operator>())))==sizeof(::ndnboost::type_traits::yes_type)));
+   NDNBOOST_STATIC_CONSTANT(bool, value = (sizeof(check(((make<Lhs>() NDNBOOST_TT_TRAIT_OP),make<has_operator>())))==sizeof(::ndnboost::type_traits::yes_type)));
 };
 
 
 // 6. main trait: to avoid any compilation error, this class behaves
-// differently when operator BOOST_TT_TRAIT_OP(Lhs) is forbidden by the
+// differently when operator NDNBOOST_TT_TRAIT_OP(Lhs) is forbidden by the
 // standard.
 // Forbidden_if is a bool that is:
-// - true when the operator BOOST_TT_TRAIT_OP(Lhs) is forbidden by the standard
+// - true when the operator NDNBOOST_TT_TRAIT_OP(Lhs) is forbidden by the standard
 //   (would yield compilation error if used)
 // - false otherwise
 template < typename Lhs, typename Ret, bool Forbidden_if >
@@ -157,12 +157,12 @@
 
 template < typename Lhs, typename Ret >
 struct trait_impl1 < Lhs, Ret, true > {
-   BOOST_STATIC_CONSTANT(bool, value = false);
+   NDNBOOST_STATIC_CONSTANT(bool, value = false);
 };
 
 template < typename Lhs, typename Ret >
 struct trait_impl1 < Lhs, Ret, false > {
-   BOOST_STATIC_CONSTANT(bool,
+   NDNBOOST_STATIC_CONSTANT(bool,
       value = (
          ::ndnboost::type_traits::ice_and<
             operator_exists < Lhs >::value,
@@ -175,7 +175,7 @@
 // specialization needs to be declared for the special void case
 template < typename Ret >
 struct trait_impl1 < void, Ret, false > {
-   BOOST_STATIC_CONSTANT(bool, value = false);
+   NDNBOOST_STATIC_CONSTANT(bool, value = false);
 };
 
 // defines some typedef for convenience
@@ -184,18 +184,18 @@
    typedef typename ::ndnboost::remove_reference<Lhs>::type Lhs_noref;
    typedef typename ::ndnboost::remove_cv<Lhs_noref>::type Lhs_nocv;
    typedef typename ::ndnboost::remove_cv< typename ::ndnboost::remove_reference< typename ::ndnboost::remove_pointer<Lhs_noref>::type >::type >::type Lhs_noptr;
-   BOOST_STATIC_CONSTANT(bool, value = (trait_impl1 < Lhs_noref, Ret, BOOST_TT_FORBIDDEN_IF >::value));
+   NDNBOOST_STATIC_CONSTANT(bool, value = (trait_impl1 < Lhs_noref, Ret, NDNBOOST_TT_FORBIDDEN_IF >::value));
 };
 
 } // namespace impl
 } // namespace detail
 
 // this is the accessible definition of the trait to end user
-BOOST_TT_AUX_BOOL_TRAIT_DEF2(BOOST_TT_TRAIT_NAME, Lhs, Ret=::ndnboost::detail::BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)::dont_care, (::ndnboost::detail::BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)::trait_impl< Lhs, Ret >::value))
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF2(NDNBOOST_TT_TRAIT_NAME, Lhs, Ret=::ndnboost::detail::NDNBOOST_JOIN(NDNBOOST_TT_TRAIT_NAME,_impl)::dont_care, (::ndnboost::detail::NDNBOOST_JOIN(NDNBOOST_TT_TRAIT_NAME,_impl)::trait_impl< Lhs, Ret >::value))
 
 } // namespace ndnboost
 
-#if defined(BOOST_MSVC)
+#if defined(NDNBOOST_MSVC)
 #   pragma warning ( pop )
 #endif
 
diff --git a/include/ndnboost/type_traits/detail/has_prefix_operator.hpp b/include/ndnboost/type_traits/detail/has_prefix_operator.hpp
index b1113d2..3a25c58 100644
--- a/include/ndnboost/type_traits/detail/has_prefix_operator.hpp
+++ b/include/ndnboost/type_traits/detail/has_prefix_operator.hpp
@@ -32,7 +32,7 @@
 // cannot find another implementation -> declared as system header to suppress these warnings.
 #if defined(__GNUC__) && ((__GNUC__==3 && __GNUC_MINOR__>=1) || (__GNUC__>3))
 #   pragma GCC system_header
-#elif defined(BOOST_MSVC)
+#elif defined(NDNBOOST_MSVC)
 #   pragma warning ( push )
 #   pragma warning ( disable : 4146 4804 4913 4244 )
 #endif
@@ -41,7 +41,7 @@
 namespace detail {
 
 // This namespace ensures that argument-dependent name lookup does not mess things up.
-namespace BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) {
+namespace NDNBOOST_JOIN(NDNBOOST_TT_TRAIT_NAME,_impl) {
 
 // 1. a function to have an instance of type T without requiring T to be default
 // constructible
@@ -50,7 +50,7 @@
 
 // 2. we provide our operator definition for types that do not have one already
 
-// a type returned from operator BOOST_TT_TRAIT_OP when no such operator is
+// a type returned from operator NDNBOOST_TT_TRAIT_OP when no such operator is
 // found in the type's own namespace (our own operator is used) so that we have
 // a means to know that our operator was used
 struct no_operator { };
@@ -60,33 +60,33 @@
 // via argument-dependent name lookup
 struct any { template <class T> any(T const&); };
 
-// when operator BOOST_TT_TRAIT_OP is not available, this one is used
-no_operator operator BOOST_TT_TRAIT_OP (const any&);
+// when operator NDNBOOST_TT_TRAIT_OP is not available, this one is used
+no_operator operator NDNBOOST_TT_TRAIT_OP (const any&);
 
 
 // 3. checks if the operator returns void or not
 // conditions: Rhs!=void
 
 // we first redefine "operator," so that we have no compilation error if
-// operator BOOST_TT_TRAIT_OP returns void and we can use the return type of
-// (BOOST_TT_TRAIT_OP rhs, returns_void_t()) to deduce if
-// operator BOOST_TT_TRAIT_OP returns void or not:
-// - operator BOOST_TT_TRAIT_OP returns void   -> (BOOST_TT_TRAIT_OP rhs, returns_void_t()) returns returns_void_t
-// - operator BOOST_TT_TRAIT_OP returns !=void -> (BOOST_TT_TRAIT_OP rhs, returns_void_t()) returns int
+// operator NDNBOOST_TT_TRAIT_OP returns void and we can use the return type of
+// (NDNBOOST_TT_TRAIT_OP rhs, returns_void_t()) to deduce if
+// operator NDNBOOST_TT_TRAIT_OP returns void or not:
+// - operator NDNBOOST_TT_TRAIT_OP returns void   -> (NDNBOOST_TT_TRAIT_OP rhs, returns_void_t()) returns returns_void_t
+// - operator NDNBOOST_TT_TRAIT_OP returns !=void -> (NDNBOOST_TT_TRAIT_OP rhs, returns_void_t()) returns int
 struct returns_void_t { };
 template <typename T> int operator,(const T&, returns_void_t);
 template <typename T> int operator,(const volatile T&, returns_void_t);
 
 // this intermediate trait has member value of type bool:
-// - value==true -> operator BOOST_TT_TRAIT_OP returns void
-// - value==false -> operator BOOST_TT_TRAIT_OP does not return void
+// - value==true -> operator NDNBOOST_TT_TRAIT_OP returns void
+// - value==false -> operator NDNBOOST_TT_TRAIT_OP does not return void
 template < typename Rhs >
 struct operator_returns_void {
    // overloads of function returns_void make the difference
    // yes_type and no_type have different size by construction
    static ::ndnboost::type_traits::yes_type returns_void(returns_void_t);
    static ::ndnboost::type_traits::no_type returns_void(int);
-   BOOST_STATIC_CONSTANT(bool, value = (sizeof(::ndnboost::type_traits::yes_type)==sizeof(returns_void((BOOST_TT_TRAIT_OP make<Rhs>(),returns_void_t())))));
+   NDNBOOST_STATIC_CONSTANT(bool, value = (sizeof(::ndnboost::type_traits::yes_type)==sizeof(returns_void((NDNBOOST_TT_TRAIT_OP make<Rhs>(),returns_void_t())))));
 };
 
 
@@ -100,27 +100,27 @@
 
 template < typename Rhs >
 struct operator_returns_Ret < Rhs, dont_care, true > {
-   BOOST_STATIC_CONSTANT(bool, value = true);
+   NDNBOOST_STATIC_CONSTANT(bool, value = true);
 };
 
 template < typename Rhs >
 struct operator_returns_Ret < Rhs, dont_care, false > {
-   BOOST_STATIC_CONSTANT(bool, value = true);
+   NDNBOOST_STATIC_CONSTANT(bool, value = true);
 };
 
 template < typename Rhs >
 struct operator_returns_Ret < Rhs, void, true > {
-   BOOST_STATIC_CONSTANT(bool, value = true);
+   NDNBOOST_STATIC_CONSTANT(bool, value = true);
 };
 
 template < typename Rhs >
 struct operator_returns_Ret < Rhs, void, false > {
-   BOOST_STATIC_CONSTANT(bool, value = false);
+   NDNBOOST_STATIC_CONSTANT(bool, value = false);
 };
 
 template < typename Rhs, typename Ret >
 struct operator_returns_Ret < Rhs, Ret, true > {
-   BOOST_STATIC_CONSTANT(bool, value = false);
+   NDNBOOST_STATIC_CONSTANT(bool, value = false);
 };
 
 // otherwise checks if it is convertible to Ret using the sizeof trick
@@ -131,14 +131,14 @@
    static ::ndnboost::type_traits::yes_type is_convertible_to_Ret(Ret); // this version is preferred for types convertible to Ret
    static ::ndnboost::type_traits::no_type is_convertible_to_Ret(...); // this version is used otherwise
 
-   BOOST_STATIC_CONSTANT(bool, value = (sizeof(is_convertible_to_Ret(BOOST_TT_TRAIT_OP make<Rhs>()))==sizeof(::ndnboost::type_traits::yes_type)));
+   NDNBOOST_STATIC_CONSTANT(bool, value = (sizeof(is_convertible_to_Ret(NDNBOOST_TT_TRAIT_OP make<Rhs>()))==sizeof(::ndnboost::type_traits::yes_type)));
 };
 
 
 // 5. checks for operator existence
 // condition: Rhs!=void
 
-// checks if our definition of operator BOOST_TT_TRAIT_OP is used or an other
+// checks if our definition of operator NDNBOOST_TT_TRAIT_OP is used or an other
 // existing one;
 // this is done with redefinition of "operator," that returns no_operator or has_operator
 struct has_operator { };
@@ -149,15 +149,15 @@
    static ::ndnboost::type_traits::yes_type check(has_operator); // this version is preferred when operator exists
    static ::ndnboost::type_traits::no_type check(no_operator); // this version is used otherwise
 
-   BOOST_STATIC_CONSTANT(bool, value = (sizeof(check(((BOOST_TT_TRAIT_OP make<Rhs>()),make<has_operator>())))==sizeof(::ndnboost::type_traits::yes_type)));
+   NDNBOOST_STATIC_CONSTANT(bool, value = (sizeof(check(((NDNBOOST_TT_TRAIT_OP make<Rhs>()),make<has_operator>())))==sizeof(::ndnboost::type_traits::yes_type)));
 };
 
 
 // 6. main trait: to avoid any compilation error, this class behaves
-// differently when operator BOOST_TT_TRAIT_OP(Rhs) is forbidden by the
+// differently when operator NDNBOOST_TT_TRAIT_OP(Rhs) is forbidden by the
 // standard.
 // Forbidden_if is a bool that is:
-// - true when the operator BOOST_TT_TRAIT_OP(Rhs) is forbidden by the standard
+// - true when the operator NDNBOOST_TT_TRAIT_OP(Rhs) is forbidden by the standard
 //   (would yield compilation error if used)
 // - false otherwise
 template < typename Rhs, typename Ret, bool Forbidden_if >
@@ -165,12 +165,12 @@
 
 template < typename Rhs, typename Ret >
 struct trait_impl1 < Rhs, Ret, true > {
-   BOOST_STATIC_CONSTANT(bool, value = false);
+   NDNBOOST_STATIC_CONSTANT(bool, value = false);
 };
 
 template < typename Rhs, typename Ret >
 struct trait_impl1 < Rhs, Ret, false > {
-   BOOST_STATIC_CONSTANT(bool,
+   NDNBOOST_STATIC_CONSTANT(bool,
       value = (
          ::ndnboost::type_traits::ice_and<
             operator_exists < Rhs >::value,
@@ -183,7 +183,7 @@
 // specialization needs to be declared for the special void case
 template < typename Ret >
 struct trait_impl1 < void, Ret, false > {
-   BOOST_STATIC_CONSTANT(bool, value = false);
+   NDNBOOST_STATIC_CONSTANT(bool, value = false);
 };
 
 // defines some typedef for convenience
@@ -192,18 +192,18 @@
    typedef typename ::ndnboost::remove_reference<Rhs>::type Rhs_noref;
    typedef typename ::ndnboost::remove_cv<Rhs_noref>::type Rhs_nocv;
    typedef typename ::ndnboost::remove_cv< typename ::ndnboost::remove_reference< typename ::ndnboost::remove_pointer<Rhs_noref>::type >::type >::type Rhs_noptr;
-   BOOST_STATIC_CONSTANT(bool, value = (trait_impl1 < Rhs_noref, Ret, BOOST_TT_FORBIDDEN_IF >::value));
+   NDNBOOST_STATIC_CONSTANT(bool, value = (trait_impl1 < Rhs_noref, Ret, NDNBOOST_TT_FORBIDDEN_IF >::value));
 };
 
 } // namespace impl
 } // namespace detail
 
 // this is the accessible definition of the trait to end user
-BOOST_TT_AUX_BOOL_TRAIT_DEF2(BOOST_TT_TRAIT_NAME, Rhs, Ret=::ndnboost::detail::BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)::dont_care, (::ndnboost::detail::BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)::trait_impl < Rhs, Ret >::value))
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF2(NDNBOOST_TT_TRAIT_NAME, Rhs, Ret=::ndnboost::detail::NDNBOOST_JOIN(NDNBOOST_TT_TRAIT_NAME,_impl)::dont_care, (::ndnboost::detail::NDNBOOST_JOIN(NDNBOOST_TT_TRAIT_NAME,_impl)::trait_impl < Rhs, Ret >::value))
 
 } // namespace ndnboost
 
-#if defined(BOOST_MSVC)
+#if defined(NDNBOOST_MSVC)
 #   pragma warning ( pop )
 #endif
 
diff --git a/include/ndnboost/type_traits/detail/ice_and.hpp b/include/ndnboost/type_traits/detail/ice_and.hpp
index 75d1ae6..c61917e 100644
--- a/include/ndnboost/type_traits/detail/ice_and.hpp
+++ b/include/ndnboost/type_traits/detail/ice_and.hpp
@@ -6,8 +6,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_DETAIL_ICE_AND_HPP_INCLUDED
-#define BOOST_TT_DETAIL_ICE_AND_HPP_INCLUDED
+#ifndef NDNBOOST_TT_DETAIL_ICE_AND_HPP_INCLUDED
+#define NDNBOOST_TT_DETAIL_ICE_AND_HPP_INCLUDED
 
 #include <ndnboost/config.hpp>
 
@@ -20,16 +20,16 @@
 template <bool b1, bool b2, bool b3, bool b4, bool b5, bool b6, bool b7>
 struct ice_and
 {
-    BOOST_STATIC_CONSTANT(bool, value = false);
+    NDNBOOST_STATIC_CONSTANT(bool, value = false);
 };
 
 template <>
 struct ice_and<true, true, true, true, true, true, true>
 {
-    BOOST_STATIC_CONSTANT(bool, value = true);
+    NDNBOOST_STATIC_CONSTANT(bool, value = true);
 };
 
 } // namespace type_traits
 } // namespace ndnboost
 
-#endif // BOOST_TT_DETAIL_ICE_AND_HPP_INCLUDED
+#endif // NDNBOOST_TT_DETAIL_ICE_AND_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/detail/ice_eq.hpp b/include/ndnboost/type_traits/detail/ice_eq.hpp
index 293d3d7..d96240a 100644
--- a/include/ndnboost/type_traits/detail/ice_eq.hpp
+++ b/include/ndnboost/type_traits/detail/ice_eq.hpp
@@ -5,8 +5,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_DETAIL_ICE_EQ_HPP_INCLUDED
-#define BOOST_TT_DETAIL_ICE_EQ_HPP_INCLUDED
+#ifndef NDNBOOST_TT_DETAIL_ICE_EQ_HPP_INCLUDED
+#define NDNBOOST_TT_DETAIL_ICE_EQ_HPP_INCLUDED
 
 #include <ndnboost/config.hpp>
 
@@ -16,16 +16,16 @@
 template <int b1, int b2>
 struct ice_eq
 {
-    BOOST_STATIC_CONSTANT(bool, value = (b1 == b2));
+    NDNBOOST_STATIC_CONSTANT(bool, value = (b1 == b2));
 };
 
 template <int b1, int b2>
 struct ice_ne
 {
-    BOOST_STATIC_CONSTANT(bool, value = (b1 != b2));
+    NDNBOOST_STATIC_CONSTANT(bool, value = (b1 != b2));
 };
 
-#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
+#ifndef NDNBOOST_NO_INCLASS_MEMBER_INITIALIZATION
 template <int b1, int b2> bool const ice_eq<b1,b2>::value;
 template <int b1, int b2> bool const ice_ne<b1,b2>::value;
 #endif
@@ -33,4 +33,4 @@
 } // namespace type_traits
 } // namespace ndnboost
 
-#endif // BOOST_TT_DETAIL_ICE_EQ_HPP_INCLUDED
+#endif // NDNBOOST_TT_DETAIL_ICE_EQ_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/detail/ice_not.hpp b/include/ndnboost/type_traits/detail/ice_not.hpp
index 47457d4..ee4879d 100644
--- a/include/ndnboost/type_traits/detail/ice_not.hpp
+++ b/include/ndnboost/type_traits/detail/ice_not.hpp
@@ -5,8 +5,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_DETAIL_ICE_NOT_HPP_INCLUDED
-#define BOOST_TT_DETAIL_ICE_NOT_HPP_INCLUDED
+#ifndef NDNBOOST_TT_DETAIL_ICE_NOT_HPP_INCLUDED
+#define NDNBOOST_TT_DETAIL_ICE_NOT_HPP_INCLUDED
 
 #include <ndnboost/config.hpp>
 
@@ -16,16 +16,16 @@
 template <bool b>
 struct ice_not
 {
-    BOOST_STATIC_CONSTANT(bool, value = true);
+    NDNBOOST_STATIC_CONSTANT(bool, value = true);
 };
 
 template <>
 struct ice_not<true>
 {
-    BOOST_STATIC_CONSTANT(bool, value = false);
+    NDNBOOST_STATIC_CONSTANT(bool, value = false);
 };
 
 } // namespace type_traits
 } // namespace ndnboost
 
-#endif // BOOST_TT_DETAIL_ICE_NOT_HPP_INCLUDED
+#endif // NDNBOOST_TT_DETAIL_ICE_NOT_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/detail/ice_or.hpp b/include/ndnboost/type_traits/detail/ice_or.hpp
index 0d49b96..12255b5 100644
--- a/include/ndnboost/type_traits/detail/ice_or.hpp
+++ b/include/ndnboost/type_traits/detail/ice_or.hpp
@@ -5,8 +5,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_DETAIL_ICE_OR_HPP_INCLUDED
-#define BOOST_TT_DETAIL_ICE_OR_HPP_INCLUDED
+#ifndef NDNBOOST_TT_DETAIL_ICE_OR_HPP_INCLUDED
+#define NDNBOOST_TT_DETAIL_ICE_OR_HPP_INCLUDED
 
 #include <ndnboost/config.hpp>
 
@@ -19,16 +19,16 @@
 template <bool b1, bool b2, bool b3, bool b4, bool b5, bool b6, bool b7>
 struct ice_or
 {
-    BOOST_STATIC_CONSTANT(bool, value = true);
+    NDNBOOST_STATIC_CONSTANT(bool, value = true);
 };
 
 template <>
 struct ice_or<false, false, false, false, false, false, false>
 {
-    BOOST_STATIC_CONSTANT(bool, value = false);
+    NDNBOOST_STATIC_CONSTANT(bool, value = false);
 };
 
 } // namespace type_traits
 } // namespace ndnboost
 
-#endif // BOOST_TT_DETAIL_ICE_OR_HPP_INCLUDED
+#endif // NDNBOOST_TT_DETAIL_ICE_OR_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/detail/is_function_ptr_helper.hpp b/include/ndnboost/type_traits/detail/is_function_ptr_helper.hpp
index aa6fdde..6263255 100644
--- a/include/ndnboost/type_traits/detail/is_function_ptr_helper.hpp
+++ b/include/ndnboost/type_traits/detail/is_function_ptr_helper.hpp
@@ -8,16 +8,16 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#if !defined(BOOST_PP_IS_ITERATING)
+#if !defined(NDNBOOST_PP_IS_ITERATING)
 
 ///// header body
 
-#ifndef BOOST_TT_DETAIL_IS_FUNCTION_PTR_HELPER_HPP_INCLUDED
-#define BOOST_TT_DETAIL_IS_FUNCTION_PTR_HELPER_HPP_INCLUDED
+#ifndef NDNBOOST_TT_DETAIL_IS_FUNCTION_PTR_HELPER_HPP_INCLUDED
+#define NDNBOOST_TT_DETAIL_IS_FUNCTION_PTR_HELPER_HPP_INCLUDED
 
 #include <ndnboost/type_traits/config.hpp>
 
-#if defined(BOOST_TT_PREPROCESSING_MODE)
+#if defined(NDNBOOST_TT_PREPROCESSING_MODE)
 #   include <ndnboost/preprocessor/iterate.hpp>
 #   include <ndnboost/preprocessor/enum_params.hpp>
 #   include <ndnboost/preprocessor/comma_if.hpp>
@@ -29,192 +29,192 @@
 template <class R>
 struct is_function_ptr_helper
 {
-    BOOST_STATIC_CONSTANT(bool, value = false);
+    NDNBOOST_STATIC_CONSTANT(bool, value = false);
 };
 
-#if !defined(BOOST_TT_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_TT_PREPROCESSING_MODE)
 // preprocessor-generated part, don't edit by hand!
 
 template <class R >
-struct is_function_ptr_helper<R (*)()> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_function_ptr_helper<R (*)()> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R >
-struct is_function_ptr_helper<R (*)( ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_function_ptr_helper<R (*)( ...)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 template <class R , class T0>
-struct is_function_ptr_helper<R (*)( T0)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_function_ptr_helper<R (*)( T0)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0>
-struct is_function_ptr_helper<R (*)( T0 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_function_ptr_helper<R (*)( T0 ...)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 template <class R , class T0 , class T1>
-struct is_function_ptr_helper<R (*)( T0 , T1)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_function_ptr_helper<R (*)( T0 , T1)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1>
-struct is_function_ptr_helper<R (*)( T0 , T1 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_function_ptr_helper<R (*)( T0 , T1 ...)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 template <class R , class T0 , class T1 , class T2>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 ...)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 ...)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 ...)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 ...)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 #else
 
-#undef BOOST_STATIC_CONSTANT
-#define BOOST_PP_ITERATION_PARAMS_1 \
+#undef NDNBOOST_STATIC_CONSTANT
+#define NDNBOOST_PP_ITERATION_PARAMS_1 \
     (3, (0, 25, "ndnboost/type_traits/detail/is_function_ptr_helper.hpp"))
-#include BOOST_PP_ITERATE()
+#include NDNBOOST_PP_ITERATE()
 
-#endif // BOOST_TT_PREPROCESSING_MODE
+#endif // NDNBOOST_TT_PREPROCESSING_MODE
 
 } // namespace type_traits
 } // namespace ndnboost
 
-#endif // BOOST_TT_DETAIL_IS_FUNCTION_PTR_HELPER_HPP_INCLUDED
+#endif // NDNBOOST_TT_DETAIL_IS_FUNCTION_PTR_HELPER_HPP_INCLUDED
 
 ///// iteration
 
 #else
-#define BOOST_PP_COUNTER BOOST_PP_FRAME_ITERATION(1)
+#define NDNBOOST_PP_COUNTER NDNBOOST_PP_FRAME_ITERATION(1)
 
-template <class R BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct is_function_ptr_helper<R (*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T))> { BOOST_STATIC_CONSTANT(bool, value = true); };
-@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct is_function_ptr_helper<R (*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
+template <class R NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T)>
+struct is_function_ptr_helper<R (*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T))> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+@#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+template <class R NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T)>
+struct is_function_ptr_helper<R (*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T) ...)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 @#endif
-#undef BOOST_PP_COUNTER
-#endif // BOOST_PP_IS_ITERATING
+#undef NDNBOOST_PP_COUNTER
+#endif // NDNBOOST_PP_IS_ITERATING
diff --git a/include/ndnboost/type_traits/detail/is_function_ptr_tester.hpp b/include/ndnboost/type_traits/detail/is_function_ptr_tester.hpp
index dc0654a..079f907 100644
--- a/include/ndnboost/type_traits/detail/is_function_ptr_tester.hpp
+++ b/include/ndnboost/type_traits/detail/is_function_ptr_tester.hpp
@@ -7,17 +7,17 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#if !defined(BOOST_PP_IS_ITERATING)
+#if !defined(NDNBOOST_PP_IS_ITERATING)
 
 ///// header body
 
-#ifndef BOOST_TT_DETAIL_IS_FUNCTION_PTR_TESTER_HPP_INCLUDED
-#define BOOST_TT_DETAIL_IS_FUNCTION_PTR_TESTER_HPP_INCLUDED
+#ifndef NDNBOOST_TT_DETAIL_IS_FUNCTION_PTR_TESTER_HPP_INCLUDED
+#define NDNBOOST_TT_DETAIL_IS_FUNCTION_PTR_TESTER_HPP_INCLUDED
 
 #include <ndnboost/type_traits/detail/yes_no_type.hpp>
 #include <ndnboost/type_traits/config.hpp>
 
-#if defined(BOOST_TT_PREPROCESSING_MODE)
+#if defined(NDNBOOST_TT_PREPROCESSING_MODE)
 #   include <ndnboost/preprocessor/iterate.hpp>
 #   include <ndnboost/preprocessor/enum_params.hpp>
 #   include <ndnboost/preprocessor/comma_if.hpp>
@@ -28,19 +28,19 @@
 
 // Note it is acceptable to use ellipsis here, since the argument will
 // always be a pointer type of some sort (JM 2005/06/04):
-no_type BOOST_TT_DECL is_function_ptr_tester(...);
+no_type NDNBOOST_TT_DECL is_function_ptr_tester(...);
 
-#if !defined(BOOST_TT_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_TT_PREPROCESSING_MODE)
 // pre-processed code, don't edit, try GNU cpp with 
-// cpp -I../../../ -DBOOST_TT_PREPROCESSING_MODE -x c++ -P filename
+// cpp -I../../../ -DNDNBOOST_TT_PREPROCESSING_MODE -x c++ -P filename
 
 template <class R >
 yes_type is_function_ptr_tester(R (*)());
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R >
 yes_type is_function_ptr_tester(R (*)( ...));
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R >
 yes_type is_function_ptr_tester(R (__stdcall*)());
 template <class R >
@@ -58,11 +58,11 @@
 #endif
 template <class R , class T0 >
 yes_type is_function_ptr_tester(R (*)( T0));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 >
 yes_type is_function_ptr_tester(R (*)( T0 ...));
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R , class T0 >
 yes_type is_function_ptr_tester(R (__stdcall*)( T0));
 template <class R , class T0 >
@@ -80,11 +80,11 @@
 #endif
 template <class R , class T0 , class T1 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 ...));
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R , class T0 , class T1 >
 yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1));
 template <class R , class T0 , class T1 >
@@ -102,11 +102,11 @@
 #endif
 template <class R , class T0 , class T1 , class T2 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 ...));
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R , class T0 , class T1 , class T2 >
 yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2));
 template <class R , class T0 , class T1 , class T2 >
@@ -124,11 +124,11 @@
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 ...));
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R , class T0 , class T1 , class T2 , class T3 >
 yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3));
 template <class R , class T0 , class T1 , class T2 , class T3 >
@@ -146,11 +146,11 @@
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 ...));
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 >
 yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4));
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 >
@@ -168,11 +168,11 @@
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 ...));
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
 yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5));
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
@@ -190,11 +190,11 @@
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...));
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
 yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6));
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
@@ -212,11 +212,11 @@
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...));
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
 yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7));
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
@@ -234,11 +234,11 @@
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...));
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
 yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8));
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
@@ -256,11 +256,11 @@
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...));
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
 yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9));
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
@@ -278,11 +278,11 @@
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...));
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
 yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10));
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
@@ -300,11 +300,11 @@
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...));
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
 yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11));
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
@@ -322,11 +322,11 @@
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...));
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
 yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12));
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
@@ -344,11 +344,11 @@
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...));
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
 yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13));
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
@@ -366,11 +366,11 @@
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...));
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
 yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14));
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
@@ -388,11 +388,11 @@
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...));
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
 yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15));
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
@@ -410,11 +410,11 @@
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...));
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
 yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16));
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
@@ -432,11 +432,11 @@
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...));
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
 yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17));
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
@@ -454,11 +454,11 @@
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...));
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
 yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18));
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
@@ -476,11 +476,11 @@
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...));
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
 yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19));
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
@@ -498,11 +498,11 @@
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...));
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
 yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20));
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
@@ -520,11 +520,11 @@
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...));
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
 yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21));
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
@@ -542,11 +542,11 @@
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...));
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
 yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22));
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
@@ -564,11 +564,11 @@
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...));
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
 yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23));
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
@@ -586,11 +586,11 @@
 #endif
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
 yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...));
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
 yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24));
 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
@@ -608,47 +608,47 @@
 #endif
 #else
 
-#define BOOST_PP_ITERATION_PARAMS_1 \
+#define NDNBOOST_PP_ITERATION_PARAMS_1 \
     (3, (0, 25, "ndnboost/type_traits/detail/is_function_ptr_tester.hpp"))
-#include BOOST_PP_ITERATE()
+#include NDNBOOST_PP_ITERATE()
 
-#endif // BOOST_TT_PREPROCESSING_MODE
+#endif // NDNBOOST_TT_PREPROCESSING_MODE
 
 } // namespace type_traits
 } // namespace ndnboost
 
-#endif // BOOST_TT_DETAIL_IS_FUNCTION_PTR_TESTER_HPP_INCLUDED
+#endif // NDNBOOST_TT_DETAIL_IS_FUNCTION_PTR_TESTER_HPP_INCLUDED
 
 ///// iteration
 
 #else
-#define BOOST_PP_COUNTER BOOST_PP_FRAME_ITERATION(1)
+#define NDNBOOST_PP_COUNTER NDNBOOST_PP_FRAME_ITERATION(1)
 #undef __stdcall
 #undef __fastcall
 #undef __cdecl
 
-template <class R BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_function_ptr_tester(R (*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)));
-@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_function_ptr_tester(R (*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...));
+template <class R NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T) >
+yes_type is_function_ptr_tester(R (*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T)));
+@#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+template <class R NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T) >
+yes_type is_function_ptr_tester(R (*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T) ...));
 @#endif
-@#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_function_ptr_tester(R (__stdcall*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)));
-template <class R BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_function_ptr_tester(R (__stdcall*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...));
+@#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
+template <class R NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T) >
+yes_type is_function_ptr_tester(R (__stdcall*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T)));
+template <class R NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T) >
+yes_type is_function_ptr_tester(R (__stdcall*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T) ...));
 @#ifndef _MANAGED
-template <class R BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_function_ptr_tester(R (__fastcall*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)));
-template <class R BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_function_ptr_tester(R (__fastcall*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...));
+template <class R NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T) >
+yes_type is_function_ptr_tester(R (__fastcall*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T)));
+template <class R NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T) >
+yes_type is_function_ptr_tester(R (__fastcall*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T) ...));
 @#endif
-template <class R BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_function_ptr_tester(R (__cdecl*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)));
-template <class R BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_function_ptr_tester(R (__cdecl*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...));
+template <class R NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T) >
+yes_type is_function_ptr_tester(R (__cdecl*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T)));
+template <class R NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T) >
+yes_type is_function_ptr_tester(R (__cdecl*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T) ...));
 @#endif
 
-#undef BOOST_PP_COUNTER
-#endif // BOOST_PP_IS_ITERATING
+#undef NDNBOOST_PP_COUNTER
+#endif // NDNBOOST_PP_IS_ITERATING
diff --git a/include/ndnboost/type_traits/detail/is_mem_fun_pointer_impl.hpp b/include/ndnboost/type_traits/detail/is_mem_fun_pointer_impl.hpp
index b278ea3..d5008e0 100644
--- a/include/ndnboost/type_traits/detail/is_mem_fun_pointer_impl.hpp
+++ b/include/ndnboost/type_traits/detail/is_mem_fun_pointer_impl.hpp
@@ -7,16 +7,16 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#if !defined(BOOST_PP_IS_ITERATING)
+#if !defined(NDNBOOST_PP_IS_ITERATING)
 
 ///// header body
 
-#ifndef BOOST_TT_DETAIL_IS_MEM_FUN_POINTER_IMPL_HPP_INCLUDED
-#define BOOST_TT_DETAIL_IS_MEM_FUN_POINTER_IMPL_HPP_INCLUDED
+#ifndef NDNBOOST_TT_DETAIL_IS_MEM_FUN_POINTER_IMPL_HPP_INCLUDED
+#define NDNBOOST_TT_DETAIL_IS_MEM_FUN_POINTER_IMPL_HPP_INCLUDED
 
 #include <ndnboost/config.hpp>
 
-#if defined(BOOST_TT_PREPROCESSING_MODE)
+#if defined(NDNBOOST_TT_PREPROCESSING_MODE)
 #   include <ndnboost/preprocessor/iterate.hpp>
 #   include <ndnboost/preprocessor/enum_params.hpp>
 #   include <ndnboost/preprocessor/comma_if.hpp>
@@ -28,790 +28,790 @@
 template <typename T>
 struct is_mem_fun_pointer_impl
 {
-    BOOST_STATIC_CONSTANT(bool, value = false);
+    NDNBOOST_STATIC_CONSTANT(bool, value = false);
 };
 
-#if !defined(BOOST_TT_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_TT_PREPROCESSING_MODE)
 // pre-processed code, don't edit, try GNU cpp with 
-// cpp -I../../../ -DBOOST_TT_PREPROCESSING_MODE -x c++ -P filename
+// cpp -I../../../ -DNDNBOOST_TT_PREPROCESSING_MODE -x c++ -P filename
 
 template <class R, class T >
-struct is_mem_fun_pointer_impl<R (T::*)() > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_mem_fun_pointer_impl<R (T::*)() > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T >
-struct is_mem_fun_pointer_impl<R (T::*)( ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
+#if !defined(NDNBOOST_TT_NO_CV_FUNC_TEST)
 template <class R, class T >
-struct is_mem_fun_pointer_impl<R (T::*)() const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)() const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T >
-struct is_mem_fun_pointer_impl<R (T::*)() volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)() volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T >
-struct is_mem_fun_pointer_impl<R (T::*)() const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)() const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T >
-struct is_mem_fun_pointer_impl<R (T::*)( ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( ...) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T >
-struct is_mem_fun_pointer_impl<R (T::*)( ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( ...) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T >
-struct is_mem_fun_pointer_impl<R (T::*)( ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( ...) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 #endif
 template <class R, class T , class T0>
-struct is_mem_fun_pointer_impl<R (T::*)( T0) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_mem_fun_pointer_impl<R (T::*)( T0) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
+#if !defined(NDNBOOST_TT_NO_CV_FUNC_TEST)
 template <class R, class T , class T0>
-struct is_mem_fun_pointer_impl<R (T::*)( T0) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0>
-struct is_mem_fun_pointer_impl<R (T::*)( T0) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0>
-struct is_mem_fun_pointer_impl<R (T::*)( T0) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 ...) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 ...) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 ...) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 #endif
 template <class R, class T , class T0 , class T1>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
+#if !defined(NDNBOOST_TT_NO_CV_FUNC_TEST)
 template <class R, class T , class T0 , class T1>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 ...) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 ...) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 ...) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 #endif
 template <class R, class T , class T0 , class T1 , class T2>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
+#if !defined(NDNBOOST_TT_NO_CV_FUNC_TEST)
 template <class R, class T , class T0 , class T1 , class T2>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 ...) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 ...) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 ...) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 #endif
 template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
+#if !defined(NDNBOOST_TT_NO_CV_FUNC_TEST)
 template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 ...) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 ...) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 ...) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 #endif
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
+#if !defined(NDNBOOST_TT_NO_CV_FUNC_TEST)
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 ...) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 ...) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 ...) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 #endif
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
+#if !defined(NDNBOOST_TT_NO_CV_FUNC_TEST)
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 ...) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 #endif
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
+#if !defined(NDNBOOST_TT_NO_CV_FUNC_TEST)
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 #endif
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
+#if !defined(NDNBOOST_TT_NO_CV_FUNC_TEST)
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 #endif
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
+#if !defined(NDNBOOST_TT_NO_CV_FUNC_TEST)
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 #endif
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
+#if !defined(NDNBOOST_TT_NO_CV_FUNC_TEST)
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 #endif
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
+#if !defined(NDNBOOST_TT_NO_CV_FUNC_TEST)
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 #endif
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
+#if !defined(NDNBOOST_TT_NO_CV_FUNC_TEST)
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 #endif
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
+#if !defined(NDNBOOST_TT_NO_CV_FUNC_TEST)
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 #endif
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
+#if !defined(NDNBOOST_TT_NO_CV_FUNC_TEST)
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 #endif
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
+#if !defined(NDNBOOST_TT_NO_CV_FUNC_TEST)
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 #endif
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
+#if !defined(NDNBOOST_TT_NO_CV_FUNC_TEST)
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 #endif
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
+#if !defined(NDNBOOST_TT_NO_CV_FUNC_TEST)
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 #endif
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
+#if !defined(NDNBOOST_TT_NO_CV_FUNC_TEST)
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 #endif
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
+#if !defined(NDNBOOST_TT_NO_CV_FUNC_TEST)
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 #endif
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
+#if !defined(NDNBOOST_TT_NO_CV_FUNC_TEST)
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 #endif
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
+#if !defined(NDNBOOST_TT_NO_CV_FUNC_TEST)
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 #endif
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
+#if !defined(NDNBOOST_TT_NO_CV_FUNC_TEST)
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 #endif
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
+#if !defined(NDNBOOST_TT_NO_CV_FUNC_TEST)
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 #endif
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
+#if !defined(NDNBOOST_TT_NO_CV_FUNC_TEST)
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 #endif
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
+#if !defined(NDNBOOST_TT_NO_CV_FUNC_TEST)
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 #endif
 #endif
 
 #else
 
-#undef BOOST_STATIC_CONSTANT
-#define BOOST_PP_ITERATION_PARAMS_1 \
+#undef NDNBOOST_STATIC_CONSTANT
+#define NDNBOOST_PP_ITERATION_PARAMS_1 \
     (3, (0, 25, "ndnboost/type_traits/detail/is_mem_fun_pointer_impl.hpp"))
-#include BOOST_PP_ITERATE()
+#include NDNBOOST_PP_ITERATE()
 
-#endif // BOOST_TT_PREPROCESSING_MODE
+#endif // NDNBOOST_TT_PREPROCESSING_MODE
 
 } // namespace type_traits
 } // namespace ndnboost
 
-#endif // BOOST_TT_DETAIL_IS_MEM_FUN_POINTER_IMPL_HPP_INCLUDED
+#endif // NDNBOOST_TT_DETAIL_IS_MEM_FUN_POINTER_IMPL_HPP_INCLUDED
 
 ///// iteration
 
 #else
-#define BOOST_PP_COUNTER BOOST_PP_FRAME_ITERATION(1)
+#define NDNBOOST_PP_COUNTER NDNBOOST_PP_FRAME_ITERATION(1)
 
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct is_mem_fun_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct is_mem_fun_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
+template <class R, class T NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T)>
+struct is_mem_fun_pointer_impl<R (T::*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T)) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
+@#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+template <class R, class T NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T)>
+struct is_mem_fun_pointer_impl<R (T::*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T) ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 @#endif
 
-@#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct is_mem_fun_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+@#if !defined(NDNBOOST_TT_NO_CV_FUNC_TEST)
+template <class R, class T NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T)>
+struct is_mem_fun_pointer_impl<R (T::*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T)) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct is_mem_fun_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+template <class R, class T NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T)>
+struct is_mem_fun_pointer_impl<R (T::*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T)) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct is_mem_fun_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+template <class R, class T NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T)>
+struct is_mem_fun_pointer_impl<R (T::*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T)) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
-@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct is_mem_fun_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
+@#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+template <class R, class T NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T)>
+struct is_mem_fun_pointer_impl<R (T::*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T) ...) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct is_mem_fun_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+template <class R, class T NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T)>
+struct is_mem_fun_pointer_impl<R (T::*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T) ...) volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct is_mem_fun_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
+template <class R, class T NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T)>
+struct is_mem_fun_pointer_impl<R (T::*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T) ...) const volatile > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
 @#endif
 @#endif
 
-#undef BOOST_PP_COUNTER
-#endif // BOOST_PP_IS_ITERATING
+#undef NDNBOOST_PP_COUNTER
+#endif // NDNBOOST_PP_IS_ITERATING
 
diff --git a/include/ndnboost/type_traits/detail/is_mem_fun_pointer_tester.hpp b/include/ndnboost/type_traits/detail/is_mem_fun_pointer_tester.hpp
index 767c4f1..50744de 100644
--- a/include/ndnboost/type_traits/detail/is_mem_fun_pointer_tester.hpp
+++ b/include/ndnboost/type_traits/detail/is_mem_fun_pointer_tester.hpp
@@ -7,17 +7,17 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#if !defined(BOOST_PP_IS_ITERATING)
+#if !defined(NDNBOOST_PP_IS_ITERATING)
 
 ///// header body
 
-#ifndef BOOST_TT_DETAIL_IS_MEM_FUN_POINTER_TESTER_HPP_INCLUDED
-#define BOOST_TT_DETAIL_IS_MEM_FUN_POINTER_TESTER_HPP_INCLUDED
+#ifndef NDNBOOST_TT_DETAIL_IS_MEM_FUN_POINTER_TESTER_HPP_INCLUDED
+#define NDNBOOST_TT_DETAIL_IS_MEM_FUN_POINTER_TESTER_HPP_INCLUDED
 
 #include <ndnboost/type_traits/detail/yes_no_type.hpp>
 #include <ndnboost/type_traits/config.hpp>
 
-#if defined(BOOST_TT_PREPROCESSING_MODE)
+#if defined(NDNBOOST_TT_PREPROCESSING_MODE)
 #   include <ndnboost/preprocessor/iterate.hpp>
 #   include <ndnboost/preprocessor/enum_params.hpp>
 #   include <ndnboost/preprocessor/comma_if.hpp>
@@ -26,11 +26,11 @@
 namespace ndnboost {
 namespace type_traits {
 
-no_type BOOST_TT_DECL is_mem_fun_pointer_tester(...);
+no_type NDNBOOST_TT_DECL is_mem_fun_pointer_tester(...);
 
-#if !defined(BOOST_TT_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_TT_PREPROCESSING_MODE)
 // pre-processed code, don't edit, try GNU cpp with 
-// cpp -I../../../ -DBOOST_TT_PREPROCESSING_MODE -x c++ -P filename
+// cpp -I../../../ -DNDNBOOST_TT_PREPROCESSING_MODE -x c++ -P filename
 
 template <class R, class T >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)());
@@ -44,7 +44,7 @@
 template <class R, class T >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)() const volatile);
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( ...));
 
@@ -57,7 +57,7 @@
 template <class R, class T >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( ...) const volatile);
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R, class T >
 yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)());
 
@@ -144,7 +144,7 @@
 template <class R, class T , class T0 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0) const volatile);
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 ...));
 
@@ -157,7 +157,7 @@
 template <class R, class T , class T0 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 ...) const volatile);
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R, class T , class T0 >
 yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0));
 
@@ -244,7 +244,7 @@
 template <class R, class T , class T0 , class T1 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1) const volatile);
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 ...));
 
@@ -257,7 +257,7 @@
 template <class R, class T , class T0 , class T1 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 ...) const volatile);
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R, class T , class T0 , class T1 >
 yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1));
 
@@ -344,7 +344,7 @@
 template <class R, class T , class T0 , class T1 , class T2 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2) const volatile);
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 ...));
 
@@ -357,7 +357,7 @@
 template <class R, class T , class T0 , class T1 , class T2 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 ...) const volatile);
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R, class T , class T0 , class T1 , class T2 >
 yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2));
 
@@ -444,7 +444,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3) const volatile);
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 ...));
 
@@ -457,7 +457,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 ...) const volatile);
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R, class T , class T0 , class T1 , class T2 , class T3 >
 yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3));
 
@@ -544,7 +544,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const volatile);
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...));
 
@@ -557,7 +557,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) const volatile);
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
 yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4));
 
@@ -644,7 +644,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const volatile);
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...));
 
@@ -657,7 +657,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const volatile);
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
 yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5));
 
@@ -744,7 +744,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const volatile);
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...));
 
@@ -757,7 +757,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const volatile);
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
 yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6));
 
@@ -844,7 +844,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const volatile);
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...));
 
@@ -857,7 +857,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const volatile);
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
 yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7));
 
@@ -944,7 +944,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const volatile);
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...));
 
@@ -957,7 +957,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const volatile);
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
 yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8));
 
@@ -1044,7 +1044,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const volatile);
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...));
 
@@ -1057,7 +1057,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const volatile);
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
 yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9));
 
@@ -1144,7 +1144,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const volatile);
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...));
 
@@ -1157,7 +1157,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const volatile);
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
 yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10));
 
@@ -1244,7 +1244,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const volatile);
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...));
 
@@ -1257,7 +1257,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const volatile);
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
 yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11));
 
@@ -1344,7 +1344,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const volatile);
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...));
 
@@ -1357,7 +1357,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const volatile);
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
 yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12));
 
@@ -1444,7 +1444,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const volatile);
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...));
 
@@ -1457,7 +1457,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const volatile);
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
 yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13));
 
@@ -1544,7 +1544,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const volatile);
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...));
 
@@ -1557,7 +1557,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const volatile);
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
 yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14));
 
@@ -1644,7 +1644,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const volatile);
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...));
 
@@ -1657,7 +1657,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const volatile);
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
 yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15));
 
@@ -1744,7 +1744,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const volatile);
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...));
 
@@ -1757,7 +1757,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const volatile);
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
 yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16));
 
@@ -1844,7 +1844,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const volatile);
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...));
 
@@ -1857,7 +1857,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const volatile);
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
 yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17));
 
@@ -1944,7 +1944,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const volatile);
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...));
 
@@ -1957,7 +1957,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const volatile);
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
 yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18));
 
@@ -2044,7 +2044,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const volatile);
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...));
 
@@ -2057,7 +2057,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const volatile);
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
 yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19));
 
@@ -2144,7 +2144,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const volatile);
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...));
 
@@ -2157,7 +2157,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const volatile);
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
 yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20));
 
@@ -2244,7 +2244,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const volatile);
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...));
 
@@ -2257,7 +2257,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const volatile);
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
 yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21));
 
@@ -2344,7 +2344,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const volatile);
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...));
 
@@ -2357,7 +2357,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const volatile);
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
 yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22));
 
@@ -2444,7 +2444,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const volatile);
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...));
 
@@ -2457,7 +2457,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const volatile);
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
 yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23));
 
@@ -2544,7 +2544,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const volatile);
 
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...));
 
@@ -2557,7 +2557,7 @@
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
 yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const volatile);
 #endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
+#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
 yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24));
 
@@ -2635,125 +2635,125 @@
 
 #else
 
-#define BOOST_PP_ITERATION_PARAMS_1 \
+#define NDNBOOST_PP_ITERATION_PARAMS_1 \
     (3, (0, 25, "ndnboost/type_traits/detail/is_mem_fun_pointer_tester.hpp"))
-#include BOOST_PP_ITERATE()
+#include NDNBOOST_PP_ITERATE()
 
-#endif // BOOST_TT_PREPROCESSING_MODE
+#endif // NDNBOOST_TT_PREPROCESSING_MODE
 
 } // namespace type_traits
 } // namespace ndnboost
 
-#endif // BOOST_TT_DETAIL_IS_MEM_FUN_POINTER_TESTER_HPP_INCLUDED
+#endif // NDNBOOST_TT_DETAIL_IS_MEM_FUN_POINTER_TESTER_HPP_INCLUDED
 
 ///// iteration
 
 #else
-#define BOOST_PP_COUNTER BOOST_PP_FRAME_ITERATION(1)
+#define NDNBOOST_PP_COUNTER NDNBOOST_PP_FRAME_ITERATION(1)
 #undef __stdcall
 #undef __fastcall
 #undef __cdecl
 
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)));
+template <class R, class T NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T) >
+yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T)));
 
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const);
+template <class R, class T NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T) >
+yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T)) const);
 
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) volatile);
+template <class R, class T NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T) >
+yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T)) volatile);
 
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const volatile);
+template <class R, class T NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T) >
+yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T)) const volatile);
 
-@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...));
+@#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
+template <class R, class T NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T) >
+yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T) ...));
 
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const);
+template <class R, class T NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T) >
+yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T) ...) const);
 
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) volatile);
+template <class R, class T NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T) >
+yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T) ...) volatile);
 
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const volatile);
+template <class R, class T NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T) >
+yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T) ...) const volatile);
 @#endif
-@#ifdef BOOST_TT_TEST_MS_FUNC_SIGS // Other calling conventions used by MS compatible compilers:
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)));
+@#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS // Other calling conventions used by MS compatible compilers:
+template <class R, class T NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T) >
+yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T)));
 
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const);
+template <class R, class T NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T) >
+yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T)) const);
 
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) volatile);
+template <class R, class T NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T) >
+yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T)) volatile);
 
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const volatile);
+template <class R, class T NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T) >
+yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T)) const volatile);
 
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...));
+template <class R, class T NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T) >
+yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T) ...));
 
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const);
+template <class R, class T NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T) >
+yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T) ...) const);
 
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) volatile);
+template <class R, class T NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T) >
+yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T) ...) volatile);
 
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const volatile);
+template <class R, class T NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T) >
+yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T) ...) const volatile);
 
 @#ifndef _MANAGED
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)));
+template <class R, class T NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T) >
+yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T)));
 
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const);
+template <class R, class T NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T) >
+yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T)) const);
 
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) volatile);
+template <class R, class T NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T) >
+yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T)) volatile);
 
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const volatile);
+template <class R, class T NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T) >
+yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T)) const volatile);
 
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...));
+template <class R, class T NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T) >
+yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T) ...));
 
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const);
+template <class R, class T NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T) >
+yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T) ...) const);
 
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) volatile);
+template <class R, class T NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T) >
+yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T) ...) volatile);
 
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const volatile);
+template <class R, class T NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T) >
+yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T) ...) const volatile);
 @#endif
 
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)));
+template <class R, class T NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T) >
+yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T)));
 
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const);
+template <class R, class T NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T) >
+yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T)) const);
 
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) volatile);
+template <class R, class T NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T) >
+yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T)) volatile);
 
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const volatile);
+template <class R, class T NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T) >
+yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T)) const volatile);
 
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...));
+template <class R, class T NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T) >
+yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T) ...));
 
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const);
+template <class R, class T NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T) >
+yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T) ...) const);
 
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) volatile);
+template <class R, class T NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T) >
+yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T) ...) volatile);
 
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const volatile);
+template <class R, class T NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_COUNTER) NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,class T) >
+yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_COUNTER,T) ...) const volatile);
 @#endif
 
-#undef BOOST_PP_COUNTER
-#endif // BOOST_PP_IS_ITERATING
+#undef NDNBOOST_PP_COUNTER
+#endif // NDNBOOST_PP_IS_ITERATING
diff --git a/include/ndnboost/type_traits/detail/size_t_trait_def.hpp b/include/ndnboost/type_traits/detail/size_t_trait_def.hpp
index 48afada..40908e7 100644
--- a/include/ndnboost/type_traits/detail/size_t_trait_def.hpp
+++ b/include/ndnboost/type_traits/detail/size_t_trait_def.hpp
@@ -18,43 +18,43 @@
 
 #include <cstddef>
 
-#if !defined(BOOST_MSVC) || BOOST_MSVC >= 1300
-#   define BOOST_TT_AUX_SIZE_T_BASE(C) public ::ndnboost::integral_constant<std::size_t,C>
-#   define BOOST_TT_AUX_SIZE_T_TRAIT_VALUE_DECL(C) /**/
+#if !defined(NDNBOOST_MSVC) || NDNBOOST_MSVC >= 1300
+#   define NDNBOOST_TT_AUX_SIZE_T_BASE(C) public ::ndnboost::integral_constant<std::size_t,C>
+#   define NDNBOOST_TT_AUX_SIZE_T_TRAIT_VALUE_DECL(C) /**/
 #else
-#   define BOOST_TT_AUX_SIZE_T_BASE(C) public ::ndnboost::mpl::size_t<C>
-#   define BOOST_TT_AUX_SIZE_T_TRAIT_VALUE_DECL(C) \
+#   define NDNBOOST_TT_AUX_SIZE_T_BASE(C) public ::ndnboost::mpl::size_t<C>
+#   define NDNBOOST_TT_AUX_SIZE_T_TRAIT_VALUE_DECL(C) \
     typedef ::ndnboost::mpl::size_t<C> base_; \
     using base_::value; \
     /**/
 #endif
 
 
-#define BOOST_TT_AUX_SIZE_T_TRAIT_DEF1(trait,T,C) \
+#define NDNBOOST_TT_AUX_SIZE_T_TRAIT_DEF1(trait,T,C) \
 template< typename T > struct trait \
-    : BOOST_TT_AUX_SIZE_T_BASE(C) \
+    : NDNBOOST_TT_AUX_SIZE_T_BASE(C) \
 { \
 public:\
-    BOOST_TT_AUX_SIZE_T_TRAIT_VALUE_DECL(C) \
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,trait,(T)) \
+    NDNBOOST_TT_AUX_SIZE_T_TRAIT_VALUE_DECL(C) \
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,trait,(T)) \
 }; \
 \
-BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1,trait) \
+NDNBOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1,trait) \
 /**/
 
-#define BOOST_TT_AUX_SIZE_T_TRAIT_SPEC1(trait,spec,C) \
+#define NDNBOOST_TT_AUX_SIZE_T_TRAIT_SPEC1(trait,spec,C) \
 template<> struct trait<spec> \
-    : BOOST_TT_AUX_SIZE_T_BASE(C) \
+    : NDNBOOST_TT_AUX_SIZE_T_BASE(C) \
 { \
 public:\
-    BOOST_TT_AUX_SIZE_T_TRAIT_VALUE_DECL(C) \
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(1,trait,(spec)) \
+    NDNBOOST_TT_AUX_SIZE_T_TRAIT_VALUE_DECL(C) \
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(1,trait,(spec)) \
 }; \
 /**/
 
-#define BOOST_TT_AUX_SIZE_T_TRAIT_PARTIAL_SPEC1_1(param,trait,spec,C) \
+#define NDNBOOST_TT_AUX_SIZE_T_TRAIT_PARTIAL_SPEC1_1(param,trait,spec,C) \
 template< param > struct trait<spec> \
-    : BOOST_TT_AUX_SIZE_T_BASE(C) \
+    : NDNBOOST_TT_AUX_SIZE_T_BASE(C) \
 { \
 }; \
 /**/
diff --git a/include/ndnboost/type_traits/detail/size_t_trait_undef.hpp b/include/ndnboost/type_traits/detail/size_t_trait_undef.hpp
index 967fd91..5ab14d9 100644
--- a/include/ndnboost/type_traits/detail/size_t_trait_undef.hpp
+++ b/include/ndnboost/type_traits/detail/size_t_trait_undef.hpp
@@ -11,6 +11,6 @@
 // $Date: 2004-09-02 08:41:37 -0700 (Thu, 02 Sep 2004) $
 // $Revision: 24874 $
 
-#undef BOOST_TT_AUX_SIZE_T_TRAIT_DEF1
-#undef BOOST_TT_AUX_SIZE_T_TRAIT_SPEC1
-#undef BOOST_TT_AUX_SIZE_T_TRAIT_PARTIAL_SPEC1_1
+#undef NDNBOOST_TT_AUX_SIZE_T_TRAIT_DEF1
+#undef NDNBOOST_TT_AUX_SIZE_T_TRAIT_SPEC1
+#undef NDNBOOST_TT_AUX_SIZE_T_TRAIT_PARTIAL_SPEC1_1
diff --git a/include/ndnboost/type_traits/detail/template_arity_spec.hpp b/include/ndnboost/type_traits/detail/template_arity_spec.hpp
index cef622d..4feb8d3 100644
--- a/include/ndnboost/type_traits/detail/template_arity_spec.hpp
+++ b/include/ndnboost/type_traits/detail/template_arity_spec.hpp
@@ -13,13 +13,13 @@
 #include <ndnboost/mpl/aux_/config/lambda.hpp>
 #include <ndnboost/mpl/aux_/config/overload_resolution.hpp>
 
-#if defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) \
-    && defined(BOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION)
-#   define BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(i, name) \
+#if defined(NDNBOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) \
+    && defined(NDNBOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION)
+#   define NDNBOOST_TT_AUX_TEMPLATE_ARITY_SPEC(i, name) \
 namespace mpl { namespace aux { \
-template< BOOST_MPL_PP_PARAMS(i, typename T) > \
+template< NDNBOOST_MPL_PP_PARAMS(i, typename T) > \
 struct template_arity< \
-          name< BOOST_MPL_PP_PARAMS(i, T) > \
+          name< NDNBOOST_MPL_PP_PARAMS(i, T) > \
         > \
     : int_<i> \
 { \
@@ -27,5 +27,5 @@
 }} \
 /**/
 #else
-#   define BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(i, name) /**/
+#   define NDNBOOST_TT_AUX_TEMPLATE_ARITY_SPEC(i, name) /**/
 #endif
diff --git a/include/ndnboost/type_traits/detail/type_trait_def.hpp b/include/ndnboost/type_traits/detail/type_trait_def.hpp
index acb8111..83d0444 100644
--- a/include/ndnboost/type_traits/detail/type_trait_def.hpp
+++ b/include/ndnboost/type_traits/detail/type_trait_def.hpp
@@ -14,27 +14,27 @@
 #include <ndnboost/type_traits/detail/template_arity_spec.hpp>
 #include <ndnboost/mpl/aux_/lambda_support.hpp>
 
-#define BOOST_TT_AUX_TYPE_TRAIT_DEF1(trait,T,result) \
+#define NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(trait,T,result) \
 template< typename T > struct trait \
 { \
 public:\
     typedef result type; \
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,trait,(T)) \
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,trait,(T)) \
 }; \
 \
-BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1,trait) \
+NDNBOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1,trait) \
 /**/
 
-#define BOOST_TT_AUX_TYPE_TRAIT_SPEC1(trait,spec,result) \
+#define NDNBOOST_TT_AUX_TYPE_TRAIT_SPEC1(trait,spec,result) \
 template<> struct trait<spec> \
 { \
 public:\
     typedef result type; \
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(1,trait,(spec)) \
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(1,trait,(spec)) \
 }; \
 /**/
 
-#define BOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1(trait,spec,result) \
+#define NDNBOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1(trait,spec,result) \
 template<> struct trait##_impl<spec> \
 { \
 public:\
@@ -42,7 +42,7 @@
 }; \
 /**/
 
-#define BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(param,trait,spec,result) \
+#define NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(param,trait,spec,result) \
 template< param > struct trait<spec> \
 { \
 public:\
@@ -50,7 +50,7 @@
 }; \
 /**/
 
-#define BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(param1,param2,trait,spec,result) \
+#define NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(param1,param2,trait,spec,result) \
 template< param1, param2 > struct trait<spec> \
 { \
 public:\
@@ -58,7 +58,7 @@
 }; \
 /**/
 
-#define BOOST_TT_AUX_TYPE_TRAIT_IMPL_PARTIAL_SPEC1_1(param,trait,spec,result) \
+#define NDNBOOST_TT_AUX_TYPE_TRAIT_IMPL_PARTIAL_SPEC1_1(param,trait,spec,result) \
 template< param > struct trait##_impl<spec> \
 { \
 public:\
diff --git a/include/ndnboost/type_traits/detail/type_trait_undef.hpp b/include/ndnboost/type_traits/detail/type_trait_undef.hpp
index c4f14ff..9646333 100644
--- a/include/ndnboost/type_traits/detail/type_trait_undef.hpp
+++ b/include/ndnboost/type_traits/detail/type_trait_undef.hpp
@@ -11,9 +11,9 @@
 // $Date: 2004-09-02 08:41:37 -0700 (Thu, 02 Sep 2004) $
 // $Revision: 24874 $
 
-#undef BOOST_TT_AUX_TYPE_TRAIT_DEF1
-#undef BOOST_TT_AUX_TYPE_TRAIT_SPEC1
-#undef BOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1
-#undef BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1
-#undef BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2
-#undef BOOST_TT_AUX_TYPE_TRAIT_IMPL_PARTIAL_SPEC1_1
+#undef NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1
+#undef NDNBOOST_TT_AUX_TYPE_TRAIT_SPEC1
+#undef NDNBOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1
+#undef NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1
+#undef NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2
+#undef NDNBOOST_TT_AUX_TYPE_TRAIT_IMPL_PARTIAL_SPEC1_1
diff --git a/include/ndnboost/type_traits/detail/wrap.hpp b/include/ndnboost/type_traits/detail/wrap.hpp
index 6985113..216b657 100644
--- a/include/ndnboost/type_traits/detail/wrap.hpp
+++ b/include/ndnboost/type_traits/detail/wrap.hpp
@@ -5,8 +5,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_DETAIL_WRAP_HPP_INCLUDED
-#define BOOST_TT_DETAIL_WRAP_HPP_INCLUDED
+#ifndef NDNBOOST_TT_DETAIL_WRAP_HPP_INCLUDED
+#define NDNBOOST_TT_DETAIL_WRAP_HPP_INCLUDED
 
 namespace ndnboost {
 namespace type_traits {
@@ -15,4 +15,4 @@
 
 }} // namespace ndnboost::type_traits
 
-#endif // BOOST_TT_DETAIL_WRAP_HPP_INCLUDED
+#endif // NDNBOOST_TT_DETAIL_WRAP_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/detail/yes_no_type.hpp b/include/ndnboost/type_traits/detail/yes_no_type.hpp
index 4a6cb68..e49877d 100644
--- a/include/ndnboost/type_traits/detail/yes_no_type.hpp
+++ b/include/ndnboost/type_traits/detail/yes_no_type.hpp
@@ -8,8 +8,8 @@
 //
 //  macros and helpers for working with integral-constant-expressions.
 
-#ifndef BOOST_TT_DETAIL_YES_NO_TYPE_HPP_INCLUDED
-#define BOOST_TT_DETAIL_YES_NO_TYPE_HPP_INCLUDED
+#ifndef NDNBOOST_TT_DETAIL_YES_NO_TYPE_HPP_INCLUDED
+#define NDNBOOST_TT_DETAIL_YES_NO_TYPE_HPP_INCLUDED
 
 namespace ndnboost {
 namespace type_traits {
@@ -23,4 +23,4 @@
 } // namespace type_traits
 } // namespace ndnboost
 
-#endif // BOOST_TT_DETAIL_YES_NO_TYPE_HPP_INCLUDED
+#endif // NDNBOOST_TT_DETAIL_YES_NO_TYPE_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/extent.hpp b/include/ndnboost/type_traits/extent.hpp
index f894eba..94de548 100644
--- a/include/ndnboost/type_traits/extent.hpp
+++ b/include/ndnboost/type_traits/extent.hpp
@@ -7,8 +7,8 @@
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
 
-#ifndef BOOST_TT_EXTENT_HPP_INCLUDED
-#define BOOST_TT_EXTENT_HPP_INCLUDED
+#ifndef NDNBOOST_TT_EXTENT_HPP_INCLUDED
+#define NDNBOOST_TT_EXTENT_HPP_INCLUDED
 
 // should be the last #include
 #include <ndnboost/type_traits/detail/size_t_trait_def.hpp>
@@ -29,97 +29,97 @@
 template <class T, std::size_t N>
 struct extent_imp
 {
-   BOOST_STATIC_CONSTANT(std::size_t, value = 0);
+   NDNBOOST_STATIC_CONSTANT(std::size_t, value = 0);
 };
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(NDNBOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
 template <class T, std::size_t R, std::size_t N>
 struct extent_imp<T[R], N>
 {
-   BOOST_STATIC_CONSTANT(std::size_t, value = (::ndnboost::detail::extent_imp<T, N-1>::value));
+   NDNBOOST_STATIC_CONSTANT(std::size_t, value = (::ndnboost::detail::extent_imp<T, N-1>::value));
 };
 
 template <class T, std::size_t R, std::size_t N>
 struct extent_imp<T const[R], N>
 {
-   BOOST_STATIC_CONSTANT(std::size_t, value = (::ndnboost::detail::extent_imp<T, N-1>::value));
+   NDNBOOST_STATIC_CONSTANT(std::size_t, value = (::ndnboost::detail::extent_imp<T, N-1>::value));
 };
 
 template <class T, std::size_t R, std::size_t N>
 struct extent_imp<T volatile[R], N>
 {
-   BOOST_STATIC_CONSTANT(std::size_t, value = (::ndnboost::detail::extent_imp<T, N-1>::value));
+   NDNBOOST_STATIC_CONSTANT(std::size_t, value = (::ndnboost::detail::extent_imp<T, N-1>::value));
 };
 
 template <class T, std::size_t R, std::size_t N>
 struct extent_imp<T const volatile[R], N>
 {
-   BOOST_STATIC_CONSTANT(std::size_t, value = (::ndnboost::detail::extent_imp<T, N-1>::value));
+   NDNBOOST_STATIC_CONSTANT(std::size_t, value = (::ndnboost::detail::extent_imp<T, N-1>::value));
 };
 
 template <class T, std::size_t R>
 struct extent_imp<T[R],0>
 {
-   BOOST_STATIC_CONSTANT(std::size_t, value = R);
+   NDNBOOST_STATIC_CONSTANT(std::size_t, value = R);
 };
 
 template <class T, std::size_t R>
 struct extent_imp<T const[R], 0>
 {
-   BOOST_STATIC_CONSTANT(std::size_t, value = R);
+   NDNBOOST_STATIC_CONSTANT(std::size_t, value = R);
 };
 
 template <class T, std::size_t R>
 struct extent_imp<T volatile[R], 0>
 {
-   BOOST_STATIC_CONSTANT(std::size_t, value = R);
+   NDNBOOST_STATIC_CONSTANT(std::size_t, value = R);
 };
 
 template <class T, std::size_t R>
 struct extent_imp<T const volatile[R], 0>
 {
-   BOOST_STATIC_CONSTANT(std::size_t, value = R);
+   NDNBOOST_STATIC_CONSTANT(std::size_t, value = R);
 };
 
-#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(__IBMCPP__) &&  !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) && !defined(__MWERKS__)
+#if !NDNBOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(__IBMCPP__) &&  !NDNBOOST_WORKAROUND(__DMC__, NDNBOOST_TESTED_AT(0x840)) && !defined(__MWERKS__)
 template <class T, std::size_t N>
 struct extent_imp<T[], N>
 {
-   BOOST_STATIC_CONSTANT(std::size_t, value = (::ndnboost::detail::extent_imp<T, N-1>::value));
+   NDNBOOST_STATIC_CONSTANT(std::size_t, value = (::ndnboost::detail::extent_imp<T, N-1>::value));
 };
 template <class T, std::size_t N>
 struct extent_imp<T const[], N>
 {
-   BOOST_STATIC_CONSTANT(std::size_t, value = (::ndnboost::detail::extent_imp<T, N-1>::value));
+   NDNBOOST_STATIC_CONSTANT(std::size_t, value = (::ndnboost::detail::extent_imp<T, N-1>::value));
 };
 template <class T, std::size_t N>
 struct extent_imp<T volatile[], N>
 {
-   BOOST_STATIC_CONSTANT(std::size_t, value = (::ndnboost::detail::extent_imp<T, N-1>::value));
+   NDNBOOST_STATIC_CONSTANT(std::size_t, value = (::ndnboost::detail::extent_imp<T, N-1>::value));
 };
 template <class T, std::size_t N>
 struct extent_imp<T const volatile[], N>
 {
-   BOOST_STATIC_CONSTANT(std::size_t, value = (::ndnboost::detail::extent_imp<T, N-1>::value));
+   NDNBOOST_STATIC_CONSTANT(std::size_t, value = (::ndnboost::detail::extent_imp<T, N-1>::value));
 };
 template <class T>
 struct extent_imp<T[], 0>
 {
-   BOOST_STATIC_CONSTANT(std::size_t, value = 0);
+   NDNBOOST_STATIC_CONSTANT(std::size_t, value = 0);
 };
 template <class T>
 struct extent_imp<T const[], 0>
 {
-   BOOST_STATIC_CONSTANT(std::size_t, value = 0);
+   NDNBOOST_STATIC_CONSTANT(std::size_t, value = 0);
 };
 template <class T>
 struct extent_imp<T volatile[], 0>
 {
-   BOOST_STATIC_CONSTANT(std::size_t, value = 0);
+   NDNBOOST_STATIC_CONSTANT(std::size_t, value = 0);
 };
 template <class T>
 struct extent_imp<T const volatile[], 0>
 {
-   BOOST_STATIC_CONSTANT(std::size_t, value = 0);
+   NDNBOOST_STATIC_CONSTANT(std::size_t, value = 0);
 };
 #endif
 #endif
@@ -131,15 +131,15 @@
 struct extent
    : public ::ndnboost::integral_constant<std::size_t, ::ndnboost::detail::extent_imp<T,N>::value>
 {
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) 
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300) 
    typedef ::ndnboost::integral_constant<std::size_t, ::ndnboost::detail::extent_imp<T,N>::value> base_; 
    using base_::value;
 #endif
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,extent,(T))
+    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,extent,(T))
 };
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/size_t_trait_undef.hpp>
 
-#endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
+#endif // NDNBOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/floating_point_promotion.hpp b/include/ndnboost/type_traits/floating_point_promotion.hpp
index a5a5861..3db875d 100644
--- a/include/ndnboost/type_traits/floating_point_promotion.hpp
+++ b/include/ndnboost/type_traits/floating_point_promotion.hpp
@@ -8,7 +8,7 @@
 
 #include <ndnboost/config.hpp>
 
-#ifdef BOOST_NO_CV_SPECIALIZATIONS
+#ifdef NDNBOOST_NO_CV_SPECIALIZATIONS
 #include <ndnboost/mpl/at.hpp>
 #include <ndnboost/mpl/int.hpp>
 #include <ndnboost/mpl/multiplies.hpp>
@@ -24,7 +24,7 @@
 
 namespace type_traits { namespace detail {
 
-#ifndef BOOST_NO_CV_SPECIALIZATIONS
+#ifndef NDNBOOST_NO_CV_SPECIALIZATIONS
 
 template<class T>
 struct floating_point_promotion
@@ -77,10 +77,10 @@
 
 } }
 
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(
+NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(
       floating_point_promotion
     , T
-    , BOOST_DEDUCED_TYPENAME
+    , NDNBOOST_DEDUCED_TYPENAME
         ndnboost::type_traits::detail::floating_point_promotion<T>::type
     )
 }
diff --git a/include/ndnboost/type_traits/function_traits.hpp b/include/ndnboost/type_traits/function_traits.hpp
index 59ca94f..41260db 100644
--- a/include/ndnboost/type_traits/function_traits.hpp
+++ b/include/ndnboost/type_traits/function_traits.hpp
@@ -6,8 +6,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_FUNCTION_TRAITS_HPP_INCLUDED
-#define BOOST_TT_FUNCTION_TRAITS_HPP_INCLUDED
+#ifndef NDNBOOST_TT_FUNCTION_TRAITS_HPP_INCLUDED
+#define NDNBOOST_TT_FUNCTION_TRAITS_HPP_INCLUDED
 
 #include <ndnboost/config.hpp>
 #include <ndnboost/type_traits/is_function.hpp>
@@ -15,7 +15,7 @@
 
 namespace ndnboost {
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 namespace detail {
 
 template<typename Function> struct function_traits_helper;
@@ -23,14 +23,14 @@
 template<typename R>
 struct function_traits_helper<R (*)(void)>
 {
-  BOOST_STATIC_CONSTANT(unsigned, arity = 0);
+  NDNBOOST_STATIC_CONSTANT(unsigned, arity = 0);
   typedef R result_type;
 };
 
 template<typename R, typename T1>
 struct function_traits_helper<R (*)(T1)>
 {
-  BOOST_STATIC_CONSTANT(unsigned, arity = 1);
+  NDNBOOST_STATIC_CONSTANT(unsigned, arity = 1);
   typedef R result_type;
   typedef T1 arg1_type;
   typedef T1 argument_type;
@@ -39,7 +39,7 @@
 template<typename R, typename T1, typename T2>
 struct function_traits_helper<R (*)(T1, T2)>
 {
-  BOOST_STATIC_CONSTANT(unsigned, arity = 2);
+  NDNBOOST_STATIC_CONSTANT(unsigned, arity = 2);
   typedef R result_type;
   typedef T1 arg1_type;
   typedef T2 arg2_type;
@@ -50,7 +50,7 @@
 template<typename R, typename T1, typename T2, typename T3>
 struct function_traits_helper<R (*)(T1, T2, T3)>
 {
-  BOOST_STATIC_CONSTANT(unsigned, arity = 3);
+  NDNBOOST_STATIC_CONSTANT(unsigned, arity = 3);
   typedef R result_type;
   typedef T1 arg1_type;
   typedef T2 arg2_type;
@@ -60,7 +60,7 @@
 template<typename R, typename T1, typename T2, typename T3, typename T4>
 struct function_traits_helper<R (*)(T1, T2, T3, T4)>
 {
-  BOOST_STATIC_CONSTANT(unsigned, arity = 4);
+  NDNBOOST_STATIC_CONSTANT(unsigned, arity = 4);
   typedef R result_type;
   typedef T1 arg1_type;
   typedef T2 arg2_type;
@@ -72,7 +72,7 @@
          typename T5>
 struct function_traits_helper<R (*)(T1, T2, T3, T4, T5)>
 {
-  BOOST_STATIC_CONSTANT(unsigned, arity = 5);
+  NDNBOOST_STATIC_CONSTANT(unsigned, arity = 5);
   typedef R result_type;
   typedef T1 arg1_type;
   typedef T2 arg2_type;
@@ -85,7 +85,7 @@
          typename T5, typename T6>
 struct function_traits_helper<R (*)(T1, T2, T3, T4, T5, T6)>
 {
-  BOOST_STATIC_CONSTANT(unsigned, arity = 6);
+  NDNBOOST_STATIC_CONSTANT(unsigned, arity = 6);
   typedef R result_type;
   typedef T1 arg1_type;
   typedef T2 arg2_type;
@@ -99,7 +99,7 @@
          typename T5, typename T6, typename T7>
 struct function_traits_helper<R (*)(T1, T2, T3, T4, T5, T6, T7)>
 {
-  BOOST_STATIC_CONSTANT(unsigned, arity = 7);
+  NDNBOOST_STATIC_CONSTANT(unsigned, arity = 7);
   typedef R result_type;
   typedef T1 arg1_type;
   typedef T2 arg2_type;
@@ -114,7 +114,7 @@
          typename T5, typename T6, typename T7, typename T8>
 struct function_traits_helper<R (*)(T1, T2, T3, T4, T5, T6, T7, T8)>
 {
-  BOOST_STATIC_CONSTANT(unsigned, arity = 8);
+  NDNBOOST_STATIC_CONSTANT(unsigned, arity = 8);
   typedef R result_type;
   typedef T1 arg1_type;
   typedef T2 arg2_type;
@@ -130,7 +130,7 @@
          typename T5, typename T6, typename T7, typename T8, typename T9>
 struct function_traits_helper<R (*)(T1, T2, T3, T4, T5, T6, T7, T8, T9)>
 {
-  BOOST_STATIC_CONSTANT(unsigned, arity = 9);
+  NDNBOOST_STATIC_CONSTANT(unsigned, arity = 9);
   typedef R result_type;
   typedef T1 arg1_type;
   typedef T2 arg2_type;
@@ -148,7 +148,7 @@
          typename T10>
 struct function_traits_helper<R (*)(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)>
 {
-  BOOST_STATIC_CONSTANT(unsigned, arity = 10);
+  NDNBOOST_STATIC_CONSTANT(unsigned, arity = 10);
   typedef R result_type;
   typedef T1 arg1_type;
   typedef T2 arg2_type;
@@ -227,10 +227,10 @@
 template<typename Function>
 struct function_traits
 {
-  BOOST_STATIC_CONSTANT(unsigned, arity = (sizeof(ndnboost::detail::function_arity_helper((Function*)0))-1));
+  NDNBOOST_STATIC_CONSTANT(unsigned, arity = (sizeof(ndnboost::detail::function_arity_helper((Function*)0))-1));
 };
 
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 }
 
-#endif // BOOST_TT_FUNCTION_TRAITS_HPP_INCLUDED
+#endif // NDNBOOST_TT_FUNCTION_TRAITS_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/has_bit_and.hpp b/include/ndnboost/type_traits/has_bit_and.hpp
index 0cc0982..ba2d0e5 100644
--- a/include/ndnboost/type_traits/has_bit_and.hpp
+++ b/include/ndnboost/type_traits/has_bit_and.hpp
@@ -6,12 +6,12 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_BIT_AND_HPP_INCLUDED
-#define BOOST_TT_HAS_BIT_AND_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_BIT_AND_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_BIT_AND_HPP_INCLUDED
 
-#define BOOST_TT_TRAIT_NAME has_bit_and
-#define BOOST_TT_TRAIT_OP &
-#define BOOST_TT_FORBIDDEN_IF\
+#define NDNBOOST_TT_TRAIT_NAME has_bit_and
+#define NDNBOOST_TT_TRAIT_OP &
+#define NDNBOOST_TT_FORBIDDEN_IF\
    ::ndnboost::type_traits::ice_or<\
       /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
       ::ndnboost::type_traits::ice_and<\
@@ -42,8 +42,8 @@
 
 #include <ndnboost/type_traits/detail/has_binary_operator.hpp>
 
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
+#undef NDNBOOST_TT_TRAIT_NAME
+#undef NDNBOOST_TT_TRAIT_OP
+#undef NDNBOOST_TT_FORBIDDEN_IF
 
 #endif
diff --git a/include/ndnboost/type_traits/has_bit_and_assign.hpp b/include/ndnboost/type_traits/has_bit_and_assign.hpp
index 41a9365..ecf65e0 100644
--- a/include/ndnboost/type_traits/has_bit_and_assign.hpp
+++ b/include/ndnboost/type_traits/has_bit_and_assign.hpp
@@ -6,12 +6,12 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_BIT_AND_ASSIGN_HPP_INCLUDED
-#define BOOST_TT_HAS_BIT_AND_ASSIGN_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_BIT_AND_ASSIGN_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_BIT_AND_ASSIGN_HPP_INCLUDED
 
-#define BOOST_TT_TRAIT_NAME has_bit_and_assign
-#define BOOST_TT_TRAIT_OP &=
-#define BOOST_TT_FORBIDDEN_IF\
+#define NDNBOOST_TT_TRAIT_NAME has_bit_and_assign
+#define NDNBOOST_TT_TRAIT_OP &=
+#define NDNBOOST_TT_FORBIDDEN_IF\
    ::ndnboost::type_traits::ice_or<\
       /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
       ::ndnboost::type_traits::ice_and<\
@@ -48,8 +48,8 @@
 
 #include <ndnboost/type_traits/detail/has_binary_operator.hpp>
 
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
+#undef NDNBOOST_TT_TRAIT_NAME
+#undef NDNBOOST_TT_TRAIT_OP
+#undef NDNBOOST_TT_FORBIDDEN_IF
 
 #endif
diff --git a/include/ndnboost/type_traits/has_bit_or.hpp b/include/ndnboost/type_traits/has_bit_or.hpp
index 2ce3273..1a97651 100644
--- a/include/ndnboost/type_traits/has_bit_or.hpp
+++ b/include/ndnboost/type_traits/has_bit_or.hpp
@@ -6,12 +6,12 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_BIT_OR_HPP_INCLUDED
-#define BOOST_TT_HAS_BIT_OR_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_BIT_OR_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_BIT_OR_HPP_INCLUDED
 
-#define BOOST_TT_TRAIT_NAME has_bit_or
-#define BOOST_TT_TRAIT_OP |
-#define BOOST_TT_FORBIDDEN_IF\
+#define NDNBOOST_TT_TRAIT_NAME has_bit_or
+#define NDNBOOST_TT_TRAIT_OP |
+#define NDNBOOST_TT_FORBIDDEN_IF\
    ::ndnboost::type_traits::ice_or<\
       /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
       ::ndnboost::type_traits::ice_and<\
@@ -42,8 +42,8 @@
 
 #include <ndnboost/type_traits/detail/has_binary_operator.hpp>
 
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
+#undef NDNBOOST_TT_TRAIT_NAME
+#undef NDNBOOST_TT_TRAIT_OP
+#undef NDNBOOST_TT_FORBIDDEN_IF
 
 #endif
diff --git a/include/ndnboost/type_traits/has_bit_or_assign.hpp b/include/ndnboost/type_traits/has_bit_or_assign.hpp
index 17b7c18..bf73437 100644
--- a/include/ndnboost/type_traits/has_bit_or_assign.hpp
+++ b/include/ndnboost/type_traits/has_bit_or_assign.hpp
@@ -6,12 +6,12 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_BIT_OR_ASSIGN_HPP_INCLUDED
-#define BOOST_TT_HAS_BIT_OR_ASSIGN_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_BIT_OR_ASSIGN_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_BIT_OR_ASSIGN_HPP_INCLUDED
 
-#define BOOST_TT_TRAIT_NAME has_bit_or_assign
-#define BOOST_TT_TRAIT_OP |=
-#define BOOST_TT_FORBIDDEN_IF\
+#define NDNBOOST_TT_TRAIT_NAME has_bit_or_assign
+#define NDNBOOST_TT_TRAIT_OP |=
+#define NDNBOOST_TT_FORBIDDEN_IF\
    ::ndnboost::type_traits::ice_or<\
       /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
       ::ndnboost::type_traits::ice_and<\
@@ -48,8 +48,8 @@
 
 #include <ndnboost/type_traits/detail/has_binary_operator.hpp>
 
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
+#undef NDNBOOST_TT_TRAIT_NAME
+#undef NDNBOOST_TT_TRAIT_OP
+#undef NDNBOOST_TT_FORBIDDEN_IF
 
 #endif
diff --git a/include/ndnboost/type_traits/has_bit_xor.hpp b/include/ndnboost/type_traits/has_bit_xor.hpp
index 8298e0e..083a4fc 100644
--- a/include/ndnboost/type_traits/has_bit_xor.hpp
+++ b/include/ndnboost/type_traits/has_bit_xor.hpp
@@ -6,12 +6,12 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_BIT_XOR_HPP_INCLUDED
-#define BOOST_TT_HAS_BIT_XOR_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_BIT_XOR_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_BIT_XOR_HPP_INCLUDED
 
-#define BOOST_TT_TRAIT_NAME has_bit_xor
-#define BOOST_TT_TRAIT_OP ^
-#define BOOST_TT_FORBIDDEN_IF\
+#define NDNBOOST_TT_TRAIT_NAME has_bit_xor
+#define NDNBOOST_TT_TRAIT_OP ^
+#define NDNBOOST_TT_FORBIDDEN_IF\
    ::ndnboost::type_traits::ice_or<\
       /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
       ::ndnboost::type_traits::ice_and<\
@@ -42,8 +42,8 @@
 
 #include <ndnboost/type_traits/detail/has_binary_operator.hpp>
 
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
+#undef NDNBOOST_TT_TRAIT_NAME
+#undef NDNBOOST_TT_TRAIT_OP
+#undef NDNBOOST_TT_FORBIDDEN_IF
 
 #endif
diff --git a/include/ndnboost/type_traits/has_bit_xor_assign.hpp b/include/ndnboost/type_traits/has_bit_xor_assign.hpp
index 81cae95..d7fa3af 100644
--- a/include/ndnboost/type_traits/has_bit_xor_assign.hpp
+++ b/include/ndnboost/type_traits/has_bit_xor_assign.hpp
@@ -6,12 +6,12 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_BIT_XOR_ASSIGN_HPP_INCLUDED
-#define BOOST_TT_HAS_BIT_XOR_ASSIGN_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_BIT_XOR_ASSIGN_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_BIT_XOR_ASSIGN_HPP_INCLUDED
 
-#define BOOST_TT_TRAIT_NAME has_bit_xor_assign
-#define BOOST_TT_TRAIT_OP ^=
-#define BOOST_TT_FORBIDDEN_IF\
+#define NDNBOOST_TT_TRAIT_NAME has_bit_xor_assign
+#define NDNBOOST_TT_TRAIT_OP ^=
+#define NDNBOOST_TT_FORBIDDEN_IF\
    ::ndnboost::type_traits::ice_or<\
       /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
       ::ndnboost::type_traits::ice_and<\
@@ -48,8 +48,8 @@
 
 #include <ndnboost/type_traits/detail/has_binary_operator.hpp>
 
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
+#undef NDNBOOST_TT_TRAIT_NAME
+#undef NDNBOOST_TT_TRAIT_OP
+#undef NDNBOOST_TT_FORBIDDEN_IF
 
 #endif
diff --git a/include/ndnboost/type_traits/has_complement.hpp b/include/ndnboost/type_traits/has_complement.hpp
index c87d360..427f6ff 100644
--- a/include/ndnboost/type_traits/has_complement.hpp
+++ b/include/ndnboost/type_traits/has_complement.hpp
@@ -6,12 +6,12 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_COMPLEMENT_HPP_INCLUDED
-#define BOOST_TT_HAS_COMPLEMENT_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_COMPLEMENT_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_COMPLEMENT_HPP_INCLUDED
 
-#define BOOST_TT_TRAIT_NAME has_complement
-#define BOOST_TT_TRAIT_OP ~
-#define BOOST_TT_FORBIDDEN_IF\
+#define NDNBOOST_TT_TRAIT_NAME has_complement
+#define NDNBOOST_TT_TRAIT_OP ~
+#define NDNBOOST_TT_FORBIDDEN_IF\
    ::ndnboost::type_traits::ice_or<\
       /* pointer */\
       ::ndnboost::is_pointer< Rhs_noref >::value,\
@@ -25,8 +25,8 @@
 
 #include <ndnboost/type_traits/detail/has_prefix_operator.hpp>
 
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
+#undef NDNBOOST_TT_TRAIT_NAME
+#undef NDNBOOST_TT_TRAIT_OP
+#undef NDNBOOST_TT_FORBIDDEN_IF
 
 #endif
diff --git a/include/ndnboost/type_traits/has_dereference.hpp b/include/ndnboost/type_traits/has_dereference.hpp
index b890f68..66f255a 100644
--- a/include/ndnboost/type_traits/has_dereference.hpp
+++ b/include/ndnboost/type_traits/has_dereference.hpp
@@ -6,12 +6,12 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_DEREFERENCE_HPP_INCLUDED
-#define BOOST_TT_HAS_DEREFERENCE_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_DEREFERENCE_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_DEREFERENCE_HPP_INCLUDED
 
-#define BOOST_TT_TRAIT_NAME has_dereference
-#define BOOST_TT_TRAIT_OP *
-#define BOOST_TT_FORBIDDEN_IF\
+#define NDNBOOST_TT_TRAIT_NAME has_dereference
+#define NDNBOOST_TT_TRAIT_OP *
+#define NDNBOOST_TT_FORBIDDEN_IF\
    /* void* or fundamental */\
    ::ndnboost::type_traits::ice_or<\
       ::ndnboost::type_traits::ice_and<\
@@ -24,8 +24,8 @@
 
 #include <ndnboost/type_traits/detail/has_prefix_operator.hpp>
 
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
+#undef NDNBOOST_TT_TRAIT_NAME
+#undef NDNBOOST_TT_TRAIT_OP
+#undef NDNBOOST_TT_FORBIDDEN_IF
 
 #endif
diff --git a/include/ndnboost/type_traits/has_divides.hpp b/include/ndnboost/type_traits/has_divides.hpp
index 3825743..b1e79eb 100644
--- a/include/ndnboost/type_traits/has_divides.hpp
+++ b/include/ndnboost/type_traits/has_divides.hpp
@@ -6,12 +6,12 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_DIVIDES_HPP_INCLUDED
-#define BOOST_TT_HAS_DIVIDES_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_DIVIDES_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_DIVIDES_HPP_INCLUDED
 
-#define BOOST_TT_TRAIT_NAME has_divides
-#define BOOST_TT_TRAIT_OP /
-#define BOOST_TT_FORBIDDEN_IF\
+#define NDNBOOST_TT_TRAIT_NAME has_divides
+#define NDNBOOST_TT_TRAIT_OP /
+#define NDNBOOST_TT_FORBIDDEN_IF\
    /* pointer with pointer or fundamental */\
    ::ndnboost::type_traits::ice_or<\
       ::ndnboost::type_traits::ice_and<\
@@ -33,8 +33,8 @@
 
 #include <ndnboost/type_traits/detail/has_binary_operator.hpp>
 
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
+#undef NDNBOOST_TT_TRAIT_NAME
+#undef NDNBOOST_TT_TRAIT_OP
+#undef NDNBOOST_TT_FORBIDDEN_IF
 
 #endif
diff --git a/include/ndnboost/type_traits/has_divides_assign.hpp b/include/ndnboost/type_traits/has_divides_assign.hpp
index d594dfe..7c3150f 100644
--- a/include/ndnboost/type_traits/has_divides_assign.hpp
+++ b/include/ndnboost/type_traits/has_divides_assign.hpp
@@ -6,12 +6,12 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_DIVIDES_ASSIGN_HPP_INCLUDED
-#define BOOST_TT_HAS_DIVIDES_ASSIGN_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_DIVIDES_ASSIGN_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_DIVIDES_ASSIGN_HPP_INCLUDED
 
-#define BOOST_TT_TRAIT_NAME has_divides_assign
-#define BOOST_TT_TRAIT_OP /=
-#define BOOST_TT_FORBIDDEN_IF\
+#define NDNBOOST_TT_TRAIT_NAME has_divides_assign
+#define NDNBOOST_TT_TRAIT_OP /=
+#define NDNBOOST_TT_FORBIDDEN_IF\
    ::ndnboost::type_traits::ice_or<\
       /* Lhs==fundamental and Lhs==const and Rhs==fundamental */\
       ::ndnboost::type_traits::ice_and<\
@@ -40,8 +40,8 @@
 
 #include <ndnboost/type_traits/detail/has_binary_operator.hpp>
 
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
+#undef NDNBOOST_TT_TRAIT_NAME
+#undef NDNBOOST_TT_TRAIT_OP
+#undef NDNBOOST_TT_FORBIDDEN_IF
 
 #endif
diff --git a/include/ndnboost/type_traits/has_equal_to.hpp b/include/ndnboost/type_traits/has_equal_to.hpp
index cd0b8d1..ad129e8 100644
--- a/include/ndnboost/type_traits/has_equal_to.hpp
+++ b/include/ndnboost/type_traits/has_equal_to.hpp
@@ -6,12 +6,12 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_EQUAL_TO_HPP_INCLUDED
-#define BOOST_TT_HAS_EQUAL_TO_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_EQUAL_TO_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_EQUAL_TO_HPP_INCLUDED
 
-#define BOOST_TT_TRAIT_NAME has_equal_to
-#define BOOST_TT_TRAIT_OP ==
-#define BOOST_TT_FORBIDDEN_IF\
+#define NDNBOOST_TT_TRAIT_NAME has_equal_to
+#define NDNBOOST_TT_TRAIT_OP ==
+#define NDNBOOST_TT_FORBIDDEN_IF\
    ::ndnboost::type_traits::ice_or<\
       /* Lhs==pointer and Rhs==fundamental */\
       ::ndnboost::type_traits::ice_and<\
@@ -42,8 +42,8 @@
 
 #include <ndnboost/type_traits/detail/has_binary_operator.hpp>
 
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
+#undef NDNBOOST_TT_TRAIT_NAME
+#undef NDNBOOST_TT_TRAIT_OP
+#undef NDNBOOST_TT_FORBIDDEN_IF
 
 #endif
diff --git a/include/ndnboost/type_traits/has_greater.hpp b/include/ndnboost/type_traits/has_greater.hpp
index dc8889a..65d7df6 100644
--- a/include/ndnboost/type_traits/has_greater.hpp
+++ b/include/ndnboost/type_traits/has_greater.hpp
@@ -6,12 +6,12 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_GREATER_HPP_INCLUDED
-#define BOOST_TT_HAS_GREATER_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_GREATER_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_GREATER_HPP_INCLUDED
 
-#define BOOST_TT_TRAIT_NAME has_greater
-#define BOOST_TT_TRAIT_OP >
-#define BOOST_TT_FORBIDDEN_IF\
+#define NDNBOOST_TT_TRAIT_NAME has_greater
+#define NDNBOOST_TT_TRAIT_OP >
+#define NDNBOOST_TT_FORBIDDEN_IF\
    ::ndnboost::type_traits::ice_or<\
       /* Lhs==pointer and Rhs==fundamental */\
       ::ndnboost::type_traits::ice_and<\
@@ -42,8 +42,8 @@
 
 #include <ndnboost/type_traits/detail/has_binary_operator.hpp>
 
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
+#undef NDNBOOST_TT_TRAIT_NAME
+#undef NDNBOOST_TT_TRAIT_OP
+#undef NDNBOOST_TT_FORBIDDEN_IF
 
 #endif
diff --git a/include/ndnboost/type_traits/has_greater_equal.hpp b/include/ndnboost/type_traits/has_greater_equal.hpp
index f1ec262..03e6c90 100644
--- a/include/ndnboost/type_traits/has_greater_equal.hpp
+++ b/include/ndnboost/type_traits/has_greater_equal.hpp
@@ -6,12 +6,12 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_GREATER_EQUAL_HPP_INCLUDED
-#define BOOST_TT_HAS_GREATER_EQUAL_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_GREATER_EQUAL_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_GREATER_EQUAL_HPP_INCLUDED
 
-#define BOOST_TT_TRAIT_NAME has_greater_equal
-#define BOOST_TT_TRAIT_OP >=
-#define BOOST_TT_FORBIDDEN_IF\
+#define NDNBOOST_TT_TRAIT_NAME has_greater_equal
+#define NDNBOOST_TT_TRAIT_OP >=
+#define NDNBOOST_TT_FORBIDDEN_IF\
    ::ndnboost::type_traits::ice_or<\
       /* Lhs==pointer and Rhs==fundamental */\
       ::ndnboost::type_traits::ice_and<\
@@ -42,8 +42,8 @@
 
 #include <ndnboost/type_traits/detail/has_binary_operator.hpp>
 
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
+#undef NDNBOOST_TT_TRAIT_NAME
+#undef NDNBOOST_TT_TRAIT_OP
+#undef NDNBOOST_TT_FORBIDDEN_IF
 
 #endif
diff --git a/include/ndnboost/type_traits/has_left_shift.hpp b/include/ndnboost/type_traits/has_left_shift.hpp
index 27978aa..bf6d341 100644
--- a/include/ndnboost/type_traits/has_left_shift.hpp
+++ b/include/ndnboost/type_traits/has_left_shift.hpp
@@ -6,12 +6,12 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_LEFT_SHIFT_HPP_INCLUDED
-#define BOOST_TT_HAS_LEFT_SHIFT_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_LEFT_SHIFT_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_LEFT_SHIFT_HPP_INCLUDED
 
-#define BOOST_TT_TRAIT_NAME has_left_shift
-#define BOOST_TT_TRAIT_OP <<
-#define BOOST_TT_FORBIDDEN_IF\
+#define NDNBOOST_TT_TRAIT_NAME has_left_shift
+#define NDNBOOST_TT_TRAIT_OP <<
+#define NDNBOOST_TT_FORBIDDEN_IF\
    ::ndnboost::type_traits::ice_or<\
       /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
       ::ndnboost::type_traits::ice_and<\
@@ -42,8 +42,8 @@
 
 #include <ndnboost/type_traits/detail/has_binary_operator.hpp>
 
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
+#undef NDNBOOST_TT_TRAIT_NAME
+#undef NDNBOOST_TT_TRAIT_OP
+#undef NDNBOOST_TT_FORBIDDEN_IF
 
 #endif
diff --git a/include/ndnboost/type_traits/has_left_shift_assign.hpp b/include/ndnboost/type_traits/has_left_shift_assign.hpp
index 59aec51..6df35e9 100644
--- a/include/ndnboost/type_traits/has_left_shift_assign.hpp
+++ b/include/ndnboost/type_traits/has_left_shift_assign.hpp
@@ -6,12 +6,12 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_LEFT_SHIFT_ASSIGN_HPP_INCLUDED
-#define BOOST_TT_HAS_LEFT_SHIFT_ASSIGN_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_LEFT_SHIFT_ASSIGN_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_LEFT_SHIFT_ASSIGN_HPP_INCLUDED
 
-#define BOOST_TT_TRAIT_NAME has_left_shift_assign
-#define BOOST_TT_TRAIT_OP <<=
-#define BOOST_TT_FORBIDDEN_IF\
+#define NDNBOOST_TT_TRAIT_NAME has_left_shift_assign
+#define NDNBOOST_TT_TRAIT_OP <<=
+#define NDNBOOST_TT_FORBIDDEN_IF\
    ::ndnboost::type_traits::ice_or<\
       /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
       ::ndnboost::type_traits::ice_and<\
@@ -48,8 +48,8 @@
 
 #include <ndnboost/type_traits/detail/has_binary_operator.hpp>
 
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
+#undef NDNBOOST_TT_TRAIT_NAME
+#undef NDNBOOST_TT_TRAIT_OP
+#undef NDNBOOST_TT_FORBIDDEN_IF
 
 #endif
diff --git a/include/ndnboost/type_traits/has_less.hpp b/include/ndnboost/type_traits/has_less.hpp
index 167941d..962c260 100644
--- a/include/ndnboost/type_traits/has_less.hpp
+++ b/include/ndnboost/type_traits/has_less.hpp
@@ -6,12 +6,12 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_LESS_HPP_INCLUDED
-#define BOOST_TT_HAS_LESS_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_LESS_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_LESS_HPP_INCLUDED
 
-#define BOOST_TT_TRAIT_NAME has_less
-#define BOOST_TT_TRAIT_OP <
-#define BOOST_TT_FORBIDDEN_IF\
+#define NDNBOOST_TT_TRAIT_NAME has_less
+#define NDNBOOST_TT_TRAIT_OP <
+#define NDNBOOST_TT_FORBIDDEN_IF\
    ::ndnboost::type_traits::ice_or<\
       /* Lhs==pointer and Rhs==fundamental */\
       ::ndnboost::type_traits::ice_and<\
@@ -42,8 +42,8 @@
 
 #include <ndnboost/type_traits/detail/has_binary_operator.hpp>
 
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
+#undef NDNBOOST_TT_TRAIT_NAME
+#undef NDNBOOST_TT_TRAIT_OP
+#undef NDNBOOST_TT_FORBIDDEN_IF
 
 #endif
diff --git a/include/ndnboost/type_traits/has_less_equal.hpp b/include/ndnboost/type_traits/has_less_equal.hpp
index 5e180c6..ee2a25e 100644
--- a/include/ndnboost/type_traits/has_less_equal.hpp
+++ b/include/ndnboost/type_traits/has_less_equal.hpp
@@ -6,12 +6,12 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_LESS_EQUAL_HPP_INCLUDED
-#define BOOST_TT_HAS_LESS_EQUAL_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_LESS_EQUAL_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_LESS_EQUAL_HPP_INCLUDED
 
-#define BOOST_TT_TRAIT_NAME has_less_equal
-#define BOOST_TT_TRAIT_OP <=
-#define BOOST_TT_FORBIDDEN_IF\
+#define NDNBOOST_TT_TRAIT_NAME has_less_equal
+#define NDNBOOST_TT_TRAIT_OP <=
+#define NDNBOOST_TT_FORBIDDEN_IF\
    ::ndnboost::type_traits::ice_or<\
       /* Lhs==pointer and Rhs==fundamental */\
       ::ndnboost::type_traits::ice_and<\
@@ -42,8 +42,8 @@
 
 #include <ndnboost/type_traits/detail/has_binary_operator.hpp>
 
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
+#undef NDNBOOST_TT_TRAIT_NAME
+#undef NDNBOOST_TT_TRAIT_OP
+#undef NDNBOOST_TT_FORBIDDEN_IF
 
 #endif
diff --git a/include/ndnboost/type_traits/has_logical_and.hpp b/include/ndnboost/type_traits/has_logical_and.hpp
index a5b7944..80bca8e 100644
--- a/include/ndnboost/type_traits/has_logical_and.hpp
+++ b/include/ndnboost/type_traits/has_logical_and.hpp
@@ -6,12 +6,12 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_LOGICAL_AND_HPP_INCLUDED
-#define BOOST_TT_HAS_LOGICAL_AND_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_LOGICAL_AND_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_LOGICAL_AND_HPP_INCLUDED
 
-#define BOOST_TT_TRAIT_NAME has_logical_and
-#define BOOST_TT_TRAIT_OP &&
-#define BOOST_TT_FORBIDDEN_IF\
+#define NDNBOOST_TT_TRAIT_NAME has_logical_and
+#define NDNBOOST_TT_TRAIT_OP &&
+#define NDNBOOST_TT_FORBIDDEN_IF\
    /* pointer with fundamental non convertible to bool */\
    ::ndnboost::type_traits::ice_or<\
       ::ndnboost::type_traits::ice_and<\
@@ -33,8 +33,8 @@
 
 #include <ndnboost/type_traits/detail/has_binary_operator.hpp>
 
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
+#undef NDNBOOST_TT_TRAIT_NAME
+#undef NDNBOOST_TT_TRAIT_OP
+#undef NDNBOOST_TT_FORBIDDEN_IF
 
 #endif
diff --git a/include/ndnboost/type_traits/has_logical_not.hpp b/include/ndnboost/type_traits/has_logical_not.hpp
index 548f944..d16cd44 100644
--- a/include/ndnboost/type_traits/has_logical_not.hpp
+++ b/include/ndnboost/type_traits/has_logical_not.hpp
@@ -6,18 +6,18 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_LOGICAL_NOT_HPP_INCLUDED
-#define BOOST_TT_HAS_LOGICAL_NOT_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_LOGICAL_NOT_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_LOGICAL_NOT_HPP_INCLUDED
 
-#define BOOST_TT_TRAIT_NAME has_logical_not
-#define BOOST_TT_TRAIT_OP !
-#define BOOST_TT_FORBIDDEN_IF\
+#define NDNBOOST_TT_TRAIT_NAME has_logical_not
+#define NDNBOOST_TT_TRAIT_OP !
+#define NDNBOOST_TT_FORBIDDEN_IF\
    false
 
 #include <ndnboost/type_traits/detail/has_prefix_operator.hpp>
 
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
+#undef NDNBOOST_TT_TRAIT_NAME
+#undef NDNBOOST_TT_TRAIT_OP
+#undef NDNBOOST_TT_FORBIDDEN_IF
 
 #endif
diff --git a/include/ndnboost/type_traits/has_logical_or.hpp b/include/ndnboost/type_traits/has_logical_or.hpp
index 7348b30..0fd1d05 100644
--- a/include/ndnboost/type_traits/has_logical_or.hpp
+++ b/include/ndnboost/type_traits/has_logical_or.hpp
@@ -6,12 +6,12 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_LOGICAL_OR_HPP_INCLUDED
-#define BOOST_TT_HAS_LOGICAL_OR_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_LOGICAL_OR_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_LOGICAL_OR_HPP_INCLUDED
 
-#define BOOST_TT_TRAIT_NAME has_logical_or
-#define BOOST_TT_TRAIT_OP ||
-#define BOOST_TT_FORBIDDEN_IF\
+#define NDNBOOST_TT_TRAIT_NAME has_logical_or
+#define NDNBOOST_TT_TRAIT_OP ||
+#define NDNBOOST_TT_FORBIDDEN_IF\
    /* pointer with fundamental non convertible to bool */\
    ::ndnboost::type_traits::ice_or<\
       ::ndnboost::type_traits::ice_and<\
@@ -33,8 +33,8 @@
 
 #include <ndnboost/type_traits/detail/has_binary_operator.hpp>
 
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
+#undef NDNBOOST_TT_TRAIT_NAME
+#undef NDNBOOST_TT_TRAIT_OP
+#undef NDNBOOST_TT_FORBIDDEN_IF
 
 #endif
diff --git a/include/ndnboost/type_traits/has_minus.hpp b/include/ndnboost/type_traits/has_minus.hpp
index a7d5789..54d6e05 100644
--- a/include/ndnboost/type_traits/has_minus.hpp
+++ b/include/ndnboost/type_traits/has_minus.hpp
@@ -6,12 +6,12 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_MINUS_HPP_INCLUDED
-#define BOOST_TT_HAS_MINUS_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_MINUS_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_MINUS_HPP_INCLUDED
 
-#define BOOST_TT_TRAIT_NAME has_minus
-#define BOOST_TT_TRAIT_OP -
-#define BOOST_TT_FORBIDDEN_IF\
+#define NDNBOOST_TT_TRAIT_NAME has_minus
+#define NDNBOOST_TT_TRAIT_OP -
+#define NDNBOOST_TT_FORBIDDEN_IF\
    ::ndnboost::type_traits::ice_or<\
       /* Lhs==pointer and Rhs==fundamental and Rhs!=integral */\
       ::ndnboost::type_traits::ice_and<\
@@ -53,8 +53,8 @@
 
 #include <ndnboost/type_traits/detail/has_binary_operator.hpp>
 
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
+#undef NDNBOOST_TT_TRAIT_NAME
+#undef NDNBOOST_TT_TRAIT_OP
+#undef NDNBOOST_TT_FORBIDDEN_IF
 
 #endif
diff --git a/include/ndnboost/type_traits/has_minus_assign.hpp b/include/ndnboost/type_traits/has_minus_assign.hpp
index ce3f35a..391b83d 100644
--- a/include/ndnboost/type_traits/has_minus_assign.hpp
+++ b/include/ndnboost/type_traits/has_minus_assign.hpp
@@ -6,12 +6,12 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_MINUS_ASSIGN_HPP_INCLUDED
-#define BOOST_TT_HAS_MINUS_ASSIGN_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_MINUS_ASSIGN_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_MINUS_ASSIGN_HPP_INCLUDED
 
-#define BOOST_TT_TRAIT_NAME has_minus_assign
-#define BOOST_TT_TRAIT_OP -=
-#define BOOST_TT_FORBIDDEN_IF\
+#define NDNBOOST_TT_TRAIT_NAME has_minus_assign
+#define NDNBOOST_TT_TRAIT_OP -=
+#define NDNBOOST_TT_FORBIDDEN_IF\
    ::ndnboost::type_traits::ice_or<\
       /* Lhs==pointer and Rhs==fundamental and Rhs!=integral */\
       ::ndnboost::type_traits::ice_and<\
@@ -58,8 +58,8 @@
 
 #include <ndnboost/type_traits/detail/has_binary_operator.hpp>
 
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
+#undef NDNBOOST_TT_TRAIT_NAME
+#undef NDNBOOST_TT_TRAIT_OP
+#undef NDNBOOST_TT_FORBIDDEN_IF
 
 #endif
diff --git a/include/ndnboost/type_traits/has_modulus.hpp b/include/ndnboost/type_traits/has_modulus.hpp
index 044893a..e0f8e9f 100644
--- a/include/ndnboost/type_traits/has_modulus.hpp
+++ b/include/ndnboost/type_traits/has_modulus.hpp
@@ -6,12 +6,12 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_MODULUS_HPP_INCLUDED
-#define BOOST_TT_HAS_MODULUS_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_MODULUS_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_MODULUS_HPP_INCLUDED
 
-#define BOOST_TT_TRAIT_NAME has_modulus
-#define BOOST_TT_TRAIT_OP %
-#define BOOST_TT_FORBIDDEN_IF\
+#define NDNBOOST_TT_TRAIT_NAME has_modulus
+#define NDNBOOST_TT_TRAIT_OP %
+#define NDNBOOST_TT_FORBIDDEN_IF\
    ::ndnboost::type_traits::ice_or<\
       /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
       ::ndnboost::type_traits::ice_and<\
@@ -42,8 +42,8 @@
 
 #include <ndnboost/type_traits/detail/has_binary_operator.hpp>
 
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
+#undef NDNBOOST_TT_TRAIT_NAME
+#undef NDNBOOST_TT_TRAIT_OP
+#undef NDNBOOST_TT_FORBIDDEN_IF
 
 #endif
diff --git a/include/ndnboost/type_traits/has_modulus_assign.hpp b/include/ndnboost/type_traits/has_modulus_assign.hpp
index e9c1eb2..2412ee2 100644
--- a/include/ndnboost/type_traits/has_modulus_assign.hpp
+++ b/include/ndnboost/type_traits/has_modulus_assign.hpp
@@ -6,12 +6,12 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_MODULUS_ASSIGN_HPP_INCLUDED
-#define BOOST_TT_HAS_MODULUS_ASSIGN_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_MODULUS_ASSIGN_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_MODULUS_ASSIGN_HPP_INCLUDED
 
-#define BOOST_TT_TRAIT_NAME has_modulus_assign
-#define BOOST_TT_TRAIT_OP %=
-#define BOOST_TT_FORBIDDEN_IF\
+#define NDNBOOST_TT_TRAIT_NAME has_modulus_assign
+#define NDNBOOST_TT_TRAIT_OP %=
+#define NDNBOOST_TT_FORBIDDEN_IF\
    ::ndnboost::type_traits::ice_or<\
       /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
       ::ndnboost::type_traits::ice_and<\
@@ -48,8 +48,8 @@
 
 #include <ndnboost/type_traits/detail/has_binary_operator.hpp>
 
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
+#undef NDNBOOST_TT_TRAIT_NAME
+#undef NDNBOOST_TT_TRAIT_OP
+#undef NDNBOOST_TT_FORBIDDEN_IF
 
 #endif
diff --git a/include/ndnboost/type_traits/has_multiplies.hpp b/include/ndnboost/type_traits/has_multiplies.hpp
index 3fd7738..f53eeaa 100644
--- a/include/ndnboost/type_traits/has_multiplies.hpp
+++ b/include/ndnboost/type_traits/has_multiplies.hpp
@@ -6,12 +6,12 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_MULTIPLIES_HPP_INCLUDED
-#define BOOST_TT_HAS_MULTIPLIES_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_MULTIPLIES_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_MULTIPLIES_HPP_INCLUDED
 
-#define BOOST_TT_TRAIT_NAME has_multiplies
-#define BOOST_TT_TRAIT_OP *
-#define BOOST_TT_FORBIDDEN_IF\
+#define NDNBOOST_TT_TRAIT_NAME has_multiplies
+#define NDNBOOST_TT_TRAIT_OP *
+#define NDNBOOST_TT_FORBIDDEN_IF\
    /* pointer with pointer or fundamental */\
    ::ndnboost::type_traits::ice_or<\
       ::ndnboost::type_traits::ice_and<\
@@ -33,8 +33,8 @@
 
 #include <ndnboost/type_traits/detail/has_binary_operator.hpp>
 
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
+#undef NDNBOOST_TT_TRAIT_NAME
+#undef NDNBOOST_TT_TRAIT_OP
+#undef NDNBOOST_TT_FORBIDDEN_IF
 
 #endif
diff --git a/include/ndnboost/type_traits/has_multiplies_assign.hpp b/include/ndnboost/type_traits/has_multiplies_assign.hpp
index 73e497f..ce70851 100644
--- a/include/ndnboost/type_traits/has_multiplies_assign.hpp
+++ b/include/ndnboost/type_traits/has_multiplies_assign.hpp
@@ -6,12 +6,12 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_MULTIPLIES_ASSIGN_HPP_INCLUDED
-#define BOOST_TT_HAS_MULTIPLIES_ASSIGN_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_MULTIPLIES_ASSIGN_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_MULTIPLIES_ASSIGN_HPP_INCLUDED
 
-#define BOOST_TT_TRAIT_NAME has_multiplies_assign
-#define BOOST_TT_TRAIT_OP *=
-#define BOOST_TT_FORBIDDEN_IF\
+#define NDNBOOST_TT_TRAIT_NAME has_multiplies_assign
+#define NDNBOOST_TT_TRAIT_OP *=
+#define NDNBOOST_TT_FORBIDDEN_IF\
    ::ndnboost::type_traits::ice_or<\
       /* Lhs==fundamental and Lhs==const and Rhs==fundamental */\
       ::ndnboost::type_traits::ice_and<\
@@ -40,8 +40,8 @@
 
 #include <ndnboost/type_traits/detail/has_binary_operator.hpp>
 
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
+#undef NDNBOOST_TT_TRAIT_NAME
+#undef NDNBOOST_TT_TRAIT_OP
+#undef NDNBOOST_TT_FORBIDDEN_IF
 
 #endif
diff --git a/include/ndnboost/type_traits/has_negate.hpp b/include/ndnboost/type_traits/has_negate.hpp
index 9273153..bee3a82 100644
--- a/include/ndnboost/type_traits/has_negate.hpp
+++ b/include/ndnboost/type_traits/has_negate.hpp
@@ -6,20 +6,20 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_NEGATE_HPP_INCLUDED
-#define BOOST_TT_HAS_NEGATE_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_NEGATE_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_NEGATE_HPP_INCLUDED
 
-#define BOOST_TT_TRAIT_NAME has_negate
-#define BOOST_TT_TRAIT_OP -
-#define BOOST_TT_FORBIDDEN_IF\
+#define NDNBOOST_TT_TRAIT_NAME has_negate
+#define NDNBOOST_TT_TRAIT_OP -
+#define NDNBOOST_TT_FORBIDDEN_IF\
    /* pointer */\
    ::ndnboost::is_pointer< Rhs_noref >::value
 
 
 #include <ndnboost/type_traits/detail/has_prefix_operator.hpp>
 
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
+#undef NDNBOOST_TT_TRAIT_NAME
+#undef NDNBOOST_TT_TRAIT_OP
+#undef NDNBOOST_TT_FORBIDDEN_IF
 
 #endif
diff --git a/include/ndnboost/type_traits/has_new_operator.hpp b/include/ndnboost/type_traits/has_new_operator.hpp
index b437ee9..099c1f2 100644
--- a/include/ndnboost/type_traits/has_new_operator.hpp
+++ b/include/ndnboost/type_traits/has_new_operator.hpp
@@ -6,8 +6,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_NEW_OPERATOR_HPP_INCLUDED
-#define BOOST_TT_HAS_NEW_OPERATOR_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_NEW_OPERATOR_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_NEW_OPERATOR_HPP_INCLUDED
 
 #include <new> // std::nothrow_t
 #include <cstddef> // std::size_t
@@ -95,30 +95,30 @@
         // GCC2 won't even parse this template if we embed the computation
         // of s1 in the computation of value.
         #ifdef __GNUC__
-            BOOST_STATIC_CONSTANT(unsigned, s1 = sizeof(has_new_operator_impl<T>::template check_sig1<T>(0)));
-            BOOST_STATIC_CONSTANT(unsigned, s2 = sizeof(has_new_operator_impl<T>::template check_sig2<T>(0)));
-            BOOST_STATIC_CONSTANT(unsigned, s3 = sizeof(has_new_operator_impl<T>::template check_sig3<T>(0)));
-            BOOST_STATIC_CONSTANT(unsigned, s4 = sizeof(has_new_operator_impl<T>::template check_sig4<T>(0)));
-            BOOST_STATIC_CONSTANT(unsigned, s5 = sizeof(has_new_operator_impl<T>::template check_sig5<T>(0)));
-            BOOST_STATIC_CONSTANT(unsigned, s6 = sizeof(has_new_operator_impl<T>::template check_sig6<T>(0)));
+            NDNBOOST_STATIC_CONSTANT(unsigned, s1 = sizeof(has_new_operator_impl<T>::template check_sig1<T>(0)));
+            NDNBOOST_STATIC_CONSTANT(unsigned, s2 = sizeof(has_new_operator_impl<T>::template check_sig2<T>(0)));
+            NDNBOOST_STATIC_CONSTANT(unsigned, s3 = sizeof(has_new_operator_impl<T>::template check_sig3<T>(0)));
+            NDNBOOST_STATIC_CONSTANT(unsigned, s4 = sizeof(has_new_operator_impl<T>::template check_sig4<T>(0)));
+            NDNBOOST_STATIC_CONSTANT(unsigned, s5 = sizeof(has_new_operator_impl<T>::template check_sig5<T>(0)));
+            NDNBOOST_STATIC_CONSTANT(unsigned, s6 = sizeof(has_new_operator_impl<T>::template check_sig6<T>(0)));
         #else
-            #if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000)
+            #if NDNBOOST_WORKAROUND(NDNBOOST_MSVC_FULL_VER, >= 140050000)
                 #pragma warning(push)
                 #pragma warning(disable:6334)
             #endif
 
-            BOOST_STATIC_CONSTANT(unsigned, s1 = sizeof(check_sig1<T>(0)));
-            BOOST_STATIC_CONSTANT(unsigned, s2 = sizeof(check_sig2<T>(0)));
-            BOOST_STATIC_CONSTANT(unsigned, s3 = sizeof(check_sig3<T>(0)));
-            BOOST_STATIC_CONSTANT(unsigned, s4 = sizeof(check_sig4<T>(0)));
-            BOOST_STATIC_CONSTANT(unsigned, s5 = sizeof(check_sig5<T>(0)));
-            BOOST_STATIC_CONSTANT(unsigned, s6 = sizeof(check_sig6<T>(0)));
+            NDNBOOST_STATIC_CONSTANT(unsigned, s1 = sizeof(check_sig1<T>(0)));
+            NDNBOOST_STATIC_CONSTANT(unsigned, s2 = sizeof(check_sig2<T>(0)));
+            NDNBOOST_STATIC_CONSTANT(unsigned, s3 = sizeof(check_sig3<T>(0)));
+            NDNBOOST_STATIC_CONSTANT(unsigned, s4 = sizeof(check_sig4<T>(0)));
+            NDNBOOST_STATIC_CONSTANT(unsigned, s5 = sizeof(check_sig5<T>(0)));
+            NDNBOOST_STATIC_CONSTANT(unsigned, s6 = sizeof(check_sig6<T>(0)));
 
-            #if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000)
+            #if NDNBOOST_WORKAROUND(NDNBOOST_MSVC_FULL_VER, >= 140050000)
                 #pragma warning(pop)
             #endif
         #endif
-        BOOST_STATIC_CONSTANT(bool, value = 
+        NDNBOOST_STATIC_CONSTANT(bool, value = 
            (::ndnboost::type_traits::ice_or<
             (s1 == sizeof(type_traits::yes_type)),
             (s2 == sizeof(type_traits::yes_type)),
@@ -131,10 +131,10 @@
     };
 } // namespace detail
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_new_operator,T,::ndnboost::detail::has_new_operator_impl<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(has_new_operator,T,::ndnboost::detail::has_new_operator_impl<T>::value)
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TT_HAS_NEW_OPERATOR_HPP_INCLUDED
+#endif // NDNBOOST_TT_HAS_NEW_OPERATOR_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/has_not_equal_to.hpp b/include/ndnboost/type_traits/has_not_equal_to.hpp
index b7a70ca..8a5f2c6 100644
--- a/include/ndnboost/type_traits/has_not_equal_to.hpp
+++ b/include/ndnboost/type_traits/has_not_equal_to.hpp
@@ -6,12 +6,12 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_NOT_EQUAL_TO_HPP_INCLUDED
-#define BOOST_TT_HAS_NOT_EQUAL_TO_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_NOT_EQUAL_TO_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_NOT_EQUAL_TO_HPP_INCLUDED
 
-#define BOOST_TT_TRAIT_NAME has_not_equal_to
-#define BOOST_TT_TRAIT_OP !=
-#define BOOST_TT_FORBIDDEN_IF\
+#define NDNBOOST_TT_TRAIT_NAME has_not_equal_to
+#define NDNBOOST_TT_TRAIT_OP !=
+#define NDNBOOST_TT_FORBIDDEN_IF\
    ::ndnboost::type_traits::ice_or<\
       /* Lhs==pointer and Rhs==fundamental */\
       ::ndnboost::type_traits::ice_and<\
@@ -42,8 +42,8 @@
 
 #include <ndnboost/type_traits/detail/has_binary_operator.hpp>
 
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
+#undef NDNBOOST_TT_TRAIT_NAME
+#undef NDNBOOST_TT_TRAIT_OP
+#undef NDNBOOST_TT_FORBIDDEN_IF
 
 #endif
diff --git a/include/ndnboost/type_traits/has_nothrow_assign.hpp b/include/ndnboost/type_traits/has_nothrow_assign.hpp
index 83ff0cd..6e4ee21 100644
--- a/include/ndnboost/type_traits/has_nothrow_assign.hpp
+++ b/include/ndnboost/type_traits/has_nothrow_assign.hpp
@@ -6,8 +6,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_NOTHROW_ASSIGN_HPP_INCLUDED
-#define BOOST_TT_HAS_NOTHROW_ASSIGN_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_NOTHROW_ASSIGN_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_NOTHROW_ASSIGN_HPP_INCLUDED
 
 #include <ndnboost/type_traits/has_trivial_assign.hpp>
 
@@ -20,25 +20,25 @@
 
 template <class T>
 struct has_nothrow_assign_imp{
-#ifndef BOOST_HAS_NOTHROW_ASSIGN
-   BOOST_STATIC_CONSTANT(bool, value = ::ndnboost::has_trivial_assign<T>::value);
+#ifndef NDNBOOST_HAS_NOTHROW_ASSIGN
+   NDNBOOST_STATIC_CONSTANT(bool, value = ::ndnboost::has_trivial_assign<T>::value);
 #else
-   BOOST_STATIC_CONSTANT(bool, value = BOOST_HAS_NOTHROW_ASSIGN(T));
+   NDNBOOST_STATIC_CONSTANT(bool, value = NDNBOOST_HAS_NOTHROW_ASSIGN(T));
 #endif
 };
 
 }
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_nothrow_assign,T,::ndnboost::detail::has_nothrow_assign_imp<T>::value)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_assign,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_assign,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_assign,void const volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_assign,void volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(has_nothrow_assign,T,::ndnboost::detail::has_nothrow_assign_imp<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_assign,void,false)
+#ifndef NDNBOOST_NO_CV_VOID_SPECIALIZATIONS
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_assign,void const,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_assign,void const volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_assign,void volatile,false)
 #endif
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TT_HAS_NOTHROW_ASSIGN_HPP_INCLUDED
+#endif // NDNBOOST_TT_HAS_NOTHROW_ASSIGN_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/has_nothrow_constructor.hpp b/include/ndnboost/type_traits/has_nothrow_constructor.hpp
index 6f23506..18baf1d 100644
--- a/include/ndnboost/type_traits/has_nothrow_constructor.hpp
+++ b/include/ndnboost/type_traits/has_nothrow_constructor.hpp
@@ -6,8 +6,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_NOTHROW_CONSTRUCTOR_HPP_INCLUDED
-#define BOOST_TT_HAS_NOTHROW_CONSTRUCTOR_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_NOTHROW_CONSTRUCTOR_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_NOTHROW_CONSTRUCTOR_HPP_INCLUDED
 
 #include <ndnboost/type_traits/has_trivial_constructor.hpp>
 
@@ -20,34 +20,34 @@
 
 template <class T>
 struct has_nothrow_constructor_imp{
-#ifdef BOOST_HAS_NOTHROW_CONSTRUCTOR
-   BOOST_STATIC_CONSTANT(bool, value = BOOST_HAS_NOTHROW_CONSTRUCTOR(T));
+#ifdef NDNBOOST_HAS_NOTHROW_CONSTRUCTOR
+   NDNBOOST_STATIC_CONSTANT(bool, value = NDNBOOST_HAS_NOTHROW_CONSTRUCTOR(T));
 #else
-   BOOST_STATIC_CONSTANT(bool, value = ::ndnboost::has_trivial_constructor<T>::value);
+   NDNBOOST_STATIC_CONSTANT(bool, value = ::ndnboost::has_trivial_constructor<T>::value);
 #endif
 };
 
 }
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_nothrow_constructor,T,::ndnboost::detail::has_nothrow_constructor_imp<T>::value)
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_nothrow_default_constructor,T,::ndnboost::detail::has_nothrow_constructor_imp<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(has_nothrow_constructor,T,::ndnboost::detail::has_nothrow_constructor_imp<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(has_nothrow_default_constructor,T,::ndnboost::detail::has_nothrow_constructor_imp<T>::value)
 
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_constructor,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_constructor,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_constructor,void const volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_constructor,void volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_constructor,void,false)
+#ifndef NDNBOOST_NO_CV_VOID_SPECIALIZATIONS
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_constructor,void const,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_constructor,void const volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_constructor,void volatile,false)
 #endif
 
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_default_constructor,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_default_constructor,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_default_constructor,void const volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_default_constructor,void volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_default_constructor,void,false)
+#ifndef NDNBOOST_NO_CV_VOID_SPECIALIZATIONS
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_default_constructor,void const,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_default_constructor,void const volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_default_constructor,void volatile,false)
 #endif
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TT_HAS_NOTHROW_CONSTRUCTOR_HPP_INCLUDED
+#endif // NDNBOOST_TT_HAS_NOTHROW_CONSTRUCTOR_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/has_nothrow_copy.hpp b/include/ndnboost/type_traits/has_nothrow_copy.hpp
index 4bf3e30..1359ca3 100644
--- a/include/ndnboost/type_traits/has_nothrow_copy.hpp
+++ b/include/ndnboost/type_traits/has_nothrow_copy.hpp
@@ -6,8 +6,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_NOTHROW_COPY_HPP_INCLUDED
-#define BOOST_TT_HAS_NOTHROW_COPY_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_NOTHROW_COPY_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_NOTHROW_COPY_HPP_INCLUDED
 
 #include <ndnboost/type_traits/has_trivial_copy.hpp>
 
@@ -20,34 +20,34 @@
 
 template <class T>
 struct has_nothrow_copy_imp{
-#ifdef BOOST_HAS_NOTHROW_COPY
-   BOOST_STATIC_CONSTANT(bool, value = BOOST_HAS_NOTHROW_COPY(T));
+#ifdef NDNBOOST_HAS_NOTHROW_COPY
+   NDNBOOST_STATIC_CONSTANT(bool, value = NDNBOOST_HAS_NOTHROW_COPY(T));
 #else
-   BOOST_STATIC_CONSTANT(bool, value = ::ndnboost::has_trivial_copy<T>::value);
+   NDNBOOST_STATIC_CONSTANT(bool, value = ::ndnboost::has_trivial_copy<T>::value);
 #endif
 };
 
 }
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_nothrow_copy,T,::ndnboost::detail::has_nothrow_copy_imp<T>::value)
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_nothrow_copy_constructor,T,::ndnboost::detail::has_nothrow_copy_imp<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(has_nothrow_copy,T,::ndnboost::detail::has_nothrow_copy_imp<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(has_nothrow_copy_constructor,T,::ndnboost::detail::has_nothrow_copy_imp<T>::value)
 
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_copy,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_copy,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_copy,void const volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_copy,void volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_copy,void,false)
+#ifndef NDNBOOST_NO_CV_VOID_SPECIALIZATIONS
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_copy,void const,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_copy,void const volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_copy,void volatile,false)
 #endif
 
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_copy_constructor,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_copy_constructor,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_copy_constructor,void const volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_copy_constructor,void volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_copy_constructor,void,false)
+#ifndef NDNBOOST_NO_CV_VOID_SPECIALIZATIONS
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_copy_constructor,void const,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_copy_constructor,void const volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_copy_constructor,void volatile,false)
 #endif
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TT_HAS_NOTHROW_COPY_HPP_INCLUDED
+#endif // NDNBOOST_TT_HAS_NOTHROW_COPY_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/has_nothrow_destructor.hpp b/include/ndnboost/type_traits/has_nothrow_destructor.hpp
index 0499d56..3c11cab 100644
--- a/include/ndnboost/type_traits/has_nothrow_destructor.hpp
+++ b/include/ndnboost/type_traits/has_nothrow_destructor.hpp
@@ -6,8 +6,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_NOTHROW_DESTRUCTOR_HPP_INCLUDED
-#define BOOST_TT_HAS_NOTHROW_DESTRUCTOR_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_NOTHROW_DESTRUCTOR_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_NOTHROW_DESTRUCTOR_HPP_INCLUDED
 
 #include <ndnboost/type_traits/has_trivial_destructor.hpp>
 
@@ -16,10 +16,10 @@
 
 namespace ndnboost {
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_nothrow_destructor,T,::ndnboost::has_trivial_destructor<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(has_nothrow_destructor,T,::ndnboost::has_trivial_destructor<T>::value)
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TT_HAS_NOTHROW_DESTRUCTOR_HPP_INCLUDED
+#endif // NDNBOOST_TT_HAS_NOTHROW_DESTRUCTOR_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/has_operator.hpp b/include/ndnboost/type_traits/has_operator.hpp
index 3066ed3..a63d87a 100644
--- a/include/ndnboost/type_traits/has_operator.hpp
+++ b/include/ndnboost/type_traits/has_operator.hpp
@@ -6,8 +6,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_OPERATOR_HPP_INCLUDED
-#define BOOST_TT_HAS_OPERATOR_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_OPERATOR_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_OPERATOR_HPP_INCLUDED
 
 #include <ndnboost/type_traits/has_bit_and.hpp>
 #include <ndnboost/type_traits/has_bit_and_assign.hpp>
diff --git a/include/ndnboost/type_traits/has_plus.hpp b/include/ndnboost/type_traits/has_plus.hpp
index edca7e0..92e8150 100644
--- a/include/ndnboost/type_traits/has_plus.hpp
+++ b/include/ndnboost/type_traits/has_plus.hpp
@@ -6,12 +6,12 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_PLUS_HPP_INCLUDED
-#define BOOST_TT_HAS_PLUS_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_PLUS_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_PLUS_HPP_INCLUDED
 
-#define BOOST_TT_TRAIT_NAME has_plus
-#define BOOST_TT_TRAIT_OP +
-#define BOOST_TT_FORBIDDEN_IF\
+#define NDNBOOST_TT_TRAIT_NAME has_plus
+#define NDNBOOST_TT_TRAIT_OP +
+#define NDNBOOST_TT_FORBIDDEN_IF\
    ::ndnboost::type_traits::ice_or<\
       /* Lhs==pointer and Rhs==pointer */\
       ::ndnboost::type_traits::ice_and<\
@@ -47,8 +47,8 @@
 
 #include <ndnboost/type_traits/detail/has_binary_operator.hpp>
 
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
+#undef NDNBOOST_TT_TRAIT_NAME
+#undef NDNBOOST_TT_TRAIT_OP
+#undef NDNBOOST_TT_FORBIDDEN_IF
 
 #endif
diff --git a/include/ndnboost/type_traits/has_plus_assign.hpp b/include/ndnboost/type_traits/has_plus_assign.hpp
index d97d477..1daa28e 100644
--- a/include/ndnboost/type_traits/has_plus_assign.hpp
+++ b/include/ndnboost/type_traits/has_plus_assign.hpp
@@ -6,12 +6,12 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_PLUS_ASSIGN_HPP_INCLUDED
-#define BOOST_TT_HAS_PLUS_ASSIGN_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_PLUS_ASSIGN_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_PLUS_ASSIGN_HPP_INCLUDED
 
-#define BOOST_TT_TRAIT_NAME has_plus_assign
-#define BOOST_TT_TRAIT_OP +=
-#define BOOST_TT_FORBIDDEN_IF\
+#define NDNBOOST_TT_TRAIT_NAME has_plus_assign
+#define NDNBOOST_TT_TRAIT_OP +=
+#define NDNBOOST_TT_FORBIDDEN_IF\
    ::ndnboost::type_traits::ice_or<\
       /* Lhs==pointer and Rhs==pointer */\
       ::ndnboost::type_traits::ice_and<\
@@ -59,8 +59,8 @@
 
 #include <ndnboost/type_traits/detail/has_binary_operator.hpp>
 
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
+#undef NDNBOOST_TT_TRAIT_NAME
+#undef NDNBOOST_TT_TRAIT_OP
+#undef NDNBOOST_TT_FORBIDDEN_IF
 
 #endif
diff --git a/include/ndnboost/type_traits/has_post_decrement.hpp b/include/ndnboost/type_traits/has_post_decrement.hpp
index 8ecce6b..7fd7771 100644
--- a/include/ndnboost/type_traits/has_post_decrement.hpp
+++ b/include/ndnboost/type_traits/has_post_decrement.hpp
@@ -6,12 +6,12 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_POST_DECREMENT_HPP_INCLUDED
-#define BOOST_TT_HAS_POST_DECREMENT_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_POST_DECREMENT_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_POST_DECREMENT_HPP_INCLUDED
 
-#define BOOST_TT_TRAIT_NAME has_post_decrement
-#define BOOST_TT_TRAIT_OP --
-#define BOOST_TT_FORBIDDEN_IF\
+#define NDNBOOST_TT_TRAIT_NAME has_post_decrement
+#define NDNBOOST_TT_TRAIT_OP --
+#define NDNBOOST_TT_FORBIDDEN_IF\
    ::ndnboost::type_traits::ice_or<\
       /* bool */\
       ::ndnboost::is_same< bool, Lhs_nocv >::value,\
@@ -33,8 +33,8 @@
 
 #include <ndnboost/type_traits/detail/has_postfix_operator.hpp>
 
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
+#undef NDNBOOST_TT_TRAIT_NAME
+#undef NDNBOOST_TT_TRAIT_OP
+#undef NDNBOOST_TT_FORBIDDEN_IF
 
 #endif
diff --git a/include/ndnboost/type_traits/has_post_increment.hpp b/include/ndnboost/type_traits/has_post_increment.hpp
index b9b2d70..3d929ac 100644
--- a/include/ndnboost/type_traits/has_post_increment.hpp
+++ b/include/ndnboost/type_traits/has_post_increment.hpp
@@ -6,12 +6,12 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_POST_INCREMENT_HPP_INCLUDED
-#define BOOST_TT_HAS_POST_INCREMENT_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_POST_INCREMENT_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_POST_INCREMENT_HPP_INCLUDED
 
-#define BOOST_TT_TRAIT_NAME has_post_increment
-#define BOOST_TT_TRAIT_OP ++
-#define BOOST_TT_FORBIDDEN_IF\
+#define NDNBOOST_TT_TRAIT_NAME has_post_increment
+#define NDNBOOST_TT_TRAIT_OP ++
+#define NDNBOOST_TT_FORBIDDEN_IF\
    ::ndnboost::type_traits::ice_or<\
       /* bool */\
       ::ndnboost::is_same< bool, Lhs_nocv >::value,\
@@ -33,8 +33,8 @@
 
 #include <ndnboost/type_traits/detail/has_postfix_operator.hpp>
 
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
+#undef NDNBOOST_TT_TRAIT_NAME
+#undef NDNBOOST_TT_TRAIT_OP
+#undef NDNBOOST_TT_FORBIDDEN_IF
 
 #endif
diff --git a/include/ndnboost/type_traits/has_pre_decrement.hpp b/include/ndnboost/type_traits/has_pre_decrement.hpp
index 33ebb8c..116238e 100644
--- a/include/ndnboost/type_traits/has_pre_decrement.hpp
+++ b/include/ndnboost/type_traits/has_pre_decrement.hpp
@@ -6,12 +6,12 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_PRE_DECREMENT_HPP_INCLUDED
-#define BOOST_TT_HAS_PRE_DECREMENT_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_PRE_DECREMENT_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_PRE_DECREMENT_HPP_INCLUDED
 
-#define BOOST_TT_TRAIT_NAME has_pre_decrement
-#define BOOST_TT_TRAIT_OP --
-#define BOOST_TT_FORBIDDEN_IF\
+#define NDNBOOST_TT_TRAIT_NAME has_pre_decrement
+#define NDNBOOST_TT_TRAIT_OP --
+#define NDNBOOST_TT_FORBIDDEN_IF\
    ::ndnboost::type_traits::ice_or<\
       /* bool */\
       ::ndnboost::is_same< bool, Rhs_nocv >::value,\
@@ -33,8 +33,8 @@
 
 #include <ndnboost/type_traits/detail/has_prefix_operator.hpp>
 
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
+#undef NDNBOOST_TT_TRAIT_NAME
+#undef NDNBOOST_TT_TRAIT_OP
+#undef NDNBOOST_TT_FORBIDDEN_IF
 
 #endif
diff --git a/include/ndnboost/type_traits/has_pre_increment.hpp b/include/ndnboost/type_traits/has_pre_increment.hpp
index 16ae2b1..c40c13a 100644
--- a/include/ndnboost/type_traits/has_pre_increment.hpp
+++ b/include/ndnboost/type_traits/has_pre_increment.hpp
@@ -6,12 +6,12 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_PRE_INCREMENT_HPP_INCLUDED
-#define BOOST_TT_HAS_PRE_INCREMENT_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_PRE_INCREMENT_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_PRE_INCREMENT_HPP_INCLUDED
 
-#define BOOST_TT_TRAIT_NAME has_pre_increment
-#define BOOST_TT_TRAIT_OP ++
-#define BOOST_TT_FORBIDDEN_IF\
+#define NDNBOOST_TT_TRAIT_NAME has_pre_increment
+#define NDNBOOST_TT_TRAIT_OP ++
+#define NDNBOOST_TT_FORBIDDEN_IF\
    ::ndnboost::type_traits::ice_or<\
       /* bool */\
       ::ndnboost::is_same< bool, Rhs_nocv >::value,\
@@ -33,8 +33,8 @@
 
 #include <ndnboost/type_traits/detail/has_prefix_operator.hpp>
 
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
+#undef NDNBOOST_TT_TRAIT_NAME
+#undef NDNBOOST_TT_TRAIT_OP
+#undef NDNBOOST_TT_FORBIDDEN_IF
 
 #endif
diff --git a/include/ndnboost/type_traits/has_right_shift.hpp b/include/ndnboost/type_traits/has_right_shift.hpp
index a29c47a..7a05b7d 100644
--- a/include/ndnboost/type_traits/has_right_shift.hpp
+++ b/include/ndnboost/type_traits/has_right_shift.hpp
@@ -6,12 +6,12 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_RIGHT_SHIFT_HPP_INCLUDED
-#define BOOST_TT_HAS_RIGHT_SHIFT_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_RIGHT_SHIFT_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_RIGHT_SHIFT_HPP_INCLUDED
 
-#define BOOST_TT_TRAIT_NAME has_right_shift
-#define BOOST_TT_TRAIT_OP >>
-#define BOOST_TT_FORBIDDEN_IF\
+#define NDNBOOST_TT_TRAIT_NAME has_right_shift
+#define NDNBOOST_TT_TRAIT_OP >>
+#define NDNBOOST_TT_FORBIDDEN_IF\
    ::ndnboost::type_traits::ice_or<\
       /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
       ::ndnboost::type_traits::ice_and<\
@@ -42,8 +42,8 @@
 
 #include <ndnboost/type_traits/detail/has_binary_operator.hpp>
 
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
+#undef NDNBOOST_TT_TRAIT_NAME
+#undef NDNBOOST_TT_TRAIT_OP
+#undef NDNBOOST_TT_FORBIDDEN_IF
 
 #endif
diff --git a/include/ndnboost/type_traits/has_right_shift_assign.hpp b/include/ndnboost/type_traits/has_right_shift_assign.hpp
index dc6565c..75e8c24 100644
--- a/include/ndnboost/type_traits/has_right_shift_assign.hpp
+++ b/include/ndnboost/type_traits/has_right_shift_assign.hpp
@@ -6,12 +6,12 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_RIGHT_SHIFT_ASSIGN_HPP_INCLUDED
-#define BOOST_TT_HAS_RIGHT_SHIFT_ASSIGN_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_RIGHT_SHIFT_ASSIGN_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_RIGHT_SHIFT_ASSIGN_HPP_INCLUDED
 
-#define BOOST_TT_TRAIT_NAME has_right_shift_assign
-#define BOOST_TT_TRAIT_OP >>=
-#define BOOST_TT_FORBIDDEN_IF\
+#define NDNBOOST_TT_TRAIT_NAME has_right_shift_assign
+#define NDNBOOST_TT_TRAIT_OP >>=
+#define NDNBOOST_TT_FORBIDDEN_IF\
    ::ndnboost::type_traits::ice_or<\
       /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
       ::ndnboost::type_traits::ice_and<\
@@ -48,8 +48,8 @@
 
 #include <ndnboost/type_traits/detail/has_binary_operator.hpp>
 
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
+#undef NDNBOOST_TT_TRAIT_NAME
+#undef NDNBOOST_TT_TRAIT_OP
+#undef NDNBOOST_TT_FORBIDDEN_IF
 
 #endif
diff --git a/include/ndnboost/type_traits/has_trivial_assign.hpp b/include/ndnboost/type_traits/has_trivial_assign.hpp
index 222f747..fd8a2f8 100644
--- a/include/ndnboost/type_traits/has_trivial_assign.hpp
+++ b/include/ndnboost/type_traits/has_trivial_assign.hpp
@@ -6,8 +6,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_TRIVIAL_ASSIGN_HPP_INCLUDED
-#define BOOST_TT_HAS_TRIVIAL_ASSIGN_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_TRIVIAL_ASSIGN_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_TRIVIAL_ASSIGN_HPP_INCLUDED
 
 #include <ndnboost/type_traits/config.hpp>
 #include <ndnboost/type_traits/intrinsics.hpp>
@@ -28,10 +28,10 @@
 template <typename T>
 struct has_trivial_assign_impl
 {
-#ifdef BOOST_HAS_TRIVIAL_ASSIGN
-   BOOST_STATIC_CONSTANT(bool, value = BOOST_HAS_TRIVIAL_ASSIGN(T));
+#ifdef NDNBOOST_HAS_TRIVIAL_ASSIGN
+   NDNBOOST_STATIC_CONSTANT(bool, value = NDNBOOST_HAS_TRIVIAL_ASSIGN(T));
 #else
-   BOOST_STATIC_CONSTANT(bool, value =
+   NDNBOOST_STATIC_CONSTANT(bool, value =
       (::ndnboost::type_traits::ice_and<
         ::ndnboost::is_pod<T>::value,
         ::ndnboost::type_traits::ice_not< ::ndnboost::is_const<T>::value >::value,
@@ -42,16 +42,16 @@
 
 } // namespace detail
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_assign,T,::ndnboost::detail::has_trivial_assign_impl<T>::value)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_assign,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_assign,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_assign,void const volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_assign,void volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_assign,T,::ndnboost::detail::has_trivial_assign_impl<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_assign,void,false)
+#ifndef NDNBOOST_NO_CV_VOID_SPECIALIZATIONS
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_assign,void const,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_assign,void const volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_assign,void volatile,false)
 #endif
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TT_HAS_TRIVIAL_ASSIGN_HPP_INCLUDED
+#endif // NDNBOOST_TT_HAS_TRIVIAL_ASSIGN_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/has_trivial_constructor.hpp b/include/ndnboost/type_traits/has_trivial_constructor.hpp
index 9eb5ded..c025bd1 100644
--- a/include/ndnboost/type_traits/has_trivial_constructor.hpp
+++ b/include/ndnboost/type_traits/has_trivial_constructor.hpp
@@ -6,8 +6,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_TRIVIAL_CONSTRUCTOR_HPP_INCLUDED
-#define BOOST_TT_HAS_TRIVIAL_CONSTRUCTOR_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_TRIVIAL_CONSTRUCTOR_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_TRIVIAL_CONSTRUCTOR_HPP_INCLUDED
 
 #include <ndnboost/type_traits/config.hpp>
 #include <ndnboost/type_traits/intrinsics.hpp>
@@ -24,14 +24,14 @@
 template <typename T>
 struct has_trivial_ctor_impl
 {
-#ifdef BOOST_HAS_TRIVIAL_CONSTRUCTOR
-   BOOST_STATIC_CONSTANT(bool, value =
+#ifdef NDNBOOST_HAS_TRIVIAL_CONSTRUCTOR
+   NDNBOOST_STATIC_CONSTANT(bool, value =
       (::ndnboost::type_traits::ice_or<
          ::ndnboost::is_pod<T>::value,
-         BOOST_HAS_TRIVIAL_CONSTRUCTOR(T)
+         NDNBOOST_HAS_TRIVIAL_CONSTRUCTOR(T)
       >::value));
 #else
-   BOOST_STATIC_CONSTANT(bool, value =
+   NDNBOOST_STATIC_CONSTANT(bool, value =
       (::ndnboost::type_traits::ice_or<
          ::ndnboost::is_pod<T>::value,
          false
@@ -41,11 +41,11 @@
 
 } // namespace detail
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_constructor,T,::ndnboost::detail::has_trivial_ctor_impl<T>::value)
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_default_constructor,T,::ndnboost::detail::has_trivial_ctor_impl<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_constructor,T,::ndnboost::detail::has_trivial_ctor_impl<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_default_constructor,T,::ndnboost::detail::has_trivial_ctor_impl<T>::value)
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TT_HAS_TRIVIAL_CONSTRUCTOR_HPP_INCLUDED
+#endif // NDNBOOST_TT_HAS_TRIVIAL_CONSTRUCTOR_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/has_trivial_copy.hpp b/include/ndnboost/type_traits/has_trivial_copy.hpp
index afa6f14..cb9e887 100644
--- a/include/ndnboost/type_traits/has_trivial_copy.hpp
+++ b/include/ndnboost/type_traits/has_trivial_copy.hpp
@@ -6,8 +6,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_TRIVIAL_COPY_HPP_INCLUDED
-#define BOOST_TT_HAS_TRIVIAL_COPY_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_TRIVIAL_COPY_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_TRIVIAL_COPY_HPP_INCLUDED
 
 #include <ndnboost/type_traits/config.hpp>
 #include <ndnboost/type_traits/intrinsics.hpp>
@@ -27,10 +27,10 @@
 template <typename T>
 struct has_trivial_copy_impl
 {
-#ifdef BOOST_HAS_TRIVIAL_COPY
-   BOOST_STATIC_CONSTANT(bool, value = BOOST_HAS_TRIVIAL_COPY(T));
+#ifdef NDNBOOST_HAS_TRIVIAL_COPY
+   NDNBOOST_STATIC_CONSTANT(bool, value = NDNBOOST_HAS_TRIVIAL_COPY(T));
 #else
-   BOOST_STATIC_CONSTANT(bool, value =
+   NDNBOOST_STATIC_CONSTANT(bool, value =
       (::ndnboost::type_traits::ice_and<
          ::ndnboost::is_pod<T>::value,
          ::ndnboost::type_traits::ice_not< ::ndnboost::is_volatile<T>::value >::value
@@ -40,25 +40,25 @@
 
 } // namespace detail
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_copy,T,::ndnboost::detail::has_trivial_copy_impl<T>::value)
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_copy_constructor,T,::ndnboost::detail::has_trivial_copy_impl<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_copy,T,::ndnboost::detail::has_trivial_copy_impl<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_copy_constructor,T,::ndnboost::detail::has_trivial_copy_impl<T>::value)
 
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_copy,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_copy,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_copy,void const volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_copy,void volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_copy,void,false)
+#ifndef NDNBOOST_NO_CV_VOID_SPECIALIZATIONS
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_copy,void const,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_copy,void const volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_copy,void volatile,false)
 #endif
 
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_copy_constructor,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_copy_constructor,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_copy_constructor,void const volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_copy_constructor,void volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_copy_constructor,void,false)
+#ifndef NDNBOOST_NO_CV_VOID_SPECIALIZATIONS
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_copy_constructor,void const,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_copy_constructor,void const volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_copy_constructor,void volatile,false)
 #endif
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TT_HAS_TRIVIAL_COPY_HPP_INCLUDED
+#endif // NDNBOOST_TT_HAS_TRIVIAL_COPY_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/has_trivial_destructor.hpp b/include/ndnboost/type_traits/has_trivial_destructor.hpp
index f47ab64..5b83af9 100644
--- a/include/ndnboost/type_traits/has_trivial_destructor.hpp
+++ b/include/ndnboost/type_traits/has_trivial_destructor.hpp
@@ -6,8 +6,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_TRIVIAL_DESTRUCTOR_HPP_INCLUDED
-#define BOOST_TT_HAS_TRIVIAL_DESTRUCTOR_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_TRIVIAL_DESTRUCTOR_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_TRIVIAL_DESTRUCTOR_HPP_INCLUDED
 
 #include <ndnboost/type_traits/config.hpp>
 #include <ndnboost/type_traits/intrinsics.hpp>
@@ -24,26 +24,26 @@
 template <typename T>
 struct has_trivial_dtor_impl
 {
-#ifdef BOOST_HAS_TRIVIAL_DESTRUCTOR
-   BOOST_STATIC_CONSTANT(bool, value = BOOST_HAS_TRIVIAL_DESTRUCTOR(T));
+#ifdef NDNBOOST_HAS_TRIVIAL_DESTRUCTOR
+   NDNBOOST_STATIC_CONSTANT(bool, value = NDNBOOST_HAS_TRIVIAL_DESTRUCTOR(T));
 #else
-   BOOST_STATIC_CONSTANT(bool, value = ::ndnboost::is_pod<T>::value);
+   NDNBOOST_STATIC_CONSTANT(bool, value = ::ndnboost::is_pod<T>::value);
 #endif
 };
 
 } // namespace detail
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_destructor,T,::ndnboost::detail::has_trivial_dtor_impl<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_destructor,T,::ndnboost::detail::has_trivial_dtor_impl<T>::value)
 
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_destructor,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_destructor,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_destructor,void const volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_destructor,void volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_destructor,void,false)
+#ifndef NDNBOOST_NO_CV_VOID_SPECIALIZATIONS
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_destructor,void const,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_destructor,void const volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_destructor,void volatile,false)
 #endif
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TT_HAS_TRIVIAL_DESTRUCTOR_HPP_INCLUDED
+#endif // NDNBOOST_TT_HAS_TRIVIAL_DESTRUCTOR_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/has_trivial_move_assign.hpp b/include/ndnboost/type_traits/has_trivial_move_assign.hpp
index b753d74..7067eff 100644
--- a/include/ndnboost/type_traits/has_trivial_move_assign.hpp
+++ b/include/ndnboost/type_traits/has_trivial_move_assign.hpp
@@ -8,8 +8,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_TRIVIAL_MOVE_ASSIGN_HPP_INCLUDED
-#define BOOST_TT_HAS_TRIVIAL_MOVE_ASSIGN_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_TRIVIAL_MOVE_ASSIGN_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_TRIVIAL_MOVE_ASSIGN_HPP_INCLUDED
 
 #include <ndnboost/type_traits/config.hpp>
 #include <ndnboost/type_traits/is_pod.hpp>
@@ -28,10 +28,10 @@
 template <typename T>
 struct has_trivial_move_assign_impl
 {
-#ifdef BOOST_HAS_TRIVIAL_MOVE_ASSIGN
-   BOOST_STATIC_CONSTANT(bool, value = (BOOST_HAS_TRIVIAL_MOVE_ASSIGN(T)));
+#ifdef NDNBOOST_HAS_TRIVIAL_MOVE_ASSIGN
+   NDNBOOST_STATIC_CONSTANT(bool, value = (NDNBOOST_HAS_TRIVIAL_MOVE_ASSIGN(T)));
 #else
-   BOOST_STATIC_CONSTANT(bool, value =
+   NDNBOOST_STATIC_CONSTANT(bool, value =
            (::ndnboost::type_traits::ice_and<
               ::ndnboost::is_pod<T>::value,
               ::ndnboost::type_traits::ice_not< ::ndnboost::is_const<T>::value >::value,
@@ -42,16 +42,16 @@
 
 } // namespace detail
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_move_assign,T,::ndnboost::detail::has_trivial_move_assign_impl<T>::value)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_move_assign,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_move_assign,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_move_assign,void const volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_move_assign,void volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_move_assign,T,::ndnboost::detail::has_trivial_move_assign_impl<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_move_assign,void,false)
+#ifndef NDNBOOST_NO_CV_VOID_SPECIALIZATIONS
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_move_assign,void const,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_move_assign,void const volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_move_assign,void volatile,false)
 #endif
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TT_HAS_TRIVIAL_MOVE_ASSIGN_HPP_INCLUDED
+#endif // NDNBOOST_TT_HAS_TRIVIAL_MOVE_ASSIGN_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/has_trivial_move_constructor.hpp b/include/ndnboost/type_traits/has_trivial_move_constructor.hpp
index 4bf836d..4e9c95c 100644
--- a/include/ndnboost/type_traits/has_trivial_move_constructor.hpp
+++ b/include/ndnboost/type_traits/has_trivial_move_constructor.hpp
@@ -8,8 +8,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_TRIVIAL_MOVE_CONSTRUCTOR_HPP_INCLUDED
-#define BOOST_TT_HAS_TRIVIAL_MOVE_CONSTRUCTOR_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_TRIVIAL_MOVE_CONSTRUCTOR_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_TRIVIAL_MOVE_CONSTRUCTOR_HPP_INCLUDED
 
 #include <ndnboost/type_traits/config.hpp>
 #include <ndnboost/type_traits/intrinsics.hpp>
@@ -28,10 +28,10 @@
 template <typename T>
 struct has_trivial_move_ctor_impl
 {
-#ifdef BOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR
-   BOOST_STATIC_CONSTANT(bool, value = (BOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR(T)));
+#ifdef NDNBOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR
+   NDNBOOST_STATIC_CONSTANT(bool, value = (NDNBOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR(T)));
 #else
-   BOOST_STATIC_CONSTANT(bool, value =
+   NDNBOOST_STATIC_CONSTANT(bool, value =
            (::ndnboost::type_traits::ice_and<
               ::ndnboost::is_pod<T>::value,
               ::ndnboost::type_traits::ice_not< ::ndnboost::is_volatile<T>::value >::value
@@ -41,17 +41,17 @@
 
 } // namespace detail
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_move_constructor,T,::ndnboost::detail::has_trivial_move_ctor_impl<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_move_constructor,T,::ndnboost::detail::has_trivial_move_ctor_impl<T>::value)
 
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_move_constructor,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_move_constructor,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_move_constructor,void const volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_move_constructor,void volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_move_constructor,void,false)
+#ifndef NDNBOOST_NO_CV_VOID_SPECIALIZATIONS
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_move_constructor,void const,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_move_constructor,void const volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_move_constructor,void volatile,false)
 #endif
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TT_HAS_TRIVIAL_MOVE_CONSTRUCTOR_HPP_INCLUDED
+#endif // NDNBOOST_TT_HAS_TRIVIAL_MOVE_CONSTRUCTOR_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/has_unary_minus.hpp b/include/ndnboost/type_traits/has_unary_minus.hpp
index aba9b00..0f795da 100644
--- a/include/ndnboost/type_traits/has_unary_minus.hpp
+++ b/include/ndnboost/type_traits/has_unary_minus.hpp
@@ -6,20 +6,20 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_UNARY_MINUS_HPP_INCLUDED
-#define BOOST_TT_HAS_UNARY_MINUS_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_UNARY_MINUS_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_UNARY_MINUS_HPP_INCLUDED
 
-#define BOOST_TT_TRAIT_NAME has_unary_minus
-#define BOOST_TT_TRAIT_OP -
-#define BOOST_TT_FORBIDDEN_IF\
+#define NDNBOOST_TT_TRAIT_NAME has_unary_minus
+#define NDNBOOST_TT_TRAIT_OP -
+#define NDNBOOST_TT_FORBIDDEN_IF\
    /* pointer */\
    ::ndnboost::is_pointer< Rhs_noref >::value
 
 
 #include <ndnboost/type_traits/detail/has_prefix_operator.hpp>
 
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
+#undef NDNBOOST_TT_TRAIT_NAME
+#undef NDNBOOST_TT_TRAIT_OP
+#undef NDNBOOST_TT_FORBIDDEN_IF
 
 #endif
diff --git a/include/ndnboost/type_traits/has_unary_plus.hpp b/include/ndnboost/type_traits/has_unary_plus.hpp
index ad8ca4d..096af6d 100644
--- a/include/ndnboost/type_traits/has_unary_plus.hpp
+++ b/include/ndnboost/type_traits/has_unary_plus.hpp
@@ -6,18 +6,18 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_HAS_UNARY_PLUS_HPP_INCLUDED
-#define BOOST_TT_HAS_UNARY_PLUS_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_UNARY_PLUS_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_UNARY_PLUS_HPP_INCLUDED
 
-#define BOOST_TT_TRAIT_NAME has_unary_plus
-#define BOOST_TT_TRAIT_OP +
-#define BOOST_TT_FORBIDDEN_IF\
+#define NDNBOOST_TT_TRAIT_NAME has_unary_plus
+#define NDNBOOST_TT_TRAIT_OP +
+#define NDNBOOST_TT_FORBIDDEN_IF\
    false
 
 #include <ndnboost/type_traits/detail/has_prefix_operator.hpp>
 
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
+#undef NDNBOOST_TT_TRAIT_NAME
+#undef NDNBOOST_TT_TRAIT_OP
+#undef NDNBOOST_TT_FORBIDDEN_IF
 
 #endif
diff --git a/include/ndnboost/type_traits/has_virtual_destructor.hpp b/include/ndnboost/type_traits/has_virtual_destructor.hpp
index 897463e..b644edf 100644
--- a/include/ndnboost/type_traits/has_virtual_destructor.hpp
+++ b/include/ndnboost/type_traits/has_virtual_destructor.hpp
@@ -7,8 +7,8 @@
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
 
-#ifndef BOOST_TT_HAS_VIRTUAL_DESTRUCTOR_HPP_INCLUDED
-#define BOOST_TT_HAS_VIRTUAL_DESTRUCTOR_HPP_INCLUDED
+#ifndef NDNBOOST_TT_HAS_VIRTUAL_DESTRUCTOR_HPP_INCLUDED
+#define NDNBOOST_TT_HAS_VIRTUAL_DESTRUCTOR_HPP_INCLUDED
 
 #include <ndnboost/type_traits/intrinsics.hpp>
 // should be the last #include
@@ -16,14 +16,14 @@
 
 namespace ndnboost {
 
-#ifdef BOOST_HAS_VIRTUAL_DESTRUCTOR
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_virtual_destructor,T,BOOST_HAS_VIRTUAL_DESTRUCTOR(T))
+#ifdef NDNBOOST_HAS_VIRTUAL_DESTRUCTOR
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(has_virtual_destructor,T,NDNBOOST_HAS_VIRTUAL_DESTRUCTOR(T))
 #else
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_virtual_destructor,T,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(has_virtual_destructor,T,false)
 #endif
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
+#endif // NDNBOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/ice.hpp b/include/ndnboost/type_traits/ice.hpp
index e68c229..dd2ee99 100644
--- a/include/ndnboost/type_traits/ice.hpp
+++ b/include/ndnboost/type_traits/ice.hpp
@@ -8,8 +8,8 @@
 //
 //  macros and helpers for working with integral-constant-expressions.
 
-#ifndef BOOST_TT_ICE_HPP_INCLUDED
-#define BOOST_TT_ICE_HPP_INCLUDED
+#ifndef NDNBOOST_TT_ICE_HPP_INCLUDED
+#define NDNBOOST_TT_ICE_HPP_INCLUDED
 
 #include <ndnboost/type_traits/detail/yes_no_type.hpp>
 #include <ndnboost/type_traits/detail/ice_or.hpp>
@@ -17,4 +17,4 @@
 #include <ndnboost/type_traits/detail/ice_not.hpp>
 #include <ndnboost/type_traits/detail/ice_eq.hpp>
 
-#endif // BOOST_TT_ICE_HPP_INCLUDED
+#endif // NDNBOOST_TT_ICE_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/integral_constant.hpp b/include/ndnboost/type_traits/integral_constant.hpp
index 0539f1c..78b9050 100644
--- a/include/ndnboost/type_traits/integral_constant.hpp
+++ b/include/ndnboost/type_traits/integral_constant.hpp
@@ -3,8 +3,8 @@
 //  Boost Software License, Version 1.0. (See accompanying file 
 //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_TYPE_TRAITS_INTEGRAL_CONSTANT_HPP
-#define BOOST_TYPE_TRAITS_INTEGRAL_CONSTANT_HPP
+#ifndef NDNBOOST_TYPE_TRAITS_INTEGRAL_CONSTANT_HPP
+#define NDNBOOST_TYPE_TRAITS_INTEGRAL_CONSTANT_HPP
 
 #include <ndnboost/config.hpp>
 #include <ndnboost/mpl/bool.hpp>
@@ -12,7 +12,7 @@
 
 namespace ndnboost{
 
-#if defined(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS) || defined(__BORLANDC__)
+#if defined(NDNBOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS) || defined(__BORLANDC__)
 template <class T, int val>
 #else
 template <class T, T val>
@@ -24,7 +24,7 @@
 
 template<> struct integral_constant<bool,true> : public mpl::true_ 
 {
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
 # pragma warning(push)
 # pragma warning(disable:4097)
    typedef mpl::true_ base_;
@@ -35,7 +35,7 @@
 };
 template<> struct integral_constant<bool,false> : public mpl::false_ 
 {
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
 # pragma warning(push)
 # pragma warning(disable:4097)
    typedef mpl::false_ base_;
diff --git a/include/ndnboost/type_traits/integral_promotion.hpp b/include/ndnboost/type_traits/integral_promotion.hpp
index 0f26a9e..48cfffe 100644
--- a/include/ndnboost/type_traits/integral_promotion.hpp
+++ b/include/ndnboost/type_traits/integral_promotion.hpp
@@ -37,40 +37,40 @@
 // Specializations for non-standard types.
 // Type is promoted if it's smaller then int.
 
-#define BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(T) \
+#define NDNBOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(T) \
     template<> struct need_promotion<T>          \
         : public integral_constant<bool, (sizeof(T) < sizeof(int))> {};
 
 // Same set of integral types as in ndnboost/type_traits/is_integral.hpp.
 // Please, keep in sync.
-#if (defined(BOOST_MSVC) && (BOOST_MSVC < 1300)) \
-    || (defined(BOOST_INTEL_CXX_VERSION) && defined(_MSC_VER) && (BOOST_INTEL_CXX_VERSION <= 600)) \
+#if (defined(NDNBOOST_MSVC) && (NDNBOOST_MSVC < 1300)) \
+    || (defined(NDNBOOST_INTEL_CXX_VERSION) && defined(_MSC_VER) && (NDNBOOST_INTEL_CXX_VERSION <= 600)) \
     || (defined(__BORLANDC__) && (__BORLANDC__ == 0x600) && (_MSC_VER < 1300))
 // TODO: common macro for this #if. Or better yet, PP SEQ of non-standard types.
-BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(__int8          )
-BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(unsigned __int8 )
-BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(__int16         )
-BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(unsigned __int16)
-BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(__int32         )
-BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(unsigned __int32)
+NDNBOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(__int8          )
+NDNBOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(unsigned __int8 )
+NDNBOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(__int16         )
+NDNBOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(unsigned __int16)
+NDNBOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(__int32         )
+NDNBOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(unsigned __int32)
 #ifdef __BORLANDC__
-BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(unsigned __int64)
-BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(         __int64)
+NDNBOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(unsigned __int64)
+NDNBOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(         __int64)
 #endif
 #endif
 
-#if defined(BOOST_HAS_LONG_LONG)
-BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(ndnboost::ulong_long_type)
-BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(ndnboost::long_long_type )
-#elif defined(BOOST_HAS_MS_INT64)
-BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(unsigned __int64)
-BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(         __int64)
+#if defined(NDNBOOST_HAS_LONG_LONG)
+NDNBOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(ndnboost::ulong_long_type)
+NDNBOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(ndnboost::long_long_type )
+#elif defined(NDNBOOST_HAS_MS_INT64)
+NDNBOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(unsigned __int64)
+NDNBOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(         __int64)
 #endif
 
-#undef BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE
+#undef NDNBOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE
 
 
-#ifndef BOOST_NO_INTRINSIC_WCHAR_T
+#ifndef NDNBOOST_NO_INTRINSIC_WCHAR_T
 // 4.5/2
 template<> struct need_promotion<wchar_t> : public true_type {};
 #endif
@@ -85,17 +85,17 @@
 
 template<int Index, int IsConst, int IsVolatile> struct promote_from_index;
 
-#define BOOST_TT_AUX_PROMOTE_FROM_INDEX(N,T)                                   \
+#define NDNBOOST_TT_AUX_PROMOTE_FROM_INDEX(N,T)                                   \
     template<> struct promote_from_index<N,0,0> { typedef T type; };           \
     template<> struct promote_from_index<N,0,1> { typedef T volatile type; };  \
     template<> struct promote_from_index<N,1,0> { typedef T const type; };     \
     template<> struct promote_from_index<N,1,1> { typedef T const volatile type; };
 
 
-BOOST_TT_AUX_PROMOTE_FROM_INDEX(1, int          )
-BOOST_TT_AUX_PROMOTE_FROM_INDEX(2, unsigned int )
-BOOST_TT_AUX_PROMOTE_FROM_INDEX(3, long         )
-BOOST_TT_AUX_PROMOTE_FROM_INDEX(4, unsigned long)
+NDNBOOST_TT_AUX_PROMOTE_FROM_INDEX(1, int          )
+NDNBOOST_TT_AUX_PROMOTE_FROM_INDEX(2, unsigned int )
+NDNBOOST_TT_AUX_PROMOTE_FROM_INDEX(3, long         )
+NDNBOOST_TT_AUX_PROMOTE_FROM_INDEX(4, unsigned long)
 
 
 // WARNING: integral promotions to non-standard types
@@ -103,19 +103,19 @@
 // Additional specialisations and overloads shouldn't
 // introduce ambiguity, though.
 
-#if defined(BOOST_HAS_LONG_LONG)
-BOOST_TT_AUX_PROMOTE_FROM_INDEX(5, ndnboost::long_long_type )
-BOOST_TT_AUX_PROMOTE_FROM_INDEX(6, ndnboost::ulong_long_type)
-#elif defined(BOOST_HAS_MS_INT64)
-BOOST_TT_AUX_PROMOTE_FROM_INDEX(7, __int64         )
-BOOST_TT_AUX_PROMOTE_FROM_INDEX(8, unsigned __int64)
+#if defined(NDNBOOST_HAS_LONG_LONG)
+NDNBOOST_TT_AUX_PROMOTE_FROM_INDEX(5, ndnboost::long_long_type )
+NDNBOOST_TT_AUX_PROMOTE_FROM_INDEX(6, ndnboost::ulong_long_type)
+#elif defined(NDNBOOST_HAS_MS_INT64)
+NDNBOOST_TT_AUX_PROMOTE_FROM_INDEX(7, __int64         )
+NDNBOOST_TT_AUX_PROMOTE_FROM_INDEX(8, unsigned __int64)
 #endif
 
-#undef BOOST_TT_AUX_PROMOTE_FROM_INDEX
+#undef NDNBOOST_TT_AUX_PROMOTE_FROM_INDEX
 
 
-// Define BOOST_TT_AUX_PROMOTED_INDEX_TESTER:
-#if !defined(BOOST_MSVC)
+// Define NDNBOOST_TT_AUX_PROMOTED_INDEX_TESTER:
+#if !defined(NDNBOOST_MSVC)
 
 template<int N>
 struct sized_type_for_promotion
@@ -123,30 +123,30 @@
     typedef char (&type)[N];
 };
 
-#define BOOST_TT_AUX_PROMOTED_INDEX_TESTER(I,T) \
+#define NDNBOOST_TT_AUX_PROMOTED_INDEX_TESTER(I,T) \
     sized_type_for_promotion<I>::type promoted_index_tester(T);
 
 #else
 
-#define BOOST_TT_AUX_PROMOTED_INDEX_TESTER(I,T) \
+#define NDNBOOST_TT_AUX_PROMOTED_INDEX_TESTER(I,T) \
     char (&promoted_index_tester(T))[I];
 
 #endif
 
-BOOST_TT_AUX_PROMOTED_INDEX_TESTER(1, int          )
-BOOST_TT_AUX_PROMOTED_INDEX_TESTER(2, unsigned int )
-BOOST_TT_AUX_PROMOTED_INDEX_TESTER(3, long         )
-BOOST_TT_AUX_PROMOTED_INDEX_TESTER(4, unsigned long)
+NDNBOOST_TT_AUX_PROMOTED_INDEX_TESTER(1, int          )
+NDNBOOST_TT_AUX_PROMOTED_INDEX_TESTER(2, unsigned int )
+NDNBOOST_TT_AUX_PROMOTED_INDEX_TESTER(3, long         )
+NDNBOOST_TT_AUX_PROMOTED_INDEX_TESTER(4, unsigned long)
 
-#if defined(BOOST_HAS_LONG_LONG)
-BOOST_TT_AUX_PROMOTED_INDEX_TESTER(5, ndnboost::long_long_type )
-BOOST_TT_AUX_PROMOTED_INDEX_TESTER(6, ndnboost::ulong_long_type)
-#elif defined(BOOST_HAS_MS_INT64)
-BOOST_TT_AUX_PROMOTED_INDEX_TESTER(7, __int64         )
-BOOST_TT_AUX_PROMOTED_INDEX_TESTER(8, unsigned __int64)
+#if defined(NDNBOOST_HAS_LONG_LONG)
+NDNBOOST_TT_AUX_PROMOTED_INDEX_TESTER(5, ndnboost::long_long_type )
+NDNBOOST_TT_AUX_PROMOTED_INDEX_TESTER(6, ndnboost::ulong_long_type)
+#elif defined(NDNBOOST_HAS_MS_INT64)
+NDNBOOST_TT_AUX_PROMOTED_INDEX_TESTER(7, __int64         )
+NDNBOOST_TT_AUX_PROMOTED_INDEX_TESTER(8, unsigned __int64)
 #endif
 
-#undef BOOST_TT_AUX_PROMOTED_INDEX_TESTER
+#undef NDNBOOST_TT_AUX_PROMOTED_INDEX_TESTER
 
 
 // Get an index of promoted type for type T.
@@ -155,14 +155,14 @@
 struct promoted_index
 {
     static T testee; // undefined
-    BOOST_STATIC_CONSTANT(int, value = sizeof(promoted_index_tester(+testee)) );
+    NDNBOOST_STATIC_CONSTANT(int, value = sizeof(promoted_index_tester(+testee)) );
     // Unary plus promotes testee                    LOOK HERE ---> ^
 };
 
 template<class T>
 struct integral_promotion_impl
 {
-    typedef BOOST_DEDUCED_TYPENAME promote_from_index<
+    typedef NDNBOOST_DEDUCED_TYPENAME promote_from_index<
         (ndnboost::type_traits::detail::promoted_index<T>::value)
       , (ndnboost::is_const<T>::value)
       , (ndnboost::is_volatile<T>::value)
@@ -172,7 +172,7 @@
 template<class T>
 struct integral_promotion
   : public ndnboost::mpl::eval_if<
-        need_promotion<BOOST_DEDUCED_TYPENAME remove_cv<T>::type>
+        need_promotion<NDNBOOST_DEDUCED_TYPENAME remove_cv<T>::type>
       , integral_promotion_impl<T>
       , ndnboost::mpl::identity<T>
       >
@@ -181,10 +181,10 @@
 
 } }
 
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(
+NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(
       integral_promotion
     , T
-    , BOOST_DEDUCED_TYPENAME
+    , NDNBOOST_DEDUCED_TYPENAME
         ndnboost::type_traits::detail::integral_promotion<T>::type
     )
 }
diff --git a/include/ndnboost/type_traits/intrinsics.hpp b/include/ndnboost/type_traits/intrinsics.hpp
index 25f1a28..978b2e1 100644
--- a/include/ndnboost/type_traits/intrinsics.hpp
+++ b/include/ndnboost/type_traits/intrinsics.hpp
@@ -5,10 +5,10 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_INTRINSICS_HPP_INCLUDED
-#define BOOST_TT_INTRINSICS_HPP_INCLUDED
+#ifndef NDNBOOST_TT_INTRINSICS_HPP_INCLUDED
+#define NDNBOOST_TT_INTRINSICS_HPP_INCLUDED
 
-#ifndef BOOST_TT_CONFIG_HPP_INCLUDED
+#ifndef NDNBOOST_TT_CONFIG_HPP_INCLUDED
 #include <ndnboost/type_traits/config.hpp>
 #endif
 
@@ -19,31 +19,31 @@
 // up on the compiler support:
 //
 // (these should largely ignore cv-qualifiers)
-// BOOST_IS_UNION(T) should evaluate to true if T is a union type
-// BOOST_IS_POD(T) should evaluate to true if T is a POD type
-// BOOST_IS_EMPTY(T) should evaluate to true if T is an empty class type (and not a union)
-// BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) should evaluate to true if "T x;" has no effect
-// BOOST_HAS_TRIVIAL_COPY(T) should evaluate to true if T(t) <==> memcpy
-// BOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR(T) should evaluate to true if T(ndnboost::move(t)) <==> memcpy
-// BOOST_HAS_TRIVIAL_ASSIGN(T) should evaluate to true if t = u <==> memcpy
-// BOOST_HAS_TRIVIAL_MOVE_ASSIGN(T) should evaluate to true if t = ndnboost::move(u) <==> memcpy
-// BOOST_HAS_TRIVIAL_DESTRUCTOR(T) should evaluate to true if ~T() has no effect
-// BOOST_HAS_NOTHROW_CONSTRUCTOR(T) should evaluate to true if "T x;" can not throw
-// BOOST_HAS_NOTHROW_COPY(T) should evaluate to true if T(t) can not throw
-// BOOST_HAS_NOTHROW_ASSIGN(T) should evaluate to true if t = u can not throw
-// BOOST_HAS_VIRTUAL_DESTRUCTOR(T) should evaluate to true T has a virtual destructor
+// NDNBOOST_IS_UNION(T) should evaluate to true if T is a union type
+// NDNBOOST_IS_POD(T) should evaluate to true if T is a POD type
+// NDNBOOST_IS_EMPTY(T) should evaluate to true if T is an empty class type (and not a union)
+// NDNBOOST_HAS_TRIVIAL_CONSTRUCTOR(T) should evaluate to true if "T x;" has no effect
+// NDNBOOST_HAS_TRIVIAL_COPY(T) should evaluate to true if T(t) <==> memcpy
+// NDNBOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR(T) should evaluate to true if T(ndnboost::move(t)) <==> memcpy
+// NDNBOOST_HAS_TRIVIAL_ASSIGN(T) should evaluate to true if t = u <==> memcpy
+// NDNBOOST_HAS_TRIVIAL_MOVE_ASSIGN(T) should evaluate to true if t = ndnboost::move(u) <==> memcpy
+// NDNBOOST_HAS_TRIVIAL_DESTRUCTOR(T) should evaluate to true if ~T() has no effect
+// NDNBOOST_HAS_NOTHROW_CONSTRUCTOR(T) should evaluate to true if "T x;" can not throw
+// NDNBOOST_HAS_NOTHROW_COPY(T) should evaluate to true if T(t) can not throw
+// NDNBOOST_HAS_NOTHROW_ASSIGN(T) should evaluate to true if t = u can not throw
+// NDNBOOST_HAS_VIRTUAL_DESTRUCTOR(T) should evaluate to true T has a virtual destructor
 //
 // The following can also be defined: when detected our implementation is greatly simplified.
 //
-// BOOST_IS_ABSTRACT(T) true if T is an abstract type
-// BOOST_IS_BASE_OF(T,U) true if T is a base class of U
-// BOOST_IS_CLASS(T) true if T is a class type (and not a union)
-// BOOST_IS_CONVERTIBLE(T,U) true if T is convertible to U
-// BOOST_IS_ENUM(T) true is T is an enum
-// BOOST_IS_POLYMORPHIC(T) true if T is a polymorphic type
-// BOOST_ALIGNMENT_OF(T) should evaluate to the alignment requirements of type T.
+// NDNBOOST_IS_ABSTRACT(T) true if T is an abstract type
+// NDNBOOST_IS_BASE_OF(T,U) true if T is a base class of U
+// NDNBOOST_IS_CLASS(T) true if T is a class type (and not a union)
+// NDNBOOST_IS_CONVERTIBLE(T,U) true if T is convertible to U
+// NDNBOOST_IS_ENUM(T) true is T is an enum
+// NDNBOOST_IS_POLYMORPHIC(T) true if T is a polymorphic type
+// NDNBOOST_ALIGNMENT_OF(T) should evaluate to the alignment requirements of type T.
 
-#ifdef BOOST_HAS_SGI_TYPE_TRAITS
+#ifdef NDNBOOST_HAS_SGI_TYPE_TRAITS
     // Hook into SGI's __type_traits class, this will pick up user supplied
     // specializations as well as SGI - compiler supplied specializations.
 #   include <ndnboost/type_traits/is_same.hpp>
@@ -55,14 +55,14 @@
 #   else
 #    include <type_traits.h>
 #   endif
-#   define BOOST_IS_POD(T) ::ndnboost::is_same< typename ::__type_traits<T>::is_POD_type, ::__true_type>::value
-#   define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) ::ndnboost::is_same< typename ::__type_traits<T>::has_trivial_default_constructor, ::__true_type>::value
-#   define BOOST_HAS_TRIVIAL_COPY(T) ::ndnboost::is_same< typename ::__type_traits<T>::has_trivial_copy_constructor, ::__true_type>::value
-#   define BOOST_HAS_TRIVIAL_ASSIGN(T) ::ndnboost::is_same< typename ::__type_traits<T>::has_trivial_assignment_operator, ::__true_type>::value
-#   define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) ::ndnboost::is_same< typename ::__type_traits<T>::has_trivial_destructor, ::__true_type>::value
+#   define NDNBOOST_IS_POD(T) ::ndnboost::is_same< typename ::__type_traits<T>::is_POD_type, ::__true_type>::value
+#   define NDNBOOST_HAS_TRIVIAL_CONSTRUCTOR(T) ::ndnboost::is_same< typename ::__type_traits<T>::has_trivial_default_constructor, ::__true_type>::value
+#   define NDNBOOST_HAS_TRIVIAL_COPY(T) ::ndnboost::is_same< typename ::__type_traits<T>::has_trivial_copy_constructor, ::__true_type>::value
+#   define NDNBOOST_HAS_TRIVIAL_ASSIGN(T) ::ndnboost::is_same< typename ::__type_traits<T>::has_trivial_assignment_operator, ::__true_type>::value
+#   define NDNBOOST_HAS_TRIVIAL_DESTRUCTOR(T) ::ndnboost::is_same< typename ::__type_traits<T>::has_trivial_destructor, ::__true_type>::value
 
 #   ifdef __sgi
-#      define BOOST_HAS_TYPE_TRAITS_INTRINSICS
+#      define NDNBOOST_HAS_TYPE_TRAITS_INTRINSICS
 #   endif
 #endif
 
@@ -72,171 +72,171 @@
     // user defined specializations as well as compiler intrinsics as 
     // and when they become available:
 #   include <msl_utility>
-#   define BOOST_IS_UNION(T) BOOST_STD_EXTENSION_NAMESPACE::is_union<T>::value
-#   define BOOST_IS_POD(T) BOOST_STD_EXTENSION_NAMESPACE::is_POD<T>::value
-#   define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) BOOST_STD_EXTENSION_NAMESPACE::has_trivial_default_ctor<T>::value
-#   define BOOST_HAS_TRIVIAL_COPY(T) BOOST_STD_EXTENSION_NAMESPACE::has_trivial_copy_ctor<T>::value
-#   define BOOST_HAS_TRIVIAL_ASSIGN(T) BOOST_STD_EXTENSION_NAMESPACE::has_trivial_assignment<T>::value
-#   define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) BOOST_STD_EXTENSION_NAMESPACE::has_trivial_dtor<T>::value
-#   define BOOST_HAS_TYPE_TRAITS_INTRINSICS
+#   define NDNBOOST_IS_UNION(T) NDNBOOST_STD_EXTENSION_NAMESPACE::is_union<T>::value
+#   define NDNBOOST_IS_POD(T) NDNBOOST_STD_EXTENSION_NAMESPACE::is_POD<T>::value
+#   define NDNBOOST_HAS_TRIVIAL_CONSTRUCTOR(T) NDNBOOST_STD_EXTENSION_NAMESPACE::has_trivial_default_ctor<T>::value
+#   define NDNBOOST_HAS_TRIVIAL_COPY(T) NDNBOOST_STD_EXTENSION_NAMESPACE::has_trivial_copy_ctor<T>::value
+#   define NDNBOOST_HAS_TRIVIAL_ASSIGN(T) NDNBOOST_STD_EXTENSION_NAMESPACE::has_trivial_assignment<T>::value
+#   define NDNBOOST_HAS_TRIVIAL_DESTRUCTOR(T) NDNBOOST_STD_EXTENSION_NAMESPACE::has_trivial_dtor<T>::value
+#   define NDNBOOST_HAS_TYPE_TRAITS_INTRINSICS
 #endif
 
-#if (defined(BOOST_MSVC) && defined(BOOST_MSVC_FULL_VER) && (BOOST_MSVC_FULL_VER >=140050215))\
-         || (defined(BOOST_INTEL) && defined(_MSC_VER) && (_MSC_VER >= 1500))
+#if (defined(NDNBOOST_MSVC) && defined(NDNBOOST_MSVC_FULL_VER) && (NDNBOOST_MSVC_FULL_VER >=140050215))\
+         || (defined(NDNBOOST_INTEL) && defined(_MSC_VER) && (_MSC_VER >= 1500))
 #   include <ndnboost/type_traits/is_same.hpp>
 #   include <ndnboost/type_traits/is_function.hpp>
 
-#   define BOOST_IS_UNION(T) __is_union(T)
-#   define BOOST_IS_POD(T) (__is_pod(T) && __has_trivial_constructor(T))
-#   define BOOST_IS_EMPTY(T) __is_empty(T)
-#   define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) __has_trivial_constructor(T)
-#   define BOOST_HAS_TRIVIAL_COPY(T) (__has_trivial_copy(T)|| ( ::ndnboost::is_pod<T>::value && !::ndnboost::is_volatile<T>::value))
-#   define BOOST_HAS_TRIVIAL_ASSIGN(T) (__has_trivial_assign(T) || ( ::ndnboost::is_pod<T>::value && ! ::ndnboost::is_const<T>::value && !::ndnboost::is_volatile<T>::value))
-#   define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) (__has_trivial_destructor(T) || ::ndnboost::is_pod<T>::value)
-#   define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) (__has_nothrow_constructor(T) || ::ndnboost::has_trivial_constructor<T>::value)
-#   define BOOST_HAS_NOTHROW_COPY(T) (__has_nothrow_copy(T) || ::ndnboost::has_trivial_copy<T>::value)
-#   define BOOST_HAS_NOTHROW_ASSIGN(T) (__has_nothrow_assign(T) || ::ndnboost::has_trivial_assign<T>::value)
-#   define BOOST_HAS_VIRTUAL_DESTRUCTOR(T) __has_virtual_destructor(T)
+#   define NDNBOOST_IS_UNION(T) __is_union(T)
+#   define NDNBOOST_IS_POD(T) (__is_pod(T) && __has_trivial_constructor(T))
+#   define NDNBOOST_IS_EMPTY(T) __is_empty(T)
+#   define NDNBOOST_HAS_TRIVIAL_CONSTRUCTOR(T) __has_trivial_constructor(T)
+#   define NDNBOOST_HAS_TRIVIAL_COPY(T) (__has_trivial_copy(T)|| ( ::ndnboost::is_pod<T>::value && !::ndnboost::is_volatile<T>::value))
+#   define NDNBOOST_HAS_TRIVIAL_ASSIGN(T) (__has_trivial_assign(T) || ( ::ndnboost::is_pod<T>::value && ! ::ndnboost::is_const<T>::value && !::ndnboost::is_volatile<T>::value))
+#   define NDNBOOST_HAS_TRIVIAL_DESTRUCTOR(T) (__has_trivial_destructor(T) || ::ndnboost::is_pod<T>::value)
+#   define NDNBOOST_HAS_NOTHROW_CONSTRUCTOR(T) (__has_nothrow_constructor(T) || ::ndnboost::has_trivial_constructor<T>::value)
+#   define NDNBOOST_HAS_NOTHROW_COPY(T) (__has_nothrow_copy(T) || ::ndnboost::has_trivial_copy<T>::value)
+#   define NDNBOOST_HAS_NOTHROW_ASSIGN(T) (__has_nothrow_assign(T) || ::ndnboost::has_trivial_assign<T>::value)
+#   define NDNBOOST_HAS_VIRTUAL_DESTRUCTOR(T) __has_virtual_destructor(T)
 
-#   define BOOST_IS_ABSTRACT(T) __is_abstract(T)
-#   define BOOST_IS_BASE_OF(T,U) (__is_base_of(T,U) && !is_same<T,U>::value)
-#   define BOOST_IS_CLASS(T) __is_class(T)
-#   define BOOST_IS_CONVERTIBLE(T,U) ((__is_convertible_to(T,U) || (is_same<T,U>::value && !is_function<U>::value)) && !__is_abstract(U))
-#   define BOOST_IS_ENUM(T) __is_enum(T)
+#   define NDNBOOST_IS_ABSTRACT(T) __is_abstract(T)
+#   define NDNBOOST_IS_BASE_OF(T,U) (__is_base_of(T,U) && !is_same<T,U>::value)
+#   define NDNBOOST_IS_CLASS(T) __is_class(T)
+#   define NDNBOOST_IS_CONVERTIBLE(T,U) ((__is_convertible_to(T,U) || (is_same<T,U>::value && !is_function<U>::value)) && !__is_abstract(U))
+#   define NDNBOOST_IS_ENUM(T) __is_enum(T)
 //  This one doesn't quite always do the right thing:
-//  #   define BOOST_IS_POLYMORPHIC(T) __is_polymorphic(T)
+//  #   define NDNBOOST_IS_POLYMORPHIC(T) __is_polymorphic(T)
 //  This one fails if the default alignment has been changed with /Zp:
-//  #   define BOOST_ALIGNMENT_OF(T) __alignof(T)
+//  #   define NDNBOOST_ALIGNMENT_OF(T) __alignof(T)
 
 #   if defined(_MSC_VER) && (_MSC_VER >= 1700)
-#       define BOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR(T) ((__has_trivial_move_constructor(T) || ::ndnboost::is_pod<T>::value) && !::ndnboost::is_volatile<T>::value)
-#       define BOOST_HAS_TRIVIAL_MOVE_ASSIGN(T) ((__has_trivial_move_assign(T) || ::ndnboost::is_pod<T>::value) && ! ::ndnboost::is_const<T>::value && !::ndnboost::is_volatile<T>::value)
+#       define NDNBOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR(T) ((__has_trivial_move_constructor(T) || ::ndnboost::is_pod<T>::value) && !::ndnboost::is_volatile<T>::value)
+#       define NDNBOOST_HAS_TRIVIAL_MOVE_ASSIGN(T) ((__has_trivial_move_assign(T) || ::ndnboost::is_pod<T>::value) && ! ::ndnboost::is_const<T>::value && !::ndnboost::is_volatile<T>::value)
 #   endif
 
-#   define BOOST_HAS_TYPE_TRAITS_INTRINSICS
+#   define NDNBOOST_HAS_TYPE_TRAITS_INTRINSICS
 #endif
 
 #if defined(__DMC__) && (__DMC__ >= 0x848)
 // For Digital Mars C++, www.digitalmars.com
-#   define BOOST_IS_UNION(T) (__typeinfo(T) & 0x400)
-#   define BOOST_IS_POD(T) (__typeinfo(T) & 0x800)
-#   define BOOST_IS_EMPTY(T) (__typeinfo(T) & 0x1000)
-#   define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) (__typeinfo(T) & 0x10)
-#   define BOOST_HAS_TRIVIAL_COPY(T) (__typeinfo(T) & 0x20)
-#   define BOOST_HAS_TRIVIAL_ASSIGN(T) (__typeinfo(T) & 0x40)
-#   define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) (__typeinfo(T) & 0x8)
-#   define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) (__typeinfo(T) & 0x80)
-#   define BOOST_HAS_NOTHROW_COPY(T) (__typeinfo(T) & 0x100)
-#   define BOOST_HAS_NOTHROW_ASSIGN(T) (__typeinfo(T) & 0x200)
-#   define BOOST_HAS_VIRTUAL_DESTRUCTOR(T) (__typeinfo(T) & 0x4)
-#   define BOOST_HAS_TYPE_TRAITS_INTRINSICS
+#   define NDNBOOST_IS_UNION(T) (__typeinfo(T) & 0x400)
+#   define NDNBOOST_IS_POD(T) (__typeinfo(T) & 0x800)
+#   define NDNBOOST_IS_EMPTY(T) (__typeinfo(T) & 0x1000)
+#   define NDNBOOST_HAS_TRIVIAL_CONSTRUCTOR(T) (__typeinfo(T) & 0x10)
+#   define NDNBOOST_HAS_TRIVIAL_COPY(T) (__typeinfo(T) & 0x20)
+#   define NDNBOOST_HAS_TRIVIAL_ASSIGN(T) (__typeinfo(T) & 0x40)
+#   define NDNBOOST_HAS_TRIVIAL_DESTRUCTOR(T) (__typeinfo(T) & 0x8)
+#   define NDNBOOST_HAS_NOTHROW_CONSTRUCTOR(T) (__typeinfo(T) & 0x80)
+#   define NDNBOOST_HAS_NOTHROW_COPY(T) (__typeinfo(T) & 0x100)
+#   define NDNBOOST_HAS_NOTHROW_ASSIGN(T) (__typeinfo(T) & 0x200)
+#   define NDNBOOST_HAS_VIRTUAL_DESTRUCTOR(T) (__typeinfo(T) & 0x4)
+#   define NDNBOOST_HAS_TYPE_TRAITS_INTRINSICS
 #endif
 
-#if defined(BOOST_CLANG) && defined(__has_feature)
+#if defined(NDNBOOST_CLANG) && defined(__has_feature)
 #   include <cstddef>
 #   include <ndnboost/type_traits/is_same.hpp>
 #   include <ndnboost/type_traits/is_reference.hpp>
 #   include <ndnboost/type_traits/is_volatile.hpp>
 
 #   if __has_feature(is_union)
-#     define BOOST_IS_UNION(T) __is_union(T)
+#     define NDNBOOST_IS_UNION(T) __is_union(T)
 #   endif
 #   if (!defined(__GLIBCXX__) || (__GLIBCXX__ >= 20080306 && __GLIBCXX__ != 20080519)) && __has_feature(is_pod)
-#     define BOOST_IS_POD(T) __is_pod(T)
+#     define NDNBOOST_IS_POD(T) __is_pod(T)
 #   endif
 #   if (!defined(__GLIBCXX__) || (__GLIBCXX__ >= 20080306 && __GLIBCXX__ != 20080519)) && __has_feature(is_empty)
-#     define BOOST_IS_EMPTY(T) __is_empty(T)
+#     define NDNBOOST_IS_EMPTY(T) __is_empty(T)
 #   endif
 #   if __has_feature(has_trivial_constructor)
-#     define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) __has_trivial_constructor(T)
+#     define NDNBOOST_HAS_TRIVIAL_CONSTRUCTOR(T) __has_trivial_constructor(T)
 #   endif
 #   if __has_feature(has_trivial_copy)
-#     define BOOST_HAS_TRIVIAL_COPY(T) (__has_trivial_copy(T) && !is_reference<T>::value && !is_volatile<T>::value)
+#     define NDNBOOST_HAS_TRIVIAL_COPY(T) (__has_trivial_copy(T) && !is_reference<T>::value && !is_volatile<T>::value)
 #   endif
 #   if __has_feature(has_trivial_assign)
-#     define BOOST_HAS_TRIVIAL_ASSIGN(T) (__has_trivial_assign(T) && !is_volatile<T>::value)
+#     define NDNBOOST_HAS_TRIVIAL_ASSIGN(T) (__has_trivial_assign(T) && !is_volatile<T>::value)
 #   endif
 #   if __has_feature(has_trivial_destructor)
-#     define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) __has_trivial_destructor(T)
+#     define NDNBOOST_HAS_TRIVIAL_DESTRUCTOR(T) __has_trivial_destructor(T)
 #   endif
 #   if __has_feature(has_nothrow_constructor)
-#     define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) __has_nothrow_constructor(T)
+#     define NDNBOOST_HAS_NOTHROW_CONSTRUCTOR(T) __has_nothrow_constructor(T)
 #   endif
 #   if __has_feature(has_nothrow_copy)
-#     define BOOST_HAS_NOTHROW_COPY(T) (__has_nothrow_copy(T) && !is_volatile<T>::value && !is_reference<T>::value)
+#     define NDNBOOST_HAS_NOTHROW_COPY(T) (__has_nothrow_copy(T) && !is_volatile<T>::value && !is_reference<T>::value)
 #   endif
 #   if __has_feature(has_nothrow_assign)
-#     define BOOST_HAS_NOTHROW_ASSIGN(T) (__has_nothrow_assign(T) && !is_volatile<T>::value)
+#     define NDNBOOST_HAS_NOTHROW_ASSIGN(T) (__has_nothrow_assign(T) && !is_volatile<T>::value)
 #   endif
 #   if __has_feature(has_virtual_destructor)
-#     define BOOST_HAS_VIRTUAL_DESTRUCTOR(T) __has_virtual_destructor(T)
+#     define NDNBOOST_HAS_VIRTUAL_DESTRUCTOR(T) __has_virtual_destructor(T)
 #   endif
 #   if __has_feature(is_abstract)
-#     define BOOST_IS_ABSTRACT(T) __is_abstract(T)
+#     define NDNBOOST_IS_ABSTRACT(T) __is_abstract(T)
 #   endif
 #   if __has_feature(is_base_of)
-#     define BOOST_IS_BASE_OF(T,U) (__is_base_of(T,U) && !is_same<T,U>::value)
+#     define NDNBOOST_IS_BASE_OF(T,U) (__is_base_of(T,U) && !is_same<T,U>::value)
 #   endif
 #   if __has_feature(is_class)
-#     define BOOST_IS_CLASS(T) __is_class(T)
+#     define NDNBOOST_IS_CLASS(T) __is_class(T)
 #   endif
 #   if __has_feature(is_convertible_to)
 #     include <ndnboost/type_traits/is_abstract.hpp>
-#     define BOOST_IS_CONVERTIBLE(T,U) (__is_convertible_to(T,U) && !::ndnboost::is_abstract<U>::value)
+#     define NDNBOOST_IS_CONVERTIBLE(T,U) (__is_convertible_to(T,U) && !::ndnboost::is_abstract<U>::value)
 #   endif
 #   if __has_feature(is_enum)
-#     define BOOST_IS_ENUM(T) __is_enum(T)
+#     define NDNBOOST_IS_ENUM(T) __is_enum(T)
 #   endif
 #   if __has_feature(is_polymorphic)
-#     define BOOST_IS_POLYMORPHIC(T) __is_polymorphic(T)
+#     define NDNBOOST_IS_POLYMORPHIC(T) __is_polymorphic(T)
 #   endif
 #   if __has_feature(has_trivial_move_constructor)
-#     define BOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR(T) __has_trivial_move_constructor(T)
+#     define NDNBOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR(T) __has_trivial_move_constructor(T)
 #   endif
 #   if __has_feature(has_trivial_move_assign)
-#     define BOOST_HAS_TRIVIAL_MOVE_ASSIGN(T) __has_trivial_move_assign(T)
+#     define NDNBOOST_HAS_TRIVIAL_MOVE_ASSIGN(T) __has_trivial_move_assign(T)
 #   endif
-#   define BOOST_ALIGNMENT_OF(T) __alignof(T)
+#   define NDNBOOST_ALIGNMENT_OF(T) __alignof(T)
 
-#   define BOOST_HAS_TYPE_TRAITS_INTRINSICS
+#   define NDNBOOST_HAS_TYPE_TRAITS_INTRINSICS
 #endif
 
-#if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3) && !defined(__GCCXML__))) && !defined(BOOST_CLANG)
+#if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3) && !defined(__GCCXML__))) && !defined(NDNBOOST_CLANG)
 #   include <ndnboost/type_traits/is_same.hpp>
 #   include <ndnboost/type_traits/is_reference.hpp>
 #   include <ndnboost/type_traits/is_volatile.hpp>
 
-#ifdef BOOST_INTEL
-#  define BOOST_INTEL_TT_OPTS || is_pod<T>::value
+#ifdef NDNBOOST_INTEL
+#  define NDNBOOST_INTEL_TT_OPTS || is_pod<T>::value
 #else
-#  define BOOST_INTEL_TT_OPTS
+#  define NDNBOOST_INTEL_TT_OPTS
 #endif
 
-#   define BOOST_IS_UNION(T) __is_union(T)
-#   define BOOST_IS_POD(T) __is_pod(T)
-#   define BOOST_IS_EMPTY(T) __is_empty(T)
-#   define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) ((__has_trivial_constructor(T) BOOST_INTEL_TT_OPTS) && ! ::ndnboost::is_volatile<T>::value)
-#   define BOOST_HAS_TRIVIAL_COPY(T) ((__has_trivial_copy(T) BOOST_INTEL_TT_OPTS) && !is_reference<T>::value && ! ::ndnboost::is_volatile<T>::value)
-#   define BOOST_HAS_TRIVIAL_ASSIGN(T) ((__has_trivial_assign(T) BOOST_INTEL_TT_OPTS) && ! ::ndnboost::is_volatile<T>::value && ! ::ndnboost::is_const<T>::value)
-#   define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) (__has_trivial_destructor(T) BOOST_INTEL_TT_OPTS)
-#   define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) (__has_nothrow_constructor(T) BOOST_INTEL_TT_OPTS)
-#   define BOOST_HAS_NOTHROW_COPY(T) ((__has_nothrow_copy(T) BOOST_INTEL_TT_OPTS) && !is_volatile<T>::value && !is_reference<T>::value)
-#   define BOOST_HAS_NOTHROW_ASSIGN(T) ((__has_nothrow_assign(T) BOOST_INTEL_TT_OPTS) && !is_volatile<T>::value && !is_const<T>::value)
-#   define BOOST_HAS_VIRTUAL_DESTRUCTOR(T) __has_virtual_destructor(T)
+#   define NDNBOOST_IS_UNION(T) __is_union(T)
+#   define NDNBOOST_IS_POD(T) __is_pod(T)
+#   define NDNBOOST_IS_EMPTY(T) __is_empty(T)
+#   define NDNBOOST_HAS_TRIVIAL_CONSTRUCTOR(T) ((__has_trivial_constructor(T) NDNBOOST_INTEL_TT_OPTS) && ! ::ndnboost::is_volatile<T>::value)
+#   define NDNBOOST_HAS_TRIVIAL_COPY(T) ((__has_trivial_copy(T) NDNBOOST_INTEL_TT_OPTS) && !is_reference<T>::value && ! ::ndnboost::is_volatile<T>::value)
+#   define NDNBOOST_HAS_TRIVIAL_ASSIGN(T) ((__has_trivial_assign(T) NDNBOOST_INTEL_TT_OPTS) && ! ::ndnboost::is_volatile<T>::value && ! ::ndnboost::is_const<T>::value)
+#   define NDNBOOST_HAS_TRIVIAL_DESTRUCTOR(T) (__has_trivial_destructor(T) NDNBOOST_INTEL_TT_OPTS)
+#   define NDNBOOST_HAS_NOTHROW_CONSTRUCTOR(T) (__has_nothrow_constructor(T) NDNBOOST_INTEL_TT_OPTS)
+#   define NDNBOOST_HAS_NOTHROW_COPY(T) ((__has_nothrow_copy(T) NDNBOOST_INTEL_TT_OPTS) && !is_volatile<T>::value && !is_reference<T>::value)
+#   define NDNBOOST_HAS_NOTHROW_ASSIGN(T) ((__has_nothrow_assign(T) NDNBOOST_INTEL_TT_OPTS) && !is_volatile<T>::value && !is_const<T>::value)
+#   define NDNBOOST_HAS_VIRTUAL_DESTRUCTOR(T) __has_virtual_destructor(T)
 
-#   define BOOST_IS_ABSTRACT(T) __is_abstract(T)
-#   define BOOST_IS_BASE_OF(T,U) (__is_base_of(T,U) && !is_same<T,U>::value)
-#   define BOOST_IS_CLASS(T) __is_class(T)
-#   define BOOST_IS_ENUM(T) __is_enum(T)
-#   define BOOST_IS_POLYMORPHIC(T) __is_polymorphic(T)
+#   define NDNBOOST_IS_ABSTRACT(T) __is_abstract(T)
+#   define NDNBOOST_IS_BASE_OF(T,U) (__is_base_of(T,U) && !is_same<T,U>::value)
+#   define NDNBOOST_IS_CLASS(T) __is_class(T)
+#   define NDNBOOST_IS_ENUM(T) __is_enum(T)
+#   define NDNBOOST_IS_POLYMORPHIC(T) __is_polymorphic(T)
 #   if (!defined(unix) && !defined(__unix__)) || defined(__LP64__)
       // GCC sometimes lies about alignment requirements
       // of type double on 32-bit unix platforms, use the
       // old implementation instead in that case:
-#     define BOOST_ALIGNMENT_OF(T) __alignof__(T)
+#     define NDNBOOST_ALIGNMENT_OF(T) __alignof__(T)
 #   endif
 
-#   define BOOST_HAS_TYPE_TRAITS_INTRINSICS
+#   define NDNBOOST_HAS_TYPE_TRAITS_INTRINSICS
 #endif
 
 #if defined(__ghs__) && (__GHS_VERSION_NUMBER >= 600)
@@ -244,26 +244,26 @@
 #   include <ndnboost/type_traits/is_reference.hpp>
 #   include <ndnboost/type_traits/is_volatile.hpp>
 
-#   define BOOST_IS_UNION(T) __is_union(T)
-#   define BOOST_IS_POD(T) __is_pod(T)
-#   define BOOST_IS_EMPTY(T) __is_empty(T)
-#   define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) __has_trivial_constructor(T)
-#   define BOOST_HAS_TRIVIAL_COPY(T) (__has_trivial_copy(T) && !is_reference<T>::value && !is_volatile<T>::value)
-#   define BOOST_HAS_TRIVIAL_ASSIGN(T) (__has_trivial_assign(T) && !is_volatile<T>::value)
-#   define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) __has_trivial_destructor(T)
-#   define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) __has_nothrow_constructor(T)
-#   define BOOST_HAS_NOTHROW_COPY(T) (__has_nothrow_copy(T) && !is_volatile<T>::value && !is_reference<T>::value)
-#   define BOOST_HAS_NOTHROW_ASSIGN(T) (__has_nothrow_assign(T) && !is_volatile<T>::value)
-#   define BOOST_HAS_VIRTUAL_DESTRUCTOR(T) __has_virtual_destructor(T)
+#   define NDNBOOST_IS_UNION(T) __is_union(T)
+#   define NDNBOOST_IS_POD(T) __is_pod(T)
+#   define NDNBOOST_IS_EMPTY(T) __is_empty(T)
+#   define NDNBOOST_HAS_TRIVIAL_CONSTRUCTOR(T) __has_trivial_constructor(T)
+#   define NDNBOOST_HAS_TRIVIAL_COPY(T) (__has_trivial_copy(T) && !is_reference<T>::value && !is_volatile<T>::value)
+#   define NDNBOOST_HAS_TRIVIAL_ASSIGN(T) (__has_trivial_assign(T) && !is_volatile<T>::value)
+#   define NDNBOOST_HAS_TRIVIAL_DESTRUCTOR(T) __has_trivial_destructor(T)
+#   define NDNBOOST_HAS_NOTHROW_CONSTRUCTOR(T) __has_nothrow_constructor(T)
+#   define NDNBOOST_HAS_NOTHROW_COPY(T) (__has_nothrow_copy(T) && !is_volatile<T>::value && !is_reference<T>::value)
+#   define NDNBOOST_HAS_NOTHROW_ASSIGN(T) (__has_nothrow_assign(T) && !is_volatile<T>::value)
+#   define NDNBOOST_HAS_VIRTUAL_DESTRUCTOR(T) __has_virtual_destructor(T)
 
-#   define BOOST_IS_ABSTRACT(T) __is_abstract(T)
-#   define BOOST_IS_BASE_OF(T,U) (__is_base_of(T,U) && !is_same<T,U>::value)
-#   define BOOST_IS_CLASS(T) __is_class(T)
-#   define BOOST_IS_ENUM(T) __is_enum(T)
-#   define BOOST_IS_POLYMORPHIC(T) __is_polymorphic(T)
-#   define BOOST_ALIGNMENT_OF(T) __alignof__(T)
+#   define NDNBOOST_IS_ABSTRACT(T) __is_abstract(T)
+#   define NDNBOOST_IS_BASE_OF(T,U) (__is_base_of(T,U) && !is_same<T,U>::value)
+#   define NDNBOOST_IS_CLASS(T) __is_class(T)
+#   define NDNBOOST_IS_ENUM(T) __is_enum(T)
+#   define NDNBOOST_IS_POLYMORPHIC(T) __is_polymorphic(T)
+#   define NDNBOOST_ALIGNMENT_OF(T) __alignof__(T)
 
-#   define BOOST_HAS_TYPE_TRAITS_INTRINSICS
+#   define NDNBOOST_HAS_TYPE_TRAITS_INTRINSICS
 #endif
 
 # if defined(__CODEGEARC__)
@@ -272,30 +272,30 @@
 #   include <ndnboost/type_traits/is_volatile.hpp>
 #   include <ndnboost/type_traits/is_void.hpp>
 
-#   define BOOST_IS_UNION(T) __is_union(T)
-#   define BOOST_IS_POD(T) __is_pod(T)
-#   define BOOST_IS_EMPTY(T) __is_empty(T)
-#   define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) (__has_trivial_default_constructor(T))
-#   define BOOST_HAS_TRIVIAL_COPY(T) (__has_trivial_copy_constructor(T) && !is_volatile<T>::value && !is_reference<T>::value)
-#   define BOOST_HAS_TRIVIAL_ASSIGN(T) (__has_trivial_assign(T) && !is_volatile<T>::value)
-#   define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) (__has_trivial_destructor(T))
-#   define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) (__has_nothrow_default_constructor(T))
-#   define BOOST_HAS_NOTHROW_COPY(T) (__has_nothrow_copy_constructor(T) && !is_volatile<T>::value && !is_reference<T>::value)
-#   define BOOST_HAS_NOTHROW_ASSIGN(T) (__has_nothrow_assign(T) && !is_volatile<T>::value)
-#   define BOOST_HAS_VIRTUAL_DESTRUCTOR(T) __has_virtual_destructor(T)
+#   define NDNBOOST_IS_UNION(T) __is_union(T)
+#   define NDNBOOST_IS_POD(T) __is_pod(T)
+#   define NDNBOOST_IS_EMPTY(T) __is_empty(T)
+#   define NDNBOOST_HAS_TRIVIAL_CONSTRUCTOR(T) (__has_trivial_default_constructor(T))
+#   define NDNBOOST_HAS_TRIVIAL_COPY(T) (__has_trivial_copy_constructor(T) && !is_volatile<T>::value && !is_reference<T>::value)
+#   define NDNBOOST_HAS_TRIVIAL_ASSIGN(T) (__has_trivial_assign(T) && !is_volatile<T>::value)
+#   define NDNBOOST_HAS_TRIVIAL_DESTRUCTOR(T) (__has_trivial_destructor(T))
+#   define NDNBOOST_HAS_NOTHROW_CONSTRUCTOR(T) (__has_nothrow_default_constructor(T))
+#   define NDNBOOST_HAS_NOTHROW_COPY(T) (__has_nothrow_copy_constructor(T) && !is_volatile<T>::value && !is_reference<T>::value)
+#   define NDNBOOST_HAS_NOTHROW_ASSIGN(T) (__has_nothrow_assign(T) && !is_volatile<T>::value)
+#   define NDNBOOST_HAS_VIRTUAL_DESTRUCTOR(T) __has_virtual_destructor(T)
 
-#   define BOOST_IS_ABSTRACT(T) __is_abstract(T)
-#   define BOOST_IS_BASE_OF(T,U) (__is_base_of(T,U) && !is_void<T>::value && !is_void<U>::value)
-#   define BOOST_IS_CLASS(T) __is_class(T)
-#   define BOOST_IS_CONVERTIBLE(T,U) (__is_convertible(T,U) || is_void<U>::value)
-#   define BOOST_IS_ENUM(T) __is_enum(T)
-#   define BOOST_IS_POLYMORPHIC(T) __is_polymorphic(T)
-#   define BOOST_ALIGNMENT_OF(T) alignof(T)
+#   define NDNBOOST_IS_ABSTRACT(T) __is_abstract(T)
+#   define NDNBOOST_IS_BASE_OF(T,U) (__is_base_of(T,U) && !is_void<T>::value && !is_void<U>::value)
+#   define NDNBOOST_IS_CLASS(T) __is_class(T)
+#   define NDNBOOST_IS_CONVERTIBLE(T,U) (__is_convertible(T,U) || is_void<U>::value)
+#   define NDNBOOST_IS_ENUM(T) __is_enum(T)
+#   define NDNBOOST_IS_POLYMORPHIC(T) __is_polymorphic(T)
+#   define NDNBOOST_ALIGNMENT_OF(T) alignof(T)
 
-#   define BOOST_HAS_TYPE_TRAITS_INTRINSICS
+#   define NDNBOOST_HAS_TYPE_TRAITS_INTRINSICS
 #endif
 
-#endif // BOOST_TT_INTRINSICS_HPP_INCLUDED
+#endif // NDNBOOST_TT_INTRINSICS_HPP_INCLUDED
 
 
 
diff --git a/include/ndnboost/type_traits/is_abstract.hpp b/include/ndnboost/type_traits/is_abstract.hpp
index 8a13010..a63029c 100644
--- a/include/ndnboost/type_traits/is_abstract.hpp
+++ b/include/ndnboost/type_traits/is_abstract.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_TT_IS_ABSTRACT_CLASS_HPP
-#define BOOST_TT_IS_ABSTRACT_CLASS_HPP
+#ifndef NDNBOOST_TT_IS_ABSTRACT_CLASS_HPP
+#define NDNBOOST_TT_IS_ABSTRACT_CLASS_HPP
 
 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
 # pragma once
@@ -44,17 +44,17 @@
 //  - Nov 2004: Christoph Ludwig found that the implementation did not work with
 //              template types and gcc-3.4 or VC7.1, fix due to Christoph Ludwig
 //              and John Maddock.
-//  - Dec 2004: Added new config macro BOOST_NO_IS_ABSTRACT which causes the template
+//  - Dec 2004: Added new config macro NDNBOOST_NO_IS_ABSTRACT which causes the template
 //              to degrade gracefully, rather than trash the compiler (John Maddock).
 //
 
 #include <ndnboost/type_traits/intrinsics.hpp>
-#ifndef BOOST_IS_ABSTRACT
+#ifndef NDNBOOST_IS_ABSTRACT
 #include <ndnboost/static_assert.hpp>
 #include <ndnboost/type_traits/detail/yes_no_type.hpp>
 #include <ndnboost/type_traits/is_class.hpp>
 #include <ndnboost/type_traits/detail/ice_and.hpp>
-#ifdef BOOST_NO_IS_ABSTRACT
+#ifdef NDNBOOST_NO_IS_ABSTRACT
 #include <ndnboost/type_traits/is_polymorphic.hpp>
 #endif
 #endif
@@ -65,13 +65,13 @@
 namespace ndnboost {
 namespace detail{
 
-#ifdef BOOST_IS_ABSTRACT
+#ifdef NDNBOOST_IS_ABSTRACT
 template <class T>
 struct is_abstract_imp
 {
-   BOOST_STATIC_CONSTANT(bool, value = BOOST_IS_ABSTRACT(T));
+   NDNBOOST_STATIC_CONSTANT(bool, value = NDNBOOST_IS_ABSTRACT(T));
 };
-#elif !defined(BOOST_NO_IS_ABSTRACT)
+#elif !defined(NDNBOOST_NO_IS_ABSTRACT)
 template<class T>
 struct is_abstract_imp2
 {
@@ -87,24 +87,24 @@
    // T must be a complete type, further if T is a template then
    // it must be instantiated in order for us to get the right answer:
    //
-   BOOST_STATIC_ASSERT(sizeof(T) != 0);
+   NDNBOOST_STATIC_ASSERT(sizeof(T) != 0);
 
    // GCC2 won't even parse this template if we embed the computation
    // of s1 in the computation of value.
 #ifdef __GNUC__
-   BOOST_STATIC_CONSTANT(std::size_t, s1 = sizeof(is_abstract_imp2<T>::template check_sig<T>(0)));
+   NDNBOOST_STATIC_CONSTANT(std::size_t, s1 = sizeof(is_abstract_imp2<T>::template check_sig<T>(0)));
 #else
-#if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC_FULL_VER, >= 140050000)
 #pragma warning(push)
 #pragma warning(disable:6334)
 #endif
-   BOOST_STATIC_CONSTANT(std::size_t, s1 = sizeof(check_sig<T>(0)));
-#if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000)
+   NDNBOOST_STATIC_CONSTANT(std::size_t, s1 = sizeof(check_sig<T>(0)));
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC_FULL_VER, >= 140050000)
 #pragma warning(pop)
 #endif
 #endif
     
-   BOOST_STATIC_CONSTANT(bool, value = 
+   NDNBOOST_STATIC_CONSTANT(bool, value = 
       (s1 == sizeof(type_traits::yes_type)));
 };
 
@@ -134,20 +134,20 @@
    typedef typename selector::template rebind<T> binder;
    typedef typename binder::type type;
 
-   BOOST_STATIC_CONSTANT(bool, value = type::value);
+   NDNBOOST_STATIC_CONSTANT(bool, value = type::value);
 };
 
 #endif
 }
 
-#ifndef BOOST_NO_IS_ABSTRACT
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_abstract,T,::ndnboost::detail::is_abstract_imp<T>::value)
+#ifndef NDNBOOST_NO_IS_ABSTRACT
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_abstract,T,::ndnboost::detail::is_abstract_imp<T>::value)
 #else
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_abstract,T,::ndnboost::detail::is_polymorphic_imp<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_abstract,T,::ndnboost::detail::is_polymorphic_imp<T>::value)
 #endif
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif //BOOST_TT_IS_ABSTRACT_CLASS_HPP
+#endif //NDNBOOST_TT_IS_ABSTRACT_CLASS_HPP
diff --git a/include/ndnboost/type_traits/is_arithmetic.hpp b/include/ndnboost/type_traits/is_arithmetic.hpp
index 9878ca9..71f7014 100644
--- a/include/ndnboost/type_traits/is_arithmetic.hpp
+++ b/include/ndnboost/type_traits/is_arithmetic.hpp
@@ -6,8 +6,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_IS_ARITHMETIC_HPP_INCLUDED
-#define BOOST_TT_IS_ARITHMETIC_HPP_INCLUDED
+#ifndef NDNBOOST_TT_IS_ARITHMETIC_HPP_INCLUDED
+#define NDNBOOST_TT_IS_ARITHMETIC_HPP_INCLUDED
 
 #if !defined( __CODEGEARC__ )
 #include <ndnboost/type_traits/is_integral.hpp>
@@ -27,7 +27,7 @@
 template< typename T >
 struct is_arithmetic_impl
 { 
-    BOOST_STATIC_CONSTANT(bool, value = 
+    NDNBOOST_STATIC_CONSTANT(bool, value = 
         (::ndnboost::type_traits::ice_or< 
             ::ndnboost::is_integral<T>::value,
             ::ndnboost::is_float<T>::value
@@ -39,13 +39,13 @@
 
 //* is a type T an arithmetic type described in the standard (3.9.1p8)
 #if defined(__CODEGEARC__)
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_arithmetic,T,__is_arithmetic(T))
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_arithmetic,T,__is_arithmetic(T))
 #else
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_arithmetic,T,::ndnboost::detail::is_arithmetic_impl<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_arithmetic,T,::ndnboost::detail::is_arithmetic_impl<T>::value)
 #endif
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TT_IS_ARITHMETIC_HPP_INCLUDED
+#endif // NDNBOOST_TT_IS_ARITHMETIC_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/is_array.hpp b/include/ndnboost/type_traits/is_array.hpp
index 51d3571..78ff652 100644
--- a/include/ndnboost/type_traits/is_array.hpp
+++ b/include/ndnboost/type_traits/is_array.hpp
@@ -11,12 +11,12 @@
 // Some fixes for is_array are based on a newsgroup posting by Jonathan Lundquist.
 
 
-#ifndef BOOST_TT_IS_ARRAY_HPP_INCLUDED
-#define BOOST_TT_IS_ARRAY_HPP_INCLUDED
+#ifndef NDNBOOST_TT_IS_ARRAY_HPP_INCLUDED
+#define NDNBOOST_TT_IS_ARRAY_HPP_INCLUDED
 
 #include <ndnboost/type_traits/config.hpp>
 
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#ifdef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 #   include <ndnboost/type_traits/detail/yes_no_type.hpp>
 #   include <ndnboost/type_traits/detail/wrap.hpp>
 #endif
@@ -29,23 +29,23 @@
 namespace ndnboost {
 
 #if defined( __CODEGEARC__ )
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_array,T,__is_array(T))
-#elif !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_array,T,false)
-#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,is_array,T[N],true)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,is_array,T const[N],true)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,is_array,T volatile[N],true)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,is_array,T const volatile[N],true)
-#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(__IBMCPP__) &&  !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_array,T[],true)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_array,T const[],true)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_array,T volatile[],true)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_array,T const volatile[],true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_array,T,__is_array(T))
+#elif !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_array,T,false)
+#if !defined(NDNBOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,is_array,T[N],true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,is_array,T const[N],true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,is_array,T volatile[N],true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,is_array,T const volatile[N],true)
+#if !NDNBOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(__IBMCPP__) &&  !NDNBOOST_WORKAROUND(__DMC__, NDNBOOST_TESTED_AT(0x840))
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_array,T[],true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_array,T const[],true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_array,T volatile[],true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_array,T const volatile[],true)
 #endif
 #endif
 
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#else // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 namespace detail {
 
@@ -54,15 +54,15 @@
 using ::ndnboost::type_traits::wrap;
 
 template< typename T > T(* is_array_tester1(wrap<T>) )(wrap<T>);
-char BOOST_TT_DECL is_array_tester1(...);
+char NDNBOOST_TT_DECL is_array_tester1(...);
 
 template< typename T> no_type is_array_tester2(T(*)(wrap<T>));
-yes_type BOOST_TT_DECL is_array_tester2(...);
+yes_type NDNBOOST_TT_DECL is_array_tester2(...);
 
 template< typename T >
 struct is_array_impl
 { 
-    BOOST_STATIC_CONSTANT(bool, value = 
+    NDNBOOST_STATIC_CONSTANT(bool, value = 
         sizeof(::ndnboost::detail::is_array_tester2(
             ::ndnboost::detail::is_array_tester1(
                 ::ndnboost::type_traits::wrap<T>()
@@ -71,21 +71,21 @@
     );
 };
 
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_array,void,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_array,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_array,void volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_array,void const volatile,false)
+#ifndef NDNBOOST_NO_CV_VOID_SPECIALIZATIONS
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_array,void,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_array,void const,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_array,void volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_array,void const volatile,false)
 #endif
 
 } // namespace detail
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_array,T,::ndnboost::detail::is_array_impl<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_array,T,::ndnboost::detail::is_array_impl<T>::value)
 
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TT_IS_ARRAY_HPP_INCLUDED
+#endif // NDNBOOST_TT_IS_ARRAY_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/is_base_and_derived.hpp b/include/ndnboost/type_traits/is_base_and_derived.hpp
index 5995588..8dc35af 100644
--- a/include/ndnboost/type_traits/is_base_and_derived.hpp
+++ b/include/ndnboost/type_traits/is_base_and_derived.hpp
@@ -6,11 +6,11 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
  
-#ifndef BOOST_TT_IS_BASE_AND_DERIVED_HPP_INCLUDED
-#define BOOST_TT_IS_BASE_AND_DERIVED_HPP_INCLUDED
+#ifndef NDNBOOST_TT_IS_BASE_AND_DERIVED_HPP_INCLUDED
+#define NDNBOOST_TT_IS_BASE_AND_DERIVED_HPP_INCLUDED
 
 #include <ndnboost/type_traits/intrinsics.hpp>
-#ifndef BOOST_IS_BASE_OF
+#ifndef NDNBOOST_IS_BASE_OF
 #include <ndnboost/type_traits/is_class.hpp>
 #include <ndnboost/type_traits/is_same.hpp>
 #include <ndnboost/type_traits/is_convertible.hpp>
@@ -27,11 +27,11 @@
 
 namespace detail {
 
-#ifndef BOOST_IS_BASE_OF
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x581)) \
- && !BOOST_WORKAROUND(__SUNPRO_CC , <= 0x540) \
- && !BOOST_WORKAROUND(__EDG_VERSION__, <= 243) \
- && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
+#ifndef NDNBOOST_IS_BASE_OF
+#if !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x581)) \
+ && !NDNBOOST_WORKAROUND(__SUNPRO_CC , <= 0x540) \
+ && !NDNBOOST_WORKAROUND(__EDG_VERSION__, <= 243) \
+ && !NDNBOOST_WORKAROUND(__DMC__, NDNBOOST_TESTED_AT(0x840))
 
                              // The EDG version number is a lower estimate.
                              // It is not currently known which EDG version
@@ -120,7 +120,7 @@
    // an internal compiler error when compiling with /vmg (thanks to
    // Aleksey Gurtovoy for figuring out the workaround).
    //
-#if !BOOST_WORKAROUND(BOOST_MSVC, == 1310)
+#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1310)
     template <typename T>
     static type_traits::yes_type check_sig(D const volatile *, T);
     static type_traits::no_type  check_sig(B const volatile *, int);
@@ -133,7 +133,7 @@
 template<typename B, typename D>
 struct is_base_and_derived_impl2
 {
-#if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC_FULL_VER, >= 140050000)
 #pragma warning(push)
 #pragma warning(disable:6334)
 #endif
@@ -141,12 +141,12 @@
     // May silently do the wrong thing with incomplete types
     // unless we trap them here:
     //
-    BOOST_STATIC_ASSERT(sizeof(B) != 0);
-    BOOST_STATIC_ASSERT(sizeof(D) != 0);
+    NDNBOOST_STATIC_ASSERT(sizeof(B) != 0);
+    NDNBOOST_STATIC_ASSERT(sizeof(D) != 0);
 
     struct Host
     {
-#if !BOOST_WORKAROUND(BOOST_MSVC, == 1310)
+#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1310)
         operator B const volatile *() const;
 #else
         operator B const volatile * const&() const;
@@ -154,9 +154,9 @@
         operator D const volatile *();
     };
 
-    BOOST_STATIC_CONSTANT(bool, value =
+    NDNBOOST_STATIC_CONSTANT(bool, value =
         sizeof(bd_helper<B,D>::check_sig(Host(), 0)) == sizeof(type_traits::yes_type));
-#if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC_FULL_VER, >= 140050000)
 #pragma warning(pop)
 #endif
 };
@@ -169,18 +169,18 @@
 template<typename B, typename D>
 struct is_base_and_derived_impl2
 {
-    BOOST_STATIC_CONSTANT(bool, value =
+    NDNBOOST_STATIC_CONSTANT(bool, value =
         (::ndnboost::is_convertible<D*,B*>::value));
 };
 
-#define BOOST_BROKEN_IS_BASE_AND_DERIVED
+#define NDNBOOST_BROKEN_IS_BASE_AND_DERIVED
 
 #endif
 
 template <typename B, typename D>
 struct is_base_and_derived_impl3
 {
-    BOOST_STATIC_CONSTANT(bool, value = false);
+    NDNBOOST_STATIC_CONSTANT(bool, value = false);
 };
 
 template <bool ic1, bool ic2, bool iss>
@@ -216,7 +216,7 @@
     typedef typename selector::template rebind<ncvB,ncvD> binder;
     typedef typename binder::type bound_type;
 
-    BOOST_STATIC_CONSTANT(bool, value = bound_type::value);
+    NDNBOOST_STATIC_CONSTANT(bool, value = bound_type::value);
 };
 #else
 template <typename B, typename D>
@@ -225,30 +225,30 @@
     typedef typename remove_cv<B>::type ncvB;
     typedef typename remove_cv<D>::type ncvD;
 
-    BOOST_STATIC_CONSTANT(bool, value = (BOOST_IS_BASE_OF(B,D) && ! ::ndnboost::is_same<ncvB,ncvD>::value));
+    NDNBOOST_STATIC_CONSTANT(bool, value = (NDNBOOST_IS_BASE_OF(B,D) && ! ::ndnboost::is_same<ncvB,ncvD>::value));
 };
 #endif
 } // namespace detail
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF2(
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF2(
       is_base_and_derived
     , Base
     , Derived
     , (::ndnboost::detail::is_base_and_derived_impl<Base,Derived>::value)
     )
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(typename Base,typename Derived,is_base_and_derived,Base&,Derived,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(typename Base,typename Derived,is_base_and_derived,Base,Derived&,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(typename Base,typename Derived,is_base_and_derived,Base&,Derived&,false)
+#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(typename Base,typename Derived,is_base_and_derived,Base&,Derived,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(typename Base,typename Derived,is_base_and_derived,Base,Derived&,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(typename Base,typename Derived,is_base_and_derived,Base&,Derived&,false)
 #endif
 
-#if BOOST_WORKAROUND(__CODEGEARC__, BOOST_TESTED_AT(0x610))
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_1(typename Base,is_base_and_derived,Base,Base,false)
+#if NDNBOOST_WORKAROUND(__CODEGEARC__, NDNBOOST_TESTED_AT(0x610))
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_1(typename Base,is_base_and_derived,Base,Base,false)
 #endif
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TT_IS_BASE_AND_DERIVED_HPP_INCLUDED
+#endif // NDNBOOST_TT_IS_BASE_AND_DERIVED_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/is_base_of.hpp b/include/ndnboost/type_traits/is_base_of.hpp
index 432766b..b7b3aa6 100644
--- a/include/ndnboost/type_traits/is_base_of.hpp
+++ b/include/ndnboost/type_traits/is_base_of.hpp
@@ -6,8 +6,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
  
-#ifndef BOOST_TT_IS_BASE_OF_HPP_INCLUDED
-#define BOOST_TT_IS_BASE_OF_HPP_INCLUDED
+#ifndef NDNBOOST_TT_IS_BASE_OF_HPP_INCLUDED
+#define NDNBOOST_TT_IS_BASE_OF_HPP_INCLUDED
 
 #include <ndnboost/type_traits/is_base_and_derived.hpp>
 #include <ndnboost/type_traits/is_same.hpp>
@@ -26,26 +26,26 @@
       {
           typedef typename remove_cv<B>::type ncvB;
           typedef typename remove_cv<D>::type ncvD;
-          BOOST_STATIC_CONSTANT(bool, value = (::ndnboost::type_traits::ice_or<      
+          NDNBOOST_STATIC_CONSTANT(bool, value = (::ndnboost::type_traits::ice_or<      
             (::ndnboost::detail::is_base_and_derived_impl<ncvB,ncvD>::value),
             (::ndnboost::type_traits::ice_and< ::ndnboost::is_same<ncvB,ncvD>::value, ::ndnboost::is_class<ncvB>::value>::value)>::value));
       };
    }
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF2(
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF2(
       is_base_of
     , Base
     , Derived
     , (::ndnboost::detail::is_base_of_imp<Base, Derived>::value))
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(typename Base,typename Derived,is_base_of,Base&,Derived,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(typename Base,typename Derived,is_base_of,Base,Derived&,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(typename Base,typename Derived,is_base_of,Base&,Derived&,false)
+#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(typename Base,typename Derived,is_base_of,Base&,Derived,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(typename Base,typename Derived,is_base_of,Base,Derived&,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(typename Base,typename Derived,is_base_of,Base&,Derived&,false)
 #endif
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TT_IS_BASE_AND_DERIVED_HPP_INCLUDED
+#endif // NDNBOOST_TT_IS_BASE_AND_DERIVED_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/is_class.hpp b/include/ndnboost/type_traits/is_class.hpp
index 91e08e6..1885d5c 100644
--- a/include/ndnboost/type_traits/is_class.hpp
+++ b/include/ndnboost/type_traits/is_class.hpp
@@ -7,17 +7,17 @@
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
 
-#ifndef BOOST_TT_IS_CLASS_HPP_INCLUDED
-#define BOOST_TT_IS_CLASS_HPP_INCLUDED
+#ifndef NDNBOOST_TT_IS_CLASS_HPP_INCLUDED
+#define NDNBOOST_TT_IS_CLASS_HPP_INCLUDED
 
 #include <ndnboost/type_traits/config.hpp>
 #include <ndnboost/type_traits/intrinsics.hpp>
-#ifndef BOOST_IS_CLASS
+#ifndef NDNBOOST_IS_CLASS
 #   include <ndnboost/type_traits/is_union.hpp>
 #   include <ndnboost/type_traits/detail/ice_and.hpp>
 #   include <ndnboost/type_traits/detail/ice_not.hpp>
 
-#ifdef BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION
+#ifdef NDNBOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION
 #   include <ndnboost/type_traits/detail/yes_no_type.hpp>
 #else
 #   include <ndnboost/type_traits/is_scalar.hpp>
@@ -27,7 +27,7 @@
 #   include <ndnboost/type_traits/is_function.hpp>
 #endif
 
-#endif // BOOST_IS_CLASS
+#endif // NDNBOOST_IS_CLASS
 
 #ifdef __EDG_VERSION__
 #   include <ndnboost/type_traits/remove_cv.hpp>
@@ -40,8 +40,8 @@
 
 namespace detail {
 
-#ifndef BOOST_IS_CLASS
-#ifdef BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION
+#ifndef NDNBOOST_IS_CLASS
+#ifdef NDNBOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION
 
 // This is actually the conforming implementation which works with
 // abstract classes.  However, enough compilers have trouble with
@@ -62,7 +62,7 @@
 struct is_class_impl
 {
 
-    BOOST_STATIC_CONSTANT(bool, value =
+    NDNBOOST_STATIC_CONSTANT(bool, value =
         (::ndnboost::type_traits::ice_and<
             sizeof(is_class_tester<T>(0)) == sizeof(::ndnboost::type_traits::yes_type),
             ::ndnboost::type_traits::ice_not< ::ndnboost::is_union<T>::value >::value
@@ -78,7 +78,7 @@
     template <class U> static ::ndnboost::type_traits::yes_type is_class_tester(void(U::*)(void));
     template <class U> static ::ndnboost::type_traits::no_type is_class_tester(...);
 
-    BOOST_STATIC_CONSTANT(bool, value =
+    NDNBOOST_STATIC_CONSTANT(bool, value =
         (::ndnboost::type_traits::ice_and<
             sizeof(is_class_tester<T>(0)) == sizeof(::ndnboost::type_traits::yes_type),
             ::ndnboost::type_traits::ice_not< ::ndnboost::is_union<T>::value >::value
@@ -93,8 +93,8 @@
 template <typename T>
 struct is_class_impl
 {
-#   ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-    BOOST_STATIC_CONSTANT(bool, value =
+#   ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+    NDNBOOST_STATIC_CONSTANT(bool, value =
     (::ndnboost::type_traits::ice_and<
         ::ndnboost::type_traits::ice_not< ::ndnboost::is_union<T>::value >::value,
         ::ndnboost::type_traits::ice_not< ::ndnboost::is_scalar<T>::value >::value,
@@ -104,7 +104,7 @@
         ::ndnboost::type_traits::ice_not< ::ndnboost::is_function<T>::value >::value
         >::value));
 #   else
-    BOOST_STATIC_CONSTANT(bool, value =
+    NDNBOOST_STATIC_CONSTANT(bool, value =
     (::ndnboost::type_traits::ice_and<
         ::ndnboost::type_traits::ice_not< ::ndnboost::is_union<T>::value >::value,
         ::ndnboost::type_traits::ice_not< ::ndnboost::is_scalar<T>::value >::value,
@@ -115,26 +115,26 @@
 #   endif
 };
 
-# endif // BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION
-# else // BOOST_IS_CLASS
+# endif // NDNBOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION
+# else // NDNBOOST_IS_CLASS
 template <typename T>
 struct is_class_impl
 {
-    BOOST_STATIC_CONSTANT(bool, value = BOOST_IS_CLASS(T));
+    NDNBOOST_STATIC_CONSTANT(bool, value = NDNBOOST_IS_CLASS(T));
 };
-# endif // BOOST_IS_CLASS
+# endif // NDNBOOST_IS_CLASS
 
 } // namespace detail
 
 # ifdef __EDG_VERSION__
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(
    is_class,T, ndnboost::detail::is_class_impl<typename ndnboost::remove_cv<T>::type>::value)
 # else 
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_class,T,::ndnboost::detail::is_class_impl<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_class,T,::ndnboost::detail::is_class_impl<T>::value)
 # endif
     
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TT_IS_CLASS_HPP_INCLUDED
+#endif // NDNBOOST_TT_IS_CLASS_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/is_complex.hpp b/include/ndnboost/type_traits/is_complex.hpp
index 3eeaae5..f1d9713 100644
--- a/include/ndnboost/type_traits/is_complex.hpp
+++ b/include/ndnboost/type_traits/is_complex.hpp
@@ -5,8 +5,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_IS_COMPLEX_HPP
-#define BOOST_TT_IS_COMPLEX_HPP
+#ifndef NDNBOOST_TT_IS_COMPLEX_HPP
+#define NDNBOOST_TT_IS_COMPLEX_HPP
 
 #include <ndnboost/type_traits/is_convertible.hpp>
 #include <complex>
@@ -25,10 +25,10 @@
 
 }
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_complex,T,(::ndnboost::is_convertible<T, ndnboost::detail::is_convertible_from_tester>::value))
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_complex,T,(::ndnboost::is_convertible<T, ndnboost::detail::is_convertible_from_tester>::value))
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif //BOOST_TT_IS_COMPLEX_HPP
+#endif //NDNBOOST_TT_IS_COMPLEX_HPP
diff --git a/include/ndnboost/type_traits/is_compound.hpp b/include/ndnboost/type_traits/is_compound.hpp
index 6fd34c5..ef34a9e 100644
--- a/include/ndnboost/type_traits/is_compound.hpp
+++ b/include/ndnboost/type_traits/is_compound.hpp
@@ -6,8 +6,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_IS_COMPOUND_HPP_INCLUDED
-#define BOOST_TT_IS_COMPOUND_HPP_INCLUDED
+#ifndef NDNBOOST_TT_IS_COMPOUND_HPP_INCLUDED
+#define NDNBOOST_TT_IS_COMPOUND_HPP_INCLUDED
 
 #include <ndnboost/config.hpp>
 #include <ndnboost/type_traits/is_fundamental.hpp>
@@ -24,7 +24,7 @@
 template <typename T>
 struct is_compound_impl
 {
-   BOOST_STATIC_CONSTANT(bool, value =
+   NDNBOOST_STATIC_CONSTANT(bool, value =
       (::ndnboost::type_traits::ice_not<
          ::ndnboost::is_fundamental<T>::value
        >::value));
@@ -34,13 +34,13 @@
 #endif // !defined( __CODEGEARC__ )
 
 #if defined( __CODEGEARC__ )
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_compound,T,__is_compound(T))
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_compound,T,__is_compound(T))
 #else
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_compound,T,::ndnboost::detail::is_compound_impl<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_compound,T,::ndnboost::detail::is_compound_impl<T>::value)
 #endif
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TT_IS_COMPOUND_HPP_INCLUDED
+#endif // NDNBOOST_TT_IS_COMPOUND_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/is_const.hpp b/include/ndnboost/type_traits/is_const.hpp
index 369239b..919b750 100644
--- a/include/ndnboost/type_traits/is_const.hpp
+++ b/include/ndnboost/type_traits/is_const.hpp
@@ -18,18 +18,18 @@
 //    by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html).
 
 
-#ifndef BOOST_TT_IS_CONST_HPP_INCLUDED
-#define BOOST_TT_IS_CONST_HPP_INCLUDED
+#ifndef NDNBOOST_TT_IS_CONST_HPP_INCLUDED
+#define NDNBOOST_TT_IS_CONST_HPP_INCLUDED
 
 #include <ndnboost/config.hpp>
 #include <ndnboost/detail/workaround.hpp>
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 #   include <ndnboost/type_traits/detail/cv_traits_impl.hpp>
 #   ifdef __GNUC__
 #       include <ndnboost/type_traits/is_reference.hpp>
 #   endif
-#   if BOOST_WORKAROUND(BOOST_MSVC, < 1400)
+#   if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1400)
 #       include <ndnboost/type_traits/remove_bounds.hpp>
 #   endif
 #else
@@ -46,9 +46,9 @@
 
 #if defined( __CODEGEARC__ )
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_const,T,__is_const(T))
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_const,T,__is_const(T))
 
-#elif !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#elif !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 namespace detail{
 //
@@ -58,40 +58,40 @@
 template <class T>
 struct is_const_rvalue_filter
 {
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1400)
-   BOOST_STATIC_CONSTANT(bool, value = ::ndnboost::detail::cv_traits_imp<typename ndnboost::remove_bounds<T>::type*>::is_const);
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1400)
+   NDNBOOST_STATIC_CONSTANT(bool, value = ::ndnboost::detail::cv_traits_imp<typename ndnboost::remove_bounds<T>::type*>::is_const);
 #else
-   BOOST_STATIC_CONSTANT(bool, value = ::ndnboost::detail::cv_traits_imp<T*>::is_const);
+   NDNBOOST_STATIC_CONSTANT(bool, value = ::ndnboost::detail::cv_traits_imp<T*>::is_const);
 #endif
 };
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
+#ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
 template <class T>
 struct is_const_rvalue_filter<T&&>
 {
-   BOOST_STATIC_CONSTANT(bool, value = false);
+   NDNBOOST_STATIC_CONSTANT(bool, value = false);
 };
 #endif
 }
 
 //* is a type T  declared const - is_const<T>
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_const,T,::ndnboost::detail::is_const_rvalue_filter<T>::value)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_const,T&,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_const,T,::ndnboost::detail::is_const_rvalue_filter<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_const,T&,false)
 
-#if  defined(BOOST_ILLEGAL_CV_REFERENCES)
+#if  defined(NDNBOOST_ILLEGAL_CV_REFERENCES)
 // these are illegal specialisations; cv-qualifies applied to
 // references have no effect according to [8.3.2p1],
 // C++ Builder requires them though as it treats cv-qualified
 // references as distinct types...
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_const,T& const,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_const,T& volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_const,T& const volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_const,T& const,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_const,T& volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_const,T& const volatile,false)
 #endif
 
 #if defined(__GNUC__) && (__GNUC__ < 3)
 // special case for gcc where illegally cv-qualified reference types can be
 // generated in some corner cases:
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_const,T const,!(::ndnboost::is_reference<T>::value))
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_const,T volatile const,!(::ndnboost::is_reference<T>::value))
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_const,T const,!(::ndnboost::is_reference<T>::value))
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_const,T volatile const,!(::ndnboost::is_reference<T>::value))
 #endif
 
 #else
@@ -116,7 +116,7 @@
     template <typename T> struct result_
     {
         static T* t;
-        BOOST_STATIC_CONSTANT(bool, value = (
+        NDNBOOST_STATIC_CONSTANT(bool, value = (
             sizeof(ndnboost::detail::yes_type) == sizeof(ndnboost::detail::is_const_tester(t))
             ));
     };
@@ -128,7 +128,7 @@
     template <typename T> struct result_
     {
         static T t;
-        BOOST_STATIC_CONSTANT(bool, value = (
+        NDNBOOST_STATIC_CONSTANT(bool, value = (
             sizeof(ndnboost::detail::yes_type) == sizeof(ndnboost::detail::is_const_tester(&t))
             ));
     };
@@ -143,23 +143,23 @@
 {
 };
 
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_const,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_const,void const,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_const,void volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_const,void const volatile,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_const,void,false)
+#ifndef NDNBOOST_NO_CV_VOID_SPECIALIZATIONS
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_const,void const,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_const,void volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_const,void const volatile,true)
 #endif
 
 } // namespace detail
 
 //* is a type T  declared const - is_const<T>
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_const,T,::ndnboost::detail::is_const_impl<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_const,T,::ndnboost::detail::is_const_impl<T>::value)
 
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TT_IS_CONST_HPP_INCLUDED
+#endif // NDNBOOST_TT_IS_CONST_HPP_INCLUDED
 
diff --git a/include/ndnboost/type_traits/is_convertible.hpp b/include/ndnboost/type_traits/is_convertible.hpp
index e34579d..ef26322 100644
--- a/include/ndnboost/type_traits/is_convertible.hpp
+++ b/include/ndnboost/type_traits/is_convertible.hpp
@@ -9,18 +9,18 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_IS_CONVERTIBLE_HPP_INCLUDED
-#define BOOST_TT_IS_CONVERTIBLE_HPP_INCLUDED
+#ifndef NDNBOOST_TT_IS_CONVERTIBLE_HPP_INCLUDED
+#define NDNBOOST_TT_IS_CONVERTIBLE_HPP_INCLUDED
 
 #include <ndnboost/type_traits/intrinsics.hpp>
-#ifndef BOOST_IS_CONVERTIBLE
+#ifndef NDNBOOST_IS_CONVERTIBLE
 #include <ndnboost/type_traits/detail/yes_no_type.hpp>
 #include <ndnboost/type_traits/config.hpp>
 #include <ndnboost/type_traits/is_array.hpp>
 #include <ndnboost/type_traits/ice.hpp>
 #include <ndnboost/type_traits/is_arithmetic.hpp>
 #include <ndnboost/type_traits/is_void.hpp>
-#ifndef BOOST_NO_IS_ABSTRACT
+#ifndef NDNBOOST_NO_IS_ABSTRACT
 #include <ndnboost/type_traits/is_abstract.hpp>
 #endif
 #include <ndnboost/type_traits/add_lvalue_reference.hpp>
@@ -31,14 +31,14 @@
 #include <ndnboost/type_traits/remove_reference.hpp>
 #endif
 
-#endif // BOOST_IS_CONVERTIBLE
+#endif // NDNBOOST_IS_CONVERTIBLE
 
 // should be always the last #include directive
 #include <ndnboost/type_traits/detail/bool_trait_def.hpp>
 
 namespace ndnboost {
 
-#ifndef BOOST_IS_CONVERTIBLE
+#ifndef NDNBOOST_IS_CONVERTIBLE
 
 // is one type convertible to another?
 //
@@ -54,7 +54,7 @@
 
 // MS specific version:
 
-#if defined(BOOST_MSVC) && (BOOST_MSVC <= 1300)
+#if defined(NDNBOOST_MSVC) && (NDNBOOST_MSVC <= 1300)
 
 // This workaround is necessary to handle when From is void
 // which is normally taken care of by the partial specialization
@@ -67,8 +67,8 @@
 {
     template< typename To > struct result_
     {
-        static no_type BOOST_TT_DECL _m_check(...);
-        static yes_type BOOST_TT_DECL _m_check(To);
+        static no_type NDNBOOST_TT_DECL _m_check(...);
+        static yes_type NDNBOOST_TT_DECL _m_check(To);
         static typename add_lvalue_reference<From>::type  _m_from;
         enum { value = sizeof( _m_check(_m_from) ) == sizeof(yes_type) };
     };
@@ -103,8 +103,8 @@
     // so we only use it for Borland.
     template <typename T> struct checker
     {
-        static ::ndnboost::type_traits::no_type BOOST_TT_DECL _m_check(...);
-        static ::ndnboost::type_traits::yes_type BOOST_TT_DECL _m_check(T);
+        static ::ndnboost::type_traits::no_type NDNBOOST_TT_DECL _m_check(...);
+        static ::ndnboost::type_traits::yes_type NDNBOOST_TT_DECL _m_check(T);
     };
 
     static typename add_lvalue_reference<From>::type  _m_from;
@@ -137,7 +137,7 @@
     typedef typename add_lvalue_reference<From>::type lvalue_type;
     typedef typename add_rvalue_reference<From>::type rvalue_type;
     static lvalue_type _m_from;
-#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 6)))
+#if !defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 6)))
     static bool const value =
         sizeof( ndnboost::detail::checker<To>::_m_check(static_cast<rvalue_type>(_m_from), 0) )
         == sizeof(::ndnboost::type_traits::yes_type);
@@ -173,18 +173,18 @@
 template <typename From, typename To>
 struct is_convertible_basic_impl
 {
-    static ::ndnboost::type_traits::no_type BOOST_TT_DECL _m_check(any_conversion ...);
-    static ::ndnboost::type_traits::yes_type BOOST_TT_DECL _m_check(To, int);
+    static ::ndnboost::type_traits::no_type NDNBOOST_TT_DECL _m_check(any_conversion ...);
+    static ::ndnboost::type_traits::yes_type NDNBOOST_TT_DECL _m_check(To, int);
     typedef typename add_lvalue_reference<From>::type lvalue_type;
     typedef typename add_rvalue_reference<From>::type rvalue_type; 
     static lvalue_type _m_from;
 
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
-    BOOST_STATIC_CONSTANT(bool, value =
+#ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
+    NDNBOOST_STATIC_CONSTANT(bool, value =
         sizeof( _m_check(static_cast<rvalue_type>(_m_from), 0) ) == sizeof(::ndnboost::type_traits::yes_type)
         );
 #else
-    BOOST_STATIC_CONSTANT(bool, value =
+    NDNBOOST_STATIC_CONSTANT(bool, value =
         sizeof( _m_check(_m_from, 0) ) == sizeof(::ndnboost::type_traits::yes_type)
         );
 #endif
@@ -207,15 +207,15 @@
 {
     // Using '...' doesn't always work on Digital Mars. This version seems to.
     template <class T>
-    static ::ndnboost::type_traits::no_type BOOST_TT_DECL _m_check(any_conversion,  float, T);
-    static ::ndnboost::type_traits::yes_type BOOST_TT_DECL _m_check(To, int, int);
+    static ::ndnboost::type_traits::no_type NDNBOOST_TT_DECL _m_check(any_conversion,  float, T);
+    static ::ndnboost::type_traits::yes_type NDNBOOST_TT_DECL _m_check(To, int, int);
     typedef typename add_lvalue_reference<From>::type lvalue_type;
     typedef typename add_rvalue_reference<From>::type rvalue_type;
     static lvalue_type _m_from;
 
     // Static constants sometime cause the conversion of _m_from to To to be
     // called. This doesn't happen with an enum.
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
+#ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
     enum { value =
         sizeof( _m_check(static_cast<rvalue_type>(_m_from), 0, 0) ) == sizeof(::ndnboost::type_traits::yes_type)
         };
@@ -248,18 +248,18 @@
 template <typename From, typename To>
 struct is_convertible_basic_impl_aux<From,To,false /*FromIsFunctionRef*/>
 {
-    static ::ndnboost::type_traits::no_type BOOST_TT_DECL _m_check(any_conversion ...);
-    static ::ndnboost::type_traits::yes_type BOOST_TT_DECL _m_check(To, int);
+    static ::ndnboost::type_traits::no_type NDNBOOST_TT_DECL _m_check(any_conversion ...);
+    static ::ndnboost::type_traits::yes_type NDNBOOST_TT_DECL _m_check(To, int);
     typedef typename add_lvalue_reference<From>::type lvalue_type;
     typedef typename add_rvalue_reference<From>::type rvalue_type; 
     static lvalue_type _m_from;
 
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
-    BOOST_STATIC_CONSTANT(bool, value =
+#ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
+    NDNBOOST_STATIC_CONSTANT(bool, value =
         sizeof( _m_check(static_cast<rvalue_type>(_m_from), 0) ) == sizeof(::ndnboost::type_traits::yes_type)
         );
 #else
-    BOOST_STATIC_CONSTANT(bool, value =
+    NDNBOOST_STATIC_CONSTANT(bool, value =
         sizeof( _m_check(_m_from, 0) ) == sizeof(::ndnboost::type_traits::yes_type)
         );
 #endif
@@ -268,17 +268,17 @@
 template <typename From, typename To>
 struct is_convertible_basic_impl_aux<From,To,true /*FromIsFunctionRef*/>
 {
-    static ::ndnboost::type_traits::no_type BOOST_TT_DECL _m_check(...);
-    static ::ndnboost::type_traits::yes_type BOOST_TT_DECL _m_check(To);
+    static ::ndnboost::type_traits::no_type NDNBOOST_TT_DECL _m_check(...);
+    static ::ndnboost::type_traits::yes_type NDNBOOST_TT_DECL _m_check(To);
     typedef typename add_lvalue_reference<From>::type lvalue_type;
     typedef typename add_rvalue_reference<From>::type rvalue_type;
     static lvalue_type _m_from;
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
-    BOOST_STATIC_CONSTANT(bool, value =
+#ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
+    NDNBOOST_STATIC_CONSTANT(bool, value =
         sizeof( _m_check(static_cast<rvalue_type>(_m_from)) ) == sizeof(::ndnboost::type_traits::yes_type)
         );
 #else
-    BOOST_STATIC_CONSTANT(bool, value =
+    NDNBOOST_STATIC_CONSTANT(bool, value =
         sizeof( _m_check(_m_from) ) == sizeof(::ndnboost::type_traits::yes_type)
         );
 #endif
@@ -300,28 +300,28 @@
 template <typename From, typename To>
 struct is_convertible_basic_impl
 {
-    static ::ndnboost::type_traits::no_type BOOST_TT_DECL _m_check(...);
-    static ::ndnboost::type_traits::yes_type BOOST_TT_DECL _m_check(To);
+    static ::ndnboost::type_traits::no_type NDNBOOST_TT_DECL _m_check(...);
+    static ::ndnboost::type_traits::yes_type NDNBOOST_TT_DECL _m_check(To);
     typedef typename add_lvalue_reference<From>::type lvalue_type;
     typedef typename add_rvalue_reference<From>::type rvalue_type; 
     static lvalue_type _m_from;
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
 #pragma warning(push)
 #pragma warning(disable:4244)
-#if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC_FULL_VER, >= 140050000)
 #pragma warning(disable:6334)
 #endif
 #endif
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
-    BOOST_STATIC_CONSTANT(bool, value =
+#ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
+    NDNBOOST_STATIC_CONSTANT(bool, value =
         sizeof( _m_check(static_cast<rvalue_type>(_m_from)) ) == sizeof(::ndnboost::type_traits::yes_type)
         );
 #else
-    BOOST_STATIC_CONSTANT(bool, value =
+    NDNBOOST_STATIC_CONSTANT(bool, value =
         sizeof( _m_check(_m_from) ) == sizeof(::ndnboost::type_traits::yes_type)
         );
 #endif
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
 #pragma warning(pop)
 #endif
 };
@@ -351,7 +351,7 @@
 template <typename From, typename To>
 struct is_convertible_impl
 {
-    BOOST_STATIC_CONSTANT(bool, value =
+    NDNBOOST_STATIC_CONSTANT(bool, value =
         (::ndnboost::type_traits::ice_and<
             ::ndnboost::type_traits::ice_or<
                ::ndnboost::detail::is_convertible_basic_impl<From,To>::value,
@@ -411,11 +411,11 @@
 template <typename From, typename To>
 struct is_convertible_impl_dispatch_base
 {
-#if !BOOST_WORKAROUND(__HP_aCC, < 60700)
+#if !NDNBOOST_WORKAROUND(__HP_aCC, < 60700)
    typedef is_convertible_impl_select< 
       ::ndnboost::is_arithmetic<From>::value, 
       ::ndnboost::is_arithmetic<To>::value,
-#ifndef BOOST_NO_IS_ABSTRACT
+#ifndef NDNBOOST_NO_IS_ABSTRACT
       ::ndnboost::is_abstract<To>::value
 #else
       false
@@ -438,12 +438,12 @@
 // for void types, these are common to all the
 // implementation above:
 //
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
+#ifndef NDNBOOST_NO_CV_VOID_SPECIALIZATIONS
 #   define TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2_PART1(trait,spec1,spec2,value) \
-    BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2(trait,spec1,spec2,value) \
-    BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2(trait,spec1,spec2 const,value) \
-    BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2(trait,spec1,spec2 volatile,value) \
-    BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2(trait,spec1,spec2 const volatile,value) \
+    NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2(trait,spec1,spec2,value) \
+    NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2(trait,spec1,spec2 const,value) \
+    NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2(trait,spec1,spec2 volatile,value) \
+    NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2(trait,spec1,spec2 const volatile,value) \
     /**/
 
 #   define TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2(trait,spec1,spec2,value) \
@@ -459,29 +459,29 @@
 #   undef TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2_PART1
 
 #else
-    BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2(is_convertible,void,void,true)
-#endif // BOOST_NO_CV_VOID_SPECIALIZATIONS
+    NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2(is_convertible,void,void,true)
+#endif // NDNBOOST_NO_CV_VOID_SPECIALIZATIONS
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename To,is_convertible,void,To,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename From,is_convertible,From,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename To,is_convertible,void const,To,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename To,is_convertible,void volatile,To,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename To,is_convertible,void const volatile,To,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename From,is_convertible,From,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename From,is_convertible,From,void volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename From,is_convertible,From,void const volatile,false)
+#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename To,is_convertible,void,To,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename From,is_convertible,From,void,false)
+#ifndef NDNBOOST_NO_CV_VOID_SPECIALIZATIONS
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename To,is_convertible,void const,To,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename To,is_convertible,void volatile,To,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename To,is_convertible,void const volatile,To,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename From,is_convertible,From,void const,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename From,is_convertible,From,void volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename From,is_convertible,From,void const volatile,false)
 #endif
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 } // namespace detail
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF2(is_convertible,From,To,(::ndnboost::detail::is_convertible_impl_dispatch<From,To>::value))
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF2(is_convertible,From,To,(::ndnboost::detail::is_convertible_impl_dispatch<From,To>::value))
 
 #else
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF2(is_convertible,From,To,BOOST_IS_CONVERTIBLE(From,To))
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF2(is_convertible,From,To,NDNBOOST_IS_CONVERTIBLE(From,To))
 
 #endif
 
@@ -489,4 +489,4 @@
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TT_IS_CONVERTIBLE_HPP_INCLUDED
+#endif // NDNBOOST_TT_IS_CONVERTIBLE_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/is_empty.hpp b/include/ndnboost/type_traits/is_empty.hpp
index b30e90d..46ec4aa 100644
--- a/include/ndnboost/type_traits/is_empty.hpp
+++ b/include/ndnboost/type_traits/is_empty.hpp
@@ -6,15 +6,15 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_IS_EMPTY_HPP_INCLUDED
-#define BOOST_TT_IS_EMPTY_HPP_INCLUDED
+#ifndef NDNBOOST_TT_IS_EMPTY_HPP_INCLUDED
+#define NDNBOOST_TT_IS_EMPTY_HPP_INCLUDED
 
 #include <ndnboost/type_traits/is_convertible.hpp>
 #include <ndnboost/type_traits/detail/ice_or.hpp>
 #include <ndnboost/type_traits/config.hpp>
 #include <ndnboost/type_traits/intrinsics.hpp>
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 #   include <ndnboost/type_traits/remove_cv.hpp>
 #   include <ndnboost/type_traits/is_class.hpp>
 #   include <ndnboost/type_traits/add_reference.hpp>
@@ -31,19 +31,19 @@
 // should be always the last #include directive
 #include <ndnboost/type_traits/detail/bool_trait_def.hpp>
 
-#ifndef BOOST_INTERNAL_IS_EMPTY
-#define BOOST_INTERNAL_IS_EMPTY(T) false
+#ifndef NDNBOOST_INTERNAL_IS_EMPTY
+#define NDNBOOST_INTERNAL_IS_EMPTY(T) false
 #else
-#define BOOST_INTERNAL_IS_EMPTY(T) BOOST_IS_EMPTY(T)
+#define NDNBOOST_INTERNAL_IS_EMPTY(T) NDNBOOST_IS_EMPTY(T)
 #endif
 
 namespace ndnboost {
 
 namespace detail {
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
 #pragma warning(push)
 #pragma warning(disable:4624) // destructor could not be generated
 #endif
@@ -59,24 +59,24 @@
    empty_helper_t1& operator=(const empty_helper_t1&);
 };
 
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
 #pragma warning(pop)
 #endif
 
 struct empty_helper_t2 { int i[256]; };
 
-#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600)
+#if !NDNBOOST_WORKAROUND(__BORLANDC__, < 0x600)
 
 template <typename T, bool is_a_class = false>
 struct empty_helper
 {
-    BOOST_STATIC_CONSTANT(bool, value = false);
+    NDNBOOST_STATIC_CONSTANT(bool, value = false);
 };
 
 template <typename T>
 struct empty_helper<T, true>
 {
-    BOOST_STATIC_CONSTANT(
+    NDNBOOST_STATIC_CONSTANT(
         bool, value = (sizeof(empty_helper_t1<T>) == sizeof(empty_helper_t2))
         );
 };
@@ -85,11 +85,11 @@
 struct is_empty_impl
 {
     typedef typename remove_cv<T>::type cvt;
-    BOOST_STATIC_CONSTANT(
+    NDNBOOST_STATIC_CONSTANT(
         bool, value = (
             ::ndnboost::type_traits::ice_or<
               ::ndnboost::detail::empty_helper<cvt,::ndnboost::is_class<T>::value>::value
-              , BOOST_INTERNAL_IS_EMPTY(cvt)
+              , NDNBOOST_INTERNAL_IS_EMPTY(cvt)
             >::value
             ));
 };
@@ -99,13 +99,13 @@
 template <typename T, bool is_a_class, bool convertible_to_int>
 struct empty_helper
 {
-    BOOST_STATIC_CONSTANT(bool, value = false);
+    NDNBOOST_STATIC_CONSTANT(bool, value = false);
 };
 
 template <typename T>
 struct empty_helper<T, true, false>
 {
-    BOOST_STATIC_CONSTANT(bool, value = (
+    NDNBOOST_STATIC_CONSTANT(bool, value = (
         sizeof(empty_helper_t1<T>) == sizeof(empty_helper_t2)
         ));
 };
@@ -116,7 +116,7 @@
    typedef typename remove_cv<T>::type cvt;
    typedef typename add_reference<T>::type r_type;
 
-   BOOST_STATIC_CONSTANT(
+   NDNBOOST_STATIC_CONSTANT(
        bool, value = (
            ::ndnboost::type_traits::ice_or<
               ::ndnboost::detail::empty_helper<
@@ -124,15 +124,15 @@
                 , ::ndnboost::is_class<T>::value
                 , ::ndnboost::is_convertible< r_type,int>::value
               >::value
-              , BOOST_INTERNAL_IS_EMPTY(cvt)
+              , NDNBOOST_INTERNAL_IS_EMPTY(cvt)
            >::value));
 };
 
 #endif // __BORLANDC__
 
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#else // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
-#ifdef BOOST_MSVC6_MEMBER_TEMPLATES
+#ifdef NDNBOOST_MSVC6_MEMBER_TEMPLATES
 
 template <typename T>
 struct empty_helper_t1 : public T
@@ -192,38 +192,38 @@
    typedef typename chooser::template result_<T> result;
    typedef typename result::type eh_type;
 
-   BOOST_STATIC_CONSTANT(bool, value =
-      (::ndnboost::type_traits::ice_or<eh_type::value, BOOST_INTERNAL_IS_EMPTY(T)>::value));
+   NDNBOOST_STATIC_CONSTANT(bool, value =
+      (::ndnboost::type_traits::ice_or<eh_type::value, NDNBOOST_INTERNAL_IS_EMPTY(T)>::value));
 };
 
 #else
 
 template <typename T> struct is_empty_impl
 {
-    BOOST_STATIC_CONSTANT(bool, value = BOOST_INTERNAL_IS_EMPTY(T));
+    NDNBOOST_STATIC_CONSTANT(bool, value = NDNBOOST_INTERNAL_IS_EMPTY(T));
 };
 
-#endif  // BOOST_MSVC6_MEMBER_TEMPLATES
+#endif  // NDNBOOST_MSVC6_MEMBER_TEMPLATES
 
-#endif  // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif  // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 // these help when the compiler has no partial specialization support:
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_empty,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_empty,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_empty,void volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_empty,void const volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_empty,void,false)
+#ifndef NDNBOOST_NO_CV_VOID_SPECIALIZATIONS
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_empty,void const,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_empty,void volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_empty,void const volatile,false)
 #endif
 
 } // namespace detail
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_empty,T,::ndnboost::detail::is_empty_impl<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_empty,T,::ndnboost::detail::is_empty_impl<T>::value)
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#undef BOOST_INTERNAL_IS_EMPTY
+#undef NDNBOOST_INTERNAL_IS_EMPTY
 
-#endif // BOOST_TT_IS_EMPTY_HPP_INCLUDED
+#endif // NDNBOOST_TT_IS_EMPTY_HPP_INCLUDED
 
diff --git a/include/ndnboost/type_traits/is_enum.hpp b/include/ndnboost/type_traits/is_enum.hpp
index 814632d..0106c09 100644
--- a/include/ndnboost/type_traits/is_enum.hpp
+++ b/include/ndnboost/type_traits/is_enum.hpp
@@ -8,11 +8,11 @@
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
 
-#ifndef BOOST_TT_IS_ENUM_HPP_INCLUDED
-#define BOOST_TT_IS_ENUM_HPP_INCLUDED
+#ifndef NDNBOOST_TT_IS_ENUM_HPP_INCLUDED
+#define NDNBOOST_TT_IS_ENUM_HPP_INCLUDED
 
 #include <ndnboost/type_traits/intrinsics.hpp>
-#ifndef BOOST_IS_ENUM
+#ifndef NDNBOOST_IS_ENUM
 #include <ndnboost/type_traits/add_reference.hpp>
 #include <ndnboost/type_traits/is_arithmetic.hpp>
 #include <ndnboost/type_traits/is_reference.hpp>
@@ -22,7 +22,7 @@
 #include <ndnboost/type_traits/is_function.hpp>
 #endif
 #include <ndnboost/type_traits/config.hpp>
-#if defined(BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION) 
+#if defined(NDNBOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION) 
 #  include <ndnboost/type_traits/is_class.hpp>
 #  include <ndnboost/type_traits/is_union.hpp>
 #endif
@@ -33,17 +33,17 @@
 
 namespace ndnboost {
 
-#ifndef BOOST_IS_ENUM
+#ifndef NDNBOOST_IS_ENUM
 #if !(defined(__BORLANDC__) && (__BORLANDC__ <= 0x551))
 
 namespace detail {
 
-#if defined(BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION) 
+#if defined(NDNBOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION) 
 
 template <typename T>
 struct is_class_or_union
 {
-   BOOST_STATIC_CONSTANT(bool, value =
+   NDNBOOST_STATIC_CONSTANT(bool, value =
       (::ndnboost::type_traits::ice_or<
            ::ndnboost::is_class<T>::value
          , ::ndnboost::is_union<T>::value
@@ -55,20 +55,20 @@
 template <typename T>
 struct is_class_or_union
 {
-# if BOOST_WORKAROUND(BOOST_MSVC, < 1300) || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x581))// we simply can't detect it this way.
-    BOOST_STATIC_CONSTANT(bool, value = false);
+# if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300) || NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x581))// we simply can't detect it this way.
+    NDNBOOST_STATIC_CONSTANT(bool, value = false);
 # else
     template <class U> static ::ndnboost::type_traits::yes_type is_class_or_union_tester(void(U::*)(void));
 
-#  if BOOST_WORKAROUND(BOOST_MSVC, == 1300)                 \
-    || BOOST_WORKAROUND(__MWERKS__, <= 0x3000) // no SFINAE
+#  if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1300)                 \
+    || NDNBOOST_WORKAROUND(__MWERKS__, <= 0x3000) // no SFINAE
     static ::ndnboost::type_traits::no_type is_class_or_union_tester(...);
-    BOOST_STATIC_CONSTANT(
+    NDNBOOST_STATIC_CONSTANT(
         bool, value = sizeof(is_class_or_union_tester(0)) == sizeof(::ndnboost::type_traits::yes_type));
 #  else
     template <class U>
     static ::ndnboost::type_traits::no_type is_class_or_union_tester(...);
-    BOOST_STATIC_CONSTANT(
+    NDNBOOST_STATIC_CONSTANT(
         bool, value = sizeof(is_class_or_union_tester<T>(0)) == sizeof(::ndnboost::type_traits::yes_type));
 #  endif
 # endif
@@ -87,7 +87,7 @@
 {
     template <typename T> struct type
     {
-        BOOST_STATIC_CONSTANT(bool, value = false);
+        NDNBOOST_STATIC_CONSTANT(bool, value = false);
     };
 };
 
@@ -107,12 +107,12 @@
 
 #if defined(__GNUC__)
 
-#ifdef BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION
+#ifdef NDNBOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION
     
    // We MUST check for is_class_or_union on conforming compilers in
    // order to correctly deduce that noncopyable types are not enums
    // (dwa 2002/04/15)...
-   BOOST_STATIC_CONSTANT(bool, selector =
+   NDNBOOST_STATIC_CONSTANT(bool, selector =
       (::ndnboost::type_traits::ice_or<
            ::ndnboost::is_arithmetic<T>::value
          , ::ndnboost::is_reference<T>::value
@@ -123,18 +123,18 @@
 #else
    // ...however, not checking is_class_or_union on non-conforming
    // compilers prevents a dependency recursion.
-   BOOST_STATIC_CONSTANT(bool, selector =
+   NDNBOOST_STATIC_CONSTANT(bool, selector =
       (::ndnboost::type_traits::ice_or<
            ::ndnboost::is_arithmetic<T>::value
          , ::ndnboost::is_reference<T>::value
          , ::ndnboost::is_function<T>::value
          , is_array<T>::value
       >::value));
-#endif // BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION
+#endif // NDNBOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION
 
 #else // !defined(__GNUC__):
     
-   BOOST_STATIC_CONSTANT(bool, selector =
+   NDNBOOST_STATIC_CONSTANT(bool, selector =
       (::ndnboost::type_traits::ice_or<
            ::ndnboost::is_arithmetic<T>::value
          , ::ndnboost::is_reference<T>::value
@@ -144,7 +144,7 @@
     
 #endif
 
-#if BOOST_WORKAROUND(__BORLANDC__, < 0x600)
+#if NDNBOOST_WORKAROUND(__BORLANDC__, < 0x600)
     typedef ::ndnboost::detail::is_enum_helper<
           ::ndnboost::detail::is_enum_impl<T>::selector
         > se_t;
@@ -153,32 +153,32 @@
 #endif
 
     typedef typename se_t::template type<T> helper;
-    BOOST_STATIC_CONSTANT(bool, value = helper::value);
+    NDNBOOST_STATIC_CONSTANT(bool, value = helper::value);
 };
 
 // these help on compilers with no partial specialization support:
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_enum,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_enum,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_enum,void volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_enum,void const volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_enum,void,false)
+#ifndef NDNBOOST_NO_CV_VOID_SPECIALIZATIONS
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_enum,void const,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_enum,void volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_enum,void const volatile,false)
 #endif
 
 } // namespace detail
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_enum,T,::ndnboost::detail::is_enum_impl<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_enum,T,::ndnboost::detail::is_enum_impl<T>::value)
 
 #else // __BORLANDC__
 //
 // buggy is_convertible prevents working
 // implementation of is_enum:
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_enum,T,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_enum,T,false)
 
 #endif
 
-#else // BOOST_IS_ENUM
+#else // NDNBOOST_IS_ENUM
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_enum,T,BOOST_IS_ENUM(T))
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_enum,T,NDNBOOST_IS_ENUM(T))
 
 #endif
 
@@ -186,4 +186,4 @@
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TT_IS_ENUM_HPP_INCLUDED
+#endif // NDNBOOST_TT_IS_ENUM_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/is_float.hpp b/include/ndnboost/type_traits/is_float.hpp
index b16495a..c11b585 100644
--- a/include/ndnboost/type_traits/is_float.hpp
+++ b/include/ndnboost/type_traits/is_float.hpp
@@ -6,8 +6,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TYPE_TRAITS_IS_FLOAT_HPP_INCLUDED
-#define BOOST_TYPE_TRAITS_IS_FLOAT_HPP_INCLUDED
+#ifndef NDNBOOST_TYPE_TRAITS_IS_FLOAT_HPP_INCLUDED
+#define NDNBOOST_TYPE_TRAITS_IS_FLOAT_HPP_INCLUDED
 
 // should be the last #include
 #include <ndnboost/type_traits/detail/bool_trait_def.hpp>
@@ -15,13 +15,13 @@
 namespace ndnboost {
 
 //* is a type T a floating-point type described in the standard (3.9.1p8)
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_float,T,false)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_float,float,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_float,double,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_float,long double,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_float,T,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_float,float,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_float,double,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_float,long double,true)
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TYPE_TRAITS_IS_FLOAT_HPP_INCLUDED
+#endif // NDNBOOST_TYPE_TRAITS_IS_FLOAT_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/is_floating_point.hpp b/include/ndnboost/type_traits/is_floating_point.hpp
index 6a3e88d..3338266 100644
--- a/include/ndnboost/type_traits/is_floating_point.hpp
+++ b/include/ndnboost/type_traits/is_floating_point.hpp
@@ -6,8 +6,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TYPE_TRAITS_IS_FLOATING_HPP_INCLUDED
-#define BOOST_TYPE_TRAITS_IS_FLOATING_HPP_INCLUDED
+#ifndef NDNBOOST_TYPE_TRAITS_IS_FLOATING_HPP_INCLUDED
+#define NDNBOOST_TYPE_TRAITS_IS_FLOATING_HPP_INCLUDED
 
 // should be the last #include
 #include <ndnboost/type_traits/detail/bool_trait_def.hpp>
@@ -15,13 +15,13 @@
 namespace ndnboost {
 
 //* is a type T a floating-point type described in the standard (3.9.1p8)
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_floating_point,T,false)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_floating_point,float,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_floating_point,double,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_floating_point,long double,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_floating_point,T,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_floating_point,float,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_floating_point,double,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_floating_point,long double,true)
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TYPE_TRAITS_IS_FLOAT_HPP_INCLUDED
+#endif // NDNBOOST_TYPE_TRAITS_IS_FLOAT_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/is_function.hpp b/include/ndnboost/type_traits/is_function.hpp
index 51136f5..ccb42b7 100644
--- a/include/ndnboost/type_traits/is_function.hpp
+++ b/include/ndnboost/type_traits/is_function.hpp
@@ -8,14 +8,14 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_IS_FUNCTION_HPP_INCLUDED
-#define BOOST_TT_IS_FUNCTION_HPP_INCLUDED
+#ifndef NDNBOOST_TT_IS_FUNCTION_HPP_INCLUDED
+#define NDNBOOST_TT_IS_FUNCTION_HPP_INCLUDED
 
 #include <ndnboost/type_traits/is_reference.hpp>
 #include <ndnboost/type_traits/detail/false_result.hpp>
 #include <ndnboost/config.hpp>
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_TT_TEST_MS_FUNC_SIGS)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(NDNBOOST_TT_TEST_MS_FUNC_SIGS)
 #   include <ndnboost/type_traits/detail/is_function_ptr_helper.hpp>
 #else
 #   include <ndnboost/type_traits/detail/is_function_ptr_tester.hpp>
@@ -37,7 +37,7 @@
 
 namespace detail {
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_TT_TEST_MS_FUNC_SIGS)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(NDNBOOST_TT_TEST_MS_FUNC_SIGS)
 template<bool is_ref = true>
 struct is_function_chooser
     : public ::ndnboost::type_traits::false_result
@@ -56,7 +56,7 @@
 template <typename T>
 struct is_function_impl
     : public is_function_chooser< ::ndnboost::is_reference<T>::value >
-        ::BOOST_NESTED_TEMPLATE result_<T>
+        ::NDNBOOST_NESTED_TEMPLATE result_<T>
 {
 };
 
@@ -65,25 +65,25 @@
 template <typename T>
 struct is_function_impl
 {
-#if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC_FULL_VER, >= 140050000)
 #pragma warning(push)
 #pragma warning(disable:6334)
 #endif
     static T* t;
-    BOOST_STATIC_CONSTANT(
+    NDNBOOST_STATIC_CONSTANT(
         bool, value = sizeof(::ndnboost::type_traits::is_function_ptr_tester(t))
         == sizeof(::ndnboost::type_traits::yes_type)
         );
-#if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC_FULL_VER, >= 140050000)
 #pragma warning(pop)
 #endif
 };
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 template <typename T>
 struct is_function_impl<T&> : public false_type
 {};
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
+#ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
 template <typename T>
 struct is_function_impl<T&&> : public false_type
 {};
@@ -97,15 +97,15 @@
 #endif // !defined( __CODEGEARC__ )
 
 #if defined( __CODEGEARC__ )
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_function,T,__is_function(T))
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_function,T,__is_function(T))
 #else
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_function,T,::ndnboost::detail::is_function_impl<T>::value)
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_function,T&&,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_function,T,::ndnboost::detail::is_function_impl<T>::value)
+#ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_function,T&&,false)
 #endif
 #endif
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TT_IS_FUNCTION_HPP_INCLUDED
+#endif // NDNBOOST_TT_IS_FUNCTION_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/is_fundamental.hpp b/include/ndnboost/type_traits/is_fundamental.hpp
index 74497c4..c8b94d9 100644
--- a/include/ndnboost/type_traits/is_fundamental.hpp
+++ b/include/ndnboost/type_traits/is_fundamental.hpp
@@ -6,8 +6,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_IS_FUNDAMENTAL_HPP_INCLUDED
-#define BOOST_TT_IS_FUNDAMENTAL_HPP_INCLUDED
+#ifndef NDNBOOST_TT_IS_FUNDAMENTAL_HPP_INCLUDED
+#define NDNBOOST_TT_IS_FUNDAMENTAL_HPP_INCLUDED
 
 #include <ndnboost/type_traits/is_arithmetic.hpp>
 #include <ndnboost/type_traits/is_void.hpp>
@@ -33,13 +33,13 @@
 
 //* is a type T a fundamental type described in the standard (3.9.1)
 #if defined( __CODEGEARC__ )
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_fundamental,T,__is_fundamental(T))
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_fundamental,T,__is_fundamental(T))
 #else
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_fundamental,T,::ndnboost::detail::is_fundamental_impl<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_fundamental,T,::ndnboost::detail::is_fundamental_impl<T>::value)
 #endif
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TT_IS_FUNDAMENTAL_HPP_INCLUDED
+#endif // NDNBOOST_TT_IS_FUNDAMENTAL_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/is_integral.hpp b/include/ndnboost/type_traits/is_integral.hpp
index c622b3d..1e44256 100644
--- a/include/ndnboost/type_traits/is_integral.hpp
+++ b/include/ndnboost/type_traits/is_integral.hpp
@@ -6,8 +6,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_IS_INTEGRAL_HPP_INCLUDED
-#define BOOST_TT_IS_INTEGRAL_HPP_INCLUDED
+#ifndef NDNBOOST_TT_IS_INTEGRAL_HPP_INCLUDED
+#define NDNBOOST_TT_IS_INTEGRAL_HPP_INCLUDED
 
 #include <ndnboost/config.hpp>
 
@@ -20,58 +20,58 @@
 // as an extension we include long long, as this is likely to be added to the
 // standard at a later date
 #if defined( __CODEGEARC__ )
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_integral,T,__is_integral(T))
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_integral,T,__is_integral(T))
 #else
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_integral,T,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_integral,T,false)
 
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned char,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned short,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned int,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned long,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned char,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned short,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned int,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned long,true)
 
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,signed char,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,signed short,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,signed int,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,signed long,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,signed char,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,signed short,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,signed int,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,signed long,true)
 
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,bool,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,char,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,bool,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,char,true)
 
-#ifndef BOOST_NO_INTRINSIC_WCHAR_T
+#ifndef NDNBOOST_NO_INTRINSIC_WCHAR_T
 // If the following line fails to compile and you're using the Intel
 // compiler, see http://lists.boost.org/MailArchives/boost-users/msg06567.php,
-// and define BOOST_NO_INTRINSIC_WCHAR_T on the command line.
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,wchar_t,true)
+// and define NDNBOOST_NO_INTRINSIC_WCHAR_T on the command line.
+NDNBOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,wchar_t,true)
 #endif
 
 // Same set of integral types as in ndnboost/type_traits/integral_promotion.hpp.
 // Please, keep in sync. -- Alexander Nasonov
-#if (defined(BOOST_MSVC) && (BOOST_MSVC < 1300)) \
-    || (defined(BOOST_INTEL_CXX_VERSION) && defined(_MSC_VER) && (BOOST_INTEL_CXX_VERSION <= 600)) \
+#if (defined(NDNBOOST_MSVC) && (NDNBOOST_MSVC < 1300)) \
+    || (defined(NDNBOOST_INTEL_CXX_VERSION) && defined(_MSC_VER) && (NDNBOOST_INTEL_CXX_VERSION <= 600)) \
     || (defined(__BORLANDC__) && (__BORLANDC__ == 0x600) && (_MSC_VER < 1300))
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int8,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int8,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int16,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int16,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int32,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int32,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int8,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int8,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int16,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int16,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int32,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int32,true)
 #ifdef __BORLANDC__
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int64,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int64,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int64,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int64,true)
 #endif
 #endif
 
-# if defined(BOOST_HAS_LONG_LONG)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral, ::ndnboost::ulong_long_type,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral, ::ndnboost::long_long_type,true)
-#elif defined(BOOST_HAS_MS_INT64)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int64,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int64,true)
+# if defined(NDNBOOST_HAS_LONG_LONG)
+NDNBOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral, ::ndnboost::ulong_long_type,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral, ::ndnboost::long_long_type,true)
+#elif defined(NDNBOOST_HAS_MS_INT64)
+NDNBOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int64,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int64,true)
 #endif
         
-#ifdef BOOST_HAS_INT128
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,ndnboost::int128_type,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,ndnboost::uint128_type,true)
+#ifdef NDNBOOST_HAS_INT128
+NDNBOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,ndnboost::int128_type,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,ndnboost::uint128_type,true)
 #endif
 
 #endif  // non-CodeGear implementation
@@ -80,4 +80,4 @@
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TT_IS_INTEGRAL_HPP_INCLUDED
+#endif // NDNBOOST_TT_IS_INTEGRAL_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/is_lvalue_reference.hpp b/include/ndnboost/type_traits/is_lvalue_reference.hpp
index 420c2e6..678e2c6 100644
--- a/include/ndnboost/type_traits/is_lvalue_reference.hpp
+++ b/include/ndnboost/type_traits/is_lvalue_reference.hpp
@@ -18,12 +18,12 @@
 //    by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html).
 
 
-#ifndef BOOST_TT_IS_LVALUE_REFERENCE_HPP_INCLUDED
-#define BOOST_TT_IS_LVALUE_REFERENCE_HPP_INCLUDED
+#ifndef NDNBOOST_TT_IS_LVALUE_REFERENCE_HPP_INCLUDED
+#define NDNBOOST_TT_IS_LVALUE_REFERENCE_HPP_INCLUDED
 
 #include <ndnboost/type_traits/config.hpp>
 
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#ifdef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 #   include <ndnboost/type_traits/detail/yes_no_type.hpp>
 #   include <ndnboost/type_traits/detail/wrap.hpp>
 #endif
@@ -34,39 +34,39 @@
 namespace ndnboost {
 
 #if defined( __CODEGEARC__ )
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_lvalue_reference,T,__is_reference(T))
-#elif !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_lvalue_reference,T,__is_reference(T))
+#elif !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_lvalue_reference,T,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_lvalue_reference,T&,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_lvalue_reference,T,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_lvalue_reference,T&,true)
 
-#if  defined(BOOST_ILLEGAL_CV_REFERENCES)
+#if  defined(NDNBOOST_ILLEGAL_CV_REFERENCES)
 // these are illegal specialisations; cv-qualifies applied to
 // references have no effect according to [8.3.2p1],
 // C++ Builder requires them though as it treats cv-qualified
 // references as distinct types...
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_lvalue_reference,T& const,true)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_lvalue_reference,T& volatile,true)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_lvalue_reference,T& const volatile,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_lvalue_reference,T& const,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_lvalue_reference,T& volatile,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_lvalue_reference,T& const volatile,true)
 #endif
 
 #if defined(__GNUC__) && (__GNUC__ < 3)
 // these allow us to work around illegally cv-qualified reference
 // types.
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_lvalue_reference,T const ,::ndnboost::is_lvalue_reference<T>::value)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_lvalue_reference,T volatile ,::ndnboost::is_lvalue_reference<T>::value)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_lvalue_reference,T const volatile ,::ndnboost::is_lvalue_reference<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_lvalue_reference,T const ,::ndnboost::is_lvalue_reference<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_lvalue_reference,T volatile ,::ndnboost::is_lvalue_reference<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_lvalue_reference,T const volatile ,::ndnboost::is_lvalue_reference<T>::value)
 // However, the above specializations confuse gcc 2.96 unless we also
 // supply these specializations for array types
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,unsigned long N,is_lvalue_reference,T[N],false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,unsigned long N,is_lvalue_reference,const T[N],false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,unsigned long N,is_lvalue_reference,volatile T[N],false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,unsigned long N,is_lvalue_reference,const volatile T[N],false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,unsigned long N,is_lvalue_reference,T[N],false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,unsigned long N,is_lvalue_reference,const T[N],false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,unsigned long N,is_lvalue_reference,volatile T[N],false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,unsigned long N,is_lvalue_reference,const volatile T[N],false)
 #endif
 
 #else
 
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
 #   pragma warning(push)
 #   pragma warning(disable: 4181 4097)
 #endif
@@ -86,33 +86,33 @@
 template <typename T>
 struct is_lvalue_reference_impl
 {
-    BOOST_STATIC_CONSTANT(
+    NDNBOOST_STATIC_CONSTANT(
         bool, value = sizeof(
             ::ndnboost::detail::is_lvalue_reference_helper2(
                 ::ndnboost::detail::is_lvalue_reference_helper1(::ndnboost::type_traits::wrap<T>()))) == 1
         );
 };
 
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_lvalue_reference,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_lvalue_reference,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_lvalue_reference,void volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_lvalue_reference,void const volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_lvalue_reference,void,false)
+#ifndef NDNBOOST_NO_CV_VOID_SPECIALIZATIONS
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_lvalue_reference,void const,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_lvalue_reference,void volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_lvalue_reference,void const volatile,false)
 #endif
 
 } // namespace detail
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_lvalue_reference,T,::ndnboost::detail::is_lvalue_reference_impl<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_lvalue_reference,T,::ndnboost::detail::is_lvalue_reference_impl<T>::value)
 
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
 #   pragma warning(pop)
 #endif
 
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TT_IS_REFERENCE_HPP_INCLUDED
+#endif // NDNBOOST_TT_IS_REFERENCE_HPP_INCLUDED
 
diff --git a/include/ndnboost/type_traits/is_member_function_pointer.hpp b/include/ndnboost/type_traits/is_member_function_pointer.hpp
index 63115b9..38ef2ec 100644
--- a/include/ndnboost/type_traits/is_member_function_pointer.hpp
+++ b/include/ndnboost/type_traits/is_member_function_pointer.hpp
@@ -8,14 +8,14 @@
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
 
-#ifndef BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
-#define BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
+#ifndef NDNBOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
+#define NDNBOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
 
 #include <ndnboost/type_traits/config.hpp>
 #include <ndnboost/detail/workaround.hpp>
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-   && !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(BOOST_TT_TEST_MS_FUNC_SIGS)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
+   && !NDNBOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(NDNBOOST_TT_TEST_MS_FUNC_SIGS)
    //
    // Note: we use the "workaround" version for MSVC because it works for 
    // __stdcall etc function types, where as the partial specialisation
@@ -38,10 +38,10 @@
 namespace ndnboost {
 
 #if defined( __CODEGEARC__ )
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_member_function_pointer,T,__is_member_function_pointer( T ))
-#elif !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(BOOST_TT_TEST_MS_FUNC_SIGS)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_member_function_pointer,T,__is_member_function_pointer( T ))
+#elif !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !NDNBOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(NDNBOOST_TT_TEST_MS_FUNC_SIGS)
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(
       is_member_function_pointer
     , T
     , ::ndnboost::type_traits::is_mem_fun_pointer_impl<typename remove_cv<T>::type>::value
@@ -64,18 +64,18 @@
 {
     template <typename T> struct result_
     {
-#if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC_FULL_VER, >= 140050000)
 #pragma warning(push)
 #pragma warning(disable:6334)
 #endif
         static T* make_t;
         typedef result_<T> self_type;
 
-        BOOST_STATIC_CONSTANT(
+        NDNBOOST_STATIC_CONSTANT(
             bool, value = (
                 1 == sizeof(::ndnboost::type_traits::is_mem_fun_pointer_tester(self_type::make_t))
             ));
-#if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC_FULL_VER, >= 140050000)
 #pragma warning(pop)
 #endif
     };
@@ -92,7 +92,7 @@
 {
 };
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 template <typename T>
 struct is_member_function_pointer_impl<T&> : public false_type{};
 #endif
@@ -103,7 +103,7 @@
 struct is_member_function_pointer_impl
 {
    static T* m_t;
-   BOOST_STATIC_CONSTANT(
+   NDNBOOST_STATIC_CONSTANT(
               bool, value =
                (1 == sizeof(type_traits::is_mem_fun_pointer_tester(m_t))) );
 };
@@ -111,26 +111,26 @@
 template <typename T>
 struct is_member_function_pointer_impl<T&>
 {
-   BOOST_STATIC_CONSTANT(bool, value = false);
+   NDNBOOST_STATIC_CONSTANT(bool, value = false);
 };
 
 #endif
 
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_function_pointer,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_function_pointer,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_function_pointer,void volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_function_pointer,void const volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_function_pointer,void,false)
+#ifndef NDNBOOST_NO_CV_VOID_SPECIALIZATIONS
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_function_pointer,void const,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_function_pointer,void volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_function_pointer,void const volatile,false)
 #endif
 
 } // namespace detail
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_member_function_pointer,T,::ndnboost::detail::is_member_function_pointer_impl<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_member_function_pointer,T,::ndnboost::detail::is_member_function_pointer_impl<T>::value)
 
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
+#endif // NDNBOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/is_member_object_pointer.hpp b/include/ndnboost/type_traits/is_member_object_pointer.hpp
index 321093e..29567dd 100644
--- a/include/ndnboost/type_traits/is_member_object_pointer.hpp
+++ b/include/ndnboost/type_traits/is_member_object_pointer.hpp
@@ -7,8 +7,8 @@
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
 
-#ifndef BOOST_TT_IS_MEMBER_OBJECT_POINTER_HPP_INCLUDED
-#define BOOST_TT_IS_MEMBER_OBJECT_POINTER_HPP_INCLUDED
+#ifndef NDNBOOST_TT_IS_MEMBER_OBJECT_POINTER_HPP_INCLUDED
+#define NDNBOOST_TT_IS_MEMBER_OBJECT_POINTER_HPP_INCLUDED
 
 #include <ndnboost/type_traits/config.hpp>
 #include <ndnboost/type_traits/is_member_pointer.hpp>
@@ -26,7 +26,7 @@
 template <typename T>
 struct is_member_object_pointer_impl
 {
-   BOOST_STATIC_CONSTANT(
+   NDNBOOST_STATIC_CONSTANT(
       bool, value = (::ndnboost::type_traits::ice_and<
          ::ndnboost::is_member_pointer<T>::value,
          ::ndnboost::type_traits::ice_not<
@@ -37,10 +37,10 @@
 
 } // namespace detail
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_member_object_pointer,T,::ndnboost::detail::is_member_object_pointer_impl<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_member_object_pointer,T,::ndnboost::detail::is_member_object_pointer_impl<T>::value)
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
+#endif // NDNBOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/is_member_pointer.hpp b/include/ndnboost/type_traits/is_member_pointer.hpp
index 6a2bd61..7bfca6b 100644
--- a/include/ndnboost/type_traits/is_member_pointer.hpp
+++ b/include/ndnboost/type_traits/is_member_pointer.hpp
@@ -18,13 +18,13 @@
 //    by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html).
 
 
-#ifndef BOOST_TT_IS_MEMBER_POINTER_HPP_INCLUDED
-#define BOOST_TT_IS_MEMBER_POINTER_HPP_INCLUDED
+#ifndef NDNBOOST_TT_IS_MEMBER_POINTER_HPP_INCLUDED
+#define NDNBOOST_TT_IS_MEMBER_POINTER_HPP_INCLUDED
 
 #include <ndnboost/type_traits/config.hpp>
 #include <ndnboost/detail/workaround.hpp>
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !BOOST_WORKAROUND(__BORLANDC__, < 0x600)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !NDNBOOST_WORKAROUND(__BORLANDC__, < 0x600)
 #   include <ndnboost/type_traits/is_member_function_pointer.hpp>
 #else
 #   include <ndnboost/type_traits/is_reference.hpp>
@@ -41,19 +41,19 @@
 namespace ndnboost {
 
 #if defined( __CODEGEARC__ )
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_member_pointer,T,__is_member_pointer(T))
-#elif BOOST_WORKAROUND(__BORLANDC__, < 0x600)
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_member_pointer,T,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,typename U,is_member_pointer,U T::*,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_member_pointer,T,__is_member_pointer(T))
+#elif NDNBOOST_WORKAROUND(__BORLANDC__, < 0x600)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_member_pointer,T,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,typename U,is_member_pointer,U T::*,true)
 
-#elif !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_member_pointer,T,::ndnboost::is_member_function_pointer<T>::value)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,typename U,is_member_pointer,U T::*,true)
+#elif !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_member_pointer,T,::ndnboost::is_member_function_pointer<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,typename U,is_member_pointer,U T::*,true)
 
-#if !BOOST_WORKAROUND(__MWERKS__,<=0x3003) && !BOOST_WORKAROUND(__IBMCPP__, <=600)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,typename U,is_member_pointer,U T::*const,true)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,typename U,is_member_pointer,U T::*volatile,true)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,typename U,is_member_pointer,U T::*const volatile,true)
+#if !NDNBOOST_WORKAROUND(__MWERKS__,<=0x3003) && !NDNBOOST_WORKAROUND(__IBMCPP__, <=600)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,typename U,is_member_pointer,U T::*const,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,typename U,is_member_pointer,U T::*volatile,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,typename U,is_member_pointer,U T::*const volatile,true)
 #endif
 
 #else // no partial template specialization
@@ -61,8 +61,8 @@
 namespace detail {
 
 template <typename R, typename T>
-::ndnboost::type_traits::yes_type BOOST_TT_DECL is_member_pointer_tester(R T::*const volatile*);
-::ndnboost::type_traits::no_type BOOST_TT_DECL is_member_pointer_tester(...);
+::ndnboost::type_traits::yes_type NDNBOOST_TT_DECL is_member_pointer_tester(R T::*const volatile*);
+::ndnboost::type_traits::no_type NDNBOOST_TT_DECL is_member_pointer_tester(...);
 
 template <bool>
 struct is_member_pointer_select
@@ -76,7 +76,7 @@
     template <typename T> struct result_
     {
         static T* make_t();
-        BOOST_STATIC_CONSTANT(
+        NDNBOOST_STATIC_CONSTANT(
             bool, value =
             (::ndnboost::type_traits::ice_or<
                 (1 == sizeof(::ndnboost::type_traits::is_mem_fun_pointer_tester(make_t()))),
@@ -96,16 +96,16 @@
 {
 };
 
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_pointer,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_pointer,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_pointer,void volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_pointer,void const volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_pointer,void,false)
+#ifndef NDNBOOST_NO_CV_VOID_SPECIALIZATIONS
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_pointer,void const,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_pointer,void volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_pointer,void const volatile,false)
 #endif
 
 } // namespace detail
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_member_pointer,T,::ndnboost::detail::is_member_pointer_impl<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_member_pointer,T,::ndnboost::detail::is_member_pointer_impl<T>::value)
 
 #endif // __BORLANDC__
 
@@ -113,4 +113,4 @@
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TT_IS_MEMBER_POINTER_HPP_INCLUDED
+#endif // NDNBOOST_TT_IS_MEMBER_POINTER_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/is_nothrow_move_assignable.hpp b/include/ndnboost/type_traits/is_nothrow_move_assignable.hpp
index 889598b..25864ac 100644
--- a/include/ndnboost/type_traits/is_nothrow_move_assignable.hpp
+++ b/include/ndnboost/type_traits/is_nothrow_move_assignable.hpp
@@ -8,8 +8,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_IS_NOTHROW_MOVE_ASSIGNABLE_HPP_INCLUDED
-#define BOOST_TT_IS_NOTHROW_MOVE_ASSIGNABLE_HPP_INCLUDED
+#ifndef NDNBOOST_TT_IS_NOTHROW_MOVE_ASSIGNABLE_HPP_INCLUDED
+#define NDNBOOST_TT_IS_NOTHROW_MOVE_ASSIGNABLE_HPP_INCLUDED
 
 #include <ndnboost/config.hpp>
 #include <ndnboost/type_traits/has_trivial_move_assign.hpp>
@@ -29,7 +29,7 @@
 
 namespace detail{
 
-#ifndef BOOST_NO_CXX11_NOEXCEPT
+#ifndef NDNBOOST_NO_CXX11_NOEXCEPT
 
 template <class T, class Enable = void>
 struct false_or_cpp11_noexcept_move_assignable: public ::ndnboost::false_type {};
@@ -37,13 +37,13 @@
 template <class T>
 struct false_or_cpp11_noexcept_move_assignable <
         T,
-        typename ::ndnboost::enable_if_c<sizeof(T) && BOOST_NOEXCEPT_EXPR(::ndnboost::declval<T&>() = ::ndnboost::declval<T>())>::type
-    > : public ::ndnboost::integral_constant<bool, BOOST_NOEXCEPT_EXPR(::ndnboost::declval<T&>() = ::ndnboost::declval<T>())>
+        typename ::ndnboost::enable_if_c<sizeof(T) && NDNBOOST_NOEXCEPT_EXPR(::ndnboost::declval<T&>() = ::ndnboost::declval<T>())>::type
+    > : public ::ndnboost::integral_constant<bool, NDNBOOST_NOEXCEPT_EXPR(::ndnboost::declval<T&>() = ::ndnboost::declval<T>())>
 {};
 
 template <class T>
 struct is_nothrow_move_assignable_imp{
-    BOOST_STATIC_CONSTANT(bool, value = (
+    NDNBOOST_STATIC_CONSTANT(bool, value = (
         ::ndnboost::type_traits::ice_and<
             ::ndnboost::type_traits::ice_not< ::ndnboost::is_volatile<T>::value >::value,
             ::ndnboost::type_traits::ice_not< ::ndnboost::is_reference<T>::value >::value,
@@ -55,7 +55,7 @@
 
 template <class T>
 struct is_nothrow_move_assignable_imp{
-    BOOST_STATIC_CONSTANT(bool, value = (
+    NDNBOOST_STATIC_CONSTANT(bool, value = (
         ::ndnboost::type_traits::ice_and<
             ::ndnboost::type_traits::ice_or<
                 ::ndnboost::has_trivial_move_assign<T>::value,
@@ -69,16 +69,16 @@
 
 }
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_nothrow_move_assignable,T,::ndnboost::detail::is_nothrow_move_assignable_imp<T>::value)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_nothrow_move_assignable,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_nothrow_move_assignable,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_nothrow_move_assignable,void const volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_nothrow_move_assignable,void volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_nothrow_move_assignable,T,::ndnboost::detail::is_nothrow_move_assignable_imp<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_nothrow_move_assignable,void,false)
+#ifndef NDNBOOST_NO_CV_VOID_SPECIALIZATIONS
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_nothrow_move_assignable,void const,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_nothrow_move_assignable,void const volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_nothrow_move_assignable,void volatile,false)
 #endif
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TT_IS_NOTHROW_MOVE_ASSIGNABLE_HPP_INCLUDED
+#endif // NDNBOOST_TT_IS_NOTHROW_MOVE_ASSIGNABLE_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/is_nothrow_move_constructible.hpp b/include/ndnboost/type_traits/is_nothrow_move_constructible.hpp
index 3bbc889..8891135 100644
--- a/include/ndnboost/type_traits/is_nothrow_move_constructible.hpp
+++ b/include/ndnboost/type_traits/is_nothrow_move_constructible.hpp
@@ -8,8 +8,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_IS_NOTHROW_MOVE_CONSTRUCTIBLE_HPP_INCLUDED
-#define BOOST_TT_IS_NOTHROW_MOVE_CONSTRUCTIBLE_HPP_INCLUDED
+#ifndef NDNBOOST_TT_IS_NOTHROW_MOVE_CONSTRUCTIBLE_HPP_INCLUDED
+#define NDNBOOST_TT_IS_NOTHROW_MOVE_CONSTRUCTIBLE_HPP_INCLUDED
 
 #include <ndnboost/config.hpp>
 #include <ndnboost/type_traits/has_trivial_move_constructor.hpp>
@@ -28,7 +28,7 @@
 
 namespace detail{
 
-#ifndef BOOST_NO_CXX11_NOEXCEPT
+#ifndef NDNBOOST_NO_CXX11_NOEXCEPT
 
 template <class T, class Enable = void>
 struct false_or_cpp11_noexcept_move_constructible: public ::ndnboost::false_type {};
@@ -36,13 +36,13 @@
 template <class T>
 struct false_or_cpp11_noexcept_move_constructible <
         T,
-        typename ::ndnboost::enable_if_c<sizeof(T) && BOOST_NOEXCEPT_EXPR(T(::ndnboost::declval<T>()))>::type
-    > : public ::ndnboost::integral_constant<bool, BOOST_NOEXCEPT_EXPR(T(::ndnboost::declval<T>()))>
+        typename ::ndnboost::enable_if_c<sizeof(T) && NDNBOOST_NOEXCEPT_EXPR(T(::ndnboost::declval<T>()))>::type
+    > : public ::ndnboost::integral_constant<bool, NDNBOOST_NOEXCEPT_EXPR(T(::ndnboost::declval<T>()))>
 {};
 
 template <class T>
 struct is_nothrow_move_constructible_imp{
-   BOOST_STATIC_CONSTANT(bool, value = 
+   NDNBOOST_STATIC_CONSTANT(bool, value = 
         (::ndnboost::type_traits::ice_and<
             ::ndnboost::type_traits::ice_not< ::ndnboost::is_volatile<T>::value >::value,
             ::ndnboost::type_traits::ice_not< ::ndnboost::is_reference<T>::value >::value,
@@ -54,7 +54,7 @@
 
 template <class T>
 struct is_nothrow_move_constructible_imp{
-    BOOST_STATIC_CONSTANT(bool, value =(
+    NDNBOOST_STATIC_CONSTANT(bool, value =(
         ::ndnboost::type_traits::ice_and<
             ::ndnboost::type_traits::ice_or<
                 ::ndnboost::has_trivial_move_constructor<T>::value,
@@ -68,17 +68,17 @@
 
 }
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_nothrow_move_constructible,T,::ndnboost::detail::is_nothrow_move_constructible_imp<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_nothrow_move_constructible,T,::ndnboost::detail::is_nothrow_move_constructible_imp<T>::value)
 
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_nothrow_move_constructible,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_nothrow_move_constructible,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_nothrow_move_constructible,void const volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_nothrow_move_constructible,void volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_nothrow_move_constructible,void,false)
+#ifndef NDNBOOST_NO_CV_VOID_SPECIALIZATIONS
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_nothrow_move_constructible,void const,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_nothrow_move_constructible,void const volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_nothrow_move_constructible,void volatile,false)
 #endif
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TT_IS_NOTHROW_MOVE_CONSTRUCTIBLE_HPP_INCLUDED
+#endif // NDNBOOST_TT_IS_NOTHROW_MOVE_CONSTRUCTIBLE_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/is_object.hpp b/include/ndnboost/type_traits/is_object.hpp
index ea18e32..206eb9a 100644
--- a/include/ndnboost/type_traits/is_object.hpp
+++ b/include/ndnboost/type_traits/is_object.hpp
@@ -6,8 +6,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_IS_OBJECT_HPP_INCLUDED
-#define BOOST_TT_IS_OBJECT_HPP_INCLUDED
+#ifndef NDNBOOST_TT_IS_OBJECT_HPP_INCLUDED
+#define NDNBOOST_TT_IS_OBJECT_HPP_INCLUDED
 
 #include <ndnboost/type_traits/is_reference.hpp>
 #include <ndnboost/type_traits/is_void.hpp>
@@ -26,15 +26,15 @@
 template <typename T>
 struct is_object_impl
 {
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-   BOOST_STATIC_CONSTANT(bool, value =
+#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+   NDNBOOST_STATIC_CONSTANT(bool, value =
       (::ndnboost::type_traits::ice_and<
          ::ndnboost::type_traits::ice_not< ::ndnboost::is_reference<T>::value>::value,
          ::ndnboost::type_traits::ice_not< ::ndnboost::is_void<T>::value>::value,
          ::ndnboost::type_traits::ice_not< ::ndnboost::is_function<T>::value>::value
       >::value));
 #else
-   BOOST_STATIC_CONSTANT(bool, value =
+   NDNBOOST_STATIC_CONSTANT(bool, value =
       (::ndnboost::type_traits::ice_and<
          ::ndnboost::type_traits::ice_not< ::ndnboost::is_reference<T>::value>::value,
          ::ndnboost::type_traits::ice_not< ::ndnboost::is_void<T>::value>::value
@@ -44,10 +44,10 @@
 
 } // namespace detail
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_object,T,::ndnboost::detail::is_object_impl<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_object,T,::ndnboost::detail::is_object_impl<T>::value)
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TT_IS_OBJECT_HPP_INCLUDED
+#endif // NDNBOOST_TT_IS_OBJECT_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/is_pod.hpp b/include/ndnboost/type_traits/is_pod.hpp
index 2d462cd..390761a 100644
--- a/include/ndnboost/type_traits/is_pod.hpp
+++ b/include/ndnboost/type_traits/is_pod.hpp
@@ -6,8 +6,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_IS_POD_HPP_INCLUDED
-#define BOOST_TT_IS_POD_HPP_INCLUDED
+#ifndef NDNBOOST_TT_IS_POD_HPP_INCLUDED
+#define NDNBOOST_TT_IS_POD_HPP_INCLUDED
 
 #include <ndnboost/type_traits/config.hpp>
 #include <ndnboost/type_traits/is_void.hpp>
@@ -20,10 +20,10 @@
 // should be the last #include
 #include <ndnboost/type_traits/detail/bool_trait_def.hpp>
 
-#ifndef BOOST_IS_POD
-#define BOOST_INTERNAL_IS_POD(T) false
+#ifndef NDNBOOST_IS_POD
+#define NDNBOOST_INTERNAL_IS_POD(T) false
 #else
-#define BOOST_INTERNAL_IS_POD(T) BOOST_IS_POD(T)
+#define NDNBOOST_INTERNAL_IS_POD(T) NDNBOOST_IS_POD(T)
 #endif
 
 namespace ndnboost {
@@ -33,20 +33,20 @@
 
 namespace detail {
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 template <typename T> struct is_pod_impl
 { 
-    BOOST_STATIC_CONSTANT(
+    NDNBOOST_STATIC_CONSTANT(
         bool, value =
         (::ndnboost::type_traits::ice_or<
             ::ndnboost::is_scalar<T>::value,
             ::ndnboost::is_void<T>::value,
-            BOOST_INTERNAL_IS_POD(T)
+            NDNBOOST_INTERNAL_IS_POD(T)
          >::value));
 };
 
-#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
+#if !defined(NDNBOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
 template <typename T, std::size_t sz>
 struct is_pod_impl<T[sz]>
     : public is_pod_impl<T>
@@ -61,12 +61,12 @@
 {
     template <typename T> struct result_
     {
-        BOOST_STATIC_CONSTANT(
+        NDNBOOST_STATIC_CONSTANT(
             bool, value =
             (::ndnboost::type_traits::ice_or<
                 ::ndnboost::is_scalar<T>::value,
                 ::ndnboost::is_void<T>::value,
-                BOOST_INTERNAL_IS_POD(T)
+                NDNBOOST_INTERNAL_IS_POD(T)
             >::value));
     };
 };
@@ -100,7 +100,7 @@
     template <typename T> struct result_
     {
         static T& help();
-        BOOST_STATIC_CONSTANT(bool, value =
+        NDNBOOST_STATIC_CONSTANT(bool, value =
             sizeof(is_POD_array(help()).instance()) == sizeof(::ndnboost::type_traits::yes_type)
             );
     };
@@ -109,7 +109,7 @@
 
 template <typename T> struct is_pod_impl
 { 
-   BOOST_STATIC_CONSTANT(
+   NDNBOOST_STATIC_CONSTANT(
        bool, value = (
            ::ndnboost::detail::is_pod_helper<
               ::ndnboost::is_array<T>::value
@@ -118,28 +118,28 @@
        );
 };
 
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 // the following help compilers without partial specialization support:
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,void,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,void,true)
 
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,void const,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,void volatile,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,void const volatile,true)
+#ifndef NDNBOOST_NO_CV_VOID_SPECIALIZATIONS
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,void const,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,void volatile,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,void const volatile,true)
 #endif
 
 } // namespace detail
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_pod,T,::ndnboost::detail::is_pod_impl<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_pod,T,::ndnboost::detail::is_pod_impl<T>::value)
 // is_POD is the old depricated name for this trait, do not use this as it may
 // be removed in future without warning!!
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_POD,T,::ndnboost::is_pod<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_POD,T,::ndnboost::is_pod<T>::value)
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#undef BOOST_INTERNAL_IS_POD
+#undef NDNBOOST_INTERNAL_IS_POD
 
-#endif // BOOST_TT_IS_POD_HPP_INCLUDED
+#endif // NDNBOOST_TT_IS_POD_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/is_pointer.hpp b/include/ndnboost/type_traits/is_pointer.hpp
index 0f3f87e..812d36d 100644
--- a/include/ndnboost/type_traits/is_pointer.hpp
+++ b/include/ndnboost/type_traits/is_pointer.hpp
@@ -18,18 +18,18 @@
 //    by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html).
 
 
-#ifndef BOOST_TT_IS_POINTER_HPP_INCLUDED
-#define BOOST_TT_IS_POINTER_HPP_INCLUDED
+#ifndef NDNBOOST_TT_IS_POINTER_HPP_INCLUDED
+#define NDNBOOST_TT_IS_POINTER_HPP_INCLUDED
 
 #include <ndnboost/type_traits/is_member_pointer.hpp>
 #include <ndnboost/type_traits/detail/ice_and.hpp>
 #include <ndnboost/type_traits/detail/ice_not.hpp>
 #include <ndnboost/type_traits/config.hpp>
-#if !BOOST_WORKAROUND(BOOST_MSVC,<=1300)
+#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC,<=1300)
 #include <ndnboost/type_traits/remove_cv.hpp>
 #endif
 
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#ifdef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 #   include <ndnboost/type_traits/is_reference.hpp>
 #   include <ndnboost/type_traits/is_array.hpp>
 #   include <ndnboost/type_traits/detail/is_function_ptr_tester.hpp>
@@ -43,20 +43,20 @@
 namespace ndnboost {
 
 #if defined( __CODEGEARC__ )
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_pointer,T,__is_pointer(T))
-#elif !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_pointer,T,__is_pointer(T))
+#elif !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 namespace detail {
 
 template< typename T > struct is_pointer_helper
 {
-    BOOST_STATIC_CONSTANT(bool, value = false);
+    NDNBOOST_STATIC_CONSTANT(bool, value = false);
 };
 
 #   define TT_AUX_BOOL_TRAIT_HELPER_PARTIAL_SPEC(helper,sp,result) \
 template< typename T > struct helper<sp> \
 { \
-    BOOST_STATIC_CONSTANT(bool, value = result); \
+    NDNBOOST_STATIC_CONSTANT(bool, value = result); \
 }; \
 /**/
 
@@ -67,8 +67,8 @@
 template< typename T >
 struct is_pointer_impl
 {
-#if BOOST_WORKAROUND(BOOST_MSVC,<=1300)
-    BOOST_STATIC_CONSTANT(bool, value =
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC,<=1300)
+    NDNBOOST_STATIC_CONSTANT(bool, value =
         (::ndnboost::type_traits::ice_and<
               ::ndnboost::detail::is_pointer_helper<T>::value
             , ::ndnboost::type_traits::ice_not<
@@ -77,7 +77,7 @@
             >::value)
         );
 #else
-    BOOST_STATIC_CONSTANT(bool, value =
+    NDNBOOST_STATIC_CONSTANT(bool, value =
         (::ndnboost::type_traits::ice_and<
         ::ndnboost::detail::is_pointer_helper<typename remove_cv<T>::type>::value
             , ::ndnboost::type_traits::ice_not<
@@ -90,13 +90,13 @@
 
 } // namespace detail
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_pointer,T,::ndnboost::detail::is_pointer_impl<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_pointer,T,::ndnboost::detail::is_pointer_impl<T>::value)
 
 #if defined(__BORLANDC__) && !defined(__COMO__) && (__BORLANDC__ < 0x600)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_pointer,T&,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_pointer,T& const,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_pointer,T& volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_pointer,T& const volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_pointer,T&,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_pointer,T& const,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_pointer,T& volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_pointer,T& const volatile,false)
 #endif
 
 #else // no partial template specialization
@@ -108,8 +108,8 @@
     pointer_helper(const volatile void*);
 };
 
-yes_type BOOST_TT_DECL is_pointer_tester(pointer_helper);
-no_type BOOST_TT_DECL is_pointer_tester(...);
+yes_type NDNBOOST_TT_DECL is_pointer_tester(pointer_helper);
+no_type NDNBOOST_TT_DECL is_pointer_tester(...);
 
 template <bool>
 struct is_pointer_select
@@ -123,7 +123,7 @@
     template <typename T> struct result_
     {
         static T& make_t();
-        BOOST_STATIC_CONSTANT(bool, value =
+        NDNBOOST_STATIC_CONSTANT(bool, value =
                 (::ndnboost::type_traits::ice_or<
                     (1 == sizeof(is_pointer_tester(make_t()))),
                     (1 == sizeof(type_traits::is_function_ptr_tester(make_t())))
@@ -142,21 +142,21 @@
 {
 };
 
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pointer,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pointer,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pointer,void volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pointer,void const volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pointer,void,false)
+#ifndef NDNBOOST_NO_CV_VOID_SPECIALIZATIONS
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pointer,void const,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pointer,void volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pointer,void const volatile,false)
 #endif
 
 } // namespace detail
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_pointer,T,::ndnboost::detail::is_pointer_impl<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_pointer,T,::ndnboost::detail::is_pointer_impl<T>::value)
 
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TT_IS_POINTER_HPP_INCLUDED
+#endif // NDNBOOST_TT_IS_POINTER_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/is_polymorphic.hpp b/include/ndnboost/type_traits/is_polymorphic.hpp
index f49cd12..76b6615 100644
--- a/include/ndnboost/type_traits/is_polymorphic.hpp
+++ b/include/ndnboost/type_traits/is_polymorphic.hpp
@@ -5,11 +5,11 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_IS_POLYMORPHIC_HPP
-#define BOOST_TT_IS_POLYMORPHIC_HPP
+#ifndef NDNBOOST_TT_IS_POLYMORPHIC_HPP
+#define NDNBOOST_TT_IS_POLYMORPHIC_HPP
 
 #include <ndnboost/type_traits/intrinsics.hpp>
-#ifndef BOOST_IS_POLYMORPHIC
+#ifndef NDNBOOST_IS_POLYMORPHIC
 #include <ndnboost/type_traits/is_class.hpp>
 #include <ndnboost/type_traits/remove_cv.hpp>
 #endif
@@ -19,14 +19,14 @@
 
 namespace ndnboost{
 
-#ifndef BOOST_IS_POLYMORPHIC
+#ifndef NDNBOOST_IS_POLYMORPHIC
 
 namespace detail{
 
 template <class T>
 struct is_polymorphic_imp1
 {
-# if BOOST_WORKAROUND(__MWERKS__, <= 0x2407) // CWPro7 should return false always.
+# if NDNBOOST_WORKAROUND(__MWERKS__, <= 0x2407) // CWPro7 should return false always.
     typedef char d1, (&d2)[2];
 # else 
    typedef typename remove_cv<T>::type ncvT;
@@ -46,7 +46,7 @@
    {
       d2();
       virtual ~d2()throw();
-#  if !defined(BOOST_MSVC) && !defined(__ICL)
+#  if !defined(NDNBOOST_MSVC) && !defined(__ICL)
       // for some reason this messes up VC++ when T has virtual bases,
       // probably likewise for compilers that use the same ABI:
       struct unique{};
@@ -59,13 +59,13 @@
       d2& operator=(const d2&);
    };
 # endif 
-   BOOST_STATIC_CONSTANT(bool, value = (sizeof(d2) == sizeof(d1)));
+   NDNBOOST_STATIC_CONSTANT(bool, value = (sizeof(d2) == sizeof(d1)));
 };
 
 template <class T>
 struct is_polymorphic_imp2
 {
-   BOOST_STATIC_CONSTANT(bool, value = false);
+   NDNBOOST_STATIC_CONSTANT(bool, value = false);
 };
 
 template <bool is_class>
@@ -94,16 +94,16 @@
    typedef is_polymorphic_selector< ::ndnboost::is_class<T>::value> selector;
    typedef typename selector::template rebind<T> binder;
    typedef typename binder::type imp_type;
-   BOOST_STATIC_CONSTANT(bool, value = imp_type::value);
+   NDNBOOST_STATIC_CONSTANT(bool, value = imp_type::value);
 };
 
 } // namespace detail
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_polymorphic,T,::ndnboost::detail::is_polymorphic_imp<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_polymorphic,T,::ndnboost::detail::is_polymorphic_imp<T>::value)
 
-#else // BOOST_IS_POLYMORPHIC
+#else // NDNBOOST_IS_POLYMORPHIC
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_polymorphic,T,BOOST_IS_POLYMORPHIC(T))
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_polymorphic,T,NDNBOOST_IS_POLYMORPHIC(T))
 
 #endif
 
diff --git a/include/ndnboost/type_traits/is_reference.hpp b/include/ndnboost/type_traits/is_reference.hpp
index 72ff28d..39d6c4f 100644
--- a/include/ndnboost/type_traits/is_reference.hpp
+++ b/include/ndnboost/type_traits/is_reference.hpp
@@ -9,8 +9,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_IS_REFERENCE_HPP_INCLUDED
-#define BOOST_TT_IS_REFERENCE_HPP_INCLUDED
+#ifndef NDNBOOST_TT_IS_REFERENCE_HPP_INCLUDED
+#define NDNBOOST_TT_IS_REFERENCE_HPP_INCLUDED
 
 #include <ndnboost/type_traits/config.hpp>
 #include <ndnboost/type_traits/is_lvalue_reference.hpp>
@@ -27,7 +27,7 @@
 template <typename T>
 struct is_reference_impl
 {
-   BOOST_STATIC_CONSTANT(bool, value =
+   NDNBOOST_STATIC_CONSTANT(bool, value =
       (::ndnboost::type_traits::ice_or<
          ::ndnboost::is_lvalue_reference<T>::value, ::ndnboost::is_rvalue_reference<T>::value
        >::value));
@@ -35,11 +35,11 @@
 
 } // namespace detail
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_reference,T,::ndnboost::detail::is_reference_impl<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_reference,T,::ndnboost::detail::is_reference_impl<T>::value)
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TT_IS_REFERENCE_HPP_INCLUDED
+#endif // NDNBOOST_TT_IS_REFERENCE_HPP_INCLUDED
 
diff --git a/include/ndnboost/type_traits/is_rvalue_reference.hpp b/include/ndnboost/type_traits/is_rvalue_reference.hpp
index 78aa8d6..7cfe142 100644
--- a/include/ndnboost/type_traits/is_rvalue_reference.hpp
+++ b/include/ndnboost/type_traits/is_rvalue_reference.hpp
@@ -6,8 +6,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_IS_RVALUE_REFERENCE_HPP_INCLUDED
-#define BOOST_TT_IS_RVALUE_REFERENCE_HPP_INCLUDED
+#ifndef NDNBOOST_TT_IS_RVALUE_REFERENCE_HPP_INCLUDED
+#define NDNBOOST_TT_IS_RVALUE_REFERENCE_HPP_INCLUDED
 
 #include <ndnboost/type_traits/config.hpp>
 
@@ -16,14 +16,14 @@
 
 namespace ndnboost {
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_rvalue_reference,T,false)
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_rvalue_reference,T&&,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_rvalue_reference,T,false)
+#ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_rvalue_reference,T&&,true)
 #endif
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TT_IS_REFERENCE_HPP_INCLUDED
+#endif // NDNBOOST_TT_IS_REFERENCE_HPP_INCLUDED
 
diff --git a/include/ndnboost/type_traits/is_same.hpp b/include/ndnboost/type_traits/is_same.hpp
index 58a03c4..d00bd2f 100644
--- a/include/ndnboost/type_traits/is_same.hpp
+++ b/include/ndnboost/type_traits/is_same.hpp
@@ -18,11 +18,11 @@
 //    by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html).
 
 
-#ifndef BOOST_TT_IS_SAME_HPP_INCLUDED
-#define BOOST_TT_IS_SAME_HPP_INCLUDED
+#ifndef NDNBOOST_TT_IS_SAME_HPP_INCLUDED
+#define NDNBOOST_TT_IS_SAME_HPP_INCLUDED
 
 #include <ndnboost/type_traits/config.hpp>
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#ifdef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 #include <ndnboost/type_traits/detail/yes_no_type.hpp>
 #include <ndnboost/type_traits/detail/ice_and.hpp>
 #include <ndnboost/type_traits/is_reference.hpp>
@@ -32,21 +32,21 @@
 
 namespace ndnboost {
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF2(is_same,T,U,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_1(typename T,is_same,T,T,true)
-#if BOOST_WORKAROUND(__BORLANDC__, < 0x600)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF2(is_same,T,U,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_1(typename T,is_same,T,T,true)
+#if NDNBOOST_WORKAROUND(__BORLANDC__, < 0x600)
 // without this, Borland's compiler gives the wrong answer for
 // references to arrays:
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_1(typename T,is_same,T&,T&,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_1(typename T,is_same,T&,T&,true)
 #endif
 
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#else // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 namespace detail {
 
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
 // the following VC6 specific implementation is *NOT* legal
 // C++, but has the advantage that it works for incomplete
 // types.
@@ -68,10 +68,10 @@
 
 template <typename T>
 ::ndnboost::type_traits::yes_type
-BOOST_TT_DECL is_same_tester(T*, T*);
+NDNBOOST_TT_DECL is_same_tester(T*, T*);
 
 ::ndnboost::type_traits::no_type
-BOOST_TT_DECL is_same_tester(...);
+NDNBOOST_TT_DECL is_same_tester(...);
 
 template <typename T, typename U>
 struct is_same_impl
@@ -79,7 +79,7 @@
    static T t;
    static U u;
 
-   BOOST_STATIC_CONSTANT(bool, value =
+   NDNBOOST_STATIC_CONSTANT(bool, value =
       (::ndnboost::type_traits::ice_and<
          (sizeof(type_traits::yes_type) == sizeof(ndnboost::detail::is_same_tester(&t,&u))),
          (::ndnboost::is_reference<T>::value == ::ndnboost::is_reference<U>::value),
@@ -87,17 +87,17 @@
         >::value));
 };
 
-#endif // BOOST_MSVC
+#endif // NDNBOOST_MSVC
 
 } // namespace detail
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF2(is_same,T,U,(::ndnboost::detail::is_same_impl<T,U>::value))
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF2(is_same,T,U,(::ndnboost::detail::is_same_impl<T,U>::value))
 
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif  // BOOST_TT_IS_SAME_HPP_INCLUDED
+#endif  // NDNBOOST_TT_IS_SAME_HPP_INCLUDED
 
diff --git a/include/ndnboost/type_traits/is_scalar.hpp b/include/ndnboost/type_traits/is_scalar.hpp
index 358d3d5..e4e208e 100644
--- a/include/ndnboost/type_traits/is_scalar.hpp
+++ b/include/ndnboost/type_traits/is_scalar.hpp
@@ -6,8 +6,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_IS_SCALAR_HPP_INCLUDED
-#define BOOST_TT_IS_SCALAR_HPP_INCLUDED
+#ifndef NDNBOOST_TT_IS_SCALAR_HPP_INCLUDED
+#define NDNBOOST_TT_IS_SCALAR_HPP_INCLUDED
 
 #include <ndnboost/type_traits/is_arithmetic.hpp>
 #include <ndnboost/type_traits/is_enum.hpp>
@@ -26,7 +26,7 @@
 template <typename T>
 struct is_scalar_impl
 { 
-   BOOST_STATIC_CONSTANT(bool, value =
+   NDNBOOST_STATIC_CONSTANT(bool, value =
       (::ndnboost::type_traits::ice_or<
          ::ndnboost::is_arithmetic<T>::value,
          ::ndnboost::is_enum<T>::value,
@@ -37,19 +37,19 @@
 
 // these specializations are only really needed for compilers 
 // without partial specialization support:
-template <> struct is_scalar_impl<void>{ BOOST_STATIC_CONSTANT(bool, value = false ); };
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-template <> struct is_scalar_impl<void const>{ BOOST_STATIC_CONSTANT(bool, value = false ); };
-template <> struct is_scalar_impl<void volatile>{ BOOST_STATIC_CONSTANT(bool, value = false ); };
-template <> struct is_scalar_impl<void const volatile>{ BOOST_STATIC_CONSTANT(bool, value = false ); };
+template <> struct is_scalar_impl<void>{ NDNBOOST_STATIC_CONSTANT(bool, value = false ); };
+#ifndef NDNBOOST_NO_CV_VOID_SPECIALIZATIONS
+template <> struct is_scalar_impl<void const>{ NDNBOOST_STATIC_CONSTANT(bool, value = false ); };
+template <> struct is_scalar_impl<void volatile>{ NDNBOOST_STATIC_CONSTANT(bool, value = false ); };
+template <> struct is_scalar_impl<void const volatile>{ NDNBOOST_STATIC_CONSTANT(bool, value = false ); };
 #endif
 
 } // namespace detail
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_scalar,T,::ndnboost::detail::is_scalar_impl<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_scalar,T,::ndnboost::detail::is_scalar_impl<T>::value)
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TT_IS_SCALAR_HPP_INCLUDED
+#endif // NDNBOOST_TT_IS_SCALAR_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/is_signed.hpp b/include/ndnboost/type_traits/is_signed.hpp
index 1697dee..440c6e0 100644
--- a/include/ndnboost/type_traits/is_signed.hpp
+++ b/include/ndnboost/type_traits/is_signed.hpp
@@ -7,8 +7,8 @@
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
 
-#ifndef BOOST_TT_IS_SIGNED_HPP_INCLUDED
-#define BOOST_TT_IS_SIGNED_HPP_INCLUDED
+#ifndef NDNBOOST_TT_IS_SIGNED_HPP_INCLUDED
+#define NDNBOOST_TT_IS_SIGNED_HPP_INCLUDED
 
 #include <ndnboost/type_traits/is_integral.hpp>
 #include <ndnboost/type_traits/remove_cv.hpp>
@@ -24,13 +24,13 @@
 
 namespace detail{
 
-#if !(defined(__EDG_VERSION__) && __EDG_VERSION__ <= 238) && !defined(BOOST_NO_INCLASS_MEMBER_INITIALIZATION)
+#if !(defined(__EDG_VERSION__) && __EDG_VERSION__ <= 238) && !defined(NDNBOOST_NO_INCLASS_MEMBER_INITIALIZATION)
 
 template <class T>
 struct is_signed_values
 {
    //
-   // Note that we cannot use BOOST_STATIC_CONSTANT here, using enum's
+   // Note that we cannot use NDNBOOST_STATIC_CONSTANT here, using enum's
    // rather than "real" static constants simply doesn't work or give
    // the correct answer.
    //
@@ -43,7 +43,7 @@
 struct is_signed_helper
 {
    typedef typename remove_cv<T>::type no_cv_t;
-   BOOST_STATIC_CONSTANT(bool, value = (!(::ndnboost::detail::is_signed_values<T>::minus_one  > ndnboost::detail::is_signed_values<T>::zero)));
+   NDNBOOST_STATIC_CONSTANT(bool, value = (!(::ndnboost::detail::is_signed_values<T>::minus_one  > ndnboost::detail::is_signed_values<T>::zero)));
 };
 
 template <bool integral_type>
@@ -76,10 +76,10 @@
    > selector;
    typedef typename selector::template rebind<T> binder;
    typedef typename binder::type type;
-#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
-   BOOST_STATIC_CONSTANT(bool, value = is_signed_imp<T>::type::value);
+#if defined(NDNBOOST_MSVC) && (NDNBOOST_MSVC < 1300)
+   NDNBOOST_STATIC_CONSTANT(bool, value = is_signed_imp<T>::type::value);
 #else
-   BOOST_STATIC_CONSTANT(bool, value = type::value);
+   NDNBOOST_STATIC_CONSTANT(bool, value = type::value);
 #endif
 };
 
@@ -102,7 +102,7 @@
 template <> struct is_signed_imp<const long> : public true_type{};
 template <> struct is_signed_imp<volatile long> : public true_type{};
 template <> struct is_signed_imp<const volatile long> : public true_type{};
-#ifdef BOOST_HAS_LONG_LONG
+#ifdef NDNBOOST_HAS_LONG_LONG
 template <> struct is_signed_imp<long long> : public true_type{};
 template <> struct is_signed_imp<const long long> : public true_type{};
 template <> struct is_signed_imp<volatile long long> : public true_type{};
@@ -128,13 +128,13 @@
 #endif // !defined( __CODEGEARC__ )
 
 #if defined( __CODEGEARC__ )
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_signed,T,__is_signed(T))
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_signed,T,__is_signed(T))
 #else
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_signed,T,::ndnboost::detail::is_signed_imp<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_signed,T,::ndnboost::detail::is_signed_imp<T>::value)
 #endif
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
+#endif // NDNBOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/is_stateless.hpp b/include/ndnboost/type_traits/is_stateless.hpp
index a9b18dc..27968dc 100644
--- a/include/ndnboost/type_traits/is_stateless.hpp
+++ b/include/ndnboost/type_traits/is_stateless.hpp
@@ -6,8 +6,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_IS_STATELESS_HPP_INCLUDED
-#define BOOST_TT_IS_STATELESS_HPP_INCLUDED
+#ifndef NDNBOOST_TT_IS_STATELESS_HPP_INCLUDED
+#define NDNBOOST_TT_IS_STATELESS_HPP_INCLUDED
 
 #include <ndnboost/type_traits/has_trivial_constructor.hpp>
 #include <ndnboost/type_traits/has_trivial_copy.hpp>
@@ -27,7 +27,7 @@
 template <typename T>
 struct is_stateless_impl
 {
-  BOOST_STATIC_CONSTANT(bool, value = 
+  NDNBOOST_STATIC_CONSTANT(bool, value = 
     (::ndnboost::type_traits::ice_and<
        ::ndnboost::has_trivial_constructor<T>::value,
        ::ndnboost::has_trivial_copy<T>::value,
@@ -39,10 +39,10 @@
 
 } // namespace detail
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_stateless,T,::ndnboost::detail::is_stateless_impl<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_stateless,T,::ndnboost::detail::is_stateless_impl<T>::value)
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TT_IS_STATELESS_HPP_INCLUDED
+#endif // NDNBOOST_TT_IS_STATELESS_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/is_union.hpp b/include/ndnboost/type_traits/is_union.hpp
index 7be09d9..14b4bd7 100644
--- a/include/ndnboost/type_traits/is_union.hpp
+++ b/include/ndnboost/type_traits/is_union.hpp
@@ -8,8 +8,8 @@
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
 
-#ifndef BOOST_TT_IS_UNION_HPP_INCLUDED
-#define BOOST_TT_IS_UNION_HPP_INCLUDED
+#ifndef NDNBOOST_TT_IS_UNION_HPP_INCLUDED
+#define NDNBOOST_TT_IS_UNION_HPP_INCLUDED
 
 #include <ndnboost/type_traits/remove_cv.hpp>
 #include <ndnboost/type_traits/config.hpp>
@@ -25,10 +25,10 @@
 template <typename T> struct is_union_impl
 {
    typedef typename remove_cv<T>::type cvt;
-#ifdef BOOST_IS_UNION
-   BOOST_STATIC_CONSTANT(bool, value = BOOST_IS_UNION(cvt));
+#ifdef NDNBOOST_IS_UNION
+   NDNBOOST_STATIC_CONSTANT(bool, value = NDNBOOST_IS_UNION(cvt));
 #else
-   BOOST_STATIC_CONSTANT(bool, value = false);
+   NDNBOOST_STATIC_CONSTANT(bool, value = false);
 #endif
 };
 #else
@@ -39,19 +39,19 @@
 //
 template <typename T> struct is_union_impl
 {
-#ifdef BOOST_IS_UNION
-   BOOST_STATIC_CONSTANT(bool, value = BOOST_IS_UNION(T));
+#ifdef NDNBOOST_IS_UNION
+   NDNBOOST_STATIC_CONSTANT(bool, value = NDNBOOST_IS_UNION(T));
 #else
-   BOOST_STATIC_CONSTANT(bool, value = false);
+   NDNBOOST_STATIC_CONSTANT(bool, value = false);
 #endif
 };
 #endif
 } // namespace detail
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_union,T,::ndnboost::detail::is_union_impl<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_union,T,::ndnboost::detail::is_union_impl<T>::value)
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TT_IS_UNION_HPP_INCLUDED
+#endif // NDNBOOST_TT_IS_UNION_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/is_unsigned.hpp b/include/ndnboost/type_traits/is_unsigned.hpp
index 046984e..76baf11 100644
--- a/include/ndnboost/type_traits/is_unsigned.hpp
+++ b/include/ndnboost/type_traits/is_unsigned.hpp
@@ -7,8 +7,8 @@
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
 
-#ifndef BOOST_TT_IS_UNSIGNED_HPP_INCLUDED
-#define BOOST_TT_IS_UNSIGNED_HPP_INCLUDED
+#ifndef NDNBOOST_TT_IS_UNSIGNED_HPP_INCLUDED
+#define NDNBOOST_TT_IS_UNSIGNED_HPP_INCLUDED
 
 #include <ndnboost/type_traits/is_integral.hpp>
 #include <ndnboost/type_traits/is_enum.hpp>
@@ -24,13 +24,13 @@
 
 namespace detail{
 
-#if !(defined(__EDG_VERSION__) && __EDG_VERSION__ <= 238) && !defined(BOOST_NO_INCLASS_MEMBER_INITIALIZATION)
+#if !(defined(__EDG_VERSION__) && __EDG_VERSION__ <= 238) && !defined(NDNBOOST_NO_INCLASS_MEMBER_INITIALIZATION)
 
 template <class T>
 struct is_unsigned_values
 {
    //
-   // Note that we cannot use BOOST_STATIC_CONSTANT here, using enum's
+   // Note that we cannot use NDNBOOST_STATIC_CONSTANT here, using enum's
    // rather than "real" static constants simply doesn't work or give
    // the correct answer.
    //
@@ -42,7 +42,7 @@
 template <class T>
 struct is_ununsigned_helper
 {
-   BOOST_STATIC_CONSTANT(bool, value = (::ndnboost::detail::is_unsigned_values<T>::minus_one > ::ndnboost::detail::is_unsigned_values<T>::zero));
+   NDNBOOST_STATIC_CONSTANT(bool, value = (::ndnboost::detail::is_unsigned_values<T>::minus_one > ::ndnboost::detail::is_unsigned_values<T>::zero));
 };
 
 template <bool integral_type>
@@ -75,7 +75,7 @@
    > selector;
    typedef typename selector::template rebind<T> binder;
    typedef typename binder::type type;
-   BOOST_STATIC_CONSTANT(bool, value = type::value);
+   NDNBOOST_STATIC_CONSTANT(bool, value = type::value);
 };
 
 #else
@@ -97,7 +97,7 @@
 template <> struct is_unsigned_imp<const unsigned long> : public true_type{};
 template <> struct is_unsigned_imp<volatile unsigned long> : public true_type{};
 template <> struct is_unsigned_imp<const volatile unsigned long> : public true_type{};
-#ifdef BOOST_HAS_LONG_LONG
+#ifdef NDNBOOST_HAS_LONG_LONG
 template <> struct is_unsigned_imp<unsigned long long> : public true_type{};
 template <> struct is_unsigned_imp<const unsigned long long> : public true_type{};
 template <> struct is_unsigned_imp<volatile unsigned long long> : public true_type{};
@@ -109,7 +109,7 @@
 template <> struct is_unsigned_imp<volatile char> : public true_type{};
 template <> struct is_unsigned_imp<const volatile char> : public true_type{};
 #endif
-#if defined(WCHAR_MIN) && (WCHAR_MIN == 0) && !defined(BOOST_NO_INTRINSIC_WCHAR_T)
+#if defined(WCHAR_MIN) && (WCHAR_MIN == 0) && !defined(NDNBOOST_NO_INTRINSIC_WCHAR_T)
 template <> struct is_unsigned_imp<wchar_t> : public true_type{};
 template <> struct is_unsigned_imp<const wchar_t> : public true_type{};
 template <> struct is_unsigned_imp<volatile wchar_t> : public true_type{};
@@ -123,13 +123,13 @@
 #endif // !defined( __CODEGEARC__ )
 
 #if defined( __CODEGEARC__ )
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_unsigned,T,__is_unsigned(T))
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_unsigned,T,__is_unsigned(T))
 #else
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_unsigned,T,::ndnboost::detail::is_unsigned_imp<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_unsigned,T,::ndnboost::detail::is_unsigned_imp<T>::value)
 #endif
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
+#endif // NDNBOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/is_virtual_base_of.hpp b/include/ndnboost/type_traits/is_virtual_base_of.hpp
index 50e8a5b..21c3f25 100644
--- a/include/ndnboost/type_traits/is_virtual_base_of.hpp
+++ b/include/ndnboost/type_traits/is_virtual_base_of.hpp
@@ -5,8 +5,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
  
-#ifndef BOOST_TT_IS_VIRTUAL_BASE_OF_HPP_INCLUDED
-#define BOOST_TT_IS_VIRTUAL_BASE_OF_HPP_INCLUDED
+#ifndef NDNBOOST_TT_IS_VIRTUAL_BASE_OF_HPP_INCLUDED
+#define NDNBOOST_TT_IS_VIRTUAL_BASE_OF_HPP_INCLUDED
 
 #include <ndnboost/type_traits/is_base_of.hpp>
 #include <ndnboost/type_traits/is_same.hpp>
@@ -20,7 +20,7 @@
 namespace detail {
 
 
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
 #pragma warning( push )
 #pragma warning( disable : 4584 4250)
 #elif defined(__GNUC__) && (__GNUC__ >= 4)
@@ -30,7 +30,7 @@
 template<typename Base, typename Derived, typename tag>
 struct is_virtual_base_of_impl
 {
-    BOOST_STATIC_CONSTANT(bool, value = false);
+    NDNBOOST_STATIC_CONSTANT(bool, value = false);
 };
 
 template<typename Base, typename Derived>
@@ -67,7 +67,7 @@
        ~boost_type_traits_internal_struct_Y()throw();
     };
 #endif
-    BOOST_STATIC_CONSTANT(bool, value = (sizeof(boost_type_traits_internal_struct_X)==sizeof(boost_type_traits_internal_struct_Y)));
+    NDNBOOST_STATIC_CONSTANT(bool, value = (sizeof(boost_type_traits_internal_struct_X)==sizeof(boost_type_traits_internal_struct_Y)));
 };
 
 template<typename Base, typename Derived>
@@ -75,26 +75,26 @@
 {
    typedef typename mpl::and_<is_base_of<Base, Derived>, mpl::not_<is_same<Base, Derived> > >::type tag_type;
    typedef is_virtual_base_of_impl<Base, Derived, tag_type> imp;
-   BOOST_STATIC_CONSTANT(bool, value = imp::value);
+   NDNBOOST_STATIC_CONSTANT(bool, value = imp::value);
 };
 
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
 #pragma warning( pop )
 #endif
 
 } // namespace detail
 
-BOOST_TT_AUX_BOOL_TRAIT_DEF2(
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF2(
       is_virtual_base_of
        , Base
        , Derived
        , (::ndnboost::detail::is_virtual_base_of_impl2<Base,Derived>::value) 
 )
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(typename Base,typename Derived,is_virtual_base_of,Base&,Derived,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(typename Base,typename Derived,is_virtual_base_of,Base,Derived&,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(typename Base,typename Derived,is_virtual_base_of,Base&,Derived&,false)
+#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(typename Base,typename Derived,is_virtual_base_of,Base&,Derived,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(typename Base,typename Derived,is_virtual_base_of,Base,Derived&,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(typename Base,typename Derived,is_virtual_base_of,Base&,Derived&,false)
 #endif
 
 } // namespace ndnboost
diff --git a/include/ndnboost/type_traits/is_void.hpp b/include/ndnboost/type_traits/is_void.hpp
index 3b19b2d..95c6c3b 100644
--- a/include/ndnboost/type_traits/is_void.hpp
+++ b/include/ndnboost/type_traits/is_void.hpp
@@ -6,8 +6,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_IS_VOID_HPP_INCLUDED
-#define BOOST_TT_IS_VOID_HPP_INCLUDED
+#ifndef NDNBOOST_TT_IS_VOID_HPP_INCLUDED
+#define NDNBOOST_TT_IS_VOID_HPP_INCLUDED
 
 #include <ndnboost/config.hpp>
 
@@ -18,15 +18,15 @@
 
 //* is a type T void - is_void<T>
 #if defined( __CODEGEARC__ )
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_void,T,__is_void(T))
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_void,T,__is_void(T))
 #else
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_void,T,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_void,void,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_void,T,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_void,void,true)
 
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_void,void const,true)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_void,void volatile,true)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_void,void const volatile,true)
+#ifndef NDNBOOST_NO_CV_VOID_SPECIALIZATIONS
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_void,void const,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_void,void volatile,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_void,void const volatile,true)
 #endif
 
 #endif  // non-CodeGear implementation
@@ -35,4 +35,4 @@
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TT_IS_VOID_HPP_INCLUDED
+#endif // NDNBOOST_TT_IS_VOID_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/is_volatile.hpp b/include/ndnboost/type_traits/is_volatile.hpp
index 07af0b4..98a4e46 100644
--- a/include/ndnboost/type_traits/is_volatile.hpp
+++ b/include/ndnboost/type_traits/is_volatile.hpp
@@ -18,15 +18,15 @@
 //    by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html).
 
 
-#ifndef BOOST_TT_IS_VOLATILE_HPP_INCLUDED
-#define BOOST_TT_IS_VOLATILE_HPP_INCLUDED
+#ifndef NDNBOOST_TT_IS_VOLATILE_HPP_INCLUDED
+#define NDNBOOST_TT_IS_VOLATILE_HPP_INCLUDED
 
 #include <ndnboost/config.hpp>
 #include <ndnboost/detail/workaround.hpp>
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 #   include <ndnboost/type_traits/detail/cv_traits_impl.hpp>
-#   if BOOST_WORKAROUND(BOOST_MSVC, < 1400)
+#   if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1400)
 #       include <ndnboost/type_traits/remove_bounds.hpp>
 #   endif
 #else
@@ -45,13 +45,13 @@
 template <class T>
 struct is_volatile_rval_filter
 {
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1400)
-   BOOST_STATIC_CONSTANT(bool, value = ::ndnboost::detail::cv_traits_imp<typename ndnboost::remove_bounds<T>::type*>::is_volatile);
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1400)
+   NDNBOOST_STATIC_CONSTANT(bool, value = ::ndnboost::detail::cv_traits_imp<typename ndnboost::remove_bounds<T>::type*>::is_volatile);
 #else
-   BOOST_STATIC_CONSTANT(bool, value = ::ndnboost::detail::cv_traits_imp<T*>::is_volatile);
+   NDNBOOST_STATIC_CONSTANT(bool, value = ::ndnboost::detail::cv_traits_imp<T*>::is_volatile);
 #endif
 };
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
+#ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
 //
 // We can't filter out rvalue_references at the same level as
 // references or we get ambiguities from msvc:
@@ -59,27 +59,27 @@
 template <class T>
 struct is_volatile_rval_filter<T&&>
 {
-   BOOST_STATIC_CONSTANT(bool, value = false);
+   NDNBOOST_STATIC_CONSTANT(bool, value = false);
 };
 #endif
 }
 
 #if defined( __CODEGEARC__ )
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_volatile,T,__is_volatile(T))
-#elif !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_volatile,T,__is_volatile(T))
+#elif !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 //* is a type T declared volatile - is_volatile<T>
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_volatile,T,::ndnboost::detail::is_volatile_rval_filter<T>::value)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_volatile,T&,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_volatile,T,::ndnboost::detail::is_volatile_rval_filter<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_volatile,T&,false)
 
-#if  defined(BOOST_ILLEGAL_CV_REFERENCES)
+#if  defined(NDNBOOST_ILLEGAL_CV_REFERENCES)
 // these are illegal specialisations; cv-qualifies applied to
 // references have no effect according to [8.3.2p1],
 // C++ Builder requires them though as it treats cv-qualified
 // references as distinct types...
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_volatile,T& const,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_volatile,T& volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_volatile,T& const volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_volatile,T& const,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_volatile,T& volatile,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_volatile,T& const volatile,false)
 #endif
 
 #else
@@ -104,7 +104,7 @@
     template <typename T> struct result_
     {
         static T* t;
-        BOOST_STATIC_CONSTANT(bool, value = (
+        NDNBOOST_STATIC_CONSTANT(bool, value = (
             sizeof(ndnboost::detail::yes_type) == sizeof(ndnboost::detail::is_volatile_tester(t))
             ));
     };
@@ -116,7 +116,7 @@
     template <typename T> struct result_
     {
         static T t;
-        BOOST_STATIC_CONSTANT(bool, value = (
+        NDNBOOST_STATIC_CONSTANT(bool, value = (
             sizeof(ndnboost::detail::yes_type) == sizeof(ndnboost::detail::is_volatile_tester(&t))
             ));
     };
@@ -131,22 +131,22 @@
 {
 };
 
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_volatile,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_volatile,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_volatile,void volatile,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_volatile,void const volatile,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_volatile,void,false)
+#ifndef NDNBOOST_NO_CV_VOID_SPECIALIZATIONS
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_volatile,void const,false)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_volatile,void volatile,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_volatile,void const volatile,true)
 #endif
 
 } // namespace detail
 
 //* is a type T declared volatile - is_volatile<T>
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_volatile,T,::ndnboost::detail::is_volatile_impl<T>::value)
+NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_volatile,T,::ndnboost::detail::is_volatile_impl<T>::value)
 
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TT_IS_VOLATILE_HPP_INCLUDED
+#endif // NDNBOOST_TT_IS_VOLATILE_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/make_signed.hpp b/include/ndnboost/type_traits/make_signed.hpp
index b852dc3..8ed07f0 100644
--- a/include/ndnboost/type_traits/make_signed.hpp
+++ b/include/ndnboost/type_traits/make_signed.hpp
@@ -6,8 +6,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_MAKE_SIGNED_HPP_INCLUDED
-#define BOOST_TT_MAKE_SIGNED_HPP_INCLUDED
+#ifndef NDNBOOST_TT_MAKE_SIGNED_HPP_INCLUDED
+#define NDNBOOST_TT_MAKE_SIGNED_HPP_INCLUDED
 
 #include <ndnboost/mpl/if.hpp>
 #include <ndnboost/type_traits/is_integral.hpp>
@@ -35,10 +35,10 @@
 template <class T>
 struct make_signed_imp
 {
-   BOOST_STATIC_ASSERT(
+   NDNBOOST_STATIC_ASSERT(
       (::ndnboost::type_traits::ice_or< ::ndnboost::is_integral<T>::value, ::ndnboost::is_enum<T>::value>::value));
-#if !BOOST_WORKAROUND(BOOST_MSVC, <=1300)
-   BOOST_STATIC_ASSERT(
+#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <=1300)
+   NDNBOOST_STATIC_ASSERT(
       (::ndnboost::type_traits::ice_not< ::ndnboost::is_same<
          typename remove_cv<T>::type, bool>::value>::value));
 #endif
@@ -71,8 +71,8 @@
                   typename mpl::if_<
                      is_same<t_no_cv, unsigned long>,
                      long,
-#if defined(BOOST_HAS_LONG_LONG)
-#ifdef BOOST_HAS_INT128
+#if defined(NDNBOOST_HAS_LONG_LONG)
+#ifdef NDNBOOST_HAS_INT128
                      typename mpl::if_c<
                         sizeof(t_no_cv) == sizeof(ndnboost::long_long_type), 
                         ndnboost::long_long_type, 
@@ -81,7 +81,7 @@
 #else
                      ndnboost::long_long_type
 #endif
-#elif defined(BOOST_HAS_MS_INT64)
+#elif defined(NDNBOOST_HAS_MS_INT64)
                      __int64
 #else
                      long
@@ -103,8 +103,8 @@
                   typename mpl::if_c<
                      sizeof(t_no_cv) == sizeof(unsigned long),
                      long,
-#if defined(BOOST_HAS_LONG_LONG)
-#ifdef BOOST_HAS_INT128
+#if defined(NDNBOOST_HAS_LONG_LONG)
+#ifdef NDNBOOST_HAS_INT128
                      typename mpl::if_c<
                         sizeof(t_no_cv) == sizeof(ndnboost::long_long_type), 
                         ndnboost::long_long_type, 
@@ -113,7 +113,7 @@
 #else
                      ndnboost::long_long_type
 #endif
-#elif defined(BOOST_HAS_MS_INT64)
+#elif defined(NDNBOOST_HAS_MS_INT64)
                      __int64
 #else
                      long
@@ -143,11 +143,11 @@
 
 } // namespace detail
 
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(make_signed,T,typename ndnboost::detail::make_signed_imp<T>::type)
+NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(make_signed,T,typename ndnboost::detail::make_signed_imp<T>::type)
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/type_trait_undef.hpp>
 
-#endif // BOOST_TT_ADD_REFERENCE_HPP_INCLUDED
+#endif // NDNBOOST_TT_ADD_REFERENCE_HPP_INCLUDED
 
diff --git a/include/ndnboost/type_traits/make_unsigned.hpp b/include/ndnboost/type_traits/make_unsigned.hpp
index f7be5a8..34b1dca 100644
--- a/include/ndnboost/type_traits/make_unsigned.hpp
+++ b/include/ndnboost/type_traits/make_unsigned.hpp
@@ -6,8 +6,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_MAKE_UNSIGNED_HPP_INCLUDED
-#define BOOST_TT_MAKE_UNSIGNED_HPP_INCLUDED
+#ifndef NDNBOOST_TT_MAKE_UNSIGNED_HPP_INCLUDED
+#define NDNBOOST_TT_MAKE_UNSIGNED_HPP_INCLUDED
 
 #include <ndnboost/mpl/if.hpp>
 #include <ndnboost/type_traits/is_integral.hpp>
@@ -35,10 +35,10 @@
 template <class T>
 struct make_unsigned_imp
 {
-   BOOST_STATIC_ASSERT(
+   NDNBOOST_STATIC_ASSERT(
       (::ndnboost::type_traits::ice_or< ::ndnboost::is_integral<T>::value, ::ndnboost::is_enum<T>::value>::value));
-#if !BOOST_WORKAROUND(BOOST_MSVC, <=1300)
-   BOOST_STATIC_ASSERT(
+#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <=1300)
+   NDNBOOST_STATIC_ASSERT(
       (::ndnboost::type_traits::ice_not< ::ndnboost::is_same<
          typename remove_cv<T>::type, bool>::value>::value));
 #endif
@@ -71,8 +71,8 @@
                   typename mpl::if_<
                      is_same<t_no_cv, long>,
                      unsigned long,
-#if defined(BOOST_HAS_LONG_LONG)
-#ifdef BOOST_HAS_INT128
+#if defined(NDNBOOST_HAS_LONG_LONG)
+#ifdef NDNBOOST_HAS_INT128
                      typename mpl::if_c<
                         sizeof(t_no_cv) == sizeof(ndnboost::ulong_long_type), 
                         ndnboost::ulong_long_type, 
@@ -81,7 +81,7 @@
 #else
                      ndnboost::ulong_long_type
 #endif
-#elif defined(BOOST_HAS_MS_INT64)
+#elif defined(NDNBOOST_HAS_MS_INT64)
                      unsigned __int64
 #else
                      unsigned long
@@ -103,8 +103,8 @@
                   typename mpl::if_c<
                      sizeof(t_no_cv) == sizeof(unsigned long),
                      unsigned long,
-#if defined(BOOST_HAS_LONG_LONG)
-#ifdef BOOST_HAS_INT128
+#if defined(NDNBOOST_HAS_LONG_LONG)
+#ifdef NDNBOOST_HAS_INT128
                      typename mpl::if_c<
                         sizeof(t_no_cv) == sizeof(ndnboost::ulong_long_type), 
                         ndnboost::ulong_long_type, 
@@ -113,7 +113,7 @@
 #else
                      ndnboost::ulong_long_type
 #endif
-#elif defined(BOOST_HAS_MS_INT64)
+#elif defined(NDNBOOST_HAS_MS_INT64)
                      unsigned __int64
 #else
                      unsigned long
@@ -143,11 +143,11 @@
 
 } // namespace detail
 
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(make_unsigned,T,typename ndnboost::detail::make_unsigned_imp<T>::type)
+NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(make_unsigned,T,typename ndnboost::detail::make_unsigned_imp<T>::type)
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/type_trait_undef.hpp>
 
-#endif // BOOST_TT_ADD_REFERENCE_HPP_INCLUDED
+#endif // NDNBOOST_TT_ADD_REFERENCE_HPP_INCLUDED
 
diff --git a/include/ndnboost/type_traits/msvc/remove_all_extents.hpp b/include/ndnboost/type_traits/msvc/remove_all_extents.hpp
index cc9e8b8..b3a9c76 100644
--- a/include/ndnboost/type_traits/msvc/remove_all_extents.hpp
+++ b/include/ndnboost/type_traits/msvc/remove_all_extents.hpp
@@ -2,8 +2,8 @@
 // Use, modification and distribution is subject to the Boost Software
 // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_TYPE_TRAITS_MSVC_REMOVE_ALL_EXTENT_HOLT_2004_0827
-#define BOOST_TYPE_TRAITS_MSVC_REMOVE_ALL_EXTENT_HOLT_2004_0827
+#ifndef NDNBOOST_TYPE_TRAITS_MSVC_REMOVE_ALL_EXTENT_HOLT_2004_0827
+#define NDNBOOST_TYPE_TRAITS_MSVC_REMOVE_ALL_EXTENT_HOLT_2004_0827
 
 #include <ndnboost/type_traits/msvc/typeof.hpp>
 #include <ndnboost/type_traits/is_array.hpp>
@@ -27,7 +27,7 @@
                 template<typename U>
                 static msvc_register_type<U,ID> test(U[]);
                 static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( *((T*)NULL) ) ));
+                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( *((T*)NULL) ) ));
                 typedef typename msvc_extract_type<ID>::id2type::type reduced_type;
                 typedef typename remove_all_extents<reduced_type>::type type;
             };
@@ -39,9 +39,9 @@
         typedef typename ndnboost::detail::remove_all_extents_impl_typeof<
             ndnboost::is_array<T>::value                
         >::template inner<T,remove_all_extents<T> >::type type;
-        BOOST_MPL_AUX_LAMBDA_SUPPORT(1,remove_all_extents,T)
+        NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,remove_all_extents,T)
     };
 } //namespace ndnboost
 
-#endif //BOOST_TYPE_TRAITS_MSVC_REMOVE_BOUNDS_HOLT_2004_0827
+#endif //NDNBOOST_TYPE_TRAITS_MSVC_REMOVE_BOUNDS_HOLT_2004_0827
 
diff --git a/include/ndnboost/type_traits/msvc/remove_bounds.hpp b/include/ndnboost/type_traits/msvc/remove_bounds.hpp
index ab923bc..377e767 100644
--- a/include/ndnboost/type_traits/msvc/remove_bounds.hpp
+++ b/include/ndnboost/type_traits/msvc/remove_bounds.hpp
@@ -2,8 +2,8 @@
 // Use, modification and distribution is subject to the Boost Software
 // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_TYPE_TRAITS_MSVC_REMOVE_BOUNDS_HOLT_2004_0827
-#define BOOST_TYPE_TRAITS_MSVC_REMOVE_BOUNDS_HOLT_2004_0827
+#ifndef NDNBOOST_TYPE_TRAITS_MSVC_REMOVE_BOUNDS_HOLT_2004_0827
+#define NDNBOOST_TYPE_TRAITS_MSVC_REMOVE_BOUNDS_HOLT_2004_0827
 
 #include <ndnboost/type_traits/msvc/typeof.hpp>
 #include <ndnboost/type_traits/is_array.hpp>
@@ -24,7 +24,7 @@
                 template<typename U>
                 static msvc_register_type<U,ID> test(U[]);
                 static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( *((T*)NULL) ) ));
+                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( *((T*)NULL) ) ));
                 typedef typename msvc_extract_type<ID>::id2type::type type;
             };
         };
@@ -35,9 +35,9 @@
         typedef typename ndnboost::detail::remove_bounds_impl_typeof<
             ndnboost::is_array<T>::value                
         >::template inner<T,remove_bounds<T> >::type type;
-        BOOST_MPL_AUX_LAMBDA_SUPPORT(1,remove_bounds,T)
+        NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,remove_bounds,T)
     };
 } //namespace ndnboost
 
-#endif //BOOST_TYPE_TRAITS_MSVC_REMOVE_BOUNDS_HOLT_2004_0827
+#endif //NDNBOOST_TYPE_TRAITS_MSVC_REMOVE_BOUNDS_HOLT_2004_0827
 
diff --git a/include/ndnboost/type_traits/msvc/remove_const.hpp b/include/ndnboost/type_traits/msvc/remove_const.hpp
index 6e20040..8f3b9a4 100644
--- a/include/ndnboost/type_traits/msvc/remove_const.hpp
+++ b/include/ndnboost/type_traits/msvc/remove_const.hpp
@@ -2,8 +2,8 @@
 // Use, modification and distribution is subject to the Boost Software
 // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_TYPE_TRAITS_MSVC_REMOVE_CONST_HOLT_2004_0828
-#define BOOST_TYPE_TRAITS_MSVC_REMOVE_CONST_HOLT_2004_0828
+#ifndef NDNBOOST_TYPE_TRAITS_MSVC_REMOVE_CONST_HOLT_2004_0828
+#define NDNBOOST_TYPE_TRAITS_MSVC_REMOVE_CONST_HOLT_2004_0828
 
 #include <ndnboost/type_traits/msvc/typeof.hpp>
 #include <ndnboost/type_traits/is_volatile.hpp>
@@ -31,7 +31,7 @@
                 template<typename U>
                 static msvc_register_type<U,ID> test(U const&(*)());
                 static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (T(*)())(NULL) ) ));
+                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (T(*)())(NULL) ) ));
                 typedef typename msvc_extract_type<ID>::id2type::type type;
             };
             template<typename T>
@@ -46,7 +46,7 @@
                 template<typename U>
                 static msvc_register_type<U volatile,ID> test(U const volatile&(*)());
                 static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (T(*)())(NULL) ) ));
+                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (T(*)())(NULL) ) ));
                 typedef typename msvc_extract_type<ID>::id2type::type type;
             };
             template<typename T>
@@ -61,7 +61,7 @@
                 template<typename U>
                 static msvc_register_type<U,ID> test(void(*)(U const[]));
                 static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
+                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
                 typedef typename msvc_extract_type<ID>::id2type::type type;
             };
             template<typename T>
@@ -76,7 +76,7 @@
                 template<typename U>
                 static msvc_register_type<U volatile,ID> test(void(*)(U const volatile[]));
                 static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
+                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
                 typedef typename msvc_extract_type<ID>::id2type::type type;
             };
             template<typename T>
@@ -88,12 +88,12 @@
         struct remove_const_impl_typeof<false,true,true,false> {
             template<typename T,typename ID>
             struct inner {
-                BOOST_STATIC_CONSTANT(unsigned,value=(sizeof(T)/sizeof((*((T*)NULL))[0])));
+                NDNBOOST_STATIC_CONSTANT(unsigned,value=(sizeof(T)/sizeof((*((T*)NULL))[0])));
 
                 template<typename U>
                 static msvc_register_type<U[value],ID> test(void(*)(U const[]));
                 static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
+                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
                 typedef typename msvc_extract_type<ID>::id2type::type type;
             };
             template<typename T>
@@ -106,12 +106,12 @@
         struct remove_const_impl_typeof<false,true,true,true> {
             template<typename T,typename ID>
             struct inner {
-                BOOST_STATIC_CONSTANT(unsigned,value=(sizeof(T)/sizeof((*((T*)NULL))[0])));
+                NDNBOOST_STATIC_CONSTANT(unsigned,value=(sizeof(T)/sizeof((*((T*)NULL))[0])));
 
                 template<typename U>
                 static msvc_register_type<U volatile[value],ID> test(void(*)(U const volatile[]));
                 static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
+                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
                 typedef typename msvc_extract_type<ID>::id2type::type type;
             };
             template<typename T>
@@ -136,8 +136,8 @@
                 remove_const<T>
             >::type
         type;
-        BOOST_MPL_AUX_LAMBDA_SUPPORT(1,remove_const,T)
+        NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,remove_const,T)
     };
 }//namespace ndnboost
 
-#endif //BOOST_TYPE_TRAITS_MSVC_REMOVE_CONST_HOLT_2004_0828
+#endif //NDNBOOST_TYPE_TRAITS_MSVC_REMOVE_CONST_HOLT_2004_0828
diff --git a/include/ndnboost/type_traits/msvc/remove_cv.hpp b/include/ndnboost/type_traits/msvc/remove_cv.hpp
index ae16e9f..f3a0438 100644
--- a/include/ndnboost/type_traits/msvc/remove_cv.hpp
+++ b/include/ndnboost/type_traits/msvc/remove_cv.hpp
@@ -2,8 +2,8 @@
 // Use, modification and distribution is subject to the Boost Software
 // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_TYPE_TRAITS_MSVC_REMOVE_CV_HOLT_2004_0901
-#define BOOST_TYPE_TRAITS_MSVC_REMOVE_CV_HOLT_2004_0901
+#ifndef NDNBOOST_TYPE_TRAITS_MSVC_REMOVE_CV_HOLT_2004_0901
+#define NDNBOOST_TYPE_TRAITS_MSVC_REMOVE_CV_HOLT_2004_0901
 
 #include <ndnboost/type_traits/msvc/typeof.hpp>
 #include <ndnboost/type_traits/is_volatile.hpp>
@@ -31,7 +31,7 @@
                 template<typename U>
                 static msvc_register_type<U,ID> test(U volatile&(*)());
                 static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (T(*)())(NULL) ) ));
+                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (T(*)())(NULL) ) ));
                 typedef typename msvc_extract_type<ID>::id2type::type type;
             };
             template<typename T>
@@ -46,7 +46,7 @@
                 template<typename U>
                 static msvc_register_type<U,ID> test(U const&(*)());
                 static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (T(*)())(NULL) ) ));
+                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (T(*)())(NULL) ) ));
                 typedef typename msvc_extract_type<ID>::id2type::type type;
             };
             template<typename T>
@@ -61,7 +61,7 @@
                 template<typename U>
                 static msvc_register_type<U,ID> test(U const volatile&(*)());
                 static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (T(*)())(NULL) ) ));
+                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (T(*)())(NULL) ) ));
                 typedef typename msvc_extract_type<ID>::id2type::type type;
             };
             template<typename T>
@@ -76,7 +76,7 @@
                 template<typename U>
                 static msvc_register_type<U,ID> test(void(*)(U volatile[]));
                 static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
+                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
                 typedef typename msvc_extract_type<ID>::id2type::type type;
             };
             template<typename T>
@@ -91,7 +91,7 @@
                 template<typename U>
                 static msvc_register_type<U,ID> test(void(*)(U const[]));
                 static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
+                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
                 typedef typename msvc_extract_type<ID>::id2type::type type;
             };
             template<typename T>
@@ -106,7 +106,7 @@
                 template<typename U>
                 static msvc_register_type<U,ID> test(void(*)(U const volatile[]));
                 static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
+                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
                 typedef typename msvc_extract_type<ID>::id2type::type type;
             };
             template<typename T>
@@ -118,12 +118,12 @@
         struct remove_cv_impl_typeof<false,true,false,true> {
             template<typename T,typename ID>
             struct inner {
-                BOOST_STATIC_CONSTANT(unsigned,value=(sizeof(T)/sizeof((*((T*)NULL))[0])));
+                NDNBOOST_STATIC_CONSTANT(unsigned,value=(sizeof(T)/sizeof((*((T*)NULL))[0])));
 
                 template<typename U>
                 static msvc_register_type<U[value],ID> test(void(*)(U volatile[]));
                 static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
+                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
                 typedef typename msvc_extract_type<ID>::id2type::type type;
             };
             template<typename T>
@@ -135,12 +135,12 @@
         struct remove_cv_impl_typeof<false,true,true,false> {
             template<typename T,typename ID>
             struct inner {
-                BOOST_STATIC_CONSTANT(unsigned,value=(sizeof(T)/sizeof((*((T*)NULL))[0])));
+                NDNBOOST_STATIC_CONSTANT(unsigned,value=(sizeof(T)/sizeof((*((T*)NULL))[0])));
 
                 template<typename U>
                 static msvc_register_type<U[value],ID> test(void(*)(U const[]));
                 static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
+                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
                 typedef typename msvc_extract_type<ID>::id2type::type type;
             };
             template<typename T>
@@ -153,12 +153,12 @@
         struct remove_cv_impl_typeof<false,true,true,true> {
             template<typename T,typename ID>
             struct inner {
-                BOOST_STATIC_CONSTANT(unsigned,value=(sizeof(T)/sizeof((*((T*)NULL))[0])));
+                NDNBOOST_STATIC_CONSTANT(unsigned,value=(sizeof(T)/sizeof((*((T*)NULL))[0])));
 
                 template<typename U>
                 static msvc_register_type<U[value],ID> test(void(*)(U const volatile[]));
                 static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
+                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
                 typedef typename msvc_extract_type<ID>::id2type::type type;
             };
             template<typename T>
@@ -183,8 +183,8 @@
                 remove_cv<T>
             >::type
         type;
-        BOOST_MPL_AUX_LAMBDA_SUPPORT(1,remove_cv,T)
+        NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,remove_cv,T)
     };
 }//namespace ndnboost
 
-#endif //BOOST_TYPE_TRAITS_MSVC_REMOVE_CV_HOLT_2004_0901
+#endif //NDNBOOST_TYPE_TRAITS_MSVC_REMOVE_CV_HOLT_2004_0901
diff --git a/include/ndnboost/type_traits/msvc/remove_extent.hpp b/include/ndnboost/type_traits/msvc/remove_extent.hpp
index 54c36bc..a88f75d 100644
--- a/include/ndnboost/type_traits/msvc/remove_extent.hpp
+++ b/include/ndnboost/type_traits/msvc/remove_extent.hpp
@@ -2,8 +2,8 @@
 // Use, modification and distribution is subject to the Boost Software
 // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_TYPE_TRAITS_MSVC_REMOVE_EXTENT_HOLT_2004_0827
-#define BOOST_TYPE_TRAITS_MSVC_REMOVE_EXTENT_HOLT_2004_0827
+#ifndef NDNBOOST_TYPE_TRAITS_MSVC_REMOVE_EXTENT_HOLT_2004_0827
+#define NDNBOOST_TYPE_TRAITS_MSVC_REMOVE_EXTENT_HOLT_2004_0827
 
 #include <ndnboost/type_traits/msvc/typeof.hpp>
 #include <ndnboost/type_traits/is_array.hpp>
@@ -24,7 +24,7 @@
                 template<typename U>
                 static msvc_register_type<U,ID> test(U[]);
                 static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( *((T*)NULL) ) ));
+                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( *((T*)NULL) ) ));
                 typedef typename msvc_extract_type<ID>::id2type::type type;
             };
         };
@@ -35,9 +35,9 @@
         typedef typename ndnboost::detail::remove_extent_impl_typeof<
             ndnboost::is_array<T>::value                
         >::template inner<T,remove_extent<T> >::type type;
-        BOOST_MPL_AUX_LAMBDA_SUPPORT(1,remove_extent,T)
+        NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,remove_extent,T)
     };
 } //namespace ndnboost
 
-#endif //BOOST_TYPE_TRAITS_MSVC_REMOVE_BOUNDS_HOLT_2004_0827
+#endif //NDNBOOST_TYPE_TRAITS_MSVC_REMOVE_BOUNDS_HOLT_2004_0827
 
diff --git a/include/ndnboost/type_traits/msvc/remove_pointer.hpp b/include/ndnboost/type_traits/msvc/remove_pointer.hpp
index 694bef8..4311bcc 100644
--- a/include/ndnboost/type_traits/msvc/remove_pointer.hpp
+++ b/include/ndnboost/type_traits/msvc/remove_pointer.hpp
@@ -2,8 +2,8 @@
 // Use, modification and distribution is subject to the Boost Software
 // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_TYPE_TRAITS_MSVC_REMOVE_POINTER_HOLT_2004_0827
-#define BOOST_TYPE_TRAITS_MSVC_REMOVE_POINTER_HOLT_2004_0827
+#ifndef NDNBOOST_TYPE_TRAITS_MSVC_REMOVE_POINTER_HOLT_2004_0827
+#define NDNBOOST_TYPE_TRAITS_MSVC_REMOVE_POINTER_HOLT_2004_0827
 
 #include <ndnboost/type_traits/msvc/typeof.hpp>
 #include <ndnboost/type_traits/is_pointer.hpp>
@@ -24,7 +24,7 @@
                 template<typename U>
                 static msvc_register_type<U,ID> test(U*);
                 static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( *((T*)NULL) ) ));
+                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( *((T*)NULL) ) ));
                 typedef typename msvc_extract_type<ID>::id2type::type type;
             };
         };
@@ -35,8 +35,8 @@
         typedef typename ndnboost::detail::remove_pointer_impl_typeof<
             ndnboost::is_pointer<T>::value
         >::template inner<T,remove_pointer<T> >::type type;
-        BOOST_MPL_AUX_LAMBDA_SUPPORT(1,remove_pointer,T)
+        NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,remove_pointer,T)
     };
 } //namespace ndnboost
 
-#endif //BOOST_TYPE_TRAITS_REMOVE_POINTER_HOLT_2004_0827
+#endif //NDNBOOST_TYPE_TRAITS_REMOVE_POINTER_HOLT_2004_0827
diff --git a/include/ndnboost/type_traits/msvc/remove_reference.hpp b/include/ndnboost/type_traits/msvc/remove_reference.hpp
index 7d8ef67..a833456 100644
--- a/include/ndnboost/type_traits/msvc/remove_reference.hpp
+++ b/include/ndnboost/type_traits/msvc/remove_reference.hpp
@@ -2,8 +2,8 @@
 // Use, modification and distribution is subject to the Boost Software
 // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_TYPE_TRAITS_MSVC_REMOVE_REFERENCE_HOLT_2004_0827
-#define BOOST_TYPE_TRAITS_MSVC_REMOVE_REFERENCE_HOLT_2004_0827
+#ifndef NDNBOOST_TYPE_TRAITS_MSVC_REMOVE_REFERENCE_HOLT_2004_0827
+#define NDNBOOST_TYPE_TRAITS_MSVC_REMOVE_REFERENCE_HOLT_2004_0827
 
 #include <ndnboost/type_traits/msvc/typeof.hpp>
 #include <ndnboost/type_traits/is_reference.hpp>
@@ -24,7 +24,7 @@
                 template<typename U>
                 static msvc_register_type<U,ID> test(U&(*)());
                 static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (T(*)())(NULL) ) ));
+                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (T(*)())(NULL) ) ));
                 typedef typename msvc_extract_type<ID>::id2type::type type;
             };
         };
@@ -35,8 +35,8 @@
         typedef typename ndnboost::detail::remove_reference_impl_typeof<
             ndnboost::is_reference<T>::value
         >::template inner<T,remove_reference<T> >::type type;
-        BOOST_MPL_AUX_LAMBDA_SUPPORT(1,remove_reference,T)
+        NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,remove_reference,T)
     };
 } //namespace ndnboost
 
-#endif //BOOST_TYPE_TRAITS_MSVC_REMOVE_REFERENCE_HOLT_2004_0827
+#endif //NDNBOOST_TYPE_TRAITS_MSVC_REMOVE_REFERENCE_HOLT_2004_0827
diff --git a/include/ndnboost/type_traits/msvc/remove_volatile.hpp b/include/ndnboost/type_traits/msvc/remove_volatile.hpp
index b787bec..00e1497 100644
--- a/include/ndnboost/type_traits/msvc/remove_volatile.hpp
+++ b/include/ndnboost/type_traits/msvc/remove_volatile.hpp
@@ -2,8 +2,8 @@
 // Use, modification and distribution is subject to the Boost Software
 // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_TYPE_TRAITS_MSVC_REMOVE_VOLATILE_HOLT_2004_0828
-#define BOOST_TYPE_TRAITS_MSVC_REMOVE_VOLATILE_HOLT_2004_0828
+#ifndef NDNBOOST_TYPE_TRAITS_MSVC_REMOVE_VOLATILE_HOLT_2004_0828
+#define NDNBOOST_TYPE_TRAITS_MSVC_REMOVE_VOLATILE_HOLT_2004_0828
 
 #include <ndnboost/type_traits/msvc/typeof.hpp>
 #include <ndnboost/type_traits/is_volatile.hpp>
@@ -31,7 +31,7 @@
                 template<typename U>
                 static msvc_register_type<U,ID> test(U volatile&(*)());
                 static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (T(*)())(NULL) ) ));
+                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (T(*)())(NULL) ) ));
                 typedef typename msvc_extract_type<ID>::id2type::type type;
             };            
             template<typename T>
@@ -46,7 +46,7 @@
                 template<typename U>
                 static msvc_register_type<U const,ID> test(U const volatile&(*)());
                 static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (T(*)())(NULL) ) ));
+                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (T(*)())(NULL) ) ));
                 typedef typename msvc_extract_type<ID>::id2type::type type;
             };
             template<typename T>
@@ -61,7 +61,7 @@
                 template<typename U>
                 static msvc_register_type<U,ID> test(void(*)(U volatile[]));
                 static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
+                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
                 typedef typename msvc_extract_type<ID>::id2type::type type;
             };
             template<typename T>
@@ -76,7 +76,7 @@
                 template<typename U>
                 static msvc_register_type<U const,ID> test(void(*)(U const volatile[]));
                 static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
+                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
                 typedef typename msvc_extract_type<ID>::id2type::type type;
             };
             template<typename T>
@@ -88,12 +88,12 @@
         struct remove_volatile_impl_typeof<false,true,false,true> {
             template<typename T,typename ID>
             struct inner {
-                BOOST_STATIC_CONSTANT(unsigned,value=(sizeof(T)/sizeof((*((T*)NULL))[0])));
+                NDNBOOST_STATIC_CONSTANT(unsigned,value=(sizeof(T)/sizeof((*((T*)NULL))[0])));
 
                 template<typename U>
                 static msvc_register_type<U[value],ID> test(void(*)(U volatile[]));
                 static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
+                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
                 typedef typename msvc_extract_type<ID>::id2type::type type;                
             };
             template<typename T>
@@ -106,12 +106,12 @@
         struct remove_volatile_impl_typeof<false,true,true,true> {
             template<typename T,typename ID>
             struct inner {
-                BOOST_STATIC_CONSTANT(unsigned,value=(sizeof(T)/sizeof((*((T*)NULL))[0])));
+                NDNBOOST_STATIC_CONSTANT(unsigned,value=(sizeof(T)/sizeof((*((T*)NULL))[0])));
 
                 template<typename U>
                 static msvc_register_type<U const[value],ID> test(void(*)(U const volatile[]));
                 static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
+                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
                 typedef typename msvc_extract_type<ID>::id2type::type type;
             };
             template<typename T>
@@ -136,8 +136,8 @@
                 remove_volatile<T>
             >::type
         type;
-        BOOST_MPL_AUX_LAMBDA_SUPPORT(1,remove_volatile,T)
+        NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,remove_volatile,T)
     };
 }//namespace ndnboost
 
-#endif //BOOST_TYPE_TRAITS_MSVC_REMOVE_VOLATILE_HOLT_2004_0828
+#endif //NDNBOOST_TYPE_TRAITS_MSVC_REMOVE_VOLATILE_HOLT_2004_0828
diff --git a/include/ndnboost/type_traits/msvc/typeof.hpp b/include/ndnboost/type_traits/msvc/typeof.hpp
index dabc975..c25dade 100644
--- a/include/ndnboost/type_traits/msvc/typeof.hpp
+++ b/include/ndnboost/type_traits/msvc/typeof.hpp
@@ -2,14 +2,14 @@
 // Use, modification and distribution is subject to the Boost Software
 // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_TYPETRAITS_MSVC_TYPEOF_HPP
-#define BOOST_TYPETRAITS_MSVC_TYPEOF_HPP
+#ifndef NDNBOOST_TYPETRAITS_MSVC_TYPEOF_HPP
+#define NDNBOOST_TYPETRAITS_MSVC_TYPEOF_HPP
 
 #include <ndnboost/config.hpp>
 #include <ndnboost/detail/workaround.hpp>
 
 namespace ndnboost { namespace detail {
-# if BOOST_WORKAROUND(BOOST_MSVC,==1300)
+# if NDNBOOST_WORKAROUND(NDNBOOST_MSVC,==1300)
         template<typename ID>
         struct msvc_extract_type
         {
@@ -47,4 +47,4 @@
 # endif
 }}
 
-#endif //BOOST_TYPETRAITS_MSVC_TYPEOF_IMPL_HPP
+#endif //NDNBOOST_TYPETRAITS_MSVC_TYPEOF_IMPL_HPP
diff --git a/include/ndnboost/type_traits/object_traits.hpp b/include/ndnboost/type_traits/object_traits.hpp
index a13a998..ffc9aee 100644
--- a/include/ndnboost/type_traits/object_traits.hpp
+++ b/include/ndnboost/type_traits/object_traits.hpp
@@ -11,8 +11,8 @@
 //  has_trivial_destructor, is_empty.
 //
 
-#ifndef BOOST_TT_OBJECT_TRAITS_HPP_INLCUDED
-#define BOOST_TT_OBJECT_TRAITS_HPP_INLCUDED
+#ifndef NDNBOOST_TT_OBJECT_TRAITS_HPP_INLCUDED
+#define NDNBOOST_TT_OBJECT_TRAITS_HPP_INLCUDED
 
 #include <ndnboost/type_traits/has_trivial_assign.hpp>
 #include <ndnboost/type_traits/has_trivial_constructor.hpp>
@@ -30,4 +30,4 @@
 #include <ndnboost/type_traits/is_scalar.hpp>
 #include <ndnboost/type_traits/is_stateless.hpp>
 
-#endif // BOOST_TT_OBJECT_TRAITS_HPP_INLCUDED
+#endif // NDNBOOST_TT_OBJECT_TRAITS_HPP_INLCUDED
diff --git a/include/ndnboost/type_traits/promote.hpp b/include/ndnboost/type_traits/promote.hpp
index 06065f6..54d491f 100644
--- a/include/ndnboost/type_traits/promote.hpp
+++ b/include/ndnboost/type_traits/promote.hpp
@@ -20,17 +20,17 @@
 template<class T>
 struct promote_impl
   : public integral_promotion<
-        BOOST_DEDUCED_TYPENAME floating_point_promotion<T>::type
+        NDNBOOST_DEDUCED_TYPENAME floating_point_promotion<T>::type
       >
 {
 };
 
 }
 
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(
+NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(
       promote
     , T
-    , BOOST_DEDUCED_TYPENAME ndnboost::detail::promote_impl<T>::type
+    , NDNBOOST_DEDUCED_TYPENAME ndnboost::detail::promote_impl<T>::type
     )
 }
 
diff --git a/include/ndnboost/type_traits/rank.hpp b/include/ndnboost/type_traits/rank.hpp
index 495b91b..2a4f62f 100644
--- a/include/ndnboost/type_traits/rank.hpp
+++ b/include/ndnboost/type_traits/rank.hpp
@@ -7,8 +7,8 @@
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
 
-#ifndef BOOST_TT_RANK_HPP_INCLUDED
-#define BOOST_TT_RANK_HPP_INCLUDED
+#ifndef NDNBOOST_TT_RANK_HPP_INCLUDED
+#define NDNBOOST_TT_RANK_HPP_INCLUDED
 
 // should be the last #include
 #include <ndnboost/type_traits/detail/size_t_trait_def.hpp>
@@ -22,53 +22,53 @@
 template <class T, std::size_t N>
 struct rank_imp
 {
-   BOOST_STATIC_CONSTANT(std::size_t, value = N);
+   NDNBOOST_STATIC_CONSTANT(std::size_t, value = N);
 };
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(NDNBOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
 template <class T, std::size_t R, std::size_t N>
 struct rank_imp<T[R], N>
 {
-   BOOST_STATIC_CONSTANT(std::size_t, value = (::ndnboost::detail::rank_imp<T, N+1>::value));
+   NDNBOOST_STATIC_CONSTANT(std::size_t, value = (::ndnboost::detail::rank_imp<T, N+1>::value));
 };
 
 template <class T, std::size_t R, std::size_t N>
 struct rank_imp<T const[R], N>
 {
-   BOOST_STATIC_CONSTANT(std::size_t, value = (::ndnboost::detail::rank_imp<T, N+1>::value));
+   NDNBOOST_STATIC_CONSTANT(std::size_t, value = (::ndnboost::detail::rank_imp<T, N+1>::value));
 };
 
 template <class T, std::size_t R, std::size_t N>
 struct rank_imp<T volatile[R], N>
 {
-   BOOST_STATIC_CONSTANT(std::size_t, value = (::ndnboost::detail::rank_imp<T, N+1>::value));
+   NDNBOOST_STATIC_CONSTANT(std::size_t, value = (::ndnboost::detail::rank_imp<T, N+1>::value));
 };
 
 template <class T, std::size_t R, std::size_t N>
 struct rank_imp<T const volatile[R], N>
 {
-   BOOST_STATIC_CONSTANT(std::size_t, value = (::ndnboost::detail::rank_imp<T, N+1>::value));
+   NDNBOOST_STATIC_CONSTANT(std::size_t, value = (::ndnboost::detail::rank_imp<T, N+1>::value));
 };
 
-#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(__IBMCPP__) &&  !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
+#if !NDNBOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(__IBMCPP__) &&  !NDNBOOST_WORKAROUND(__DMC__, NDNBOOST_TESTED_AT(0x840))
 template <class T, std::size_t N>
 struct rank_imp<T[], N>
 {
-   BOOST_STATIC_CONSTANT(std::size_t, value = (::ndnboost::detail::rank_imp<T, N+1>::value));
+   NDNBOOST_STATIC_CONSTANT(std::size_t, value = (::ndnboost::detail::rank_imp<T, N+1>::value));
 };
 template <class T, std::size_t N>
 struct rank_imp<T const[], N>
 {
-   BOOST_STATIC_CONSTANT(std::size_t, value = (::ndnboost::detail::rank_imp<T, N+1>::value));
+   NDNBOOST_STATIC_CONSTANT(std::size_t, value = (::ndnboost::detail::rank_imp<T, N+1>::value));
 };
 template <class T, std::size_t N>
 struct rank_imp<T volatile[], N>
 {
-   BOOST_STATIC_CONSTANT(std::size_t, value = (::ndnboost::detail::rank_imp<T, N+1>::value));
+   NDNBOOST_STATIC_CONSTANT(std::size_t, value = (::ndnboost::detail::rank_imp<T, N+1>::value));
 };
 template <class T, std::size_t N>
 struct rank_imp<T const volatile[], N>
 {
-   BOOST_STATIC_CONSTANT(std::size_t, value = (::ndnboost::detail::rank_imp<T, N+1>::value));
+   NDNBOOST_STATIC_CONSTANT(std::size_t, value = (::ndnboost::detail::rank_imp<T, N+1>::value));
 };
 #endif
 #endif
@@ -77,13 +77,13 @@
 #endif // !defined( __CODEGEARC__ )
 
 #if defined( __CODEGEARC__ )
-BOOST_TT_AUX_SIZE_T_TRAIT_DEF1(rank,T,__array_rank(T))
+NDNBOOST_TT_AUX_SIZE_T_TRAIT_DEF1(rank,T,__array_rank(T))
 #else
-BOOST_TT_AUX_SIZE_T_TRAIT_DEF1(rank,T,(::ndnboost::detail::rank_imp<T,0>::value))
+NDNBOOST_TT_AUX_SIZE_T_TRAIT_DEF1(rank,T,(::ndnboost::detail::rank_imp<T,0>::value))
 #endif
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/size_t_trait_undef.hpp>
 
-#endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
+#endif // NDNBOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/remove_all_extents.hpp b/include/ndnboost/type_traits/remove_all_extents.hpp
index 7436774..675aaaf 100644
--- a/include/ndnboost/type_traits/remove_all_extents.hpp
+++ b/include/ndnboost/type_traits/remove_all_extents.hpp
@@ -6,36 +6,36 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_REMOVE_ALL_EXTENTS_HPP_INCLUDED
-#define BOOST_TT_REMOVE_ALL_EXTENTS_HPP_INCLUDED
+#ifndef NDNBOOST_TT_REMOVE_ALL_EXTENTS_HPP_INCLUDED
+#define NDNBOOST_TT_REMOVE_ALL_EXTENTS_HPP_INCLUDED
 
 #include <ndnboost/config.hpp>
 #include <cstddef>
 #include <ndnboost/detail/workaround.hpp>
 
-#if BOOST_WORKAROUND(BOOST_MSVC,<=1300)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC,<=1300)
 #include <ndnboost/type_traits/msvc/remove_all_extents.hpp>
 #endif
 
 // should be the last #include
 #include <ndnboost/type_traits/detail/type_trait_def.hpp>
 
-#if !BOOST_WORKAROUND(BOOST_MSVC,<=1300)
+#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC,<=1300)
 
 namespace ndnboost {
 
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_all_extents,T,T)
+NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_all_extents,T,T)
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_all_extents,T[N],typename ndnboost::remove_all_extents<T>::type type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_all_extents,T const[N],typename ndnboost::remove_all_extents<T const>::type type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_all_extents,T volatile[N],typename ndnboost::remove_all_extents<T volatile>::type type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_all_extents,T const volatile[N],typename ndnboost::remove_all_extents<T const volatile>::type type)
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) && !defined(__IBMCPP__) &&  !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_all_extents,T[],typename ndnboost::remove_all_extents<T>::type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_all_extents,T const[],typename ndnboost::remove_all_extents<T const>::type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_all_extents,T volatile[],typename ndnboost::remove_all_extents<T volatile>::type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_all_extents,T const volatile[],typename ndnboost::remove_all_extents<T const volatile>::type)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(NDNBOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_all_extents,T[N],typename ndnboost::remove_all_extents<T>::type type)
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_all_extents,T const[N],typename ndnboost::remove_all_extents<T const>::type type)
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_all_extents,T volatile[N],typename ndnboost::remove_all_extents<T volatile>::type type)
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_all_extents,T const volatile[N],typename ndnboost::remove_all_extents<T const volatile>::type type)
+#if !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x610)) && !defined(__IBMCPP__) &&  !NDNBOOST_WORKAROUND(__DMC__, NDNBOOST_TESTED_AT(0x840))
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_all_extents,T[],typename ndnboost::remove_all_extents<T>::type)
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_all_extents,T const[],typename ndnboost::remove_all_extents<T const>::type)
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_all_extents,T volatile[],typename ndnboost::remove_all_extents<T volatile>::type)
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_all_extents,T const volatile[],typename ndnboost::remove_all_extents<T const volatile>::type)
 #endif
 #endif
 
@@ -45,4 +45,4 @@
 
 #include <ndnboost/type_traits/detail/type_trait_undef.hpp>
 
-#endif // BOOST_TT_REMOVE_BOUNDS_HPP_INCLUDED
+#endif // NDNBOOST_TT_REMOVE_BOUNDS_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/remove_bounds.hpp b/include/ndnboost/type_traits/remove_bounds.hpp
index 11372da..fa09715 100644
--- a/include/ndnboost/type_traits/remove_bounds.hpp
+++ b/include/ndnboost/type_traits/remove_bounds.hpp
@@ -6,36 +6,36 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_REMOVE_BOUNDS_HPP_INCLUDED
-#define BOOST_TT_REMOVE_BOUNDS_HPP_INCLUDED
+#ifndef NDNBOOST_TT_REMOVE_BOUNDS_HPP_INCLUDED
+#define NDNBOOST_TT_REMOVE_BOUNDS_HPP_INCLUDED
 
 #include <ndnboost/config.hpp>
 #include <cstddef>
 #include <ndnboost/detail/workaround.hpp>
 
-#if BOOST_WORKAROUND(BOOST_MSVC,<=1300)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC,<=1300)
 #include <ndnboost/type_traits/msvc/remove_bounds.hpp>
 #endif
 
 // should be the last #include
 #include <ndnboost/type_traits/detail/type_trait_def.hpp>
 
-#if !BOOST_WORKAROUND(BOOST_MSVC,<=1300)
+#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC,<=1300)
 
 namespace ndnboost {
 
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_bounds,T,T)
+NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_bounds,T,T)
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_bounds,T[N],T type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_bounds,T const[N],T const type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_bounds,T volatile[N],T volatile type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_bounds,T const volatile[N],T const volatile type)
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) && !defined(__IBMCPP__) &&  !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_bounds,T[],T)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_bounds,T const[],T const)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_bounds,T volatile[],T volatile)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_bounds,T const volatile[],T const volatile)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(NDNBOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_bounds,T[N],T type)
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_bounds,T const[N],T const type)
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_bounds,T volatile[N],T volatile type)
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_bounds,T const volatile[N],T const volatile type)
+#if !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x610)) && !defined(__IBMCPP__) &&  !NDNBOOST_WORKAROUND(__DMC__, NDNBOOST_TESTED_AT(0x840))
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_bounds,T[],T)
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_bounds,T const[],T const)
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_bounds,T volatile[],T volatile)
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_bounds,T const volatile[],T const volatile)
 #endif
 #endif
 
@@ -45,4 +45,4 @@
 
 #include <ndnboost/type_traits/detail/type_trait_undef.hpp>
 
-#endif // BOOST_TT_REMOVE_BOUNDS_HPP_INCLUDED
+#endif // NDNBOOST_TT_REMOVE_BOUNDS_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/remove_const.hpp b/include/ndnboost/type_traits/remove_const.hpp
index b9b31dd..5a31613 100644
--- a/include/ndnboost/type_traits/remove_const.hpp
+++ b/include/ndnboost/type_traits/remove_const.hpp
@@ -8,8 +8,8 @@
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
 
-#ifndef BOOST_TT_REMOVE_CONST_HPP_INCLUDED
-#define BOOST_TT_REMOVE_CONST_HPP_INCLUDED
+#ifndef NDNBOOST_TT_REMOVE_CONST_HPP_INCLUDED
+#define NDNBOOST_TT_REMOVE_CONST_HPP_INCLUDED
 
 #include <ndnboost/type_traits/is_volatile.hpp>
 #include <ndnboost/type_traits/broken_compiler_spec.hpp>
@@ -19,7 +19,7 @@
 
 #include <cstddef>
 
-#if BOOST_WORKAROUND(BOOST_MSVC,<=1300)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC,<=1300)
 #include <ndnboost/type_traits/msvc/remove_const.hpp>
 #endif
 
@@ -28,7 +28,7 @@
 
 namespace ndnboost {
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 namespace detail {
 
@@ -54,7 +54,7 @@
         >::type type;
 };
 
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
+#ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
 //
 // We can't filter out rvalue_references at the same level as
 // references or we get ambiguities from msvc:
@@ -70,21 +70,21 @@
 
 // * convert a type T to non-const type - remove_const<T>
 
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_const,T,typename ndnboost::detail::remove_const_impl<T>::type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_const,T&,T&)
-#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_const,T const[N],T type[N])
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_const,T const volatile[N],T volatile type[N])
+NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_const,T,typename ndnboost::detail::remove_const_impl<T>::type)
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_const,T&,T&)
+#if !defined(NDNBOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_const,T const[N],T type[N])
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_const,T const volatile[N],T volatile type[N])
 #endif
 
-#elif !BOOST_WORKAROUND(BOOST_MSVC,<=1300)
+#elif !NDNBOOST_WORKAROUND(NDNBOOST_MSVC,<=1300)
 
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_const,T,typename ndnboost::detail::remove_const_impl<T>::type)
+NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_const,T,typename ndnboost::detail::remove_const_impl<T>::type)
 
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/type_trait_undef.hpp>
 
-#endif // BOOST_TT_REMOVE_CONST_HPP_INCLUDED
+#endif // NDNBOOST_TT_REMOVE_CONST_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/remove_cv.hpp b/include/ndnboost/type_traits/remove_cv.hpp
index 22cf78f..d5cb86a 100644
--- a/include/ndnboost/type_traits/remove_cv.hpp
+++ b/include/ndnboost/type_traits/remove_cv.hpp
@@ -8,8 +8,8 @@
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
 
-#ifndef BOOST_TT_REMOVE_CV_HPP_INCLUDED
-#define BOOST_TT_REMOVE_CV_HPP_INCLUDED
+#ifndef NDNBOOST_TT_REMOVE_CV_HPP_INCLUDED
+#define NDNBOOST_TT_REMOVE_CV_HPP_INCLUDED
 
 #include <ndnboost/type_traits/broken_compiler_spec.hpp>
 #include <ndnboost/type_traits/detail/cv_traits_impl.hpp>
@@ -18,7 +18,7 @@
 
 #include <cstddef>
 
-#if BOOST_WORKAROUND(BOOST_MSVC,<=1300)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC,<=1300)
 #include <ndnboost/type_traits/msvc/remove_cv.hpp>
 #endif
 
@@ -27,7 +27,7 @@
 
 namespace ndnboost {
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 namespace detail{
 
@@ -37,7 +37,7 @@
    typedef typename ndnboost::detail::cv_traits_imp<T*>::unqualified_type type;
 };
 
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
+#ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
 //
 // We can't filter out rvalue_references at the same level as
 // references or we get ambiguities from msvc:
@@ -53,15 +53,15 @@
 
 
 //  convert a type T to a non-cv-qualified type - remove_cv<T>
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_cv,T,typename ndnboost::detail::rvalue_ref_filter_rem_cv<T>::type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_cv,T&,T&)
-#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_cv,T const[N],T type[N])
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_cv,T volatile[N],T type[N])
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_cv,T const volatile[N],T type[N])
+NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_cv,T,typename ndnboost::detail::rvalue_ref_filter_rem_cv<T>::type)
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_cv,T&,T&)
+#if !defined(NDNBOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_cv,T const[N],T type[N])
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_cv,T volatile[N],T type[N])
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_cv,T const volatile[N],T type[N])
 #endif
 
-#elif !BOOST_WORKAROUND(BOOST_MSVC,<=1300)
+#elif !NDNBOOST_WORKAROUND(NDNBOOST_MSVC,<=1300)
 
 namespace detail {
 template <typename T>
@@ -73,12 +73,12 @@
 };
 }
 
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_cv,T,typename ndnboost::detail::remove_cv_impl<T>::type)
+NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_cv,T,typename ndnboost::detail::remove_cv_impl<T>::type)
 
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/type_trait_undef.hpp>
 
-#endif // BOOST_TT_REMOVE_CV_HPP_INCLUDED
+#endif // NDNBOOST_TT_REMOVE_CV_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/remove_extent.hpp b/include/ndnboost/type_traits/remove_extent.hpp
index 1c4bc0d..a13317d 100644
--- a/include/ndnboost/type_traits/remove_extent.hpp
+++ b/include/ndnboost/type_traits/remove_extent.hpp
@@ -6,36 +6,36 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_REMOVE_EXTENT_HPP_INCLUDED
-#define BOOST_TT_REMOVE_EXTENT_HPP_INCLUDED
+#ifndef NDNBOOST_TT_REMOVE_EXTENT_HPP_INCLUDED
+#define NDNBOOST_TT_REMOVE_EXTENT_HPP_INCLUDED
 
 #include <ndnboost/config.hpp>
 #include <ndnboost/detail/workaround.hpp>
 #include <cstddef>
 
-#if BOOST_WORKAROUND(BOOST_MSVC,<=1300)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC,<=1300)
 #include <ndnboost/type_traits/msvc/remove_extent.hpp>
 #endif
 
 // should be the last #include
 #include <ndnboost/type_traits/detail/type_trait_def.hpp>
 
-#if !BOOST_WORKAROUND(BOOST_MSVC,<=1300)
+#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC,<=1300)
 
 namespace ndnboost {
 
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_extent,T,T)
+NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_extent,T,T)
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_extent,T[N],T type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_extent,T const[N],T const type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_extent,T volatile[N],T volatile type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_extent,T const volatile[N],T const volatile type)
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) && !defined(__IBMCPP__) &&  !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_extent,T[],T)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_extent,T const[],T const)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_extent,T volatile[],T volatile)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_extent,T const volatile[],T const volatile)
+#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(NDNBOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_extent,T[N],T type)
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_extent,T const[N],T const type)
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_extent,T volatile[N],T volatile type)
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_extent,T const volatile[N],T const volatile type)
+#if !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x610)) && !defined(__IBMCPP__) &&  !NDNBOOST_WORKAROUND(__DMC__, NDNBOOST_TESTED_AT(0x840))
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_extent,T[],T)
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_extent,T const[],T const)
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_extent,T volatile[],T volatile)
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_extent,T const volatile[],T const volatile)
 #endif
 #endif
 
@@ -45,4 +45,4 @@
 
 #include <ndnboost/type_traits/detail/type_trait_undef.hpp>
 
-#endif // BOOST_TT_REMOVE_BOUNDS_HPP_INCLUDED
+#endif // NDNBOOST_TT_REMOVE_BOUNDS_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/remove_pointer.hpp b/include/ndnboost/type_traits/remove_pointer.hpp
index c3d2bee..aa8a2e8 100644
--- a/include/ndnboost/type_traits/remove_pointer.hpp
+++ b/include/ndnboost/type_traits/remove_pointer.hpp
@@ -6,18 +6,18 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_REMOVE_POINTER_HPP_INCLUDED
-#define BOOST_TT_REMOVE_POINTER_HPP_INCLUDED
+#ifndef NDNBOOST_TT_REMOVE_POINTER_HPP_INCLUDED
+#define NDNBOOST_TT_REMOVE_POINTER_HPP_INCLUDED
 
 #include <ndnboost/config.hpp>
 #include <ndnboost/detail/workaround.hpp>
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#ifdef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 #include <ndnboost/type_traits/broken_compiler_spec.hpp>
 #endif
 
-#if BOOST_WORKAROUND(BOOST_MSVC,<=1300)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC,<=1300)
 #include <ndnboost/type_traits/msvc/remove_pointer.hpp>
-#elif defined(BOOST_MSVC)
+#elif defined(NDNBOOST_MSVC)
 #include <ndnboost/type_traits/remove_cv.hpp>
 #include <ndnboost/type_traits/is_pointer.hpp>
 #endif
@@ -27,7 +27,7 @@
 
 namespace ndnboost {
 
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
 
 namespace detail{
 
@@ -69,19 +69,19 @@
    };
 }
 
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_pointer,T,typename ndnboost::detail::remove_pointer_imp2<T>::type)
+NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_pointer,T,typename ndnboost::detail::remove_pointer_imp2<T>::type)
 
-#elif !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#elif !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_pointer,T,T)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_pointer,T*,T)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_pointer,T* const,T)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_pointer,T* volatile,T)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_pointer,T* const volatile,T)
+NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_pointer,T,T)
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_pointer,T*,T)
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_pointer,T* const,T)
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_pointer,T* volatile,T)
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_pointer,T* const volatile,T)
 
-#elif !BOOST_WORKAROUND(BOOST_MSVC,<=1300)
+#elif !NDNBOOST_WORKAROUND(NDNBOOST_MSVC,<=1300)
 
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_pointer,T,typename ndnboost::detail::remove_pointer_impl<T>::type)
+NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_pointer,T,typename ndnboost::detail::remove_pointer_impl<T>::type)
 
 #endif
 
@@ -89,4 +89,4 @@
 
 #include <ndnboost/type_traits/detail/type_trait_undef.hpp>
 
-#endif // BOOST_TT_REMOVE_POINTER_HPP_INCLUDED
+#endif // NDNBOOST_TT_REMOVE_POINTER_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/remove_reference.hpp b/include/ndnboost/type_traits/remove_reference.hpp
index d84c6ac..4421c59 100644
--- a/include/ndnboost/type_traits/remove_reference.hpp
+++ b/include/ndnboost/type_traits/remove_reference.hpp
@@ -6,14 +6,14 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_REMOVE_REFERENCE_HPP_INCLUDED
-#define BOOST_TT_REMOVE_REFERENCE_HPP_INCLUDED
+#ifndef NDNBOOST_TT_REMOVE_REFERENCE_HPP_INCLUDED
+#define NDNBOOST_TT_REMOVE_REFERENCE_HPP_INCLUDED
 
 #include <ndnboost/type_traits/broken_compiler_spec.hpp>
 #include <ndnboost/config.hpp>
 #include <ndnboost/detail/workaround.hpp>
 
-#if BOOST_WORKAROUND(BOOST_MSVC,<=1300)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC,<=1300)
 #include <ndnboost/type_traits/msvc/remove_reference.hpp>
 #endif
 
@@ -22,7 +22,7 @@
 
 namespace ndnboost {
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 namespace detail{
 //
@@ -34,7 +34,7 @@
 {
    typedef T type;
 };
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
+#ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
 template <class T>
 struct remove_rvalue_ref<T&&>
 {
@@ -44,27 +44,27 @@
 
 } // namespace detail
 
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_reference,T,typename ndnboost::detail::remove_rvalue_ref<T>::type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_reference,T&,T)
+NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_reference,T,typename ndnboost::detail::remove_rvalue_ref<T>::type)
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_reference,T&,T)
 
-#if defined(BOOST_ILLEGAL_CV_REFERENCES)
+#if defined(NDNBOOST_ILLEGAL_CV_REFERENCES)
 // these are illegal specialisations; cv-qualifies applied to
 // references have no effect according to [8.3.2p1],
 // C++ Builder requires them though as it treats cv-qualified
 // references as distinct types...
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_reference,T& const,T)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_reference,T& volatile,T)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_reference,T& const volatile,T)
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_reference,T& const,T)
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_reference,T& volatile,T)
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_reference,T& const volatile,T)
 #endif
 
-#elif !BOOST_WORKAROUND(BOOST_MSVC,<=1300)
+#elif !NDNBOOST_WORKAROUND(NDNBOOST_MSVC,<=1300)
 
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_reference,T,typename ndnboost::detail::remove_reference_impl<T>::type)
+NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_reference,T,typename ndnboost::detail::remove_reference_impl<T>::type)
 
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/type_trait_undef.hpp>
 
-#endif // BOOST_TT_REMOVE_REFERENCE_HPP_INCLUDED
+#endif // NDNBOOST_TT_REMOVE_REFERENCE_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/remove_volatile.hpp b/include/ndnboost/type_traits/remove_volatile.hpp
index 7549a28..731e9b1 100644
--- a/include/ndnboost/type_traits/remove_volatile.hpp
+++ b/include/ndnboost/type_traits/remove_volatile.hpp
@@ -8,8 +8,8 @@
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
 
-#ifndef BOOST_TT_REMOVE_VOLATILE_HPP_INCLUDED
-#define BOOST_TT_REMOVE_VOLATILE_HPP_INCLUDED
+#ifndef NDNBOOST_TT_REMOVE_VOLATILE_HPP_INCLUDED
+#define NDNBOOST_TT_REMOVE_VOLATILE_HPP_INCLUDED
 
 #include <ndnboost/type_traits/is_const.hpp>
 #include <ndnboost/type_traits/broken_compiler_spec.hpp>
@@ -19,7 +19,7 @@
 
 #include <cstddef>
 
-#if BOOST_WORKAROUND(BOOST_MSVC,<=1300)
+#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC,<=1300)
 #include <ndnboost/type_traits/msvc/remove_volatile.hpp>
 #endif
 
@@ -28,7 +28,7 @@
 
 namespace ndnboost {
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 namespace detail {
 
@@ -57,7 +57,7 @@
 // We can't filter out rvalue_references at the same level as
 // references or we get ambiguities from msvc:
 //
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
+#ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
 template <typename T>
 struct remove_volatile_impl<T&&>
 {
@@ -68,21 +68,21 @@
 
 // * convert a type T to a non-volatile type - remove_volatile<T>
 
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_volatile,T,typename ndnboost::detail::remove_volatile_impl<T>::type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_volatile,T&,T&)
-#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_volatile,T volatile[N],T type[N])
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_volatile,T const volatile[N],T const type[N])
+NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_volatile,T,typename ndnboost::detail::remove_volatile_impl<T>::type)
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_volatile,T&,T&)
+#if !defined(NDNBOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_volatile,T volatile[N],T type[N])
+NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_volatile,T const volatile[N],T const type[N])
 #endif
 
-#elif !BOOST_WORKAROUND(BOOST_MSVC,<=1300)
+#elif !NDNBOOST_WORKAROUND(NDNBOOST_MSVC,<=1300)
 
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_volatile,T,typename ndnboost::detail::remove_volatile_impl<T>::type)
+NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_volatile,T,typename ndnboost::detail::remove_volatile_impl<T>::type)
 
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 } // namespace ndnboost
 
 #include <ndnboost/type_traits/detail/type_trait_undef.hpp>
 
-#endif // BOOST_TT_REMOVE_VOLATILE_HPP_INCLUDED
+#endif // NDNBOOST_TT_REMOVE_VOLATILE_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/same_traits.hpp b/include/ndnboost/type_traits/same_traits.hpp
index ece4b42..d476c0d 100644
--- a/include/ndnboost/type_traits/same_traits.hpp
+++ b/include/ndnboost/type_traits/same_traits.hpp
@@ -7,9 +7,9 @@
 //
 //  defines is_same:
 
-#ifndef BOOST_TT_SAME_TRAITS_HPP_INCLUDED
-#define BOOST_TT_SAME_TRAITS_HPP_INCLUDED
+#ifndef NDNBOOST_TT_SAME_TRAITS_HPP_INCLUDED
+#define NDNBOOST_TT_SAME_TRAITS_HPP_INCLUDED
 
 #include <ndnboost/type_traits/is_same.hpp>
 
-#endif  // BOOST_TT_SAME_TRAITS_HPP_INCLUDED
+#endif  // NDNBOOST_TT_SAME_TRAITS_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/transform_traits.hpp b/include/ndnboost/type_traits/transform_traits.hpp
index be4ccf5..f2baa0c 100644
--- a/include/ndnboost/type_traits/transform_traits.hpp
+++ b/include/ndnboost/type_traits/transform_traits.hpp
@@ -9,8 +9,8 @@
 //  remove_reference, add_reference, remove_bounds, remove_pointer.
 //
 
-#ifndef BOOST_TT_TRANSFORM_TRAITS_HPP_INCLUDED
-#define BOOST_TT_TRANSFORM_TRAITS_HPP_INCLUDED
+#ifndef NDNBOOST_TT_TRANSFORM_TRAITS_HPP_INCLUDED
+#define NDNBOOST_TT_TRANSFORM_TRAITS_HPP_INCLUDED
 
 #include <ndnboost/type_traits/add_pointer.hpp>
 #include <ndnboost/type_traits/add_reference.hpp>
@@ -18,4 +18,4 @@
 #include <ndnboost/type_traits/remove_pointer.hpp>
 #include <ndnboost/type_traits/remove_reference.hpp>
 
-#endif // BOOST_TT_TRANSFORM_TRAITS_HPP_INCLUDED
+#endif // NDNBOOST_TT_TRANSFORM_TRAITS_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/type_with_alignment.hpp b/include/ndnboost/type_traits/type_with_alignment.hpp
index 06b7f91..39160c6 100644
--- a/include/ndnboost/type_traits/type_with_alignment.hpp
+++ b/include/ndnboost/type_traits/type_with_alignment.hpp
@@ -5,8 +5,8 @@
 //
 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
-#ifndef BOOST_TT_TYPE_WITH_ALIGNMENT_INCLUDED
-#define BOOST_TT_TYPE_WITH_ALIGNMENT_INCLUDED
+#ifndef NDNBOOST_TT_TYPE_WITH_ALIGNMENT_INCLUDED
+#define NDNBOOST_TT_TYPE_WITH_ALIGNMENT_INCLUDED
 
 #include <ndnboost/mpl/if.hpp>
 #include <ndnboost/preprocessor/list/for_each_i.hpp>
@@ -24,7 +24,7 @@
 
 #include <cstddef>
 
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
 #   pragma warning(push)
 #   pragma warning(disable: 4121) // alignment is sensitive to packing
 #endif
@@ -40,28 +40,28 @@
 typedef int (alignment_dummy::*member_ptr);
 typedef int (alignment_dummy::*member_function_ptr)();
 
-#ifdef BOOST_HAS_LONG_LONG
-#define BOOST_TT_ALIGNMENT_BASE_TYPES BOOST_PP_TUPLE_TO_LIST( \
+#ifdef NDNBOOST_HAS_LONG_LONG
+#define NDNBOOST_TT_ALIGNMENT_BASE_TYPES NDNBOOST_PP_TUPLE_TO_LIST( \
         12, ( \
         char, short, int, long,  ::ndnboost::long_long_type, float, double, long double \
         , void*, function_ptr, member_ptr, member_function_ptr))
 #else
-#define BOOST_TT_ALIGNMENT_BASE_TYPES BOOST_PP_TUPLE_TO_LIST( \
+#define NDNBOOST_TT_ALIGNMENT_BASE_TYPES NDNBOOST_PP_TUPLE_TO_LIST( \
         11, ( \
         char, short, int, long, float, double, long double \
         , void*, function_ptr, member_ptr, member_function_ptr))
 #endif
 
-#define BOOST_TT_HAS_ONE_T(D,Data,T) ndnboost::detail::has_one_T< T >
+#define NDNBOOST_TT_HAS_ONE_T(D,Data,T) ndnboost::detail::has_one_T< T >
 
-#define BOOST_TT_ALIGNMENT_STRUCT_TYPES                         \
-        BOOST_PP_LIST_TRANSFORM(BOOST_TT_HAS_ONE_T,             \
+#define NDNBOOST_TT_ALIGNMENT_STRUCT_TYPES                         \
+        NDNBOOST_PP_LIST_TRANSFORM(NDNBOOST_TT_HAS_ONE_T,             \
                                 X,                              \
-                                BOOST_TT_ALIGNMENT_BASE_TYPES)
+                                NDNBOOST_TT_ALIGNMENT_BASE_TYPES)
 
-#define BOOST_TT_ALIGNMENT_TYPES                                \
-        BOOST_PP_LIST_APPEND(BOOST_TT_ALIGNMENT_BASE_TYPES,     \
-                             BOOST_TT_ALIGNMENT_STRUCT_TYPES)
+#define NDNBOOST_TT_ALIGNMENT_TYPES                                \
+        NDNBOOST_PP_LIST_APPEND(NDNBOOST_TT_ALIGNMENT_BASE_TYPES,     \
+                             NDNBOOST_TT_ALIGNMENT_STRUCT_TYPES)
 
 //
 // lower_alignment_helper --
@@ -69,7 +69,7 @@
 // This template gets instantiated a lot, so use partial
 // specialization when available to reduce the compiler burden.
 //
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#ifdef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 template <bool found = true>
 struct lower_alignment_helper_impl
 {
@@ -113,16 +113,16 @@
 };
 #endif
 
-#define BOOST_TT_CHOOSE_MIN_ALIGNMENT(R,P,I,T)                                  \
+#define NDNBOOST_TT_CHOOSE_MIN_ALIGNMENT(R,P,I,T)                                  \
         typename lower_alignment_helper<                                        \
-          BOOST_PP_CAT(found,I),target,T                                        \
-        >::type BOOST_PP_CAT(t,I);                                              \
+          NDNBOOST_PP_CAT(found,I),target,T                                        \
+        >::type NDNBOOST_PP_CAT(t,I);                                              \
         enum {                                                                  \
-            BOOST_PP_CAT(found,BOOST_PP_INC(I))                                 \
-              = lower_alignment_helper<BOOST_PP_CAT(found,I),target,T >::value  \
+            NDNBOOST_PP_CAT(found,NDNBOOST_PP_INC(I))                                 \
+              = lower_alignment_helper<NDNBOOST_PP_CAT(found,I),target,T >::value  \
         };
 
-#define BOOST_TT_CHOOSE_T(R,P,I,T) T BOOST_PP_CAT(t,I);
+#define NDNBOOST_TT_CHOOSE_T(R,P,I,T) T NDNBOOST_PP_CAT(t,I);
 
 template <typename T>
 struct has_one_T
@@ -135,55 +135,55 @@
 {
     enum { found0 = false };
 
-    BOOST_PP_LIST_FOR_EACH_I(
-          BOOST_TT_CHOOSE_MIN_ALIGNMENT
+    NDNBOOST_PP_LIST_FOR_EACH_I(
+          NDNBOOST_TT_CHOOSE_MIN_ALIGNMENT
         , ignored
-        , BOOST_TT_ALIGNMENT_TYPES
+        , NDNBOOST_TT_ALIGNMENT_TYPES
         )
 };
 
 union max_align
 {
-    BOOST_PP_LIST_FOR_EACH_I(
-          BOOST_TT_CHOOSE_T
+    NDNBOOST_PP_LIST_FOR_EACH_I(
+          NDNBOOST_TT_CHOOSE_T
         , ignored
-        , BOOST_TT_ALIGNMENT_TYPES
+        , NDNBOOST_TT_ALIGNMENT_TYPES
         )
 };
 
-#undef BOOST_TT_ALIGNMENT_BASE_TYPES
-#undef BOOST_TT_HAS_ONE_T
-#undef BOOST_TT_ALIGNMENT_STRUCT_TYPES
-#undef BOOST_TT_ALIGNMENT_TYPES
-#undef BOOST_TT_CHOOSE_MIN_ALIGNMENT
-#undef BOOST_TT_CHOOSE_T
+#undef NDNBOOST_TT_ALIGNMENT_BASE_TYPES
+#undef NDNBOOST_TT_HAS_ONE_T
+#undef NDNBOOST_TT_ALIGNMENT_STRUCT_TYPES
+#undef NDNBOOST_TT_ALIGNMENT_TYPES
+#undef NDNBOOST_TT_CHOOSE_MIN_ALIGNMENT
+#undef NDNBOOST_TT_CHOOSE_T
 
 template<std::size_t TAlign, std::size_t Align>
 struct is_aligned
 {
-    BOOST_STATIC_CONSTANT(bool,
+    NDNBOOST_STATIC_CONSTANT(bool,
         value = (TAlign >= Align) & (TAlign % Align == 0)
         );
 };
 
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::detail::max_align,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::detail::lower_alignment<1> ,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::detail::lower_alignment<2> ,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::detail::lower_alignment<4> ,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::detail::lower_alignment<8> ,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::detail::lower_alignment<10> ,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::detail::lower_alignment<16> ,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::detail::lower_alignment<32> ,true)
+#ifdef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::detail::max_align,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::detail::lower_alignment<1> ,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::detail::lower_alignment<2> ,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::detail::lower_alignment<4> ,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::detail::lower_alignment<8> ,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::detail::lower_alignment<10> ,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::detail::lower_alignment<16> ,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::detail::lower_alignment<32> ,true)
 #endif
 
 } // namespace detail
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 template<std::size_t Align>
 struct is_pod< ::ndnboost::detail::lower_alignment<Align> >
 {
-        BOOST_STATIC_CONSTANT(std::size_t, value = true);
+        NDNBOOST_STATIC_CONSTANT(std::size_t, value = true);
 };
 #endif
 
@@ -201,10 +201,10 @@
         , ::ndnboost::detail::max_align
         >::type align_t;
 
-    BOOST_STATIC_CONSTANT(std::size_t, found = alignment_of<align_t>::value);
+    NDNBOOST_STATIC_CONSTANT(std::size_t, found = alignment_of<align_t>::value);
 
-    BOOST_STATIC_ASSERT(found >= Align);
-    BOOST_STATIC_ASSERT(found % Align == 0);
+    NDNBOOST_STATIC_ASSERT(found >= Align);
+    NDNBOOST_STATIC_ASSERT(found % Align == 0);
 
  public:
     typedef align_t type;
@@ -239,16 +239,16 @@
 template<> class type_with_alignment<128> { public: typedef align::a128 type; };
 
 namespace detail {
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::align::a2,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::align::a4,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::align::a8,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::align::a16,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::align::a32,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::align::a64,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::align::a128,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::align::a2,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::align::a4,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::align::a8,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::align::a16,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::align::a32,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::align::a64,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::align::a128,true)
 }
 #endif
-#if (defined(BOOST_MSVC) || (defined(BOOST_INTEL) && defined(_MSC_VER))) && _MSC_VER >= 1300
+#if (defined(NDNBOOST_MSVC) || (defined(NDNBOOST_INTEL) && defined(_MSC_VER))) && _MSC_VER >= 1300
 //
 // MSVC supports types which have alignments greater than the normal
 // maximum: these are used for example in the types __m64 and __m128
@@ -334,11 +334,11 @@
 };
 
 namespace detail {
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::align::a8,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::align::a16,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::align::a32,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::align::a64,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::align::a128,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::align::a8,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::align::a16,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::align::a32,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::align::a64,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::align::a128,true)
 }
 #endif
 
@@ -363,11 +363,11 @@
 
 typedef ::ndnboost::align::a16 max_align;
 
-//#if ! BOOST_WORKAROUND(__CODEGEARC__, BOOST_TESTED_AT(0x610))
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::align::a2,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::align::a4,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::align::a8,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::align::a16,true)
+//#if ! NDNBOOST_WORKAROUND(__CODEGEARC__, NDNBOOST_TESTED_AT(0x610))
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::align::a2,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::align::a4,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::align::a8,true)
+NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::ndnboost::align::a16,true)
 //#endif
 }
 
@@ -375,7 +375,7 @@
 {
    // We should never get to here, but if we do use the maximally
    // aligned type:
-   // BOOST_STATIC_ASSERT(0);
+   // NDNBOOST_STATIC_ASSERT(0);
    typedef align::a16 type;
 };
 template <> struct type_with_alignment<1>{ typedef char type; };
@@ -388,12 +388,12 @@
 
 } // namespace ndnboost
 
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
 #   pragma warning(pop)
 #endif
 
 #include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
 
-#endif // BOOST_TT_TYPE_WITH_ALIGNMENT_INCLUDED
+#endif // NDNBOOST_TT_TYPE_WITH_ALIGNMENT_INCLUDED
 
 
diff --git a/include/ndnboost/typeof/dmc/typeof_impl.hpp b/include/ndnboost/typeof/dmc/typeof_impl.hpp
index ff77ab0..3b40f76 100644
--- a/include/ndnboost/typeof/dmc/typeof_impl.hpp
+++ b/include/ndnboost/typeof/dmc/typeof_impl.hpp
@@ -3,8 +3,8 @@
 // Use, modification and distribution is subject to the Boost Software
 // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_TYPEOF_MSVC_TYPEOF_IMPL_HPP_INCLUDED
-# define BOOST_TYPEOF_MSVC_TYPEOF_IMPL_HPP_INCLUDED
+#ifndef NDNBOOST_TYPEOF_MSVC_TYPEOF_IMPL_HPP_INCLUDED
+# define NDNBOOST_TYPEOF_MSVC_TYPEOF_IMPL_HPP_INCLUDED
 
 # include <ndnboost/config.hpp>
 # include <ndnboost/detail/workaround.hpp>
@@ -20,8 +20,8 @@
 
         char (*encode_index(...))[1];
 
-# define BOOST_TYPEOF_INDEX(T) (sizeof(*ndnboost::type_of::encode_index((ndnboost::type_of::encode_counter<1000>*)0)))
-# define BOOST_TYPEOF_NEXT_INDEX(next) friend char (*encode_index(encode_counter<next>*))[next];
+# define NDNBOOST_TYPEOF_INDEX(T) (sizeof(*ndnboost::type_of::encode_index((ndnboost::type_of::encode_counter<1000>*)0)))
+# define NDNBOOST_TYPEOF_NEXT_INDEX(next) friend char (*encode_index(encode_counter<next>*))[next];
 
 
         //Typeof code
@@ -54,13 +54,13 @@
         struct encode_type
         {
             //Get the next available compile time constants index
-            BOOST_STATIC_CONSTANT(unsigned,value=BOOST_TYPEOF_INDEX(T));
+            NDNBOOST_STATIC_CONSTANT(unsigned,value=NDNBOOST_TYPEOF_INDEX(T));
             //Instantiate the template
             typedef typename msvc_register_type<T,mpl::int_<value> >::id2type type;
             //Set the next compile time constants index
-            BOOST_STATIC_CONSTANT(unsigned,next=value+1);
+            NDNBOOST_STATIC_CONSTANT(unsigned,next=value+1);
             //Increment the compile time constant (only needed when extensions are not active
-            BOOST_TYPEOF_NEXT_INDEX(next);
+            NDNBOOST_TYPEOF_NEXT_INDEX(next);
         };
 
         template<class T>
@@ -75,21 +75,21 @@
         template<typename Organizer, typename T>
         msvc_register_type<T,Organizer> typeof_register_type(const T&,Organizer* =0);
 
-# define BOOST_TYPEOF(expr) \
+# define NDNBOOST_TYPEOF(expr) \
     ndnboost::type_of::msvc_typeid_wrapper<sizeof(*ndnboost::type_of::encode_start(expr))>::type
 
-# define BOOST_TYPEOF_TPL(expr) typename BOOST_TYPEOF(expr)
+# define NDNBOOST_TYPEOF_TPL(expr) typename NDNBOOST_TYPEOF(expr)
 
-# define BOOST_TYPEOF_NESTED_TYPEDEF_TPL(name,expr) \
+# define NDNBOOST_TYPEOF_NESTED_TYPEDEF_TPL(name,expr) \
     struct name {\
-        BOOST_STATIC_CONSTANT(int,_typeof_register_value=sizeof(ndnboost::type_of::typeof_register_type<name>(expr)));\
+        NDNBOOST_STATIC_CONSTANT(int,_typeof_register_value=sizeof(ndnboost::type_of::typeof_register_type<name>(expr)));\
         typedef typename ndnboost::type_of::msvc_extract_type<name>::id2type id2type;\
         typedef typename id2type::type type;\
     };
 
-# define BOOST_TYPEOF_NESTED_TYPEDEF(name,expr) \
+# define NDNBOOST_TYPEOF_NESTED_TYPEDEF(name,expr) \
     struct name {\
-        BOOST_STATIC_CONSTANT(int,_typeof_register_value=sizeof(ndnboost::type_of::typeof_register_type<name>(expr)));\
+        NDNBOOST_STATIC_CONSTANT(int,_typeof_register_value=sizeof(ndnboost::type_of::typeof_register_type<name>(expr)));\
         typedef ndnboost::type_of::msvc_extract_type<name>::id2type id2type;\
         typedef id2type::type type;\
     };
@@ -97,4 +97,4 @@
     }
 }
 
-#endif//BOOST_TYPEOF_MSVC_TYPEOF_IMPL_HPP_INCLUDED
+#endif//NDNBOOST_TYPEOF_MSVC_TYPEOF_IMPL_HPP_INCLUDED
diff --git a/include/ndnboost/typeof/encode_decode.hpp b/include/ndnboost/typeof/encode_decode.hpp
index 5a1d62a..d5a1160 100644
--- a/include/ndnboost/typeof/encode_decode.hpp
+++ b/include/ndnboost/typeof/encode_decode.hpp
@@ -5,30 +5,30 @@
 
 // boostinspect:nounnamed
 
-#ifndef BOOST_TYPEOF_ENCODE_DECODE_HPP_INCLUDED
-#define BOOST_TYPEOF_ENCODE_DECODE_HPP_INCLUDED
+#ifndef NDNBOOST_TYPEOF_ENCODE_DECODE_HPP_INCLUDED
+#define NDNBOOST_TYPEOF_ENCODE_DECODE_HPP_INCLUDED
 
 #include <ndnboost/mpl/deref.hpp>
 #include <ndnboost/mpl/next.hpp>
 
-#ifndef BOOST_TYPEOF_SUPPRESS_UNNAMED_NAMESPACE
+#ifndef NDNBOOST_TYPEOF_SUPPRESS_UNNAMED_NAMESPACE
 
-#   define BOOST_TYPEOF_BEGIN_ENCODE_NS namespace { namespace ndnboost_typeof {
-#   define BOOST_TYPEOF_END_ENCODE_NS }}
-#   define BOOST_TYPEOF_ENCODE_NS_QUALIFIER ndnboost_typeof
+#   define NDNBOOST_TYPEOF_BEGIN_ENCODE_NS namespace { namespace ndnboost_typeof {
+#   define NDNBOOST_TYPEOF_END_ENCODE_NS }}
+#   define NDNBOOST_TYPEOF_ENCODE_NS_QUALIFIER ndnboost_typeof
 
 #else
 
-#   define BOOST_TYPEOF_BEGIN_ENCODE_NS namespace ndnboost { namespace type_of {
-#   define BOOST_TYPEOF_END_ENCODE_NS }}
-#   define BOOST_TYPEOF_ENCODE_NS_QUALIFIER ndnboost::type_of
+#   define NDNBOOST_TYPEOF_BEGIN_ENCODE_NS namespace ndnboost { namespace type_of {
+#   define NDNBOOST_TYPEOF_END_ENCODE_NS }}
+#   define NDNBOOST_TYPEOF_ENCODE_NS_QUALIFIER ndnboost::type_of
 
-#   define BOOST_TYPEOF_TEXT "unnamed namespace is off"
+#   define NDNBOOST_TYPEOF_TEXT "unnamed namespace is off"
 #   include <ndnboost/typeof/message.hpp>
 
 #endif
 
-BOOST_TYPEOF_BEGIN_ENCODE_NS
+NDNBOOST_TYPEOF_BEGIN_ENCODE_NS
 
 template<class V, class Type_Not_Registered_With_Typeof_System>
 struct encode_type_impl;
@@ -42,20 +42,20 @@
 template<class T>
 struct decode_nested_template_helper_impl;
 
-BOOST_TYPEOF_END_ENCODE_NS
+NDNBOOST_TYPEOF_END_ENCODE_NS
 
 namespace ndnboost { namespace type_of {
 
     template<class V, class T>
-    struct encode_type : BOOST_TYPEOF_ENCODE_NS_QUALIFIER::encode_type_impl<V, T>
+    struct encode_type : NDNBOOST_TYPEOF_ENCODE_NS_QUALIFIER::encode_type_impl<V, T>
     {};
 
     template<class Iter>
-    struct decode_type : BOOST_TYPEOF_ENCODE_NS_QUALIFIER::decode_type_impl<
+    struct decode_type : NDNBOOST_TYPEOF_ENCODE_NS_QUALIFIER::decode_type_impl<
         typename Iter::type,
         typename Iter::next
     >
     {};
 }}
 
-#endif//BOOST_TYPEOF_ENCODE_DECODE_HPP_INCLUDED
+#endif//NDNBOOST_TYPEOF_ENCODE_DECODE_HPP_INCLUDED
diff --git a/include/ndnboost/typeof/encode_decode_params.hpp b/include/ndnboost/typeof/encode_decode_params.hpp
index 2e57a84..622b476 100644
--- a/include/ndnboost/typeof/encode_decode_params.hpp
+++ b/include/ndnboost/typeof/encode_decode_params.hpp
@@ -2,33 +2,33 @@
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_TYPEOF_ENCODE_DECODE_PARAMS_HPP_INCLUDED
-#define BOOST_TYPEOF_ENCODE_DECODE_PARAMS_HPP_INCLUDED
+#ifndef NDNBOOST_TYPEOF_ENCODE_DECODE_PARAMS_HPP_INCLUDED
+#define NDNBOOST_TYPEOF_ENCODE_DECODE_PARAMS_HPP_INCLUDED
 
 #include <ndnboost/preprocessor/cat.hpp>
 #include <ndnboost/preprocessor/repetition/repeat.hpp>
 
 // Assumes iter0 contains initial iterator
 
-#define BOOST_TYPEOF_DECODE_PARAM(z, n, text)   \
+#define NDNBOOST_TYPEOF_DECODE_PARAM(z, n, text)   \
     typedef ndnboost::type_of::decode_type<iter##n> decode##n;     \
     typedef typename decode##n::type p##n;      \
-    typedef typename decode##n::iter BOOST_PP_CAT(iter, BOOST_PP_INC(n));
+    typedef typename decode##n::iter NDNBOOST_PP_CAT(iter, NDNBOOST_PP_INC(n));
 
-#define BOOST_TYPEOF_DECODE_PARAMS(n)\
-    BOOST_PP_REPEAT(n, BOOST_TYPEOF_DECODE_PARAM, ~)
+#define NDNBOOST_TYPEOF_DECODE_PARAMS(n)\
+    NDNBOOST_PP_REPEAT(n, NDNBOOST_TYPEOF_DECODE_PARAM, ~)
 
 // The P0, P1, ... PN are encoded and added to V 
 
-#define BOOST_TYPEOF_ENCODE_PARAMS_BEGIN(z, n, text)\
+#define NDNBOOST_TYPEOF_ENCODE_PARAMS_BEGIN(z, n, text)\
     typename ndnboost::type_of::encode_type<
 
-#define BOOST_TYPEOF_ENCODE_PARAMS_END(z, n, text)\
-    , BOOST_PP_CAT(P, n)>::type
+#define NDNBOOST_TYPEOF_ENCODE_PARAMS_END(z, n, text)\
+    , NDNBOOST_PP_CAT(P, n)>::type
 
-#define BOOST_TYPEOF_ENCODE_PARAMS(n, ID)                   \
-    BOOST_PP_REPEAT(n, BOOST_TYPEOF_ENCODE_PARAMS_BEGIN, ~) \
+#define NDNBOOST_TYPEOF_ENCODE_PARAMS(n, ID)                   \
+    NDNBOOST_PP_REPEAT(n, NDNBOOST_TYPEOF_ENCODE_PARAMS_BEGIN, ~) \
     typename ndnboost::type_of::push_back<V, ndnboost::mpl::size_t<ID> >::type      \
-    BOOST_PP_REPEAT(n, BOOST_TYPEOF_ENCODE_PARAMS_END, ~)
+    NDNBOOST_PP_REPEAT(n, NDNBOOST_TYPEOF_ENCODE_PARAMS_END, ~)
 
-#endif//BOOST_TYPEOF_ENCODE_DECODE_PARAMS_HPP_INCLUDED
+#endif//NDNBOOST_TYPEOF_ENCODE_DECODE_PARAMS_HPP_INCLUDED
diff --git a/include/ndnboost/typeof/int_encoding.hpp b/include/ndnboost/typeof/int_encoding.hpp
index faccdda..037277c 100644
--- a/include/ndnboost/typeof/int_encoding.hpp
+++ b/include/ndnboost/typeof/int_encoding.hpp
@@ -2,8 +2,8 @@
 // Use, modification and distribution is subject to the Boost Software
 // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_TYPEOF_INT_ENCODING_HPP_INCLUDED
-#define BOOST_TYPEOF_INT_ENCODING_HPP_INCLUDED
+#ifndef NDNBOOST_TYPEOF_INT_ENCODING_HPP_INCLUDED
+#define NDNBOOST_TYPEOF_INT_ENCODING_HPP_INCLUDED
 
 #include <ndnboost/mpl/if.hpp>
 #include <ndnboost/mpl/size_t.hpp>
@@ -41,14 +41,14 @@
     template<std::size_t n, bool Overflow>
     struct pack
     {
-        BOOST_STATIC_CONSTANT(std::size_t , value=((n + 1) * 2 + (Overflow ? 1 : 0)));
+        NDNBOOST_STATIC_CONSTANT(std::size_t , value=((n + 1) * 2 + (Overflow ? 1 : 0)));
     };
 
     template<std::size_t m>
     struct unpack
     {
-        BOOST_STATIC_CONSTANT(std::size_t, value = (m / 2) - 1);
-        BOOST_STATIC_CONSTANT(std::size_t, overflow = (m % 2 == 1));
+        NDNBOOST_STATIC_CONSTANT(std::size_t, value = (m / 2) - 1);
+        NDNBOOST_STATIC_CONSTANT(std::size_t, overflow = (m % 2 == 1));
     };
 
     ////////////////////////////////
@@ -83,16 +83,16 @@
     template<std::size_t n, class Iter>
     struct decode_size_t<n, Iter, false>
     {
-        BOOST_STATIC_CONSTANT(std::size_t,value = n);
+        NDNBOOST_STATIC_CONSTANT(std::size_t,value = n);
         typedef Iter iter;
     };
 
     template<std::size_t n, class Iter>
     struct decode_size_t<n, Iter, true>
     {
-        BOOST_STATIC_CONSTANT(std::size_t,m = Iter::type::value);
+        NDNBOOST_STATIC_CONSTANT(std::size_t,m = Iter::type::value);
 
-        BOOST_STATIC_CONSTANT(std::size_t,value = (std::size_t)m * 0x3ffffffe + n);
+        NDNBOOST_STATIC_CONSTANT(std::size_t,value = (std::size_t)m * 0x3ffffffe + n);
         typedef typename Iter::next iter;
     };
 
@@ -100,11 +100,11 @@
     struct decode_integral
     {
         typedef decode_integral<T,Iter> self_t;
-        BOOST_STATIC_CONSTANT(std::size_t,m = Iter::type::value);
+        NDNBOOST_STATIC_CONSTANT(std::size_t,m = Iter::type::value);
 
-        BOOST_STATIC_CONSTANT(std::size_t,n = unpack<m>::value);
+        NDNBOOST_STATIC_CONSTANT(std::size_t,n = unpack<m>::value);
 
-        BOOST_STATIC_CONSTANT(std::size_t,overflow = unpack<m>::overflow);
+        NDNBOOST_STATIC_CONSTANT(std::size_t,overflow = unpack<m>::overflow);
 
         typedef typename Iter::next nextpos;
 
@@ -115,4 +115,4 @@
 
 }}//namespace
 
-#endif//BOOST_TYPEOF_INT_ENCODING_HPP_INCLUDED
+#endif//NDNBOOST_TYPEOF_INT_ENCODING_HPP_INCLUDED
diff --git a/include/ndnboost/typeof/integral_template_param.hpp b/include/ndnboost/typeof/integral_template_param.hpp
index 446a3d1..1e418f3 100644
--- a/include/ndnboost/typeof/integral_template_param.hpp
+++ b/include/ndnboost/typeof/integral_template_param.hpp
@@ -2,79 +2,79 @@
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_TYPEOF_INTEGRAL_TEMPLATE_PARAM_HPP_INCLUDED
-#define BOOST_TYPEOF_INTEGRAL_TEMPLATE_PARAM_HPP_INCLUDED
+#ifndef NDNBOOST_TYPEOF_INTEGRAL_TEMPLATE_PARAM_HPP_INCLUDED
+#define NDNBOOST_TYPEOF_INTEGRAL_TEMPLATE_PARAM_HPP_INCLUDED
 
-#define BOOST_TYPEOF_unsigned (unsigned)
-#define BOOST_TYPEOF_signed (signed)
+#define NDNBOOST_TYPEOF_unsigned (unsigned)
+#define NDNBOOST_TYPEOF_signed (signed)
 
-#define char_BOOST_TYPEOF (char)
-#define short_BOOST_TYPEOF (short)
-#define int_BOOST_TYPEOF (int)
-#define long_BOOST_TYPEOF (long)
+#define char_NDNBOOST_TYPEOF (char)
+#define short_NDNBOOST_TYPEOF (short)
+#define int_NDNBOOST_TYPEOF (int)
+#define long_NDNBOOST_TYPEOF (long)
 
-#define BOOST_TYPEOF_char_BOOST_TYPEOF (char)
-#define BOOST_TYPEOF_short_BOOST_TYPEOF (short)
-#define BOOST_TYPEOF_int_BOOST_TYPEOF (int)
-#define BOOST_TYPEOF_long_BOOST_TYPEOF (long)
-#define BOOST_TYPEOF_bool_BOOST_TYPEOF (bool)
-#define BOOST_TYPEOF_unsigned_BOOST_TYPEOF (unsigned)
-#define BOOST_TYPEOF_size_t_BOOST_TYPEOF (size_t)
+#define NDNBOOST_TYPEOF_char_NDNBOOST_TYPEOF (char)
+#define NDNBOOST_TYPEOF_short_NDNBOOST_TYPEOF (short)
+#define NDNBOOST_TYPEOF_int_NDNBOOST_TYPEOF (int)
+#define NDNBOOST_TYPEOF_long_NDNBOOST_TYPEOF (long)
+#define NDNBOOST_TYPEOF_bool_NDNBOOST_TYPEOF (bool)
+#define NDNBOOST_TYPEOF_unsigned_NDNBOOST_TYPEOF (unsigned)
+#define NDNBOOST_TYPEOF_size_t_NDNBOOST_TYPEOF (size_t)
 
-#define BOOST_TYPEOF_MAKE_OBJ_char          BOOST_TYPEOF_INTEGRAL_PARAM(char)
-#define BOOST_TYPEOF_MAKE_OBJ_short         BOOST_TYPEOF_INTEGRAL_PARAM(short)
-#define BOOST_TYPEOF_MAKE_OBJ_int           BOOST_TYPEOF_INTEGRAL_PARAM(int)
-#define BOOST_TYPEOF_MAKE_OBJ_long          BOOST_TYPEOF_INTEGRAL_PARAM(long)
-#define BOOST_TYPEOF_MAKE_OBJ_bool          BOOST_TYPEOF_INTEGRAL_PARAM(bool)
-#define BOOST_TYPEOF_MAKE_OBJ_unsigned      BOOST_TYPEOF_INTEGRAL_PARAM(unsigned)
-#define BOOST_TYPEOF_MAKE_OBJ_size_t        BOOST_TYPEOF_INTEGRAL_PARAM(size_t)
-#define BOOST_TYPEOF_MAKE_OBJ_unsignedchar  BOOST_TYPEOF_INTEGRAL_PARAM(unsigned char)
-#define BOOST_TYPEOF_MAKE_OBJ_unsignedshort BOOST_TYPEOF_INTEGRAL_PARAM(unsigned short)
-#define BOOST_TYPEOF_MAKE_OBJ_unsignedint   BOOST_TYPEOF_INTEGRAL_PARAM(unsigned int)
-#define BOOST_TYPEOF_MAKE_OBJ_unsignedlong  BOOST_TYPEOF_INTEGRAL_PARAM(unsigned long)
-#define BOOST_TYPEOF_MAKE_OBJ_signedchar    BOOST_TYPEOF_INTEGRAL_PARAM(signed char)
-#define BOOST_TYPEOF_MAKE_OBJ_signedshort   BOOST_TYPEOF_INTEGRAL_PARAM(signed short)
-#define BOOST_TYPEOF_MAKE_OBJ_signedint     BOOST_TYPEOF_INTEGRAL_PARAM(signed int)
-#define BOOST_TYPEOF_MAKE_OBJ_signedlong    BOOST_TYPEOF_INTEGRAL_PARAM(signed long)
-#define BOOST_TYPEOF_MAKE_OBJ_integral(x)   BOOST_TYPEOF_INTEGRAL_PARAM(x)
+#define NDNBOOST_TYPEOF_MAKE_OBJ_char          NDNBOOST_TYPEOF_INTEGRAL_PARAM(char)
+#define NDNBOOST_TYPEOF_MAKE_OBJ_short         NDNBOOST_TYPEOF_INTEGRAL_PARAM(short)
+#define NDNBOOST_TYPEOF_MAKE_OBJ_int           NDNBOOST_TYPEOF_INTEGRAL_PARAM(int)
+#define NDNBOOST_TYPEOF_MAKE_OBJ_long          NDNBOOST_TYPEOF_INTEGRAL_PARAM(long)
+#define NDNBOOST_TYPEOF_MAKE_OBJ_bool          NDNBOOST_TYPEOF_INTEGRAL_PARAM(bool)
+#define NDNBOOST_TYPEOF_MAKE_OBJ_unsigned      NDNBOOST_TYPEOF_INTEGRAL_PARAM(unsigned)
+#define NDNBOOST_TYPEOF_MAKE_OBJ_size_t        NDNBOOST_TYPEOF_INTEGRAL_PARAM(size_t)
+#define NDNBOOST_TYPEOF_MAKE_OBJ_unsignedchar  NDNBOOST_TYPEOF_INTEGRAL_PARAM(unsigned char)
+#define NDNBOOST_TYPEOF_MAKE_OBJ_unsignedshort NDNBOOST_TYPEOF_INTEGRAL_PARAM(unsigned short)
+#define NDNBOOST_TYPEOF_MAKE_OBJ_unsignedint   NDNBOOST_TYPEOF_INTEGRAL_PARAM(unsigned int)
+#define NDNBOOST_TYPEOF_MAKE_OBJ_unsignedlong  NDNBOOST_TYPEOF_INTEGRAL_PARAM(unsigned long)
+#define NDNBOOST_TYPEOF_MAKE_OBJ_signedchar    NDNBOOST_TYPEOF_INTEGRAL_PARAM(signed char)
+#define NDNBOOST_TYPEOF_MAKE_OBJ_signedshort   NDNBOOST_TYPEOF_INTEGRAL_PARAM(signed short)
+#define NDNBOOST_TYPEOF_MAKE_OBJ_signedint     NDNBOOST_TYPEOF_INTEGRAL_PARAM(signed int)
+#define NDNBOOST_TYPEOF_MAKE_OBJ_signedlong    NDNBOOST_TYPEOF_INTEGRAL_PARAM(signed long)
+#define NDNBOOST_TYPEOF_MAKE_OBJ_integral(x)   NDNBOOST_TYPEOF_INTEGRAL_PARAM(x)
 
-#define BOOST_TYPEOF_INTEGRAL(X) integral(X) BOOST_TYPEOF_EAT
-#define BOOST_TYPEOF_EAT_BOOST_TYPEOF
-#define BOOST_TYPEOF_integral(X) (integral(X))
+#define NDNBOOST_TYPEOF_INTEGRAL(X) integral(X) NDNBOOST_TYPEOF_EAT
+#define NDNBOOST_TYPEOF_EAT_NDNBOOST_TYPEOF
+#define NDNBOOST_TYPEOF_integral(X) (integral(X))
 
-#define BOOST_TYPEOF_INTEGRAL_PARAM(Type)\
+#define NDNBOOST_TYPEOF_INTEGRAL_PARAM(Type)\
     (INTEGRAL_PARAM)\
     (Type)
 
-#define BOOST_TYPEOF_INTEGRAL_PARAM_GETTYPE(Param)\
-    BOOST_PP_SEQ_ELEM(1, Param)
+#define NDNBOOST_TYPEOF_INTEGRAL_PARAM_GETTYPE(Param)\
+    NDNBOOST_PP_SEQ_ELEM(1, Param)
 
-#define BOOST_TYPEOF_INTEGRAL_PARAM_EXPANDTYPE(Param)\
-    BOOST_TYPEOF_INTEGRAL_PARAM_GETTYPE(Param)
+#define NDNBOOST_TYPEOF_INTEGRAL_PARAM_EXPANDTYPE(Param)\
+    NDNBOOST_TYPEOF_INTEGRAL_PARAM_GETTYPE(Param)
 
 // INTEGRAL_PARAM "virtual functions" implementation
 
-#define BOOST_TYPEOF_INTEGRAL_PARAM_ENCODE(This, n)\
+#define NDNBOOST_TYPEOF_INTEGRAL_PARAM_ENCODE(This, n)\
     typedef typename ndnboost::type_of::encode_integral<\
-        BOOST_PP_CAT(V, n),\
-        BOOST_TYPEOF_INTEGRAL_PARAM_GETTYPE(This),\
-        BOOST_PP_CAT(P, n)\
-    >::type BOOST_PP_CAT(V, BOOST_PP_INC(n)); 
+        NDNBOOST_PP_CAT(V, n),\
+        NDNBOOST_TYPEOF_INTEGRAL_PARAM_GETTYPE(This),\
+        NDNBOOST_PP_CAT(P, n)\
+    >::type NDNBOOST_PP_CAT(V, NDNBOOST_PP_INC(n)); 
 
-#define BOOST_TYPEOF_INTEGRAL_PARAM_DECODE(This, n)\
-    typedef ndnboost::type_of::decode_integral<BOOST_TYPEOF_INTEGRAL_PARAM_GETTYPE(This), BOOST_PP_CAT(iter, n)> BOOST_PP_CAT(d, n);\
-    static const BOOST_TYPEOF_INTEGRAL_PARAM_GETTYPE(This) BOOST_PP_CAT(P, n) = BOOST_PP_CAT(d, n)::value;\
-    typedef typename BOOST_PP_CAT(d, n)::iter BOOST_PP_CAT(iter, BOOST_PP_INC(n));
+#define NDNBOOST_TYPEOF_INTEGRAL_PARAM_DECODE(This, n)\
+    typedef ndnboost::type_of::decode_integral<NDNBOOST_TYPEOF_INTEGRAL_PARAM_GETTYPE(This), NDNBOOST_PP_CAT(iter, n)> NDNBOOST_PP_CAT(d, n);\
+    static const NDNBOOST_TYPEOF_INTEGRAL_PARAM_GETTYPE(This) NDNBOOST_PP_CAT(P, n) = NDNBOOST_PP_CAT(d, n)::value;\
+    typedef typename NDNBOOST_PP_CAT(d, n)::iter NDNBOOST_PP_CAT(iter, NDNBOOST_PP_INC(n));
 
-#define BOOST_TYPEOF_INTEGRAL_PARAM_PLACEHOLDER(Param)\
-    (BOOST_TYPEOF_INTEGRAL_PARAM_GETTYPE(Param))0
+#define NDNBOOST_TYPEOF_INTEGRAL_PARAM_PLACEHOLDER(Param)\
+    (NDNBOOST_TYPEOF_INTEGRAL_PARAM_GETTYPE(Param))0
 
-#define BOOST_TYPEOF_INTEGRAL_PARAM_DECLARATION_TYPE(Param)\
-    BOOST_TYPEOF_INTEGRAL_PARAM_GETTYPE(Param)
+#define NDNBOOST_TYPEOF_INTEGRAL_PARAM_DECLARATION_TYPE(Param)\
+    NDNBOOST_TYPEOF_INTEGRAL_PARAM_GETTYPE(Param)
 
-#define BOOST_TYPEOF_INTEGRAL_PARAM_PLACEHOLDER_TYPES(Param, n)\
-    BOOST_PP_CAT(T,n)
+#define NDNBOOST_TYPEOF_INTEGRAL_PARAM_PLACEHOLDER_TYPES(Param, n)\
+    NDNBOOST_PP_CAT(T,n)
 
-#define BOOST_TYPEOF_INTEGRAL_PARAM_ISTEMPLATE 0
+#define NDNBOOST_TYPEOF_INTEGRAL_PARAM_ISTEMPLATE 0
 
-#endif//BOOST_TYPEOF_INTEGRAL_TEMPLATE_PARAM_HPP_INCLUDED
+#endif//NDNBOOST_TYPEOF_INTEGRAL_TEMPLATE_PARAM_HPP_INCLUDED
diff --git a/include/ndnboost/typeof/message.hpp b/include/ndnboost/typeof/message.hpp
index cabbb82..a47868f 100644
--- a/include/ndnboost/typeof/message.hpp
+++ b/include/ndnboost/typeof/message.hpp
@@ -2,7 +2,7 @@
 // Use, modification and distribution is subject to the Boost Software
 // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
 
-#if defined(_MSC_VER) && defined BOOST_TYPEOF_MESSAGES
-#    pragma message(BOOST_TYPEOF_TEXT)
+#if defined(_MSC_VER) && defined NDNBOOST_TYPEOF_MESSAGES
+#    pragma message(NDNBOOST_TYPEOF_TEXT)
 #endif
-#undef BOOST_TYPEOF_TEXT
+#undef NDNBOOST_TYPEOF_TEXT
diff --git a/include/ndnboost/typeof/modifiers.hpp b/include/ndnboost/typeof/modifiers.hpp
index afd65df..b985b6b 100644
--- a/include/ndnboost/typeof/modifiers.hpp
+++ b/include/ndnboost/typeof/modifiers.hpp
@@ -2,17 +2,17 @@
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_TYPEOF_MODIFIERS_HPP_INCLUDED
-#define BOOST_TYPEOF_MODIFIERS_HPP_INCLUDED
+#ifndef NDNBOOST_TYPEOF_MODIFIERS_HPP_INCLUDED
+#define NDNBOOST_TYPEOF_MODIFIERS_HPP_INCLUDED
 
 #include <ndnboost/typeof/encode_decode.hpp>
 #include <ndnboost/preprocessor/facilities/identity.hpp>
 
-#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
+#include NDNBOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
 
 // modifiers
 
-#define BOOST_TYPEOF_modifier_support(ID, Fun)\
+#define NDNBOOST_TYPEOF_modifier_support(ID, Fun)\
     template<class V, class T> struct encode_type_impl<V, Fun(T)>\
     {\
         typedef\
@@ -31,61 +31,61 @@
     }
 
 
-#define BOOST_TYPEOF_const_fun(T) const T
-#define BOOST_TYPEOF_volatile_fun(T) volatile T
-#define BOOST_TYPEOF_volatile_const_fun(T) volatile const T
-#define BOOST_TYPEOF_pointer_fun(T) T*
-#define BOOST_TYPEOF_reference_fun(T) T&
+#define NDNBOOST_TYPEOF_const_fun(T) const T
+#define NDNBOOST_TYPEOF_volatile_fun(T) volatile T
+#define NDNBOOST_TYPEOF_volatile_const_fun(T) volatile const T
+#define NDNBOOST_TYPEOF_pointer_fun(T) T*
+#define NDNBOOST_TYPEOF_reference_fun(T) T&
 
 #if defined(__BORLANDC__) && (__BORLANDC__ < 0x600)
 //Borland incorrectly handles T const, T const volatile and T volatile.
 //It drops the decoration no matter what, so we need to try to handle T* const etc. without loosing the top modifier.
-#define BOOST_TYPEOF_const_pointer_fun(T) T const *
-#define BOOST_TYPEOF_const_reference_fun(T) T const &
-#define BOOST_TYPEOF_volatile_pointer_fun(T) T volatile*
-#define BOOST_TYPEOF_volatile_reference_fun(T) T volatile&
-#define BOOST_TYPEOF_volatile_const_pointer_fun(T) T volatile const *
-#define BOOST_TYPEOF_volatile_const_reference_fun(T) T volatile const &
+#define NDNBOOST_TYPEOF_const_pointer_fun(T) T const *
+#define NDNBOOST_TYPEOF_const_reference_fun(T) T const &
+#define NDNBOOST_TYPEOF_volatile_pointer_fun(T) T volatile*
+#define NDNBOOST_TYPEOF_volatile_reference_fun(T) T volatile&
+#define NDNBOOST_TYPEOF_volatile_const_pointer_fun(T) T volatile const *
+#define NDNBOOST_TYPEOF_volatile_const_reference_fun(T) T volatile const &
 #endif
 
-BOOST_TYPEOF_BEGIN_ENCODE_NS
+NDNBOOST_TYPEOF_BEGIN_ENCODE_NS
 
-BOOST_TYPEOF_modifier_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_TYPEOF_const_fun);
-BOOST_TYPEOF_modifier_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_TYPEOF_volatile_fun);
-BOOST_TYPEOF_modifier_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_TYPEOF_volatile_const_fun);
-BOOST_TYPEOF_modifier_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_TYPEOF_pointer_fun);
-BOOST_TYPEOF_modifier_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_TYPEOF_reference_fun);
+NDNBOOST_TYPEOF_modifier_support(NDNBOOST_TYPEOF_UNIQUE_ID(), NDNBOOST_TYPEOF_const_fun);
+NDNBOOST_TYPEOF_modifier_support(NDNBOOST_TYPEOF_UNIQUE_ID(), NDNBOOST_TYPEOF_volatile_fun);
+NDNBOOST_TYPEOF_modifier_support(NDNBOOST_TYPEOF_UNIQUE_ID(), NDNBOOST_TYPEOF_volatile_const_fun);
+NDNBOOST_TYPEOF_modifier_support(NDNBOOST_TYPEOF_UNIQUE_ID(), NDNBOOST_TYPEOF_pointer_fun);
+NDNBOOST_TYPEOF_modifier_support(NDNBOOST_TYPEOF_UNIQUE_ID(), NDNBOOST_TYPEOF_reference_fun);
 
 #if defined(__BORLANDC__) && (__BORLANDC__ < 0x600)
-BOOST_TYPEOF_modifier_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_TYPEOF_const_pointer_fun);
-BOOST_TYPEOF_modifier_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_TYPEOF_const_reference_fun);
-BOOST_TYPEOF_modifier_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_TYPEOF_volatile_pointer_fun);
-BOOST_TYPEOF_modifier_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_TYPEOF_volatile_reference_fun);
-BOOST_TYPEOF_modifier_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_TYPEOF_volatile_const_pointer_fun);
-BOOST_TYPEOF_modifier_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_TYPEOF_volatile_const_reference_fun);
+NDNBOOST_TYPEOF_modifier_support(NDNBOOST_TYPEOF_UNIQUE_ID(), NDNBOOST_TYPEOF_const_pointer_fun);
+NDNBOOST_TYPEOF_modifier_support(NDNBOOST_TYPEOF_UNIQUE_ID(), NDNBOOST_TYPEOF_const_reference_fun);
+NDNBOOST_TYPEOF_modifier_support(NDNBOOST_TYPEOF_UNIQUE_ID(), NDNBOOST_TYPEOF_volatile_pointer_fun);
+NDNBOOST_TYPEOF_modifier_support(NDNBOOST_TYPEOF_UNIQUE_ID(), NDNBOOST_TYPEOF_volatile_reference_fun);
+NDNBOOST_TYPEOF_modifier_support(NDNBOOST_TYPEOF_UNIQUE_ID(), NDNBOOST_TYPEOF_volatile_const_pointer_fun);
+NDNBOOST_TYPEOF_modifier_support(NDNBOOST_TYPEOF_UNIQUE_ID(), NDNBOOST_TYPEOF_volatile_const_reference_fun);
 #endif
 
-BOOST_TYPEOF_END_ENCODE_NS
+NDNBOOST_TYPEOF_END_ENCODE_NS
 
-#undef BOOST_TYPEOF_modifier_support
-#undef BOOST_TYPEOF_const_fun
-#undef BOOST_TYPEOF_volatile_fun
-#undef BOOST_TYPEOF_volatile_const_fun
-#undef BOOST_TYPEOF_pointer_fun
-#undef BOOST_TYPEOF_reference_fun
+#undef NDNBOOST_TYPEOF_modifier_support
+#undef NDNBOOST_TYPEOF_const_fun
+#undef NDNBOOST_TYPEOF_volatile_fun
+#undef NDNBOOST_TYPEOF_volatile_const_fun
+#undef NDNBOOST_TYPEOF_pointer_fun
+#undef NDNBOOST_TYPEOF_reference_fun
 
 #if defined(__BORLANDC__) && (__BORLANDC__ < 0x600)
-#undef BOOST_TYPEOF_const_pointer_fun
-#undef BOOST_TYPEOF_const_reference_fun
-#undef BOOST_TYPEOF_volatile_pointer_fun
-#undef BOOST_TYPEOF_volatile_reference_fun
-#undef BOOST_TYPEOF_volatile_const_pointer_fun
-#undef BOOST_TYPEOF_volatile_const_reference_fun
+#undef NDNBOOST_TYPEOF_const_pointer_fun
+#undef NDNBOOST_TYPEOF_const_reference_fun
+#undef NDNBOOST_TYPEOF_volatile_pointer_fun
+#undef NDNBOOST_TYPEOF_volatile_reference_fun
+#undef NDNBOOST_TYPEOF_volatile_const_pointer_fun
+#undef NDNBOOST_TYPEOF_volatile_const_reference_fun
 #endif
 
 // arrays
 
-#define BOOST_TYPEOF_array_support(ID, Qualifier)\
+#define NDNBOOST_TYPEOF_array_support(ID, Qualifier)\
     template<class V, class T, int N>\
     struct encode_type_impl<V, Qualifier() T[N]>\
     {\
@@ -108,14 +108,14 @@
         typedef typename d::iter iter;\
     }
 
-BOOST_TYPEOF_BEGIN_ENCODE_NS
+NDNBOOST_TYPEOF_BEGIN_ENCODE_NS
 
-BOOST_TYPEOF_array_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_PP_EMPTY);
-BOOST_TYPEOF_array_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_PP_IDENTITY(const));
-BOOST_TYPEOF_array_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_PP_IDENTITY(volatile));
-BOOST_TYPEOF_array_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_PP_IDENTITY(volatile const));
-BOOST_TYPEOF_END_ENCODE_NS
+NDNBOOST_TYPEOF_array_support(NDNBOOST_TYPEOF_UNIQUE_ID(), NDNBOOST_PP_EMPTY);
+NDNBOOST_TYPEOF_array_support(NDNBOOST_TYPEOF_UNIQUE_ID(), NDNBOOST_PP_IDENTITY(const));
+NDNBOOST_TYPEOF_array_support(NDNBOOST_TYPEOF_UNIQUE_ID(), NDNBOOST_PP_IDENTITY(volatile));
+NDNBOOST_TYPEOF_array_support(NDNBOOST_TYPEOF_UNIQUE_ID(), NDNBOOST_PP_IDENTITY(volatile const));
+NDNBOOST_TYPEOF_END_ENCODE_NS
 
-#undef BOOST_TYPEOF_array_support
+#undef NDNBOOST_TYPEOF_array_support
 
-#endif//BOOST_TYPEOF_MODIFIERS_HPP_INCLUDED
+#endif//NDNBOOST_TYPEOF_MODIFIERS_HPP_INCLUDED
diff --git a/include/ndnboost/typeof/msvc/typeof_impl.hpp b/include/ndnboost/typeof/msvc/typeof_impl.hpp
index 2f2dd61..5dea7e1 100644
--- a/include/ndnboost/typeof/msvc/typeof_impl.hpp
+++ b/include/ndnboost/typeof/msvc/typeof_impl.hpp
@@ -6,8 +6,8 @@
 // Use, modification and distribution is subject to the Boost Software
 // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_TYPEOF_MSVC_TYPEOF_IMPL_HPP_INCLUDED
-# define BOOST_TYPEOF_MSVC_TYPEOF_IMPL_HPP_INCLUDED
+#ifndef NDNBOOST_TYPEOF_MSVC_TYPEOF_IMPL_HPP_INCLUDED
+# define NDNBOOST_TYPEOF_MSVC_TYPEOF_IMPL_HPP_INCLUDED
 
 # include <ndnboost/config.hpp>
 # include <ndnboost/detail/workaround.hpp>
@@ -15,7 +15,7 @@
 # include <ndnboost/type_traits/is_function.hpp>
 # include <ndnboost/utility/enable_if.hpp>
 
-# if BOOST_WORKAROUND(BOOST_MSVC,>=1310)
+# if NDNBOOST_WORKAROUND(NDNBOOST_MSVC,>=1310)
 #  include <typeinfo>
 # endif
 
@@ -25,7 +25,7 @@
     {
 
         //Compile time constant code
-# if BOOST_WORKAROUND(BOOST_MSVC,>=1300) && defined(_MSC_EXTENSIONS)
+# if NDNBOOST_WORKAROUND(NDNBOOST_MSVC,>=1300) && defined(_MSC_EXTENSIONS)
         template<int N> struct the_counter;
 
         template<typename T,int N = 5/*for similarity*/>
@@ -33,35 +33,35 @@
         {
             __if_exists(the_counter<N + 256>)
             {
-                BOOST_STATIC_CONSTANT(unsigned,count=(encode_counter<T,N + 257>::count));
+                NDNBOOST_STATIC_CONSTANT(unsigned,count=(encode_counter<T,N + 257>::count));
             }
             __if_not_exists(the_counter<N + 256>)
             {
                 __if_exists(the_counter<N + 64>)
                 {
-                    BOOST_STATIC_CONSTANT(unsigned,count=(encode_counter<T,N + 65>::count));
+                    NDNBOOST_STATIC_CONSTANT(unsigned,count=(encode_counter<T,N + 65>::count));
                 }
                 __if_not_exists(the_counter<N + 64>)
                 {
                     __if_exists(the_counter<N + 16>)
                     {
-                        BOOST_STATIC_CONSTANT(unsigned,count=(encode_counter<T,N + 17>::count));
+                        NDNBOOST_STATIC_CONSTANT(unsigned,count=(encode_counter<T,N + 17>::count));
                     }
                     __if_not_exists(the_counter<N + 16>)
                     {
                         __if_exists(the_counter<N + 4>)
                         {
-                            BOOST_STATIC_CONSTANT(unsigned,count=(encode_counter<T,N + 5>::count));
+                            NDNBOOST_STATIC_CONSTANT(unsigned,count=(encode_counter<T,N + 5>::count));
                         }
                         __if_not_exists(the_counter<N + 4>)
                         {
                             __if_exists(the_counter<N>)
                             {
-                                BOOST_STATIC_CONSTANT(unsigned,count=(encode_counter<T,N + 1>::count));
+                                NDNBOOST_STATIC_CONSTANT(unsigned,count=(encode_counter<T,N + 1>::count));
                             }
                             __if_not_exists(the_counter<N>)
                             {
-                                BOOST_STATIC_CONSTANT(unsigned,count=N);
+                                NDNBOOST_STATIC_CONSTANT(unsigned,count=N);
                                 typedef the_counter<N> type;
                             }
                         }
@@ -70,8 +70,8 @@
             }
         };
 
-# define BOOST_TYPEOF_INDEX(T) (encode_counter<T>::count)
-# define BOOST_TYPEOF_NEXT_INDEX(next)
+# define NDNBOOST_TYPEOF_INDEX(T) (encode_counter<T>::count)
+# define NDNBOOST_TYPEOF_NEXT_INDEX(next)
 # else
         template<int N> struct encode_counter : encode_counter<N - 1> {};
         template<> struct encode_counter<0> {};
@@ -79,13 +79,13 @@
         //Need to default to a larger value than 4, as due to MSVC's ETI errors. (sizeof(int)==4)
         char (*encode_index(...))[5];
 
-# define BOOST_TYPEOF_INDEX(T) (sizeof(*ndnboost::type_of::encode_index((ndnboost::type_of::encode_counter<1005>*)0)))
-# define BOOST_TYPEOF_NEXT_INDEX(next) friend char (*encode_index(encode_counter<next>*))[next];
+# define NDNBOOST_TYPEOF_INDEX(T) (sizeof(*ndnboost::type_of::encode_index((ndnboost::type_of::encode_counter<1005>*)0)))
+# define NDNBOOST_TYPEOF_NEXT_INDEX(next) friend char (*encode_index(encode_counter<next>*))[next];
 # endif
 
         //Typeof code
 
-# if BOOST_WORKAROUND(BOOST_MSVC,==1300)
+# if NDNBOOST_WORKAROUND(NDNBOOST_MSVC,==1300)
         template<typename ID>
         struct msvc_extract_type
         {
@@ -104,7 +104,7 @@
                 typedef T type;
             };
         };
-#elif BOOST_WORKAROUND(BOOST_MSVC,>=1400)
+#elif NDNBOOST_WORKAROUND(NDNBOOST_MSVC,>=1400)
         struct msvc_extract_type_default_param {};
 
         template<typename ID, typename T = msvc_extract_type_default_param>
@@ -155,7 +155,7 @@
 # endif
 // EAN: preprocess this block out on advice of Peder Holt
 // to eliminate errors in type_traits/common_type.hpp
-# if 0 //BOOST_WORKAROUND(BOOST_MSVC,==1310)
+# if 0 //NDNBOOST_WORKAROUND(NDNBOOST_MSVC,==1310)
         template<const std::type_info& ref_type_info>
         struct msvc_typeid_wrapper {
             typedef typename msvc_extract_type<msvc_typeid_wrapper>::id2type id2type;
@@ -187,19 +187,19 @@
         msvc_register_type<T,Organizer> typeof_register_type(const T&);
 
 
-# define BOOST_TYPEOF(expr) \
+# define NDNBOOST_TYPEOF(expr) \
     ndnboost::type_of::msvc_typeid_wrapper<typeid(ndnboost::type_of::encode_start(expr))>::type
 
-# define BOOST_TYPEOF_TPL(expr) typename BOOST_TYPEOF(expr)
+# define NDNBOOST_TYPEOF_TPL(expr) typename NDNBOOST_TYPEOF(expr)
 
-# define BOOST_TYPEOF_NESTED_TYPEDEF_TPL(name,expr) \
+# define NDNBOOST_TYPEOF_NESTED_TYPEDEF_TPL(name,expr) \
 struct name {\
     enum {_typeof_register_value=sizeof(typeid(ndnboost::type_of::typeof_register_type<name>(expr)))};\
     typedef typename ndnboost::type_of::msvc_extract_type<name>::id2type id2type;\
     typedef typename id2type::type type;\
 };
 
-# define BOOST_TYPEOF_NESTED_TYPEDEF(name,expr) \
+# define NDNBOOST_TYPEOF_NESTED_TYPEDEF(name,expr) \
 struct name {\
     enum {_typeof_register_value=sizeof(typeid(ndnboost::type_of::typeof_register_type<name>(expr)))};\
     typedef ndnboost::type_of::msvc_extract_type<name>::id2type id2type;\
@@ -228,13 +228,13 @@
         struct encode_type
         {
             //Get the next available compile time constants index
-            BOOST_STATIC_CONSTANT(unsigned,value=BOOST_TYPEOF_INDEX(T));
+            NDNBOOST_STATIC_CONSTANT(unsigned,value=NDNBOOST_TYPEOF_INDEX(T));
             //Instantiate the template
             typedef typename msvc_register_type<T,mpl::int_<value> >::id2type type;
             //Set the next compile time constants index
-            BOOST_STATIC_CONSTANT(unsigned,next=value+1);
+            NDNBOOST_STATIC_CONSTANT(unsigned,next=value+1);
             //Increment the compile time constant (only needed when extensions are not active
-            BOOST_TYPEOF_NEXT_INDEX(next);
+            NDNBOOST_TYPEOF_NEXT_INDEX(next);
         };
 
         template<class T>
@@ -242,7 +242,7 @@
         {
             typedef char(*type)[encode_type<T>::value];
         };
-# if BOOST_WORKAROUND(BOOST_MSVC,>=1310)
+# if NDNBOOST_WORKAROUND(NDNBOOST_MSVC,>=1310)
         template<typename T> typename disable_if<
             typename is_function<T>::type,
             typename sizer<T>::type>::type encode_start(T const&);
@@ -257,21 +257,21 @@
         template<typename Organizer, typename T>
         msvc_register_type<T,Organizer> typeof_register_type(const T&,Organizer* =0);
 
-# define BOOST_TYPEOF(expr) \
+# define NDNBOOST_TYPEOF(expr) \
     ndnboost::type_of::msvc_typeid_wrapper<sizeof(*ndnboost::type_of::encode_start(expr))>::type
 
-# define BOOST_TYPEOF_TPL(expr) typename BOOST_TYPEOF(expr)
+# define NDNBOOST_TYPEOF_TPL(expr) typename NDNBOOST_TYPEOF(expr)
 
-# define BOOST_TYPEOF_NESTED_TYPEDEF_TPL(name,expr) \
+# define NDNBOOST_TYPEOF_NESTED_TYPEDEF_TPL(name,expr) \
     struct name {\
-        BOOST_STATIC_CONSTANT(int,_typeof_register_value=sizeof(ndnboost::type_of::typeof_register_type<name>(expr)));\
+        NDNBOOST_STATIC_CONSTANT(int,_typeof_register_value=sizeof(ndnboost::type_of::typeof_register_type<name>(expr)));\
         typedef typename ndnboost::type_of::msvc_extract_type<name>::id2type id2type;\
         typedef typename id2type::type type;\
     };
 
-# define BOOST_TYPEOF_NESTED_TYPEDEF(name,expr) \
+# define NDNBOOST_TYPEOF_NESTED_TYPEDEF(name,expr) \
     struct name {\
-        BOOST_STATIC_CONSTANT(int,_typeof_register_value=sizeof(ndnboost::type_of::typeof_register_type<name>(expr)));\
+        NDNBOOST_STATIC_CONSTANT(int,_typeof_register_value=sizeof(ndnboost::type_of::typeof_register_type<name>(expr)));\
         typedef ndnboost::type_of::msvc_extract_type<name>::id2type id2type;\
         typedef id2type::type type;\
     };
@@ -280,4 +280,4 @@
     }
 }
 
-#endif//BOOST_TYPEOF_MSVC_TYPEOF_IMPL_HPP_INCLUDED
+#endif//NDNBOOST_TYPEOF_MSVC_TYPEOF_IMPL_HPP_INCLUDED
diff --git a/include/ndnboost/typeof/native.hpp b/include/ndnboost/typeof/native.hpp
index 3caf7ba..d88b419 100644
--- a/include/ndnboost/typeof/native.hpp
+++ b/include/ndnboost/typeof/native.hpp
@@ -2,12 +2,12 @@
 // Use, modification and distribution is subject to the Boost Software
 // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_TYPEOF_NATIVE_HPP_INCLUDED
-#define BOOST_TYPEOF_NATIVE_HPP_INCLUDED
+#ifndef NDNBOOST_TYPEOF_NATIVE_HPP_INCLUDED
+#define NDNBOOST_TYPEOF_NATIVE_HPP_INCLUDED
 
 #ifndef MSVC_TYPEOF_HACK
 
-#ifdef BOOST_NO_SFINAE
+#ifdef NDNBOOST_NO_SFINAE
 
 namespace ndnboost { namespace type_of {
 
@@ -22,7 +22,7 @@
 #include <ndnboost/utility/enable_if.hpp>
 
 namespace ndnboost { namespace type_of {
-# ifdef BOOST_NO_SFINAE
+# ifdef NDNBOOST_NO_SFINAE
     template<class T> 
     T& ensure_obj(const T&);
 # else
@@ -36,25 +36,25 @@
 # endif
 }}
 
-#endif//BOOST_NO_SFINAE
+#endif//NDNBOOST_NO_SFINAE
 
-#define BOOST_TYPEOF(expr) BOOST_TYPEOF_KEYWORD(ndnboost::type_of::ensure_obj(expr))
-#define BOOST_TYPEOF_TPL BOOST_TYPEOF
+#define NDNBOOST_TYPEOF(expr) NDNBOOST_TYPEOF_KEYWORD(ndnboost::type_of::ensure_obj(expr))
+#define NDNBOOST_TYPEOF_TPL NDNBOOST_TYPEOF
 
-#define BOOST_TYPEOF_NESTED_TYPEDEF_TPL(name,expr) \
+#define NDNBOOST_TYPEOF_NESTED_TYPEDEF_TPL(name,expr) \
     struct name {\
-        typedef BOOST_TYPEOF_TPL(expr) type;\
+        typedef NDNBOOST_TYPEOF_TPL(expr) type;\
     };
 
-#define BOOST_TYPEOF_NESTED_TYPEDEF(name,expr) \
+#define NDNBOOST_TYPEOF_NESTED_TYPEDEF(name,expr) \
     struct name {\
-        typedef BOOST_TYPEOF(expr) type;\
+        typedef NDNBOOST_TYPEOF(expr) type;\
     };
 
 #endif//MSVC_TYPEOF_HACK
 
-#define BOOST_TYPEOF_REGISTER_TYPE(x)
-#define BOOST_TYPEOF_REGISTER_TEMPLATE(x, params)
+#define NDNBOOST_TYPEOF_REGISTER_TYPE(x)
+#define NDNBOOST_TYPEOF_REGISTER_TEMPLATE(x, params)
 
-#endif//BOOST_TYPEOF_NATIVE_HPP_INCLUDED
+#endif//NDNBOOST_TYPEOF_NATIVE_HPP_INCLUDED
 
diff --git a/include/ndnboost/typeof/pointers_data_members.hpp b/include/ndnboost/typeof/pointers_data_members.hpp
index e376f8e..e1872d9 100644
--- a/include/ndnboost/typeof/pointers_data_members.hpp
+++ b/include/ndnboost/typeof/pointers_data_members.hpp
@@ -2,29 +2,29 @@
 // Use, modification and distribution is subject to the Boost Software
 // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_TYPEOF_POINTERS_DATA_MEMBERS_HPP_INCLUDED
-#define BOOST_TYPEOF_POINTERS_DATA_MEMBERS_HPP_INCLUDED
+#ifndef NDNBOOST_TYPEOF_POINTERS_DATA_MEMBERS_HPP_INCLUDED
+#define NDNBOOST_TYPEOF_POINTERS_DATA_MEMBERS_HPP_INCLUDED
 
 #include <ndnboost/typeof/encode_decode_params.hpp>
 #include <ndnboost/typeof/encode_decode.hpp>
 
-#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
+#include NDNBOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
 
-BOOST_TYPEOF_BEGIN_ENCODE_NS
+NDNBOOST_TYPEOF_BEGIN_ENCODE_NS
 
-enum {PTR_DATA_MEM_ID = BOOST_TYPEOF_UNIQUE_ID()};
+enum {PTR_DATA_MEM_ID = NDNBOOST_TYPEOF_UNIQUE_ID()};
 
 template<class V, class P0, class P1>
 struct encode_type_impl<V, P0 P1::*>
 {
-    typedef BOOST_TYPEOF_ENCODE_PARAMS(2, PTR_DATA_MEM_ID) type;
+    typedef NDNBOOST_TYPEOF_ENCODE_PARAMS(2, PTR_DATA_MEM_ID) type;
 };
 
 template<class Iter>
 struct decode_type_impl<ndnboost::mpl::size_t<PTR_DATA_MEM_ID>, Iter>
 {
     typedef Iter iter0;
-    BOOST_TYPEOF_DECODE_PARAMS(2)
+    NDNBOOST_TYPEOF_DECODE_PARAMS(2)
 
     template<class T> struct workaround{
         typedef p0 T::* type;
@@ -33,6 +33,6 @@
     typedef iter2 iter;
 };
 
-BOOST_TYPEOF_END_ENCODE_NS
+NDNBOOST_TYPEOF_END_ENCODE_NS
 
-#endif//BOOST_TYPEOF_POINTERS_DATA_MEMBERS_HPP_INCLUDED
+#endif//NDNBOOST_TYPEOF_POINTERS_DATA_MEMBERS_HPP_INCLUDED
diff --git a/include/ndnboost/typeof/register_functions.hpp b/include/ndnboost/typeof/register_functions.hpp
index 6d0e107..bb229f9 100644
--- a/include/ndnboost/typeof/register_functions.hpp
+++ b/include/ndnboost/typeof/register_functions.hpp
@@ -2,8 +2,8 @@
 // Use, modification and distribution is subject to the Boost Software
 // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_TYPEOF_REGISTER_FUNCTIONS_HPP_INCLUDED
-#define BOOST_TYPEOF_REGISTER_FUNCTIONS_HPP_INCLUDED
+#ifndef NDNBOOST_TYPEOF_REGISTER_FUNCTIONS_HPP_INCLUDED
+#define NDNBOOST_TYPEOF_REGISTER_FUNCTIONS_HPP_INCLUDED
 
 #include <ndnboost/preprocessor/repetition/enum.hpp>
 #include <ndnboost/preprocessor/repetition/enum_params.hpp>
@@ -15,36 +15,36 @@
 #include <ndnboost/preprocessor/arithmetic/add.hpp>
 #include <ndnboost/preprocessor/iteration/iterate.hpp>
 
-#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
+#include NDNBOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
 
-#ifndef BOOST_TYPEOF_LIMIT_FUNCTION_ARITY
-#define BOOST_TYPEOF_LIMIT_FUNCTION_ARITY 10
+#ifndef NDNBOOST_TYPEOF_LIMIT_FUNCTION_ARITY
+#define NDNBOOST_TYPEOF_LIMIT_FUNCTION_ARITY 10
 #endif
 
 enum 
 {
-    FUN_ID                          = BOOST_TYPEOF_UNIQUE_ID(),
-    FUN_PTR_ID                      = FUN_ID +  1 * BOOST_PP_INC(BOOST_TYPEOF_LIMIT_FUNCTION_ARITY),
-    FUN_REF_ID                      = FUN_ID +  2 * BOOST_PP_INC(BOOST_TYPEOF_LIMIT_FUNCTION_ARITY),
-    MEM_FUN_ID                      = FUN_ID +  3 * BOOST_PP_INC(BOOST_TYPEOF_LIMIT_FUNCTION_ARITY),
-    CONST_MEM_FUN_ID                = FUN_ID +  4 * BOOST_PP_INC(BOOST_TYPEOF_LIMIT_FUNCTION_ARITY),
-    VOLATILE_MEM_FUN_ID             = FUN_ID +  5 * BOOST_PP_INC(BOOST_TYPEOF_LIMIT_FUNCTION_ARITY),
-    VOLATILE_CONST_MEM_FUN_ID       = FUN_ID +  6 * BOOST_PP_INC(BOOST_TYPEOF_LIMIT_FUNCTION_ARITY),
-    FUN_VAR_ID                      = FUN_ID +  7 * BOOST_PP_INC(BOOST_TYPEOF_LIMIT_FUNCTION_ARITY),
-    FUN_VAR_PTR_ID                  = FUN_ID +  8 * BOOST_PP_INC(BOOST_TYPEOF_LIMIT_FUNCTION_ARITY),
-    FUN_VAR_REF_ID                  = FUN_ID +  9 * BOOST_PP_INC(BOOST_TYPEOF_LIMIT_FUNCTION_ARITY),
-    MEM_FUN_VAR_ID                  = FUN_ID + 10 * BOOST_PP_INC(BOOST_TYPEOF_LIMIT_FUNCTION_ARITY),
-    CONST_MEM_FUN_VAR_ID            = FUN_ID + 11 * BOOST_PP_INC(BOOST_TYPEOF_LIMIT_FUNCTION_ARITY),
-    VOLATILE_MEM_FUN_VAR_ID         = FUN_ID + 12 * BOOST_PP_INC(BOOST_TYPEOF_LIMIT_FUNCTION_ARITY),
-    VOLATILE_CONST_MEM_FUN_VAR_ID   = FUN_ID + 13 * BOOST_PP_INC(BOOST_TYPEOF_LIMIT_FUNCTION_ARITY)
+    FUN_ID                          = NDNBOOST_TYPEOF_UNIQUE_ID(),
+    FUN_PTR_ID                      = FUN_ID +  1 * NDNBOOST_PP_INC(NDNBOOST_TYPEOF_LIMIT_FUNCTION_ARITY),
+    FUN_REF_ID                      = FUN_ID +  2 * NDNBOOST_PP_INC(NDNBOOST_TYPEOF_LIMIT_FUNCTION_ARITY),
+    MEM_FUN_ID                      = FUN_ID +  3 * NDNBOOST_PP_INC(NDNBOOST_TYPEOF_LIMIT_FUNCTION_ARITY),
+    CONST_MEM_FUN_ID                = FUN_ID +  4 * NDNBOOST_PP_INC(NDNBOOST_TYPEOF_LIMIT_FUNCTION_ARITY),
+    VOLATILE_MEM_FUN_ID             = FUN_ID +  5 * NDNBOOST_PP_INC(NDNBOOST_TYPEOF_LIMIT_FUNCTION_ARITY),
+    VOLATILE_CONST_MEM_FUN_ID       = FUN_ID +  6 * NDNBOOST_PP_INC(NDNBOOST_TYPEOF_LIMIT_FUNCTION_ARITY),
+    FUN_VAR_ID                      = FUN_ID +  7 * NDNBOOST_PP_INC(NDNBOOST_TYPEOF_LIMIT_FUNCTION_ARITY),
+    FUN_VAR_PTR_ID                  = FUN_ID +  8 * NDNBOOST_PP_INC(NDNBOOST_TYPEOF_LIMIT_FUNCTION_ARITY),
+    FUN_VAR_REF_ID                  = FUN_ID +  9 * NDNBOOST_PP_INC(NDNBOOST_TYPEOF_LIMIT_FUNCTION_ARITY),
+    MEM_FUN_VAR_ID                  = FUN_ID + 10 * NDNBOOST_PP_INC(NDNBOOST_TYPEOF_LIMIT_FUNCTION_ARITY),
+    CONST_MEM_FUN_VAR_ID            = FUN_ID + 11 * NDNBOOST_PP_INC(NDNBOOST_TYPEOF_LIMIT_FUNCTION_ARITY),
+    VOLATILE_MEM_FUN_VAR_ID         = FUN_ID + 12 * NDNBOOST_PP_INC(NDNBOOST_TYPEOF_LIMIT_FUNCTION_ARITY),
+    VOLATILE_CONST_MEM_FUN_VAR_ID   = FUN_ID + 13 * NDNBOOST_PP_INC(NDNBOOST_TYPEOF_LIMIT_FUNCTION_ARITY)
 };
 
-BOOST_TYPEOF_BEGIN_ENCODE_NS
+NDNBOOST_TYPEOF_BEGIN_ENCODE_NS
 
-# define BOOST_PP_ITERATION_LIMITS (0, BOOST_TYPEOF_LIMIT_FUNCTION_ARITY)
-# define BOOST_PP_FILENAME_1 <ndnboost/typeof/register_functions_iterate.hpp>
-# include BOOST_PP_ITERATE()
+# define NDNBOOST_PP_ITERATION_LIMITS (0, NDNBOOST_TYPEOF_LIMIT_FUNCTION_ARITY)
+# define NDNBOOST_PP_FILENAME_1 <ndnboost/typeof/register_functions_iterate.hpp>
+# include NDNBOOST_PP_ITERATE()
 
-BOOST_TYPEOF_END_ENCODE_NS
+NDNBOOST_TYPEOF_END_ENCODE_NS
 
-#endif//BOOST_TYPEOF_REGISTER_FUNCTIONS_HPP_INCLUDED
+#endif//NDNBOOST_TYPEOF_REGISTER_FUNCTIONS_HPP_INCLUDED
diff --git a/include/ndnboost/typeof/register_functions_iterate.hpp b/include/ndnboost/typeof/register_functions_iterate.hpp
index 0d3d9df..3f487a9 100644
--- a/include/ndnboost/typeof/register_functions_iterate.hpp
+++ b/include/ndnboost/typeof/register_functions_iterate.hpp
@@ -4,131 +4,131 @@
 
 #include <ndnboost/typeof/encode_decode_params.hpp>
 
-#define n BOOST_PP_ITERATION()
+#define n NDNBOOST_PP_ITERATION()
 
 // function pointers
 
-template<class V, class R BOOST_PP_ENUM_TRAILING_PARAMS(n, class P)>
-struct encode_type_impl<V, R(*)(BOOST_PP_ENUM_PARAMS(n, P))>
+template<class V, class R NDNBOOST_PP_ENUM_TRAILING_PARAMS(n, class P)>
+struct encode_type_impl<V, R(*)(NDNBOOST_PP_ENUM_PARAMS(n, P))>
 {
-    typedef R BOOST_PP_CAT(P, n);
-    typedef BOOST_TYPEOF_ENCODE_PARAMS(BOOST_PP_INC(n), FUN_PTR_ID + n) type;
+    typedef R NDNBOOST_PP_CAT(P, n);
+    typedef NDNBOOST_TYPEOF_ENCODE_PARAMS(NDNBOOST_PP_INC(n), FUN_PTR_ID + n) type;
 };
 
-template<class V, class R BOOST_PP_ENUM_TRAILING_PARAMS(n, class P)>
-struct encode_type_impl<V, R(*)(BOOST_PP_ENUM_PARAMS(n, P) ...)>
+template<class V, class R NDNBOOST_PP_ENUM_TRAILING_PARAMS(n, class P)>
+struct encode_type_impl<V, R(*)(NDNBOOST_PP_ENUM_PARAMS(n, P) ...)>
 {
-    typedef R BOOST_PP_CAT(P, n);
-    typedef BOOST_TYPEOF_ENCODE_PARAMS(BOOST_PP_INC(n), FUN_VAR_PTR_ID + n) type;
+    typedef R NDNBOOST_PP_CAT(P, n);
+    typedef NDNBOOST_TYPEOF_ENCODE_PARAMS(NDNBOOST_PP_INC(n), FUN_VAR_PTR_ID + n) type;
 };
 
 template<class Iter>
 struct decode_type_impl<ndnboost::mpl::size_t<FUN_PTR_ID + n>, Iter>
 {
     typedef Iter iter0;
-    BOOST_TYPEOF_DECODE_PARAMS(BOOST_PP_INC(n))
-    typedef BOOST_PP_CAT(p, n)(*type)(BOOST_PP_ENUM_PARAMS(n, p));
-    typedef BOOST_PP_CAT(iter, BOOST_PP_INC(n)) iter;
+    NDNBOOST_TYPEOF_DECODE_PARAMS(NDNBOOST_PP_INC(n))
+    typedef NDNBOOST_PP_CAT(p, n)(*type)(NDNBOOST_PP_ENUM_PARAMS(n, p));
+    typedef NDNBOOST_PP_CAT(iter, NDNBOOST_PP_INC(n)) iter;
 };
 
 template<class Iter>
 struct decode_type_impl<ndnboost::mpl::size_t<FUN_VAR_PTR_ID + n>, Iter>
 {
     typedef Iter iter0;
-    BOOST_TYPEOF_DECODE_PARAMS(BOOST_PP_INC(n))
-    typedef BOOST_PP_CAT(p, n)(*type)(BOOST_PP_ENUM_PARAMS(n, p) ...);
-    typedef BOOST_PP_CAT(iter, BOOST_PP_INC(n)) iter;
+    NDNBOOST_TYPEOF_DECODE_PARAMS(NDNBOOST_PP_INC(n))
+    typedef NDNBOOST_PP_CAT(p, n)(*type)(NDNBOOST_PP_ENUM_PARAMS(n, p) ...);
+    typedef NDNBOOST_PP_CAT(iter, NDNBOOST_PP_INC(n)) iter;
 };
 
-#ifndef BOOST_TYPEOF_NO_FUNCTION_TYPES
+#ifndef NDNBOOST_TYPEOF_NO_FUNCTION_TYPES
 
     // function references
 
-    template<class V, class R BOOST_PP_ENUM_TRAILING_PARAMS(n, class P)>
-    struct encode_type_impl<V, R(&)(BOOST_PP_ENUM_PARAMS(n, P))>
+    template<class V, class R NDNBOOST_PP_ENUM_TRAILING_PARAMS(n, class P)>
+    struct encode_type_impl<V, R(&)(NDNBOOST_PP_ENUM_PARAMS(n, P))>
     {
-        typedef R BOOST_PP_CAT(P, n);
-        typedef BOOST_TYPEOF_ENCODE_PARAMS(BOOST_PP_INC(n), FUN_REF_ID + n) type;
+        typedef R NDNBOOST_PP_CAT(P, n);
+        typedef NDNBOOST_TYPEOF_ENCODE_PARAMS(NDNBOOST_PP_INC(n), FUN_REF_ID + n) type;
     };
 
-    template<class V, class R BOOST_PP_ENUM_TRAILING_PARAMS(n, class P)>
-    struct encode_type_impl<V, R(&)(BOOST_PP_ENUM_PARAMS(n, P) ...)>
+    template<class V, class R NDNBOOST_PP_ENUM_TRAILING_PARAMS(n, class P)>
+    struct encode_type_impl<V, R(&)(NDNBOOST_PP_ENUM_PARAMS(n, P) ...)>
     {
-        typedef R BOOST_PP_CAT(P, n);
-        typedef BOOST_TYPEOF_ENCODE_PARAMS(BOOST_PP_INC(n), FUN_VAR_REF_ID + n) type;
+        typedef R NDNBOOST_PP_CAT(P, n);
+        typedef NDNBOOST_TYPEOF_ENCODE_PARAMS(NDNBOOST_PP_INC(n), FUN_VAR_REF_ID + n) type;
     };
 
     template<class Iter>
     struct decode_type_impl<ndnboost::mpl::size_t<FUN_REF_ID + n>, Iter>
     {
         typedef Iter iter0;
-        BOOST_TYPEOF_DECODE_PARAMS(BOOST_PP_INC(n))
-        typedef BOOST_PP_CAT(p, n)(&type)(BOOST_PP_ENUM_PARAMS(n, p));
-        typedef BOOST_PP_CAT(iter, BOOST_PP_INC(n)) iter;
+        NDNBOOST_TYPEOF_DECODE_PARAMS(NDNBOOST_PP_INC(n))
+        typedef NDNBOOST_PP_CAT(p, n)(&type)(NDNBOOST_PP_ENUM_PARAMS(n, p));
+        typedef NDNBOOST_PP_CAT(iter, NDNBOOST_PP_INC(n)) iter;
     };
 
     template<class Iter>
     struct decode_type_impl<ndnboost::mpl::size_t<FUN_VAR_REF_ID + n>, Iter>
     {
         typedef Iter iter0;
-        BOOST_TYPEOF_DECODE_PARAMS(BOOST_PP_INC(n))
-        typedef BOOST_PP_CAT(p, n)(&type)(BOOST_PP_ENUM_PARAMS(n, p) ...);
-        typedef BOOST_PP_CAT(iter, BOOST_PP_INC(n)) iter;
+        NDNBOOST_TYPEOF_DECODE_PARAMS(NDNBOOST_PP_INC(n))
+        typedef NDNBOOST_PP_CAT(p, n)(&type)(NDNBOOST_PP_ENUM_PARAMS(n, p) ...);
+        typedef NDNBOOST_PP_CAT(iter, NDNBOOST_PP_INC(n)) iter;
     };
 
     // functions
 
-    template<class V, class R BOOST_PP_ENUM_TRAILING_PARAMS(n, class P)>
-    struct encode_type_impl<V, R(BOOST_PP_ENUM_PARAMS(n, P))>
+    template<class V, class R NDNBOOST_PP_ENUM_TRAILING_PARAMS(n, class P)>
+    struct encode_type_impl<V, R(NDNBOOST_PP_ENUM_PARAMS(n, P))>
     {
-        typedef R BOOST_PP_CAT(P, n);
-        typedef BOOST_TYPEOF_ENCODE_PARAMS(BOOST_PP_INC(n), FUN_ID + n) type;
+        typedef R NDNBOOST_PP_CAT(P, n);
+        typedef NDNBOOST_TYPEOF_ENCODE_PARAMS(NDNBOOST_PP_INC(n), FUN_ID + n) type;
     };
 
-    template<class V, class R BOOST_PP_ENUM_TRAILING_PARAMS(n, class P)>
-    struct encode_type_impl<V, R(BOOST_PP_ENUM_PARAMS(n, P) ...)>
+    template<class V, class R NDNBOOST_PP_ENUM_TRAILING_PARAMS(n, class P)>
+    struct encode_type_impl<V, R(NDNBOOST_PP_ENUM_PARAMS(n, P) ...)>
     {
-        typedef R BOOST_PP_CAT(P, n);
-        typedef BOOST_TYPEOF_ENCODE_PARAMS(BOOST_PP_INC(n), FUN_VAR_ID + n) type;
+        typedef R NDNBOOST_PP_CAT(P, n);
+        typedef NDNBOOST_TYPEOF_ENCODE_PARAMS(NDNBOOST_PP_INC(n), FUN_VAR_ID + n) type;
     };
 
     template<class Iter>
     struct decode_type_impl<ndnboost::mpl::size_t<FUN_ID + n>, Iter>
     {
         typedef Iter iter0;
-        BOOST_TYPEOF_DECODE_PARAMS(BOOST_PP_INC(n))
-        typedef BOOST_PP_CAT(p, n)(type)(BOOST_PP_ENUM_PARAMS(n, p));
-        typedef BOOST_PP_CAT(iter, BOOST_PP_INC(n)) iter;
+        NDNBOOST_TYPEOF_DECODE_PARAMS(NDNBOOST_PP_INC(n))
+        typedef NDNBOOST_PP_CAT(p, n)(type)(NDNBOOST_PP_ENUM_PARAMS(n, p));
+        typedef NDNBOOST_PP_CAT(iter, NDNBOOST_PP_INC(n)) iter;
     };
 
     template<class Iter>
     struct decode_type_impl<ndnboost::mpl::size_t<FUN_VAR_ID + n>, Iter>
     {
         typedef Iter iter0;
-        BOOST_TYPEOF_DECODE_PARAMS(BOOST_PP_INC(n))
-        typedef BOOST_PP_CAT(p, n)(type)(BOOST_PP_ENUM_PARAMS(n, p) ...);
-        typedef BOOST_PP_CAT(iter, BOOST_PP_INC(n)) iter;
+        NDNBOOST_TYPEOF_DECODE_PARAMS(NDNBOOST_PP_INC(n))
+        typedef NDNBOOST_PP_CAT(p, n)(type)(NDNBOOST_PP_ENUM_PARAMS(n, p) ...);
+        typedef NDNBOOST_PP_CAT(iter, NDNBOOST_PP_INC(n)) iter;
     };
 
-#endif//BOOST_TYPEOF_NO_FUNCTION_TYPES
+#endif//NDNBOOST_TYPEOF_NO_FUNCTION_TYPES
 
-#ifndef BOOST_TYPEOF_NO_MEMBER_FUNCTION_TYPES
+#ifndef NDNBOOST_TYPEOF_NO_MEMBER_FUNCTION_TYPES
 // member functions
 
-#define BOOST_TYPEOF_qualifier
-#define BOOST_TYPEOF_id MEM_FUN_ID
+#define NDNBOOST_TYPEOF_qualifier
+#define NDNBOOST_TYPEOF_id MEM_FUN_ID
 #include <ndnboost/typeof/register_mem_functions.hpp>
 
-#define BOOST_TYPEOF_qualifier const
-#define BOOST_TYPEOF_id CONST_MEM_FUN_ID
+#define NDNBOOST_TYPEOF_qualifier const
+#define NDNBOOST_TYPEOF_id CONST_MEM_FUN_ID
 #include <ndnboost/typeof/register_mem_functions.hpp>
 
-#define BOOST_TYPEOF_qualifier volatile
-#define BOOST_TYPEOF_id VOLATILE_MEM_FUN_ID
+#define NDNBOOST_TYPEOF_qualifier volatile
+#define NDNBOOST_TYPEOF_id VOLATILE_MEM_FUN_ID
 #include <ndnboost/typeof/register_mem_functions.hpp>
 
-#define BOOST_TYPEOF_qualifier volatile const
-#define BOOST_TYPEOF_id VOLATILE_CONST_MEM_FUN_ID
+#define NDNBOOST_TYPEOF_qualifier volatile const
+#define NDNBOOST_TYPEOF_id VOLATILE_CONST_MEM_FUN_ID
 #include <ndnboost/typeof/register_mem_functions.hpp>
 
 #undef n
diff --git a/include/ndnboost/typeof/register_fundamental.hpp b/include/ndnboost/typeof/register_fundamental.hpp
index c1b99d8..2e72ef3 100644
--- a/include/ndnboost/typeof/register_fundamental.hpp
+++ b/include/ndnboost/typeof/register_fundamental.hpp
@@ -3,60 +3,60 @@
 // Use, modification and distribution is subject to the Boost Software
 // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_TYPEOF_REGISTER_FUNDAMENTAL_HPP_INCLUDED
-#define BOOST_TYPEOF_REGISTER_FUNDAMENTAL_HPP_INCLUDED
+#ifndef NDNBOOST_TYPEOF_REGISTER_FUNDAMENTAL_HPP_INCLUDED
+#define NDNBOOST_TYPEOF_REGISTER_FUNDAMENTAL_HPP_INCLUDED
 
 #include <ndnboost/typeof/typeof.hpp>
 
-#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
+#include NDNBOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
 
-BOOST_TYPEOF_REGISTER_TYPE(unsigned char)
-BOOST_TYPEOF_REGISTER_TYPE(unsigned short)
-BOOST_TYPEOF_REGISTER_TYPE(unsigned int)
-BOOST_TYPEOF_REGISTER_TYPE(unsigned long)
+NDNBOOST_TYPEOF_REGISTER_TYPE(unsigned char)
+NDNBOOST_TYPEOF_REGISTER_TYPE(unsigned short)
+NDNBOOST_TYPEOF_REGISTER_TYPE(unsigned int)
+NDNBOOST_TYPEOF_REGISTER_TYPE(unsigned long)
 
-BOOST_TYPEOF_REGISTER_TYPE(signed char)
-BOOST_TYPEOF_REGISTER_TYPE(signed short)
-BOOST_TYPEOF_REGISTER_TYPE(signed int)
-BOOST_TYPEOF_REGISTER_TYPE(signed long)
+NDNBOOST_TYPEOF_REGISTER_TYPE(signed char)
+NDNBOOST_TYPEOF_REGISTER_TYPE(signed short)
+NDNBOOST_TYPEOF_REGISTER_TYPE(signed int)
+NDNBOOST_TYPEOF_REGISTER_TYPE(signed long)
 
-BOOST_TYPEOF_REGISTER_TYPE(bool)
-BOOST_TYPEOF_REGISTER_TYPE(char)
+NDNBOOST_TYPEOF_REGISTER_TYPE(bool)
+NDNBOOST_TYPEOF_REGISTER_TYPE(char)
 
-BOOST_TYPEOF_REGISTER_TYPE(float)
-BOOST_TYPEOF_REGISTER_TYPE(double)
-BOOST_TYPEOF_REGISTER_TYPE(long double)
+NDNBOOST_TYPEOF_REGISTER_TYPE(float)
+NDNBOOST_TYPEOF_REGISTER_TYPE(double)
+NDNBOOST_TYPEOF_REGISTER_TYPE(long double)
 
-#ifndef BOOST_NO_INTRINSIC_WCHAR_T
+#ifndef NDNBOOST_NO_INTRINSIC_WCHAR_T
 // If the following line fails to compile and you're using the Intel
 // compiler, see http://lists.boost.org/MailArchives/boost-users/msg06567.php,
-// and define BOOST_NO_INTRINSIC_WCHAR_T on the command line.
-BOOST_TYPEOF_REGISTER_TYPE(wchar_t)
+// and define NDNBOOST_NO_INTRINSIC_WCHAR_T on the command line.
+NDNBOOST_TYPEOF_REGISTER_TYPE(wchar_t)
 #endif
 
-#if (defined(BOOST_MSVC) && (BOOST_MSVC == 1200)) \
-    || (defined(BOOST_INTEL_CXX_VERSION) && defined(_MSC_VER) && (BOOST_INTEL_CXX_VERSION <= 600)) \
+#if (defined(NDNBOOST_MSVC) && (NDNBOOST_MSVC == 1200)) \
+    || (defined(NDNBOOST_INTEL_CXX_VERSION) && defined(_MSC_VER) && (NDNBOOST_INTEL_CXX_VERSION <= 600)) \
     || (defined(__BORLANDC__) && (__BORLANDC__ == 0x600) && (_MSC_VER == 1200))
-BOOST_TYPEOF_REGISTER_TYPE(unsigned __int8)
-BOOST_TYPEOF_REGISTER_TYPE(__int8)
-BOOST_TYPEOF_REGISTER_TYPE(unsigned __int16)
-BOOST_TYPEOF_REGISTER_TYPE(__int16)
-BOOST_TYPEOF_REGISTER_TYPE(unsigned __int32)
-BOOST_TYPEOF_REGISTER_TYPE(__int32)
+NDNBOOST_TYPEOF_REGISTER_TYPE(unsigned __int8)
+NDNBOOST_TYPEOF_REGISTER_TYPE(__int8)
+NDNBOOST_TYPEOF_REGISTER_TYPE(unsigned __int16)
+NDNBOOST_TYPEOF_REGISTER_TYPE(__int16)
+NDNBOOST_TYPEOF_REGISTER_TYPE(unsigned __int32)
+NDNBOOST_TYPEOF_REGISTER_TYPE(__int32)
 #ifdef __BORLANDC__
-BOOST_TYPEOF_REGISTER_TYPE(unsigned __int64)
-BOOST_TYPEOF_REGISTER_TYPE(__int64)
+NDNBOOST_TYPEOF_REGISTER_TYPE(unsigned __int64)
+NDNBOOST_TYPEOF_REGISTER_TYPE(__int64)
 #endif
 #endif
 
-# if defined(BOOST_HAS_LONG_LONG)
-BOOST_TYPEOF_REGISTER_TYPE(::ndnboost::ulong_long_type)
-BOOST_TYPEOF_REGISTER_TYPE(::ndnboost::long_long_type)
-#elif defined(BOOST_HAS_MS_INT64)
-BOOST_TYPEOF_REGISTER_TYPE(unsigned __int64)
-BOOST_TYPEOF_REGISTER_TYPE(__int64)
+# if defined(NDNBOOST_HAS_LONG_LONG)
+NDNBOOST_TYPEOF_REGISTER_TYPE(::ndnboost::ulong_long_type)
+NDNBOOST_TYPEOF_REGISTER_TYPE(::ndnboost::long_long_type)
+#elif defined(NDNBOOST_HAS_MS_INT64)
+NDNBOOST_TYPEOF_REGISTER_TYPE(unsigned __int64)
+NDNBOOST_TYPEOF_REGISTER_TYPE(__int64)
 #endif
 
-BOOST_TYPEOF_REGISTER_TYPE(void)
+NDNBOOST_TYPEOF_REGISTER_TYPE(void)
 
-#endif//BOOST_TYPEOF_REGISTER_FUNDAMENTAL_HPP_INCLUDED
+#endif//NDNBOOST_TYPEOF_REGISTER_FUNDAMENTAL_HPP_INCLUDED
diff --git a/include/ndnboost/typeof/register_mem_functions.hpp b/include/ndnboost/typeof/register_mem_functions.hpp
index efb40a9..35de8c3 100644
--- a/include/ndnboost/typeof/register_mem_functions.hpp
+++ b/include/ndnboost/typeof/register_mem_functions.hpp
@@ -6,27 +6,27 @@
 
 // member functions
 
-template<class V, class T, class R BOOST_PP_ENUM_TRAILING_PARAMS(n, class P)> 
-struct encode_type_impl<V, R(T::*)(BOOST_PP_ENUM_PARAMS(n, P)) BOOST_TYPEOF_qualifier>
+template<class V, class T, class R NDNBOOST_PP_ENUM_TRAILING_PARAMS(n, class P)> 
+struct encode_type_impl<V, R(T::*)(NDNBOOST_PP_ENUM_PARAMS(n, P)) NDNBOOST_TYPEOF_qualifier>
 {
-    typedef R BOOST_PP_CAT(P, n);
-    typedef T BOOST_PP_CAT(P, BOOST_PP_INC(n));
-    typedef BOOST_TYPEOF_ENCODE_PARAMS(BOOST_PP_ADD(n, 2), BOOST_TYPEOF_id + n) type;
+    typedef R NDNBOOST_PP_CAT(P, n);
+    typedef T NDNBOOST_PP_CAT(P, NDNBOOST_PP_INC(n));
+    typedef NDNBOOST_TYPEOF_ENCODE_PARAMS(NDNBOOST_PP_ADD(n, 2), NDNBOOST_TYPEOF_id + n) type;
 };
 
 template<class Iter>
-struct decode_type_impl<ndnboost::mpl::size_t<BOOST_TYPEOF_id + n>, Iter>
+struct decode_type_impl<ndnboost::mpl::size_t<NDNBOOST_TYPEOF_id + n>, Iter>
 {
     typedef Iter iter0;
-    BOOST_TYPEOF_DECODE_PARAMS(BOOST_PP_ADD(n, 2))
+    NDNBOOST_TYPEOF_DECODE_PARAMS(NDNBOOST_PP_ADD(n, 2))
     template<class T> struct workaround{
-        typedef BOOST_PP_CAT(p, n)(T::*type)(BOOST_PP_ENUM_PARAMS(n, p)) BOOST_TYPEOF_qualifier;
+        typedef NDNBOOST_PP_CAT(p, n)(T::*type)(NDNBOOST_PP_ENUM_PARAMS(n, p)) NDNBOOST_TYPEOF_qualifier;
     };
-    typedef typename workaround<BOOST_PP_CAT(p, BOOST_PP_INC(n))>::type type;
-    typedef BOOST_PP_CAT(iter, BOOST_PP_ADD(n, 2)) iter;
+    typedef typename workaround<NDNBOOST_PP_CAT(p, NDNBOOST_PP_INC(n))>::type type;
+    typedef NDNBOOST_PP_CAT(iter, NDNBOOST_PP_ADD(n, 2)) iter;
 };
 
 // undef parameters
 
-#undef BOOST_TYPEOF_id
-#undef BOOST_TYPEOF_qualifier
+#undef NDNBOOST_TYPEOF_id
+#undef NDNBOOST_TYPEOF_qualifier
diff --git a/include/ndnboost/typeof/template_encoding.hpp b/include/ndnboost/typeof/template_encoding.hpp
index 6c5781b..b2a0fe1 100644
--- a/include/ndnboost/typeof/template_encoding.hpp
+++ b/include/ndnboost/typeof/template_encoding.hpp
@@ -3,8 +3,8 @@
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_TYPEOF_TEMPLATE_ENCODING_HPP_INCLUDED
-#define BOOST_TYPEOF_TEMPLATE_ENCODING_HPP_INCLUDED
+#ifndef NDNBOOST_TYPEOF_TEMPLATE_ENCODING_HPP_INCLUDED
+#define NDNBOOST_TYPEOF_TEMPLATE_ENCODING_HPP_INCLUDED
 
 #include <ndnboost/preprocessor/cat.hpp>
 #include <ndnboost/preprocessor/repetition/enum_trailing.hpp>
@@ -24,9 +24,9 @@
 #include <ndnboost/typeof/template_template_param.hpp>
 
 #ifdef __BORLANDC__
-#define BOOST_TYPEOF_QUALIFY(P) self_t::P
+#define NDNBOOST_TYPEOF_QUALIFY(P) self_t::P
 #else
-#define BOOST_TYPEOF_QUALIFY(P) P
+#define NDNBOOST_TYPEOF_QUALIFY(P) P
 #endif
 // The template parameter description, entered by the user,
 // is converted into a polymorphic "object"
@@ -34,116 +34,116 @@
 // encoding/decoding the parameter, etc.
 
 // make sure to cat the sequence first, and only then add the prefix.
-#define BOOST_TYPEOF_MAKE_OBJ(elem) BOOST_PP_CAT(\
-    BOOST_TYPEOF_MAKE_OBJ,\
-    BOOST_PP_SEQ_CAT((_) BOOST_TYPEOF_TO_SEQ(elem))\
+#define NDNBOOST_TYPEOF_MAKE_OBJ(elem) NDNBOOST_PP_CAT(\
+    NDNBOOST_TYPEOF_MAKE_OBJ,\
+    NDNBOOST_PP_SEQ_CAT((_) NDNBOOST_TYPEOF_TO_SEQ(elem))\
     )
 
-#define BOOST_TYPEOF_TO_SEQ(tokens) BOOST_TYPEOF_ ## tokens ## _BOOST_TYPEOF
+#define NDNBOOST_TYPEOF_TO_SEQ(tokens) NDNBOOST_TYPEOF_ ## tokens ## _NDNBOOST_TYPEOF
 
-// BOOST_TYPEOF_REGISTER_TEMPLATE
+// NDNBOOST_TYPEOF_REGISTER_TEMPLATE
 
-#define BOOST_TYPEOF_REGISTER_TEMPLATE_EXPLICIT_ID(Name, Params, Id)\
-    BOOST_TYPEOF_REGISTER_TEMPLATE_IMPL(\
+#define NDNBOOST_TYPEOF_REGISTER_TEMPLATE_EXPLICIT_ID(Name, Params, Id)\
+    NDNBOOST_TYPEOF_REGISTER_TEMPLATE_IMPL(\
         Name,\
-        BOOST_TYPEOF_MAKE_OBJS(BOOST_TYPEOF_TOSEQ(Params)),\
-        BOOST_PP_SEQ_SIZE(BOOST_TYPEOF_TOSEQ(Params)),\
+        NDNBOOST_TYPEOF_MAKE_OBJS(NDNBOOST_TYPEOF_TOSEQ(Params)),\
+        NDNBOOST_PP_SEQ_SIZE(NDNBOOST_TYPEOF_TOSEQ(Params)),\
         Id)
 
-#define BOOST_TYPEOF_REGISTER_TEMPLATE(Name, Params)\
-    BOOST_TYPEOF_REGISTER_TEMPLATE_EXPLICIT_ID(Name, Params, BOOST_TYPEOF_UNIQUE_ID())
+#define NDNBOOST_TYPEOF_REGISTER_TEMPLATE(Name, Params)\
+    NDNBOOST_TYPEOF_REGISTER_TEMPLATE_EXPLICIT_ID(Name, Params, NDNBOOST_TYPEOF_UNIQUE_ID())
 
-#define BOOST_TYPEOF_OBJECT_MAKER(s, data, elem)\
-    BOOST_TYPEOF_MAKE_OBJ(elem)
+#define NDNBOOST_TYPEOF_OBJECT_MAKER(s, data, elem)\
+    NDNBOOST_TYPEOF_MAKE_OBJ(elem)
 
-#define BOOST_TYPEOF_MAKE_OBJS(Params)\
-    BOOST_PP_SEQ_TRANSFORM(BOOST_TYPEOF_OBJECT_MAKER, ~, Params)
+#define NDNBOOST_TYPEOF_MAKE_OBJS(Params)\
+    NDNBOOST_PP_SEQ_TRANSFORM(NDNBOOST_TYPEOF_OBJECT_MAKER, ~, Params)
 
 // As suggested by Paul Mensonides:
 
-#define BOOST_TYPEOF_TOSEQ(x)\
-    BOOST_PP_IIF(\
-        BOOST_PP_IS_UNARY(x),\
-        x BOOST_PP_TUPLE_EAT(3), BOOST_PP_REPEAT\
-    )(x, BOOST_TYPEOF_TOSEQ_2, ~)
+#define NDNBOOST_TYPEOF_TOSEQ(x)\
+    NDNBOOST_PP_IIF(\
+        NDNBOOST_PP_IS_UNARY(x),\
+        x NDNBOOST_PP_TUPLE_EAT(3), NDNBOOST_PP_REPEAT\
+    )(x, NDNBOOST_TYPEOF_TOSEQ_2, ~)
 
-#define BOOST_TYPEOF_TOSEQ_2(z, n, _) (class)
+#define NDNBOOST_TYPEOF_TOSEQ_2(z, n, _) (class)
 
-// BOOST_TYPEOF_VIRTUAL
+// NDNBOOST_TYPEOF_VIRTUAL
 
-#define BOOST_TYPEOF_CAT_4(a, b, c, d) BOOST_TYPEOF_CAT_4_I(a, b, c, d)
-#define BOOST_TYPEOF_CAT_4_I(a, b, c, d) a ## b ## c ## d
+#define NDNBOOST_TYPEOF_CAT_4(a, b, c, d) NDNBOOST_TYPEOF_CAT_4_I(a, b, c, d)
+#define NDNBOOST_TYPEOF_CAT_4_I(a, b, c, d) a ## b ## c ## d
 
-#define BOOST_TYPEOF_VIRTUAL(Fun, Obj)\
-    BOOST_TYPEOF_CAT_4(BOOST_TYPEOF_, BOOST_PP_SEQ_HEAD(Obj), _, Fun)
+#define NDNBOOST_TYPEOF_VIRTUAL(Fun, Obj)\
+    NDNBOOST_TYPEOF_CAT_4(NDNBOOST_TYPEOF_, NDNBOOST_PP_SEQ_HEAD(Obj), _, Fun)
 
-// BOOST_TYPEOF_SEQ_ENUM[_TRAILING][_1]
+// NDNBOOST_TYPEOF_SEQ_ENUM[_TRAILING][_1]
 // Two versions provided due to reentrancy issue
 
-#define BOOST_TYPEOF_SEQ_EXPAND_ELEMENT(z,n,seq)\
-   BOOST_PP_SEQ_ELEM(0,seq) (z,n,BOOST_PP_SEQ_ELEM(n,BOOST_PP_SEQ_ELEM(1,seq)))
+#define NDNBOOST_TYPEOF_SEQ_EXPAND_ELEMENT(z,n,seq)\
+   NDNBOOST_PP_SEQ_ELEM(0,seq) (z,n,NDNBOOST_PP_SEQ_ELEM(n,NDNBOOST_PP_SEQ_ELEM(1,seq)))
 
-#define BOOST_TYPEOF_SEQ_ENUM(seq,macro)\
-    BOOST_PP_ENUM(BOOST_PP_SEQ_SIZE(seq),BOOST_TYPEOF_SEQ_EXPAND_ELEMENT,(macro)(seq))
+#define NDNBOOST_TYPEOF_SEQ_ENUM(seq,macro)\
+    NDNBOOST_PP_ENUM(NDNBOOST_PP_SEQ_SIZE(seq),NDNBOOST_TYPEOF_SEQ_EXPAND_ELEMENT,(macro)(seq))
 
-#define BOOST_TYPEOF_SEQ_ENUM_TRAILING(seq,macro)\
-    BOOST_PP_ENUM_TRAILING(BOOST_PP_SEQ_SIZE(seq),BOOST_TYPEOF_SEQ_EXPAND_ELEMENT,(macro)(seq))
+#define NDNBOOST_TYPEOF_SEQ_ENUM_TRAILING(seq,macro)\
+    NDNBOOST_PP_ENUM_TRAILING(NDNBOOST_PP_SEQ_SIZE(seq),NDNBOOST_TYPEOF_SEQ_EXPAND_ELEMENT,(macro)(seq))
 
-#define BOOST_TYPEOF_SEQ_EXPAND_ELEMENT_1(z,n,seq)\
-    BOOST_PP_SEQ_ELEM(0,seq) (z,n,BOOST_PP_SEQ_ELEM(n,BOOST_PP_SEQ_ELEM(1,seq)))
+#define NDNBOOST_TYPEOF_SEQ_EXPAND_ELEMENT_1(z,n,seq)\
+    NDNBOOST_PP_SEQ_ELEM(0,seq) (z,n,NDNBOOST_PP_SEQ_ELEM(n,NDNBOOST_PP_SEQ_ELEM(1,seq)))
 
-#define BOOST_TYPEOF_SEQ_ENUM_1(seq,macro)\
-    BOOST_PP_ENUM(BOOST_PP_SEQ_SIZE(seq),BOOST_TYPEOF_SEQ_EXPAND_ELEMENT_1,(macro)(seq))
+#define NDNBOOST_TYPEOF_SEQ_ENUM_1(seq,macro)\
+    NDNBOOST_PP_ENUM(NDNBOOST_PP_SEQ_SIZE(seq),NDNBOOST_TYPEOF_SEQ_EXPAND_ELEMENT_1,(macro)(seq))
 
-#define BOOST_TYPEOF_SEQ_ENUM_TRAILING_1(seq,macro)\
-    BOOST_PP_ENUM_TRAILING(BOOST_PP_SEQ_SIZE(seq),BOOST_TYPEOF_SEQ_EXPAND_ELEMENT_1,(macro)(seq))
+#define NDNBOOST_TYPEOF_SEQ_ENUM_TRAILING_1(seq,macro)\
+    NDNBOOST_PP_ENUM_TRAILING(NDNBOOST_PP_SEQ_SIZE(seq),NDNBOOST_TYPEOF_SEQ_EXPAND_ELEMENT_1,(macro)(seq))
 
 //
 
-#define BOOST_TYPEOF_PLACEHOLDER(z, n, elem)\
-    BOOST_TYPEOF_VIRTUAL(PLACEHOLDER, elem)(elem)
+#define NDNBOOST_TYPEOF_PLACEHOLDER(z, n, elem)\
+    NDNBOOST_TYPEOF_VIRTUAL(PLACEHOLDER, elem)(elem)
 
-#define BOOST_TYPEOF_PLACEHOLDER_TYPES(z, n, elem)\
-    BOOST_TYPEOF_VIRTUAL(PLACEHOLDER_TYPES, elem)(elem, n)
+#define NDNBOOST_TYPEOF_PLACEHOLDER_TYPES(z, n, elem)\
+    NDNBOOST_TYPEOF_VIRTUAL(PLACEHOLDER_TYPES, elem)(elem, n)
 
-#define BOOST_TYPEOF_REGISTER_TEMPLATE_ENCODE_PARAM(r, data, n, elem)\
-    BOOST_TYPEOF_VIRTUAL(ENCODE, elem)(elem, n)
+#define NDNBOOST_TYPEOF_REGISTER_TEMPLATE_ENCODE_PARAM(r, data, n, elem)\
+    NDNBOOST_TYPEOF_VIRTUAL(ENCODE, elem)(elem, n)
 
-#define BOOST_TYPEOF_REGISTER_TEMPLATE_DECODE_PARAM(r, data, n, elem)\
-    BOOST_TYPEOF_VIRTUAL(DECODE, elem)(elem, n)
+#define NDNBOOST_TYPEOF_REGISTER_TEMPLATE_DECODE_PARAM(r, data, n, elem)\
+    NDNBOOST_TYPEOF_VIRTUAL(DECODE, elem)(elem, n)
 
-#define BOOST_TYPEOF_REGISTER_TEMPLATE_PARAM_PAIR(z, n, elem) \
-    BOOST_TYPEOF_VIRTUAL(EXPANDTYPE, elem)(elem) BOOST_PP_CAT(P, n)
+#define NDNBOOST_TYPEOF_REGISTER_TEMPLATE_PARAM_PAIR(z, n, elem) \
+    NDNBOOST_TYPEOF_VIRTUAL(EXPANDTYPE, elem)(elem) NDNBOOST_PP_CAT(P, n)
 
-#define BOOST_TYPEOF_REGISTER_DEFAULT_TEMPLATE_TYPE(Name,Params,ID)\
-    Name< BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(Params), P) >
+#define NDNBOOST_TYPEOF_REGISTER_DEFAULT_TEMPLATE_TYPE(Name,Params,ID)\
+    Name< NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_SEQ_SIZE(Params), P) >
 
 //Since we are creating an internal decode struct, we need to use different template names, T instead of P.
-#define BOOST_TYPEOF_REGISTER_DECODER_TYPE_PARAM_PAIR(z,n,elem) \
-    BOOST_TYPEOF_VIRTUAL(EXPANDTYPE, elem)(elem) BOOST_PP_CAT(T, n)
+#define NDNBOOST_TYPEOF_REGISTER_DECODER_TYPE_PARAM_PAIR(z,n,elem) \
+    NDNBOOST_TYPEOF_VIRTUAL(EXPANDTYPE, elem)(elem) NDNBOOST_PP_CAT(T, n)
 
 //Default template param decoding
 
-#define BOOST_TYPEOF_TYPEDEF_DECODED_TEMPLATE_TYPE(Name,Params)\
-    typedef Name<BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(Params),BOOST_TYPEOF_QUALIFY(P))> type;
+#define NDNBOOST_TYPEOF_TYPEDEF_DECODED_TEMPLATE_TYPE(Name,Params)\
+    typedef Name<NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_SEQ_SIZE(Params),NDNBOOST_TYPEOF_QUALIFY(P))> type;
 
 //Branch the decoding
-#define BOOST_TYPEOF_TYPEDEF_DECODED_TYPE(Name,Params)\
-    BOOST_PP_IF(BOOST_TYPEOF_HAS_TEMPLATES(Params),\
-        BOOST_TYPEOF_TYPEDEF_DECODED_TEMPLATE_TEMPLATE_TYPE,\
-        BOOST_TYPEOF_TYPEDEF_DECODED_TEMPLATE_TYPE)(Name,Params)
+#define NDNBOOST_TYPEOF_TYPEDEF_DECODED_TYPE(Name,Params)\
+    NDNBOOST_PP_IF(NDNBOOST_TYPEOF_HAS_TEMPLATES(Params),\
+        NDNBOOST_TYPEOF_TYPEDEF_DECODED_TEMPLATE_TEMPLATE_TYPE,\
+        NDNBOOST_TYPEOF_TYPEDEF_DECODED_TEMPLATE_TYPE)(Name,Params)
 
-#define BOOST_TYPEOF_REGISTER_TEMPLATE_IMPL(Name, Params, Size, ID)\
-    BOOST_TYPEOF_BEGIN_ENCODE_NS\
-    BOOST_TYPEOF_REGISTER_TEMPLATE_TEMPLATE_IMPL(Name, Params, ID)\
+#define NDNBOOST_TYPEOF_REGISTER_TEMPLATE_IMPL(Name, Params, Size, ID)\
+    NDNBOOST_TYPEOF_BEGIN_ENCODE_NS\
+    NDNBOOST_TYPEOF_REGISTER_TEMPLATE_TEMPLATE_IMPL(Name, Params, ID)\
     template<class V\
-        BOOST_TYPEOF_SEQ_ENUM_TRAILING(Params, BOOST_TYPEOF_REGISTER_TEMPLATE_PARAM_PAIR)\
+        NDNBOOST_TYPEOF_SEQ_ENUM_TRAILING(Params, NDNBOOST_TYPEOF_REGISTER_TEMPLATE_PARAM_PAIR)\
     >\
-    struct encode_type_impl<V, Name<BOOST_PP_ENUM_PARAMS(Size, P)> >\
+    struct encode_type_impl<V, Name<NDNBOOST_PP_ENUM_PARAMS(Size, P)> >\
     {\
         typedef typename ndnboost::type_of::push_back<V, ndnboost::mpl::size_t<ID> >::type V0;\
-        BOOST_PP_SEQ_FOR_EACH_I(BOOST_TYPEOF_REGISTER_TEMPLATE_ENCODE_PARAM, ~, Params)\
-        typedef BOOST_PP_CAT(V, Size) type;\
+        NDNBOOST_PP_SEQ_FOR_EACH_I(NDNBOOST_TYPEOF_REGISTER_TEMPLATE_ENCODE_PARAM, ~, Params)\
+        typedef NDNBOOST_PP_CAT(V, Size) type;\
     };\
     template<class Iter>\
     struct decode_type_impl<ndnboost::mpl::size_t<ID>, Iter>\
@@ -151,10 +151,10 @@
         typedef decode_type_impl<ndnboost::mpl::size_t<ID>, Iter> self_t;\
         typedef ndnboost::mpl::size_t<ID> self_id;\
         typedef Iter iter0;\
-        BOOST_PP_SEQ_FOR_EACH_I(BOOST_TYPEOF_REGISTER_TEMPLATE_DECODE_PARAM, ~, Params)\
-        BOOST_TYPEOF_TYPEDEF_DECODED_TYPE(Name, Params)\
-        typedef BOOST_PP_CAT(iter, Size) iter;\
+        NDNBOOST_PP_SEQ_FOR_EACH_I(NDNBOOST_TYPEOF_REGISTER_TEMPLATE_DECODE_PARAM, ~, Params)\
+        NDNBOOST_TYPEOF_TYPEDEF_DECODED_TYPE(Name, Params)\
+        typedef NDNBOOST_PP_CAT(iter, Size) iter;\
     };\
-    BOOST_TYPEOF_END_ENCODE_NS
+    NDNBOOST_TYPEOF_END_ENCODE_NS
 
-#endif//BOOST_TYPEOF_TEMPLATE_ENCODING_HPP_INCLUDED
+#endif//NDNBOOST_TYPEOF_TEMPLATE_ENCODING_HPP_INCLUDED
diff --git a/include/ndnboost/typeof/template_template_param.hpp b/include/ndnboost/typeof/template_template_param.hpp
index b704616..d0802b7 100644
--- a/include/ndnboost/typeof/template_template_param.hpp
+++ b/include/ndnboost/typeof/template_template_param.hpp
@@ -3,69 +3,69 @@
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_TYPEOF_TEMPLATE_TEMPLATE_PARAM_HPP_INCLUDED
-#define BOOST_TYPEOF_TEMPLATE_TEMPLATE_PARAM_HPP_INCLUDED
+#ifndef NDNBOOST_TYPEOF_TEMPLATE_TEMPLATE_PARAM_HPP_INCLUDED
+#define NDNBOOST_TYPEOF_TEMPLATE_TEMPLATE_PARAM_HPP_INCLUDED
 
 #include <ndnboost/preprocessor/logical/or.hpp>
 #include <ndnboost/preprocessor/seq/fold_left.hpp>
 #include <ndnboost/preprocessor/seq/enum.hpp>
 
-#define BOOST_TYPEOF_MAKE_OBJ_template(x)   BOOST_TYPEOF_TEMPLATE_PARAM(x)
-#define BOOST_TYPEOF_TEMPLATE(X) template(X) BOOST_TYPEOF_EAT
-#define BOOST_TYPEOF_template(X) (template(X))
+#define NDNBOOST_TYPEOF_MAKE_OBJ_template(x)   NDNBOOST_TYPEOF_TEMPLATE_PARAM(x)
+#define NDNBOOST_TYPEOF_TEMPLATE(X) template(X) NDNBOOST_TYPEOF_EAT
+#define NDNBOOST_TYPEOF_template(X) (template(X))
 
-#define BOOST_TYPEOF_TEMPLATE_PARAM(Params)\
+#define NDNBOOST_TYPEOF_TEMPLATE_PARAM(Params)\
     (TEMPLATE_PARAM)\
     (Params)
 
-#define BOOST_TYPEOF_TEMPLATE_PARAM_GETPARAMS(This)\
-    BOOST_TYPEOF_TOSEQ(BOOST_PP_SEQ_ELEM(1, This))
+#define NDNBOOST_TYPEOF_TEMPLATE_PARAM_GETPARAMS(This)\
+    NDNBOOST_TYPEOF_TOSEQ(NDNBOOST_PP_SEQ_ELEM(1, This))
 
 //Encode / decode this
-#define BOOST_TYPEOF_TEMPLATE_PARAM_ENCODE(This, n)\
-   typedef typename ndnboost::type_of::encode_template<BOOST_PP_CAT(V, n),\
-       BOOST_PP_CAT(P, n)<BOOST_TYPEOF_SEQ_ENUM(BOOST_TYPEOF_MAKE_OBJS(BOOST_TYPEOF_TEMPLATE_PARAM_GETPARAMS(This)),BOOST_TYPEOF_PLACEHOLDER) >\
-   >::type BOOST_PP_CAT(V, BOOST_PP_INC(n));
+#define NDNBOOST_TYPEOF_TEMPLATE_PARAM_ENCODE(This, n)\
+   typedef typename ndnboost::type_of::encode_template<NDNBOOST_PP_CAT(V, n),\
+       NDNBOOST_PP_CAT(P, n)<NDNBOOST_TYPEOF_SEQ_ENUM(NDNBOOST_TYPEOF_MAKE_OBJS(NDNBOOST_TYPEOF_TEMPLATE_PARAM_GETPARAMS(This)),NDNBOOST_TYPEOF_PLACEHOLDER) >\
+   >::type NDNBOOST_PP_CAT(V, NDNBOOST_PP_INC(n));
 
-#define BOOST_TYPEOF_TEMPLATE_PARAM_DECODE(This, n)\
-   typedef ndnboost::type_of::decode_template< BOOST_PP_CAT(iter, n) > BOOST_PP_CAT(d, n);\
-   typedef typename BOOST_PP_CAT(d, n)::type BOOST_PP_CAT(P, n);\
-   typedef typename BOOST_PP_CAT(d, n)::iter BOOST_PP_CAT(iter,BOOST_PP_INC(n));
+#define NDNBOOST_TYPEOF_TEMPLATE_PARAM_DECODE(This, n)\
+   typedef ndnboost::type_of::decode_template< NDNBOOST_PP_CAT(iter, n) > NDNBOOST_PP_CAT(d, n);\
+   typedef typename NDNBOOST_PP_CAT(d, n)::type NDNBOOST_PP_CAT(P, n);\
+   typedef typename NDNBOOST_PP_CAT(d, n)::iter NDNBOOST_PP_CAT(iter,NDNBOOST_PP_INC(n));
 
 // template<class, unsigned int, ...> class
-#define BOOST_TYPEOF_TEMPLATE_PARAM_EXPANDTYPE(This) \
-    template <BOOST_PP_SEQ_ENUM(BOOST_TYPEOF_TEMPLATE_PARAM_GETPARAMS(This)) > class
+#define NDNBOOST_TYPEOF_TEMPLATE_PARAM_EXPANDTYPE(This) \
+    template <NDNBOOST_PP_SEQ_ENUM(NDNBOOST_TYPEOF_TEMPLATE_PARAM_GETPARAMS(This)) > class
 
-#define BOOST_TYPEOF_TEMPLATE_PARAM_PLACEHOLDER(Param)\
+#define NDNBOOST_TYPEOF_TEMPLATE_PARAM_PLACEHOLDER(Param)\
     Nested_Template_Template_Arguments_Not_Supported
 
 //'template<class,int> class' is reduced to 'class'
-#define BOOST_TYPEOF_TEMPLATE_PARAM_DECLARATION_TYPE(Param) class
+#define NDNBOOST_TYPEOF_TEMPLATE_PARAM_DECLARATION_TYPE(Param) class
 
 // T3<int, (unsigned int)0, ...>
-#define BOOST_TYPEOF_TEMPLATE_PARAM_PLACEHOLDER_TYPES(Param, n)\
-    BOOST_PP_CAT(T,n)<BOOST_TYPEOF_SEQ_ENUM_1(BOOST_TYPEOF_MAKE_OBJS(BOOST_TYPEOF_TEMPLATE_PARAM_GETPARAMS(Param)),BOOST_TYPEOF_PLACEHOLDER) >
+#define NDNBOOST_TYPEOF_TEMPLATE_PARAM_PLACEHOLDER_TYPES(Param, n)\
+    NDNBOOST_PP_CAT(T,n)<NDNBOOST_TYPEOF_SEQ_ENUM_1(NDNBOOST_TYPEOF_MAKE_OBJS(NDNBOOST_TYPEOF_TEMPLATE_PARAM_GETPARAMS(Param)),NDNBOOST_TYPEOF_PLACEHOLDER) >
 
-#define BOOST_TYPEOF_TEMPLATE_PARAM_ISTEMPLATE 1
+#define NDNBOOST_TYPEOF_TEMPLATE_PARAM_ISTEMPLATE 1
 
 ////////////////////////////
 // move to encode_decode?
 
-BOOST_TYPEOF_BEGIN_ENCODE_NS
+NDNBOOST_TYPEOF_BEGIN_ENCODE_NS
 
 template<class V, class Type_Not_Registered_With_Typeof_System> struct encode_template_impl;
 template<class T, class Iter> struct decode_template_impl;
 
-BOOST_TYPEOF_END_ENCODE_NS
+NDNBOOST_TYPEOF_END_ENCODE_NS
 
 namespace ndnboost { namespace type_of {
 
     template<class V, class T> struct encode_template
-        : BOOST_TYPEOF_ENCODE_NS_QUALIFIER::encode_template_impl<V, T>
+        : NDNBOOST_TYPEOF_ENCODE_NS_QUALIFIER::encode_template_impl<V, T>
     {};
 
     template<class Iter> struct decode_template
-        : BOOST_TYPEOF_ENCODE_NS_QUALIFIER::decode_template_impl<typename Iter::type, typename Iter::next>
+        : NDNBOOST_TYPEOF_ENCODE_NS_QUALIFIER::decode_template_impl<typename Iter::type, typename Iter::next>
     {};
 }}
 
@@ -73,77 +73,77 @@
 // move to template_encoding.hpp?
 
 //Template template registration
-#define BOOST_TYPEOF_REGISTER_TYPE_FOR_TEMPLATE_TEMPLATE(Name,Params,ID)\
+#define NDNBOOST_TYPEOF_REGISTER_TYPE_FOR_TEMPLATE_TEMPLATE(Name,Params,ID)\
     template<class V\
-        BOOST_TYPEOF_SEQ_ENUM_TRAILING(Params,BOOST_TYPEOF_REGISTER_TEMPLATE_PARAM_PAIR)\
+        NDNBOOST_TYPEOF_SEQ_ENUM_TRAILING(Params,NDNBOOST_TYPEOF_REGISTER_TEMPLATE_PARAM_PAIR)\
     >\
     struct encode_template_impl<V,Name<\
-        BOOST_PP_ENUM_PARAMS(\
-        BOOST_PP_SEQ_SIZE(Params),\
+        NDNBOOST_PP_ENUM_PARAMS(\
+        NDNBOOST_PP_SEQ_SIZE(Params),\
         P)> >\
         : ndnboost::type_of::push_back<V, ndnboost::mpl::size_t<ID> >\
     {\
     };\
     template<class Iter> struct decode_template_impl<ndnboost::mpl::size_t<ID>, Iter>\
     {\
-        BOOST_PP_REPEAT(BOOST_PP_SEQ_SIZE(Params),BOOST_TYPEOF_TYPEDEF_INT_PN,_)\
-        typedef Name<BOOST_TYPEOF_SEQ_ENUM(Params,BOOST_TYPEOF_PLACEHOLDER) > type;\
+        NDNBOOST_PP_REPEAT(NDNBOOST_PP_SEQ_SIZE(Params),NDNBOOST_TYPEOF_TYPEDEF_INT_PN,_)\
+        typedef Name<NDNBOOST_TYPEOF_SEQ_ENUM(Params,NDNBOOST_TYPEOF_PLACEHOLDER) > type;\
         typedef Iter iter;\
     };
 
-#define BOOST_TYPEOF_TYPEDEF_INT_PN(z,n,Params) typedef int BOOST_PP_CAT(P,n);
+#define NDNBOOST_TYPEOF_TYPEDEF_INT_PN(z,n,Params) typedef int NDNBOOST_PP_CAT(P,n);
 
 #ifdef __BORLANDC__
-#define BOOST_TYPEOF_DECODE_NESTED_TEMPLATE_HELPER_NAME BOOST_PP_CAT(\
-        BOOST_PP_CAT(\
-            BOOST_PP_CAT(\
+#define NDNBOOST_TYPEOF_DECODE_NESTED_TEMPLATE_HELPER_NAME NDNBOOST_PP_CAT(\
+        NDNBOOST_PP_CAT(\
+            NDNBOOST_PP_CAT(\
                 decode_nested_template_helper,\
-                BOOST_TYPEOF_REGISTRATION_GROUP\
+                NDNBOOST_TYPEOF_REGISTRATION_GROUP\
             ),0x10000\
         ),__LINE__\
     )
-#define BOOST_TYPEOF_REGISTER_DECODE_NESTED_TEMPLATE_HELPER_IMPL(Name,Params,ID)\
-    struct BOOST_TYPEOF_DECODE_NESTED_TEMPLATE_HELPER_NAME {\
-        template<BOOST_TYPEOF_SEQ_ENUM(Params,BOOST_TYPEOF_REGISTER_DECLARE_DECODER_TYPE_PARAM_PAIR) >\
+#define NDNBOOST_TYPEOF_REGISTER_DECODE_NESTED_TEMPLATE_HELPER_IMPL(Name,Params,ID)\
+    struct NDNBOOST_TYPEOF_DECODE_NESTED_TEMPLATE_HELPER_NAME {\
+        template<NDNBOOST_TYPEOF_SEQ_ENUM(Params,NDNBOOST_TYPEOF_REGISTER_DECLARE_DECODER_TYPE_PARAM_PAIR) >\
         struct decode_params;\
-        template<BOOST_TYPEOF_SEQ_ENUM(Params,BOOST_TYPEOF_REGISTER_DECODER_TYPE_PARAM_PAIR) >\
-        struct decode_params<BOOST_TYPEOF_SEQ_ENUM(Params,BOOST_TYPEOF_PLACEHOLDER_TYPES) >\
+        template<NDNBOOST_TYPEOF_SEQ_ENUM(Params,NDNBOOST_TYPEOF_REGISTER_DECODER_TYPE_PARAM_PAIR) >\
+        struct decode_params<NDNBOOST_TYPEOF_SEQ_ENUM(Params,NDNBOOST_TYPEOF_PLACEHOLDER_TYPES) >\
         {\
-            typedef Name<BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(Params),T)> type;\
+            typedef Name<NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_SEQ_SIZE(Params),T)> type;\
         };\
     };
 //Template template param decoding
-#define BOOST_TYPEOF_TYPEDEF_DECODED_TEMPLATE_TEMPLATE_TYPE(Name,Params)\
-    typedef typename BOOST_TYPEOF_DECODE_NESTED_TEMPLATE_HELPER_NAME::decode_params<BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(Params),P)>::type type;
+#define NDNBOOST_TYPEOF_TYPEDEF_DECODED_TEMPLATE_TEMPLATE_TYPE(Name,Params)\
+    typedef typename NDNBOOST_TYPEOF_DECODE_NESTED_TEMPLATE_HELPER_NAME::decode_params<NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_SEQ_SIZE(Params),P)>::type type;
 
 #else
-#define BOOST_TYPEOF_REGISTER_DECODE_NESTED_TEMPLATE_HELPER_IMPL(Name,Params,ID)
+#define NDNBOOST_TYPEOF_REGISTER_DECODE_NESTED_TEMPLATE_HELPER_IMPL(Name,Params,ID)
 
 //Template template param decoding
-#define BOOST_TYPEOF_TYPEDEF_DECODED_TEMPLATE_TEMPLATE_TYPE(Name,Params)\
-    template<BOOST_TYPEOF_SEQ_ENUM(Params,BOOST_TYPEOF_REGISTER_DECLARE_DECODER_TYPE_PARAM_PAIR) >\
+#define NDNBOOST_TYPEOF_TYPEDEF_DECODED_TEMPLATE_TEMPLATE_TYPE(Name,Params)\
+    template<NDNBOOST_TYPEOF_SEQ_ENUM(Params,NDNBOOST_TYPEOF_REGISTER_DECLARE_DECODER_TYPE_PARAM_PAIR) >\
     struct decode_params;\
-    template<BOOST_TYPEOF_SEQ_ENUM(Params,BOOST_TYPEOF_REGISTER_DECODER_TYPE_PARAM_PAIR) >\
-    struct decode_params<BOOST_TYPEOF_SEQ_ENUM(Params,BOOST_TYPEOF_PLACEHOLDER_TYPES) >\
+    template<NDNBOOST_TYPEOF_SEQ_ENUM(Params,NDNBOOST_TYPEOF_REGISTER_DECODER_TYPE_PARAM_PAIR) >\
+    struct decode_params<NDNBOOST_TYPEOF_SEQ_ENUM(Params,NDNBOOST_TYPEOF_PLACEHOLDER_TYPES) >\
     {\
-        typedef Name<BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(Params),T)> type;\
+        typedef Name<NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_SEQ_SIZE(Params),T)> type;\
     };\
-    typedef typename decode_params<BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(Params),P)>::type type;
+    typedef typename decode_params<NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_SEQ_SIZE(Params),P)>::type type;
 #endif
-#define BOOST_TYPEOF_REGISTER_DECLARE_DECODER_TYPE_PARAM_PAIR(z,n,elem) \
-    BOOST_TYPEOF_VIRTUAL(DECLARATION_TYPE, elem)(elem) BOOST_PP_CAT(T, n)
+#define NDNBOOST_TYPEOF_REGISTER_DECLARE_DECODER_TYPE_PARAM_PAIR(z,n,elem) \
+    NDNBOOST_TYPEOF_VIRTUAL(DECLARATION_TYPE, elem)(elem) NDNBOOST_PP_CAT(T, n)
 
-// BOOST_TYPEOF_HAS_TEMPLATES
-#define BOOST_TYPEOF_HAS_TEMPLATES(Params)\
-    BOOST_PP_SEQ_FOLD_LEFT(BOOST_TYPEOF_HAS_TEMPLATES_OP, 0, Params)
+// NDNBOOST_TYPEOF_HAS_TEMPLATES
+#define NDNBOOST_TYPEOF_HAS_TEMPLATES(Params)\
+    NDNBOOST_PP_SEQ_FOLD_LEFT(NDNBOOST_TYPEOF_HAS_TEMPLATES_OP, 0, Params)
 
-#define BOOST_TYPEOF_HAS_TEMPLATES_OP(s, state, elem)\
-    BOOST_PP_OR(state, BOOST_TYPEOF_VIRTUAL(ISTEMPLATE, elem))
+#define NDNBOOST_TYPEOF_HAS_TEMPLATES_OP(s, state, elem)\
+    NDNBOOST_PP_OR(state, NDNBOOST_TYPEOF_VIRTUAL(ISTEMPLATE, elem))
 
 //Define template template arguments
-#define BOOST_TYPEOF_REGISTER_TEMPLATE_TEMPLATE_IMPL(Name,Params,ID)\
-    BOOST_PP_IF(BOOST_TYPEOF_HAS_TEMPLATES(Params),\
-        BOOST_TYPEOF_REGISTER_DECODE_NESTED_TEMPLATE_HELPER_IMPL,\
-        BOOST_TYPEOF_REGISTER_TYPE_FOR_TEMPLATE_TEMPLATE)(Name,Params,ID)
+#define NDNBOOST_TYPEOF_REGISTER_TEMPLATE_TEMPLATE_IMPL(Name,Params,ID)\
+    NDNBOOST_PP_IF(NDNBOOST_TYPEOF_HAS_TEMPLATES(Params),\
+        NDNBOOST_TYPEOF_REGISTER_DECODE_NESTED_TEMPLATE_HELPER_IMPL,\
+        NDNBOOST_TYPEOF_REGISTER_TYPE_FOR_TEMPLATE_TEMPLATE)(Name,Params,ID)
 
-#endif //BOOST_TYPEOF_TEMPLATE_TEMPLATE_PARAM_HPP_INCLUDED
+#endif //NDNBOOST_TYPEOF_TEMPLATE_TEMPLATE_PARAM_HPP_INCLUDED
diff --git a/include/ndnboost/typeof/type_encoding.hpp b/include/ndnboost/typeof/type_encoding.hpp
index 53c4508..ad59bf2 100644
--- a/include/ndnboost/typeof/type_encoding.hpp
+++ b/include/ndnboost/typeof/type_encoding.hpp
@@ -2,10 +2,10 @@
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_TYPEOF_TYPE_ENCODING_HPP_INCLUDED
-#define BOOST_TYPEOF_TYPE_ENCODING_HPP_INCLUDED
+#ifndef NDNBOOST_TYPEOF_TYPE_ENCODING_HPP_INCLUDED
+#define NDNBOOST_TYPEOF_TYPE_ENCODING_HPP_INCLUDED
 
-#define BOOST_TYPEOF_REGISTER_TYPE_IMPL(T, Id)                          \
+#define NDNBOOST_TYPEOF_REGISTER_TYPE_IMPL(T, Id)                          \
                                                                         \
     template<class V> struct encode_type_impl<V, T >                    \
         : ndnboost::type_of::push_back<V, ndnboost::mpl::size_t<Id> >         \
@@ -16,12 +16,12 @@
         typedef Iter iter;                                              \
     };
 
-#define BOOST_TYPEOF_REGISTER_TYPE_EXPLICIT_ID(Type, Id)                \
-    BOOST_TYPEOF_BEGIN_ENCODE_NS                                        \
-    BOOST_TYPEOF_REGISTER_TYPE_IMPL(Type, Id)                           \
-    BOOST_TYPEOF_END_ENCODE_NS
+#define NDNBOOST_TYPEOF_REGISTER_TYPE_EXPLICIT_ID(Type, Id)                \
+    NDNBOOST_TYPEOF_BEGIN_ENCODE_NS                                        \
+    NDNBOOST_TYPEOF_REGISTER_TYPE_IMPL(Type, Id)                           \
+    NDNBOOST_TYPEOF_END_ENCODE_NS
 
-#define BOOST_TYPEOF_REGISTER_TYPE(Type)                                \
-    BOOST_TYPEOF_REGISTER_TYPE_EXPLICIT_ID(Type, BOOST_TYPEOF_UNIQUE_ID())
+#define NDNBOOST_TYPEOF_REGISTER_TYPE(Type)                                \
+    NDNBOOST_TYPEOF_REGISTER_TYPE_EXPLICIT_ID(Type, NDNBOOST_TYPEOF_UNIQUE_ID())
 
-#endif//BOOST_TYPEOF_TYPE_ENCODING_HPP_INCLUDED
+#endif//NDNBOOST_TYPEOF_TYPE_ENCODING_HPP_INCLUDED
diff --git a/include/ndnboost/typeof/type_template_param.hpp b/include/ndnboost/typeof/type_template_param.hpp
index 283f480..9abc45c 100644
--- a/include/ndnboost/typeof/type_template_param.hpp
+++ b/include/ndnboost/typeof/type_template_param.hpp
@@ -2,36 +2,36 @@
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_TYPEOF_TYPE_TEMPLATE_PARAM_HPP_INCLUDED
-#define BOOST_TYPEOF_TYPE_TEMPLATE_PARAM_HPP_INCLUDED
+#ifndef NDNBOOST_TYPEOF_TYPE_TEMPLATE_PARAM_HPP_INCLUDED
+#define NDNBOOST_TYPEOF_TYPE_TEMPLATE_PARAM_HPP_INCLUDED
 
-#define BOOST_TYPEOF_class_BOOST_TYPEOF (class)
-#define BOOST_TYPEOF_typename_BOOST_TYPEOF (typename)
+#define NDNBOOST_TYPEOF_class_NDNBOOST_TYPEOF (class)
+#define NDNBOOST_TYPEOF_typename_NDNBOOST_TYPEOF (typename)
 
-#define BOOST_TYPEOF_MAKE_OBJ_class BOOST_TYPEOF_TYPE_PARAM
-#define BOOST_TYPEOF_MAKE_OBJ_typename BOOST_TYPEOF_TYPE_PARAM
+#define NDNBOOST_TYPEOF_MAKE_OBJ_class NDNBOOST_TYPEOF_TYPE_PARAM
+#define NDNBOOST_TYPEOF_MAKE_OBJ_typename NDNBOOST_TYPEOF_TYPE_PARAM
 
-#define BOOST_TYPEOF_TYPE_PARAM\
+#define NDNBOOST_TYPEOF_TYPE_PARAM\
     (TYPE_PARAM)
 
-#define BOOST_TYPEOF_TYPE_PARAM_EXPANDTYPE(Param) class
+#define NDNBOOST_TYPEOF_TYPE_PARAM_EXPANDTYPE(Param) class
 
 // TYPE_PARAM "virtual functions" implementation
 
-#define BOOST_TYPEOF_TYPE_PARAM_ENCODE(This, n)\
+#define NDNBOOST_TYPEOF_TYPE_PARAM_ENCODE(This, n)\
     typedef typename ndnboost::type_of::encode_type<\
-        BOOST_PP_CAT(V, n),\
-        BOOST_PP_CAT(P, n)\
-    >::type BOOST_PP_CAT(V, BOOST_PP_INC(n)); 
+        NDNBOOST_PP_CAT(V, n),\
+        NDNBOOST_PP_CAT(P, n)\
+    >::type NDNBOOST_PP_CAT(V, NDNBOOST_PP_INC(n)); 
 
-#define BOOST_TYPEOF_TYPE_PARAM_DECODE(This, n)\
-    typedef ndnboost::type_of::decode_type< BOOST_PP_CAT(iter, n) > BOOST_PP_CAT(d, n);\
-    typedef typename BOOST_PP_CAT(d, n)::type BOOST_PP_CAT(P, n);\
-    typedef typename BOOST_PP_CAT(d, n)::iter BOOST_PP_CAT(iter, BOOST_PP_INC(n));
+#define NDNBOOST_TYPEOF_TYPE_PARAM_DECODE(This, n)\
+    typedef ndnboost::type_of::decode_type< NDNBOOST_PP_CAT(iter, n) > NDNBOOST_PP_CAT(d, n);\
+    typedef typename NDNBOOST_PP_CAT(d, n)::type NDNBOOST_PP_CAT(P, n);\
+    typedef typename NDNBOOST_PP_CAT(d, n)::iter NDNBOOST_PP_CAT(iter, NDNBOOST_PP_INC(n));
 
-#define BOOST_TYPEOF_TYPE_PARAM_PLACEHOLDER(Param) int
-#define BOOST_TYPEOF_TYPE_PARAM_DECLARATION_TYPE(Param) class
-#define BOOST_TYPEOF_TYPE_PARAM_PLACEHOLDER_TYPES(Param, n) BOOST_PP_CAT(T,n)
-#define BOOST_TYPEOF_TYPE_PARAM_ISTEMPLATE 0
+#define NDNBOOST_TYPEOF_TYPE_PARAM_PLACEHOLDER(Param) int
+#define NDNBOOST_TYPEOF_TYPE_PARAM_DECLARATION_TYPE(Param) class
+#define NDNBOOST_TYPEOF_TYPE_PARAM_PLACEHOLDER_TYPES(Param, n) NDNBOOST_PP_CAT(T,n)
+#define NDNBOOST_TYPEOF_TYPE_PARAM_ISTEMPLATE 0
 
-#endif//BOOST_TYPEOF_TYPE_TEMPLATE_PARAM_HPP_INCLUDED
+#endif//NDNBOOST_TYPEOF_TYPE_TEMPLATE_PARAM_HPP_INCLUDED
diff --git a/include/ndnboost/typeof/typeof.hpp b/include/ndnboost/typeof/typeof.hpp
index 98505d9..4847baf 100644
--- a/include/ndnboost/typeof/typeof.hpp
+++ b/include/ndnboost/typeof/typeof.hpp
@@ -2,29 +2,29 @@
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_TYPEOF_TYPEOF_HPP_INCLUDED
-#define BOOST_TYPEOF_TYPEOF_HPP_INCLUDED
+#ifndef NDNBOOST_TYPEOF_TYPEOF_HPP_INCLUDED
+#define NDNBOOST_TYPEOF_TYPEOF_HPP_INCLUDED
 
-#if defined(BOOST_TYPEOF_COMPLIANT)
-#   define BOOST_TYPEOF_EMULATION
+#if defined(NDNBOOST_TYPEOF_COMPLIANT)
+#   define NDNBOOST_TYPEOF_EMULATION
 #endif
 
-#if defined(BOOST_TYPEOF_EMULATION) && defined(BOOST_TYPEOF_NATIVE)
+#if defined(NDNBOOST_TYPEOF_EMULATION) && defined(NDNBOOST_TYPEOF_NATIVE)
 #   error both typeof emulation and native mode requested
 #endif
 
 #if defined(__COMO__)
 #   ifdef __GNUG__
-#       ifndef BOOST_TYPEOF_EMULATION
-#           ifndef BOOST_TYPEOF_NATIVE
-#               define BOOST_TYPEOF_NATIVE
+#       ifndef NDNBOOST_TYPEOF_EMULATION
+#           ifndef NDNBOOST_TYPEOF_NATIVE
+#               define NDNBOOST_TYPEOF_NATIVE
 #           endif
-#           define BOOST_TYPEOF_KEYWORD typeof
+#           define NDNBOOST_TYPEOF_KEYWORD typeof
 #       endif
 #   else
-#       ifndef BOOST_TYPEOF_NATIVE
-#           ifndef BOOST_TYPEOF_EMULATION
-#               define BOOST_TYPEOF_EMULATION
+#       ifndef NDNBOOST_TYPEOF_NATIVE
+#           ifndef NDNBOOST_TYPEOF_EMULATION
+#               define NDNBOOST_TYPEOF_EMULATION
 #           endif
 #       else
 #           error native typeof is not supported
@@ -33,16 +33,16 @@
 
 #elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)
 #   ifdef __GNUC__
-#       ifndef BOOST_TYPEOF_EMULATION
-#           ifndef BOOST_TYPEOF_NATIVE
-#               define BOOST_TYPEOF_NATIVE
+#       ifndef NDNBOOST_TYPEOF_EMULATION
+#           ifndef NDNBOOST_TYPEOF_NATIVE
+#               define NDNBOOST_TYPEOF_NATIVE
 #           endif
-#           define BOOST_TYPEOF_KEYWORD __typeof__
+#           define NDNBOOST_TYPEOF_KEYWORD __typeof__
 #       endif
 #   else
-#       ifndef BOOST_TYPEOF_NATIVE
-#           ifndef BOOST_TYPEOF_EMULATION
-#               define BOOST_TYPEOF_EMULATION
+#       ifndef NDNBOOST_TYPEOF_NATIVE
+#           ifndef NDNBOOST_TYPEOF_EMULATION
+#               define NDNBOOST_TYPEOF_EMULATION
 #           endif
 #       else
 #           error native typeof is not supported
@@ -50,60 +50,60 @@
 #   endif
 
 #elif defined(__GNUC__)
-#   ifndef BOOST_TYPEOF_EMULATION
-#       ifndef BOOST_TYPEOF_NATIVE
-#           define BOOST_TYPEOF_NATIVE
+#   ifndef NDNBOOST_TYPEOF_EMULATION
+#       ifndef NDNBOOST_TYPEOF_NATIVE
+#           define NDNBOOST_TYPEOF_NATIVE
 #       endif
-#       define BOOST_TYPEOF_KEYWORD __typeof__
+#       define NDNBOOST_TYPEOF_KEYWORD __typeof__
 #   endif
 
 #elif defined(__MWERKS__)
 #   if(__MWERKS__ <= 0x3003)  // 8.x
-#       ifndef BOOST_TYPEOF_EMULATION
-#           ifndef BOOST_TYPEOF_NATIVE
-#               define BOOST_TYPEOF_NATIVE
+#       ifndef NDNBOOST_TYPEOF_EMULATION
+#           ifndef NDNBOOST_TYPEOF_NATIVE
+#               define NDNBOOST_TYPEOF_NATIVE
 #           endif
-#           define BOOST_TYPEOF_KEYWORD __typeof__
+#           define NDNBOOST_TYPEOF_KEYWORD __typeof__
 #       else
-#           define BOOST_TYPEOF_EMULATION_UNSUPPORTED
+#           define NDNBOOST_TYPEOF_EMULATION_UNSUPPORTED
 #       endif
 #   else // 9.x
-#       ifndef BOOST_TYPEOF_EMULATION
-#           ifndef BOOST_TYPEOF_NATIVE
-#               define BOOST_TYPEOF_NATIVE
+#       ifndef NDNBOOST_TYPEOF_EMULATION
+#           ifndef NDNBOOST_TYPEOF_NATIVE
+#               define NDNBOOST_TYPEOF_NATIVE
 #           endif
-#           define BOOST_TYPEOF_KEYWORD __typeof__
+#           define NDNBOOST_TYPEOF_KEYWORD __typeof__
 #       endif
 #   endif
 #elif defined __CODEGEARC__
-#   ifndef BOOST_TYPEOF_EMULATION
-#       ifndef BOOST_TYPEOF_NATIVE
-#           define BOOST_TYPEOF_EMULATION_UNSUPPORTED
+#   ifndef NDNBOOST_TYPEOF_EMULATION
+#       ifndef NDNBOOST_TYPEOF_NATIVE
+#           define NDNBOOST_TYPEOF_EMULATION_UNSUPPORTED
 #       endif
 #   else
-#       define BOOST_TYPEOF_EMULATION_UNSUPPORTED
+#       define NDNBOOST_TYPEOF_EMULATION_UNSUPPORTED
 #   endif
 #elif defined __BORLANDC__
-#   ifndef BOOST_TYPEOF_EMULATION
-#       ifndef BOOST_TYPEOF_NATIVE
-#           define BOOST_TYPEOF_EMULATION_UNSUPPORTED
+#   ifndef NDNBOOST_TYPEOF_EMULATION
+#       ifndef NDNBOOST_TYPEOF_NATIVE
+#           define NDNBOOST_TYPEOF_EMULATION_UNSUPPORTED
 #       endif
 #   else
-#       define BOOST_TYPEOF_EMULATION_UNSUPPORTED
+#       define NDNBOOST_TYPEOF_EMULATION_UNSUPPORTED
 #   endif
 #elif defined __DMC__
-#   ifndef BOOST_TYPEOF_EMULATION
-#       ifndef BOOST_TYPEOF_NATIVE
-#           define BOOST_TYPEOF_NATIVE
+#   ifndef NDNBOOST_TYPEOF_EMULATION
+#       ifndef NDNBOOST_TYPEOF_NATIVE
+#           define NDNBOOST_TYPEOF_NATIVE
 #       endif
 #       include <ndnboost/typeof/dmc/typeof_impl.hpp>
 #       define MSVC_TYPEOF_HACK
 #   endif
 #elif defined(_MSC_VER)
 #   if (_MSC_VER <= 1300)  // 6.5, 7.0
-#       ifndef BOOST_TYPEOF_EMULATION
-#           ifndef BOOST_TYPEOF_NATIVE
-#               define BOOST_TYPEOF_NATIVE
+#       ifndef NDNBOOST_TYPEOF_EMULATION
+#           ifndef NDNBOOST_TYPEOF_NATIVE
+#               define NDNBOOST_TYPEOF_NATIVE
 #           endif
 #           include <ndnboost/typeof/msvc/typeof_impl.hpp>
 #           define MSVC_TYPEOF_HACK
@@ -111,33 +111,33 @@
 #           error typeof emulation is not supported
 #       endif
 #   elif (_MSC_VER >= 1310)  // 7.1 ->
-#       ifndef BOOST_TYPEOF_EMULATION
-#           ifndef BOOST_TYPEOF_NATIVE
+#       ifndef NDNBOOST_TYPEOF_EMULATION
+#           ifndef NDNBOOST_TYPEOF_NATIVE
 #               ifndef _MSC_EXTENSIONS
-#                   define BOOST_TYPEOF_EMULATION
+#                   define NDNBOOST_TYPEOF_EMULATION
 #               else
-#                   define BOOST_TYPEOF_NATIVE
+#                   define NDNBOOST_TYPEOF_NATIVE
 #               endif
 #           endif
 #       endif
-#       ifdef BOOST_TYPEOF_NATIVE
+#       ifdef NDNBOOST_TYPEOF_NATIVE
 #           include <ndnboost/typeof/msvc/typeof_impl.hpp>
 #           define MSVC_TYPEOF_HACK
 #       endif
 #   endif
 #elif defined(__HP_aCC)
-#   ifndef BOOST_TYPEOF_NATIVE
-#       ifndef BOOST_TYPEOF_EMULATION
-#           define BOOST_TYPEOF_EMULATION
+#   ifndef NDNBOOST_TYPEOF_NATIVE
+#       ifndef NDNBOOST_TYPEOF_EMULATION
+#           define NDNBOOST_TYPEOF_EMULATION
 #       endif
 #   else
 #       error native typeof is not supported
 #   endif
 
 #elif defined(__DECCXX)
-#   ifndef BOOST_TYPEOF_NATIVE
-#       ifndef BOOST_TYPEOF_EMULATION
-#           define BOOST_TYPEOF_EMULATION
+#   ifndef NDNBOOST_TYPEOF_NATIVE
+#       ifndef NDNBOOST_TYPEOF_EMULATION
+#           define NDNBOOST_TYPEOF_EMULATION
 #       endif
 #   else
 #       error native typeof is not supported
@@ -145,55 +145,55 @@
 
 #elif defined(__BORLANDC__)
 #   if (__BORLANDC__ < 0x590)
-#       define BOOST_TYPEOF_NO_FUNCTION_TYPES
-#       define BOOST_TYPEOF_NO_MEMBER_FUNCTION_TYPES
+#       define NDNBOOST_TYPEOF_NO_FUNCTION_TYPES
+#       define NDNBOOST_TYPEOF_NO_MEMBER_FUNCTION_TYPES
 #   endif
-#   ifndef BOOST_TYPEOF_NATIVE
-#       ifndef BOOST_TYPEOF_EMULATION
-#           define BOOST_TYPEOF_EMULATION
+#   ifndef NDNBOOST_TYPEOF_NATIVE
+#       ifndef NDNBOOST_TYPEOF_EMULATION
+#           define NDNBOOST_TYPEOF_EMULATION
 #       endif
 #   else
 #       error native typeof is not supported
 #   endif
 #elif defined(__SUNPRO_CC)
 #   if (__SUNPRO_CC < 0x590 )
-#     ifdef BOOST_TYPEOF_NATIVE
+#     ifdef NDNBOOST_TYPEOF_NATIVE
 #         error native typeof is not supported
 #     endif
-#     ifndef BOOST_TYPEOF_EMULATION
-#         define BOOST_TYPEOF_EMULATION
+#     ifndef NDNBOOST_TYPEOF_EMULATION
+#         define NDNBOOST_TYPEOF_EMULATION
 #     endif
 #   else
-#     ifndef BOOST_TYPEOF_EMULATION
-#         ifndef BOOST_TYPEOF_NATIVE
-#             define BOOST_TYPEOF_NATIVE
+#     ifndef NDNBOOST_TYPEOF_EMULATION
+#         ifndef NDNBOOST_TYPEOF_NATIVE
+#             define NDNBOOST_TYPEOF_NATIVE
 #         endif
-#         define BOOST_TYPEOF_KEYWORD __typeof__
+#         define NDNBOOST_TYPEOF_KEYWORD __typeof__
 #     endif
 #   endif
 #else //unknown compiler
-#   ifndef BOOST_TYPEOF_NATIVE
-#       ifndef BOOST_TYPEOF_EMULATION
-#           define BOOST_TYPEOF_EMULATION
+#   ifndef NDNBOOST_TYPEOF_NATIVE
+#       ifndef NDNBOOST_TYPEOF_EMULATION
+#           define NDNBOOST_TYPEOF_EMULATION
 #       endif
 #   else
-#       ifndef BOOST_TYPEOF_KEYWORD
-#           define BOOST_TYPEOF_KEYWORD typeof
+#       ifndef NDNBOOST_TYPEOF_KEYWORD
+#           define NDNBOOST_TYPEOF_KEYWORD typeof
 #       endif
 #   endif
 
 #endif
 
-#define BOOST_TYPEOF_UNIQUE_ID()\
-     BOOST_TYPEOF_REGISTRATION_GROUP * 0x10000 + __LINE__
+#define NDNBOOST_TYPEOF_UNIQUE_ID()\
+     NDNBOOST_TYPEOF_REGISTRATION_GROUP * 0x10000 + __LINE__
 
-#define BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()\
+#define NDNBOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()\
      <ndnboost/typeof/incr_registration_group.hpp>
 
-#ifdef BOOST_TYPEOF_EMULATION_UNSUPPORTED
+#ifdef NDNBOOST_TYPEOF_EMULATION_UNSUPPORTED
 #   include <ndnboost/typeof/unsupported.hpp>
-#elif defined BOOST_TYPEOF_EMULATION
-#   define BOOST_TYPEOF_TEXT "using typeof emulation"
+#elif defined NDNBOOST_TYPEOF_EMULATION
+#   define NDNBOOST_TYPEOF_TEXT "using typeof emulation"
 #   include <ndnboost/typeof/message.hpp>
 #   include <ndnboost/typeof/typeof_impl.hpp>
 #   include <ndnboost/typeof/type_encoding.hpp>
@@ -203,8 +203,8 @@
 #   include <ndnboost/typeof/register_functions.hpp>
 #   include <ndnboost/typeof/register_fundamental.hpp>
 
-#elif defined(BOOST_TYPEOF_NATIVE)
-#   define BOOST_TYPEOF_TEXT "using native typeof"
+#elif defined(NDNBOOST_TYPEOF_NATIVE)
+#   define NDNBOOST_TYPEOF_TEXT "using native typeof"
 #   include <ndnboost/typeof/message.hpp>
 #   include <ndnboost/typeof/native.hpp>
 #else
@@ -212,7 +212,7 @@
 #endif
 
 // auto
-#define BOOST_AUTO(Var, Expr) BOOST_TYPEOF(Expr) Var = Expr
-#define BOOST_AUTO_TPL(Var, Expr) BOOST_TYPEOF_TPL(Expr) Var = Expr
+#define NDNBOOST_AUTO(Var, Expr) NDNBOOST_TYPEOF(Expr) Var = Expr
+#define NDNBOOST_AUTO_TPL(Var, Expr) NDNBOOST_TYPEOF_TPL(Expr) Var = Expr
 
-#endif//BOOST_TYPEOF_TYPEOF_HPP_INCLUDED
+#endif//NDNBOOST_TYPEOF_TYPEOF_HPP_INCLUDED
diff --git a/include/ndnboost/typeof/typeof_impl.hpp b/include/ndnboost/typeof/typeof_impl.hpp
index 880afed..95ec28c 100644
--- a/include/ndnboost/typeof/typeof_impl.hpp
+++ b/include/ndnboost/typeof/typeof_impl.hpp
@@ -3,8 +3,8 @@
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_TYPEOF_TYPEOF_IMPL_HPP_INCLUDED
-#define BOOST_TYPEOF_TYPEOF_IMPL_HPP_INCLUDED
+#ifndef NDNBOOST_TYPEOF_TYPEOF_IMPL_HPP_INCLUDED
+#define NDNBOOST_TYPEOF_TYPEOF_IMPL_HPP_INCLUDED
 
 #include <ndnboost/mpl/size_t.hpp>
 #include <ndnboost/preprocessor/repetition/enum.hpp>
@@ -13,9 +13,9 @@
 #include <ndnboost/type_traits/is_function.hpp>
 #include <ndnboost/utility/enable_if.hpp>
 
-#define BOOST_TYPEOF_VECTOR(n) BOOST_PP_CAT(ndnboost::type_of::vector, n)
+#define NDNBOOST_TYPEOF_VECTOR(n) NDNBOOST_PP_CAT(ndnboost::type_of::vector, n)
 
-#define BOOST_TYPEOF_sizer_item(z, n, _)\
+#define NDNBOOST_TYPEOF_sizer_item(z, n, _)\
     char item ## n[V::item ## n ::value];
 
 namespace ndnboost { namespace type_of {
@@ -26,15 +26,15 @@
         // char item1[V::item1::value];
         // ...
 
-        BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~)
+        NDNBOOST_PP_REPEAT(NDNBOOST_TYPEOF_LIMIT_SIZE, NDNBOOST_TYPEOF_sizer_item, ~)
     };
 }}
 
-#undef BOOST_TYPEOF_sizer_item
+#undef NDNBOOST_TYPEOF_sizer_item
 
 //
 namespace ndnboost { namespace type_of {
-# ifdef BOOST_NO_SFINAE
+# ifdef NDNBOOST_NO_SFINAE
     template<class V, class T>
     sizer<typename encode_type<V, T>::type> encode(const T&);
 # else
@@ -59,18 +59,18 @@
     };
 }}
 
-#define BOOST_TYPEOF_TYPEITEM(z, n, expr)\
-    ndnboost::mpl::size_t<sizeof(ndnboost::type_of::encode<BOOST_TYPEOF_VECTOR(0)<> >(expr).item ## n)>
+#define NDNBOOST_TYPEOF_TYPEITEM(z, n, expr)\
+    ndnboost::mpl::size_t<sizeof(ndnboost::type_of::encode<NDNBOOST_TYPEOF_VECTOR(0)<> >(expr).item ## n)>
 
-#define BOOST_TYPEOF_ENCODED_VECTOR(Expr)                                   \
-    BOOST_TYPEOF_VECTOR(BOOST_TYPEOF_LIMIT_SIZE)<                           \
-        BOOST_PP_ENUM(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_TYPEITEM, Expr) \
+#define NDNBOOST_TYPEOF_ENCODED_VECTOR(Expr)                                   \
+    NDNBOOST_TYPEOF_VECTOR(NDNBOOST_TYPEOF_LIMIT_SIZE)<                           \
+        NDNBOOST_PP_ENUM(NDNBOOST_TYPEOF_LIMIT_SIZE, NDNBOOST_TYPEOF_TYPEITEM, Expr) \
     >
 
-#define BOOST_TYPEOF(Expr)\
-    ndnboost::type_of::decode_begin<BOOST_TYPEOF_ENCODED_VECTOR(Expr) >::type
+#define NDNBOOST_TYPEOF(Expr)\
+    ndnboost::type_of::decode_begin<NDNBOOST_TYPEOF_ENCODED_VECTOR(Expr) >::type
 
-#define BOOST_TYPEOF_TPL typename BOOST_TYPEOF
+#define NDNBOOST_TYPEOF_TPL typename NDNBOOST_TYPEOF
 
 //offset_vector is used to delay the insertion of data into the vector in order to allow
 //encoding to be done in many steps
@@ -90,19 +90,19 @@
     };
 }}
 
-#define BOOST_TYPEOF_NESTED_TYPEITEM(z, n, expr)\
-    BOOST_STATIC_CONSTANT(int,BOOST_PP_CAT(value,n) = sizeof(ndnboost::type_of::encode<_typeof_start_vector>(expr).item ## n));\
-    typedef ndnboost::mpl::size_t<BOOST_PP_CAT(self_t::value,n)> BOOST_PP_CAT(item,n);
+#define NDNBOOST_TYPEOF_NESTED_TYPEITEM(z, n, expr)\
+    NDNBOOST_STATIC_CONSTANT(int,NDNBOOST_PP_CAT(value,n) = sizeof(ndnboost::type_of::encode<_typeof_start_vector>(expr).item ## n));\
+    typedef ndnboost::mpl::size_t<NDNBOOST_PP_CAT(self_t::value,n)> NDNBOOST_PP_CAT(item,n);
 
 #ifdef __DMC__
-#define BOOST_TYPEOF_NESTED_TYPEITEM_2(z,n,expr)\
-    typedef typename _typeof_encode_fraction<iteration>::BOOST_PP_CAT(item,n) BOOST_PP_CAT(item,n);
+#define NDNBOOST_TYPEOF_NESTED_TYPEITEM_2(z,n,expr)\
+    typedef typename _typeof_encode_fraction<iteration>::NDNBOOST_PP_CAT(item,n) NDNBOOST_PP_CAT(item,n);
 
-#define BOOST_TYPEOF_FRACTIONTYPE()\
-    BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE,BOOST_TYPEOF_NESTED_TYPEITEM_2,_)\
+#define NDNBOOST_TYPEOF_FRACTIONTYPE()\
+    NDNBOOST_PP_REPEAT(NDNBOOST_TYPEOF_LIMIT_SIZE,NDNBOOST_TYPEOF_NESTED_TYPEITEM_2,_)\
     typedef _typeof_fraction_iter<Pos> fraction_type;
 #else
-#define BOOST_TYPEOF_FRACTIONTYPE()\
+#define NDNBOOST_TYPEOF_FRACTIONTYPE()\
     typedef _typeof_encode_fraction<self_t::iteration> fraction_type;
 #endif
 
@@ -119,13 +119,13 @@
         typedef typename v_iter<fraction_type,mpl::int_<self_t::where> >::type type;
     };
 }}
-#define BOOST_TYPEOF_NESTED_TYPEDEF_IMPL(expr) \
+#define NDNBOOST_TYPEOF_NESTED_TYPEDEF_IMPL(expr) \
         template<int _Typeof_Iteration>\
         struct _typeof_encode_fraction {\
             typedef _typeof_encode_fraction<_Typeof_Iteration> self_t;\
-            BOOST_STATIC_CONSTANT(int,_typeof_encode_offset = (_Typeof_Iteration*BOOST_TYPEOF_LIMIT_SIZE));\
-            typedef ndnboost::type_of::offset_vector<BOOST_TYPEOF_VECTOR(0)<>,ndnboost::mpl::size_t<self_t::_typeof_encode_offset> > _typeof_start_vector;\
-            BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE,BOOST_TYPEOF_NESTED_TYPEITEM,expr)\
+            NDNBOOST_STATIC_CONSTANT(int,_typeof_encode_offset = (_Typeof_Iteration*NDNBOOST_TYPEOF_LIMIT_SIZE));\
+            typedef ndnboost::type_of::offset_vector<NDNBOOST_TYPEOF_VECTOR(0)<>,ndnboost::mpl::size_t<self_t::_typeof_encode_offset> > _typeof_start_vector;\
+            NDNBOOST_PP_REPEAT(NDNBOOST_TYPEOF_LIMIT_SIZE,NDNBOOST_TYPEOF_NESTED_TYPEITEM,expr)\
             template<int Next>\
             struct _apply_next {\
                 typedef _typeof_encode_fraction<Next> type;\
@@ -138,49 +138,49 @@
             typedef typename self_t::type type;\
         };
 #else
-#define BOOST_TYPEOF_NESTED_TYPEDEF_IMPL(expr) \
+#define NDNBOOST_TYPEOF_NESTED_TYPEDEF_IMPL(expr) \
         template<int _Typeof_Iteration>\
         struct _typeof_encode_fraction {\
             typedef _typeof_encode_fraction<_Typeof_Iteration> self_t;\
-            BOOST_STATIC_CONSTANT(int,_typeof_encode_offset = (_Typeof_Iteration*BOOST_TYPEOF_LIMIT_SIZE));\
-            typedef ndnboost::type_of::offset_vector<BOOST_TYPEOF_VECTOR(0)<>,ndnboost::mpl::size_t<self_t::_typeof_encode_offset> > _typeof_start_vector;\
-            BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE,BOOST_TYPEOF_NESTED_TYPEITEM,expr)\
+            NDNBOOST_STATIC_CONSTANT(int,_typeof_encode_offset = (_Typeof_Iteration*NDNBOOST_TYPEOF_LIMIT_SIZE));\
+            typedef ndnboost::type_of::offset_vector<NDNBOOST_TYPEOF_VECTOR(0)<>,ndnboost::mpl::size_t<self_t::_typeof_encode_offset> > _typeof_start_vector;\
+            NDNBOOST_PP_REPEAT(NDNBOOST_TYPEOF_LIMIT_SIZE,NDNBOOST_TYPEOF_NESTED_TYPEITEM,expr)\
         };\
         template<typename Pos>\
         struct _typeof_fraction_iter {\
             typedef _typeof_fraction_iter<Pos> self_t;\
-            BOOST_STATIC_CONSTANT(int,pos=(Pos::value));\
-            BOOST_STATIC_CONSTANT(int,iteration=(pos/BOOST_TYPEOF_LIMIT_SIZE));\
-            BOOST_STATIC_CONSTANT(int,where=pos%BOOST_TYPEOF_LIMIT_SIZE);\
-            BOOST_TYPEOF_FRACTIONTYPE()\
+            NDNBOOST_STATIC_CONSTANT(int,pos=(Pos::value));\
+            NDNBOOST_STATIC_CONSTANT(int,iteration=(pos/NDNBOOST_TYPEOF_LIMIT_SIZE));\
+            NDNBOOST_STATIC_CONSTANT(int,where=pos%NDNBOOST_TYPEOF_LIMIT_SIZE);\
+            NDNBOOST_TYPEOF_FRACTIONTYPE()\
             typedef typename ndnboost::type_of::v_iter<fraction_type,ndnboost::mpl::int_<self_t::where> >::type type;\
             typedef _typeof_fraction_iter<typename Pos::next> next;\
         };
 #endif
 #ifdef __MWERKS__
 
-# define BOOST_TYPEOF_NESTED_TYPEDEF(name,expr) \
+# define NDNBOOST_TYPEOF_NESTED_TYPEDEF(name,expr) \
 template<typename T>\
-struct BOOST_PP_CAT(_typeof_template_,name) {\
-    BOOST_TYPEOF_NESTED_TYPEDEF_IMPL(expr)\
+struct NDNBOOST_PP_CAT(_typeof_template_,name) {\
+    NDNBOOST_TYPEOF_NESTED_TYPEDEF_IMPL(expr)\
     typedef typename ndnboost::type_of::decode_type<_typeof_fraction_iter<ndnboost::mpl::size_t<0> > >::type type;\
 };\
-typedef BOOST_PP_CAT(_typeof_template_,name)<int> name;
+typedef NDNBOOST_PP_CAT(_typeof_template_,name)<int> name;
 
-# define BOOST_TYPEOF_NESTED_TYPEDEF_TPL(name,expr) BOOST_TYPEOF_NESTED_TYPEDEF(name,expr)
+# define NDNBOOST_TYPEOF_NESTED_TYPEDEF_TPL(name,expr) NDNBOOST_TYPEOF_NESTED_TYPEDEF(name,expr)
 
 #else
-# define BOOST_TYPEOF_NESTED_TYPEDEF_TPL(name,expr) \
+# define NDNBOOST_TYPEOF_NESTED_TYPEDEF_TPL(name,expr) \
     struct name {\
-        BOOST_TYPEOF_NESTED_TYPEDEF_IMPL(expr)\
+        NDNBOOST_TYPEOF_NESTED_TYPEDEF_IMPL(expr)\
         typedef typename ndnboost::type_of::decode_type<_typeof_fraction_iter<ndnboost::mpl::size_t<0> > >::type type;\
     };
 
-# define BOOST_TYPEOF_NESTED_TYPEDEF(name,expr) \
+# define NDNBOOST_TYPEOF_NESTED_TYPEDEF(name,expr) \
     struct name {\
-        BOOST_TYPEOF_NESTED_TYPEDEF_IMPL(expr)\
+        NDNBOOST_TYPEOF_NESTED_TYPEDEF_IMPL(expr)\
         typedef ndnboost::type_of::decode_type<_typeof_fraction_iter<ndnboost::mpl::size_t<0> > >::type type;\
     };
 #endif
 
-#endif//BOOST_TYPEOF_COMPLIANT_TYPEOF_IMPL_HPP_INCLUDED
+#endif//NDNBOOST_TYPEOF_COMPLIANT_TYPEOF_IMPL_HPP_INCLUDED
diff --git a/include/ndnboost/typeof/unsupported.hpp b/include/ndnboost/typeof/unsupported.hpp
index d3aae47..11b2a82 100644
--- a/include/ndnboost/typeof/unsupported.hpp
+++ b/include/ndnboost/typeof/unsupported.hpp
@@ -2,28 +2,28 @@
 // Use, modification and distribution is subject to the Boost Software
 // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_TYPEOF_UNSUPPORTED_HPP_INCLUDED
-#define BOOST_TYPEOF_UNSUPPORTED_HPP_INCLUDED
+#ifndef NDNBOOST_TYPEOF_UNSUPPORTED_HPP_INCLUDED
+#define NDNBOOST_TYPEOF_UNSUPPORTED_HPP_INCLUDED
 
 namespace ndnboost { namespace type_of {
     struct typeof_emulation_is_unsupported_on_this_compiler {};
 }}
 
-#define BOOST_TYPEOF(expr) ndnboost::type_of::typeof_emulation_is_unsupported_on_this_compiler
-#define BOOST_TYPEOF_TPL BOOST_TYPEOF
+#define NDNBOOST_TYPEOF(expr) ndnboost::type_of::typeof_emulation_is_unsupported_on_this_compiler
+#define NDNBOOST_TYPEOF_TPL NDNBOOST_TYPEOF
 
-#define BOOST_TYPEOF_NESTED_TYPEDEF_TPL(name,expr) \
+#define NDNBOOST_TYPEOF_NESTED_TYPEDEF_TPL(name,expr) \
 struct name {\
-    typedef BOOST_TYPEOF_TPL(expr) type;\
+    typedef NDNBOOST_TYPEOF_TPL(expr) type;\
 };
 
-#define BOOST_TYPEOF_NESTED_TYPEDEF(name,expr) \
+#define NDNBOOST_TYPEOF_NESTED_TYPEDEF(name,expr) \
 struct name {\
-    typedef BOOST_TYPEOF(expr) type;\
+    typedef NDNBOOST_TYPEOF(expr) type;\
 };
 
 
-#define BOOST_TYPEOF_REGISTER_TYPE(x)
-#define BOOST_TYPEOF_REGISTER_TEMPLATE(x, params)
+#define NDNBOOST_TYPEOF_REGISTER_TYPE(x)
+#define NDNBOOST_TYPEOF_REGISTER_TEMPLATE(x, params)
 
 #endif
diff --git a/include/ndnboost/typeof/vector.hpp b/include/ndnboost/typeof/vector.hpp
index 0673d1c..dfb1dfd 100644
--- a/include/ndnboost/typeof/vector.hpp
+++ b/include/ndnboost/typeof/vector.hpp
@@ -6,60 +6,60 @@
 // Use, modification and distribution is subject to the Boost Software
 // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_TYPEOF_VECTOR_HPP_INCLUDED
+#ifndef NDNBOOST_TYPEOF_VECTOR_HPP_INCLUDED
 
 #include <ndnboost/mpl/int.hpp>
 #include <ndnboost/preprocessor/iteration/self.hpp>
 
-#ifndef BOOST_TYPEOF_LIMIT_SIZE
-#   define BOOST_TYPEOF_LIMIT_SIZE 50
+#ifndef NDNBOOST_TYPEOF_LIMIT_SIZE
+#   define NDNBOOST_TYPEOF_LIMIT_SIZE 50
 #endif
 
 //
 // To recreate the preprocessed versions of this file preprocess and run
 //
-//   $(BOOST_ROOT)/libs/typeof/tools/preprocess.pl
+//   $(NDNBOOST_ROOT)/libs/typeof/tools/preprocess.pl
 //
 
-#if defined(BOOST_TYPEOF_PP_INCLUDE_EXTERNAL)
+#if defined(NDNBOOST_TYPEOF_PP_INCLUDE_EXTERNAL)
 
-#   undef BOOST_TYPEOF_PP_INCLUDE_EXTERNAL
+#   undef NDNBOOST_TYPEOF_PP_INCLUDE_EXTERNAL
 
-#elif !defined(BOOST_TYPEOF_PREPROCESSING_MODE) && !BOOST_PP_IS_SELFISH
+#elif !defined(NDNBOOST_TYPEOF_PREPROCESSING_MODE) && !NDNBOOST_PP_IS_SELFISH
 
-#   define BOOST_PP_INDIRECT_SELF <ndnboost/typeof/vector.hpp>
-#   if   BOOST_TYPEOF_LIMIT_SIZE < 50
-#     include BOOST_PP_INCLUDE_SELF()
-#   elif BOOST_TYPEOF_LIMIT_SIZE < 100
+#   define NDNBOOST_PP_INDIRECT_SELF <ndnboost/typeof/vector.hpp>
+#   if   NDNBOOST_TYPEOF_LIMIT_SIZE < 50
+#     include NDNBOOST_PP_INCLUDE_SELF()
+#   elif NDNBOOST_TYPEOF_LIMIT_SIZE < 100
 #     include <ndnboost/typeof/vector50.hpp>
-#     define  BOOST_TYPEOF_PP_START_SIZE 51
-#     include BOOST_PP_INCLUDE_SELF()
-#   elif BOOST_TYPEOF_LIMIT_SIZE < 150
+#     define  NDNBOOST_TYPEOF_PP_START_SIZE 51
+#     include NDNBOOST_PP_INCLUDE_SELF()
+#   elif NDNBOOST_TYPEOF_LIMIT_SIZE < 150
 #     include <ndnboost/typeof/vector100.hpp>
-#     define  BOOST_TYPEOF_PP_START_SIZE 101
-#     include BOOST_PP_INCLUDE_SELF()
-#   elif BOOST_TYPEOF_LIMIT_SIZE < 200
+#     define  NDNBOOST_TYPEOF_PP_START_SIZE 101
+#     include NDNBOOST_PP_INCLUDE_SELF()
+#   elif NDNBOOST_TYPEOF_LIMIT_SIZE < 200
 #     include <ndnboost/typeof/vector150.hpp>
-#     define  BOOST_TYPEOF_PP_START_SIZE 151
-#     include BOOST_PP_INCLUDE_SELF()
-#   elif BOOST_TYPEOF_LIMIT_SIZE <= 250
+#     define  NDNBOOST_TYPEOF_PP_START_SIZE 151
+#     include NDNBOOST_PP_INCLUDE_SELF()
+#   elif NDNBOOST_TYPEOF_LIMIT_SIZE <= 250
 #     include <ndnboost/typeof/vector200.hpp>
-#     define  BOOST_TYPEOF_PP_START_SIZE 201
-#     include BOOST_PP_INCLUDE_SELF()
+#     define  NDNBOOST_TYPEOF_PP_START_SIZE 201
+#     include NDNBOOST_PP_INCLUDE_SELF()
 #   else
-#     error "BOOST_TYPEOF_LIMIT_SIZE too high"
+#     error "NDNBOOST_TYPEOF_LIMIT_SIZE too high"
 #   endif
 
-#else// defined(BOOST_TYPEOF_PREPROCESSING_MODE) || BOOST_PP_IS_SELFISH
+#else// defined(NDNBOOST_TYPEOF_PREPROCESSING_MODE) || NDNBOOST_PP_IS_SELFISH
 
-#   ifndef BOOST_TYPEOF_PP_NEXT_SIZE
-#     define BOOST_TYPEOF_PP_NEXT_SIZE BOOST_TYPEOF_LIMIT_SIZE
+#   ifndef NDNBOOST_TYPEOF_PP_NEXT_SIZE
+#     define NDNBOOST_TYPEOF_PP_NEXT_SIZE NDNBOOST_TYPEOF_LIMIT_SIZE
 #   endif
-#   ifndef BOOST_TYPEOF_PP_START_SIZE
-#     define BOOST_TYPEOF_PP_START_SIZE 0
+#   ifndef NDNBOOST_TYPEOF_PP_START_SIZE
+#     define NDNBOOST_TYPEOF_PP_START_SIZE 0
 #   endif
 
-#   if BOOST_TYPEOF_PP_START_SIZE <= BOOST_TYPEOF_LIMIT_SIZE
+#   if NDNBOOST_TYPEOF_PP_START_SIZE <= NDNBOOST_TYPEOF_LIMIT_SIZE
 
 #     include <ndnboost/preprocessor/enum_params.hpp>
 #     include <ndnboost/preprocessor/repeat.hpp>
@@ -74,7 +74,7 @@
 
 // iterator
 
-#     define BOOST_TYPEOF_spec_iter(n)\
+#     define NDNBOOST_TYPEOF_spec_iter(n)\
         template<class V>\
         struct v_iter<V, mpl::int_<n> >\
         {\
@@ -84,83 +84,83 @@
 
 namespace ndnboost { namespace type_of {
 
-    template<class V, class Increase_BOOST_TYPEOF_LIMIT_SIZE> struct v_iter; // not defined
-#     define  BOOST_PP_LOCAL_MACRO  BOOST_TYPEOF_spec_iter
-#     define  BOOST_PP_LOCAL_LIMITS \
-        (BOOST_PP_DEC(BOOST_TYPEOF_PP_START_SIZE), \
-         BOOST_PP_DEC(BOOST_TYPEOF_LIMIT_SIZE))
-#     include BOOST_PP_LOCAL_ITERATE()
+    template<class V, class Increase_NDNBOOST_TYPEOF_LIMIT_SIZE> struct v_iter; // not defined
+#     define  NDNBOOST_PP_LOCAL_MACRO  NDNBOOST_TYPEOF_spec_iter
+#     define  NDNBOOST_PP_LOCAL_LIMITS \
+        (NDNBOOST_PP_DEC(NDNBOOST_TYPEOF_PP_START_SIZE), \
+         NDNBOOST_PP_DEC(NDNBOOST_TYPEOF_LIMIT_SIZE))
+#     include NDNBOOST_PP_LOCAL_ITERATE()
 
 }}
 
-#     undef BOOST_TYPEOF_spec_iter
+#     undef NDNBOOST_TYPEOF_spec_iter
 
 // vector
 
-#     define BOOST_TYPEOF_typedef_item(z, n, _)\
+#     define NDNBOOST_TYPEOF_typedef_item(z, n, _)\
         typedef P ## n item ## n;
 
-#     define BOOST_TYPEOF_typedef_fake_item(z, n, _)\
+#     define NDNBOOST_TYPEOF_typedef_fake_item(z, n, _)\
         typedef mpl::int_<1> item ## n;
 
-#     define BOOST_TYPEOF_define_vector(n)\
-        template<BOOST_PP_ENUM_PARAMS(n, class P) BOOST_PP_EXPR_IIF(BOOST_PP_NOT(n), class T = void)>\
+#     define NDNBOOST_TYPEOF_define_vector(n)\
+        template<NDNBOOST_PP_ENUM_PARAMS(n, class P) NDNBOOST_PP_EXPR_IIF(NDNBOOST_PP_NOT(n), class T = void)>\
         struct vector ## n\
         {\
-            typedef v_iter<vector ## n<BOOST_PP_ENUM_PARAMS(n,P)>, ndnboost::mpl::int_<0> > begin;\
-            BOOST_PP_REPEAT(n, BOOST_TYPEOF_typedef_item, ~)\
-            BOOST_PP_REPEAT_FROM_TO(n, BOOST_TYPEOF_PP_NEXT_SIZE, BOOST_TYPEOF_typedef_fake_item, ~)\
+            typedef v_iter<vector ## n<NDNBOOST_PP_ENUM_PARAMS(n,P)>, ndnboost::mpl::int_<0> > begin;\
+            NDNBOOST_PP_REPEAT(n, NDNBOOST_TYPEOF_typedef_item, ~)\
+            NDNBOOST_PP_REPEAT_FROM_TO(n, NDNBOOST_TYPEOF_PP_NEXT_SIZE, NDNBOOST_TYPEOF_typedef_fake_item, ~)\
         };
 
 namespace ndnboost { namespace type_of {
 
-#     define  BOOST_PP_LOCAL_MACRO  BOOST_TYPEOF_define_vector
-#     define  BOOST_PP_LOCAL_LIMITS \
-        (BOOST_TYPEOF_PP_START_SIZE,BOOST_TYPEOF_LIMIT_SIZE)
-#     include BOOST_PP_LOCAL_ITERATE()
+#     define  NDNBOOST_PP_LOCAL_MACRO  NDNBOOST_TYPEOF_define_vector
+#     define  NDNBOOST_PP_LOCAL_LIMITS \
+        (NDNBOOST_TYPEOF_PP_START_SIZE,NDNBOOST_TYPEOF_LIMIT_SIZE)
+#     include NDNBOOST_PP_LOCAL_ITERATE()
 
 }}
 
-#     undef BOOST_TYPEOF_typedef_item
-#     undef BOOST_TYPEOF_typedef_fake_item
-#     undef BOOST_TYPEOF_define_vector
+#     undef NDNBOOST_TYPEOF_typedef_item
+#     undef NDNBOOST_TYPEOF_typedef_fake_item
+#     undef NDNBOOST_TYPEOF_define_vector
 
 // push_back
 
-#     define BOOST_TYPEOF_spec_push_back(n)\
-        template<BOOST_PP_ENUM_PARAMS(n, class P) BOOST_PP_COMMA_IF(n) class T>\
-        struct push_back<BOOST_PP_CAT(ndnboost::type_of::vector, n)<BOOST_PP_ENUM_PARAMS(n, P)>, T>\
+#     define NDNBOOST_TYPEOF_spec_push_back(n)\
+        template<NDNBOOST_PP_ENUM_PARAMS(n, class P) NDNBOOST_PP_COMMA_IF(n) class T>\
+        struct push_back<NDNBOOST_PP_CAT(ndnboost::type_of::vector, n)<NDNBOOST_PP_ENUM_PARAMS(n, P)>, T>\
         {\
-            typedef BOOST_PP_CAT(ndnboost::type_of::vector, BOOST_PP_INC(n))<\
-                BOOST_PP_ENUM_PARAMS(n, P) BOOST_PP_COMMA_IF(n) T\
+            typedef NDNBOOST_PP_CAT(ndnboost::type_of::vector, NDNBOOST_PP_INC(n))<\
+                NDNBOOST_PP_ENUM_PARAMS(n, P) NDNBOOST_PP_COMMA_IF(n) T\
             > type;\
         };
 
 namespace ndnboost { namespace type_of {
 
-#   if   BOOST_TYPEOF_LIMIT_SIZE < 50
+#   if   NDNBOOST_TYPEOF_LIMIT_SIZE < 50
     template<class V, class T> struct push_back {
         typedef V type;
     };
 #   endif
     //default behaviour is to let push_back ignore T, and return the input vector.
-    //This is to let BOOST_TYPEOF_NESTED_TYPEDEF work properly with the default vector.
-#     define  BOOST_PP_LOCAL_MACRO  BOOST_TYPEOF_spec_push_back
-#     define  BOOST_PP_LOCAL_LIMITS \
-        (BOOST_PP_DEC(BOOST_TYPEOF_PP_START_SIZE), \
-         BOOST_PP_DEC(BOOST_TYPEOF_LIMIT_SIZE))
-#     include BOOST_PP_LOCAL_ITERATE()
+    //This is to let NDNBOOST_TYPEOF_NESTED_TYPEDEF work properly with the default vector.
+#     define  NDNBOOST_PP_LOCAL_MACRO  NDNBOOST_TYPEOF_spec_push_back
+#     define  NDNBOOST_PP_LOCAL_LIMITS \
+        (NDNBOOST_PP_DEC(NDNBOOST_TYPEOF_PP_START_SIZE), \
+         NDNBOOST_PP_DEC(NDNBOOST_TYPEOF_LIMIT_SIZE))
+#     include NDNBOOST_PP_LOCAL_ITERATE()
 
 }}
 
-#     undef BOOST_TYPEOF_spec_push_back
+#     undef NDNBOOST_TYPEOF_spec_push_back
 
-#   endif//BOOST_TYPEOF_PP_START_SIZE<=BOOST_TYPEOF_LIMIT_SIZE
-#   undef  BOOST_TYPEOF_PP_START_SIZE
-#   undef  BOOST_TYPEOF_PP_NEXT_SIZE
+#   endif//NDNBOOST_TYPEOF_PP_START_SIZE<=NDNBOOST_TYPEOF_LIMIT_SIZE
+#   undef  NDNBOOST_TYPEOF_PP_START_SIZE
+#   undef  NDNBOOST_TYPEOF_PP_NEXT_SIZE
 
-#endif//BOOST_TYPEOF_PREPROCESSING_MODE || BOOST_PP_IS_SELFISH
+#endif//NDNBOOST_TYPEOF_PREPROCESSING_MODE || NDNBOOST_PP_IS_SELFISH
 
-#define BOOST_TYPEOF_VECTOR_HPP_INCLUDED
-#endif//BOOST_TYPEOF_VECTOR_HPP_INCLUDED
+#define NDNBOOST_TYPEOF_VECTOR_HPP_INCLUDED
+#endif//NDNBOOST_TYPEOF_VECTOR_HPP_INCLUDED
 
diff --git a/include/ndnboost/typeof/vector100.hpp b/include/ndnboost/typeof/vector100.hpp
index 9887744..2216cd9 100644
--- a/include/ndnboost/typeof/vector100.hpp
+++ b/include/ndnboost/typeof/vector100.hpp
@@ -9,7 +9,7 @@
 
 
 namespace ndnboost { namespace type_of {
-    template<class V, class Increase_BOOST_TYPEOF_LIMIT_SIZE> struct v_iter;
+    template<class V, class Increase_NDNBOOST_TYPEOF_LIMIT_SIZE> struct v_iter;
         template<class V> struct v_iter<V, mpl::int_<0> > { typedef typename V::item0 type; typedef v_iter<V, mpl::int_<0 + 1> > next; };
         template<class V> struct v_iter<V, mpl::int_<1> > { typedef typename V::item1 type; typedef v_iter<V, mpl::int_<1 + 1> > next; };
         template<class V> struct v_iter<V, mpl::int_<2> > { typedef typename V::item2 type; typedef v_iter<V, mpl::int_<2 + 1> > next; };
diff --git a/include/ndnboost/typeof/vector150.hpp b/include/ndnboost/typeof/vector150.hpp
index dc9a754..882e846 100644
--- a/include/ndnboost/typeof/vector150.hpp
+++ b/include/ndnboost/typeof/vector150.hpp
@@ -9,7 +9,7 @@
 
 
 namespace ndnboost { namespace type_of {
-    template<class V, class Increase_BOOST_TYPEOF_LIMIT_SIZE> struct v_iter;
+    template<class V, class Increase_NDNBOOST_TYPEOF_LIMIT_SIZE> struct v_iter;
         template<class V> struct v_iter<V, mpl::int_<0> > { typedef typename V::item0 type; typedef v_iter<V, mpl::int_<0 + 1> > next; };
         template<class V> struct v_iter<V, mpl::int_<1> > { typedef typename V::item1 type; typedef v_iter<V, mpl::int_<1 + 1> > next; };
         template<class V> struct v_iter<V, mpl::int_<2> > { typedef typename V::item2 type; typedef v_iter<V, mpl::int_<2 + 1> > next; };
diff --git a/include/ndnboost/typeof/vector200.hpp b/include/ndnboost/typeof/vector200.hpp
index 8285902..40a8d0c 100644
--- a/include/ndnboost/typeof/vector200.hpp
+++ b/include/ndnboost/typeof/vector200.hpp
@@ -9,7 +9,7 @@
 
 
 namespace ndnboost { namespace type_of {
-    template<class V, class Increase_BOOST_TYPEOF_LIMIT_SIZE> struct v_iter;
+    template<class V, class Increase_NDNBOOST_TYPEOF_LIMIT_SIZE> struct v_iter;
         template<class V> struct v_iter<V, mpl::int_<0> > { typedef typename V::item0 type; typedef v_iter<V, mpl::int_<0 + 1> > next; };
         template<class V> struct v_iter<V, mpl::int_<1> > { typedef typename V::item1 type; typedef v_iter<V, mpl::int_<1 + 1> > next; };
         template<class V> struct v_iter<V, mpl::int_<2> > { typedef typename V::item2 type; typedef v_iter<V, mpl::int_<2 + 1> > next; };
diff --git a/include/ndnboost/typeof/vector50.hpp b/include/ndnboost/typeof/vector50.hpp
index 8c368e2..a041ce7 100644
--- a/include/ndnboost/typeof/vector50.hpp
+++ b/include/ndnboost/typeof/vector50.hpp
@@ -9,7 +9,7 @@
 
 
 namespace ndnboost { namespace type_of {
-    template<class V, class Increase_BOOST_TYPEOF_LIMIT_SIZE> struct v_iter;
+    template<class V, class Increase_NDNBOOST_TYPEOF_LIMIT_SIZE> struct v_iter;
         template<class V> struct v_iter<V, mpl::int_<0> > { typedef typename V::item0 type; typedef v_iter<V, mpl::int_<0 + 1> > next; };
         template<class V> struct v_iter<V, mpl::int_<1> > { typedef typename V::item1 type; typedef v_iter<V, mpl::int_<1 + 1> > next; };
         template<class V> struct v_iter<V, mpl::int_<2> > { typedef typename V::item2 type; typedef v_iter<V, mpl::int_<2 + 1> > next; };
diff --git a/include/ndnboost/units/detail/utility.hpp b/include/ndnboost/units/detail/utility.hpp
index 47946be..4eeebc1 100644
--- a/include/ndnboost/units/detail/utility.hpp
+++ b/include/ndnboost/units/detail/utility.hpp
@@ -8,19 +8,19 @@
 // accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_UNITS_UTILITY_HPP
-#define BOOST_UNITS_UTILITY_HPP
+#ifndef NDNBOOST_UNITS_UTILITY_HPP
+#define NDNBOOST_UNITS_UTILITY_HPP
 
 #include <cstdlib>
 #include <typeinfo>
 #include <string>
 
 #if defined(__GLIBCXX__) || defined(__GLIBCPP__)
-#define BOOST_UNITS_USE_DEMANGLING
+#define NDNBOOST_UNITS_USE_DEMANGLING
 #include <cxxabi.h>
 #endif // __GNUC__
 
-#ifdef BOOST_UNITS_USE_DEMANGLING
+#ifdef NDNBOOST_UNITS_USE_DEMANGLING
 
 #include <ndnboost/algorithm/string/replace.hpp>
 
@@ -69,7 +69,7 @@
 
 } // namespace ndnboost
 
-#else // BOOST_UNITS_USE_DEMANGLING
+#else // NDNBOOST_UNITS_USE_DEMANGLING
 
 namespace ndnboost {
 
@@ -99,6 +99,6 @@
 // To get system-specific predefined macros:
 // gcc -arch ppc -dM -E - < /dev/null | sort 
 
-#endif // BOOST_UNITS_USE_DEMANGLING
+#endif // NDNBOOST_UNITS_USE_DEMANGLING
 
-#endif // BOOST_UNITS_UTILITY_HPP
+#endif // NDNBOOST_UNITS_UTILITY_HPP
diff --git a/include/ndnboost/unordered/detail/allocate.hpp b/include/ndnboost/unordered/detail/allocate.hpp
index 4ad6724..4d6a8ed 100644
--- a/include/ndnboost/unordered/detail/allocate.hpp
+++ b/include/ndnboost/unordered/detail/allocate.hpp
@@ -6,8 +6,8 @@
 
 //  See http://www.boost.org/libs/unordered for documentation
 
-#ifndef BOOST_UNORDERED_ALLOCATE_HPP
-#define BOOST_UNORDERED_ALLOCATE_HPP
+#ifndef NDNBOOST_UNORDERED_ALLOCATE_HPP
+#define NDNBOOST_UNORDERED_ALLOCATE_HPP
 
 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
 # pragma once
@@ -31,11 +31,11 @@
 #include <ndnboost/assert.hpp>
 #include <utility>
 
-#if !defined(BOOST_NO_CXX11_HDR_TUPLE)
+#if !defined(NDNBOOST_NO_CXX11_HDR_TUPLE)
 #include <tuple>
 #endif
 
-#if defined(BOOST_MSVC)
+#if defined(NDNBOOST_MSVC)
 #pragma warning(push)
 #pragma warning(disable:4512) // assignment operator could not be generated.
 #pragma warning(disable:4345) // behavior change: an object of POD type
@@ -43,7 +43,7 @@
                               // will be default-initialized.
 #endif
 
-#define BOOST_UNORDERED_EMPLACE_LIMIT 10
+#define NDNBOOST_UNORDERED_EMPLACE_LIMIT 10
 
 namespace ndnboost { namespace unordered { namespace detail {
 
@@ -85,85 +85,85 @@
     // Either forwarding variadic arguments, or storing the arguments in
     // emplace_args##n
 
-#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
+#if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
 
-#define BOOST_UNORDERED_EMPLACE_TEMPLATE typename... Args
-#define BOOST_UNORDERED_EMPLACE_ARGS BOOST_FWD_REF(Args)... args
-#define BOOST_UNORDERED_EMPLACE_FORWARD ndnboost::forward<Args>(args)...
+#define NDNBOOST_UNORDERED_EMPLACE_TEMPLATE typename... Args
+#define NDNBOOST_UNORDERED_EMPLACE_ARGS NDNBOOST_FWD_REF(Args)... args
+#define NDNBOOST_UNORDERED_EMPLACE_FORWARD ndnboost::forward<Args>(args)...
 
-#define BOOST_UNORDERED_EMPLACE_ARGS1(a0) a0
-#define BOOST_UNORDERED_EMPLACE_ARGS2(a0, a1) a0, a1
-#define BOOST_UNORDERED_EMPLACE_ARGS3(a0, a1, a2) a0, a1, a2
+#define NDNBOOST_UNORDERED_EMPLACE_ARGS1(a0) a0
+#define NDNBOOST_UNORDERED_EMPLACE_ARGS2(a0, a1) a0, a1
+#define NDNBOOST_UNORDERED_EMPLACE_ARGS3(a0, a1, a2) a0, a1, a2
 
 #else
 
-#define BOOST_UNORDERED_EMPLACE_TEMPLATE typename Args
-#define BOOST_UNORDERED_EMPLACE_ARGS Args const& args
-#define BOOST_UNORDERED_EMPLACE_FORWARD args
+#define NDNBOOST_UNORDERED_EMPLACE_TEMPLATE typename Args
+#define NDNBOOST_UNORDERED_EMPLACE_ARGS Args const& args
+#define NDNBOOST_UNORDERED_EMPLACE_FORWARD args
 
-#define BOOST_UNORDERED_FWD_PARAM(z, n, a) \
-    BOOST_FWD_REF(BOOST_PP_CAT(A, n)) BOOST_PP_CAT(a, n)
+#define NDNBOOST_UNORDERED_FWD_PARAM(z, n, a) \
+    NDNBOOST_FWD_REF(NDNBOOST_PP_CAT(A, n)) NDNBOOST_PP_CAT(a, n)
 
-#define BOOST_UNORDERED_CALL_FORWARD(z, i, a) \
-    ndnboost::forward<BOOST_PP_CAT(A,i)>(BOOST_PP_CAT(a,i))
+#define NDNBOOST_UNORDERED_CALL_FORWARD(z, i, a) \
+    ndnboost::forward<NDNBOOST_PP_CAT(A,i)>(NDNBOOST_PP_CAT(a,i))
 
-#define BOOST_UNORDERED_EARGS(z, n, _)                                      \
-    template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)>                     \
-    struct BOOST_PP_CAT(emplace_args, n)                                    \
+#define NDNBOOST_UNORDERED_EARGS(z, n, _)                                      \
+    template <NDNBOOST_PP_ENUM_PARAMS_Z(z, n, typename A)>                     \
+    struct NDNBOOST_PP_CAT(emplace_args, n)                                    \
     {                                                                       \
-        BOOST_PP_REPEAT_##z(n, BOOST_UNORDERED_EARGS_MEMBER, _)             \
-        BOOST_PP_CAT(emplace_args, n) (                                     \
-            BOOST_PP_ENUM_BINARY_PARAMS_Z(z, n, Arg, b)                     \
-        ) : BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_EARGS_INIT, _)             \
+        NDNBOOST_PP_REPEAT_##z(n, NDNBOOST_UNORDERED_EARGS_MEMBER, _)             \
+        NDNBOOST_PP_CAT(emplace_args, n) (                                     \
+            NDNBOOST_PP_ENUM_BINARY_PARAMS_Z(z, n, Arg, b)                     \
+        ) : NDNBOOST_PP_ENUM_##z(n, NDNBOOST_UNORDERED_EARGS_INIT, _)             \
         {}                                                                  \
                                                                             \
     };                                                                      \
                                                                             \
-    template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)>                     \
-    inline BOOST_PP_CAT(emplace_args, n) <                                  \
-        BOOST_PP_ENUM_PARAMS_Z(z, n, A)                                     \
+    template <NDNBOOST_PP_ENUM_PARAMS_Z(z, n, typename A)>                     \
+    inline NDNBOOST_PP_CAT(emplace_args, n) <                                  \
+        NDNBOOST_PP_ENUM_PARAMS_Z(z, n, A)                                     \
     > create_emplace_args(                                                  \
-        BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_FWD_PARAM, b)                  \
+        NDNBOOST_PP_ENUM_##z(n, NDNBOOST_UNORDERED_FWD_PARAM, b)                  \
     )                                                                       \
     {                                                                       \
-        BOOST_PP_CAT(emplace_args, n) <                                     \
-            BOOST_PP_ENUM_PARAMS_Z(z, n, A)                                 \
-        > e(BOOST_PP_ENUM_PARAMS_Z(z, n, b));                               \
+        NDNBOOST_PP_CAT(emplace_args, n) <                                     \
+            NDNBOOST_PP_ENUM_PARAMS_Z(z, n, A)                                 \
+        > e(NDNBOOST_PP_ENUM_PARAMS_Z(z, n, b));                               \
         return e;                                                           \
     }
 
-#define BOOST_UNORDERED_EMPLACE_ARGS1 create_emplace_args
-#define BOOST_UNORDERED_EMPLACE_ARGS2 create_emplace_args
-#define BOOST_UNORDERED_EMPLACE_ARGS3 create_emplace_args
+#define NDNBOOST_UNORDERED_EMPLACE_ARGS1 create_emplace_args
+#define NDNBOOST_UNORDERED_EMPLACE_ARGS2 create_emplace_args
+#define NDNBOOST_UNORDERED_EMPLACE_ARGS3 create_emplace_args
 
-#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
+#if defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES)
 
-#define BOOST_UNORDERED_EARGS_MEMBER(z, n, _)                               \
-    typedef BOOST_FWD_REF(BOOST_PP_CAT(A, n)) BOOST_PP_CAT(Arg, n);         \
-    BOOST_PP_CAT(Arg, n) BOOST_PP_CAT(a, n);
+#define NDNBOOST_UNORDERED_EARGS_MEMBER(z, n, _)                               \
+    typedef NDNBOOST_FWD_REF(NDNBOOST_PP_CAT(A, n)) NDNBOOST_PP_CAT(Arg, n);         \
+    NDNBOOST_PP_CAT(Arg, n) NDNBOOST_PP_CAT(a, n);
 
-#define BOOST_UNORDERED_EARGS_INIT(z, n, _)                                 \
-    BOOST_PP_CAT(a, n)(                                                     \
-        ndnboost::forward<BOOST_PP_CAT(A,n)>(BOOST_PP_CAT(b, n)))
+#define NDNBOOST_UNORDERED_EARGS_INIT(z, n, _)                                 \
+    NDNBOOST_PP_CAT(a, n)(                                                     \
+        ndnboost::forward<NDNBOOST_PP_CAT(A,n)>(NDNBOOST_PP_CAT(b, n)))
 
 #else
 
-#define BOOST_UNORDERED_EARGS_MEMBER(z, n, _)                               \
-    typedef typename ndnboost::add_lvalue_reference<BOOST_PP_CAT(A, n)>::type  \
-        BOOST_PP_CAT(Arg, n);                                               \
-    BOOST_PP_CAT(Arg, n) BOOST_PP_CAT(a, n);
+#define NDNBOOST_UNORDERED_EARGS_MEMBER(z, n, _)                               \
+    typedef typename ndnboost::add_lvalue_reference<NDNBOOST_PP_CAT(A, n)>::type  \
+        NDNBOOST_PP_CAT(Arg, n);                                               \
+    NDNBOOST_PP_CAT(Arg, n) NDNBOOST_PP_CAT(a, n);
 
-#define BOOST_UNORDERED_EARGS_INIT(z, n, _)                                 \
-    BOOST_PP_CAT(a, n)(BOOST_PP_CAT(b, n))
+#define NDNBOOST_UNORDERED_EARGS_INIT(z, n, _)                                 \
+    NDNBOOST_PP_CAT(a, n)(NDNBOOST_PP_CAT(b, n))
 
 #endif
 
-BOOST_PP_REPEAT_FROM_TO(1, BOOST_UNORDERED_EMPLACE_LIMIT, BOOST_UNORDERED_EARGS,
+NDNBOOST_PP_REPEAT_FROM_TO(1, NDNBOOST_UNORDERED_EMPLACE_LIMIT, NDNBOOST_UNORDERED_EARGS,
     _)
 
-#undef BOOST_UNORDERED_DEFINE_EMPLACE_ARGS
-#undef BOOST_UNORDERED_EARGS_MEMBER
-#undef BOOST_UNORDERED_EARGS_INIT
+#undef NDNBOOST_UNORDERED_DEFINE_EMPLACE_ARGS
+#undef NDNBOOST_UNORDERED_EARGS_MEMBER
+#undef NDNBOOST_UNORDERED_EARGS_INIT
 
 #endif
 
@@ -177,21 +177,21 @@
 // 1 = std::allocator_traits
 // 2 = ndnboost::container::allocator_traits
 
-#if !defined(BOOST_UNORDERED_USE_ALLOCATOR_TRAITS)
+#if !defined(NDNBOOST_UNORDERED_USE_ALLOCATOR_TRAITS)
 #   if defined(__GXX_EXPERIMENTAL_CXX0X__) && \
             (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7))
-#       define BOOST_UNORDERED_USE_ALLOCATOR_TRAITS 0
-#   elif defined(BOOST_MSVC)
-#       if BOOST_MSVC < 1400
+#       define NDNBOOST_UNORDERED_USE_ALLOCATOR_TRAITS 0
+#   elif defined(NDNBOOST_MSVC)
+#       if NDNBOOST_MSVC < 1400
             // Use container's allocator_traits for older versions of Visual
             // C++ as I don't test with them.
-#           define BOOST_UNORDERED_USE_ALLOCATOR_TRAITS 2
+#           define NDNBOOST_UNORDERED_USE_ALLOCATOR_TRAITS 2
 #       endif
 #   endif
 #endif
 
-#if !defined(BOOST_UNORDERED_USE_ALLOCATOR_TRAITS)
-#   define BOOST_UNORDERED_USE_ALLOCATOR_TRAITS 0
+#if !defined(NDNBOOST_UNORDERED_USE_ALLOCATOR_TRAITS)
+#   define NDNBOOST_UNORDERED_USE_ALLOCATOR_TRAITS 0
 #endif
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -199,7 +199,7 @@
 // Some utilities for implementing allocator_traits, but useful elsewhere so
 // they're always defined.
 
-#if !defined(BOOST_NO_CXX11_HDR_TYPE_TRAITS)
+#if !defined(NDNBOOST_NO_CXX11_HDR_TYPE_TRAITS)
 #  include <type_traits>
 #endif
 
@@ -210,7 +210,7 @@
     //
     // Uses the standard versions if available.
 
-#if !defined(BOOST_NO_CXX11_HDR_TYPE_TRAITS)
+#if !defined(NDNBOOST_NO_CXX11_HDR_TYPE_TRAITS)
 
     using std::integral_constant;
     using std::true_type;
@@ -229,7 +229,7 @@
     ////////////////////////////////////////////////////////////////////////////
     // Explicitly call a destructor
 
-#if defined(BOOST_MSVC)
+#if defined(NDNBOOST_MSVC)
 #pragma warning(push)
 #pragma warning(disable:4100) // unreferenced formal parameter
 #endif
@@ -239,7 +239,7 @@
         x->~T();
     }
 
-#if defined(BOOST_MSVC)
+#if defined(NDNBOOST_MSVC)
 #pragma warning(pop)
 #endif
 
@@ -247,38 +247,38 @@
     // Expression test mechanism
     //
     // When SFINAE expressions are available, define
-    // BOOST_UNORDERED_HAS_FUNCTION which can check if a function call is
-    // supported by a class, otherwise define BOOST_UNORDERED_HAS_MEMBER which
+    // NDNBOOST_UNORDERED_HAS_FUNCTION which can check if a function call is
+    // supported by a class, otherwise define NDNBOOST_UNORDERED_HAS_MEMBER which
     // can detect if a class has the specified member, but not that it has the
     // correct type, this is good enough for a passable impression of
     // allocator_traits.
 
-#if !defined(BOOST_NO_SFINAE_EXPR)
+#if !defined(NDNBOOST_NO_SFINAE_EXPR)
 
     template <typename T, unsigned int> struct expr_test;
     template <typename T> struct expr_test<T, sizeof(char)> : T {};
     template <typename U> static char for_expr_test(U const&);
 
-#   define BOOST_UNORDERED_CHECK_EXPRESSION(count, result, expression)      \
+#   define NDNBOOST_UNORDERED_CHECK_EXPRESSION(count, result, expression)      \
         template <typename U>                                               \
         static typename ndnboost::unordered::detail::expr_test<                \
-            BOOST_PP_CAT(choice, result),                                   \
+            NDNBOOST_PP_CAT(choice, result),                                   \
             sizeof(ndnboost::unordered::detail::for_expr_test((                \
                 (expression),                                               \
             0)))>::type test(                                               \
-            BOOST_PP_CAT(choice, count))
+            NDNBOOST_PP_CAT(choice, count))
 
-#   define BOOST_UNORDERED_DEFAULT_EXPRESSION(count, result)                \
+#   define NDNBOOST_UNORDERED_DEFAULT_EXPRESSION(count, result)                \
         template <typename U>                                               \
-        static BOOST_PP_CAT(choice, result)::type test(                     \
-            BOOST_PP_CAT(choice, count))
+        static NDNBOOST_PP_CAT(choice, result)::type test(                     \
+            NDNBOOST_PP_CAT(choice, count))
 
-#   define BOOST_UNORDERED_HAS_FUNCTION(name, thing, args, _)               \
-    struct BOOST_PP_CAT(has_, name)                                         \
+#   define NDNBOOST_UNORDERED_HAS_FUNCTION(name, thing, args, _)               \
+    struct NDNBOOST_PP_CAT(has_, name)                                         \
     {                                                                       \
-        BOOST_UNORDERED_CHECK_EXPRESSION(1, 1,                              \
+        NDNBOOST_UNORDERED_CHECK_EXPRESSION(1, 1,                              \
             ndnboost::unordered::detail::make< thing >().name args);           \
-        BOOST_UNORDERED_DEFAULT_EXPRESSION(2, 2);                           \
+        NDNBOOST_UNORDERED_DEFAULT_EXPRESSION(2, 2);                           \
                                                                             \
         enum { value = sizeof(test<T>(choose())) == sizeof(choice1::type) };\
     }
@@ -287,33 +287,33 @@
 
     template <typename T> struct identity { typedef T type; };
 
-#   define BOOST_UNORDERED_CHECK_MEMBER(count, result, name, member)        \
+#   define NDNBOOST_UNORDERED_CHECK_MEMBER(count, result, name, member)        \
                                                                             \
     typedef typename ndnboost::unordered::detail::identity<member>::type       \
-        BOOST_PP_CAT(check, count);                                         \
+        NDNBOOST_PP_CAT(check, count);                                         \
                                                                             \
-    template <BOOST_PP_CAT(check, count) e>                                 \
-    struct BOOST_PP_CAT(test, count) {                                      \
-        typedef BOOST_PP_CAT(choice, result) type;                          \
+    template <NDNBOOST_PP_CAT(check, count) e>                                 \
+    struct NDNBOOST_PP_CAT(test, count) {                                      \
+        typedef NDNBOOST_PP_CAT(choice, result) type;                          \
     };                                                                      \
                                                                             \
     template <class U> static typename                                      \
-        BOOST_PP_CAT(test, count)<&U::name>::type                           \
-        test(BOOST_PP_CAT(choice, count))
+        NDNBOOST_PP_CAT(test, count)<&U::name>::type                           \
+        test(NDNBOOST_PP_CAT(choice, count))
 
-#   define BOOST_UNORDERED_DEFAULT_MEMBER(count, result)                    \
-    template <class U> static BOOST_PP_CAT(choice, result)::type            \
-        test(BOOST_PP_CAT(choice, count))
+#   define NDNBOOST_UNORDERED_DEFAULT_MEMBER(count, result)                    \
+    template <class U> static NDNBOOST_PP_CAT(choice, result)::type            \
+        test(NDNBOOST_PP_CAT(choice, count))
 
-#   define BOOST_UNORDERED_HAS_MEMBER(name)                                 \
-    struct BOOST_PP_CAT(has_, name)                                         \
+#   define NDNBOOST_UNORDERED_HAS_MEMBER(name)                                 \
+    struct NDNBOOST_PP_CAT(has_, name)                                         \
     {                                                                       \
         struct impl {                                                       \
             struct base_mixin { int name; };                                \
             struct base : public T, public base_mixin {};                   \
                                                                             \
-            BOOST_UNORDERED_CHECK_MEMBER(1, 1, name, int base_mixin::*);    \
-            BOOST_UNORDERED_DEFAULT_MEMBER(2, 2);                           \
+            NDNBOOST_UNORDERED_CHECK_MEMBER(1, 1, name, int base_mixin::*);    \
+            NDNBOOST_UNORDERED_DEFAULT_MEMBER(2, 2);                           \
                                                                             \
             enum { value = sizeof(choice2::type) ==                         \
                 sizeof(test<base>(choose()))                                \
@@ -333,20 +333,20 @@
 //
 // First our implementation, then later light wrappers around the alternatives
 
-#if BOOST_UNORDERED_USE_ALLOCATOR_TRAITS == 0
+#if NDNBOOST_UNORDERED_USE_ALLOCATOR_TRAITS == 0
 
 #   include <ndnboost/limits.hpp>
 #   include <ndnboost/utility/enable_if.hpp>
 #   include <ndnboost/pointer_to_other.hpp>
-#   if defined(BOOST_NO_SFINAE_EXPR)
+#   if defined(NDNBOOST_NO_SFINAE_EXPR)
 #       include <ndnboost/type_traits/is_same.hpp>
 #   endif
 
-#   if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && \
-        !defined(BOOST_NO_SFINAE_EXPR)
-#       define BOOST_UNORDERED_DETAIL_FULL_CONSTRUCT 1
+#   if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES) && \
+        !defined(NDNBOOST_NO_SFINAE_EXPR)
+#       define NDNBOOST_UNORDERED_DETAIL_FULL_CONSTRUCT 1
 #   else
-#       define BOOST_UNORDERED_DETAIL_FULL_CONSTRUCT 0
+#       define NDNBOOST_UNORDERED_DETAIL_FULL_CONSTRUCT 0
 #   endif
 
 namespace ndnboost { namespace unordered { namespace detail {
@@ -355,12 +355,12 @@
     template <typename Alloc, typename T>
     struct rebind_wrap
     {
-        typedef typename Alloc::BOOST_NESTED_TEMPLATE rebind<T>::other type;
+        typedef typename Alloc::NDNBOOST_NESTED_TEMPLATE rebind<T>::other type;
     };
 
-#   if defined(BOOST_MSVC) && BOOST_MSVC <= 1400
+#   if defined(NDNBOOST_MSVC) && NDNBOOST_MSVC <= 1400
 
-#       define BOOST_UNORDERED_DEFAULT_TYPE_TMPLT(tname)                    \
+#       define NDNBOOST_UNORDERED_DEFAULT_TYPE_TMPLT(tname)                    \
     template <typename Tp, typename Default>                                \
     struct default_type_ ## tname {                                         \
                                                                             \
@@ -375,7 +375,7 @@
         enum { value = (1 == sizeof(test<Tp>(choose()))) };                 \
                                                                             \
         typedef typename ndnboost::detail::if_true<value>::                    \
-            BOOST_NESTED_TEMPLATE then<Tp, DefaultWrap>                     \
+            NDNBOOST_NESTED_TEMPLATE then<Tp, DefaultWrap>                     \
             ::type::tname type;                                             \
     }
 
@@ -384,7 +384,7 @@
     template <typename T, typename T2>
     struct sfinae : T2 {};
 
-#       define BOOST_UNORDERED_DEFAULT_TYPE_TMPLT(tname)                    \
+#       define NDNBOOST_UNORDERED_DEFAULT_TYPE_TMPLT(tname)                    \
     template <typename Tp, typename Default>                                \
     struct default_type_ ## tname {                                         \
                                                                             \
@@ -401,41 +401,41 @@
         enum { value = (1 == sizeof(test<Tp>(choose()))) };                 \
                                                                             \
         typedef typename ndnboost::detail::if_true<value>::                    \
-            BOOST_NESTED_TEMPLATE then<Tp, DefaultWrap>                     \
+            NDNBOOST_NESTED_TEMPLATE then<Tp, DefaultWrap>                     \
             ::type::tname type;                                             \
     }
 
 #   endif
 
-#   define BOOST_UNORDERED_DEFAULT_TYPE(T,tname, arg)                   \
+#   define NDNBOOST_UNORDERED_DEFAULT_TYPE(T,tname, arg)                   \
     typename default_type_ ## tname<T, arg>::type
 
-    BOOST_UNORDERED_DEFAULT_TYPE_TMPLT(pointer);
-    BOOST_UNORDERED_DEFAULT_TYPE_TMPLT(const_pointer);
-    BOOST_UNORDERED_DEFAULT_TYPE_TMPLT(void_pointer);
-    BOOST_UNORDERED_DEFAULT_TYPE_TMPLT(const_void_pointer);
-    BOOST_UNORDERED_DEFAULT_TYPE_TMPLT(difference_type);
-    BOOST_UNORDERED_DEFAULT_TYPE_TMPLT(size_type);
-    BOOST_UNORDERED_DEFAULT_TYPE_TMPLT(propagate_on_container_copy_assignment);
-    BOOST_UNORDERED_DEFAULT_TYPE_TMPLT(propagate_on_container_move_assignment);
-    BOOST_UNORDERED_DEFAULT_TYPE_TMPLT(propagate_on_container_swap);
+    NDNBOOST_UNORDERED_DEFAULT_TYPE_TMPLT(pointer);
+    NDNBOOST_UNORDERED_DEFAULT_TYPE_TMPLT(const_pointer);
+    NDNBOOST_UNORDERED_DEFAULT_TYPE_TMPLT(void_pointer);
+    NDNBOOST_UNORDERED_DEFAULT_TYPE_TMPLT(const_void_pointer);
+    NDNBOOST_UNORDERED_DEFAULT_TYPE_TMPLT(difference_type);
+    NDNBOOST_UNORDERED_DEFAULT_TYPE_TMPLT(size_type);
+    NDNBOOST_UNORDERED_DEFAULT_TYPE_TMPLT(propagate_on_container_copy_assignment);
+    NDNBOOST_UNORDERED_DEFAULT_TYPE_TMPLT(propagate_on_container_move_assignment);
+    NDNBOOST_UNORDERED_DEFAULT_TYPE_TMPLT(propagate_on_container_swap);
 
-#   if !defined(BOOST_NO_SFINAE_EXPR)
+#   if !defined(NDNBOOST_NO_SFINAE_EXPR)
 
     template <typename T>
-    BOOST_UNORDERED_HAS_FUNCTION(
+    NDNBOOST_UNORDERED_HAS_FUNCTION(
         select_on_container_copy_construction, U const, (), 0
     );
 
     template <typename T>
-    BOOST_UNORDERED_HAS_FUNCTION(
+    NDNBOOST_UNORDERED_HAS_FUNCTION(
         max_size, U const, (), 0
     );
 
-#       if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
+#       if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
 
     template <typename T, typename ValueType, typename... Args>
-    BOOST_UNORDERED_HAS_FUNCTION(
+    NDNBOOST_UNORDERED_HAS_FUNCTION(
     construct, U, (
         ndnboost::unordered::detail::make<ValueType*>(),
         ndnboost::unordered::detail::make<Args const>()...), 2
@@ -444,7 +444,7 @@
 #       else
 
     template <typename T, typename ValueType>
-    BOOST_UNORDERED_HAS_FUNCTION(
+    NDNBOOST_UNORDERED_HAS_FUNCTION(
     construct, U, (
         ndnboost::unordered::detail::make<ValueType*>(),
         ndnboost::unordered::detail::make<ValueType const>()), 2
@@ -453,23 +453,23 @@
 #       endif
 
     template <typename T, typename ValueType>
-    BOOST_UNORDERED_HAS_FUNCTION(
+    NDNBOOST_UNORDERED_HAS_FUNCTION(
         destroy, U, (ndnboost::unordered::detail::make<ValueType*>()), 1
     );
 
 #   else
 
     template <typename T>
-    BOOST_UNORDERED_HAS_MEMBER(select_on_container_copy_construction);
+    NDNBOOST_UNORDERED_HAS_MEMBER(select_on_container_copy_construction);
 
     template <typename T>
-    BOOST_UNORDERED_HAS_MEMBER(max_size);
+    NDNBOOST_UNORDERED_HAS_MEMBER(max_size);
 
     template <typename T, typename ValueType>
-    BOOST_UNORDERED_HAS_MEMBER(construct);
+    NDNBOOST_UNORDERED_HAS_MEMBER(construct);
 
     template <typename T, typename ValueType>
-    BOOST_UNORDERED_HAS_MEMBER(destroy);
+    NDNBOOST_UNORDERED_HAS_MEMBER(destroy);
 
 #   endif
 
@@ -516,28 +516,28 @@
         typedef Alloc allocator_type;
         typedef typename Alloc::value_type value_type;
 
-        typedef BOOST_UNORDERED_DEFAULT_TYPE(Alloc, pointer, value_type*)
+        typedef NDNBOOST_UNORDERED_DEFAULT_TYPE(Alloc, pointer, value_type*)
             pointer;
 
         template <typename T>
         struct pointer_to_other : ndnboost::pointer_to_other<pointer, T> {};
 
-        typedef BOOST_UNORDERED_DEFAULT_TYPE(Alloc, const_pointer,
+        typedef NDNBOOST_UNORDERED_DEFAULT_TYPE(Alloc, const_pointer,
             typename pointer_to_other<const value_type>::type)
             const_pointer;
 
-        //typedef BOOST_UNORDERED_DEFAULT_TYPE(Alloc, void_pointer,
+        //typedef NDNBOOST_UNORDERED_DEFAULT_TYPE(Alloc, void_pointer,
         //    typename pointer_to_other<void>::type)
         //    void_pointer;
         //
-        //typedef BOOST_UNORDERED_DEFAULT_TYPE(Alloc, const_void_pointer,
+        //typedef NDNBOOST_UNORDERED_DEFAULT_TYPE(Alloc, const_void_pointer,
         //    typename pointer_to_other<const void>::type)
         //    const_void_pointer;
 
-        typedef BOOST_UNORDERED_DEFAULT_TYPE(Alloc, difference_type,
+        typedef NDNBOOST_UNORDERED_DEFAULT_TYPE(Alloc, difference_type,
             std::ptrdiff_t) difference_type;
 
-        typedef BOOST_UNORDERED_DEFAULT_TYPE(Alloc, size_type, std::size_t)
+        typedef NDNBOOST_UNORDERED_DEFAULT_TYPE(Alloc, size_type, std::size_t)
             size_type;
 
         // TODO: rebind_alloc and rebind_traits
@@ -556,13 +556,13 @@
 
     public:
 
-#   if BOOST_UNORDERED_DETAIL_FULL_CONSTRUCT
+#   if NDNBOOST_UNORDERED_DETAIL_FULL_CONSTRUCT
 
         template <typename T, typename... Args>
         static typename ndnboost::enable_if_c<
                 ndnboost::unordered::detail::has_construct<Alloc, T, Args...>
                 ::value>::type
-            construct(Alloc& a, T* p, BOOST_FWD_REF(Args)... x)
+            construct(Alloc& a, T* p, NDNBOOST_FWD_REF(Args)... x)
         {
             a.construct(p, ndnboost::forward<Args>(x)...);
         }
@@ -571,7 +571,7 @@
         static typename ndnboost::disable_if_c<
                 ndnboost::unordered::detail::has_construct<Alloc, T, Args...>
                 ::value>::type
-            construct(Alloc&, T* p, BOOST_FWD_REF(Args)... x)
+            construct(Alloc&, T* p, NDNBOOST_FWD_REF(Args)... x)
         {
             new ((void*) p) T(ndnboost::forward<Args>(x)...);
         }
@@ -592,7 +592,7 @@
             ndnboost::unordered::detail::destroy(p);
         }
 
-#   elif !defined(BOOST_NO_SFINAE_EXPR)
+#   elif !defined(NDNBOOST_NO_SFINAE_EXPR)
 
         template <typename T>
         static typename ndnboost::enable_if_c<
@@ -689,30 +689,30 @@
 
         // Allocator propagation on assignment and swap.
         // Return true if lhs is modified.
-        typedef BOOST_UNORDERED_DEFAULT_TYPE(
+        typedef NDNBOOST_UNORDERED_DEFAULT_TYPE(
             Alloc, propagate_on_container_copy_assignment, false_type)
             propagate_on_container_copy_assignment;
-        typedef BOOST_UNORDERED_DEFAULT_TYPE(
+        typedef NDNBOOST_UNORDERED_DEFAULT_TYPE(
             Alloc,propagate_on_container_move_assignment, false_type)
             propagate_on_container_move_assignment;
-        typedef BOOST_UNORDERED_DEFAULT_TYPE(
+        typedef NDNBOOST_UNORDERED_DEFAULT_TYPE(
             Alloc,propagate_on_container_swap,false_type)
             propagate_on_container_swap;
     };
 }}}
 
-#   undef BOOST_UNORDERED_DEFAULT_TYPE_TMPLT
-#   undef BOOST_UNORDERED_DEFAULT_TYPE
+#   undef NDNBOOST_UNORDERED_DEFAULT_TYPE_TMPLT
+#   undef NDNBOOST_UNORDERED_DEFAULT_TYPE
 
 ////////////////////////////////////////////////////////////////////////////////
 //
 // std::allocator_traits
 
-#elif BOOST_UNORDERED_USE_ALLOCATOR_TRAITS == 1
+#elif NDNBOOST_UNORDERED_USE_ALLOCATOR_TRAITS == 1
 
 #   include <memory>
 
-#   define BOOST_UNORDERED_DETAIL_FULL_CONSTRUCT 1
+#   define NDNBOOST_UNORDERED_DETAIL_FULL_CONSTRUCT 1
 
 namespace ndnboost { namespace unordered { namespace detail {
 
@@ -731,11 +731,11 @@
 //
 // ndnboost::container::allocator_traits
 
-#elif BOOST_UNORDERED_USE_ALLOCATOR_TRAITS == 2
+#elif NDNBOOST_UNORDERED_USE_ALLOCATOR_TRAITS == 2
 
 #   include <ndnboost/container/allocator_traits.hpp>
 
-#   define BOOST_UNORDERED_DETAIL_FULL_CONSTRUCT 0
+#   define NDNBOOST_UNORDERED_DETAIL_FULL_CONSTRUCT 0
 
 namespace ndnboost { namespace unordered { namespace detail {
 
@@ -753,7 +753,7 @@
 
 #else
 
-#error "Invalid BOOST_UNORDERED_USE_ALLOCATOR_TRAITS value."
+#error "Invalid NDNBOOST_UNORDERED_USE_ALLOCATOR_TRAITS value."
 
 #endif
 
@@ -763,13 +763,13 @@
     ////////////////////////////////////////////////////////////////////////////
     // call_construct
 
-#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
+#if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
 
-#   if BOOST_UNORDERED_DETAIL_FULL_CONSTRUCT
+#   if NDNBOOST_UNORDERED_DETAIL_FULL_CONSTRUCT
 
     template <typename Alloc, typename T, typename... Args>
     inline void call_construct(Alloc& alloc, T* address,
-        BOOST_FWD_REF(Args)... args)
+        NDNBOOST_FWD_REF(Args)... args)
     {
         ndnboost::unordered::detail::allocator_traits<Alloc>::construct(alloc,
             address, ndnboost::forward<Args>(args)...);
@@ -785,7 +785,7 @@
 
     template <typename Alloc, typename T, typename... Args>
     inline void call_construct(Alloc&, T* address,
-        BOOST_FWD_REF(Args)... args)
+        NDNBOOST_FWD_REF(Args)... args)
     {
         new((void*) address) T(ndnboost::forward<Args>(args)...);
     }
@@ -812,63 +812,63 @@
     //
     // Used for piecewise construction.
 
-#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
+#if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
 
-#   define BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(n, namespace_)              \
+#   define NDNBOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(n, namespace_)              \
     template<typename Alloc, typename T>                                    \
     void construct_from_tuple(Alloc& alloc, T* ptr, namespace_ tuple<>)     \
     {                                                                       \
         ndnboost::unordered::detail::call_construct(alloc, ptr);               \
     }                                                                       \
                                                                             \
-    BOOST_PP_REPEAT_FROM_TO(1, n,                                           \
-        BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE_IMPL, namespace_)
+    NDNBOOST_PP_REPEAT_FROM_TO(1, n,                                           \
+        NDNBOOST_UNORDERED_CONSTRUCT_FROM_TUPLE_IMPL, namespace_)
 
-#   define BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE_IMPL(z, n, namespace_)      \
+#   define NDNBOOST_UNORDERED_CONSTRUCT_FROM_TUPLE_IMPL(z, n, namespace_)      \
     template<typename Alloc, typename T,                                    \
-        BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)>                           \
+        NDNBOOST_PP_ENUM_PARAMS_Z(z, n, typename A)>                           \
     void construct_from_tuple(Alloc& alloc, T* ptr,                         \
-            namespace_ tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)     \
+            namespace_ tuple<NDNBOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)     \
     {                                                                       \
         ndnboost::unordered::detail::call_construct(alloc, ptr,                \
-            BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_GET_TUPLE_ARG, namespace_) \
+            NDNBOOST_PP_ENUM_##z(n, NDNBOOST_UNORDERED_GET_TUPLE_ARG, namespace_) \
         );                                                                  \
     }
 
-#   define BOOST_UNORDERED_GET_TUPLE_ARG(z, n, namespace_)                  \
+#   define NDNBOOST_UNORDERED_GET_TUPLE_ARG(z, n, namespace_)                  \
     namespace_ get<n>(x)
 
 #elif !defined(__SUNPRO_CC)
 
-#   define BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(n, namespace_)              \
+#   define NDNBOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(n, namespace_)              \
     template<typename Alloc, typename T>                                    \
     void construct_from_tuple(Alloc&, T* ptr, namespace_ tuple<>)           \
     {                                                                       \
         new ((void*) ptr) T();                                              \
     }                                                                       \
                                                                             \
-    BOOST_PP_REPEAT_FROM_TO(1, n,                                           \
-        BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE_IMPL, namespace_)
+    NDNBOOST_PP_REPEAT_FROM_TO(1, n,                                           \
+        NDNBOOST_UNORDERED_CONSTRUCT_FROM_TUPLE_IMPL, namespace_)
 
-#   define BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE_IMPL(z, n, namespace_)      \
+#   define NDNBOOST_UNORDERED_CONSTRUCT_FROM_TUPLE_IMPL(z, n, namespace_)      \
     template<typename Alloc, typename T,                                    \
-        BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)>                           \
+        NDNBOOST_PP_ENUM_PARAMS_Z(z, n, typename A)>                           \
     void construct_from_tuple(Alloc&, T* ptr,                               \
-            namespace_ tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)     \
+            namespace_ tuple<NDNBOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)     \
     {                                                                       \
         new ((void*) ptr) T(                                                \
-            BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_GET_TUPLE_ARG, namespace_) \
+            NDNBOOST_PP_ENUM_##z(n, NDNBOOST_UNORDERED_GET_TUPLE_ARG, namespace_) \
         );                                                                  \
     }
 
-#   define BOOST_UNORDERED_GET_TUPLE_ARG(z, n, namespace_)                  \
+#   define NDNBOOST_UNORDERED_GET_TUPLE_ARG(z, n, namespace_)                  \
     namespace_ get<n>(x)
 
 #else
 
     template <int N> struct length {};
 
-#   define BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(n, namespace_)              \
+#   define NDNBOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(n, namespace_)              \
     template<typename Alloc, typename T>                                    \
     void construct_from_tuple_impl(                                         \
             ndnboost::unordered::detail::length<0>, Alloc&, T* ptr,            \
@@ -877,35 +877,35 @@
         new ((void*) ptr) T();                                              \
     }                                                                       \
                                                                             \
-    BOOST_PP_REPEAT_FROM_TO(1, n,                                           \
-        BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE_IMPL, namespace_)
+    NDNBOOST_PP_REPEAT_FROM_TO(1, n,                                           \
+        NDNBOOST_UNORDERED_CONSTRUCT_FROM_TUPLE_IMPL, namespace_)
 
-#   define BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE_IMPL(z, n, namespace_)      \
+#   define NDNBOOST_UNORDERED_CONSTRUCT_FROM_TUPLE_IMPL(z, n, namespace_)      \
     template<typename Alloc, typename T,                                    \
-        BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)>                           \
+        NDNBOOST_PP_ENUM_PARAMS_Z(z, n, typename A)>                           \
     void construct_from_tuple_impl(                                         \
             ndnboost::unordered::detail::length<n>, Alloc&, T* ptr,            \
-            namespace_ tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)     \
+            namespace_ tuple<NDNBOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)     \
     {                                                                       \
         new ((void*) ptr) T(                                                \
-            BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_GET_TUPLE_ARG, namespace_) \
+            NDNBOOST_PP_ENUM_##z(n, NDNBOOST_UNORDERED_GET_TUPLE_ARG, namespace_) \
         );                                                                  \
     }
 
-#   define BOOST_UNORDERED_GET_TUPLE_ARG(z, n, namespace_)                  \
+#   define NDNBOOST_UNORDERED_GET_TUPLE_ARG(z, n, namespace_)                  \
     namespace_ get<n>(x)
 
 #endif
 
-BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(10, ndnboost::)
+NDNBOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(10, ndnboost::)
 
-#if !defined(__SUNPRO_CC) && !defined(BOOST_NO_CXX11_HDR_TUPLE)
-   BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(10, std::)
+#if !defined(__SUNPRO_CC) && !defined(NDNBOOST_NO_CXX11_HDR_TUPLE)
+   NDNBOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(10, std::)
 #endif
 
-#undef BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE
-#undef BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE_IMPL
-#undef BOOST_UNORDERED_GET_TUPLE_ARG
+#undef NDNBOOST_UNORDERED_CONSTRUCT_FROM_TUPLE
+#undef NDNBOOST_UNORDERED_CONSTRUCT_FROM_TUPLE_IMPL
+#undef NDNBOOST_UNORDERED_GET_TUPLE_ARG
 
 #if defined(__SUNPRO_CC)
 
@@ -934,7 +934,7 @@
             sizeof(test(choose(), ndnboost::unordered::detail::make<A0>())) };
     };
 
-#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
+#if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
 
     ////////////////////////////////////////////////////////////////////////////
     // Construct from variadic parameters
@@ -943,7 +943,7 @@
 
     template <typename Alloc, typename T, typename... Args>
     inline void construct_value_impl(Alloc& alloc, T* address,
-        BOOST_FWD_REF(Args)... args)
+        NDNBOOST_FWD_REF(Args)... args)
     {
         ndnboost::unordered::detail::call_construct(alloc,
             address, ndnboost::forward<Args>(args)...);
@@ -958,7 +958,7 @@
         typename A0, typename A1, typename A2>
     inline typename enable_if<use_piecewise<A0>, void>::type
         construct_value_impl(Alloc& alloc, std::pair<A, B>* address,
-            BOOST_FWD_REF(A0), BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2)
+            NDNBOOST_FWD_REF(A0), NDNBOOST_FWD_REF(A1) a1, NDNBOOST_FWD_REF(A2) a2)
     {
         ndnboost::unordered::detail::construct_from_tuple(alloc,
             ndnboost::addressof(address->first), ndnboost::forward<A1>(a1));
@@ -966,7 +966,7 @@
             ndnboost::addressof(address->second), ndnboost::forward<A2>(a2));
     }
 
-#else // BOOST_NO_CXX11_VARIADIC_TEMPLATES
+#else // NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
 
 ////////////////////////////////////////////////////////////////////////////////
 // Construct from emplace_args
@@ -1004,25 +1004,25 @@
 
     // Use a macro for the rest.
 
-#define BOOST_UNORDERED_CONSTRUCT_IMPL(z, num_params, _)                    \
+#define NDNBOOST_UNORDERED_CONSTRUCT_IMPL(z, num_params, _)                    \
     template <                                                              \
         typename Alloc, typename T,                                         \
-        BOOST_PP_ENUM_PARAMS_Z(z, num_params, typename A)                   \
+        NDNBOOST_PP_ENUM_PARAMS_Z(z, num_params, typename A)                   \
     >                                                                       \
     inline void construct_value_impl(Alloc&, T* address,                    \
-        ndnboost::unordered::detail::BOOST_PP_CAT(emplace_args,num_params) <   \
-            BOOST_PP_ENUM_PARAMS_Z(z, num_params, A)                        \
+        ndnboost::unordered::detail::NDNBOOST_PP_CAT(emplace_args,num_params) <   \
+            NDNBOOST_PP_ENUM_PARAMS_Z(z, num_params, A)                        \
         > const& args)                                                      \
     {                                                                       \
         new((void*) address) T(                                             \
-            BOOST_PP_ENUM_##z(num_params, BOOST_UNORDERED_CALL_FORWARD,     \
+            NDNBOOST_PP_ENUM_##z(num_params, NDNBOOST_UNORDERED_CALL_FORWARD,     \
                 args.a));                                                   \
     }
 
-    BOOST_PP_REPEAT_FROM_TO(4, BOOST_UNORDERED_EMPLACE_LIMIT,
-        BOOST_UNORDERED_CONSTRUCT_IMPL, _)
+    NDNBOOST_PP_REPEAT_FROM_TO(4, NDNBOOST_UNORDERED_EMPLACE_LIMIT,
+        NDNBOOST_UNORDERED_CONSTRUCT_IMPL, _)
 
-#undef BOOST_UNORDERED_CONSTRUCT_IMPL
+#undef NDNBOOST_UNORDERED_CONSTRUCT_IMPL
 
     // Construct with piece_construct
 
@@ -1038,7 +1038,7 @@
             ndnboost::addressof(address->second), args.a2);
     }
 
-#endif // BOOST_NO_CXX11_VARIADIC_TEMPLATES
+#endif // NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
 
 }}}
 
@@ -1086,7 +1086,7 @@
         template <typename V>
         void construct(V const& v, std::size_t l)
         {
-            BOOST_ASSERT(!ptr_);
+            NDNBOOST_ASSERT(!ptr_);
             length_ = l;
             ptr_ = traits::allocate(alloc_, length_);
             pointer end = ptr_ + static_cast<std::ptrdiff_t>(length_);
@@ -1113,7 +1113,7 @@
     };
 }}}
 
-#if defined(BOOST_MSVC)
+#if defined(NDNBOOST_MSVC)
 #pragma warning(pop)
 #endif
 
diff --git a/include/ndnboost/unordered/detail/buckets.hpp b/include/ndnboost/unordered/detail/buckets.hpp
index df44e70..322df49 100644
--- a/include/ndnboost/unordered/detail/buckets.hpp
+++ b/include/ndnboost/unordered/detail/buckets.hpp
@@ -4,8 +4,8 @@
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_UNORDERED_DETAIL_MANAGER_HPP_INCLUDED
-#define BOOST_UNORDERED_DETAIL_MANAGER_HPP_INCLUDED
+#ifndef NDNBOOST_UNORDERED_DETAIL_MANAGER_HPP_INCLUDED
+#define NDNBOOST_UNORDERED_DETAIL_MANAGER_HPP_INCLUDED
 
 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
 # pragma once
@@ -58,7 +58,7 @@
             typename Node::node_pointer,
             typename Node::value_type&>
     {
-#if !defined(BOOST_NO_MEMBER_TEMPLATE_FRIENDS)
+#if !defined(NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS)
         template <typename Node2, typename ConstNodePointer, typename Policy2>
         friend struct ndnboost::unordered::iterator_detail::cl_iterator;
     private:
@@ -182,7 +182,7 @@
             typename Node::node_pointer,
             typename Node::value_type&>
     {
-#if !defined(BOOST_NO_MEMBER_TEMPLATE_FRIENDS)
+#if !defined(NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS)
         template <typename, typename>
         friend struct ndnboost::unordered::iterator_detail::c_iterator;
         template <typename, typename>
@@ -248,7 +248,7 @@
     {
         friend struct ndnboost::unordered::iterator_detail::iterator<Node>;
 
-#if !defined(BOOST_NO_MEMBER_TEMPLATE_FRIENDS)
+#if !defined(NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS)
         template <typename>
         friend struct ndnboost::unordered::detail::table;
         template <typename>
@@ -341,34 +341,34 @@
 
         void construct();
 
-        template <BOOST_UNORDERED_EMPLACE_TEMPLATE>
-        void construct_with_value(BOOST_UNORDERED_EMPLACE_ARGS)
+        template <NDNBOOST_UNORDERED_EMPLACE_TEMPLATE>
+        void construct_with_value(NDNBOOST_UNORDERED_EMPLACE_ARGS)
         {
             construct();
             ndnboost::unordered::detail::construct_value_impl(
-                alloc_, node_->value_ptr(), BOOST_UNORDERED_EMPLACE_FORWARD);
+                alloc_, node_->value_ptr(), NDNBOOST_UNORDERED_EMPLACE_FORWARD);
             value_constructed_ = true;
         }
 
         template <typename A0>
-        void construct_with_value2(BOOST_FWD_REF(A0) a0)
+        void construct_with_value2(NDNBOOST_FWD_REF(A0) a0)
         {
             construct();
             ndnboost::unordered::detail::construct_value_impl(
                 alloc_, node_->value_ptr(),
-                BOOST_UNORDERED_EMPLACE_ARGS1(ndnboost::forward<A0>(a0)));
+                NDNBOOST_UNORDERED_EMPLACE_ARGS1(ndnboost::forward<A0>(a0)));
             value_constructed_ = true;
         }
 
         value_type const& value() const {
-            BOOST_ASSERT(node_ && node_constructed_ && value_constructed_);
+            NDNBOOST_ASSERT(node_ && node_constructed_ && value_constructed_);
             return node_->value();
         }
 
         // no throw
         node_pointer release()
         {
-            BOOST_ASSERT(node_ && node_constructed_);
+            NDNBOOST_ASSERT(node_ && node_constructed_);
             node_pointer p = node_;
             node_ = node_pointer();
             return p;
@@ -412,7 +412,7 @@
             node_constructed_ = true;
         }
         else {
-            BOOST_ASSERT(node_constructed_);
+            NDNBOOST_ASSERT(node_constructed_);
 
             if (value_constructed_)
             {
@@ -843,11 +843,11 @@
     };
     
     ////////////////////////////////////////////////////////////////////////////
-    // rvalue parameters when type can't be a BOOST_RV_REF(T) parameter
+    // rvalue parameters when type can't be a NDNBOOST_RV_REF(T) parameter
     // e.g. for int
 
-#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-#   define BOOST_UNORDERED_RV_REF(T) BOOST_RV_REF(T)
+#if !defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES)
+#   define NDNBOOST_UNORDERED_RV_REF(T) NDNBOOST_RV_REF(T)
 #else
     struct please_ignore_this_overload {
         typedef please_ignore_this_overload type;
@@ -855,20 +855,20 @@
 
     template <typename T>
     struct rv_ref_impl {
-        typedef BOOST_RV_REF(T) type;
+        typedef NDNBOOST_RV_REF(T) type;
     };
 
     template <typename T>
     struct rv_ref :
         ndnboost::detail::if_true<
             ndnboost::is_class<T>::value
-        >::BOOST_NESTED_TEMPLATE then <
+        >::NDNBOOST_NESTED_TEMPLATE then <
             ndnboost::unordered::detail::rv_ref_impl<T>,
             please_ignore_this_overload
         >::type
     {};
 
-#   define BOOST_UNORDERED_RV_REF(T) \
+#   define NDNBOOST_UNORDERED_RV_REF(T) \
         typename ndnboost::unordered::detail::rv_ref<T>::type
 #endif
 }}}
diff --git a/include/ndnboost/unordered/detail/equivalent.hpp b/include/ndnboost/unordered/detail/equivalent.hpp
index 511fa0c..8b62d59 100644
--- a/include/ndnboost/unordered/detail/equivalent.hpp
+++ b/include/ndnboost/unordered/detail/equivalent.hpp
@@ -4,8 +4,8 @@
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_UNORDERED_DETAIL_EQUIVALENT_HPP_INCLUDED
-#define BOOST_UNORDERED_DETAIL_EQUIVALENT_HPP_INCLUDED
+#ifndef NDNBOOST_UNORDERED_DETAIL_EQUIVALENT_HPP_INCLUDED
+#define NDNBOOST_UNORDERED_DETAIL_EQUIVALENT_HPP_INCLUDED
 
 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
 # pragma once
@@ -438,29 +438,29 @@
             this->add_node(a, key_hash, this->find_node(key_hash, k));
         }
 
-#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-#   if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
+#if defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES)
+#   if defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
         iterator emplace(ndnboost::unordered::detail::emplace_args1<
                 ndnboost::unordered::detail::please_ignore_this_overload> const&)
         {
-            BOOST_ASSERT(false);
+            NDNBOOST_ASSERT(false);
             return iterator();
         }
 #   else
         iterator emplace(
                 ndnboost::unordered::detail::please_ignore_this_overload const&)
         {
-            BOOST_ASSERT(false);
+            NDNBOOST_ASSERT(false);
             return iterator();
         }
 #   endif
 #endif
 
-        template <BOOST_UNORDERED_EMPLACE_TEMPLATE>
-        iterator emplace(BOOST_UNORDERED_EMPLACE_ARGS)
+        template <NDNBOOST_UNORDERED_EMPLACE_TEMPLATE>
+        iterator emplace(NDNBOOST_UNORDERED_EMPLACE_ARGS)
         {
             node_constructor a(this->node_alloc());
-            a.construct_with_value(BOOST_UNORDERED_EMPLACE_FORWARD);
+            a.construct_with_value(NDNBOOST_UNORDERED_EMPLACE_FORWARD);
 
             return iterator(emplace_impl(a));
         }
@@ -543,7 +543,7 @@
 
         iterator erase(c_iterator r)
         {
-            BOOST_ASSERT(r.node_);
+            NDNBOOST_ASSERT(r.node_);
             iterator next(r.node_);
             ++next;
             erase_nodes(r.node_, next.node_);
@@ -646,7 +646,7 @@
         // strong otherwise exception safety
         void rehash_impl(std::size_t num_buckets)
         {
-            BOOST_ASSERT(this->buckets_);
+            NDNBOOST_ASSERT(this->buckets_);
 
             this->create_buckets(num_buckets);
             link_pointer prev = this->get_previous_start();
diff --git a/include/ndnboost/unordered/detail/extract_key.hpp b/include/ndnboost/unordered/detail/extract_key.hpp
index 74dfdab..37e7aba 100644
--- a/include/ndnboost/unordered/detail/extract_key.hpp
+++ b/include/ndnboost/unordered/detail/extract_key.hpp
@@ -3,8 +3,8 @@
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_UNORDERED_DETAIL_EXTRACT_KEY_HPP_INCLUDED
-#define BOOST_UNORDERED_DETAIL_EXTRACT_KEY_HPP_INCLUDED
+#ifndef NDNBOOST_UNORDERED_DETAIL_EXTRACT_KEY_HPP_INCLUDED
+#define NDNBOOST_UNORDERED_DETAIL_EXTRACT_KEY_HPP_INCLUDED
 
 #include <ndnboost/unordered/detail/table.hpp>
 
@@ -37,7 +37,7 @@
             sizeof(choice2::type) };
         
         typedef typename ndnboost::detail::if_true<value>::
-            BOOST_NESTED_TEMPLATE then<Key const&, no_key>::type type;
+            NDNBOOST_NESTED_TEMPLATE then<Key const&, no_key>::type type;
     };
 
     template <class ValueType>
@@ -56,7 +56,7 @@
             return no_key();
         }
         
-#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
+#if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
         template <class... Args>
         static no_key extract(Args const&...)
         {
@@ -107,7 +107,7 @@
             return k;
         }
 
-#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
+#if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
         template <class... Args>
         static no_key extract(Args const&...)
         {
@@ -133,9 +133,9 @@
         }
 #endif
 
-#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
+#if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
 
-#define BOOST_UNORDERED_KEY_FROM_TUPLE(namespace_)                          \
+#define NDNBOOST_UNORDERED_KEY_FROM_TUPLE(namespace_)                          \
         template <typename T2>                                              \
         static no_key extract(ndnboost::unordered::piecewise_construct_t,      \
                 namespace_ tuple<> const&, T2 const&)                       \
@@ -154,7 +154,7 @@
 
 #else
 
-#define BOOST_UNORDERED_KEY_FROM_TUPLE(namespace_)                          \
+#define NDNBOOST_UNORDERED_KEY_FROM_TUPLE(namespace_)                          \
         static no_key extract(ndnboost::unordered::piecewise_construct_t,      \
                 namespace_ tuple<> const&)                                  \
         {                                                                   \
@@ -172,10 +172,10 @@
 
 #endif
 
-BOOST_UNORDERED_KEY_FROM_TUPLE(ndnboost::)
+NDNBOOST_UNORDERED_KEY_FROM_TUPLE(ndnboost::)
 
-#if !defined(BOOST_NO_CXX11_HDR_TUPLE)
-BOOST_UNORDERED_KEY_FROM_TUPLE(std::)
+#if !defined(NDNBOOST_NO_CXX11_HDR_TUPLE)
+NDNBOOST_UNORDERED_KEY_FROM_TUPLE(std::)
 #endif
     };
 }}}
diff --git a/include/ndnboost/unordered/detail/fwd.hpp b/include/ndnboost/unordered/detail/fwd.hpp
index 929466f..c4f4cda 100644
--- a/include/ndnboost/unordered/detail/fwd.hpp
+++ b/include/ndnboost/unordered/detail/fwd.hpp
@@ -3,8 +3,8 @@
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_UNORDERED_FWD_HPP_INCLUDED
-#define BOOST_UNORDERED_FWD_HPP_INCLUDED
+#ifndef NDNBOOST_UNORDERED_FWD_HPP_INCLUDED
+#define NDNBOOST_UNORDERED_FWD_HPP_INCLUDED
 
 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
 # pragma once
diff --git a/include/ndnboost/unordered/detail/table.hpp b/include/ndnboost/unordered/detail/table.hpp
index 3d2cf86..7641483 100644
--- a/include/ndnboost/unordered/detail/table.hpp
+++ b/include/ndnboost/unordered/detail/table.hpp
@@ -4,8 +4,8 @@
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_UNORDERED_DETAIL_ALL_HPP_INCLUDED
-#define BOOST_UNORDERED_DETAIL_ALL_HPP_INCLUDED
+#ifndef NDNBOOST_UNORDERED_DETAIL_ALL_HPP_INCLUDED
+#define NDNBOOST_UNORDERED_DETAIL_ALL_HPP_INCLUDED
 
 #include <ndnboost/unordered/detail/buckets.hpp>
 #include <ndnboost/unordered/detail/util.hpp>
@@ -13,19 +13,19 @@
 #include <ndnboost/type_traits/alignment_of.hpp>
 #include <cmath>
 
-#if defined(BOOST_MSVC)
+#if defined(NDNBOOST_MSVC)
 #pragma warning(push)
 #pragma warning(disable:4127) // conditional expression is constant
 #endif
 
-#if defined(BOOST_UNORDERED_DEPRECATED_EQUALITY)
+#if defined(NDNBOOST_UNORDERED_DEPRECATED_EQUALITY)
 
 #if defined(__EDG__)
 #elif defined(_MSC_VER) || defined(__BORLANDC__) || defined(__DMC__)
-#pragma message("Warning: BOOST_UNORDERED_DEPRECATED_EQUALITY is no longer supported.")
+#pragma message("Warning: NDNBOOST_UNORDERED_DEPRECATED_EQUALITY is no longer supported.")
 #elif defined(__GNUC__) || defined(__HP_aCC) || \
     defined(__SUNPRO_CC) || defined(__IBMCPP__)
-#warning "BOOST_UNORDERED_DEPRECATED_EQUALITY is no longer supported."
+#warning "NDNBOOST_UNORDERED_DEPRECATED_EQUALITY is no longer supported."
 #endif
 
 #endif
@@ -231,7 +231,7 @@
 
         bucket_pointer get_bucket(std::size_t bucket_index) const
         {
-            BOOST_ASSERT(buckets_);
+            NDNBOOST_ASSERT(buckets_);
             return buckets_ + static_cast<std::ptrdiff_t>(bucket_index);
         }
 
@@ -264,7 +264,7 @@
 
         float load_factor() const
         {
-            BOOST_ASSERT(bucket_count_ != 0);
+            NDNBOOST_ASSERT(bucket_count_ != 0);
             return static_cast<float>(size_)
                 / static_cast<float>(bucket_count_);
         }
@@ -313,14 +313,14 @@
 
         void max_load_factor(float z)
         {
-            BOOST_ASSERT(z > 0);
+            NDNBOOST_ASSERT(z > 0);
             mlf_ = (std::max)(z, minimum_max_load_factor);
             recalculate_max_load();
         }
 
         std::size_t min_buckets_for_size(std::size_t size) const
         {
-            BOOST_ASSERT(mlf_ >= minimum_max_load_factor);
+            NDNBOOST_ASSERT(mlf_ >= minimum_max_load_factor);
     
             using namespace std;
     
@@ -459,7 +459,7 @@
             // According to 23.2.1.8, if propagate_on_container_swap is
             // false the behaviour is undefined unless the allocators
             // are equal.
-            BOOST_ASSERT(node_alloc() == other.node_alloc());
+            NDNBOOST_ASSERT(node_alloc() == other.node_alloc());
         }
 
         void swap_allocators(table& other, true_type)
@@ -491,8 +491,8 @@
 
         void move_buckets_from(table& other)
         {
-            BOOST_ASSERT(node_alloc() == other.node_alloc());
-            BOOST_ASSERT(!buckets_);
+            NDNBOOST_ASSERT(node_alloc() == other.node_alloc());
+            NDNBOOST_ASSERT(!buckets_);
             buckets_ = other.buckets_;
             bucket_count_ = other.bucket_count_;
             size_ = other.size_;
@@ -524,7 +524,7 @@
 
         std::size_t delete_nodes(link_pointer prev, link_pointer end)
         {
-            BOOST_ASSERT(prev->next_ != end);
+            NDNBOOST_ASSERT(prev->next_ != end);
 
             std::size_t count = 0;
 
@@ -554,7 +554,7 @@
                 max_load_ = 0;
             }
 
-            BOOST_ASSERT(!size_);
+            NDNBOOST_ASSERT(!size_);
         }
 
         void clear()
@@ -564,7 +564,7 @@
             delete_nodes(get_previous_start(), link_pointer());
             clear_buckets();
 
-            BOOST_ASSERT(!size_);
+            NDNBOOST_ASSERT(!size_);
         }
 
         void clear_buckets()
@@ -854,7 +854,7 @@
     }
 }}}
 
-#if defined(BOOST_MSVC)
+#if defined(NDNBOOST_MSVC)
 #pragma warning(pop)
 #endif
 
diff --git a/include/ndnboost/unordered/detail/unique.hpp b/include/ndnboost/unordered/detail/unique.hpp
index 44fc04d..d413255 100644
--- a/include/ndnboost/unordered/detail/unique.hpp
+++ b/include/ndnboost/unordered/detail/unique.hpp
@@ -4,8 +4,8 @@
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_UNORDERED_DETAIL_UNIQUE_HPP_INCLUDED
-#define BOOST_UNORDERED_DETAIL_UNIQUE_HPP_INCLUDED
+#ifndef NDNBOOST_UNORDERED_DETAIL_UNIQUE_HPP_INCLUDED
+#define NDNBOOST_UNORDERED_DETAIL_UNIQUE_HPP_INCLUDED
 
 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
 # pragma once
@@ -344,7 +344,7 @@
             // Create the node before rehashing in case it throws an
             // exception (need strong safety in such a case).
             node_constructor a(this->node_alloc());
-            a.construct_with_value(BOOST_UNORDERED_EMPLACE_ARGS3(
+            a.construct_with_value(NDNBOOST_UNORDERED_EMPLACE_ARGS3(
                 ndnboost::unordered::piecewise_construct,
                 ndnboost::make_tuple(k),
                 ndnboost::make_tuple()));
@@ -353,39 +353,39 @@
             return *add_node(a, key_hash);
         }
 
-#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-#   if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
+#if defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES)
+#   if defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
         emplace_return emplace(ndnboost::unordered::detail::emplace_args1<
                 ndnboost::unordered::detail::please_ignore_this_overload> const&)
         {
-            BOOST_ASSERT(false);
+            NDNBOOST_ASSERT(false);
             return emplace_return(this->begin(), false);
         }
 #   else
         emplace_return emplace(
                 ndnboost::unordered::detail::please_ignore_this_overload const&)
         {
-            BOOST_ASSERT(false);
+            NDNBOOST_ASSERT(false);
             return emplace_return(this->begin(), false);
         }
 #   endif
 #endif
 
-        template <BOOST_UNORDERED_EMPLACE_TEMPLATE>
-        emplace_return emplace(BOOST_UNORDERED_EMPLACE_ARGS)
+        template <NDNBOOST_UNORDERED_EMPLACE_TEMPLATE>
+        emplace_return emplace(NDNBOOST_UNORDERED_EMPLACE_ARGS)
         {
-#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
+#if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
             return emplace_impl(
-                extractor::extract(BOOST_UNORDERED_EMPLACE_FORWARD),
-                BOOST_UNORDERED_EMPLACE_FORWARD);
+                extractor::extract(NDNBOOST_UNORDERED_EMPLACE_FORWARD),
+                NDNBOOST_UNORDERED_EMPLACE_FORWARD);
 #else
             return emplace_impl(
                 extractor::extract(args.a0, args.a1),
-                BOOST_UNORDERED_EMPLACE_FORWARD);
+                NDNBOOST_UNORDERED_EMPLACE_FORWARD);
 #endif
         }
 
-#if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
+#if defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
         template <typename A0>
         emplace_return emplace(
                 ndnboost::unordered::detail::emplace_args1<A0> const& args)
@@ -394,9 +394,9 @@
         }
 #endif
 
-        template <BOOST_UNORDERED_EMPLACE_TEMPLATE>
+        template <NDNBOOST_UNORDERED_EMPLACE_TEMPLATE>
         emplace_return emplace_impl(key_type const& k,
-            BOOST_UNORDERED_EMPLACE_ARGS)
+            NDNBOOST_UNORDERED_EMPLACE_ARGS)
         {
             std::size_t key_hash = this->hash(k);
             iterator pos = this->find_node(key_hash, k);
@@ -406,7 +406,7 @@
             // Create the node before rehashing in case it throws an
             // exception (need strong safety in such a case).
             node_constructor a(this->node_alloc());
-            a.construct_with_value(BOOST_UNORDERED_EMPLACE_FORWARD);
+            a.construct_with_value(NDNBOOST_UNORDERED_EMPLACE_FORWARD);
     
             // reserve has basic exception safety if the hash function
             // throws, strong otherwise.
@@ -428,13 +428,13 @@
             return emplace_return(this->add_node(a, key_hash), true);
         }
 
-        template <BOOST_UNORDERED_EMPLACE_TEMPLATE>
-        emplace_return emplace_impl(no_key, BOOST_UNORDERED_EMPLACE_ARGS)
+        template <NDNBOOST_UNORDERED_EMPLACE_TEMPLATE>
+        emplace_return emplace_impl(no_key, NDNBOOST_UNORDERED_EMPLACE_ARGS)
         {
             // Don't have a key, so construct the node first in order
             // to be able to lookup the position.
             node_constructor a(this->node_alloc());
-            a.construct_with_value(BOOST_UNORDERED_EMPLACE_FORWARD);
+            a.construct_with_value(NDNBOOST_UNORDERED_EMPLACE_FORWARD);
             return emplace_impl_with_node(a);
         }
 
@@ -538,7 +538,7 @@
 
         iterator erase(c_iterator r)
         {
-            BOOST_ASSERT(r.node_);
+            NDNBOOST_ASSERT(r.node_);
             iterator next(r.node_);
             ++next;
             erase_nodes(r.node_, next.node_);
@@ -590,7 +590,7 @@
         // strong otherwise exception safety
         void rehash_impl(std::size_t num_buckets)
         {
-            BOOST_ASSERT(this->buckets_);
+            NDNBOOST_ASSERT(this->buckets_);
 
             this->create_buckets(num_buckets);
             link_pointer prev = this->get_previous_start();
diff --git a/include/ndnboost/unordered/detail/util.hpp b/include/ndnboost/unordered/detail/util.hpp
index 41f8e42..0e1db85 100644
--- a/include/ndnboost/unordered/detail/util.hpp
+++ b/include/ndnboost/unordered/detail/util.hpp
@@ -4,8 +4,8 @@
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_UNORDERED_DETAIL_UTIL_HPP_INCLUDED
-#define BOOST_UNORDERED_DETAIL_UTIL_HPP_INCLUDED
+#ifndef NDNBOOST_UNORDERED_DETAIL_UTIL_HPP_INCLUDED
+#define NDNBOOST_UNORDERED_DETAIL_UTIL_HPP_INCLUDED
 
 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
 # pragma once
@@ -55,7 +55,7 @@
     ////////////////////////////////////////////////////////////////////////////
     // primes
 
-#define BOOST_UNORDERED_PRIMES \
+#define NDNBOOST_UNORDERED_PRIMES \
     (17ul)(29ul)(37ul)(53ul)(67ul)(79ul) \
     (97ul)(131ul)(193ul)(257ul)(389ul)(521ul)(769ul) \
     (1031ul)(1543ul)(2053ul)(3079ul)(6151ul)(12289ul)(24593ul) \
@@ -72,22 +72,22 @@
         static std::ptrdiff_t const length;
 #else
         static std::ptrdiff_t const length
-            = BOOST_PP_SEQ_SIZE(BOOST_UNORDERED_PRIMES);
+            = NDNBOOST_PP_SEQ_SIZE(NDNBOOST_UNORDERED_PRIMES);
 #endif
     };
 
     template<class T>
     std::size_t const prime_list_template<T>::value[] = {
-        BOOST_PP_SEQ_ENUM(BOOST_UNORDERED_PRIMES)
+        NDNBOOST_PP_SEQ_ENUM(NDNBOOST_UNORDERED_PRIMES)
     };
 
 #if !defined(SUNPRO_CC)
     template<class T>
     std::ptrdiff_t const prime_list_template<T>::length
-        = BOOST_PP_SEQ_SIZE(BOOST_UNORDERED_PRIMES);
+        = NDNBOOST_PP_SEQ_SIZE(NDNBOOST_UNORDERED_PRIMES);
 #endif
 
-#undef BOOST_UNORDERED_PRIMES
+#undef NDNBOOST_UNORDERED_PRIMES
 
     typedef prime_list_template<std::size_t> prime_list;
 
@@ -118,7 +118,7 @@
     ////////////////////////////////////////////////////////////////////////////
     // insert_size/initial_size
 
-#if !defined(BOOST_NO_STD_DISTANCE)
+#if !defined(NDNBOOST_NO_STD_DISTANCE)
 
     using ::std::distance;
 
@@ -189,7 +189,7 @@
     struct generate_base
       : ndnboost::detail::if_true<
             ndnboost::is_empty<T>::value
-        >:: BOOST_NESTED_TEMPLATE then<
+        >:: NDNBOOST_NESTED_TEMPLATE then<
             ndnboost::unordered::detail::compressed_base<T, Index>,
             ndnboost::unordered::detail::uncompressed_base<T, Index>
         >
diff --git a/include/ndnboost/unordered/unordered_set.hpp b/include/ndnboost/unordered/unordered_set.hpp
index 5a68be6..eb32393 100644
--- a/include/ndnboost/unordered/unordered_set.hpp
+++ b/include/ndnboost/unordered/unordered_set.hpp
@@ -6,8 +6,8 @@
 
 //  See http://www.boost.org/libs/unordered for documentation
 
-#ifndef BOOST_UNORDERED_UNORDERED_SET_HPP_INCLUDED
-#define BOOST_UNORDERED_UNORDERED_SET_HPP_INCLUDED
+#ifndef NDNBOOST_UNORDERED_UNORDERED_SET_HPP_INCLUDED
+#define NDNBOOST_UNORDERED_UNORDERED_SET_HPP_INCLUDED
 
 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
 # pragma once
@@ -20,13 +20,13 @@
 #include <ndnboost/functional/hash.hpp>
 #include <ndnboost/move/move.hpp>
 
-#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
+#if !defined(NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST)
 #include <initializer_list>
 #endif
 
-#if defined(BOOST_MSVC)
+#if defined(NDNBOOST_MSVC)
 #pragma warning(push)
-#if BOOST_MSVC >= 1400
+#if NDNBOOST_MSVC >= 1400
 #pragma warning(disable:4396) //the inline specifier cannot be used when a
                               // friend declaration refers to a specialization
                               // of a function template
@@ -40,8 +40,8 @@
     template <class T, class H, class P, class A>
     class unordered_set
     {
-#if defined(BOOST_UNORDERED_USE_MOVE)
-        BOOST_COPYABLE_AND_MOVABLE(unordered_set)
+#if defined(NDNBOOST_UNORDERED_USE_MOVE)
+        NDNBOOST_COPYABLE_AND_MOVABLE(unordered_set)
 #endif
     public:
 
@@ -113,23 +113,23 @@
 
         unordered_set(unordered_set const&, allocator_type const&);
 
-#if defined(BOOST_UNORDERED_USE_MOVE)
-        unordered_set(BOOST_RV_REF(unordered_set) other)
+#if defined(NDNBOOST_UNORDERED_USE_MOVE)
+        unordered_set(NDNBOOST_RV_REF(unordered_set) other)
             : table_(other.table_, ndnboost::unordered::detail::move_tag())
         {
         }
-#elif !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
+#elif !defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES)
         unordered_set(unordered_set&& other)
             : table_(other.table_, ndnboost::unordered::detail::move_tag())
         {
         }
 #endif
 
-#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
+#if !defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES)
         unordered_set(unordered_set&&, allocator_type const&);
 #endif
 
-#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
+#if !defined(NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST)
         unordered_set(
                 std::initializer_list<value_type>,
                 size_type = ndnboost::unordered::detail::default_bucket_count,
@@ -144,14 +144,14 @@
 
         // Assign
 
-#if defined(BOOST_UNORDERED_USE_MOVE)
-        unordered_set& operator=(BOOST_COPY_ASSIGN_REF(unordered_set) x)
+#if defined(NDNBOOST_UNORDERED_USE_MOVE)
+        unordered_set& operator=(NDNBOOST_COPY_ASSIGN_REF(unordered_set) x)
         {
             table_.assign(x.table_);
             return *this;
         }
 
-        unordered_set& operator=(BOOST_RV_REF(unordered_set) x)
+        unordered_set& operator=(NDNBOOST_RV_REF(unordered_set) x)
         {
             table_.move_assign(x.table_);
             return *this;
@@ -163,7 +163,7 @@
             return *this;
         }
 
-#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
+#if !defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES)
         unordered_set& operator=(unordered_set&& x)
         {
             table_.move_assign(x.table_);
@@ -172,78 +172,78 @@
 #endif
 #endif
 
-#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
+#if !defined(NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST)
         unordered_set& operator=(std::initializer_list<value_type>);
 #endif
 
-        allocator_type get_allocator() const BOOST_NOEXCEPT
+        allocator_type get_allocator() const NDNBOOST_NOEXCEPT
         {
             return table_.node_alloc();
         }
 
         // size and capacity
 
-        bool empty() const BOOST_NOEXCEPT
+        bool empty() const NDNBOOST_NOEXCEPT
         {
             return table_.size_ == 0;
         }
 
-        size_type size() const BOOST_NOEXCEPT
+        size_type size() const NDNBOOST_NOEXCEPT
         {
             return table_.size_;
         }
 
-        size_type max_size() const BOOST_NOEXCEPT;
+        size_type max_size() const NDNBOOST_NOEXCEPT;
 
         // iterators
 
-        iterator begin() BOOST_NOEXCEPT
+        iterator begin() NDNBOOST_NOEXCEPT
         {
             return table_.begin();
         }
 
-        const_iterator begin() const BOOST_NOEXCEPT
+        const_iterator begin() const NDNBOOST_NOEXCEPT
         {
             return table_.begin();
         }
 
-        iterator end() BOOST_NOEXCEPT
+        iterator end() NDNBOOST_NOEXCEPT
         {
             return iterator();
         }
 
-        const_iterator end() const BOOST_NOEXCEPT
+        const_iterator end() const NDNBOOST_NOEXCEPT
         {
             return const_iterator();
         }
 
-        const_iterator cbegin() const BOOST_NOEXCEPT
+        const_iterator cbegin() const NDNBOOST_NOEXCEPT
         {
             return table_.begin();
         }
 
-        const_iterator cend() const BOOST_NOEXCEPT
+        const_iterator cend() const NDNBOOST_NOEXCEPT
         {
             return const_iterator();
         }
 
         // emplace
 
-#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
+#if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
         template <class... Args>
-        std::pair<iterator, bool> emplace(BOOST_FWD_REF(Args)... args)
+        std::pair<iterator, bool> emplace(NDNBOOST_FWD_REF(Args)... args)
         {
             return table_.emplace(ndnboost::forward<Args>(args)...);
         }
 
         template <class... Args>
-        iterator emplace_hint(const_iterator, BOOST_FWD_REF(Args)... args)
+        iterator emplace_hint(const_iterator, NDNBOOST_FWD_REF(Args)... args)
         {
             return table_.emplace(ndnboost::forward<Args>(args)...).first;
         }
 #else
 
-#if !BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x5100))
+#if !NDNBOOST_WORKAROUND(__SUNPRO_CC, NDNBOOST_TESTED_AT(0x5100))
 
         // 0 argument emplace requires special treatment in case
         // the container is instantiated with a value type that
@@ -269,7 +269,7 @@
 #endif
 
         template <typename A0>
-        std::pair<iterator, bool> emplace(BOOST_FWD_REF(A0) a0)
+        std::pair<iterator, bool> emplace(NDNBOOST_FWD_REF(A0) a0)
         {
             return table_.emplace(
                 ndnboost::unordered::detail::create_emplace_args(
@@ -278,7 +278,7 @@
         }
 
         template <typename A0>
-        iterator emplace_hint(const_iterator, BOOST_FWD_REF(A0) a0)
+        iterator emplace_hint(const_iterator, NDNBOOST_FWD_REF(A0) a0)
         {
             return table_.emplace(
                 ndnboost::unordered::detail::create_emplace_args(
@@ -288,8 +288,8 @@
 
         template <typename A0, typename A1>
         std::pair<iterator, bool> emplace(
-            BOOST_FWD_REF(A0) a0,
-            BOOST_FWD_REF(A1) a1)
+            NDNBOOST_FWD_REF(A0) a0,
+            NDNBOOST_FWD_REF(A1) a1)
         {
             return table_.emplace(
                 ndnboost::unordered::detail::create_emplace_args(
@@ -300,8 +300,8 @@
 
         template <typename A0, typename A1>
         iterator emplace_hint(const_iterator,
-            BOOST_FWD_REF(A0) a0,
-            BOOST_FWD_REF(A1) a1)
+            NDNBOOST_FWD_REF(A0) a0,
+            NDNBOOST_FWD_REF(A1) a1)
         {
             return table_.emplace(
                 ndnboost::unordered::detail::create_emplace_args(
@@ -312,9 +312,9 @@
 
         template <typename A0, typename A1, typename A2>
         std::pair<iterator, bool> emplace(
-            BOOST_FWD_REF(A0) a0,
-            BOOST_FWD_REF(A1) a1,
-            BOOST_FWD_REF(A2) a2)
+            NDNBOOST_FWD_REF(A0) a0,
+            NDNBOOST_FWD_REF(A1) a1,
+            NDNBOOST_FWD_REF(A2) a2)
         {
             return table_.emplace(
                 ndnboost::unordered::detail::create_emplace_args(
@@ -326,9 +326,9 @@
 
         template <typename A0, typename A1, typename A2>
         iterator emplace_hint(const_iterator,
-            BOOST_FWD_REF(A0) a0,
-            BOOST_FWD_REF(A1) a1,
-            BOOST_FWD_REF(A2) a2)
+            NDNBOOST_FWD_REF(A0) a0,
+            NDNBOOST_FWD_REF(A1) a1,
+            NDNBOOST_FWD_REF(A2) a2)
         {
             return table_.emplace(
                 ndnboost::unordered::detail::create_emplace_args(
@@ -338,40 +338,40 @@
             ).first;
         }
 
-#define BOOST_UNORDERED_EMPLACE(z, n, _)                                    \
+#define NDNBOOST_UNORDERED_EMPLACE(z, n, _)                                    \
             template <                                                      \
-                BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)                    \
+                NDNBOOST_PP_ENUM_PARAMS_Z(z, n, typename A)                    \
             >                                                               \
             std::pair<iterator, bool> emplace(                              \
-                    BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_FWD_PARAM, a)      \
+                    NDNBOOST_PP_ENUM_##z(n, NDNBOOST_UNORDERED_FWD_PARAM, a)      \
             )                                                               \
             {                                                               \
                 return table_.emplace(                                      \
                     ndnboost::unordered::detail::create_emplace_args(          \
-                        BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_CALL_FORWARD,  \
+                        NDNBOOST_PP_ENUM_##z(n, NDNBOOST_UNORDERED_CALL_FORWARD,  \
                             a)                                              \
                 ));                                                         \
             }                                                               \
                                                                             \
             template <                                                      \
-                BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)                    \
+                NDNBOOST_PP_ENUM_PARAMS_Z(z, n, typename A)                    \
             >                                                               \
             iterator emplace_hint(                                          \
                     const_iterator,                                         \
-                    BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_FWD_PARAM, a)      \
+                    NDNBOOST_PP_ENUM_##z(n, NDNBOOST_UNORDERED_FWD_PARAM, a)      \
             )                                                               \
             {                                                               \
                 return table_.emplace(                                      \
                     ndnboost::unordered::detail::create_emplace_args(          \
-                        BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_CALL_FORWARD,  \
+                        NDNBOOST_PP_ENUM_##z(n, NDNBOOST_UNORDERED_CALL_FORWARD,  \
                             a)                                              \
                 )).first;                                                   \
             }
 
-        BOOST_PP_REPEAT_FROM_TO(4, BOOST_UNORDERED_EMPLACE_LIMIT,
-            BOOST_UNORDERED_EMPLACE, _)
+        NDNBOOST_PP_REPEAT_FROM_TO(4, NDNBOOST_UNORDERED_EMPLACE_LIMIT,
+            NDNBOOST_UNORDERED_EMPLACE, _)
 
-#undef BOOST_UNORDERED_EMPLACE
+#undef NDNBOOST_UNORDERED_EMPLACE
 
 #endif
 
@@ -380,7 +380,7 @@
             return this->emplace(x);
         }
 
-        std::pair<iterator, bool> insert(BOOST_UNORDERED_RV_REF(value_type) x)
+        std::pair<iterator, bool> insert(NDNBOOST_UNORDERED_RV_REF(value_type) x)
         {
             return this->emplace(ndnboost::move(x));
         }
@@ -391,14 +391,14 @@
         }
 
         iterator insert(const_iterator hint,
-                BOOST_UNORDERED_RV_REF(value_type) x)
+                NDNBOOST_UNORDERED_RV_REF(value_type) x)
         {
             return this->emplace_hint(hint, ndnboost::move(x));
         }
 
         template <class InputIt> void insert(InputIt, InputIt);
 
-#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
+#if !defined(NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST)
         void insert(std::initializer_list<value_type>);
 #endif
 
@@ -434,12 +434,12 @@
 
         // bucket interface
 
-        size_type bucket_count() const BOOST_NOEXCEPT
+        size_type bucket_count() const NDNBOOST_NOEXCEPT
         {
             return table_.bucket_count_;
         }
 
-        size_type max_bucket_count() const BOOST_NOEXCEPT
+        size_type max_bucket_count() const NDNBOOST_NOEXCEPT
         {
             return table_.max_bucket_count();
         }
@@ -486,17 +486,17 @@
 
         // hash policy
 
-        float max_load_factor() const BOOST_NOEXCEPT
+        float max_load_factor() const NDNBOOST_NOEXCEPT
         {
             return table_.mlf_;
         }
 
-        float load_factor() const BOOST_NOEXCEPT;
-        void max_load_factor(float) BOOST_NOEXCEPT;
+        float load_factor() const NDNBOOST_NOEXCEPT;
+        void max_load_factor(float) NDNBOOST_NOEXCEPT;
         void rehash(size_type);
         void reserve(size_type);
 
-#if !BOOST_WORKAROUND(__BORLANDC__, < 0x0582)
+#if !NDNBOOST_WORKAROUND(__BORLANDC__, < 0x0582)
         friend bool operator==<T,H,P,A>(
                 unordered_set const&, unordered_set const&);
         friend bool operator!=<T,H,P,A>(
@@ -507,8 +507,8 @@
     template <class T, class H, class P, class A>
     class unordered_multiset
     {
-#if defined(BOOST_UNORDERED_USE_MOVE)
-        BOOST_COPYABLE_AND_MOVABLE(unordered_multiset)
+#if defined(NDNBOOST_UNORDERED_USE_MOVE)
+        NDNBOOST_COPYABLE_AND_MOVABLE(unordered_multiset)
 #endif
     public:
 
@@ -580,23 +580,23 @@
 
         unordered_multiset(unordered_multiset const&, allocator_type const&);
 
-#if defined(BOOST_UNORDERED_USE_MOVE)
-        unordered_multiset(BOOST_RV_REF(unordered_multiset) other)
+#if defined(NDNBOOST_UNORDERED_USE_MOVE)
+        unordered_multiset(NDNBOOST_RV_REF(unordered_multiset) other)
             : table_(other.table_, ndnboost::unordered::detail::move_tag())
         {
         }
-#elif !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
+#elif !defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES)
         unordered_multiset(unordered_multiset&& other)
             : table_(other.table_, ndnboost::unordered::detail::move_tag())
         {
         }
 #endif
 
-#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
+#if !defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES)
         unordered_multiset(unordered_multiset&&, allocator_type const&);
 #endif
 
-#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
+#if !defined(NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST)
         unordered_multiset(
                 std::initializer_list<value_type>,
                 size_type = ndnboost::unordered::detail::default_bucket_count,
@@ -611,15 +611,15 @@
 
         // Assign
 
-#if defined(BOOST_UNORDERED_USE_MOVE)
+#if defined(NDNBOOST_UNORDERED_USE_MOVE)
         unordered_multiset& operator=(
-                BOOST_COPY_ASSIGN_REF(unordered_multiset) x)
+                NDNBOOST_COPY_ASSIGN_REF(unordered_multiset) x)
         {
             table_.assign(x.table_);
             return *this;
         }
 
-        unordered_multiset& operator=(BOOST_RV_REF(unordered_multiset) x)
+        unordered_multiset& operator=(NDNBOOST_RV_REF(unordered_multiset) x)
         {
             table_.move_assign(x.table_);
             return *this;
@@ -631,7 +631,7 @@
             return *this;
         }
 
-#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
+#if !defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES)
         unordered_multiset& operator=(unordered_multiset&& x)
         {
             table_.move_assign(x.table_);
@@ -640,78 +640,78 @@
 #endif
 #endif
 
-#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
+#if !defined(NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST)
         unordered_multiset& operator=(std::initializer_list<value_type>);
 #endif
 
-        allocator_type get_allocator() const BOOST_NOEXCEPT
+        allocator_type get_allocator() const NDNBOOST_NOEXCEPT
         {
             return table_.node_alloc();
         }
 
         // size and capacity
 
-        bool empty() const BOOST_NOEXCEPT
+        bool empty() const NDNBOOST_NOEXCEPT
         {
             return table_.size_ == 0;
         }
 
-        size_type size() const BOOST_NOEXCEPT
+        size_type size() const NDNBOOST_NOEXCEPT
         {
             return table_.size_;
         }
 
-        size_type max_size() const BOOST_NOEXCEPT;
+        size_type max_size() const NDNBOOST_NOEXCEPT;
 
         // iterators
 
-        iterator begin() BOOST_NOEXCEPT
+        iterator begin() NDNBOOST_NOEXCEPT
         {
             return iterator(table_.begin());
         }
 
-        const_iterator begin() const BOOST_NOEXCEPT
+        const_iterator begin() const NDNBOOST_NOEXCEPT
         {
             return const_iterator(table_.begin());
         }
 
-        iterator end() BOOST_NOEXCEPT
+        iterator end() NDNBOOST_NOEXCEPT
         {
             return iterator();
         }
 
-        const_iterator end() const BOOST_NOEXCEPT
+        const_iterator end() const NDNBOOST_NOEXCEPT
         {
             return const_iterator();
         }
 
-        const_iterator cbegin() const BOOST_NOEXCEPT
+        const_iterator cbegin() const NDNBOOST_NOEXCEPT
         {
             return const_iterator(table_.begin());
         }
 
-        const_iterator cend() const BOOST_NOEXCEPT
+        const_iterator cend() const NDNBOOST_NOEXCEPT
         {
             return const_iterator();
         }
 
         // emplace
 
-#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
+#if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
         template <class... Args>
-        iterator emplace(BOOST_FWD_REF(Args)... args)
+        iterator emplace(NDNBOOST_FWD_REF(Args)... args)
         {
             return table_.emplace(ndnboost::forward<Args>(args)...);
         }
 
         template <class... Args>
-        iterator emplace_hint(const_iterator, BOOST_FWD_REF(Args)... args)
+        iterator emplace_hint(const_iterator, NDNBOOST_FWD_REF(Args)... args)
         {
             return table_.emplace(ndnboost::forward<Args>(args)...);
         }
 #else
 
-#if !BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x5100))
+#if !NDNBOOST_WORKAROUND(__SUNPRO_CC, NDNBOOST_TESTED_AT(0x5100))
 
         // 0 argument emplace requires special treatment in case
         // the container is instantiated with a value type that
@@ -737,7 +737,7 @@
 #endif
 
         template <typename A0>
-        iterator emplace(BOOST_FWD_REF(A0) a0)
+        iterator emplace(NDNBOOST_FWD_REF(A0) a0)
         {
             return table_.emplace(
                 ndnboost::unordered::detail::create_emplace_args(
@@ -746,7 +746,7 @@
         }
 
         template <typename A0>
-        iterator emplace_hint(const_iterator, BOOST_FWD_REF(A0) a0)
+        iterator emplace_hint(const_iterator, NDNBOOST_FWD_REF(A0) a0)
         {
             return table_.emplace(
                 ndnboost::unordered::detail::create_emplace_args(
@@ -756,8 +756,8 @@
 
         template <typename A0, typename A1>
         iterator emplace(
-            BOOST_FWD_REF(A0) a0,
-            BOOST_FWD_REF(A1) a1)
+            NDNBOOST_FWD_REF(A0) a0,
+            NDNBOOST_FWD_REF(A1) a1)
         {
             return table_.emplace(
                 ndnboost::unordered::detail::create_emplace_args(
@@ -768,8 +768,8 @@
 
         template <typename A0, typename A1>
         iterator emplace_hint(const_iterator,
-            BOOST_FWD_REF(A0) a0,
-            BOOST_FWD_REF(A1) a1)
+            NDNBOOST_FWD_REF(A0) a0,
+            NDNBOOST_FWD_REF(A1) a1)
         {
             return table_.emplace(
                 ndnboost::unordered::detail::create_emplace_args(
@@ -780,9 +780,9 @@
 
         template <typename A0, typename A1, typename A2>
         iterator emplace(
-            BOOST_FWD_REF(A0) a0,
-            BOOST_FWD_REF(A1) a1,
-            BOOST_FWD_REF(A2) a2)
+            NDNBOOST_FWD_REF(A0) a0,
+            NDNBOOST_FWD_REF(A1) a1,
+            NDNBOOST_FWD_REF(A2) a2)
         {
             return table_.emplace(
                 ndnboost::unordered::detail::create_emplace_args(
@@ -794,9 +794,9 @@
 
         template <typename A0, typename A1, typename A2>
         iterator emplace_hint(const_iterator,
-            BOOST_FWD_REF(A0) a0,
-            BOOST_FWD_REF(A1) a1,
-            BOOST_FWD_REF(A2) a2)
+            NDNBOOST_FWD_REF(A0) a0,
+            NDNBOOST_FWD_REF(A1) a1,
+            NDNBOOST_FWD_REF(A2) a2)
         {
             return table_.emplace(
                 ndnboost::unordered::detail::create_emplace_args(
@@ -806,40 +806,40 @@
             );
         }
 
-#define BOOST_UNORDERED_EMPLACE(z, n, _)                                    \
+#define NDNBOOST_UNORDERED_EMPLACE(z, n, _)                                    \
             template <                                                      \
-                BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)                    \
+                NDNBOOST_PP_ENUM_PARAMS_Z(z, n, typename A)                    \
             >                                                               \
             iterator emplace(                                               \
-                    BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_FWD_PARAM, a)      \
+                    NDNBOOST_PP_ENUM_##z(n, NDNBOOST_UNORDERED_FWD_PARAM, a)      \
             )                                                               \
             {                                                               \
                 return table_.emplace(                                      \
                     ndnboost::unordered::detail::create_emplace_args(          \
-                        BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_CALL_FORWARD,  \
+                        NDNBOOST_PP_ENUM_##z(n, NDNBOOST_UNORDERED_CALL_FORWARD,  \
                             a)                                              \
                 ));                                                         \
             }                                                               \
                                                                             \
             template <                                                      \
-                BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)                    \
+                NDNBOOST_PP_ENUM_PARAMS_Z(z, n, typename A)                    \
             >                                                               \
             iterator emplace_hint(                                          \
                     const_iterator,                                         \
-                    BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_FWD_PARAM, a)      \
+                    NDNBOOST_PP_ENUM_##z(n, NDNBOOST_UNORDERED_FWD_PARAM, a)      \
             )                                                               \
             {                                                               \
                 return table_.emplace(                                      \
                     ndnboost::unordered::detail::create_emplace_args(          \
-                        BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_CALL_FORWARD,  \
+                        NDNBOOST_PP_ENUM_##z(n, NDNBOOST_UNORDERED_CALL_FORWARD,  \
                             a)                                              \
                 ));                                                         \
             }
 
-        BOOST_PP_REPEAT_FROM_TO(4, BOOST_UNORDERED_EMPLACE_LIMIT,
-            BOOST_UNORDERED_EMPLACE, _)
+        NDNBOOST_PP_REPEAT_FROM_TO(4, NDNBOOST_UNORDERED_EMPLACE_LIMIT,
+            NDNBOOST_UNORDERED_EMPLACE, _)
 
-#undef BOOST_UNORDERED_EMPLACE
+#undef NDNBOOST_UNORDERED_EMPLACE
 
 #endif
 
@@ -848,7 +848,7 @@
             return this->emplace(x);
         }
 
-        iterator insert(BOOST_UNORDERED_RV_REF(value_type) x)
+        iterator insert(NDNBOOST_UNORDERED_RV_REF(value_type) x)
         {
             return this->emplace(ndnboost::move(x));
         }
@@ -859,14 +859,14 @@
         }
 
         iterator insert(const_iterator hint,
-                BOOST_UNORDERED_RV_REF(value_type) x)
+                NDNBOOST_UNORDERED_RV_REF(value_type) x)
         {
             return this->emplace_hint(hint, ndnboost::move(x));
         }
 
         template <class InputIt> void insert(InputIt, InputIt);
 
-#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
+#if !defined(NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST)
         void insert(std::initializer_list<value_type>);
 #endif
 
@@ -902,12 +902,12 @@
 
         // bucket interface
 
-        size_type bucket_count() const BOOST_NOEXCEPT
+        size_type bucket_count() const NDNBOOST_NOEXCEPT
         {
             return table_.bucket_count_;
         }
 
-        size_type max_bucket_count() const BOOST_NOEXCEPT
+        size_type max_bucket_count() const NDNBOOST_NOEXCEPT
         {
             return table_.max_bucket_count();
         }
@@ -954,17 +954,17 @@
 
         // hash policy
 
-        float max_load_factor() const BOOST_NOEXCEPT
+        float max_load_factor() const NDNBOOST_NOEXCEPT
         {
             return table_.mlf_;
         }
 
-        float load_factor() const BOOST_NOEXCEPT;
-        void max_load_factor(float) BOOST_NOEXCEPT;
+        float load_factor() const NDNBOOST_NOEXCEPT;
+        void max_load_factor(float) NDNBOOST_NOEXCEPT;
         void rehash(size_type);
         void reserve(size_type);
 
-#if !BOOST_WORKAROUND(__BORLANDC__, < 0x0582)
+#if !NDNBOOST_WORKAROUND(__BORLANDC__, < 0x0582)
         friend bool operator==<T,H,P,A>(
                 unordered_multiset const&, unordered_multiset const&);
         friend bool operator!=<T,H,P,A>(
@@ -1041,7 +1041,7 @@
     {
     }
 
-#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
+#if !defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES)
 
     template <class T, class H, class P, class A>
     unordered_set<T,H,P,A>::unordered_set(
@@ -1052,7 +1052,7 @@
 
 #endif
 
-#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
+#if !defined(NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST)
 
     template <class T, class H, class P, class A>
     unordered_set<T,H,P,A>::unordered_set(
@@ -1080,7 +1080,7 @@
     // size and capacity
 
     template <class T, class H, class P, class A>
-    std::size_t unordered_set<T,H,P,A>::max_size() const BOOST_NOEXCEPT
+    std::size_t unordered_set<T,H,P,A>::max_size() const NDNBOOST_NOEXCEPT
     {
         return table_.max_size();
     }
@@ -1094,7 +1094,7 @@
         table_.insert_range(first, last);
     }
 
-#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
+#if !defined(NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST)
     template <class T, class H, class P, class A>
     void unordered_set<T,H,P,A>::insert(
             std::initializer_list<value_type> list)
@@ -1200,13 +1200,13 @@
     // hash policy
 
     template <class T, class H, class P, class A>
-    float unordered_set<T,H,P,A>::load_factor() const BOOST_NOEXCEPT
+    float unordered_set<T,H,P,A>::load_factor() const NDNBOOST_NOEXCEPT
     {
         return table_.load_factor();
     }
 
     template <class T, class H, class P, class A>
-    void unordered_set<T,H,P,A>::max_load_factor(float m) BOOST_NOEXCEPT
+    void unordered_set<T,H,P,A>::max_load_factor(float m) NDNBOOST_NOEXCEPT
     {
         table_.max_load_factor(m);
     }
@@ -1228,7 +1228,7 @@
             unordered_set<T,H,P,A> const& m1,
             unordered_set<T,H,P,A> const& m2)
     {
-#if BOOST_WORKAROUND(__CODEGEARC__, BOOST_TESTED_AT(0x0613))
+#if NDNBOOST_WORKAROUND(__CODEGEARC__, NDNBOOST_TESTED_AT(0x0613))
         struct dummy { unordered_set<T,H,P,A> x; };
 #endif
         return m1.table_.equals(m2.table_);
@@ -1239,7 +1239,7 @@
             unordered_set<T,H,P,A> const& m1,
             unordered_set<T,H,P,A> const& m2)
     {
-#if BOOST_WORKAROUND(__CODEGEARC__, BOOST_TESTED_AT(0x0613))
+#if NDNBOOST_WORKAROUND(__CODEGEARC__, NDNBOOST_TESTED_AT(0x0613))
         struct dummy { unordered_set<T,H,P,A> x; };
 #endif
         return !m1.table_.equals(m2.table_);
@@ -1250,7 +1250,7 @@
             unordered_set<T,H,P,A> &m1,
             unordered_set<T,H,P,A> &m2)
     {
-#if BOOST_WORKAROUND(__CODEGEARC__, BOOST_TESTED_AT(0x0613))
+#if NDNBOOST_WORKAROUND(__CODEGEARC__, NDNBOOST_TESTED_AT(0x0613))
         struct dummy { unordered_set<T,H,P,A> x; };
 #endif
         m1.swap(m2);
@@ -1325,7 +1325,7 @@
     {
     }
 
-#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
+#if !defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES)
 
     template <class T, class H, class P, class A>
     unordered_multiset<T,H,P,A>::unordered_multiset(
@@ -1336,7 +1336,7 @@
 
 #endif
 
-#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
+#if !defined(NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST)
 
     template <class T, class H, class P, class A>
     unordered_multiset<T,H,P,A>::unordered_multiset(
@@ -1364,7 +1364,7 @@
     // size and capacity
 
     template <class T, class H, class P, class A>
-    std::size_t unordered_multiset<T,H,P,A>::max_size() const BOOST_NOEXCEPT
+    std::size_t unordered_multiset<T,H,P,A>::max_size() const NDNBOOST_NOEXCEPT
     {
         return table_.max_size();
     }
@@ -1378,7 +1378,7 @@
         table_.insert_range(first, last);
     }
 
-#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
+#if !defined(NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST)
     template <class T, class H, class P, class A>
     void unordered_multiset<T,H,P,A>::insert(
             std::initializer_list<value_type> list)
@@ -1484,13 +1484,13 @@
     // hash policy
 
     template <class T, class H, class P, class A>
-    float unordered_multiset<T,H,P,A>::load_factor() const BOOST_NOEXCEPT
+    float unordered_multiset<T,H,P,A>::load_factor() const NDNBOOST_NOEXCEPT
     {
         return table_.load_factor();
     }
 
     template <class T, class H, class P, class A>
-    void unordered_multiset<T,H,P,A>::max_load_factor(float m) BOOST_NOEXCEPT
+    void unordered_multiset<T,H,P,A>::max_load_factor(float m) NDNBOOST_NOEXCEPT
     {
         table_.max_load_factor(m);
     }
@@ -1512,7 +1512,7 @@
             unordered_multiset<T,H,P,A> const& m1,
             unordered_multiset<T,H,P,A> const& m2)
     {
-#if BOOST_WORKAROUND(__CODEGEARC__, BOOST_TESTED_AT(0x0613))
+#if NDNBOOST_WORKAROUND(__CODEGEARC__, NDNBOOST_TESTED_AT(0x0613))
         struct dummy { unordered_multiset<T,H,P,A> x; };
 #endif
         return m1.table_.equals(m2.table_);
@@ -1523,7 +1523,7 @@
             unordered_multiset<T,H,P,A> const& m1,
             unordered_multiset<T,H,P,A> const& m2)
     {
-#if BOOST_WORKAROUND(__CODEGEARC__, BOOST_TESTED_AT(0x0613))
+#if NDNBOOST_WORKAROUND(__CODEGEARC__, NDNBOOST_TESTED_AT(0x0613))
         struct dummy { unordered_multiset<T,H,P,A> x; };
 #endif
         return !m1.table_.equals(m2.table_);
@@ -1534,7 +1534,7 @@
             unordered_multiset<T,H,P,A> &m1,
             unordered_multiset<T,H,P,A> &m2)
     {
-#if BOOST_WORKAROUND(__CODEGEARC__, BOOST_TESTED_AT(0x0613))
+#if NDNBOOST_WORKAROUND(__CODEGEARC__, NDNBOOST_TESTED_AT(0x0613))
         struct dummy { unordered_multiset<T,H,P,A> x; };
 #endif
         m1.swap(m2);
@@ -1542,8 +1542,8 @@
 } // namespace unordered
 } // namespace ndnboost
 
-#if defined(BOOST_MSVC)
+#if defined(NDNBOOST_MSVC)
 #pragma warning(pop)
 #endif
 
-#endif // BOOST_UNORDERED_UNORDERED_SET_HPP_INCLUDED
+#endif // NDNBOOST_UNORDERED_UNORDERED_SET_HPP_INCLUDED
diff --git a/include/ndnboost/unordered/unordered_set_fwd.hpp b/include/ndnboost/unordered/unordered_set_fwd.hpp
index 622f837..7e1a653 100644
--- a/include/ndnboost/unordered/unordered_set_fwd.hpp
+++ b/include/ndnboost/unordered/unordered_set_fwd.hpp
@@ -3,8 +3,8 @@
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_UNORDERED_SET_FWD_HPP_INCLUDED
-#define BOOST_UNORDERED_SET_FWD_HPP_INCLUDED
+#ifndef NDNBOOST_UNORDERED_SET_FWD_HPP_INCLUDED
+#define NDNBOOST_UNORDERED_SET_FWD_HPP_INCLUDED
 
 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
 # pragma once
diff --git a/include/ndnboost/unordered_set.hpp b/include/ndnboost/unordered_set.hpp
index 76a462d..3ce85ee 100644
--- a/include/ndnboost/unordered_set.hpp
+++ b/include/ndnboost/unordered_set.hpp
@@ -6,8 +6,8 @@
 
 //  See http://www.boost.org/libs/unordered for documentation
 
-#ifndef BOOST_UNORDERED_SET_HPP_INCLUDED
-#define BOOST_UNORDERED_SET_HPP_INCLUDED
+#ifndef NDNBOOST_UNORDERED_SET_HPP_INCLUDED
+#define NDNBOOST_UNORDERED_SET_HPP_INCLUDED
 
 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
 # pragma once
@@ -15,4 +15,4 @@
 
 #include <ndnboost/unordered/unordered_set.hpp>
 
-#endif // BOOST_UNORDERED_SET_HPP_INCLUDED
+#endif // NDNBOOST_UNORDERED_SET_HPP_INCLUDED
diff --git a/include/ndnboost/utility.hpp b/include/ndnboost/utility.hpp
index 7e3e60e..883f0ec 100644
--- a/include/ndnboost/utility.hpp
+++ b/include/ndnboost/utility.hpp
@@ -6,8 +6,8 @@
 
 //  See <http://www.boost.org/libs/utility/> for the library's home page.
 
-#ifndef BOOST_UTILITY_HPP
-#define BOOST_UTILITY_HPP
+#ifndef NDNBOOST_UTILITY_HPP
+#define NDNBOOST_UTILITY_HPP
 
 #include <ndnboost/utility/addressof.hpp>
 #include <ndnboost/utility/base_from_member.hpp>
@@ -18,4 +18,4 @@
 #include <ndnboost/next_prior.hpp>
 #include <ndnboost/noncopyable.hpp>
 
-#endif  // BOOST_UTILITY_HPP
+#endif  // NDNBOOST_UTILITY_HPP
diff --git a/include/ndnboost/utility/addressof.hpp b/include/ndnboost/utility/addressof.hpp
index 20d5b8c..296fbad 100644
--- a/include/ndnboost/utility/addressof.hpp
+++ b/include/ndnboost/utility/addressof.hpp
@@ -9,8 +9,8 @@
 
 // For more information, see http://www.boost.org
 
-#ifndef BOOST_UTILITY_ADDRESSOF_HPP
-# define BOOST_UTILITY_ADDRESSOF_HPP
+#ifndef NDNBOOST_UTILITY_ADDRESSOF_HPP
+# define NDNBOOST_UTILITY_ADDRESSOF_HPP
 
 # include <ndnboost/config.hpp>
 # include <ndnboost/detail/workaround.hpp>
@@ -50,7 +50,7 @@
 
 template<class T> T * addressof( T & v )
 {
-#if (defined( __BORLANDC__ ) && BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT( 0x610 ) ) ) || defined( __SUNPRO_CC )
+#if (defined( __BORLANDC__ ) && NDNBOOST_WORKAROUND( __BORLANDC__, NDNBOOST_TESTED_AT( 0x610 ) ) ) || defined( __SUNPRO_CC )
 
     return ndnboost::detail::addressof_impl<T>::f( v, 0 );
 
@@ -61,7 +61,7 @@
 #endif
 }
 
-#if defined( __SUNPRO_CC ) && BOOST_WORKAROUND( __SUNPRO_CC, BOOST_TESTED_AT( 0x590 ) )
+#if defined( __SUNPRO_CC ) && NDNBOOST_WORKAROUND( __SUNPRO_CC, NDNBOOST_TESTED_AT( 0x590 ) )
 
 namespace detail
 {
@@ -83,7 +83,7 @@
 
 // Borland doesn't like casting an array reference to a char reference
 // but these overloads work around the problem.
-#if defined( __BORLANDC__ ) && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
+#if defined( __BORLANDC__ ) && NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564))
 template<typename T,std::size_t N>
 T (*addressof(T (&t)[N]))[N]
 {
@@ -99,4 +99,4 @@
 
 } // namespace ndnboost
 
-#endif // BOOST_UTILITY_ADDRESSOF_HPP
+#endif // NDNBOOST_UTILITY_ADDRESSOF_HPP
diff --git a/include/ndnboost/utility/base_from_member.hpp b/include/ndnboost/utility/base_from_member.hpp
index 7091f02..899bd37 100644
--- a/include/ndnboost/utility/base_from_member.hpp
+++ b/include/ndnboost/utility/base_from_member.hpp
@@ -7,8 +7,8 @@
 
 //  See <http://www.boost.org/libs/utility/> for the library's home page.
 
-#ifndef BOOST_UTILITY_BASE_FROM_MEMBER_HPP
-#define BOOST_UTILITY_BASE_FROM_MEMBER_HPP
+#ifndef NDNBOOST_UTILITY_BASE_FROM_MEMBER_HPP
+#define NDNBOOST_UTILITY_BASE_FROM_MEMBER_HPP
 
 #include <ndnboost/preprocessor/arithmetic/inc.hpp>
 #include <ndnboost/preprocessor/repetition/enum_binary_params.hpp>
@@ -28,8 +28,8 @@
 
 // Contributed by Jonathan Turkanis
 
-#ifndef BOOST_BASE_FROM_MEMBER_MAX_ARITY
-#define BOOST_BASE_FROM_MEMBER_MAX_ARITY  10
+#ifndef NDNBOOST_BASE_FROM_MEMBER_MAX_ARITY
+#define NDNBOOST_BASE_FROM_MEMBER_MAX_ARITY  10
 #endif
 
 
@@ -42,10 +42,10 @@
 //         {}
 // This macro should only persist within this file.
 
-#define BOOST_PRIVATE_CTR_DEF( z, n, data )                            \
-    template < BOOST_PP_ENUM_PARAMS(n, typename T) >                   \
-    explicit base_from_member( BOOST_PP_ENUM_BINARY_PARAMS(n, T, x) )  \
-        : member( BOOST_PP_ENUM_PARAMS(n, x) )                         \
+#define NDNBOOST_PRIVATE_CTR_DEF( z, n, data )                            \
+    template < NDNBOOST_PP_ENUM_PARAMS(n, typename T) >                   \
+    explicit base_from_member( NDNBOOST_PP_ENUM_BINARY_PARAMS(n, T, x) )  \
+        : member( NDNBOOST_PP_ENUM_PARAMS(n, x) )                         \
         {}                                                             \
     /**/
 
@@ -72,8 +72,8 @@
         : member()
         {}
 
-    BOOST_PP_REPEAT_FROM_TO( 1, BOOST_PP_INC(BOOST_BASE_FROM_MEMBER_MAX_ARITY),
-     BOOST_PRIVATE_CTR_DEF, _ )
+    NDNBOOST_PP_REPEAT_FROM_TO( 1, NDNBOOST_PP_INC(NDNBOOST_BASE_FROM_MEMBER_MAX_ARITY),
+     NDNBOOST_PRIVATE_CTR_DEF, _ )
 
 };  // ndnboost::base_from_member
 
@@ -81,7 +81,7 @@
 
 
 // Undo any private macros
-#undef BOOST_PRIVATE_CTR_DEF
+#undef NDNBOOST_PRIVATE_CTR_DEF
 
 
-#endif  // BOOST_UTILITY_BASE_FROM_MEMBER_HPP
+#endif  // NDNBOOST_UTILITY_BASE_FROM_MEMBER_HPP
diff --git a/include/ndnboost/utility/binary.hpp b/include/ndnboost/utility/binary.hpp
index 4ea209f..e841afa 100644
--- a/include/ndnboost/utility/binary.hpp
+++ b/include/ndnboost/utility/binary.hpp
@@ -6,8 +6,8 @@
     http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 
-#ifndef BOOST_UTILITY_BINARY_HPP
-#define BOOST_UTILITY_BINARY_HPP
+#ifndef NDNBOOST_UTILITY_BINARY_HPP
+#define NDNBOOST_UTILITY_BINARY_HPP
 
 /*=============================================================================
 
@@ -33,676 +33,676 @@
 #include <ndnboost/preprocessor/facilities/empty.hpp>
 #include <ndnboost/preprocessor/control/while.hpp>
 
-#define BOOST_BINARY( bit_groupings )                                          \
-  BOOST_BINARY_LITERAL_D( BOOST_PP_DEDUCE_D(), bit_groupings ) 
+#define NDNBOOST_BINARY( bit_groupings )                                          \
+  NDNBOOST_BINARY_LITERAL_D( NDNBOOST_PP_DEDUCE_D(), bit_groupings ) 
 
-#define BOOST_BINARY_U( bit_groupings )                                        \
-  BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, U ) 
+#define NDNBOOST_BINARY_U( bit_groupings )                                        \
+  NDNBOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, U ) 
 
-#define BOOST_BINARY_L( bit_groupings )                                        \
-  BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, L ) 
+#define NDNBOOST_BINARY_L( bit_groupings )                                        \
+  NDNBOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, L ) 
 
-#define BOOST_BINARY_UL( bit_groupings )                                       \
-  BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, UL ) 
+#define NDNBOOST_BINARY_UL( bit_groupings )                                       \
+  NDNBOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, UL ) 
 
-#define BOOST_BINARY_LU( bit_groupings )                                       \
-  BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, LU ) 
+#define NDNBOOST_BINARY_LU( bit_groupings )                                       \
+  NDNBOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, LU ) 
 
-#define BOOST_BINARY_LL( bit_groupings )                                       \
-  BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, LL ) 
+#define NDNBOOST_BINARY_LL( bit_groupings )                                       \
+  NDNBOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, LL ) 
 
-#define BOOST_BINARY_ULL( bit_groupings )                                      \
-  BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, ULL ) 
+#define NDNBOOST_BINARY_ULL( bit_groupings )                                      \
+  NDNBOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, ULL ) 
 
-#define BOOST_BINARY_LLU( bit_groupings )                                      \
-  BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, LLU ) 
+#define NDNBOOST_BINARY_LLU( bit_groupings )                                      \
+  NDNBOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, LLU ) 
 
-#define BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, suffix )                 \
-  BOOST_SUFFIXED_BINARY_LITERAL_D( BOOST_PP_DEDUCE_D(), bit_groupings, suffix ) 
+#define NDNBOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, suffix )                 \
+  NDNBOOST_SUFFIXED_BINARY_LITERAL_D( NDNBOOST_PP_DEDUCE_D(), bit_groupings, suffix ) 
 
-#define BOOST_SUFFIXED_BINARY_LITERAL_D( d, bit_groupings, suffix )            \
-  BOOST_PP_CAT( BOOST_BINARY_LITERAL_D( d, bit_groupings ), suffix ) 
+#define NDNBOOST_SUFFIXED_BINARY_LITERAL_D( d, bit_groupings, suffix )            \
+  NDNBOOST_PP_CAT( NDNBOOST_BINARY_LITERAL_D( d, bit_groupings ), suffix ) 
 
-#define BOOST_BINARY_LITERAL_D( d, bit_groupings )                             \
-  BOOST_PP_SEQ_CAT                                                             \
-  ( (0) BOOST_DETAIL_CREATE_BINARY_LITERAL_OCTAL_SEQUENCE( d, bit_groupings )  \
+#define NDNBOOST_BINARY_LITERAL_D( d, bit_groupings )                             \
+  NDNBOOST_PP_SEQ_CAT                                                             \
+  ( (0) NDNBOOST_DETAIL_CREATE_BINARY_LITERAL_OCTAL_SEQUENCE( d, bit_groupings )  \
   ) 
 
-#define BOOST_DETAIL_CREATE_BINARY_LITERAL_OCTAL_SEQUENCE( d, bit_groupings )  \
-  BOOST_PP_SEQ_TRANSFORM                                                       \
-  ( BOOST_DETAIL_TRIPLE_TO_OCTAL_OPERATION                                     \
-  , BOOST_PP_NIL                                                               \
-  , BOOST_PP_IDENTITY( BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_TRIPLE_SEQUENCE )()\
-    ( BOOST_DETAIL_COMPLETE_TRIPLE_SEQUENCE                                    \
+#define NDNBOOST_DETAIL_CREATE_BINARY_LITERAL_OCTAL_SEQUENCE( d, bit_groupings )  \
+  NDNBOOST_PP_SEQ_TRANSFORM                                                       \
+  ( NDNBOOST_DETAIL_TRIPLE_TO_OCTAL_OPERATION                                     \
+  , NDNBOOST_PP_NIL                                                               \
+  , NDNBOOST_PP_IDENTITY( NDNBOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_TRIPLE_SEQUENCE )()\
+    ( NDNBOOST_DETAIL_COMPLETE_TRIPLE_SEQUENCE                                    \
       (                                                                        \
         d                                                                      \
-      , BOOST_DETAIL_CREATE_BINARY_LITERAL_BIT_SEQUENCE( d, bit_groupings )    \
+      , NDNBOOST_DETAIL_CREATE_BINARY_LITERAL_BIT_SEQUENCE( d, bit_groupings )    \
       )                                                                        \
     )                                                                          \
   ) 
 
-#define BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_TRIPLE_SEQUENCE( bit_sequence )   \
-  BOOST_PP_CAT                                                                 \
-  ( BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_1 bit_sequence      \
+#define NDNBOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_TRIPLE_SEQUENCE( bit_sequence )   \
+  NDNBOOST_PP_CAT                                                                 \
+  ( NDNBOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_1 bit_sequence      \
   , END_BIT                                                                    \
   ) 
 
-#define BOOST_DETAIL_BITS_PER_OCTIT 3
+#define NDNBOOST_DETAIL_BITS_PER_OCTIT 3
 
-#define BOOST_DETAIL_COMPLETE_TRIPLE_SEQUENCE( d, incomplete_nibble_sequence ) \
-  BOOST_PP_CAT                                                                 \
-  ( BOOST_DETAIL_CREATE_TRIPLE_COMPLETION_SEQUENCE_                            \
-  , BOOST_PP_MOD_D( d                                                          \
-                  , BOOST_PP_SEQ_SIZE( incomplete_nibble_sequence )            \
-                  , BOOST_DETAIL_BITS_PER_OCTIT                                \
+#define NDNBOOST_DETAIL_COMPLETE_TRIPLE_SEQUENCE( d, incomplete_nibble_sequence ) \
+  NDNBOOST_PP_CAT                                                                 \
+  ( NDNBOOST_DETAIL_CREATE_TRIPLE_COMPLETION_SEQUENCE_                            \
+  , NDNBOOST_PP_MOD_D( d                                                          \
+                  , NDNBOOST_PP_SEQ_SIZE( incomplete_nibble_sequence )            \
+                  , NDNBOOST_DETAIL_BITS_PER_OCTIT                                \
                   )                                                            \
   )                                                                            \
   incomplete_nibble_sequence 
 
-#define BOOST_DETAIL_FIXED_COMPL( bit )                                        \
-  BOOST_PP_CAT( BOOST_DETAIL_FIXED_COMPL_, bit )
+#define NDNBOOST_DETAIL_FIXED_COMPL( bit )                                        \
+  NDNBOOST_PP_CAT( NDNBOOST_DETAIL_FIXED_COMPL_, bit )
 
-#define BOOST_DETAIL_FIXED_COMPL_0 1 
+#define NDNBOOST_DETAIL_FIXED_COMPL_0 1 
 
-#define BOOST_DETAIL_FIXED_COMPL_1 0 
+#define NDNBOOST_DETAIL_FIXED_COMPL_1 0 
 
-#define BOOST_DETAIL_CREATE_BINARY_LITERAL_BIT_SEQUENCE( d, bit_groupings )    \
-  BOOST_PP_EMPTY                                                               \
-  BOOST_PP_CAT( BOOST_PP_WHILE_, d )                                           \
-  ( BOOST_DETAIL_BINARY_LITERAL_PREDICATE                                      \
-  , BOOST_DETAIL_BINARY_LITERAL_OPERATION                                      \
+#define NDNBOOST_DETAIL_CREATE_BINARY_LITERAL_BIT_SEQUENCE( d, bit_groupings )    \
+  NDNBOOST_PP_EMPTY                                                               \
+  NDNBOOST_PP_CAT( NDNBOOST_PP_WHILE_, d )                                           \
+  ( NDNBOOST_DETAIL_BINARY_LITERAL_PREDICATE                                      \
+  , NDNBOOST_DETAIL_BINARY_LITERAL_OPERATION                                      \
   , bit_groupings ()                                                           \
   ) 
 
-#define BOOST_DETAIL_BINARY_LITERAL_PREDICATE( d, state )                      \
-  BOOST_DETAIL_FIXED_COMPL( BOOST_DETAIL_IS_NULLARY_ARGS( state ) ) 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_PREDICATE( d, state )                      \
+  NDNBOOST_DETAIL_FIXED_COMPL( NDNBOOST_DETAIL_IS_NULLARY_ARGS( state ) ) 
 
-#define BOOST_DETAIL_BINARY_LITERAL_OPERATION( d, state )                      \
-  BOOST_DETAIL_SPLIT_AND_SWAP                                                  \
-  ( BOOST_PP_CAT( BOOST_DETAIL_BINARY_LITERAL_ELEMENT_, state ) ) 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_OPERATION( d, state )                      \
+  NDNBOOST_DETAIL_SPLIT_AND_SWAP                                                  \
+  ( NDNBOOST_PP_CAT( NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_, state ) ) 
 
-#define BOOST_DETAIL_TRIPLE_TO_OCTAL_OPERATION( s, dummy_param, tuple )        \
-  BOOST_DETAIL_TERNARY_TRIPLE_TO_OCTAL tuple 
+#define NDNBOOST_DETAIL_TRIPLE_TO_OCTAL_OPERATION( s, dummy_param, tuple )        \
+  NDNBOOST_DETAIL_TERNARY_TRIPLE_TO_OCTAL tuple 
 
-#define BOOST_DETAIL_TERNARY_TRIPLE_TO_OCTAL( bit2, bit1, bit0 )               \
-  BOOST_DETAIL_TRIPLE_TO_OCTAL_ ## bit2 ## bit1 ## bit0 
+#define NDNBOOST_DETAIL_TERNARY_TRIPLE_TO_OCTAL( bit2, bit1, bit0 )               \
+  NDNBOOST_DETAIL_TRIPLE_TO_OCTAL_ ## bit2 ## bit1 ## bit0 
 
-#define BOOST_DETAIL_CREATE_TRIPLE_COMPLETION_SEQUENCE_1 (0)(0)
-#define BOOST_DETAIL_CREATE_TRIPLE_COMPLETION_SEQUENCE_2 (0)
-#define BOOST_DETAIL_CREATE_TRIPLE_COMPLETION_SEQUENCE_0  
+#define NDNBOOST_DETAIL_CREATE_TRIPLE_COMPLETION_SEQUENCE_1 (0)(0)
+#define NDNBOOST_DETAIL_CREATE_TRIPLE_COMPLETION_SEQUENCE_2 (0)
+#define NDNBOOST_DETAIL_CREATE_TRIPLE_COMPLETION_SEQUENCE_0  
 
-#define BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_1END_BIT  
+#define NDNBOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_1END_BIT  
 
-#define BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_1( bit )        \
-  ( ( bit, BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_2 
+#define NDNBOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_1( bit )        \
+  ( ( bit, NDNBOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_2 
 
-#define BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_2( bit )        \
-  bit, BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_3 
+#define NDNBOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_2( bit )        \
+  bit, NDNBOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_3 
 
-#define BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_3( bit )        \
-  bit ) ) BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_1 
+#define NDNBOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_3( bit )        \
+  bit ) ) NDNBOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_1 
 
-#define BOOST_DETAIL_SPLIT_AND_SWAP( params )                                  \
-  BOOST_PP_IDENTITY( BOOST_DETAIL_SPLIT_AND_SWAP_PARAMS )()( params )
+#define NDNBOOST_DETAIL_SPLIT_AND_SWAP( params )                                  \
+  NDNBOOST_PP_IDENTITY( NDNBOOST_DETAIL_SPLIT_AND_SWAP_PARAMS )()( params )
 
-#define BOOST_DETAIL_SPLIT_AND_SWAP_PARAMS( first_param, second_param )        \
+#define NDNBOOST_DETAIL_SPLIT_AND_SWAP_PARAMS( first_param, second_param )        \
   second_param first_param 
 
-#define BOOST_DETAIL_LEFT_OF_COMMA( params )                                   \
-  BOOST_PP_IDENTITY( BOOST_DETAIL_FIRST_MACRO_PARAM )()( params ) 
+#define NDNBOOST_DETAIL_LEFT_OF_COMMA( params )                                   \
+  NDNBOOST_PP_IDENTITY( NDNBOOST_DETAIL_FIRST_MACRO_PARAM )()( params ) 
 
-#define BOOST_DETAIL_FIRST_MACRO_PARAM( first_param, second_param )            \
+#define NDNBOOST_DETAIL_FIRST_MACRO_PARAM( first_param, second_param )            \
   first_param 
 
 /* Begin derived concepts from Chaos by Paul Mensonides */
 
-#define BOOST_DETAIL_IS_NULLARY_ARGS( param )                                  \
-  BOOST_DETAIL_LEFT_OF_COMMA                                                   \
-  ( BOOST_PP_CAT( BOOST_DETAIL_IS_NULLARY_ARGS_R_                              \
-                , BOOST_DETAIL_IS_NULLARY_ARGS_C param                         \
+#define NDNBOOST_DETAIL_IS_NULLARY_ARGS( param )                                  \
+  NDNBOOST_DETAIL_LEFT_OF_COMMA                                                   \
+  ( NDNBOOST_PP_CAT( NDNBOOST_DETAIL_IS_NULLARY_ARGS_R_                              \
+                , NDNBOOST_DETAIL_IS_NULLARY_ARGS_C param                         \
                 )                                                              \
   ) 
 
-#define BOOST_DETAIL_IS_NULLARY_ARGS_C()                                       \
+#define NDNBOOST_DETAIL_IS_NULLARY_ARGS_C()                                       \
   1 
 
-#define BOOST_DETAIL_IS_NULLARY_ARGS_R_1                                       \
-  1, BOOST_PP_NIL 
+#define NDNBOOST_DETAIL_IS_NULLARY_ARGS_R_1                                       \
+  1, NDNBOOST_PP_NIL 
 
-#define BOOST_DETAIL_IS_NULLARY_ARGS_R_BOOST_DETAIL_IS_NULLARY_ARGS_C          \
-  0, BOOST_PP_NIL 
+#define NDNBOOST_DETAIL_IS_NULLARY_ARGS_R_NDNBOOST_DETAIL_IS_NULLARY_ARGS_C          \
+  0, NDNBOOST_PP_NIL 
 
 /* End derived concepts from Chaos by Paul Mensonides */
 
-#define BOOST_DETAIL_TRIPLE_TO_OCTAL_000 0 
-#define BOOST_DETAIL_TRIPLE_TO_OCTAL_001 1 
-#define BOOST_DETAIL_TRIPLE_TO_OCTAL_010 2 
-#define BOOST_DETAIL_TRIPLE_TO_OCTAL_011 3 
-#define BOOST_DETAIL_TRIPLE_TO_OCTAL_100 4 
-#define BOOST_DETAIL_TRIPLE_TO_OCTAL_101 5 
-#define BOOST_DETAIL_TRIPLE_TO_OCTAL_110 6 
-#define BOOST_DETAIL_TRIPLE_TO_OCTAL_111 7 
+#define NDNBOOST_DETAIL_TRIPLE_TO_OCTAL_000 0 
+#define NDNBOOST_DETAIL_TRIPLE_TO_OCTAL_001 1 
+#define NDNBOOST_DETAIL_TRIPLE_TO_OCTAL_010 2 
+#define NDNBOOST_DETAIL_TRIPLE_TO_OCTAL_011 3 
+#define NDNBOOST_DETAIL_TRIPLE_TO_OCTAL_100 4 
+#define NDNBOOST_DETAIL_TRIPLE_TO_OCTAL_101 5 
+#define NDNBOOST_DETAIL_TRIPLE_TO_OCTAL_110 6 
+#define NDNBOOST_DETAIL_TRIPLE_TO_OCTAL_111 7 
 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0 (0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1 (1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0 (0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1 (1), 
 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00 (0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01 (0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10 (1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11 (1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00 (0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01 (0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10 (1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11 (1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00 (0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01 (0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10 (1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11 (1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00 (0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01 (0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10 (1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11 (1)(1), 
 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000 (0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001 (0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010 (0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011 (0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100 (1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101 (1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110 (1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111 (1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_000 (0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_001 (0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_010 (0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_011 (0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_100 (1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_101 (1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_110 (1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_111 (1)(1)(1), 
 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000 (0)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001 (0)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010 (0)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011 (0)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100 (0)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101 (0)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110 (0)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111 (0)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000 (1)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001 (1)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010 (1)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011 (1)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100 (1)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101 (1)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110 (1)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111 (1)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000 (0)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001 (0)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010 (0)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011 (0)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100 (0)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101 (0)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110 (0)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111 (0)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000 (1)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001 (1)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010 (1)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011 (1)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100 (1)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101 (1)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110 (1)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111 (1)(1)(1)(1), 
 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000 (0)(0)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001 (0)(0)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010 (0)(0)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011 (0)(0)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100 (0)(0)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101 (0)(0)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110 (0)(0)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111 (0)(0)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000 (0)(1)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001 (0)(1)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010 (0)(1)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011 (0)(1)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100 (0)(1)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101 (0)(1)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110 (0)(1)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111 (0)(1)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000 (1)(0)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001 (1)(0)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010 (1)(0)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011 (1)(0)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100 (1)(0)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101 (1)(0)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110 (1)(0)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111 (1)(0)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000 (1)(1)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001 (1)(1)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010 (1)(1)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011 (1)(1)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100 (1)(1)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101 (1)(1)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110 (1)(1)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111 (1)(1)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000 (0)(0)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001 (0)(0)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010 (0)(0)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011 (0)(0)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100 (0)(0)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101 (0)(0)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110 (0)(0)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111 (0)(0)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000 (0)(1)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001 (0)(1)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010 (0)(1)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011 (0)(1)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100 (0)(1)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101 (0)(1)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110 (0)(1)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111 (0)(1)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000 (1)(0)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001 (1)(0)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010 (1)(0)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011 (1)(0)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100 (1)(0)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101 (1)(0)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110 (1)(0)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111 (1)(0)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000 (1)(1)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001 (1)(1)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010 (1)(1)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011 (1)(1)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100 (1)(1)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101 (1)(1)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110 (1)(1)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111 (1)(1)(1)(1)(1), 
 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000000 (0)(0)(0)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000001 (0)(0)(0)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000010 (0)(0)(0)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000011 (0)(0)(0)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000100 (0)(0)(0)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000101 (0)(0)(0)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000110 (0)(0)(0)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000111 (0)(0)(0)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001000 (0)(0)(1)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001001 (0)(0)(1)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001010 (0)(0)(1)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001011 (0)(0)(1)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001100 (0)(0)(1)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001101 (0)(0)(1)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001110 (0)(0)(1)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001111 (0)(0)(1)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010000 (0)(1)(0)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010001 (0)(1)(0)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010010 (0)(1)(0)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010011 (0)(1)(0)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010100 (0)(1)(0)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010101 (0)(1)(0)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010110 (0)(1)(0)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010111 (0)(1)(0)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011000 (0)(1)(1)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011001 (0)(1)(1)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011010 (0)(1)(1)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011011 (0)(1)(1)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011100 (0)(1)(1)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011101 (0)(1)(1)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011110 (0)(1)(1)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011111 (0)(1)(1)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100000 (1)(0)(0)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100001 (1)(0)(0)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100010 (1)(0)(0)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100011 (1)(0)(0)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100100 (1)(0)(0)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100101 (1)(0)(0)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100110 (1)(0)(0)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100111 (1)(0)(0)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101000 (1)(0)(1)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101001 (1)(0)(1)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101010 (1)(0)(1)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101011 (1)(0)(1)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101100 (1)(0)(1)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101101 (1)(0)(1)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101110 (1)(0)(1)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101111 (1)(0)(1)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110000 (1)(1)(0)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110001 (1)(1)(0)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110010 (1)(1)(0)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110011 (1)(1)(0)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110100 (1)(1)(0)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110101 (1)(1)(0)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110110 (1)(1)(0)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110111 (1)(1)(0)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111000 (1)(1)(1)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111001 (1)(1)(1)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111010 (1)(1)(1)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111011 (1)(1)(1)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111100 (1)(1)(1)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111101 (1)(1)(1)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111110 (1)(1)(1)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111111 (1)(1)(1)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_000000 (0)(0)(0)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_000001 (0)(0)(0)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_000010 (0)(0)(0)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_000011 (0)(0)(0)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_000100 (0)(0)(0)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_000101 (0)(0)(0)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_000110 (0)(0)(0)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_000111 (0)(0)(0)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_001000 (0)(0)(1)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_001001 (0)(0)(1)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_001010 (0)(0)(1)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_001011 (0)(0)(1)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_001100 (0)(0)(1)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_001101 (0)(0)(1)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_001110 (0)(0)(1)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_001111 (0)(0)(1)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_010000 (0)(1)(0)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_010001 (0)(1)(0)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_010010 (0)(1)(0)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_010011 (0)(1)(0)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_010100 (0)(1)(0)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_010101 (0)(1)(0)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_010110 (0)(1)(0)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_010111 (0)(1)(0)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_011000 (0)(1)(1)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_011001 (0)(1)(1)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_011010 (0)(1)(1)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_011011 (0)(1)(1)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_011100 (0)(1)(1)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_011101 (0)(1)(1)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_011110 (0)(1)(1)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_011111 (0)(1)(1)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_100000 (1)(0)(0)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_100001 (1)(0)(0)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_100010 (1)(0)(0)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_100011 (1)(0)(0)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_100100 (1)(0)(0)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_100101 (1)(0)(0)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_100110 (1)(0)(0)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_100111 (1)(0)(0)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_101000 (1)(0)(1)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_101001 (1)(0)(1)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_101010 (1)(0)(1)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_101011 (1)(0)(1)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_101100 (1)(0)(1)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_101101 (1)(0)(1)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_101110 (1)(0)(1)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_101111 (1)(0)(1)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_110000 (1)(1)(0)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_110001 (1)(1)(0)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_110010 (1)(1)(0)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_110011 (1)(1)(0)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_110100 (1)(1)(0)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_110101 (1)(1)(0)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_110110 (1)(1)(0)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_110111 (1)(1)(0)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_111000 (1)(1)(1)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_111001 (1)(1)(1)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_111010 (1)(1)(1)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_111011 (1)(1)(1)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_111100 (1)(1)(1)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_111101 (1)(1)(1)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_111110 (1)(1)(1)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_111111 (1)(1)(1)(1)(1)(1), 
 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000000 (0)(0)(0)(0)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000001 (0)(0)(0)(0)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000010 (0)(0)(0)(0)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000011 (0)(0)(0)(0)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000100 (0)(0)(0)(0)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000101 (0)(0)(0)(0)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000110 (0)(0)(0)(0)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000111 (0)(0)(0)(0)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001000 (0)(0)(0)(1)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001001 (0)(0)(0)(1)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001010 (0)(0)(0)(1)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001011 (0)(0)(0)(1)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001100 (0)(0)(0)(1)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001101 (0)(0)(0)(1)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001110 (0)(0)(0)(1)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001111 (0)(0)(0)(1)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010000 (0)(0)(1)(0)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010001 (0)(0)(1)(0)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010010 (0)(0)(1)(0)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010011 (0)(0)(1)(0)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010100 (0)(0)(1)(0)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010101 (0)(0)(1)(0)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010110 (0)(0)(1)(0)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010111 (0)(0)(1)(0)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011000 (0)(0)(1)(1)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011001 (0)(0)(1)(1)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011010 (0)(0)(1)(1)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011011 (0)(0)(1)(1)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011100 (0)(0)(1)(1)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011101 (0)(0)(1)(1)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011110 (0)(0)(1)(1)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011111 (0)(0)(1)(1)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100000 (0)(1)(0)(0)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100001 (0)(1)(0)(0)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100010 (0)(1)(0)(0)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100011 (0)(1)(0)(0)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100100 (0)(1)(0)(0)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100101 (0)(1)(0)(0)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100110 (0)(1)(0)(0)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100111 (0)(1)(0)(0)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101000 (0)(1)(0)(1)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101001 (0)(1)(0)(1)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101010 (0)(1)(0)(1)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101011 (0)(1)(0)(1)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101100 (0)(1)(0)(1)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101101 (0)(1)(0)(1)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101110 (0)(1)(0)(1)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101111 (0)(1)(0)(1)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110000 (0)(1)(1)(0)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110001 (0)(1)(1)(0)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110010 (0)(1)(1)(0)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110011 (0)(1)(1)(0)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110100 (0)(1)(1)(0)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110101 (0)(1)(1)(0)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110110 (0)(1)(1)(0)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110111 (0)(1)(1)(0)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111000 (0)(1)(1)(1)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111001 (0)(1)(1)(1)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111010 (0)(1)(1)(1)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111011 (0)(1)(1)(1)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111100 (0)(1)(1)(1)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111101 (0)(1)(1)(1)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111110 (0)(1)(1)(1)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111111 (0)(1)(1)(1)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000000 (1)(0)(0)(0)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000001 (1)(0)(0)(0)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000010 (1)(0)(0)(0)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000011 (1)(0)(0)(0)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000100 (1)(0)(0)(0)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000101 (1)(0)(0)(0)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000110 (1)(0)(0)(0)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000111 (1)(0)(0)(0)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001000 (1)(0)(0)(1)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001001 (1)(0)(0)(1)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001010 (1)(0)(0)(1)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001011 (1)(0)(0)(1)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001100 (1)(0)(0)(1)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001101 (1)(0)(0)(1)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001110 (1)(0)(0)(1)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001111 (1)(0)(0)(1)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010000 (1)(0)(1)(0)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010001 (1)(0)(1)(0)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010010 (1)(0)(1)(0)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010011 (1)(0)(1)(0)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010100 (1)(0)(1)(0)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010101 (1)(0)(1)(0)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010110 (1)(0)(1)(0)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010111 (1)(0)(1)(0)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011000 (1)(0)(1)(1)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011001 (1)(0)(1)(1)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011010 (1)(0)(1)(1)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011011 (1)(0)(1)(1)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011100 (1)(0)(1)(1)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011101 (1)(0)(1)(1)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011110 (1)(0)(1)(1)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011111 (1)(0)(1)(1)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100000 (1)(1)(0)(0)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100001 (1)(1)(0)(0)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100010 (1)(1)(0)(0)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100011 (1)(1)(0)(0)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100100 (1)(1)(0)(0)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100101 (1)(1)(0)(0)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100110 (1)(1)(0)(0)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100111 (1)(1)(0)(0)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101000 (1)(1)(0)(1)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101001 (1)(1)(0)(1)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101010 (1)(1)(0)(1)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101011 (1)(1)(0)(1)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101100 (1)(1)(0)(1)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101101 (1)(1)(0)(1)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101110 (1)(1)(0)(1)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101111 (1)(1)(0)(1)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110000 (1)(1)(1)(0)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110001 (1)(1)(1)(0)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110010 (1)(1)(1)(0)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110011 (1)(1)(1)(0)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110100 (1)(1)(1)(0)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110101 (1)(1)(1)(0)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110110 (1)(1)(1)(0)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110111 (1)(1)(1)(0)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111000 (1)(1)(1)(1)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111001 (1)(1)(1)(1)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111010 (1)(1)(1)(1)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111011 (1)(1)(1)(1)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111100 (1)(1)(1)(1)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111101 (1)(1)(1)(1)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111110 (1)(1)(1)(1)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111111 (1)(1)(1)(1)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000000 (0)(0)(0)(0)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000001 (0)(0)(0)(0)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000010 (0)(0)(0)(0)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000011 (0)(0)(0)(0)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000100 (0)(0)(0)(0)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000101 (0)(0)(0)(0)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000110 (0)(0)(0)(0)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000111 (0)(0)(0)(0)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001000 (0)(0)(0)(1)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001001 (0)(0)(0)(1)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001010 (0)(0)(0)(1)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001011 (0)(0)(0)(1)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001100 (0)(0)(0)(1)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001101 (0)(0)(0)(1)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001110 (0)(0)(0)(1)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001111 (0)(0)(0)(1)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010000 (0)(0)(1)(0)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010001 (0)(0)(1)(0)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010010 (0)(0)(1)(0)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010011 (0)(0)(1)(0)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010100 (0)(0)(1)(0)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010101 (0)(0)(1)(0)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010110 (0)(0)(1)(0)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010111 (0)(0)(1)(0)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011000 (0)(0)(1)(1)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011001 (0)(0)(1)(1)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011010 (0)(0)(1)(1)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011011 (0)(0)(1)(1)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011100 (0)(0)(1)(1)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011101 (0)(0)(1)(1)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011110 (0)(0)(1)(1)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011111 (0)(0)(1)(1)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100000 (0)(1)(0)(0)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100001 (0)(1)(0)(0)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100010 (0)(1)(0)(0)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100011 (0)(1)(0)(0)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100100 (0)(1)(0)(0)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100101 (0)(1)(0)(0)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100110 (0)(1)(0)(0)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100111 (0)(1)(0)(0)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101000 (0)(1)(0)(1)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101001 (0)(1)(0)(1)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101010 (0)(1)(0)(1)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101011 (0)(1)(0)(1)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101100 (0)(1)(0)(1)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101101 (0)(1)(0)(1)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101110 (0)(1)(0)(1)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101111 (0)(1)(0)(1)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110000 (0)(1)(1)(0)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110001 (0)(1)(1)(0)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110010 (0)(1)(1)(0)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110011 (0)(1)(1)(0)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110100 (0)(1)(1)(0)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110101 (0)(1)(1)(0)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110110 (0)(1)(1)(0)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110111 (0)(1)(1)(0)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111000 (0)(1)(1)(1)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111001 (0)(1)(1)(1)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111010 (0)(1)(1)(1)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111011 (0)(1)(1)(1)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111100 (0)(1)(1)(1)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111101 (0)(1)(1)(1)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111110 (0)(1)(1)(1)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111111 (0)(1)(1)(1)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000000 (1)(0)(0)(0)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000001 (1)(0)(0)(0)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000010 (1)(0)(0)(0)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000011 (1)(0)(0)(0)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000100 (1)(0)(0)(0)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000101 (1)(0)(0)(0)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000110 (1)(0)(0)(0)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000111 (1)(0)(0)(0)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001000 (1)(0)(0)(1)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001001 (1)(0)(0)(1)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001010 (1)(0)(0)(1)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001011 (1)(0)(0)(1)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001100 (1)(0)(0)(1)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001101 (1)(0)(0)(1)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001110 (1)(0)(0)(1)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001111 (1)(0)(0)(1)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010000 (1)(0)(1)(0)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010001 (1)(0)(1)(0)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010010 (1)(0)(1)(0)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010011 (1)(0)(1)(0)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010100 (1)(0)(1)(0)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010101 (1)(0)(1)(0)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010110 (1)(0)(1)(0)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010111 (1)(0)(1)(0)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011000 (1)(0)(1)(1)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011001 (1)(0)(1)(1)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011010 (1)(0)(1)(1)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011011 (1)(0)(1)(1)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011100 (1)(0)(1)(1)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011101 (1)(0)(1)(1)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011110 (1)(0)(1)(1)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011111 (1)(0)(1)(1)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100000 (1)(1)(0)(0)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100001 (1)(1)(0)(0)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100010 (1)(1)(0)(0)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100011 (1)(1)(0)(0)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100100 (1)(1)(0)(0)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100101 (1)(1)(0)(0)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100110 (1)(1)(0)(0)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100111 (1)(1)(0)(0)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101000 (1)(1)(0)(1)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101001 (1)(1)(0)(1)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101010 (1)(1)(0)(1)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101011 (1)(1)(0)(1)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101100 (1)(1)(0)(1)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101101 (1)(1)(0)(1)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101110 (1)(1)(0)(1)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101111 (1)(1)(0)(1)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110000 (1)(1)(1)(0)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110001 (1)(1)(1)(0)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110010 (1)(1)(1)(0)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110011 (1)(1)(1)(0)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110100 (1)(1)(1)(0)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110101 (1)(1)(1)(0)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110110 (1)(1)(1)(0)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110111 (1)(1)(1)(0)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111000 (1)(1)(1)(1)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111001 (1)(1)(1)(1)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111010 (1)(1)(1)(1)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111011 (1)(1)(1)(1)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111100 (1)(1)(1)(1)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111101 (1)(1)(1)(1)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111110 (1)(1)(1)(1)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111111 (1)(1)(1)(1)(1)(1)(1), 
 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000000 (0)(0)(0)(0)(0)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000001 (0)(0)(0)(0)(0)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000010 (0)(0)(0)(0)(0)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000011 (0)(0)(0)(0)(0)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000100 (0)(0)(0)(0)(0)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000101 (0)(0)(0)(0)(0)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000110 (0)(0)(0)(0)(0)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000111 (0)(0)(0)(0)(0)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001000 (0)(0)(0)(0)(1)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001001 (0)(0)(0)(0)(1)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001010 (0)(0)(0)(0)(1)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001011 (0)(0)(0)(0)(1)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001100 (0)(0)(0)(0)(1)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001101 (0)(0)(0)(0)(1)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001110 (0)(0)(0)(0)(1)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001111 (0)(0)(0)(0)(1)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010000 (0)(0)(0)(1)(0)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010001 (0)(0)(0)(1)(0)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010010 (0)(0)(0)(1)(0)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010011 (0)(0)(0)(1)(0)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010100 (0)(0)(0)(1)(0)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010101 (0)(0)(0)(1)(0)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010110 (0)(0)(0)(1)(0)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010111 (0)(0)(0)(1)(0)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011000 (0)(0)(0)(1)(1)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011001 (0)(0)(0)(1)(1)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011010 (0)(0)(0)(1)(1)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011011 (0)(0)(0)(1)(1)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011100 (0)(0)(0)(1)(1)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011101 (0)(0)(0)(1)(1)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011110 (0)(0)(0)(1)(1)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011111 (0)(0)(0)(1)(1)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100000 (0)(0)(1)(0)(0)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100001 (0)(0)(1)(0)(0)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100010 (0)(0)(1)(0)(0)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100011 (0)(0)(1)(0)(0)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100100 (0)(0)(1)(0)(0)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100101 (0)(0)(1)(0)(0)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100110 (0)(0)(1)(0)(0)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100111 (0)(0)(1)(0)(0)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101000 (0)(0)(1)(0)(1)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101001 (0)(0)(1)(0)(1)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101010 (0)(0)(1)(0)(1)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101011 (0)(0)(1)(0)(1)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101100 (0)(0)(1)(0)(1)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101101 (0)(0)(1)(0)(1)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101110 (0)(0)(1)(0)(1)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101111 (0)(0)(1)(0)(1)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110000 (0)(0)(1)(1)(0)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110001 (0)(0)(1)(1)(0)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110010 (0)(0)(1)(1)(0)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110011 (0)(0)(1)(1)(0)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110100 (0)(0)(1)(1)(0)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110101 (0)(0)(1)(1)(0)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110110 (0)(0)(1)(1)(0)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110111 (0)(0)(1)(1)(0)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111000 (0)(0)(1)(1)(1)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111001 (0)(0)(1)(1)(1)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111010 (0)(0)(1)(1)(1)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111011 (0)(0)(1)(1)(1)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111100 (0)(0)(1)(1)(1)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111101 (0)(0)(1)(1)(1)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111110 (0)(0)(1)(1)(1)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111111 (0)(0)(1)(1)(1)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000000 (0)(1)(0)(0)(0)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000001 (0)(1)(0)(0)(0)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000010 (0)(1)(0)(0)(0)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000011 (0)(1)(0)(0)(0)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000100 (0)(1)(0)(0)(0)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000101 (0)(1)(0)(0)(0)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000110 (0)(1)(0)(0)(0)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000111 (0)(1)(0)(0)(0)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001000 (0)(1)(0)(0)(1)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001001 (0)(1)(0)(0)(1)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001010 (0)(1)(0)(0)(1)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001011 (0)(1)(0)(0)(1)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001100 (0)(1)(0)(0)(1)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001101 (0)(1)(0)(0)(1)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001110 (0)(1)(0)(0)(1)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001111 (0)(1)(0)(0)(1)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010000 (0)(1)(0)(1)(0)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010001 (0)(1)(0)(1)(0)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010010 (0)(1)(0)(1)(0)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010011 (0)(1)(0)(1)(0)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010100 (0)(1)(0)(1)(0)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010101 (0)(1)(0)(1)(0)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010110 (0)(1)(0)(1)(0)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010111 (0)(1)(0)(1)(0)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011000 (0)(1)(0)(1)(1)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011001 (0)(1)(0)(1)(1)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011010 (0)(1)(0)(1)(1)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011011 (0)(1)(0)(1)(1)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011100 (0)(1)(0)(1)(1)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011101 (0)(1)(0)(1)(1)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011110 (0)(1)(0)(1)(1)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011111 (0)(1)(0)(1)(1)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100000 (0)(1)(1)(0)(0)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100001 (0)(1)(1)(0)(0)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100010 (0)(1)(1)(0)(0)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100011 (0)(1)(1)(0)(0)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100100 (0)(1)(1)(0)(0)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100101 (0)(1)(1)(0)(0)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100110 (0)(1)(1)(0)(0)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100111 (0)(1)(1)(0)(0)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101000 (0)(1)(1)(0)(1)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101001 (0)(1)(1)(0)(1)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101010 (0)(1)(1)(0)(1)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101011 (0)(1)(1)(0)(1)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101100 (0)(1)(1)(0)(1)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101101 (0)(1)(1)(0)(1)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101110 (0)(1)(1)(0)(1)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101111 (0)(1)(1)(0)(1)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110000 (0)(1)(1)(1)(0)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110001 (0)(1)(1)(1)(0)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110010 (0)(1)(1)(1)(0)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110011 (0)(1)(1)(1)(0)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110100 (0)(1)(1)(1)(0)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110101 (0)(1)(1)(1)(0)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110110 (0)(1)(1)(1)(0)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110111 (0)(1)(1)(1)(0)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111000 (0)(1)(1)(1)(1)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111001 (0)(1)(1)(1)(1)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111010 (0)(1)(1)(1)(1)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111011 (0)(1)(1)(1)(1)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111100 (0)(1)(1)(1)(1)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111101 (0)(1)(1)(1)(1)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111110 (0)(1)(1)(1)(1)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111111 (0)(1)(1)(1)(1)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000000 (1)(0)(0)(0)(0)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000001 (1)(0)(0)(0)(0)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000010 (1)(0)(0)(0)(0)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000011 (1)(0)(0)(0)(0)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000100 (1)(0)(0)(0)(0)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000101 (1)(0)(0)(0)(0)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000110 (1)(0)(0)(0)(0)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000111 (1)(0)(0)(0)(0)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001000 (1)(0)(0)(0)(1)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001001 (1)(0)(0)(0)(1)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001010 (1)(0)(0)(0)(1)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001011 (1)(0)(0)(0)(1)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001100 (1)(0)(0)(0)(1)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001101 (1)(0)(0)(0)(1)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001110 (1)(0)(0)(0)(1)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001111 (1)(0)(0)(0)(1)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010000 (1)(0)(0)(1)(0)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010001 (1)(0)(0)(1)(0)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010010 (1)(0)(0)(1)(0)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010011 (1)(0)(0)(1)(0)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010100 (1)(0)(0)(1)(0)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010101 (1)(0)(0)(1)(0)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010110 (1)(0)(0)(1)(0)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010111 (1)(0)(0)(1)(0)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011000 (1)(0)(0)(1)(1)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011001 (1)(0)(0)(1)(1)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011010 (1)(0)(0)(1)(1)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011011 (1)(0)(0)(1)(1)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011100 (1)(0)(0)(1)(1)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011101 (1)(0)(0)(1)(1)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011110 (1)(0)(0)(1)(1)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011111 (1)(0)(0)(1)(1)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100000 (1)(0)(1)(0)(0)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100001 (1)(0)(1)(0)(0)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100010 (1)(0)(1)(0)(0)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100011 (1)(0)(1)(0)(0)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100100 (1)(0)(1)(0)(0)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100101 (1)(0)(1)(0)(0)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100110 (1)(0)(1)(0)(0)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100111 (1)(0)(1)(0)(0)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101000 (1)(0)(1)(0)(1)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101001 (1)(0)(1)(0)(1)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101010 (1)(0)(1)(0)(1)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101011 (1)(0)(1)(0)(1)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101100 (1)(0)(1)(0)(1)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101101 (1)(0)(1)(0)(1)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101110 (1)(0)(1)(0)(1)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101111 (1)(0)(1)(0)(1)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110000 (1)(0)(1)(1)(0)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110001 (1)(0)(1)(1)(0)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110010 (1)(0)(1)(1)(0)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110011 (1)(0)(1)(1)(0)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110100 (1)(0)(1)(1)(0)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110101 (1)(0)(1)(1)(0)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110110 (1)(0)(1)(1)(0)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110111 (1)(0)(1)(1)(0)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111000 (1)(0)(1)(1)(1)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111001 (1)(0)(1)(1)(1)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111010 (1)(0)(1)(1)(1)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111011 (1)(0)(1)(1)(1)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111100 (1)(0)(1)(1)(1)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111101 (1)(0)(1)(1)(1)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111110 (1)(0)(1)(1)(1)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111111 (1)(0)(1)(1)(1)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000000 (1)(1)(0)(0)(0)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000001 (1)(1)(0)(0)(0)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000010 (1)(1)(0)(0)(0)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000011 (1)(1)(0)(0)(0)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000100 (1)(1)(0)(0)(0)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000101 (1)(1)(0)(0)(0)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000110 (1)(1)(0)(0)(0)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000111 (1)(1)(0)(0)(0)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001000 (1)(1)(0)(0)(1)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001001 (1)(1)(0)(0)(1)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001010 (1)(1)(0)(0)(1)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001011 (1)(1)(0)(0)(1)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001100 (1)(1)(0)(0)(1)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001101 (1)(1)(0)(0)(1)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001110 (1)(1)(0)(0)(1)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001111 (1)(1)(0)(0)(1)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010000 (1)(1)(0)(1)(0)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010001 (1)(1)(0)(1)(0)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010010 (1)(1)(0)(1)(0)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010011 (1)(1)(0)(1)(0)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010100 (1)(1)(0)(1)(0)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010101 (1)(1)(0)(1)(0)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010110 (1)(1)(0)(1)(0)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010111 (1)(1)(0)(1)(0)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011000 (1)(1)(0)(1)(1)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011001 (1)(1)(0)(1)(1)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011010 (1)(1)(0)(1)(1)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011011 (1)(1)(0)(1)(1)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011100 (1)(1)(0)(1)(1)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011101 (1)(1)(0)(1)(1)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011110 (1)(1)(0)(1)(1)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011111 (1)(1)(0)(1)(1)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100000 (1)(1)(1)(0)(0)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100001 (1)(1)(1)(0)(0)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100010 (1)(1)(1)(0)(0)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100011 (1)(1)(1)(0)(0)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100100 (1)(1)(1)(0)(0)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100101 (1)(1)(1)(0)(0)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100110 (1)(1)(1)(0)(0)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100111 (1)(1)(1)(0)(0)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101000 (1)(1)(1)(0)(1)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101001 (1)(1)(1)(0)(1)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101010 (1)(1)(1)(0)(1)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101011 (1)(1)(1)(0)(1)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101100 (1)(1)(1)(0)(1)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101101 (1)(1)(1)(0)(1)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101110 (1)(1)(1)(0)(1)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101111 (1)(1)(1)(0)(1)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110000 (1)(1)(1)(1)(0)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110001 (1)(1)(1)(1)(0)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110010 (1)(1)(1)(1)(0)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110011 (1)(1)(1)(1)(0)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110100 (1)(1)(1)(1)(0)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110101 (1)(1)(1)(1)(0)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110110 (1)(1)(1)(1)(0)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110111 (1)(1)(1)(1)(0)(1)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111000 (1)(1)(1)(1)(1)(0)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111001 (1)(1)(1)(1)(1)(0)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111010 (1)(1)(1)(1)(1)(0)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111011 (1)(1)(1)(1)(1)(0)(1)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111100 (1)(1)(1)(1)(1)(1)(0)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111101 (1)(1)(1)(1)(1)(1)(0)(1), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111110 (1)(1)(1)(1)(1)(1)(1)(0), 
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111111 (1)(1)(1)(1)(1)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000000 (0)(0)(0)(0)(0)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000001 (0)(0)(0)(0)(0)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000010 (0)(0)(0)(0)(0)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000011 (0)(0)(0)(0)(0)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000100 (0)(0)(0)(0)(0)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000101 (0)(0)(0)(0)(0)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000110 (0)(0)(0)(0)(0)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000111 (0)(0)(0)(0)(0)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001000 (0)(0)(0)(0)(1)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001001 (0)(0)(0)(0)(1)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001010 (0)(0)(0)(0)(1)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001011 (0)(0)(0)(0)(1)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001100 (0)(0)(0)(0)(1)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001101 (0)(0)(0)(0)(1)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001110 (0)(0)(0)(0)(1)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001111 (0)(0)(0)(0)(1)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010000 (0)(0)(0)(1)(0)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010001 (0)(0)(0)(1)(0)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010010 (0)(0)(0)(1)(0)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010011 (0)(0)(0)(1)(0)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010100 (0)(0)(0)(1)(0)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010101 (0)(0)(0)(1)(0)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010110 (0)(0)(0)(1)(0)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010111 (0)(0)(0)(1)(0)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011000 (0)(0)(0)(1)(1)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011001 (0)(0)(0)(1)(1)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011010 (0)(0)(0)(1)(1)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011011 (0)(0)(0)(1)(1)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011100 (0)(0)(0)(1)(1)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011101 (0)(0)(0)(1)(1)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011110 (0)(0)(0)(1)(1)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011111 (0)(0)(0)(1)(1)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100000 (0)(0)(1)(0)(0)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100001 (0)(0)(1)(0)(0)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100010 (0)(0)(1)(0)(0)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100011 (0)(0)(1)(0)(0)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100100 (0)(0)(1)(0)(0)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100101 (0)(0)(1)(0)(0)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100110 (0)(0)(1)(0)(0)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100111 (0)(0)(1)(0)(0)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101000 (0)(0)(1)(0)(1)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101001 (0)(0)(1)(0)(1)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101010 (0)(0)(1)(0)(1)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101011 (0)(0)(1)(0)(1)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101100 (0)(0)(1)(0)(1)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101101 (0)(0)(1)(0)(1)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101110 (0)(0)(1)(0)(1)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101111 (0)(0)(1)(0)(1)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110000 (0)(0)(1)(1)(0)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110001 (0)(0)(1)(1)(0)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110010 (0)(0)(1)(1)(0)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110011 (0)(0)(1)(1)(0)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110100 (0)(0)(1)(1)(0)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110101 (0)(0)(1)(1)(0)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110110 (0)(0)(1)(1)(0)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110111 (0)(0)(1)(1)(0)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111000 (0)(0)(1)(1)(1)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111001 (0)(0)(1)(1)(1)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111010 (0)(0)(1)(1)(1)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111011 (0)(0)(1)(1)(1)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111100 (0)(0)(1)(1)(1)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111101 (0)(0)(1)(1)(1)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111110 (0)(0)(1)(1)(1)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111111 (0)(0)(1)(1)(1)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000000 (0)(1)(0)(0)(0)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000001 (0)(1)(0)(0)(0)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000010 (0)(1)(0)(0)(0)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000011 (0)(1)(0)(0)(0)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000100 (0)(1)(0)(0)(0)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000101 (0)(1)(0)(0)(0)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000110 (0)(1)(0)(0)(0)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000111 (0)(1)(0)(0)(0)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001000 (0)(1)(0)(0)(1)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001001 (0)(1)(0)(0)(1)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001010 (0)(1)(0)(0)(1)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001011 (0)(1)(0)(0)(1)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001100 (0)(1)(0)(0)(1)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001101 (0)(1)(0)(0)(1)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001110 (0)(1)(0)(0)(1)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001111 (0)(1)(0)(0)(1)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010000 (0)(1)(0)(1)(0)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010001 (0)(1)(0)(1)(0)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010010 (0)(1)(0)(1)(0)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010011 (0)(1)(0)(1)(0)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010100 (0)(1)(0)(1)(0)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010101 (0)(1)(0)(1)(0)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010110 (0)(1)(0)(1)(0)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010111 (0)(1)(0)(1)(0)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011000 (0)(1)(0)(1)(1)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011001 (0)(1)(0)(1)(1)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011010 (0)(1)(0)(1)(1)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011011 (0)(1)(0)(1)(1)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011100 (0)(1)(0)(1)(1)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011101 (0)(1)(0)(1)(1)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011110 (0)(1)(0)(1)(1)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011111 (0)(1)(0)(1)(1)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100000 (0)(1)(1)(0)(0)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100001 (0)(1)(1)(0)(0)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100010 (0)(1)(1)(0)(0)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100011 (0)(1)(1)(0)(0)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100100 (0)(1)(1)(0)(0)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100101 (0)(1)(1)(0)(0)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100110 (0)(1)(1)(0)(0)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100111 (0)(1)(1)(0)(0)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101000 (0)(1)(1)(0)(1)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101001 (0)(1)(1)(0)(1)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101010 (0)(1)(1)(0)(1)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101011 (0)(1)(1)(0)(1)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101100 (0)(1)(1)(0)(1)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101101 (0)(1)(1)(0)(1)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101110 (0)(1)(1)(0)(1)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101111 (0)(1)(1)(0)(1)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110000 (0)(1)(1)(1)(0)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110001 (0)(1)(1)(1)(0)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110010 (0)(1)(1)(1)(0)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110011 (0)(1)(1)(1)(0)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110100 (0)(1)(1)(1)(0)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110101 (0)(1)(1)(1)(0)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110110 (0)(1)(1)(1)(0)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110111 (0)(1)(1)(1)(0)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111000 (0)(1)(1)(1)(1)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111001 (0)(1)(1)(1)(1)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111010 (0)(1)(1)(1)(1)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111011 (0)(1)(1)(1)(1)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111100 (0)(1)(1)(1)(1)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111101 (0)(1)(1)(1)(1)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111110 (0)(1)(1)(1)(1)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111111 (0)(1)(1)(1)(1)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000000 (1)(0)(0)(0)(0)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000001 (1)(0)(0)(0)(0)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000010 (1)(0)(0)(0)(0)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000011 (1)(0)(0)(0)(0)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000100 (1)(0)(0)(0)(0)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000101 (1)(0)(0)(0)(0)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000110 (1)(0)(0)(0)(0)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000111 (1)(0)(0)(0)(0)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001000 (1)(0)(0)(0)(1)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001001 (1)(0)(0)(0)(1)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001010 (1)(0)(0)(0)(1)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001011 (1)(0)(0)(0)(1)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001100 (1)(0)(0)(0)(1)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001101 (1)(0)(0)(0)(1)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001110 (1)(0)(0)(0)(1)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001111 (1)(0)(0)(0)(1)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010000 (1)(0)(0)(1)(0)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010001 (1)(0)(0)(1)(0)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010010 (1)(0)(0)(1)(0)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010011 (1)(0)(0)(1)(0)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010100 (1)(0)(0)(1)(0)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010101 (1)(0)(0)(1)(0)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010110 (1)(0)(0)(1)(0)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010111 (1)(0)(0)(1)(0)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011000 (1)(0)(0)(1)(1)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011001 (1)(0)(0)(1)(1)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011010 (1)(0)(0)(1)(1)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011011 (1)(0)(0)(1)(1)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011100 (1)(0)(0)(1)(1)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011101 (1)(0)(0)(1)(1)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011110 (1)(0)(0)(1)(1)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011111 (1)(0)(0)(1)(1)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100000 (1)(0)(1)(0)(0)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100001 (1)(0)(1)(0)(0)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100010 (1)(0)(1)(0)(0)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100011 (1)(0)(1)(0)(0)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100100 (1)(0)(1)(0)(0)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100101 (1)(0)(1)(0)(0)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100110 (1)(0)(1)(0)(0)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100111 (1)(0)(1)(0)(0)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101000 (1)(0)(1)(0)(1)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101001 (1)(0)(1)(0)(1)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101010 (1)(0)(1)(0)(1)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101011 (1)(0)(1)(0)(1)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101100 (1)(0)(1)(0)(1)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101101 (1)(0)(1)(0)(1)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101110 (1)(0)(1)(0)(1)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101111 (1)(0)(1)(0)(1)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110000 (1)(0)(1)(1)(0)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110001 (1)(0)(1)(1)(0)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110010 (1)(0)(1)(1)(0)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110011 (1)(0)(1)(1)(0)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110100 (1)(0)(1)(1)(0)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110101 (1)(0)(1)(1)(0)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110110 (1)(0)(1)(1)(0)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110111 (1)(0)(1)(1)(0)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111000 (1)(0)(1)(1)(1)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111001 (1)(0)(1)(1)(1)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111010 (1)(0)(1)(1)(1)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111011 (1)(0)(1)(1)(1)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111100 (1)(0)(1)(1)(1)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111101 (1)(0)(1)(1)(1)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111110 (1)(0)(1)(1)(1)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111111 (1)(0)(1)(1)(1)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000000 (1)(1)(0)(0)(0)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000001 (1)(1)(0)(0)(0)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000010 (1)(1)(0)(0)(0)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000011 (1)(1)(0)(0)(0)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000100 (1)(1)(0)(0)(0)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000101 (1)(1)(0)(0)(0)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000110 (1)(1)(0)(0)(0)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000111 (1)(1)(0)(0)(0)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001000 (1)(1)(0)(0)(1)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001001 (1)(1)(0)(0)(1)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001010 (1)(1)(0)(0)(1)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001011 (1)(1)(0)(0)(1)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001100 (1)(1)(0)(0)(1)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001101 (1)(1)(0)(0)(1)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001110 (1)(1)(0)(0)(1)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001111 (1)(1)(0)(0)(1)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010000 (1)(1)(0)(1)(0)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010001 (1)(1)(0)(1)(0)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010010 (1)(1)(0)(1)(0)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010011 (1)(1)(0)(1)(0)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010100 (1)(1)(0)(1)(0)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010101 (1)(1)(0)(1)(0)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010110 (1)(1)(0)(1)(0)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010111 (1)(1)(0)(1)(0)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011000 (1)(1)(0)(1)(1)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011001 (1)(1)(0)(1)(1)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011010 (1)(1)(0)(1)(1)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011011 (1)(1)(0)(1)(1)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011100 (1)(1)(0)(1)(1)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011101 (1)(1)(0)(1)(1)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011110 (1)(1)(0)(1)(1)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011111 (1)(1)(0)(1)(1)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100000 (1)(1)(1)(0)(0)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100001 (1)(1)(1)(0)(0)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100010 (1)(1)(1)(0)(0)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100011 (1)(1)(1)(0)(0)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100100 (1)(1)(1)(0)(0)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100101 (1)(1)(1)(0)(0)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100110 (1)(1)(1)(0)(0)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100111 (1)(1)(1)(0)(0)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101000 (1)(1)(1)(0)(1)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101001 (1)(1)(1)(0)(1)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101010 (1)(1)(1)(0)(1)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101011 (1)(1)(1)(0)(1)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101100 (1)(1)(1)(0)(1)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101101 (1)(1)(1)(0)(1)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101110 (1)(1)(1)(0)(1)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101111 (1)(1)(1)(0)(1)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110000 (1)(1)(1)(1)(0)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110001 (1)(1)(1)(1)(0)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110010 (1)(1)(1)(1)(0)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110011 (1)(1)(1)(1)(0)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110100 (1)(1)(1)(1)(0)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110101 (1)(1)(1)(1)(0)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110110 (1)(1)(1)(1)(0)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110111 (1)(1)(1)(1)(0)(1)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111000 (1)(1)(1)(1)(1)(0)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111001 (1)(1)(1)(1)(1)(0)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111010 (1)(1)(1)(1)(1)(0)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111011 (1)(1)(1)(1)(1)(0)(1)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111100 (1)(1)(1)(1)(1)(1)(0)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111101 (1)(1)(1)(1)(1)(1)(0)(1), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111110 (1)(1)(1)(1)(1)(1)(1)(0), 
+#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111111 (1)(1)(1)(1)(1)(1)(1)(1), 
 
 #endif
diff --git a/include/ndnboost/utility/compare_pointees.hpp b/include/ndnboost/utility/compare_pointees.hpp
index 6e20bf0..11f1ddd 100644
--- a/include/ndnboost/utility/compare_pointees.hpp
+++ b/include/ndnboost/utility/compare_pointees.hpp
@@ -9,8 +9,8 @@
 // You are welcome to contact the author at:
 //  fernando_cacciola@hotmail.com
 //
-#ifndef BOOST_UTILITY_COMPARE_POINTEES_25AGO2003_HPP
-#define BOOST_UTILITY_COMPARE_POINTEES_25AGO2003_HPP
+#ifndef NDNBOOST_UTILITY_COMPARE_POINTEES_25AGO2003_HPP
+#define NDNBOOST_UTILITY_COMPARE_POINTEES_25AGO2003_HPP
 
 #include<functional>
 
diff --git a/include/ndnboost/utility/declval.hpp b/include/ndnboost/utility/declval.hpp
index c22154c..b9e1a35 100644
--- a/include/ndnboost/utility/declval.hpp
+++ b/include/ndnboost/utility/declval.hpp
@@ -5,8 +5,8 @@
 //  Distributed under the Boost Software License, Version 1.0.
 //  See http://www.boost.org/LICENSE_1_0.txt
 
-#ifndef BOOST_TYPE_TRAITS_EXT_DECLVAL__HPP
-#define BOOST_TYPE_TRAITS_EXT_DECLVAL__HPP
+#ifndef NDNBOOST_TYPE_TRAITS_EXT_DECLVAL__HPP
+#define NDNBOOST_TYPE_TRAITS_EXT_DECLVAL__HPP
 
 #include <ndnboost/config.hpp>
 
@@ -37,13 +37,13 @@
 
 namespace ndnboost {
 
-//#if !defined(BOOST_NO_RVALUE_REFERENCES)
+//#if !defined(NDNBOOST_NO_RVALUE_REFERENCES)
     template <typename T>
-    typename add_rvalue_reference<T>::type declval() BOOST_NOEXCEPT; // as unevaluated operand
+    typename add_rvalue_reference<T>::type declval() NDNBOOST_NOEXCEPT; // as unevaluated operand
 //#else
 //    template <typename T>
-//    typename add_lvalue_reference<T>::type declval() BOOST_NOEXCEPT; // as unevaluated operand
+//    typename add_lvalue_reference<T>::type declval() NDNBOOST_NOEXCEPT; // as unevaluated operand
 //#endif
 }  // namespace ndnboost
 
-#endif  // BOOST_TYPE_TRAITS_EXT_DECLVAL__HPP
+#endif  // NDNBOOST_TYPE_TRAITS_EXT_DECLVAL__HPP
diff --git a/include/ndnboost/utility/detail/in_place_factory_prefix.hpp b/include/ndnboost/utility/detail/in_place_factory_prefix.hpp
index 17c82e7..1c4c5ac 100644
--- a/include/ndnboost/utility/detail/in_place_factory_prefix.hpp
+++ b/include/ndnboost/utility/detail/in_place_factory_prefix.hpp
@@ -10,8 +10,8 @@
 // You are welcome to contact the author at:
 //  fernando_cacciola@hotmail.com
 //
-#ifndef BOOST_UTILITY_DETAIL_INPLACE_FACTORY_PREFIX_04APR2007_HPP
-#define BOOST_UTILITY_DETAIL_INPLACE_FACTORY_PREFIX_04APR2007_HPP
+#ifndef NDNBOOST_UTILITY_DETAIL_INPLACE_FACTORY_PREFIX_04APR2007_HPP
+#define NDNBOOST_UTILITY_DETAIL_INPLACE_FACTORY_PREFIX_04APR2007_HPP
 
 #include <new>
 #include <cstddef>
@@ -25,12 +25,12 @@
 #include <ndnboost/preprocessor/repetition/enum_binary_params.hpp>
 #include <ndnboost/preprocessor/repetition/enum_trailing_params.hpp>
 
-#define BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_INIT(z,n,_) BOOST_PP_CAT(m_a,n) BOOST_PP_LPAREN() BOOST_PP_CAT(a,n) BOOST_PP_RPAREN()
-#define BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_DECL(z,n,_) BOOST_PP_CAT(A,n) const& BOOST_PP_CAT(m_a,n);
+#define NDNBOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_INIT(z,n,_) NDNBOOST_PP_CAT(m_a,n) NDNBOOST_PP_LPAREN() NDNBOOST_PP_CAT(a,n) NDNBOOST_PP_RPAREN()
+#define NDNBOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_DECL(z,n,_) NDNBOOST_PP_CAT(A,n) const& NDNBOOST_PP_CAT(m_a,n);
 
-#define BOOST_MAX_INPLACE_FACTORY_ARITY 10
+#define NDNBOOST_MAX_INPLACE_FACTORY_ARITY 10
 
-#undef BOOST_UTILITY_DETAIL_INPLACE_FACTORY_SUFFIX_04APR2007_HPP
+#undef NDNBOOST_UTILITY_DETAIL_INPLACE_FACTORY_SUFFIX_04APR2007_HPP
 
 #endif
 
diff --git a/include/ndnboost/utility/detail/in_place_factory_suffix.hpp b/include/ndnboost/utility/detail/in_place_factory_suffix.hpp
index 58f48c7..2762da1 100644
--- a/include/ndnboost/utility/detail/in_place_factory_suffix.hpp
+++ b/include/ndnboost/utility/detail/in_place_factory_suffix.hpp
@@ -10,14 +10,14 @@
 // You are welcome to contact the author at:
 //  fernando_cacciola@hotmail.com
 //
-#ifndef BOOST_UTILITY_DETAIL_INPLACE_FACTORY_SUFFIX_04APR2007_HPP
-#define BOOST_UTILITY_DETAIL_INPLACE_FACTORY_SUFFIX_04APR2007_HPP
+#ifndef NDNBOOST_UTILITY_DETAIL_INPLACE_FACTORY_SUFFIX_04APR2007_HPP
+#define NDNBOOST_UTILITY_DETAIL_INPLACE_FACTORY_SUFFIX_04APR2007_HPP
 
-#undef BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_INIT
-#undef BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_DECL
-#undef BOOST_MAX_INPLACE_FACTORY_ARITY
+#undef NDNBOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_INIT
+#undef NDNBOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_DECL
+#undef NDNBOOST_MAX_INPLACE_FACTORY_ARITY
 
-#undef BOOST_UTILITY_DETAIL_INPLACE_FACTORY_PREFIX_04APR2007_HPP
+#undef NDNBOOST_UTILITY_DETAIL_INPLACE_FACTORY_PREFIX_04APR2007_HPP
 
 #endif
 
diff --git a/include/ndnboost/utility/detail/result_of_iterate.hpp b/include/ndnboost/utility/detail/result_of_iterate.hpp
index 3a9dc3f..96298a4 100644
--- a/include/ndnboost/utility/detail/result_of_iterate.hpp
+++ b/include/ndnboost/utility/detail/result_of_iterate.hpp
@@ -11,192 +11,192 @@
 //  copy at http://www.boost.org/LICENSE_1_0.txt)
 
 // For more information, see http://www.boost.org/libs/utility
-#if !defined(BOOST_PP_IS_ITERATING)
+#if !defined(NDNBOOST_PP_IS_ITERATING)
 # error Boost result_of - do not include this file!
 #endif
 
 // CWPro8 requires an argument in a function type specialization
-#if BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3002)) && BOOST_PP_ITERATION() == 0
-# define BOOST_RESULT_OF_ARGS void
+#if NDNBOOST_WORKAROUND(__MWERKS__, NDNBOOST_TESTED_AT(0x3002)) && NDNBOOST_PP_ITERATION() == 0
+# define NDNBOOST_RESULT_OF_ARGS void
 #else
-# define BOOST_RESULT_OF_ARGS BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),T)
+# define NDNBOOST_RESULT_OF_ARGS NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_ITERATION(),T)
 #endif
 
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551))
-template<typename F BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_PP_ITERATION(),typename T)>
-struct tr1_result_of<F(BOOST_RESULT_OF_ARGS)>
+#if !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x551))
+template<typename F NDNBOOST_PP_ENUM_TRAILING_PARAMS(NDNBOOST_PP_ITERATION(),typename T)>
+struct tr1_result_of<F(NDNBOOST_RESULT_OF_ARGS)>
     : mpl::if_<
           mpl::or_< is_pointer<F>, is_member_function_pointer<F> >
         , ndnboost::detail::tr1_result_of_impl<
             typename remove_cv<F>::type,
-            typename remove_cv<F>::type(BOOST_RESULT_OF_ARGS),
+            typename remove_cv<F>::type(NDNBOOST_RESULT_OF_ARGS),
             (ndnboost::detail::has_result_type<F>::value)>
         , ndnboost::detail::tr1_result_of_impl<
             F,
-            F(BOOST_RESULT_OF_ARGS),
+            F(NDNBOOST_RESULT_OF_ARGS),
             (ndnboost::detail::has_result_type<F>::value)> >::type { };
 #endif
 
-#ifdef BOOST_RESULT_OF_USE_DECLTYPE
+#ifdef NDNBOOST_RESULT_OF_USE_DECLTYPE
 
 // Uses declval following N3225 20.7.7.6 when F is not a pointer.
-template<typename F BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_PP_ITERATION(),typename T)>
-struct result_of<F(BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),T))>
+template<typename F NDNBOOST_PP_ENUM_TRAILING_PARAMS(NDNBOOST_PP_ITERATION(),typename T)>
+struct result_of<F(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_ITERATION(),T))>
     : mpl::if_<
           is_member_function_pointer<F>
         , detail::tr1_result_of_impl<
             typename remove_cv<F>::type,
-            typename remove_cv<F>::type(BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),T)), false
+            typename remove_cv<F>::type(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_ITERATION(),T)), false
           >
         , detail::cpp0x_result_of_impl<
-              F(BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),T))
+              F(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_ITERATION(),T))
           >
       >::type
 {};
 
 namespace detail {
 
-#ifdef BOOST_NO_SFINAE_EXPR
+#ifdef NDNBOOST_NO_SFINAE_EXPR
 
 template<typename F>
-struct BOOST_PP_CAT(result_of_callable_fun_2_, BOOST_PP_ITERATION());
+struct NDNBOOST_PP_CAT(result_of_callable_fun_2_, NDNBOOST_PP_ITERATION());
 
-template<typename R BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_PP_ITERATION(), typename T)>
-struct BOOST_PP_CAT(result_of_callable_fun_2_, BOOST_PP_ITERATION())<R(BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(), T))> {
-    R operator()(BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(), T)) const;
+template<typename R NDNBOOST_PP_ENUM_TRAILING_PARAMS(NDNBOOST_PP_ITERATION(), typename T)>
+struct NDNBOOST_PP_CAT(result_of_callable_fun_2_, NDNBOOST_PP_ITERATION())<R(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_ITERATION(), T))> {
+    R operator()(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_ITERATION(), T)) const;
     typedef result_of_private_type const &(*pfn_t)(...);
     operator pfn_t() const volatile;
 };
 
 template<typename F>
-struct BOOST_PP_CAT(result_of_callable_fun_, BOOST_PP_ITERATION());
+struct NDNBOOST_PP_CAT(result_of_callable_fun_, NDNBOOST_PP_ITERATION());
 
 template<typename F>
-struct BOOST_PP_CAT(result_of_callable_fun_, BOOST_PP_ITERATION())<F *>
-  : BOOST_PP_CAT(result_of_callable_fun_2_, BOOST_PP_ITERATION())<F>
+struct NDNBOOST_PP_CAT(result_of_callable_fun_, NDNBOOST_PP_ITERATION())<F *>
+  : NDNBOOST_PP_CAT(result_of_callable_fun_2_, NDNBOOST_PP_ITERATION())<F>
 {};
 
 template<typename F>
-struct BOOST_PP_CAT(result_of_callable_fun_, BOOST_PP_ITERATION())<F &>
-  : BOOST_PP_CAT(result_of_callable_fun_2_, BOOST_PP_ITERATION())<F>
+struct NDNBOOST_PP_CAT(result_of_callable_fun_, NDNBOOST_PP_ITERATION())<F &>
+  : NDNBOOST_PP_CAT(result_of_callable_fun_2_, NDNBOOST_PP_ITERATION())<F>
 {};
 
 template<typename F>
-struct BOOST_PP_CAT(result_of_select_call_wrapper_type_, BOOST_PP_ITERATION())
+struct NDNBOOST_PP_CAT(result_of_select_call_wrapper_type_, NDNBOOST_PP_ITERATION())
   : mpl::eval_if<
         is_class<typename remove_reference<F>::type>,
         result_of_wrap_callable_class<F>,
-        mpl::identity<BOOST_PP_CAT(result_of_callable_fun_, BOOST_PP_ITERATION())<typename remove_cv<F>::type> >
+        mpl::identity<NDNBOOST_PP_CAT(result_of_callable_fun_, NDNBOOST_PP_ITERATION())<typename remove_cv<F>::type> >
     >
 {};
 
-template<typename F BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_PP_ITERATION(), typename T)>
-struct BOOST_PP_CAT(result_of_is_callable_, BOOST_PP_ITERATION()) {
-    typedef typename BOOST_PP_CAT(result_of_select_call_wrapper_type_, BOOST_PP_ITERATION())<F>::type wrapper_t;
+template<typename F NDNBOOST_PP_ENUM_TRAILING_PARAMS(NDNBOOST_PP_ITERATION(), typename T)>
+struct NDNBOOST_PP_CAT(result_of_is_callable_, NDNBOOST_PP_ITERATION()) {
+    typedef typename NDNBOOST_PP_CAT(result_of_select_call_wrapper_type_, NDNBOOST_PP_ITERATION())<F>::type wrapper_t;
     static const bool value = (
         sizeof(result_of_no_type) == sizeof(detail::result_of_is_private_type(
-            (ndnboost::declval<wrapper_t>()(BOOST_PP_ENUM_BINARY_PARAMS(BOOST_PP_ITERATION(), ndnboost::declval<T, >() BOOST_PP_INTERCEPT)), result_of_weird_type())
+            (ndnboost::declval<wrapper_t>()(NDNBOOST_PP_ENUM_BINARY_PARAMS(NDNBOOST_PP_ITERATION(), ndnboost::declval<T, >() NDNBOOST_PP_INTERCEPT)), result_of_weird_type())
         ))
     );
     typedef mpl::bool_<value> type;
 };
 
-template<typename F BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_PP_ITERATION(),typename T)>
-struct cpp0x_result_of_impl<F(BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),T)), true>
+template<typename F NDNBOOST_PP_ENUM_TRAILING_PARAMS(NDNBOOST_PP_ITERATION(),typename T)>
+struct cpp0x_result_of_impl<F(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_ITERATION(),T)), true>
     : lazy_enable_if<
-          BOOST_PP_CAT(result_of_is_callable_, BOOST_PP_ITERATION())<F BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_PP_ITERATION(), T)>
-        , cpp0x_result_of_impl<F(BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),T)), false>
+          NDNBOOST_PP_CAT(result_of_is_callable_, NDNBOOST_PP_ITERATION())<F NDNBOOST_PP_ENUM_TRAILING_PARAMS(NDNBOOST_PP_ITERATION(), T)>
+        , cpp0x_result_of_impl<F(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_ITERATION(),T)), false>
       >
 {};
 
-template<typename F BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_PP_ITERATION(),typename T)>
-struct cpp0x_result_of_impl<F(BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),T)), false>
+template<typename F NDNBOOST_PP_ENUM_TRAILING_PARAMS(NDNBOOST_PP_ITERATION(),typename T)>
+struct cpp0x_result_of_impl<F(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_ITERATION(),T)), false>
 {
   typedef decltype(
     ndnboost::declval<F>()(
-      BOOST_PP_ENUM_BINARY_PARAMS(BOOST_PP_ITERATION(), ndnboost::declval<T, >() BOOST_PP_INTERCEPT)
+      NDNBOOST_PP_ENUM_BINARY_PARAMS(NDNBOOST_PP_ITERATION(), ndnboost::declval<T, >() NDNBOOST_PP_INTERCEPT)
     )
   ) type;
 };
 
-#else // BOOST_NO_SFINAE_EXPR
+#else // NDNBOOST_NO_SFINAE_EXPR
 
-template<typename F BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_PP_ITERATION(),typename T)>
-struct cpp0x_result_of_impl<F(BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),T)),
+template<typename F NDNBOOST_PP_ENUM_TRAILING_PARAMS(NDNBOOST_PP_ITERATION(),typename T)>
+struct cpp0x_result_of_impl<F(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_ITERATION(),T)),
                             typename result_of_always_void<decltype(
                                 ndnboost::declval<F>()(
-                                    BOOST_PP_ENUM_BINARY_PARAMS(BOOST_PP_ITERATION(), ndnboost::declval<T, >() BOOST_PP_INTERCEPT)
+                                    NDNBOOST_PP_ENUM_BINARY_PARAMS(NDNBOOST_PP_ITERATION(), ndnboost::declval<T, >() NDNBOOST_PP_INTERCEPT)
                                 )
                             )>::type> {
   typedef decltype(
     ndnboost::declval<F>()(
-      BOOST_PP_ENUM_BINARY_PARAMS(BOOST_PP_ITERATION(), ndnboost::declval<T, >() BOOST_PP_INTERCEPT)
+      NDNBOOST_PP_ENUM_BINARY_PARAMS(NDNBOOST_PP_ITERATION(), ndnboost::declval<T, >() NDNBOOST_PP_INTERCEPT)
     )
   ) type;
 };
 
-#endif // BOOST_NO_SFINAE_EXPR
+#endif // NDNBOOST_NO_SFINAE_EXPR
 
 } // namespace detail
 
-#else // defined(BOOST_RESULT_OF_USE_DECLTYPE)
+#else // defined(NDNBOOST_RESULT_OF_USE_DECLTYPE)
 
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551))
-template<typename F BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_PP_ITERATION(),typename T)>
-struct result_of<F(BOOST_RESULT_OF_ARGS)>
-    : tr1_result_of<F(BOOST_RESULT_OF_ARGS)> { };
+#if !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x551))
+template<typename F NDNBOOST_PP_ENUM_TRAILING_PARAMS(NDNBOOST_PP_ITERATION(),typename T)>
+struct result_of<F(NDNBOOST_RESULT_OF_ARGS)>
+    : tr1_result_of<F(NDNBOOST_RESULT_OF_ARGS)> { };
 #endif
 
-#endif // defined(BOOST_RESULT_OF_USE_DECLTYPE)
+#endif // defined(NDNBOOST_RESULT_OF_USE_DECLTYPE)
 
-#undef BOOST_RESULT_OF_ARGS
+#undef NDNBOOST_RESULT_OF_ARGS
 
-#if BOOST_PP_ITERATION() >= 1
+#if NDNBOOST_PP_ITERATION() >= 1
 
 namespace detail {
 
-template<typename R,  typename FArgs BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_PP_ITERATION(),typename T)>
-struct tr1_result_of_impl<R (*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),T)), FArgs, false>
+template<typename R,  typename FArgs NDNBOOST_PP_ENUM_TRAILING_PARAMS(NDNBOOST_PP_ITERATION(),typename T)>
+struct tr1_result_of_impl<R (*)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_ITERATION(),T)), FArgs, false>
 {
   typedef R type;
 };
 
-template<typename R,  typename FArgs BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_PP_ITERATION(),typename T)>
-struct tr1_result_of_impl<R (&)(BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),T)), FArgs, false>
+template<typename R,  typename FArgs NDNBOOST_PP_ENUM_TRAILING_PARAMS(NDNBOOST_PP_ITERATION(),typename T)>
+struct tr1_result_of_impl<R (&)(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_ITERATION(),T)), FArgs, false>
 {
   typedef R type;
 };
 
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551))
-template<typename R, typename FArgs BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_PP_ITERATION(),typename T)>
+#if !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x551))
+template<typename R, typename FArgs NDNBOOST_PP_ENUM_TRAILING_PARAMS(NDNBOOST_PP_ITERATION(),typename T)>
 struct tr1_result_of_impl<R (T0::*)
-                     (BOOST_PP_ENUM_SHIFTED_PARAMS(BOOST_PP_ITERATION(),T)),
+                     (NDNBOOST_PP_ENUM_SHIFTED_PARAMS(NDNBOOST_PP_ITERATION(),T)),
                  FArgs, false>
 {
   typedef R type;
 };
 
-template<typename R, typename FArgs BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_PP_ITERATION(),typename T)>
+template<typename R, typename FArgs NDNBOOST_PP_ENUM_TRAILING_PARAMS(NDNBOOST_PP_ITERATION(),typename T)>
 struct tr1_result_of_impl<R (T0::*)
-                     (BOOST_PP_ENUM_SHIFTED_PARAMS(BOOST_PP_ITERATION(),T))
+                     (NDNBOOST_PP_ENUM_SHIFTED_PARAMS(NDNBOOST_PP_ITERATION(),T))
                      const,
                  FArgs, false>
 {
   typedef R type;
 };
 
-template<typename R, typename FArgs BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_PP_ITERATION(),typename T)>
+template<typename R, typename FArgs NDNBOOST_PP_ENUM_TRAILING_PARAMS(NDNBOOST_PP_ITERATION(),typename T)>
 struct tr1_result_of_impl<R (T0::*)
-                     (BOOST_PP_ENUM_SHIFTED_PARAMS(BOOST_PP_ITERATION(),T))
+                     (NDNBOOST_PP_ENUM_SHIFTED_PARAMS(NDNBOOST_PP_ITERATION(),T))
                      volatile,
                  FArgs, false>
 {
   typedef R type;
 };
 
-template<typename R, typename FArgs BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_PP_ITERATION(),typename T)>
+template<typename R, typename FArgs NDNBOOST_PP_ENUM_TRAILING_PARAMS(NDNBOOST_PP_ITERATION(),typename T)>
 struct tr1_result_of_impl<R (T0::*)
-                     (BOOST_PP_ENUM_SHIFTED_PARAMS(BOOST_PP_ITERATION(),T))
+                     (NDNBOOST_PP_ENUM_SHIFTED_PARAMS(NDNBOOST_PP_ITERATION(),T))
                      const volatile,
                  FArgs, false>
 {
diff --git a/include/ndnboost/utility/enable_if.hpp b/include/ndnboost/utility/enable_if.hpp
index 85ed292..04128d6 100644
--- a/include/ndnboost/utility/enable_if.hpp
+++ b/include/ndnboost/utility/enable_if.hpp
@@ -11,15 +11,15 @@
 //             Andrew Lumsdaine (lums at osl.iu.edu)
 
 
-#ifndef BOOST_UTILITY_ENABLE_IF_HPP
-#define BOOST_UTILITY_ENABLE_IF_HPP
+#ifndef NDNBOOST_UTILITY_ENABLE_IF_HPP
+#define NDNBOOST_UTILITY_ENABLE_IF_HPP
 
 #include "ndnboost/config.hpp"
 
 // Even the definition of enable_if causes problems on some compilers,
 // so it's macroed out for all compilers that do not support SFINAE
 
-#ifndef BOOST_NO_SFINAE
+#ifndef NDNBOOST_NO_SFINAE
 
 namespace ndnboost
 {
@@ -114,6 +114,6 @@
 
 } // namespace ndnboost
 
-#endif // BOOST_NO_SFINAE
+#endif // NDNBOOST_NO_SFINAE
 
 #endif
diff --git a/include/ndnboost/utility/identity_type.hpp b/include/ndnboost/utility/identity_type.hpp
index 060ddbd..37eb835 100644
--- a/include/ndnboost/utility/identity_type.hpp
+++ b/include/ndnboost/utility/identity_type.hpp
@@ -10,8 +10,8 @@
 even if they contain commas.
 */
 
-#ifndef BOOST_IDENTITY_TYPE_HPP_
-#define BOOST_IDENTITY_TYPE_HPP_
+#ifndef NDNBOOST_IDENTITY_TYPE_HPP_
+#define NDNBOOST_IDENTITY_TYPE_HPP_
 
 #include <ndnboost/type_traits/function_traits.hpp>
 
@@ -38,7 +38,7 @@
 On some compilers (like GCC), using this macro on abstract types requires to
 add and remove a reference to the specified type.
 */
-#define BOOST_IDENTITY_TYPE(parenthesized_type) \
+#define NDNBOOST_IDENTITY_TYPE(parenthesized_type) \
     /* must NOT prefix this with `::` to work with parenthesized syntax */ \
     ndnboost::function_traits< void parenthesized_type >::arg1_type
 
diff --git a/include/ndnboost/utility/in_place_factory.hpp b/include/ndnboost/utility/in_place_factory.hpp
index f849649..cc077dd 100644
--- a/include/ndnboost/utility/in_place_factory.hpp
+++ b/include/ndnboost/utility/in_place_factory.hpp
@@ -10,8 +10,8 @@
 // You are welcome to contact the author at:
 //  fernando_cacciola@hotmail.com
 //
-#ifndef BOOST_UTILITY_INPLACE_FACTORY_04APR2007_HPP
-#ifndef BOOST_PP_IS_ITERATING
+#ifndef NDNBOOST_UTILITY_INPLACE_FACTORY_04APR2007_HPP
+#ifndef NDNBOOST_PP_IS_ITERATING
 
 #include <ndnboost/utility/detail/in_place_factory_prefix.hpp>
 
@@ -19,61 +19,61 @@
 
 class in_place_factory_base {} ;
 
-#define  BOOST_PP_ITERATION_LIMITS (0, BOOST_MAX_INPLACE_FACTORY_ARITY)
-#define  BOOST_PP_FILENAME_1 <ndnboost/utility/in_place_factory.hpp>
-#include BOOST_PP_ITERATE()
+#define  NDNBOOST_PP_ITERATION_LIMITS (0, NDNBOOST_MAX_INPLACE_FACTORY_ARITY)
+#define  NDNBOOST_PP_FILENAME_1 <ndnboost/utility/in_place_factory.hpp>
+#include NDNBOOST_PP_ITERATE()
 
 } // namespace ndnboost
 
 #include <ndnboost/utility/detail/in_place_factory_suffix.hpp>
 
-#define BOOST_UTILITY_INPLACE_FACTORY_04APR2007_HPP
+#define NDNBOOST_UTILITY_INPLACE_FACTORY_04APR2007_HPP
 #else
-#define N BOOST_PP_ITERATION()
+#define N NDNBOOST_PP_ITERATION()
 
 #if N
-template< BOOST_PP_ENUM_PARAMS(N, class A) >
+template< NDNBOOST_PP_ENUM_PARAMS(N, class A) >
 #endif
-class BOOST_PP_CAT(in_place_factory,N)
+class NDNBOOST_PP_CAT(in_place_factory,N)
   : 
   public in_place_factory_base
 {
 public:
 
-  explicit BOOST_PP_CAT(in_place_factory,N)
-      ( BOOST_PP_ENUM_BINARY_PARAMS(N,A,const& a) )
+  explicit NDNBOOST_PP_CAT(in_place_factory,N)
+      ( NDNBOOST_PP_ENUM_BINARY_PARAMS(N,A,const& a) )
 #if N > 0
-    : BOOST_PP_ENUM(N, BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_INIT, _)
+    : NDNBOOST_PP_ENUM(N, NDNBOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_INIT, _)
 #endif
   {}
 
   template<class T>
   void* apply(void* address
-      BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(T)) const
+      NDNBOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(T)) const
   {
-    return new(address) T( BOOST_PP_ENUM_PARAMS(N, m_a) );
+    return new(address) T( NDNBOOST_PP_ENUM_PARAMS(N, m_a) );
   }
 
   template<class T>
   void* apply(void* address, std::size_t n
-      BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(T)) const
+      NDNBOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(T)) const
   {
-    for(char* next = address = this->BOOST_NESTED_TEMPLATE apply<T>(address);
+    for(char* next = address = this->NDNBOOST_NESTED_TEMPLATE apply<T>(address);
         !! --n;)
-      this->BOOST_NESTED_TEMPLATE apply<T>(next = next+sizeof(T));
+      this->NDNBOOST_NESTED_TEMPLATE apply<T>(next = next+sizeof(T));
     return address; 
   }
 
-  BOOST_PP_REPEAT(N, BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_DECL, _)
+  NDNBOOST_PP_REPEAT(N, NDNBOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_DECL, _)
 };
 
 #if N > 0
-template< BOOST_PP_ENUM_PARAMS(N, class A) >
-inline BOOST_PP_CAT(in_place_factory,N)< BOOST_PP_ENUM_PARAMS(N, A) >
-in_place( BOOST_PP_ENUM_BINARY_PARAMS(N, A, const& a) )
+template< NDNBOOST_PP_ENUM_PARAMS(N, class A) >
+inline NDNBOOST_PP_CAT(in_place_factory,N)< NDNBOOST_PP_ENUM_PARAMS(N, A) >
+in_place( NDNBOOST_PP_ENUM_BINARY_PARAMS(N, A, const& a) )
 {
-  return BOOST_PP_CAT(in_place_factory,N)< BOOST_PP_ENUM_PARAMS(N, A) >
-      ( BOOST_PP_ENUM_PARAMS(N, a) );
+  return NDNBOOST_PP_CAT(in_place_factory,N)< NDNBOOST_PP_ENUM_PARAMS(N, A) >
+      ( NDNBOOST_PP_ENUM_PARAMS(N, a) );
 }
 #else
 inline in_place_factory0 in_place()
diff --git a/include/ndnboost/utility/result_of.hpp b/include/ndnboost/utility/result_of.hpp
index 7cc2ec6..b98fc8a 100644
--- a/include/ndnboost/utility/result_of.hpp
+++ b/include/ndnboost/utility/result_of.hpp
@@ -6,8 +6,8 @@
 //  http://www.boost.org/LICENSE_1_0.txt)
 
 // For more information, see http://www.boost.org/libs/utility
-#ifndef BOOST_RESULT_OF_HPP
-#define BOOST_RESULT_OF_HPP
+#ifndef NDNBOOST_RESULT_OF_HPP
+#define NDNBOOST_RESULT_OF_HPP
 
 #include <ndnboost/config.hpp>
 #include <ndnboost/preprocessor/cat.hpp>
@@ -32,24 +32,24 @@
 #include <ndnboost/utility/declval.hpp>
 #include <ndnboost/utility/enable_if.hpp>
 
-#ifndef BOOST_RESULT_OF_NUM_ARGS
-#  define BOOST_RESULT_OF_NUM_ARGS 16
+#ifndef NDNBOOST_RESULT_OF_NUM_ARGS
+#  define NDNBOOST_RESULT_OF_NUM_ARGS 16
 #endif
 
 // Use the decltype-based version of result_of by default if the compiler
 // supports N3276 <http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2011/n3276.pdf>.
-// The user can force the choice by defining either BOOST_RESULT_OF_USE_DECLTYPE or
-// BOOST_RESULT_OF_USE_TR1, but not both!
-#if defined(BOOST_RESULT_OF_USE_DECLTYPE) && defined(BOOST_RESULT_OF_USE_TR1)
-#  error Both BOOST_RESULT_OF_USE_DECLTYPE and BOOST_RESULT_OF_USE_TR1 cannot be defined at the same time.
+// The user can force the choice by defining either NDNBOOST_RESULT_OF_USE_DECLTYPE or
+// NDNBOOST_RESULT_OF_USE_TR1, but not both!
+#if defined(NDNBOOST_RESULT_OF_USE_DECLTYPE) && defined(NDNBOOST_RESULT_OF_USE_TR1)
+#  error Both NDNBOOST_RESULT_OF_USE_DECLTYPE and NDNBOOST_RESULT_OF_USE_TR1 cannot be defined at the same time.
 #endif
 
-#ifndef BOOST_RESULT_OF_USE_TR1
-#  ifndef BOOST_RESULT_OF_USE_DECLTYPE
-#    ifndef BOOST_NO_CXX11_DECLTYPE_N3276 // this implies !defined(BOOST_NO_CXX11_DECLTYPE)
-#      define BOOST_RESULT_OF_USE_DECLTYPE
+#ifndef NDNBOOST_RESULT_OF_USE_TR1
+#  ifndef NDNBOOST_RESULT_OF_USE_DECLTYPE
+#    ifndef NDNBOOST_NO_CXX11_DECLTYPE_N3276 // this implies !defined(NDNBOOST_NO_CXX11_DECLTYPE)
+#      define NDNBOOST_RESULT_OF_USE_DECLTYPE
 #    else
-#      define BOOST_RESULT_OF_USE_TR1
+#      define NDNBOOST_RESULT_OF_USE_TR1
 #    endif
 #  endif
 #endif
@@ -59,19 +59,19 @@
 template<typename F> struct result_of;
 template<typename F> struct tr1_result_of; // a TR1-style implementation of result_of
 
-#if !defined(BOOST_NO_SFINAE) && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#if !defined(NDNBOOST_NO_SFINAE) && !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 namespace detail {
 
-BOOST_MPL_HAS_XXX_TRAIT_DEF(result_type)
+NDNBOOST_MPL_HAS_XXX_TRAIT_DEF(result_type)
 
 template<typename F, typename FArgs, bool HasResultType> struct tr1_result_of_impl;
 
-#ifdef BOOST_NO_SFINAE_EXPR
+#ifdef NDNBOOST_NO_SFINAE_EXPR
 
 // There doesn't seem to be any other way to turn this off such that the presence of
 // the user-defined operator,() below doesn't cause spurious warning all over the place,
 // so unconditionally turn it off.
-#if BOOST_MSVC
+#if NDNBOOST_MSVC
 #  pragma warning(disable: 4913) // user defined binary operator ',' exists but no overload could convert all operands, default built-in binary operator ',' used
 #endif
 
@@ -122,7 +122,7 @@
 
 template<typename F, bool TestCallability = true> struct cpp0x_result_of_impl;
 
-#else // BOOST_NO_SFINAE_EXPR
+#else // NDNBOOST_NO_SFINAE_EXPR
 
 template<typename T>
 struct result_of_always_void
@@ -132,7 +132,7 @@
 
 template<typename F, typename Enable = void> struct cpp0x_result_of_impl {};
 
-#endif // BOOST_NO_SFINAE_EXPR
+#endif // NDNBOOST_NO_SFINAE_EXPR
 
 template<typename F>
 struct result_of_void_impl
@@ -182,13 +182,13 @@
 
 } // end namespace detail
 
-#define BOOST_PP_ITERATION_PARAMS_1 (3,(0,BOOST_RESULT_OF_NUM_ARGS,<ndnboost/utility/detail/result_of_iterate.hpp>))
-#include BOOST_PP_ITERATE()
+#define NDNBOOST_PP_ITERATION_PARAMS_1 (3,(0,NDNBOOST_RESULT_OF_NUM_ARGS,<ndnboost/utility/detail/result_of_iterate.hpp>))
+#include NDNBOOST_PP_ITERATE()
 
 #else
-#  define BOOST_NO_RESULT_OF 1
+#  define NDNBOOST_NO_RESULT_OF 1
 #endif
 
 }
 
-#endif // BOOST_RESULT_OF_HPP
+#endif // NDNBOOST_RESULT_OF_HPP
diff --git a/include/ndnboost/utility/swap.hpp b/include/ndnboost/utility/swap.hpp
index 6f4e366..95f80f3 100644
--- a/include/ndnboost/utility/swap.hpp
+++ b/include/ndnboost/utility/swap.hpp
@@ -6,8 +6,8 @@
 // For more information, see http://www.boost.org
 
 
-#ifndef BOOST_UTILITY_SWAP_HPP
-#define BOOST_UTILITY_SWAP_HPP
+#ifndef NDNBOOST_UTILITY_SWAP_HPP
+#define NDNBOOST_UTILITY_SWAP_HPP
 
 // Note: the implementation of this utility contains various workarounds:
 // - swap_impl is put outside the boost namespace, to avoid infinite
diff --git a/include/ndnboost/utility/value_init.hpp b/include/ndnboost/utility/value_init.hpp
index 6767810..8e34ae2 100644
--- a/include/ndnboost/utility/value_init.hpp
+++ b/include/ndnboost/utility/value_init.hpp
@@ -12,8 +12,8 @@
 // 03 Apr 2010 (Added initialized<T>, suggested by Jeffrey Hellrung, fixing #3472) Niels Dekker
 // 30 May 2010 (Made memset call conditional, fixing #3869) Niels Dekker
 //
-#ifndef BOOST_UTILITY_VALUE_INIT_21AGO2002_HPP
-#define BOOST_UTILITY_VALUE_INIT_21AGO2002_HPP
+#ifndef NDNBOOST_UTILITY_VALUE_INIT_21AGO2002_HPP
+#define NDNBOOST_UTILITY_VALUE_INIT_21AGO2002_HPP
 
 // Note: The implementation of ndnboost::value_initialized had to deal with the
 // fact that various compilers haven't fully implemented value-initialization.
@@ -22,7 +22,7 @@
 // contains. More details on these issues are at libs/utility/value_init.htm
 
 #include <ndnboost/aligned_storage.hpp>
-#include <ndnboost/config.hpp> // For BOOST_NO_COMPLETE_VALUE_INITIALIZATION.
+#include <ndnboost/config.hpp> // For NDNBOOST_NO_COMPLETE_VALUE_INITIALIZATION.
 #include <ndnboost/detail/workaround.hpp>
 #include <ndnboost/static_assert.hpp>
 #include <ndnboost/type_traits/cv_traits.hpp>
@@ -31,7 +31,7 @@
 #include <cstring>
 #include <new>
 
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
 #pragma warning(push)
 #if _MSC_VER >= 1310
 // It is safe to ignore the following warning from MSVC 7.1 or higher:
@@ -43,20 +43,20 @@
 #endif
 #endif
 
-#ifdef BOOST_NO_COMPLETE_VALUE_INITIALIZATION
-  // Implementation detail: The macro BOOST_DETAIL_VALUE_INIT_WORKAROUND_SUGGESTED 
+#ifdef NDNBOOST_NO_COMPLETE_VALUE_INITIALIZATION
+  // Implementation detail: The macro NDNBOOST_DETAIL_VALUE_INIT_WORKAROUND_SUGGESTED 
   // suggests that a workaround should be applied, because of compiler issues 
   // regarding value-initialization.
-  #define BOOST_DETAIL_VALUE_INIT_WORKAROUND_SUGGESTED
+  #define NDNBOOST_DETAIL_VALUE_INIT_WORKAROUND_SUGGESTED
 #endif
 
-// Implementation detail: The macro BOOST_DETAIL_VALUE_INIT_WORKAROUND
+// Implementation detail: The macro NDNBOOST_DETAIL_VALUE_INIT_WORKAROUND
 // switches the value-initialization workaround either on or off.
-#ifndef BOOST_DETAIL_VALUE_INIT_WORKAROUND
-  #ifdef BOOST_DETAIL_VALUE_INIT_WORKAROUND_SUGGESTED
-  #define BOOST_DETAIL_VALUE_INIT_WORKAROUND 1
+#ifndef NDNBOOST_DETAIL_VALUE_INIT_WORKAROUND
+  #ifdef NDNBOOST_DETAIL_VALUE_INIT_WORKAROUND_SUGGESTED
+  #define NDNBOOST_DETAIL_VALUE_INIT_WORKAROUND 1
   #else
-  #define BOOST_DETAIL_VALUE_INIT_WORKAROUND 0
+  #define NDNBOOST_DETAIL_VALUE_INIT_WORKAROUND 0
   #endif
 #endif
 
@@ -68,7 +68,7 @@
   private :
     struct wrapper
     {
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x592))
+#if !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x592))
       typename
 #endif 
       remove_const<T>::type data;
@@ -87,7 +87,7 @@
     };
 
     mutable
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x592))
+#if !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x592))
       typename
 #endif 
       aligned_storage<sizeof(wrapper), alignment_of<wrapper>::value>::type x;
@@ -101,7 +101,7 @@
 
     initialized()
     {
-#if BOOST_DETAIL_VALUE_INIT_WORKAROUND
+#if NDNBOOST_DETAIL_VALUE_INIT_WORKAROUND
       std::memset(&x, 0, sizeof(x));
 #endif
       new (wrapper_address()) wrapper();
@@ -120,7 +120,7 @@
     initialized & operator=(initialized const & arg)
     {
       // Assignment is only allowed when T is non-const.
-      BOOST_STATIC_ASSERT( ! is_const<T>::value );
+      NDNBOOST_STATIC_ASSERT( ! is_const<T>::value );
       *wrapper_address() = static_cast<wrapper const &>(*(arg.wrapper_address()));
       return *this;
     }
@@ -251,7 +251,7 @@
 
 } // namespace ndnboost
 
-#ifdef BOOST_MSVC
+#ifdef NDNBOOST_MSVC
 #pragma warning(pop)
 #endif
 
diff --git a/include/ndnboost/version.hpp b/include/ndnboost/version.hpp
index d3826c2..8f35f13 100644
--- a/include/ndnboost/version.hpp
+++ b/include/ndnboost/version.hpp
@@ -6,8 +6,8 @@
 
 //  See http://www.boost.org/libs/config for documentation
 
-#ifndef BOOST_VERSION_HPP
-#define BOOST_VERSION_HPP
+#ifndef NDNBOOST_VERSION_HPP
+#define NDNBOOST_VERSION_HPP
 
 //
 //  Caution, this is the only boost header that is guarenteed
@@ -15,18 +15,18 @@
 //  will cause a recompile every time a new boost version is
 //  released.
 //
-//  BOOST_VERSION % 100 is the patch level
-//  BOOST_VERSION / 100 % 1000 is the minor version
-//  BOOST_VERSION / 100000 is the major version
+//  NDNBOOST_VERSION % 100 is the patch level
+//  NDNBOOST_VERSION / 100 % 1000 is the minor version
+//  NDNBOOST_VERSION / 100000 is the major version
 
-#define BOOST_VERSION 105400
+#define NDNBOOST_VERSION 105400
 
 //
-//  BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION
+//  NDNBOOST_LIB_VERSION must be defined to be the same as NDNBOOST_VERSION
 //  but as a *string* in the form "x_y[_z]" where x is the major version
 //  number, y is the minor version number, and z is the patch level if not 0.
 //  This is used by <config/auto_link.hpp> to select which library version to link to.
 
-#define BOOST_LIB_VERSION "1_54"
+#define NDNBOOST_LIB_VERSION "1_54"
 
 #endif
diff --git a/include/ndnboost/visit_each.hpp b/include/ndnboost/visit_each.hpp
index 43dfa65..64d015e 100644
--- a/include/ndnboost/visit_each.hpp
+++ b/include/ndnboost/visit_each.hpp
@@ -7,8 +7,8 @@
 
 // For more information, see http://www.boost.org/libs/signals
 
-#ifndef BOOST_VISIT_EACH_HPP
-#define BOOST_VISIT_EACH_HPP
+#ifndef NDNBOOST_VISIT_EACH_HPP
+#define NDNBOOST_VISIT_EACH_HPP
 
 #include <ndnboost/config.hpp>
 
@@ -26,4 +26,4 @@
   }
 }
 
-#endif // BOOST_VISIT_EACH_HPP
+#endif // NDNBOOST_VISIT_EACH_HPP
diff --git a/include/ndnboost/weak_ptr.hpp b/include/ndnboost/weak_ptr.hpp
index d7bbb7d..cd3d77f 100644
--- a/include/ndnboost/weak_ptr.hpp
+++ b/include/ndnboost/weak_ptr.hpp
@@ -1,5 +1,5 @@
-#ifndef BOOST_WEAK_PTR_HPP_INCLUDED
-#define BOOST_WEAK_PTR_HPP_INCLUDED
+#ifndef NDNBOOST_WEAK_PTR_HPP_INCLUDED
+#define NDNBOOST_WEAK_PTR_HPP_INCLUDED
 
 //
 //  weak_ptr.hpp
@@ -15,4 +15,4 @@
 
 #include <ndnboost/smart_ptr/weak_ptr.hpp>
 
-#endif  // #ifndef BOOST_WEAK_PTR_HPP_INCLUDED
+#endif  // #ifndef NDNBOOST_WEAK_PTR_HPP_INCLUDED
